1.技术演进
深度学习(Deep Learning),是目前人工智能领域最流行的技术。具体来讲,深度学习模型由一系列相互关联的神经元组成,经训练后得到关联权重,数据通过整个网络便可自动得到更具有语义的特征表示,进一步可以直接用于分类图像和语音,甚至是控制无人机或是无人车。
深度学习试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象,与目前的人脑模型接近,符合人类层次化的组织概念、由简至繁分层抽象的认知过程。深度学习可以模拟人脑从外界环境中学习、理解甚至解决模糊歧义的过程。与浅层学习相比,深度学习最大的不同在于利用简单的神经网络实现更层次化的特征表示,取代人工挑选的复杂特征(即特征工程) 表示,并能够在具体任务上达到更好的效果。
深度学习的概念并不新颖,但直到近年才得到认可。业界普遍认为,是超大规模训练数据、复杂的深层模型和分布式并行训练造就了今天深度学习的繁荣。具体来讲,包含多个隐藏层的神经网络,利用现在的高性能计算机和人工标注的海量数据,通过迭代得到超过浅层模型的效果。深度学习带来了模式识别和机器学习方面的革命。
图表1 神经网络发展时间线
目前的深度学习模型可以分为神经网络和深度模型两条发展路径如下表所列。
图表2 神经网络方面的发展
1943 年McCulloch 和Pitt 设计的人工神经元
1958 年Rosenblatt 提出感知机
1979 年Fukushima 设计最早的卷积神经网络,已经具备了多层卷积和池化,但是训练方法上还存在缺陷
1985 年Hinton 将反向传播引入神经网络训练,发现可以得出带有语义的网络结构
1985 年业界提出认知学问题:人类是否也是类似的依赖神经元连接来进行认知
1989 年Hinton 提出自编码 (Auto Encoder)
1999 年Hinton 等人提出受限玻尔兹曼机
1965 年乌克兰数学家Ivakhnenko 发表深度前向多层感知器
1971 年Ivakhnenko 设计八层网络
1986 年Dechter 将深度学习引入到机器学习领域
2000 年Aizenberg 等将其与人工神经网络结合
在应用方面,第一个成功的例子是1989 年LeCun 利用卷积神经网络结合反向传播训练方法进行手写体识别,后期推广到全美支票识别。然而由于人工智能行业整体的不景气,训练速度和规模受限等问题,包括1997 年Hochreiter 提出的LSTM 等技术的应用不如1995 年Vapnik 提出的支持向量机方法广泛。
21 世纪初,伴随着信息革命的发展,计算机性能大幅提升,大规模并行计算设备如GPU 等的出现,使得深度学习模型的训练过程可以提速千倍,在同等海量数据规模的情况下,其表现超过了支持向量机等浅层模型,并随着数据的增加可获得持续改进,业界对其应用前景的评估日益乐观,开始源源不断地投入深度学习的改进中。
2.深度学习的三个里程碑
任何技术的发展过程,都伴随着一些重要的突破节点,在深度学习技术方面,可划分为模型初步、大规模尝试和遍地开花三个阶段。
2006 年前后,深度模型初见端倪,这个阶段主要的挑战是如何有效训练更大更深层次的神经网络,曾一度因为梯度方法容易造成层次间信息损失而效果受到影响。业界尝试利用逐层预训练的方法(还有一种尝试方法是上文提到的LSTM)来解决该问题,预训练首先通过无监督学习得到一些比较稳定的特征,而后用监督学习稍加调整便可得到较好效果,最早是1992 年Schmidhuber 提出,而后Hinton 等人在2006 年改进为前向反馈。
图表3 Google 大脑计划
2011 年底,大公司逐步开始进行大规模深度学习的设计和部署。“Google 大脑”项目启动,由时任斯坦福大学教授的吴恩达和Google 首席架构师Jeff Dean 主导,专注于发展最先进的神经网络。初期重点是使用大数据集以及海量计算,尽可能拓展计算机的感知和语言理解能力。该项目最终采用了16000 个GPU 搭建并行计算平台,以YouTube 视频中的猫脸作为数据对网络进行训练和识别,引起业界轰动,此后在语音识别和图像识别等领域均有所斩获。
图表4 ImageNet 挑战赛
近年来深度学习获得了非常广泛的关注,其进展的一个直观的体现就是ImageNet 竞赛。在这个竞赛中参赛算法在数千个种类图像和视频的大规模数据上测试检测和分类的正确率快速上升。
图表5 2011 年至2015 年 ImageNet 图片分类结果
近年来,随着GPU 的提速,深层网络的很多训练过程已无需预训练就可直接进行,如2011 年Ciresan 等利用深度卷积神经网络赢得多项文本识别、交通标志识别和医学图像识别等竞赛。2012年之前,竞赛中物体的识别率一直提升得非常缓慢(低于70%)。在2012 年引入深度学习之后,Hinton 等人赢得ILSVRC-2012 ImageNet ,识别率一跃升至80%,现在已超过95%。这标志了人工特征工程正逐步被深度模型所取代。从排名来看,深度学习目前具有压倒性优势,已经取代了传统视觉方法在这一竞赛中的地位。
进一步地,强化学习也重新成为焦点,2016 年Google 子公司DeepMind 研发的基于深度强化学习网络的AlphaGo ,与人类顶尖棋手李世石进行了一场“世纪对决”,最终赢得比赛。AlphaGo突破了传统程序,搭建了两套模仿人类思维的深度学习:价值网络承担棋局态势评估,策略网络选择如何落子。
3.深度学习发展现状
3.1多家巨头力推产业布局
技术的发展离不开产业巨头的推进,深度学习也不例外。Facebook 是最早使用GPU 加速DNN训练的公司之一。深度网络和GPU 在Facebook 人工智能研究院(FAIR)推出的专门用于深度学习训练的计算平台中扮演着重要的作用。Facebook 寄希望以此推动机器智能的发展并帮助人们更好的交流,目前在信息推荐、过滤攻击言论、推荐热门话题、搜索结果排名等等已经使用了大量人工智能和深度学习的技术。在Facebook ,还有许多应用能够从机器学习模型中获利,然而对于很多没有深厚机器学习背景的工程师来说,想要利用这些机器学习基础设施,还是有很大的困难。2014 年末Facebook 发布FBLearner Flow ,试图重新定义自己的机器学习平台,把人工智能与机器学习中最先进的算法以最便利的方式提供给Facebook 的工程师。这一平台能方便地在不同的产品中重复使用多种算法,并可以延伸到成千上万种模拟的定制试验操中,轻松地对实验进行管理。这一平台提供了创新性的功能,比如从流水线定义和对Python 编码进行自动化平行移用中自动生成用户界面(UI)试验。目前,超过25% 的Facebook 工程开发团队都在使用FBLearner Flow。其未来的改进计划包括效率、速度和自动化等。
上文提到,Google 也在深度学习领域投入了大量力量。以2011 年“Google 大脑”为契机,Google 逐年在多个内部重点项目上如广告系统、YouTube、Gmail 和机器翻译等部署深度学习,为Google 进一步改善产品质量和用户体验提供了强有力的支持。此外,鉴于开源Android 的成功经验,Google 在深度学习模型和工具方面也积极拥抱开源,目前正在大力推动TensorFlow 开源深度学习平台。Google 目前有能力快速搭建和训练基于海量数据的模型,解决真实世界中的实际问题,并在不同的平台(比如移动端、GPU、云端)部署生产模型,相关技术都以云服务API的形式提供。
图表6 Google 产品中深度学习的应用在迅速增长
就国内来讲,百度是较早引入并大规模实践深度学习的典范。2013 年,百度成立深度学习实验室,是百度历史上首个正式成立的前瞻性研究机构,致力于“让计算机像人脑一样智能”的科学研究,并推出“百度大脑”计划,支撑百度相关产品线模型的改进,近年来在搜索技术、自然语言处理、机器翻译、机器学习、数据挖掘、推荐及个性化、语音、多媒体等领域取得了大量成果,并广泛应用于百度PC 和移动端产品当中。
国内另一家使用深度学习技术的典型企业是科大讯飞。科大讯飞从2010 年开展DNN 语音识别研究,2011 年上线首个中文语音识别DNN 系统,2013 年语种识别首创BN-ivec 技术,2016 年将注意力模型神经网络应用于认知智能。
图表7 科大讯飞的深度学习之路
3.2三大领域技术革新
图表8 基于深度学习技术的创业公司
在产业界巨头和学术界精英的不断推动下,基于深度学习的人工智能终于迎来了“春天”,数不清的应用和创业公司出现,试图利用深度模型和垂直领域的积累来掘得第一桶金,主要聚集的领域有图像识别、语音识别和自然语言处理。
图像识别领域最早尝试深度学习,从早期LeCun 的卷积神经网络,到Hinton 的更深层次网络,再到百度以图搜图和人脸识别等技术,整个领域逐渐从人工特征工程和浅层学习模型,转向基于深度学习和大数据的方法。如Face++ 以云服务方式提供基于深度学习的人脸识别技术,并且在金融、安防、零售领域分别开始了商业化探索。
语音识别领域,深度学习技术能够更好描述特征状态空间,尤其可以引入更高维的表示,能更好描述特征间相关性,取代了长久以来占据垄断性地位的混合高斯模型。如百度采用深度学习技术,进行声音建模的语音识别系统相比于传统的GMM 语音识别系统而言,相对误识别率能降低25% ,早在2012 年就上线了基于深度学习技术的语音搜索系统。自然语言处理领域是近两年来深度学习逐步渗透的一个领域,比起图像和语音,自然语言单词带有较强的语义内涵,需要更细致更扩展的表示方法才能极大程度上保留信息。2003 年,加拿大蒙特利尔大学教授Yoshua Bengio 等提出用embedding 的方法将词映射到一个矢量表示空间,然后用非线性神经网络来表示N-Gram 模型,此后语义变得可计算。通过大规模未标注文本和无监督学习,可以自动学习出字、词、句子的语义表示,一举摆脱知识库、词法、句法等传统自然语言障碍。Google自然语言翻译的最新进展。
3.3三大开源框架促进技术落地
深度学习目前表现出来的趋势,不光是技术,还有商业模式的转变。过去几个月,所有巨头都将自己的深度学习IP 开源。核心目的是为了吸引用户、扩大市场,吸引人才、加速创新。开源会使技术发展更快,但主宰市场的仍将是巨头。
深度学习算法和平台本身的设计与实现是较难的问题,也不应该是应用开发者所需要过分关注的事情。近年来依托开源运动,全球互联网巨头从2015 年起掀起新一轮最前沿技术平台开源共享的风潮。例如谷歌和Facebook 分别将深度学习平台TensorFlow 和Torchnet 全面开源,在全球范围内大幅推进人工智能与深度学习技术的应用普及,扩大产业整体的市场规模,极大加速了深度学习在应用领域的迅速推广。这些软件所具有的共同设计特征是:容易表达、可扩展、多平台适用、可重复使用和快速见效。
TensorFlow 是Google 的第二代机器学习系统,用来理解学习大规模数据和模型。这一系统非常灵活,可适用于图像、语音、文字理解等不同应用。Google 使用了上千块GPU 并在性能上较同等CPU 极大的提升。其优点主要有三个,一是高度扩展的设计,更快的实验速度加速研究进程;二是容易分享模型,开发代码应用到可重用的效果;三是通过同一个系统把研究工作直接用于生产环境。
Paddle 是百度的深度学习系统,已经在内部运行和推广多年,多次获得百度最高奖荣誉,并且已经做出了一些实际的产品,较为成熟。在性能和各项指标上都有优点,如代码简洁、设计干净,无过多抽象、速度较快,显存占用小、可多机多卡并行,支持异构、文档翔实等等,推出后Paddle也获得了较高的肯定,是一个不错的深度学习工具,在国内有较大的应用潜力。
另一个值得一提的是Caffee ,是一个清晰而且高效的深度学习框架,以易用性、扩展性和速度快迅速得到业界的认可,并且在文档撰写和代码迭代过程中非常注重与用户的互动,时至今日已拥有一个庞大的开发社区。
GitHub 根据上述框架衍生出数十个开源项目,构成良好的深度学习开发社区氛围,进一步推动了该技术的推广和落地。下表列举了星级超过1500 的大型项目。
图表9 GitHub 深度学习开源排名
4.深度学习未来展望
技术的发展,尤其是到大规模落实阶段,都难免会发现局限性,也正是这些局限性,不断促进业界思考和改进技术,进而得到未来的发展方向。
就深度学习而言,首先,缺乏理论支持。对于深度学习架构,业界存在一系列的疑问:卷积神经网络为什么是一个好的架构(事实上其存在梯度散射等缺点),深度学习的结构需要多少隐层,在一个大规模的卷积网络中到底需要多少有效的参数(很多权重相互之间似乎都存在冗余),随机梯度下降方法优化权重得到一个局部最优值如何解决。虽然深度学习在很多实际的应用中取得了突出的效果,但这些问题一直困扰着深度学习的研究人员。深度学习方法常常被视为黑盒,大多数的结论确认都由经验而非理论来确定。不管是为了构建更好的深度学习系统,还是为了提供更好的解释,深度学习都还需要更完善的理论支撑。随着神经网络框架变得越来越复杂而精密,在感知、语言翻译等方面的大部分最先进的神经网络框架正在发展并且不再仅仅关于简单前馈式(feed forward)框架或者卷积式框架(convolutional)。特别地,它们正在混合并匹配不同的神经网络技术如LSTM、卷积、自定义目标函数、多皮层柱(multiple cortical columns)等等。此外,神经网络超参数和网络结构的设计目前多依赖人工经验,如何能够自动且高效地得到优化是值得关注的方向。
其次,缺乏推理能力。深度学习技术缺乏表达因果关系的手段,缺乏进行逻辑推理的方法。解决这个问题的一种典型方法是将深度学习与结构化预测相结合。目前几个带有结构化预测模块的增强的深度学习系统已经被提出来用于OCR、身体姿态检测和语义分割等任务中。总的来说,需要更多新的思路以应用于需要复杂推理的任务中。尽管深度学习和简单推理已经应用于语音和手写字识别较长时间,仍需要在大的向量上使用新的范式来代替基于规则的字符表达式操作。最终,那些结合了复杂推理和表示学习的系统很可能为人工智能带来巨大的进步。深度学习和强化学习的交叉应用会继续,不仅仅聚焦在图像、声音和文本数据。如端对端学习控制无人车和机器人,使用深度学习和强化学习来完成原始传感器数据到实际动作执行器的直接映射。深度学习模型正从过去的只是分类一步步发展到试图理解如何在方程中加入规划控制相关的变量。
第三,缺乏短时记忆能力。人类的大脑有着惊人的记忆功能,不仅能够识别个体案例,更能分析输入信息之间的整体逻辑序列。这些信息序列富含有大量的内容,信息彼此间有着复杂的时间关联性。例如在自然语言理解的许多任务(例如问答系统)中,需要一种方法来临时存储分隔的片段,正确解释视频中的事件,并能够回答有关它的问题,这需要网络具备记住的视频中发生的事件抽象表示的能力。然而包括递归神经网络在内的深度学习系统,都不能很好地存储多个时间序列上的记忆。这使得研究人员提出在神经网络中增加独立的记忆模块,如LSTM ,记忆网络(Memory Networks ),神经图灵机(Neural Turing Machines ),和Stack 增强RNN (stack-Augmented RNN)。虽然这些方法思路很直观,也取得了一定的成果,但在未来仍需要更多的尝试和新的思路。
最后,缺乏执行无监督学习的能力。无监督学习在人类和动物的学习中占据主导地位,我们通过观察能够发现世界的内在结构,无需被告知每一个客观事物的名称。在机器学习领域,神经网络的复兴恰恰是在无监督学习取得不断进步的2005 年左右,虽然无监督学习可以帮助特定的深度网络进行“预训练”,但最终绝大部分能够应用于实践的深度学习方法都采用了纯粹的有监督学习。这并不能代表非监督学习在深度学习中没有作用,反而具有非常大的潜力,因为业界拥有的非标记数据比标记数据多很多,只是尚未找到合适的非监督学习算法。非监督学习在未来存在巨大的研究空间,今后计算机视觉的进步将有赖于在无监督学习上取得突破,尤其是对于视频的理解。