1.2.3 如何判断场景是否适合应用人工智能
人工智能是一种工具,是我们达成目标的方式之一。
人工智能是面向特定问题的解决方案,如果解决问题原本就不需要使用它,那么就应该选择其他技术方案,不能为了使用人工智能而落地人工智能。
“放之四海而皆准”的通用“人工智能解决方案”是不存在的,人工智能也并非适合所有行业,比如很多非标准行业或者服务业。
1.如何判断现在的人工智能能完成哪些任务
人工智能目前能够落地的场景都是“数据驱动”“流程清晰”的任务,即当一个待解决问题的定义、输入内容、输出内容都能够通过数据描述,并且原先的任务可以通过人工方式来完成时,可以用人工智能来替换其中的“人工”。
以下是人工智能可以落地场景包含的三个基本因素(见图1-5):
图1-5 人工智能可以落地场景的三个基本因素
(1)场景
问题、目标、流程定义清晰,人工智能在学习的过程中会按照开发者指定的流程执行,如果你想让人工智能做某件事,这件事情的目标必须是可理解的、可定量评估的,否则无法训练人工智能。毕竟,如果不能给人工智能一些好的、坏的例子,它是无法从数据中提取特征来对样本进行判断的。从算法实施的角度来看,建立什么数学模型,采用什么算法,需要哪些软、硬件支持,也需要在明确全部的处理流程和目标之后,才可以进行选择。
人工智能的输出是和场景目标相关联的,目标必须是可以通过数据衡量的,这样才能建立模型,通过训练让人工智能的输出不断收敛,最终得到能够部署运行的人工智能模型。比如对于图像分类等有明确数据标签的场景,模型预测结果和标签的“差异”可以通过数据来度量,目标就是让这个“差异”越来越小;对于强化学习这种没有数据标签需要让人工智能从环境中识别的学习模式,则需要定义一个“得分函数”,学习的目标是使人工智能在流程执行的过程中不断使得分最大化。
判断目标、流程是否清晰明确,可以从以下三点入手:
1)场景中采集的输入数据的标准是什么?是什么样的格式?数据维度是什么样的?
明确这些内容后也就清楚了采集原始数据后,如何经过清洗、处理的步骤来得到模型所需要的数据。
2)场景中数据的输出是什么样的?有多少维度?每个维度代表什么?
明确了这些内容后也就明确了模型输出结果如何和系统中其他部分进行交互,以及如何解读输出的数据。
3)场景中涉及的流程都有哪些?场景流转的判断条件是什么样的?
对于系统型的人工智能产品,需要和系统中其他部分相配合,需要按照场景的需求来解决实际问题。
(2)数据
数据的“数量”和“质量”对人工智能落地的效果是非常有影响的。人工智能落地效果的瓶颈就在于“它只会和你的训练数据一样好”,如果数据不完整,那么人工智能所学到的知识和数据之间的关联也是不完整的。比如,利用人工智能来预测是否会下雨,如果训练数据错误地把所有下雨的天气标注成晴天,那么最后人工智能的预测结果会是相反的;再比如,如果与天气相关性高的因子在原始数据中有缺失现象,那么得到的预测结果可能会和随机预测结果一致。
数据采集和数据处理两个步骤是得到高质量数据的两个必要的步骤,由于数据采集困难,或数据处理过程依赖从业者的经验,在很多场景中难以获得用于训练人工智能模型的数据,进而只能通过专家规则和经验来完成任务。缺少了可以用于训练的数据,人工智能就无法落地。
(3)符合场景要求的算力
算力是人工智能模型训练和运行的必要硬件条件,它和人工智能落地的实际成本也是正相关的,人工智能算法越复杂对算力的要求就越高,同时落地所需要的实际成本也就越高。
场景中需要多少算力与需要同时处理的数据量、任务的复杂度相关,数据处理量越大、任务越复杂所需要的模型计算规模越大,如图1-6所示。算力不足会导致人工智能模型学习的速度和算法运行的速度变慢,甚至无法满足场景中的要求,若你和人工智能客服对话,对方需要几十秒才能回复,用户的耐心都会被消耗完。这就好比一台马力强劲的发动机,却因为输油管狭小而无法发挥应有的能力一样。
图1-6 算力的影响因素
算力及算法复杂度的选择只要符合场景对速度、准确率等的要求即可,大可不必盲目堆叠算力或追求算法的复杂度,算力越高,人工智能学习和训练时所消耗的电能就越大。现在很多场景不断提高模型的复杂度,过于追求人工智能准确率的极致,但做“应用”与做人工智能研究是不一样的,做“应用”更讲求经济性,根据场景适度地选择合适的算力即可。在算力选择上,可以从以往研究人员论文中的场景来选择,比如当你需要识别不同的机械零部件时,相似的物体识别场景(如对机械设备类型的识别)中所使用的算力就可以迁移到你的场景之中。
2.哪些场景不适合人工智能落地
这个判断标准其实不难,可以在具体的场景中问自己七个问题来判断这个场景是否适合落地人工智能。
(1)问题一:是否可以通过“人工+规则”来完成任务
人工智能所做的事情,是在当下的应用场景中提升效率,如果人都不知该怎么做,是无法转化成计算机程序去执行的。机器学习中的算法的具体构成,都由一连串的“操作序列”来表示,这些“操作序列”分解成每一步后,都是加减法、矩阵乘法、非线性运算等。这些“操作序列”集合在一起就是一个明确的计算机可执行的操作步骤,虽然有的模型中包含了上千万甚至上亿个参数,但这些参数之间的操作都由这些基本的计算单元所构成。同时由于模型参数、层数过多,使得计算量非常庞大,这样很难人为解释每一层具体运算的实际逻辑,但人工智能模型的学习是面向整体输出最优化不断地调节其中的参数,在人工定义的学习规则下进行的。
如果一个场景中不用人工智能,也可以用人工的方式按照标准的流程来解决原先场景中的问题,那么这种标准场景往往是可以落地人工智能的。比如在互联网金融的风控中,对于申请贷款人资质审核的场景,以往通过风控人员逐个对贷款人进行审核,来判断潜在的欺诈风险和信贷额度,有经验的风控人员会根据贷款人的背景信息形成一系列的评价规则。人工智能基于企业风控历史数据训练其实可以拟合出一套风控人员的规则。但是,当评价一个人的人品或情绪状态时,就很难人工定义标准的规则,因为每个人的看法和标准都是不一样的,机器不会产生喜好和偏见,在这种主观评价为主的非标准场景下,人工智能就不适合落地。
(2)问题二:是否需要常识作为辅助
在需要主动理解“常识”的场景中,人工智能往往难以落地,因为它无法像人一样懂得常识,也不知道特定名词所代表的含义,但它能够在不同的名词、短语、执行动作之间建立联系。当你描述的任务包含了“常识性”内容时,人工智能可能无法识别到你说的事情,除非你描述的内容已经在机器的知识库中,并且和已有概念绑定了。比如自动驾驶的汽车,如果你将“公司”和某个具体的地点进行绑定,这样当每次说“去公司”时,它都能知道你要去哪里;当你告诉人工智能“我要去五道口华联购物中心”时,它也可以准确地识别目的地,但当你说“送我去五道口商场”(由于日常习惯你可能会省略具体的“商场名称”)时,如果人工智能没有记录你的日常偏好,没有“常识”作为辅助,就会为你匹配很多与之相关的地点,无法将你描述的地点准确地和目的地进行匹配。
在人工数据输入的指导下,人工智能可以通过用户的使用习惯将一些常识和客观事实进行绑定,在得到用户确认的情况下,自动生成一条对应客观事实的常识。如果场景中包含的“常识”无法通过历史数据或人工输入知识进行连接,那么机器无法学习到相关的内容,进而也就没办法完成场景中的任务。
(3)问题三:是否有“标注”数据
人工智能是数据“喂养”出来的,数据标注是形成有价值的海量数据的非常重要的一环。
对于“监督式学习”算法来说,标注是“事前”的,比如要教人工智能识别一头牛,需要大量牛的图片,并通过“标注”来告诉人工智能“这些图片中像素组合起来表达的含义是‘牛’”,这些数据就是用于训练人工智能模型的“训练数据”。人工智能模型通过提取图片之中的特征来描述“牛”,因此在训练完成后,人工智能模型能够正确识别的是那些在训练数据中出现过的“牛”。如果给它看一张从未在训练数据中出现的“牛”,如“奶牛”(训练数据中牛身上的花纹不一样),它可能就认不出来了。
在缺少“标注”的场景下,需要通过“无监督式学习”来处理数据,如聚类分析(将一组数据或对象按照某种规则划分为多个种类),这种标注是“事后”的。从数据角度上来看这些数据是不需要“标注”即可对数据进行类别划分。这里需要的“标注”是指对人工智能处理的结果,需要人来解释聚类结果的实际意义,告诉人工智能和其他协作者聚类结果的含义。
(4)问题四:工作流程是否清晰
工作流程不标准、无法清晰描述的场景无法落地人工智能。人工智能落地除了算法模型之外,还需要将其处理结果用到场景的流程里去解决问题,比如用“摄像头”和“图像分类算法”对汽车生产线上的劣质生产零件进行检测,当人工智能判断生产零件“合格”或者“不合格”后,需要将“不合格”的零件从生产线剔除,以防止这些不合格的零件被用在汽车的组装环节;如果处理流程不清晰,开发者也无法通过计算机程序将原先场景中的流程和人工智能结合起来。
对于场景中的处理流程,人工智能落地需要明确以下三个方面:
1)场景中都有哪些“状态”?比如对于工业质检来说,状态可以分为良品、劣品、疑似劣品、系统故障。
2)环境、人工智能的输入和输出都是什么?环境是工业流水线,输入是通过流水线上采集图像的摄像头采集到的待质检零件的照片,输出是根据人工智能模型判断零件是否为“劣品”。
3)场景中的完整处理环节是怎样的?还是上面工业质检的例子,流程如图1-7所示。
图1-7 工业质检流程图
当明确了以上三点后,整个场景中的处理流程就清晰了。
(5)问题五:人工智能的目标是否清晰
人工智能的目标就是最优化:在复杂环境与多体交互中做出最优决策。
因此需要明确的目标来决定人工智能优化的方向,缺少优化目标的人工智能就和在大海中航行没有目标的帆船一样。目标的作用有以下三点:
1)训练时,为人工智能模型的优化指明方向。可以通过最小化“损失函数”求解和评估模型,来指导人工智能优化的方向。“损失函数”是模型预测结果和标注输出结果的偏差,在监督式学习中优化主要是使人工智能模型能够在给定输入下输出对应的结果。
2)指导智能体在环境中的行动。以室内环境控制来说,人工智能的目标就类似于空调或加湿器,设定一个最适合人体的温度或湿度等条件,当实际探测和目标不一样时,就通过空调、加湿器进行室内的温度、湿度调节。
3)评估落地场景的实际效果。模型运行的速度、准确率、召回率等数据,除非在实际场景中使用,否则无法知道“99.9%”的准确率实际应用时会产生什么样的效果。
(6)问题六:场景是否以“人工服务”为主要场景
当场景是以与人沟通的体验、同理心、认同感这些满足“情感”的诉求为核心时,人工智能是无法替代人的价值的。比如心理咨询,需要心理咨询师引导患者,经过诉说、询问、讨论来找出引起心理问题的原因,再分析症结所在。
(7)问题七:人工智能的可解释性、准确率是否满足场景需要
目前许多人工智能模型都存在“黑箱”问题,这给我们解释和理解它输出结果的底层逻辑带来了困难,另外环境变化、数据质量较为敏感等因素也会影响算法输出的准确率。当场景涉及关键性的决策问题(如医疗诊断、法律量刑等)时,这种可解释性不足和准确性不稳定的问题,就会导致结果难以被信任和验证。这些问题也是当前人工智能领域的主要挑战之一,随着模型架构、训练算法、数据处理和标注方面的发展和完善,未来人工智能的可解释性、可靠性会进一步提高。如果我们需要在实际场景中应用人工智能,则需要对模型进行充分的测试和评估,当产生不符合预期的结果时,能够及时采取相应措施避免损失发生,具体如何做可参考3.2.5节中对人工智能系统实施/部署的内容介绍。