注:
本文节选自天堂硅谷近期即将出版的《人工智能行业报告及投资建议》特别报告,作者系天堂硅谷金融研究院以及多个聚焦人工智能领域的投资团队。
人工智能产业链自下而上可分为基础技术层和应用场景层两个层面。其中基础技术层面又可以细分为基础支撑层和关键技术层两个层面(图1)。
当下这个阶段,神经网络芯片、深度学习算法、大数据及云计算四个方面的快速发展推动着人工智能产业的崛起。
图1:人工智能产业链
数据来源:艾媒咨询
在基础支撑层中,爆发式增长的数据量以及不断优化的算法模型、芯片为人工智能的快速发展奠定了良好的基础。
:: 数据量:呈指数式爆炸增长,同时存储成本大幅下降
在互联网及智能硬件快速普及的当下,数据量呈现出指数爆炸式增长。据 Forrester 研究结果表明,目前在线或移动金融交易、社交媒体、GPS坐标等数据源每天要产生超过 2.5 EB(1EB 为 2^60 次方)的海量数据。据IDC(International Data Corporation)统计,全球数据总量增长率将维持 50%左右,2020 年全球数据总量将达到 40ZB(图2)。根据易观的数据,2015年中国大数据市场规模达到105.5亿元,同比增长39.4%。随着大数据产业链的不断完善,细分行业的大数据商业模式逐渐落地。在上述因素的驱动下,易观预计到2018年,中国大数据市场规模将达到283.7亿元(图3)。
图2:全球数据量规模
数据来源:IDC
图3:中国大数据产业规模
数据来源:易观
同时,数据存储成本呈现逐步降低趋势。自阿里2012年推出云服务以来,其云产品每年都会降价1-2次,降价幅度从15%至50%不等。2016年10月,阿里云产品价格全面下降,其核心产品的降价幅度高达50%。而2017年6月,阿里云继续下调核心产品价格,云数据库和云服务器降价幅度达到35%和31%。
:: 算法模型:深度学习算法已成主流,层数越深则模型性能越优
研发机器学习模型主要可分为两个阶段——训练阶段(training)和推理阶段(inference)。在训练阶段,可细分为3个步骤。第一步,开发人员需要定义一组函数,将从海量数据中提取的特征集输入到函数中去,经过计算会输出最终结果。第二步,将输出结果与预定的目标结果进行对比,初步建成的函数模型所输出的结果和预定要达到的目标结果之间会存在误差,此时需要定义一个总误差函数。第三步,计算并调整模型中的函数参数,使得总误差函数值最小。使得总误差最小的参数集合将被选定为“最佳”函数的参数,参数选定后“最佳”函数也随之确定。
完成训练阶段的工作后,就进入推理阶段。在这个阶段,需要用训练数据集之外的其他数据对“最佳”函数进行测试。如果输出结果是准确的,那么说明训练所得的“最佳”函数是一个学习效果较好的模型;如果输出结果不准确,则需要开发人员返回训练阶段修改模型参数,直至测试结果准确为止(图4)。
图4:算法模型的两个阶段
数据来源:《Deep Learning Tutorial》
机器学习模型可以分类为浅层学习模型和深度学习模型。浅层学习模型,诸如支撑向量机( SVM)、 Boosting 等,在结构上基本没有隐藏层节点或只带有一层隐藏层节点。而深度学习模型是模仿人脑机制构建的具有学习和分析解决问题的神经网络。它由输入层、若干隐藏层及输出层构成,一般包含多个网络层,利用海量数据来对模型进行训练,通过逐层特征变换,形成对数据本身更抽象的、更具代表性的特征,从而提高分类或的准确性(图5)。
隐藏层也称隐层,是输入层和输出层之间众多神经元和链接组成的各个层面。一般认为增加隐藏层数可提高计算精度,降低网络误差。如今,深度学习的隐藏层数已经达到 152 层。隐藏层节点是神经元,数目越多,神经网络的鲁棒性( Robustness)越强。
相比于浅层学习模型,深度学习模型隐藏层数更多,精度更高,越来越成为机器学习模型的主流。
据 Technavio ,预计全球深度学习市场规模在 2016-2020 年的 CAGR 为 38.7%,到 2020年,全球市场规模将达 13 亿美元。
但目前算法主要以监督学习算法为主,即需要对数据进行标记才可以用于训练模型;无监督学习算法所用的数据集不需要带标记。虽然目前已有的数据量已远远超过人工智能需求的数据量,但由于标记数据的成本十分高昂,真正可用于机器学习的数据仍然很少。根据数据堂统计数据显示,进行1小时车流量统计视频数据价格为1000元,进行28小时的街道、地铁行人视频采集和标记数据则需要4.42万元,可见标记数据费用之高。只有进一步的提升机器学习模型,如无监督学习模型、迁移学习模型、小样本学习模型及自动生成数据等,达到算法的进步,可以减少对标记数据的依赖,降低成本。
图5:深度学习模型
数据来源:《Deep Learning Tutorial》
:: 芯片:以GPU为主,FPGA正在逐步崛起
训练机器学习模型所需要的时间很大程度上取决于硬件的配置,有的需要1-3周的时间,训练复杂的需要更多,例如训练AlphaGo花费了一个月的时间(表1)。而硬件体系的核心即为芯片。
表1:机器学习各项目所需时间
数据来源:微软亚洲研究院
目前用于深度学习的芯片主要类型是CPU(中央处理器)、GPU(图形处理器)、 FPGA(现场可编程门阵列)、 ASIC(应用型专用集成电路)。同时,各家公司也在积极研发专用人工智能专用芯片,例如Google的TPU、 IBM的TrueNorth、中星微的NPU、,但离大规模商用化还有一定的距离。GPU为目前深度学习领域首选的芯片,拥有最高的市场占有率。
CPU、GPU、FPGA和ASIC四种芯片各有优缺点(表2)。CPU的架构设计以低延时为导向,擅长于逻辑运算和串行计算;而GPU的架构设计以大吞吐量为导向,更适用于计算密集型程序以及并行计算(图6)。从诞生之初,GPU是为了处理3D图像中的上百万个像素图像,拥有更多的内核去处理更多的计算任务。因此GPU天然具备了执行大规模并行计算的能力。GPU的大规模应用使得集中化的数据计算处理能力变得前所未有的强大。
GPU和CPU之间并不是替代关系,GPU一般作为CPU的协助处理器,起到“加速”的作用,即以“CPU+GPU”的组合方式共同完成对数据的运算处理及模型训练。在训练过程中,当CPU遇到计算密集型任务时,将其中应用程序计算密集部分的工作负载交由GPU执行,通过并行计算的方式缩短运行时间,将CPU不擅长的事情交由擅长并行计算的GPU来做,同时让CPU专注于逻辑控制及更加复杂精细的计算,以此实现“加速”的目的。
表2:四种芯片类型优缺点比较
数据来源:网络搜集整理
图6:CPU与GPU架构比较图
数据来源:电子工程网
GPU、FPGA和ASIC都是作为CPU的协助处理器起到加速计算的作用,三者各有优缺点。GPU是一种通用芯片,它还可以应用于气象及海洋建模、数据科学分析、制造业、电子设计自动化等多个领域,并非专为机器学习设计的专用芯片。相较于GPU,FPGA和ASIC在计算速度上更胜一筹。但ASIC是专门为某种特定应用/算法开发的集成电路。即ASIC在获得计算速度提升的同时,牺牲了一定的灵活性。GPU、FPGA和ASIC三种芯片在各方面的比较情况为:
计算效率方面:CPU<GPU<FPGA<ASIC
灵活性方面:ASIC<FPGA<GPU<CPU
开发难度方面:CPU<GPU<FPGA<ASIC
因此,综合看来,FPGA会是一个较好的选择。拥有更快的计算速度的同时,又兼顾了灵活性,不拘泥于某种算法不可更改。目前,英特尔已经推出 CPU+FPGA 架构。 IBM、微软、 Facebook、亚马逊、百度、腾讯、阿里的数据中心均已采用 FPGA 或 CPU+FPGA。
除了以上四种主流芯片架构外,越来越多的公司开始着手研发适用于机器学习的专用芯片,例如Google研发的TPU 2代、IBM研发的TrueNorth、;这一类芯片主要针对特定算法以及特定框架进行全定制。