1.2 人工智能与传统机器学习
1.2.1 人工神经网络与生物神经网络
机器学习是人工智能的重要组成部分,而深度学习是机器学习深度智能化的技术方向之一。人工神经网络(简称神经网络)是深度学习的发展基础,它模拟了生物神经网络的信号传输原理,是人工智能技术中的基础算法之一。神经网络模拟了生物神经网络中的神经元,在人脑中,神经元(神经元)的数量大约有860亿个,神经元能够感知环境的变化,同时将信息传递给其他的神经元,并根据传递的信息指令集体做出反应。
神经元由树突、细胞体、轴突突触等基本结构组成。信号在传递过程中形成电流,在其尾端为受体,借由化学物质(化学递质)传导(多巴胺、乙酰胆碱),在传递适当的量后会在两个突触间形成传导电流,一个典型的神经元结构如图1-2所示。
图1-2
神经元中的树突、细胞体、轴突、突触是神经网络的神经元模拟的重要对象,神经网络在功能和结构上都一定程度参照了神经元。树突、细胞体、轴突、突触的介绍如表1-2所示。
表1-2
续表
而神经网络的神经元基于树突、细胞体、轴突、突触的功能,定义了输入层、加权求和、激活函数、输出层,分别模拟了树突的信号输入、细胞体的加工和信号处理、轴突的控制输出、突触的结果输出,一个神经网络的神经元结构如图1-3所示。
图1-3
神经网络中的神经元有多种数学模型,其中最经典、最简单的是感知器。感知器通过对输入数据加权求和并经过激活函数,从而输出最终的结果。
例如,评价某个地方是否符合居住环境,y作为输出,y=0表示不符合居住环境,y=1表示符合居住环境。影响它的因素有绿化面积、超市商业街、出行公交线路等,这些影响因素则是xi,每一个因素对是否符合居住环境都有权重wi,因此通过对因素的加权求和并通过激活函数计算是否符合居住环境,最终的输出与图1-3类似。
一个复杂的神经网络是由众多这样的神经元组成的,神经元之间相互传递,上一层的神经元的输出作为下一层神经元的输入,这样不断传递就形成了神经网络的基本结构。随着深度的加深,以及对神经元激活函数的改进等,逐步形成了深度神经网络的基础结构。
1.2.2 落地的关键因素
人工智能技术的落地一方面受限于处理问题的复杂度,另一方面受限于落地环境。人工智能落地的关键因素大致可以分为计算力、算法模型、数据和业务场景。
1.计算力
计算力是模型训练的运算基础,尤其在深度神经网络中,不仅需要训练的数据量非常大,而且算法模型本身的网络深度和模型复杂度都非常高,因此需要足够的计算力对模型的参数进行训练。可以说,计算力就是人工智能技术的生产力。
对于传统的机器学习模型,CPU型计算服务器或许能够应对,但对于一个复杂的深度模型,它的神经元的数量数以万计,参数量也在百万级或千万级,无论在训练阶段,还是推断阶段,涉及的参数计算量都非常大。而GPU可以帮助提升计算力,分布式并行的GPU集群是提升效率的重要方式之一。拥有强大计算力是企业发展智能化的基础,传统的计算集群(如Spark)便是其中一种方式。
从算法模型训练的角度来看,一个简单的模型在GPU集群中可以在数小时内产生结果,但是在低效率的计算方式中,可能需要数周才能看到结果。若将算法模型的在线推断放到CPU型计算服务器中,可能需要10余秒才能完成推断,而放在GPU集群中,则可以做到秒级响应。这对在线业务的影响非常大,甚至影响用户的体验、产品系统设计、运算效率等。
因此,计算力是人工智能落地的关键技术之一,没有强大的计算力则意味着没有强大的数据处理能力、模型生产能力和在线服务能力。随着当前云计算已经越来越成熟,计算力也越来越容易获得,成本也在不断降低。
2.算法模型
算法模型是解决问题的策略,随着算法模型复杂度的不断加深,解决问题的能力也会不断增强。理论上,算法模型的结构深度越深,对数据的理解能力(拟合)越强。
算法模型是人工智能落地的承载体。例如,在人脸识别中,通过人脸识别的算法模型对不同人的人脸进行认证,通过认证的结果实现对业务的承接。算法模型本身是不具备价值的,但是算法模型和业务关联起来就会产生效益。例如,在量化交易中,量化交易的策略模型对交易进行分析控制,从而实现收益。
算法模型的设计需要专业度和深度,设计符合业务需求的算法模型是人工智能落地的关键,脱离业务需求的算法模型,不仅不能解决实际问题,还会造成计算资源和数据资源的浪费。
算法模型虽然是理解业务的关键一环,但并不是设计得越深越好,而是要恰到好处。一个简单的解方程的模型,不需要复杂的网络模型结构,更不需要高性能GPU的支持。对算法模型的掌握和应用是人工智能技术人员的关键技能之一。
3.数据
数据的重要性在人工智能落地中毋庸置疑,但是对于数据则有一定的要求,主要体现在两个方面。一方面,数据代表的特征要足够全面;另一方面,数据的量要足够多,并非简单的数据量大,而是数据要在更大的数据量级上覆盖数据本身的特征。
一般来说,只需选择合适业务场景的算法模型即可,但是若数据不足或质量不高,那么即使再优秀的算法模型也无法解决问题。数据的质量是解决问题的关键因素,因此针对不同的业务场景,一定要有与其场景匹配的数据。
通过算法模型,不同的数据带来的效果可能有天壤之别。例如,在人脸识别中,人脸识别的算法模型保持不变,但是基于儿童的人脸数据去训练模型,然后用该模型对成人的脸进行人脸识别,显然落地效果会大打折扣。
4.业务场景
脱离场景去探讨人工智能技术落地是没有意义的,不同的应用场景对于技术有不同的要求。业务场景是解决问题的分析基础,数据和算法模型都应该从业务场景出发,即使是相似的业务场景,对于算法和数据的要求也不尽相同。
依然以人脸识别为例,在金融场景中用人脸支付和在手机上用人脸开机解锁,两者对于人脸识别的要求是不一样的。从算法模型层面来看,金融场景对于人脸识别的精度要求更高,例如,在金融场景中需要99%的准确度,而在手机上用人脸开机解锁只需要达到95%的准确度即可。因为不同的准确度对业务的价值不一样,需要付出的成本也不一样。从数据层面来看,金融场景要求数据更加规范,而手机解锁场景则需要考虑不同视觉角度下的数据。
业务场景是落地的关键,但这往往是技术人员容易忽略或没有足够重视的地方。对于不同的业务场景,不一定都需要复杂的算法模型和数据,而是要针对业务场景分析需要何种数据、何种算法模型可以达到效果。从业务角度来看,并不是数据越多越好、算法模型越复杂越好,因为数据越多、算法越复杂,意味着成本越高。
因此,在人工智能技术落地中,应当一切以业务场景为核心,以最少的数据、最简单的模型、最少的计算力解决最实际的问题,从而达到最好的效果。