第14卷第1期 智能系统学报 Vol.14 No.1 2019年1月 CAAI Transactions on Intelligent Systems Jan.2019 D0:10.11992/tis.201808019 网络出版地址:http:/kns.cnki.net/kcms/detail/23.1538.TP.20181025.1409.002.html 关于深度学习的综述与讨论 胡越,罗东阳',花奎,路海明2,张学工 (1.清华大学自动化系,北京100084,2.清华大学信息技术研究院,北京100084,3.清华大学生命学院,北京 100084) 摘要:机器学习是通过计算模型和算法从数据中学习规律的一门学问,在各种需要从复杂数据中挖掘规律的 领域中有很多应用,已成为当今广义的人工智能领域最核心的技术之一。近年来,多种深度神经网络在大量机 器学习问题上取得了令人瞩目的成果,形成了机器学习领域最亮眼的一个新分支一深度学习,也掀起了机器 学习理论、方法和应用研究的一个新高潮。对深度学习代表性方法的核心原理和典型优化算法进行了综述,回 顾与讨论了深度学习与以往机器学习方法之间的联系与区别,并对深度学习中一些需要进一步研究的问题进 行了初步讨论。 关键词:深度学习:机器学习;卷积神经网络:循环神经网络:多层感知器:自编码机:学习算法:机器学习理论 中图分类号:TP18文献标志码:A文章编号:1673-4785(2019)01-0001-19 中文引用格式:胡越,罗东阳,花奎,等.关于深度学习的综述与讨论.智能系统学报,2019,14(1):1-19. 英文引用格式:HU Yue,LUO Dongyang,.HUA Kui,,etal.Overview on deep learning.CAAI transactions on intelligent systems,, 2019,141):1-19. Overview on deep learning HU Yue',LUO Dongyang',HUA Kui',LU Haiming',ZHANG Xuegong'3 (1.Department of Automation,Tsinghua University,Beijing 100084,China;2.Institute of Information Technology,Tsinghua Uni- versity,Beijing 100084,China;3.School of Life Sciences,Tsinghua University,Beijing 100084,China) Abstract:Machine learning is a discipline that involves learning rules from data with mathematical models and com- puter algorithms.It is becoming one of the core technologies in the field of artificial intelligence,and it is useful for many applications that require mining rules from complex data.In recent years,various deep neural network models have achieved remarkable results in many fields,and this has given rise to an interesting new branch of the machine learning:deep learning.Deep learning leads the new wave of studies on theories,methods,and applications of machine learning.This article reviews the relationships and differences between deep learning and previous machine learning methods,summarizes the key principles and typical optimization algorithms of representative deep learning methods, and discusses some remaining problems that need to be further addressed. Keywords:deep learning;machine learning;convolutional neural network;recurrent neural network;multilayer per- ceptron;auto-encoder,learning algorithms;machine learning theory 从现象中发现规律,是人类智能最核心的能科,研究从数据中学习分类信息的数学方法,形 力之一,人们也很早就开始研究如何用数学方法 成了最早的机器学习研究。“机器学习”这个术语 来分析数据中的规律。从1930年Fisher线性判 也是20世纪50年代末提出来的,最初并不专指 别和1950年感知器算法开始,诞生了模式识别学 从数据中学习,更多地包括了机器推理等经典人 工智能问题,直到20世纪后期才逐渐被用来专指 收稿日期:2018-08-24.网络出版日期:2018-10-26 基金项目:国家自然科学基金项目(61721003). 从数据中学习。现在,这2个术语的含义已经非 通信作者:张学工.E-mail:zhangxg(@tsinghua.edu.cn 常接近,模式识别专指对数据的分类,机器学习
DOI: 10.11992/tis.201808019 网络出版地址: http://kns.cnki.net/kcms/detail/23.1538.TP.20181025.1409.002.html 关于深度学习的综述与讨论 胡越1,罗东阳1,花奎1,路海明2,张学工1,3 (1. 清华大学 自动化系,北京 100084; 2. 清华大学 信息技术研究院,北京 100084; 3. 清华大学 生命学院,北京 100084) 摘 要:机器学习是通过计算模型和算法从数据中学习规律的一门学问,在各种需要从复杂数据中挖掘规律的 领域中有很多应用,已成为当今广义的人工智能领域最核心的技术之一。近年来,多种深度神经网络在大量机 器学习问题上取得了令人瞩目的成果,形成了机器学习领域最亮眼的一个新分支——深度学习,也掀起了机器 学习理论、方法和应用研究的一个新高潮。对深度学习代表性方法的核心原理和典型优化算法进行了综述,回 顾与讨论了深度学习与以往机器学习方法之间的联系与区别,并对深度学习中一些需要进一步研究的问题进 行了初步讨论。 关键词:深度学习;机器学习;卷积神经网络;循环神经网络;多层感知器;自编码机;学习算法;机器学习理论 中图分类号:TP18 文献标志码:A 文章编号:1673−4785(2019)01−0001−19 中文引用格式:胡越, 罗东阳, 花奎, 等. 关于深度学习的综述与讨论 [J]. 智能系统学报, 2019, 14(1): 1–19. 英文引用格式:HU Yue, LUO Dongyang, HUA Kui, et al. Overview on deep learning[J]. CAAI transactions on intelligent systems, 2019, 14(1): 1–19. Overview on deep learning HU Yue1 ,LUO Dongyang1 ,HUA Kui1 ,LU Haiming2 ,ZHANG Xuegong1,3 (1. Department of Automation, Tsinghua University, Beijing 100084, China; 2. Institute of Information Technology, Tsinghua University, Beijing 100084, China; 3. School of Life Sciences, Tsinghua University, Beijing 100084, China) Abstract: Machine learning is a discipline that involves learning rules from data with mathematical models and computer algorithms. It is becoming one of the core technologies in the field of artificial intelligence, and it is useful for many applications that require mining rules from complex data. In recent years, various deep neural network models have achieved remarkable results in many fields, and this has given rise to an interesting new branch of the machine learning: deep learning. Deep learning leads the new wave of studies on theories, methods, and applications of machine learning. This article reviews the relationships and differences between deep learning and previous machine learning methods, summarizes the key principles and typical optimization algorithms of representative deep learning methods, and discusses some remaining problems that need to be further addressed. Keywords: deep learning; machine learning; convolutional neural network; recurrent neural network; multilayer perceptron; auto-encoder; learning algorithms; machine learning theory 从现象中发现规律,是人类智能最核心的能 力之一,人们也很早就开始研究如何用数学方法 来分析数据中的规律。从 1930 年 Fisher 线性判 别和 1950 年感知器算法开始,诞生了模式识别学 科,研究从数据中学习分类信息的数学方法,形 成了最早的机器学习研究。“机器学习”这个术语 也是 20 世纪 50 年代末提出来的,最初并不专指 从数据中学习,更多地包括了机器推理等经典人 工智能问题,直到 20 世纪后期才逐渐被用来专指 从数据中学习。现在,这 2 个术语的含义已经非 常接近,模式识别专指对数据的分类,机器学习 收稿日期:2018−08−24. 网络出版日期:2018−10−26. 基金项目:国家自然科学基金项目 (61721003). 通信作者:张学工. E-mail:zhangxg@tsinghua.edu.cn. 第 14 卷第 1 期 智 能 系 统 学 报 Vol.14 No.1 2019 年 1 月 CAAI Transactions on Intelligent Systems Jan. 2019
·2 智能系统学报 第14卷 则指学习数据中的各种规律尤其是分类规律,而 历了3次大的起伏。1943年,受生物神经元工作 “深度学习”是机器学习中最新发展起来的一类方 模式的启发,心理学家MeCulloch和数学家Pits 法的总称。 发表了神经元的数学模型。1949年,Hebb提 很多模式识别方法和统计学习方法,如线性 出神经元上连接的强度可以通过训练调整的思 判别、近邻法、罗杰斯特回归、决策树、支持向量 想。1957年,Rosenblatt!1o]提出感知器(per- 机等,已经在很广泛的问题上取得了成功,如广 ceptron)的概念和模型,提出了用数据训练其参数 告点击率预测、希格斯子信号识别、基于基因 的算法并用当时的电子管硬件实现,成为第一个 表达的疾病分型等。这些统计学习方法往往 可学习的机器。这些工作构成了后来人工神经网 直接根据特征对样本进行分类,不进行特征变换 络的基础,当时的感知器模型只有一层,1969年 或只进行一次特征变换或选择。与深度学习方法 Minsky等!指出感知器模型无法学习如异或这 相比,这些方法中特征变换较少,或者依赖于上 样的非线性关系,虽然可以通过试凑多个感知器 游处理来对特征进行变换,所以被有些人称作“浅 模型的叠加来实现非线性分类,但对这种多个感 层模型”或“浅层学习方法”。 知器构成的模型如何构造和如何训练其参数难以 这些浅层模型在很多应用上取得了成功,但 解决。而在同一时期,1956年夏天在Dartmouth 是也存在很大局限,即模型的效果非常依赖于上 召开的暑期研讨会发起了以符号主义和知识推理 游提供的特征。一方面,构造特征的过程是很困 为核心的人工智能(A)研究,也就是经典AI研 难的,需要对问题有丰富的先验知识,对原始数 究,伴随着这一时期经典AI的快速发展21),人 据详尽地了解:另一方面,在先验知识不充分的 工神经网络尚在萌芽阶段(当时还未出现“人工神 情况下,需要人为构建的特征数目庞大,如某些 经网络”这个术语)就进人了第一次低谷。 广告点击率预测算法中人工构造的特征维数高达 人工神经网络(artificial neural networks,ANN) 数亿维山,刀。 这一术语被广泛使用是在20世纪80年代,并很 深度学习是一种深层的机器学习模型,其深 快被简称为神经网络(neural networks,.NN)。1982 度体现在对特征的多次变换上。常用的深度学习 年,Hopfield等提出了一个具有完整理论基础 模型为多层神经网络,神经网络的每一层都将输 的神经网络模型。20世纪80年代中期,反向传 入非线性映射,通过多层非线性映射的堆叠,可 播(back-propagation,BP)算法被应用于训练神经 以在深层神经网络中计算出非常抽象的特征来帮 网络5网,解决了多层感知器无法训练的问题,从 助分类。比如:在用于图像分析的卷积神经网络 而使神经网络具有了非线性表示能力,以BP算法 中,将原始图像的像素值直接输入,第一层神经 训练的多层感知器(multi-.layer perceptron,MLP) 网络可以视作边缘的检测器,而第二层神经网络 成为最成功的神经网络模型。同期,Kohonen町 则可以检测边缘的组合,得到一些基本模块,第 发展了自组织映射(self-organizing map,SOM)竞 三层之后的一些网络会将这些基本模块进行组 争学习神经网络模型。这些方法在很多模式识别 合,最终检测出待识别目标。深度学习的出现使 问题上取得了很好的效果,掀起了神经网络研究 得人们在很多应用中不再需要单独对特征进行选 真正的高潮,现在人们通常称之为神经网络研究 择与变换,而是将原始数据输入到模型中,由模 的第二次高潮。限制性玻耳兹曼机(restrictive 型通过学习给出适合分类的特征表示。 Boltzman machine,RBM)等非监督学习模型也是 当前,深度学习是机器学习领域最热门的分 在这一时期被提出来的20。 支,并且有多个高度集成化的方法平台可以让使 但神经网络方法也存在很多问题。首先,多 用者无需对方法原理充分了解就可以搭建程序进 层感知器虽然具有极强的非线性表示能力,但也他 行实验和应用。本文尝试结合笔者的理解对最典 因此导致参数解空间中存在大量的局部极值,使 型的深度学习方法原理进行综述,对深度学习与 用梯度下降法进行训练很容易产生一个并不好的 以往机器学习方法的关系进行讨论,并对未来需 局部极小值,导致多层感知器在很多问题上推广 要研究的问题进行展望。 能力较差。其次,虽然神经网络在理论上可以有 1机器学习简史 很多层,但多层神经网络训练速度很慢,这既是 因为当时的硬件条件限制,也是因为多层神经网 深度学习的基础是人工神经网络,其发展经 络存在梯度消散现象,即误差在反向传播过程中
则指学习数据中的各种规律尤其是分类规律,而 “深度学习”是机器学习中最新发展起来的一类方 法的总称。 很多模式识别方法和统计学习方法,如线性 判别、近邻法、罗杰斯特回归、决策树、支持向量 机等,已经在很广泛的问题上取得了成功,如广 告点击率预测[1-3] 、希格斯子信号识别[4] 、基于基因 表达的疾病分型[5-6] 等。这些统计学习方法往往 直接根据特征对样本进行分类,不进行特征变换 或只进行一次特征变换或选择。与深度学习方法 相比,这些方法中特征变换较少,或者依赖于上 游处理来对特征进行变换,所以被有些人称作“浅 层模型”或“浅层学习方法”。 这些浅层模型在很多应用上取得了成功,但 是也存在很大局限,即模型的效果非常依赖于上 游提供的特征。一方面,构造特征的过程是很困 难的,需要对问题有丰富的先验知识,对原始数 据详尽地了解;另一方面,在先验知识不充分的 情况下,需要人为构建的特征数目庞大,如某些 广告点击率预测算法中人工构造的特征维数高达 数亿维[1, 7]。 深度学习是一种深层的机器学习模型,其深 度体现在对特征的多次变换上。常用的深度学习 模型为多层神经网络,神经网络的每一层都将输 入非线性映射,通过多层非线性映射的堆叠,可 以在深层神经网络中计算出非常抽象的特征来帮 助分类。比如:在用于图像分析的卷积神经网络 中,将原始图像的像素值直接输入,第一层神经 网络可以视作边缘的检测器,而第二层神经网络 则可以检测边缘的组合,得到一些基本模块,第 三层之后的一些网络会将这些基本模块进行组 合,最终检测出待识别目标。深度学习的出现使 得人们在很多应用中不再需要单独对特征进行选 择与变换,而是将原始数据输入到模型中,由模 型通过学习给出适合分类的特征表示。 当前,深度学习是机器学习领域最热门的分 支,并且有多个高度集成化的方法平台可以让使 用者无需对方法原理充分了解就可以搭建程序进 行实验和应用。本文尝试结合笔者的理解对最典 型的深度学习方法原理进行综述,对深度学习与 以往机器学习方法的关系进行讨论,并对未来需 要研究的问题进行展望。 1 机器学习简史 深度学习的基础是人工神经网络,其发展经 历了 3 次大的起伏。1943 年,受生物神经元工作 模式的启发,心理学家 McCulloch 和数学家 Pitts 发表了神经元的数学模型[8]。1949 年,Hebb[9] 提 出神经元上连接的强度可以通过训练调整的思 想。1957 年 ,Rosenblatt [ 1 0 ] 提出感知器 (perceptron) 的概念和模型,提出了用数据训练其参数 的算法并用当时的电子管硬件实现,成为第一个 可学习的机器。这些工作构成了后来人工神经网 络的基础,当时的感知器模型只有一层,1969 年 Minsky 等 [11] 指出感知器模型无法学习如异或这 样的非线性关系,虽然可以通过试凑多个感知器 模型的叠加来实现非线性分类,但对这种多个感 知器构成的模型如何构造和如何训练其参数难以 解决。而在同一时期,1956 年夏天在 Dartmouth 召开的暑期研讨会发起了以符号主义和知识推理 为核心的人工智能 (AI) 研究,也就是经典 AI 研 究,伴随着这一时期经典 AI 的快速发展[12-13] ,人 工神经网络尚在萌芽阶段 (当时还未出现“人工神 经网络”这个术语) 就进入了第一次低谷。 人工神经网络 (artificial neural networks,ANN) 这一术语被广泛使用是在 20 世纪 80 年代,并很 快被简称为神经网络 (neural networks,NN)。1982 年,Hopfield 等 [14] 提出了一个具有完整理论基础 的神经网络模型。20 世纪 80 年代中期,反向传 播 (back-propagation,BP) 算法被应用于训练神经 网络[15-18] ,解决了多层感知器无法训练的问题,从 而使神经网络具有了非线性表示能力,以 BP 算法 训练的多层感知器 (multi-layer perceptron,MLP) 成为最成功的神经网络模型。同期,Kohonen[19] 发展了自组织映射 (self-organizing map,SOM) 竞 争学习神经网络模型。这些方法在很多模式识别 问题上取得了很好的效果,掀起了神经网络研究 真正的高潮,现在人们通常称之为神经网络研究 的第二次高潮。限制性玻耳兹曼机 (restrictive Boltzman machine,RBM) 等非监督学习模型也是 在这一时期被提出来的[20]。 但神经网络方法也存在很多问题。首先,多 层感知器虽然具有极强的非线性表示能力,但也 因此导致参数解空间中存在大量的局部极值,使 用梯度下降法进行训练很容易产生一个并不好的 局部极小值,导致多层感知器在很多问题上推广 能力较差。其次,虽然神经网络在理论上可以有 很多层,但多层神经网络训练速度很慢,这既是 因为当时的硬件条件限制,也是因为多层神经网 络存在梯度消散现象,即误差在反向传播过程中 ·2· 智 能 系 统 学 报 第 14 卷
第1期 胡越,等:关于深度学习的综述与讨论 3 会迅速衰减,导致对深层网络权值的修正非常缓 层模型,如Softmax分类器、MLP神经网络、SVM 慢,因此人们实际上只使用二层或三层的神经网 等,实现更好的分类性能。在这个意义上,深度 络。对这些问题缺乏如何解决或如何避免的理论 学习方法不能简单地看作取代了以往的浅层学 指导,实际应用中多靠试算和经验,限制了神经 习方法,而是在原有各种方法基础上的集成与 网络的进一步发展,使神经网络研究走向低谷。 发展。 与此同时,基于20世纪70年代在苏联开展 从以上回顾可以看到,所谓人工智能3次浪 的统计学习理论研究基础,Vapnik等a在1992一 潮的说法并不十分严格。在1957年提出人工智 1995年发明了支持向量机(support vector machines,. 能(A)这个术语的时候,其含义并非指现在人们 SVM)方法,该方法在小样本下有较好的推广能 热议的机器学习,而是以符号主义、知识工程等 力,几乎不需要调参,算法复杂度不依赖于样本 为核心的狭义的AI。这种狭义的AI研究在20世 维数,再加上有着较强的理论基础支持,迅速成 纪80年代走入低谷,但伴随着的是神经网络热潮 为机器学习研究的主流方向2,在机器学习研究 的出现,而与20世纪90年代神经网络逐渐降温 中掀起了SVM热潮,同时人们对神经网络的研 同时出现的是SVM热潮,这一热潮一直持续到 究迅速降温。 2010年前后,深度学习掀起了新的热潮。与以往 神经网络的再次崛起开始于2006年,Hinton 的热潮不同,这一新的热潮并没有导致传统浅层 等提出了深度置信网络(deep belief network, 机器学习方法和狭义AI研究更加低落,而是带动 DBN)及限制性波耳滋曼机(RBM)的训练算法. 了几乎所有机器学习相关的研究。同时,人们开 并将该方法应用于手写字符的识别,取得了很好 始正式把基于数据的机器学习纳入到人工智能范 的效果。文献[24]提出,先使用非监督学习方法 畴,并使机器学习走到了人工智能的最核心。从 逐层初始化参数,再使用监督学习方法微调整个 这个意义上看,这种人工智能研究从20世纪三四 网络的训练方法,有效解决了深层神经网络学习 十年代就已经开始了,随后陆续出现了感知器、 的问题。这样的训练方法能够将神经网络放在一 符号主义与机器推理、神经网络、支持向量机、深 个较好的初始值上,容易收敛到较好的局部极 度学习等多个研究热潮,并未陷入低谷,当前热 值。之后的几年中,深度神经网络蓬勃发展,并 潮的最大特点是业外人士对人工智能的关注达到 被一般化为“深度学习”,许多深度学习的训练技 了前所未有的程度。 巧被提出来,比如参数的初始化方法、新型激活 函数、Dropout(舍弃)训练方法等,这些技巧较好 2深度学习的核心学习算法 地解决了当结构复杂时传统神经网络存在的过拟 合、训练难的问题。与此同时,计算机和互联网 深度学习最常用于各种监督模式识别问题, 的发展也使得在诸如图像识别这样的问题中可以 比如图像识别、自然语言识别等。在讨论深度学 积累前所未有的大量数据对神经网络进行训练。 习的典型模型之前,我们先来讨论作为各种深度 2012年的ImageNet竞赛中,Krizhevsky等2使用 学习模型和算法共同基础的核心学习算法。一般 卷积神经网络使准确率提升了10%,第一次显著 地,深度神经网络包含输人层、多个隐含层以及 地超过了手工设计特征加浅层模型进行学习的模 输出层,传统多层感知器神经网络训练的反向传 式,在业界掀起了深度学习的热潮。2015年,Google 播(BP)算法仍然是深度神经网络训练的核心算 旗下DeepMind公司研发的AlphaGo使用深度学 法,它包括信息的前向传播过程和误差梯度的反 习方法在围棋比赛中击败了欧洲围棋冠军2,使 向传播过程。 得深度学习影响日益广泛。有人把当前深度学习 多层感知器的基本结构如图1所示,每层都 的大发展称作人工智能的第3次热潮。 包含若干节点,I是输人层节点个数,H和H2是 深度学习现在已经用来泛指各种基于多层 2个隐含层的节点个数,O是输出层的节点个数, 网络结构的机器学习模型,通过多层模型可以 、w、wa是各层之间的连接权重,b、bk、b是各 实现更复杂的函数关系。与浅层模型相比,深度 层的偏置,、、是节点的输入与偏置的总和, 学习直接把原始观测数据作为输入,通过多层模 y、、是对z、、z进行sigmoid函数运算后的输 型进行逐级特征提取与变换,实现更有效的特征 出。连接的权重为待训练参数,通过反向传播过 表示。在此基础上,往往在最后一级连接一个浅 程进行训练调整
会迅速衰减,导致对深层网络权值的修正非常缓 慢,因此人们实际上只使用二层或三层的神经网 络。对这些问题缺乏如何解决或如何避免的理论 指导,实际应用中多靠试算和经验,限制了神经 网络的进一步发展,使神经网络研究走向低谷。 与此同时,基于 20 世纪 70 年代在苏联开展 的统计学习理论研究基础,Vapnik 等 [21-22] 在 1992— 1995 年发明了支持向量机 (support vector machines, SVM) 方法,该方法在小样本下有较好的推广能 力,几乎不需要调参,算法复杂度不依赖于样本 维数,再加上有着较强的理论基础支持,迅速成 为机器学习研究的主流方向[23] ,在机器学习研究 中掀起了 SVM 热潮,同时人们对神经网络的研 究迅速降温。 神经网络的再次崛起开始于 2006 年,Hinton 等 [24] 提出了深度置信网络 (deep belief network, DBN) 及限制性波耳兹曼机 (RBM) 的训练算法, 并将该方法应用于手写字符的识别,取得了很好 的效果。文献 [24] 提出,先使用非监督学习方法 逐层初始化参数,再使用监督学习方法微调整个 网络的训练方法,有效解决了深层神经网络学习 的问题。这样的训练方法能够将神经网络放在一 个较好的初始值上,容易收敛到较好的局部极 值。之后的几年中,深度神经网络蓬勃发展,并 被一般化为“深度学习”,许多深度学习的训练技 巧被提出来,比如参数的初始化方法、新型激活 函数、Dropout(舍弃) 训练方法等,这些技巧较好 地解决了当结构复杂时传统神经网络存在的过拟 合、训练难的问题。与此同时,计算机和互联网 的发展也使得在诸如图像识别这样的问题中可以 积累前所未有的大量数据对神经网络进行训练。 2012 年的 ImageNet 竞赛中,Krizhevsky 等 [25] 使用 卷积神经网络使准确率提升了 10%,第一次显著 地超过了手工设计特征加浅层模型进行学习的模 式,在业界掀起了深度学习的热潮。2015 年,Google 旗下 DeepMind 公司研发的 AlphaGo 使用深度学 习方法在围棋比赛中击败了欧洲围棋冠军[26] ,使 得深度学习影响日益广泛。有人把当前深度学习 的大发展称作人工智能的第 3 次热潮。 深度学习现在已经用来泛指各种基于多层 网络结构的机器学习模型,通过多层模型可以 实现更复杂的函数关系。与浅层模型相比,深度 学习直接把原始观测数据作为输入,通过多层模 型进行逐级特征提取与变换,实现更有效的特征 表示。在此基础上,往往在最后一级连接一个浅 层模型,如 Softmax 分类器、MLP 神经网络、SVM 等,实现更好的分类性能。在这个意义上,深度 学习方法不能简单地看作取代了以往的浅层学 习方法,而是在原有各种方法基础上的集成与 发展。 从以上回顾可以看到,所谓人工智能 3 次浪 潮的说法并不十分严格。在 1957 年提出人工智 能 (AI) 这个术语的时候,其含义并非指现在人们 热议的机器学习,而是以符号主义、知识工程等 为核心的狭义的 AI。这种狭义的 AI 研究在 20 世 纪 80 年代走入低谷,但伴随着的是神经网络热潮 的出现,而与 20 世纪 90 年代神经网络逐渐降温 同时出现的是 SVM 热潮,这一热潮一直持续到 2010 年前后,深度学习掀起了新的热潮。与以往 的热潮不同,这一新的热潮并没有导致传统浅层 机器学习方法和狭义 AI 研究更加低落,而是带动 了几乎所有机器学习相关的研究。同时,人们开 始正式把基于数据的机器学习纳入到人工智能范 畴,并使机器学习走到了人工智能的最核心。从 这个意义上看,这种人工智能研究从 20 世纪三四 十年代就已经开始了,随后陆续出现了感知器、 符号主义与机器推理、神经网络、支持向量机、深 度学习等多个研究热潮,并未陷入低谷,当前热 潮的最大特点是业外人士对人工智能的关注达到 了前所未有的程度。 2 深度学习的核心学习算法 深度学习最常用于各种监督模式识别问题, 比如图像识别、自然语言识别等。在讨论深度学 习的典型模型之前,我们先来讨论作为各种深度 学习模型和算法共同基础的核心学习算法。一般 地,深度神经网络包含输入层、多个隐含层以及 输出层,传统多层感知器神经网络训练的反向传 播 (BP) 算法仍然是深度神经网络训练的核心算 法,它包括信息的前向传播过程和误差梯度的反 向传播过程。 ωi j ωjk ωkl bj bk bl zj zk zl yj yk yl zj zk zl 多层感知器的基本结构如图 1 所示,每层都 包含若干节点,I 是输入层节点个数,H1 和 H2 是 2 个隐含层的节点个数,O 是输出层的节点个数, 、 、 是各层之间的连接权重, 、 、 是各 层的偏置, 、 、 是节点的输入与偏置的总和, 、 、 是对 、 、 进行 sigmoid 函数运算后的输 出。连接的权重为待训练参数,通过反向传播过 程进行训练调整。 第 1 期 胡越,等:关于深度学习的综述与讨论 ·3·
4 智能系统学报 第14卷 输出层O v,=sigmoid ( 前计算损失函数对隐含节点输出值的梯度和对连 @uYx+br 接权重的梯度。将连接权重向负梯度方向适度调 y=sigmoid ( 整得到新一轮的参数。用大量样本如此循环训练 隐含层H 多次,直到损失函数不再下降或达到设定的迭代 y-sigmoid(e) 次数,就完成了神经网络的训练过程。 隐含层H 高y+6 对于一个或两个隐层的多层感知器网络来 说,可以直接用BP算法进行训练。但对于有更 输人层1 多层复杂结构的深度学习模型,则需要结合深层 (a)网络的前向传播 网络结构设计采用多种训练技巧。下面就对典型 输出层O 器0,小 深层网络结构和对应算法的核心思想进行讨论。 EE型 3深度学习的网络结构 2,y,a 隐含层H 6E_OE aau忘 深度学习的性能很大程度上取决于网络的结 隐含层H: 构。对于不同类型的数据和问题,人们发展了多 种不同的网络结构模型。 OE_OE Oy 3.1自编码机与限制性玻耳兹曼机 输人层I 02y0正 (b)网络的反向传播 自编码机(auto encoder,AE)与限制性玻耳兹 曼机(RBM)是深度学习中使用较多的2种非监 图1多层感知器前向传播与反向传播过程 督学习的神经网络模型,但它们通常并不直接用 Fig.1 Processes of forward propagation and back propa- 于解决非监督学习问题,而是通过非监督学习找 gation of multilayer perceptron 到更好体现数据内在规律的特征表示,再用到监 图l(a)示意了信号在网络中前向传播的过 督学习的深层神经网络模型中,常常被用于神经 程,每个节点中都包含2步操作,先对上一层节点 网络的初始化及学习,适用于下游分类的特征表示。 输出值进行线性组合,再对得到的中间值进行非 自编码机2830是一种特殊的多层感知器,网 线性变换后输出。对于1个输入样本,经过上述 络结构包括编码器与解码器2部分,如图2(a)所 2步操作可以得到第1层隐含节点的输出值,隐 示。对于给定训练集{x,x2,…,x,自编码机的学 含节点输出值就是特征的某种抽象表示,可以重 习目标是输入本身,即 复这个过程得到更深层次的隐含节点值,越深层 次的隐含节点所表示的特征越抽象,对于最后一 hw(x)=g(fx)≈x,i=l,2,…,n 层隐含节点,可以连接到输出层中进行分类并输 式中:∫代表编码器,g代表解码器,h(x)为在自 出。实验表明,将神经网络视作特征提取器,将 编码器中权值和偏置项分别为W和b情况下输 最后一层特征输入到如SVM等其他分类器中, 入为x时的输出值。显然,如果不对网络结构进 也能获得很好的分类效果刃。网络输出的分类结 行限制,网络无法学习到有意义的信息。比如, 果,可以与真实标签比对计算误差或损失函数 假设隐含节点数目与输入节点数目相同,并定义 值。当输出结果与真实标签相等时损失为零,二 fr)=g(x)=x,i=1,2,…,n 者相差越大损失函数值越大,常见的损失函数有 即可实现目标,但这样的网络仅仅是将输入复制 二次损失、对数损失等。在训练样本上的总损失 到了隐含状态和输出,没有学到任何信息。一种 是监督学习中的优化目标,常用梯度下降法优化 有用的自编码机结构是隐含节点的数目比输入节 这个目标,这个过程就是机器的“学习”或用样本 点数目少,如图2(a)所示,这样迫使网络对数据 对机器的“训练”。 的特征进行压缩。当各个特征相互独立时,想用 要对神经网络各层的参数进行训练,需要计 少量隐含状态表示所有特征就很困难。但是如果 算损失对网络中间各层参数的梯度,BP算法就是 特征之间存在一定的相关性,算法就可以发现这 把损失从输出层逐层往前传递,这个过程叫做误 样的相关性并学习到特征的一种压缩表示。实际 差的反向传播,如图1(b)所示,其中E为损失函 上,当网络中连接都为线性连接时,算法的压缩 数,为目标输出,fO,)为损失函数对y的偏微 结果与主成分分析(PCA)相同;当网络中连接为 分。算法的核心是用链式求导法从输出层逐层向 非线性时,自编码机能学到比核主成分分析(KPCA)
图 1(a) 示意了信号在网络中前向传播的过 程,每个节点中都包含 2 步操作,先对上一层节点 输出值进行线性组合,再对得到的中间值进行非 线性变换后输出。对于 1 个输入样本,经过上述 2 步操作可以得到第 1 层隐含节点的输出值,隐 含节点输出值就是特征的某种抽象表示,可以重 复这个过程得到更深层次的隐含节点值,越深层 次的隐含节点所表示的特征越抽象,对于最后一 层隐含节点,可以连接到输出层中进行分类并输 出。实验表明,将神经网络视作特征提取器,将 最后一层特征输入到如 SVM 等其他分类器中, 也能获得很好的分类效果[27]。网络输出的分类结 果,可以与真实标签比对计算误差或损失函数 值。当输出结果与真实标签相等时损失为零,二 者相差越大损失函数值越大,常见的损失函数有 二次损失、对数损失等。在训练样本上的总损失 是监督学习中的优化目标,常用梯度下降法优化 这个目标,这个过程就是机器的“学习”或用样本 对机器的“训练”。 tl f (yl ,tl) yl 要对神经网络各层的参数进行训练,需要计 算损失对网络中间各层参数的梯度,BP 算法就是 把损失从输出层逐层往前传递,这个过程叫做误 差的反向传播,如图 1(b) 所示,其中 E 为损失函 数 , 为目标输出, 为损失函数对 的偏微 分。算法的核心是用链式求导法从输出层逐层向 前计算损失函数对隐含节点输出值的梯度和对连 接权重的梯度。将连接权重向负梯度方向适度调 整得到新一轮的参数。用大量样本如此循环训练 多次,直到损失函数不再下降或达到设定的迭代 次数,就完成了神经网络的训练过程。 对于一个或两个隐层的多层感知器网络来 说,可以直接用 BP 算法进行训练。但对于有更 多层复杂结构的深度学习模型,则需要结合深层 网络结构设计采用多种训练技巧。下面就对典型 深层网络结构和对应算法的核心思想进行讨论。 3 深度学习的网络结构 深度学习的性能很大程度上取决于网络的结 构。对于不同类型的数据和问题,人们发展了多 种不同的网络结构模型。 3.1 自编码机与限制性玻耳兹曼机 自编码机 (auto encoder ,AE) 与限制性玻耳兹 曼机 (RBM) 是深度学习中使用较多的 2 种非监 督学习的神经网络模型,但它们通常并不直接用 于解决非监督学习问题,而是通过非监督学习找 到更好体现数据内在规律的特征表示,再用到监 督学习的深层神经网络模型中,常常被用于神经 网络的初始化及学习,适用于下游分类的特征表示。 { x 1 , x 2 ,··· , x n } 自编码机[28-30] 是一种特殊的多层感知器,网 络结构包括编码器与解码器 2 部分,如图 2(a) 所 示。对于给定训练集 ,自编码机的学 习目标是输入本身,即 hW,b ( x i ) = g ( f ( x i )) ≈ x i , i = 1,2,··· ,n hW,b ( x i ) x i 式中:f 代表编码器,g 代表解码器, 为在自 编码器中权值和偏置项分别为 W 和 b 情况下输 入为 时的输出值。显然,如果不对网络结构进 行限制,网络无法学习到有意义的信息。比如, 假设隐含节点数目与输入节点数目相同,并定义 f ( x i ) = g ( x i ) = x i , i = 1,2,··· ,n 即可实现目标,但这样的网络仅仅是将输入复制 到了隐含状态和输出,没有学到任何信息。一种 有用的自编码机结构是隐含节点的数目比输入节 点数目少,如图 2(a) 所示,这样迫使网络对数据 的特征进行压缩。当各个特征相互独立时,想用 少量隐含状态表示所有特征就很困难。但是如果 特征之间存在一定的相关性,算法就可以发现这 样的相关性并学习到特征的一种压缩表示。实际 上,当网络中连接都为线性连接时,算法的压缩 结果与主成分分析 (PCA) 相同;当网络中连接为 非线性时,自编码机能学到比核主成分分析 (KPCA) 输出层 O 隐含层 H1 隐含层 H2 输入层 I l j k i (a) 网络的前向传播 (b) 网络的反向传播 ωkl ωij ωjk 输出层 O 隐含层 H1 隐含层 H2 输入层 I l j k i ∂E ∂ωkl ∂E ∂zl = yk ∂E ∂zk ∂E ∂yk ∂yk ∂zk = ∂E ∂zl ∂E ∂yl ∂yl ∂zl = ∂E ∂yl =f (yl , tl ) ∂E ∂yk ∂E ∂zl =∑ ωkl O l=1 yl=sigmoid (zl ) yk=sigmoid (zk ) yj=sigmoid (zj ) H2 k=1 zl=∑ωkl yk+bl H1 j=1 zk=∑ωjk yj+bk I i=1 zj=∑ωij yi+bj 图 1 多层感知器前向传播与反向传播过程 Fig. 1 Processes of forward propagation and back propagation of multilayer perceptron ·4· 智 能 系 统 学 报 第 14 卷
第1期 胡越,等:关于深度学习的综述与讨论 ·5 更灵活的数据压缩表示。自编码机作为一种特殊 Loss=L(x,hh (x))+B 1-p 的多层感知器,可以用一般的BP算法训练网络 plog +(1-P)lo 参数,也可以使用recirculation方法进行训练Bu。 式中:s为隐含节点数目;左边第一项是衡量自编 码机能否良好地恢复输入的损失函数;左边第二 解码器 项是针对稀疏性的惩罚项;B是稀疏惩罚项系数, 该值越大获得的稀疏性越强。训练该目标函数得 到的隐含状态将是稀疏的。 另一种改进方法是去噪自编码机,将训练 数据进行微小扰动之后输入,并试图恢复加人噪 声之前的样本;而收缩自编码机【35】对 hwb(x)/6x进行惩罚。2种方法都可以使得自编 码机拥有一定对输入的抗噪能力。 编码器 在深度学习模型中,经常把输入端设计为自 (a)自编码机 编码器,在进行以上非监督训练后去掉解码器部 分,用中间层的输出作为对样本的压缩表示,接 入到下一层神经网络作为输入。也有些模型采用 多个自编码器进行级联来构成栈式自编码机6, 逐级训练编码器,实现对样本更好的表示,如图 2(b)所示。 限制性玻耳兹曼机RBMI20,373调是一种能量模 型,通过建立概率分布与能量函数之间的关系, 求解能量函数,刻画数据内在的规律。典型的 RBM网络结构如图3(a)所示。之所以使用能量 (b)级联的自编码机 模型是因为:很多时候无法直接得到数据的分布 图2自编码机与级联的自编码机 形式,根据统计力学的结论,任何概率分布都能 Fig.2 Auto-encoder and concatenated auto-encoder 用基于能量的模型来描述。通过基于能量的模 普通的自编码机存在一些潜在的问题,例如: 型,能对数据分布进行建模。在能量模型中,数 当编码器和解码器的能力过强时,编码器可以直 据的概率分布可由式(1)计算得到: 接将原始数据x映射为i再由解码器还原,这实际 P()=e e (1)) 只是实现了对训练样本的记忆,没有发现数据中 式中E(x)为样本x的能量,分母为归一化项。在限 的内在规律。因此,人们发展了改进的方法,对 制性玻耳兹曼机中,能量函数的定义为 编码器与解码器的能力进行限制,比如在损失函 E(v,h)=-vTWh-bTy-cTh 数中加入对编码器、解码器的惩罚项,以获取一 式中:y,h分别表示样本x中的可见状态与隐含状 些好的性质。以稀疏自编码机2)为例,定义 态,即图3(a)中节点;W是可见状态与隐含状态 sigmoid神经元输出为1时为激活状态、输出为 之间边的权重;b与c分别为可见状态与隐含状 0时为关闭状态,那么对隐含层中的节点,可以 态的偏置项。根据式(1)可以得到v和两个随机 变量的联合分布,也就可以计算随机变量的边缘 定义其输出的稀疏性为P,且有 分布p()以及两个条件分布ph)和p(hp)。通过 P= 条件分布,可以进行可见状态与隐含状态的相互 n =1 生成,对观测数据的非监督学习达到稳定后,可 式中:a(x)是隐含节点j的输出值;n是训练集样 以用隐层状态作为原始观测数据的抽象表示。一 本数目;P,就是对整个训练集取神经元输出的平 个训练良好的RBM能将样本映射为隐含状态之 均值作为稀疏性的衡量指标。我们希望P,为一个 后,使用隐含状态大概率地恢复原样本。在实际 较小的值P,为了衡量稀疏性是否达到标准,通常 使用中,隐含状态经常作为数据的表示输入到下 使用KL散度作为惩罚项,这样目标函数就变为 阶段的分类器中
更灵活的数据压缩表示。自编码机作为一种特殊 的多层感知器,可以用一般的 BP 算法训练网络 参数,也可以使用 recirculation 方法进行训练[31]。 x i ρj 普通的自编码机存在一些潜在的问题,例如: 当编码器和解码器的能力过强时,编码器可以直 接将原始数据 映射为 i 再由解码器还原,这实际 只是实现了对训练样本的记忆,没有发现数据中 的内在规律。因此,人们发展了改进的方法,对 编码器与解码器的能力进行限制,比如在损失函 数中加入对编码器、解码器的惩罚项,以获取一 些好的性质。以稀疏自编码机[32-33] 为例,定义 sigmoid 神经元输出为 1 时为激活状态、输出为 0 时为关闭状态,那么对隐含层中的节点 j,可以 定义其输出的稀疏性为 ,且有 ρj = 1 n ∑n i=1 aj ( x i ) aj ( x i ) ρj ρj ρ 式中: 是隐含节点 j 的输出值;n 是训练集样 本数目; 就是对整个训练集取神经元输出的平 均值作为稀疏性的衡量指标。我们希望 为一个 较小的值 ,为了衡量稀疏性是否达到标准,通常 使用 KL 散度作为惩罚项,这样目标函数就变为 Loss = L ( x,hw,b (x) ) +β ∑s j=1 [ ρlog ρ ρj +(1−ρ)log 1−ρ 1−ρj ] 式中:s 为隐含节点数目;左边第一项是衡量自编 码机能否良好地恢复输入的损失函数;左边第二 项是针对稀疏性的惩罚项;β 是稀疏惩罚项系数, 该值越大获得的稀疏性越强。训练该目标函数得 到的隐含状态将是稀疏的。 ∂hW,b (x) /∂x 另一种改进方法是去噪自编码机[34] ,将训练 数据进行微小扰动之后输入,并试图恢复加入噪 声之前的样本;而收缩自编码机 [ 3 5 ] 对 进行惩罚。2 种方法都可以使得自编 码机拥有一定对输入的抗噪能力。 在深度学习模型中,经常把输入端设计为自 编码器,在进行以上非监督训练后去掉解码器部 分,用中间层的输出作为对样本的压缩表示,接 入到下一层神经网络作为输入。也有些模型采用 多个自编码器进行级联来构成栈式自编码机[36] , 逐级训练编码器,实现对样本更好的表示,如图 2(b) 所示。 限制性玻耳兹曼机 RBM[20, 37-38] 是一种能量模 型,通过建立概率分布与能量函数之间的关系, 求解能量函数,刻画数据内在的规律。典型的 RBM 网络结构如图 3(a) 所示。之所以使用能量 模型是因为:很多时候无法直接得到数据的分布 形式,根据统计力学的结论,任何概率分布都能 用基于能量的模型来描述[39]。通过基于能量的模 型,能对数据分布进行建模。在能量模型中,数 据的概率分布可由式 (1) 计算得到: P(x) = e −E(x) ∑e −E(x) (1) 式中 E (x) 为样本 x 的能量,分母为归一化项。在限 制性玻耳兹曼机中,能量函数的定义为 E (v, h) = −v TWh− b T v− c T h v, h x v h v p(v) p(v|h) p(h|v) 式中: 分别表示样本 中的可见状态与隐含状 态,即图 3(a) 中节点;W 是可见状态与隐含状态 之间边的权重;b 与 c 分别为可见状态与隐含状 态的偏置项。根据式 (1) 可以得到 和 两个随机 变量的联合分布,也就可以计算随机变量 的边缘 分布 以及两个条件分布 和 。通过 条件分布,可以进行可见状态与隐含状态的相互 生成,对观测数据的非监督学习达到稳定后,可 以用隐层状态作为原始观测数据的抽象表示。一 个训练良好的 RBM 能将样本映射为隐含状态之 后,使用隐含状态大概率地恢复原样本。在实际 使用中,隐含状态经常作为数据的表示输入到下 一阶段的分类器中。 (a) 自编码机 解码器 编码器 ... ... ... x1 h1 h2 x2 x3 xn−2 xn−1 xn hm−1 hm xn ^ xn−1 ^ xn−2 ^ x3 ^ x2 ^ x1 ^ (b) 级联的自编码机 ... ... x1 x2 x3 xn−2 xn−1 xn h1 (1) h2 (1) h3 (1) h1 (2) h2 (2) h3 (2) h4 (1) h3 (1) xn ^ xn−1 ^ xn−2 ^ x3 ^ x2 ^ x1 ^ h4 (1) ^ ^ h2 (1) ^ h1 (1) ^ 图 2 自编码机与级联的自编码机 Fig. 2 Auto-encoder and concatenated auto-encoder 第 1 期 胡越,等:关于深度学习的综述与讨论 ·5·