第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·
·6 智能系统学报 第14卷 部最优解。也有研究表明,预训练能够起到正 隐层 则化的作用,增强模型的推广能力(泛化性能)。 3.2卷积神经网络 卷积神经网络(convolutional neural network, 可见层 (b3 CNN)是一种深层前馈型神经网络,最常用于图 3 (a)限制性玻耳兹曼(RBM 像领域的监督学习问题,比如图像识别、计算机 视觉等。早在1989年,LeCun等就提出了最初 隐层3 000000000 的CNN模型,并在之后进行了完善,在AlexNet 取得2012年ImageNet竞赛冠军之后2,CNN在 隐层2 000000000 图像识别领域几乎成为深度学习的代名词,在其 他领域中也得到越来越多的应用。 隐层1 ○○OOOO○OO 卷积神经网络通常包含卷积层、降采样层、 RBM 全连接层与输出层,卷积层和降采样层可以有多 可见层○○○○○○○○○) 个。一个经典卷积神经网络LeNet如图4a)所示。 (b)深度置信网络 卷积层的作用是进行特征提取。对于一幅输 入图像,一层卷积层中包含多个卷积核,每个卷 图3限制性玻耳兹曼机与深度置信网络 Fig.3 Restricted Boltzmann machine and deep belief net- 积核都能与输入图像进行卷积运算产生新的图 work 像,新图像上的每个像素即卷积核所覆盖的一小 为了达到刻画原数据分布的目的,希望理论 片区域内图像的一种特征,用多个卷积核分别对 的边缘分布p()与实际观测到的数据分布q)尽 图像进行卷积即可提取不同种类的特征。比如, 可能相吻合,于是应用KL散度作为衡量分布相 在图4(a)的例子中,C,层中输人为6幅特征图, 似程度的指标,也就是我们的训练目标: 包含16个卷积核,最终产生了16幅特征图的输 KL(glp)=∑qn(g》-∑qn(p(w 出,本层的特征图是上一层提取到的特征图的不 同组合。 式中:2为参数空间;左边第一项表示数据的熵,为常 数项:左边第项可用样本进行估计.即2加(0 6×28×28 ×32×32 6×14×14 6×10×10 120x1×1 16×5x5 ×1 84 原始 10x1 图像 其中S为样本集。这样KL散度的优化问题可以 转化为最大似然问题,求解过程仍然使用梯度下 卷积层 层 降法更新参数。与自编码机类似,限制性玻耳兹 曼机也可以通过增加惩罚项的方式来获取样本的 (a)经典卷积神经网络LeNet 稀疏特征表示o。 全连接层 在深度学习的应用中,自编码机与限制性玻 全连接层 耳兹曼机常常用于参数的预训练。如图3(b)所 全连接层 示,可以将自编码机和限制性玻耳兹曼机堆叠起 降采样层,核3×3,步幅2 来构成深度置信网络1。该网络可以采用逐层 卷积层,核3×3,步幅1 训练的方式训练参数,即每轮训练中,输入固定 卷积层,核3×3,步幅1 不变,训练网络得到一层的参数与输出,将输出 卷积层,核3×3,步幅1 传输到下一层网络中并固定,之后训练得到下一 降采样层,核3×3,步幅2 层网络的参数,如此循环直至每一层自编码机与 卷积层.核5×5.步幅2 限制性玻耳兹曼机都训练完成。训练完成之后, 可以将网络参数保留组成多层感知器进行监督学 降采样层,核3×3,步幅2 卷积层,核11×11.步幅4 习任务,使用BP算法对预训练的参数初始值进 行微调。这样初始化多层感知器的方式能够将初 人 始值放在一个较好的地方,从而收敛到较好的局 (b)深度卷积神经网络AlexNet
p(v) q(v) 为了达到刻画原数据分布的目的,希望理论 的边缘分布 与实际观测到的数据分布 尽 可能相吻合,于是应用 KL 散度作为衡量分布相 似程度的指标,也就是我们的训练目标: KL(q||p) = ∑ v∈Ω q(v)ln(q(v))− ∑ v∈Ω q(v)ln(p(v)) 1 l ∑ v∈S ln(p(v)) S 式中:Ω 为参数空间;左边第一项表示数据的熵,为常 数项;左边第二项可用样本进行估计,即 , 其中 为样本集。这样 KL 散度的优化问题可以 转化为最大似然问题,求解过程仍然使用梯度下 降法更新参数。与自编码机类似,限制性玻耳兹 曼机也可以通过增加惩罚项的方式来获取样本的 稀疏特征表示[40]。 在深度学习的应用中,自编码机与限制性玻 耳兹曼机常常用于参数的预训练。如图 3(b) 所 示,可以将自编码机和限制性玻耳兹曼机堆叠起 来构成深度置信网络[41-42]。该网络可以采用逐层 训练的方式训练参数,即每轮训练中,输入固定 不变,训练网络得到一层的参数与输出,将输出 传输到下一层网络中并固定,之后训练得到下一 层网络的参数,如此循环直至每一层自编码机与 限制性玻耳兹曼机都训练完成。训练完成之后, 可以将网络参数保留组成多层感知器进行监督学 习任务,使用 BP 算法对预训练的参数初始值进 行微调。这样初始化多层感知器的方式能够将初 始值放在一个较好的地方,从而收敛到较好的局 部最优解[36]。也有研究表明,预训练能够起到正 则化的作用,增强模型的推广能力 (泛化性能) [39]。 3.2 卷积神经网络 卷积神经网络 (convolutional neural network , CNN) 是一种深层前馈型神经网络,最常用于图 像领域的监督学习问题,比如图像识别、计算机 视觉等。早在 1989 年,LeCun 等 [43] 就提出了最初 的 CNN 模型,并在之后进行了完善[44] ,在 AlexNet 取得 2012 年 ImageNet 竞赛冠军之后[25] ,CNN 在 图像识别领域几乎成为深度学习的代名词,在其 他领域中也得到越来越多的应用。 卷积神经网络通常包含卷积层、降采样层、 全连接层与输出层,卷积层和降采样层可以有多 个。一个经典卷积神经网络 LeNet 如图 4(a) 所示。 卷积层的作用是进行特征提取。对于一幅输 入图像,一层卷积层中包含多个卷积核,每个卷 积核都能与输入图像进行卷积运算产生新的图 像,新图像上的每个像素即卷积核所覆盖的一小 片区域内图像的一种特征,用多个卷积核分别对 图像进行卷积即可提取不同种类的特征。比如, 在图 4(a) 的例子中,C2 层中输入为 6 幅特征图, 包含 16 个卷积核,最终产生了 16 幅特征图的输 出,本层的特征图是上一层提取到的特征图的不 同组合。 (b) 深度置信网络 ... ... 隐层 可见层 W cn c1 c2 c3 h1 h2 h3 hn bn b1 b2 b3 v1 v2 v3 vn 隐层3 隐层2 隐层1 可见层 RBM (a) 限制性玻耳兹曼 (RBM) 图 3 限制性玻耳兹曼机与深度置信网络 Fig. 3 Restricted Boltzmann machine and deep belief network (a) 经典卷积神经网络 LeNet 1×32×32 6×28×28 6×14×14 16×10×10 16×5×5 120×1×1 84×1×1 原始 10×1×1 图像 全连接层 F2 卷积层 C3 (1 920 核) 卷积层 C1 (6 核) 卷积层 C2 (16 核) 降采样层 S1 降采样层 S2 全连接层 F1 全连接层 全连接层 全连接层 降采样层,核 3×3,步幅 2 卷积层,核 5×5,步幅 2 降采样层,核 3×3,步幅 2 卷积层,核 11×11,步幅 4 降采样层,核 3×3,步幅 2 卷积层,核 3×3,步幅 1 卷积层,核 3×3,步幅 1 卷积层,核 3×3,步幅 1 输入 (b) 深度卷积神经网络 AlexNet ·6· 智 能 系 统 学 报 第 14 卷
第1期 胡越,等:关于深度学习的综述与讨论 。7· 全连接层 入 全连接层 7×7卷积,64核,步幅2 全连接层 降采样,步幅2 降采样层,核2x2.步幅2 卷积层,核3×3.步幅1 5×3卷积,64网 卷积层.核3×3.步幅1 B×3卷积,64阂 降采样层,核2×2,步幅2 B×3卷积,64摑 卷积层,核3×3,步幅1 B×3卷积,64摑 卷积层,核3×3,步幅1 3×3卷积,64摑 降采样层,核2×2,步幅2 卷积层,核3×3,步幅1 B×3卷积,64摑 卷积层,核3×3,步幅1 3×3卷积,128核,步幅2 降采样层,核2×2,步幅2 ×3卷积,128核 卷积层,核3×3,步幅1 B×3卷积,128核 卷积层,核3×3,步幅1 3×3卷积,128核 降采样层,核2×2,步幅2 卷积层。核3×3,步幅1 B×3卷积,128核 卷积层,核3×3,步幅1 B×3卷积,128枫 入 重复的类似层结构 (c)深度卷积神经网络VGGNet 5×3卷积,256核,步幅2 (输出3 B×3卷积,256核 Softmax B×3卷积,256梭 全连接 B×3卷积,256摑 降采样 (输出2 Inception Softmax B×3卷积,256核 Inception 全连接 5×3卷积,256枫 全连接 降采样 卷积 降采样 Inception 降采样 全连接] Inception 输出 (①深度卷积神经网络ResNet Inception Softmax Inception 全连接 单层网路 Inception 全连接 卷积 F(x) 降采样 降采样 单层网络 Inception Inception F(x)+x 降采样 归一化 (g)ResNetr中的捷径连接Shorteut 卷积 卷积 图4多种深度神经网络示意图 归一化 降采样 Fig.4 Schematics of different deep neural networks struc- 卷积 tures (输) 这样复杂的网络构成,如果直接采用BP算 (d)深度卷积神经网络GoogLeNet 法进行学习将过分复杂,需要适当的设计才能有 级联层】 效地进行学习。卷积层设计背后最重要的思想是 5×5卷积 稀疏连接与权值共享。稀疏连接即每一个输出特 ×1卷积 5×3卷利 ×1卷积 征图的像素都只与上一层特征图的小区域相关。 1×1卷积 ×1卷积 B×3卷积 这一方面契合了动物视觉细胞的感受野现象, 前一层的输出 另一方面能够保证特征具有平移不变性,这在图 (e)GoogLeNetr中的nception单元 像识别领域是非常重要的。权值共享指每次都使
这样复杂的网络构成,如果直接采用 BP 算 法进行学习将过分复杂,需要适当的设计才能有 效地进行学习。卷积层设计背后最重要的思想是 稀疏连接与权值共享。稀疏连接即每一个输出特 征图的像素都只与上一层特征图的小区域相关。 这一方面契合了动物视觉细胞的感受野现象[45] , 另一方面能够保证特征具有平移不变性,这在图 像识别领域是非常重要的。权值共享指每次都使 输入 重复的类似层结构 (f) 深度卷积神经网络ResNet 7 × 7卷积,64核,步幅2 降采样,步幅2 3 × 3卷积,64核 3 × 3卷积,64核 3 × 3卷积,64核 3 × 3卷积,64核 3 × 3卷积,64核 3 × 3卷积,64核 3 × 3卷积,128核 3 × 3卷积,128核 3 × 3卷积,128核 3 × 3卷积,128核 3 × 3卷积,128核 3 × 3卷积,128核,步幅2 3 × 3卷积,256核 3 × 3卷积,256核 3 × 3卷积,256核 3 × 3卷积,256核 降采样 3 × 3卷积,256核 全连接 3 × 3卷积,256核,步幅2 ... (g) ResNet中的捷径连接 Shortcut 单层网络 单层网络 x F (x) F (x) + x 图 4 多种深度神经网络示意图 Fig. 4 Schematics of different deep neural networks structures 输出2 输出1 Softmax 全连接 全连接 卷积 降采样 Softmax 全连接 全连接 卷积 降采样 输入 Inception Inception 降采样 归一化 卷积 卷积 归一化 降采样 卷积 Inception Inception Inception Inception Inception 降采样 Inception Inception 输出3 Softmax 全连接 降采样 降采样 1 × 1卷积 (d) 深度卷积神经网络GoogLeNet 前一层的输出 级联层 (e) GoogLeNet中的Inception单元 1 × 1卷积 1 × 1卷积 1 × 1卷积 3 × 3卷积 3 × 3卷积 5 × 5卷积 全连接层 全连接层 全连接层 降采样层,核 2×2,步幅 2 卷积层,核 3×3,步幅 1 卷积层,核 3×3,步幅 1 降采样层,核 2×2,步幅 2 卷积层,核 3×3,步幅 1 卷积层,核 3×3,步幅 1 降采样层,核 2×2,步幅 2 卷积层,核 3×3,步幅 1 卷积层,核 3×3,步幅 1 降采样层,核 2×2,步幅 2 卷积层,核 3×3,步幅 1 卷积层,核 3×3,步幅 1 降采样层,核 2×2,步幅 2 卷积层,核 3×3,步幅 1 卷积层,核 3×3,步幅 1 输入 (c) 深度卷积神经网络 VGGNet 第 1 期 胡越,等:关于深度学习的综述与讨论 ·7·
智能系统学报 第14卷 用同样的卷积核遍历整幅输入图像,这可以大大 训练速度与推广能力都有所增强。另外,网络中 减少参数的数目,起到正则化的作用。对于大多 加入了3个辅助分类器来提供梯度,减轻梯度消 数图像识别问题,如果某一种特征特别重要的话, 散的现象。2015年,ResNet!o1中引入了输入到输 在全图中任意位置中出现都应该具有判别效力。 出的直接连接,如图4(g)所示,认为网络学习目 降采样层会选取输入特征图的一个小区域, 标值与输入值的残差比直接学习目标值更为简 比如图4(a)中S,中即每次选取2×2的区域,将其 单,通过引入直接连接解决了深层网络的训练错 用一个数值进行表示,最常见的是取平均或选区 误率有时反而会比浅层网络的训练错误率高的问 域中的最大值。这种机制背后的思想主要包括 题,网络深度最多被提升到了152层,如图40所示。 3个方面:首先,能很快地减小数据的空间大小,如 除了在图像领域的应用,也有学者尝试把其 S,层的存在使特征从28×28维降低到了14×14 他领域的问题转化为类似图像识别的问题,采用 维,参数数目会随之减小,在一定程度上减轻过 或借鉴CNN方法取得了较好的效果。最为典型 拟合:其次,降采样层保证了CNN具有一定的抗 的例子是在自然语言处理中的应用。我们可以通 噪能力,如果在输入图像加入一定噪声,降采样 过将1个词或者1个字母表示为1个向量的方法 层的输出未必会发生变化,因为输入的微小变化 将1句话转化为二维的矩阵,然后在二维矩阵上 未必会影响区域内的最大值:最后,对图像的监 应用卷积神经网络。一般来说,卷积核的宽度选 督学习问题,大多数情况下特征的精确位置并不 用词向量维数,这样对矩阵进行卷积操作可以看 重要,重要的是特征出现与否以及其相对位置, 作是从句子中提取关键词语、词组特征,从而可 比如对于人脸识别问题,并不需要知道眼睛的精 以完成各类自然语言处理任务,比如文本分类四 确位置,只要能够判断出左上及右上区域存在眼 机器翻译例、语言模型5)等。再比如在围棋比赛 睛即可判断图像是否为人脸。 中,卷积神经网络也被用于提取棋盘特征,以此 CNN最后几层通常会连接几个全连接层,在 描述棋盘上双方的局势26。总的来说,一些能够 整幅图像层面进行特征组合与推断,形成利于分 转化为二维或者多维矩阵特征,并且局部特征有 类的特征。全连接层中输入与输出的每个节点之 较强相关性的任务,都比较适合用CNN进行建模。 间都有相互连接,因此会带来大量的待估计参数。 33循环神经网络 近年来全连接层开始越来越少被使用,比如有研 循环神经网铬(recurrent neural network,RNN) 究发现其作用也可以用所谓的1×1卷积核的卷积 有别于前面所提到的前馈类型的神经网络,其主 层替代。卷积神经网络的训练本质上仍然利用 要目的是对序列型数据进行建模,例如语音识 别、语言翻译、自然语言理解、音乐合成等序列数 梯度的链式传递法则。 据。这类数据在推断过程中需要保留序列上下文 CNN在图像领域获得了极大的成功,也不断 的信息,所以其隐节点中存在反馈环,即当前时 有新的发展。在网络架构方面,网络不断变深, 刻的隐含节点值不仅与当前节点的输入有关,也 理论上越深层的网络能够抓取图像中越抽象的特 与前一时刻的隐含节点值有关。 征,也就拥有更强的学习能力,当然随之而来的 循环神经网络的结构如图5(a)所示。网络的 训练难度也会变大。2012年,Krizhevsky等2提 输入为序列型数据,记为{x1,x2,…,-,x,,下 出了AlextNet,,包含5层卷积层与3层全连接层, 标1是时刻,每一时刻的输入数据都为一个向 如图4(b)所示。网络中采用了新型激活函数 量。在处理文本等非数值的序列数据时,需要将 ReLU帮助模型收敛,并提出Dropout方法来减轻 非数值的输入(如文本中的单词)转变为向量表 过拟合现象。2014年VGGNet出现,如图4c) 示,常用的表示方法包括独热(one-hot)编码或 所示,网络中只使用较小的卷积核与降采样尺 用word2vec将单词表示为高维向量s:s狗等,如图 寸,但将网络提升到了最多19层,验证了网络层 5b)所示。也可以在输入层与隐含节点之间加入 数加深能够帮助网络取得更好的性能。同年, 一层映射层,来训练针对当前任务的词向量。每 GoogLeNet!481网络继承了“网络中网络”思想a, 一时刻都有一个隐含状态h,h2,…,h-,h,…,这 如图4(d)所示,采用了Inception结构作为基本单 些隐含状态中就记录了当前时刻之前的序列中所 元,如图4(e)所示,Inception结构中大量使用 包含的信息,每一时刻的隐含节点需要综合之前 1×1的卷积核,极大地减少了参数的数目,比起 时刻的信息以及当前时刻输入中包含的信息,将 AlexNet参数从6000万减少到了500万个,使得 二者结合起来传递给下一时刻。隐含节点的更新
用同样的卷积核遍历整幅输入图像,这可以大大 减少参数的数目,起到正则化的作用。对于大多 数图像识别问题,如果某一种特征特别重要的话, 在全图中任意位置中出现都应该具有判别效力。 2×2 28×28 14×14 降采样层会选取输入特征图的一个小区域, 比如图 4(a) 中 S1 中即每次选取 的区域,将其 用一个数值进行表示,最常见的是取平均或选区 域中的最大值。这种机制背后的思想主要包括 3 个方面:首先,能很快地减小数据的空间大小,如 S 1 层的存在使特征从 维降低到了 维,参数数目会随之减小,在一定程度上减轻过 拟合;其次,降采样层保证了 CNN 具有一定的抗 噪能力,如果在输入图像加入一定噪声,降采样 层的输出未必会发生变化,因为输入的微小变化 未必会影响区域内的最大值;最后,对图像的监 督学习问题,大多数情况下特征的精确位置并不 重要,重要的是特征出现与否以及其相对位置, 比如对于人脸识别问题,并不需要知道眼睛的精 确位置,只要能够判断出左上及右上区域存在眼 睛即可判断图像是否为人脸。 CNN 最后几层通常会连接几个全连接层,在 整幅图像层面进行特征组合与推断,形成利于分 类的特征。全连接层中输入与输出的每个节点之 间都有相互连接,因此会带来大量的待估计参数。 近年来全连接层开始越来越少被使用,比如有研 究发现其作用也可以用所谓的 1×1 卷积核的卷积 层替代[46]。卷积神经网络的训练本质上仍然利用 梯度的链式传递法则。 CNN 在图像领域获得了极大的成功,也不断 有新的发展。在网络架构方面,网络不断变深, 理论上越深层的网络能够抓取图像中越抽象的特 征,也就拥有更强的学习能力,当然随之而来的 训练难度也会变大。2012 年,Krizhevsky 等 [25] 提 出了 AlextNet,包含 5 层卷积层与 3 层全连接层, 如图 4(b) 所示。网络中采用了新型激活函数 ReLU 帮助模型收敛,并提出 Dropout 方法来减轻 过拟合现象。2014 年 VGGNet[47] 出现,如图 4(c) 所示,网络中只使用较小的卷积核与降采样尺 寸,但将网络提升到了最多 19 层,验证了网络层 数加深能够帮助网络取得更好的性能。同年, GoogLeNet[48] 网络继承了“网络中网络”思想[49] , 如图 4(d) 所示,采用了 Inception 结构作为基本单 元,如图 4(e) 所示,Inception 结构中大量使用 1×1 的卷积核,极大地减少了参数的数目,比起 AlexNet 参数从 6 000 万减少到了 500 万个,使得 训练速度与推广能力都有所增强。另外,网络中 加入了 3 个辅助分类器来提供梯度,减轻梯度消 散的现象。2015 年,ResNet[50] 中引入了输入到输 出的直接连接,如图 4(g) 所示,认为网络学习目 标值与输入值的残差比直接学习目标值更为简 单,通过引入直接连接解决了深层网络的训练错 误率有时反而会比浅层网络的训练错误率高的问 题,网络深度最多被提升到了 152 层,如图 4(f) 所示。 除了在图像领域的应用,也有学者尝试把其 他领域的问题转化为类似图像识别的问题,采用 或借鉴 CNN 方法取得了较好的效果。最为典型 的例子是在自然语言处理中的应用。我们可以通 过将 1 个词或者 1 个字母表示为 1 个向量的方法 将 1 句话转化为二维的矩阵,然后在二维矩阵上 应用卷积神经网络。一般来说,卷积核的宽度选 用词向量维数,这样对矩阵进行卷积操作可以看 作是从句子中提取关键词语、词组特征,从而可 以完成各类自然语言处理任务,比如文本分类[51] 、 机器翻译[52] 、语言模型[53] 等。再比如在围棋比赛 中,卷积神经网络也被用于提取棋盘特征,以此 描述棋盘上双方的局势[26]。总的来说,一些能够 转化为二维或者多维矩阵特征,并且局部特征有 较强相关性的任务,都比较适合用 CNN 进行建模。 3.3 循环神经网络 循环神经网络 (recurrent neural network,RNN) 有别于前面所提到的前馈类型的神经网络,其主 要目的是对序列型数据进行建模,例如语音识 别、语言翻译、自然语言理解、音乐合成等序列数 据。这类数据在推断过程中需要保留序列上下文 的信息,所以其隐节点中存在反馈环,即当前时 刻的隐含节点值不仅与当前节点的输入有关,也 与前一时刻的隐含节点值有关。 {x1, x2,··· , xt−1, xt ,···} {h1,h2,··· ,ht−1,ht ,···} 循环神经网络的结构如图 5(a) 所示。网络的 输入为序列型数据,记为 ,下 标 t 是时刻,每一时刻的输入数据都为一个向 量。在处理文本等非数值的序列数据时,需要将 非数值的输入 (如文本中的单词) 转变为向量表 示,常用的表示方法包括独热 (one-hot) 编码[54] 或 用 word2vec 将单词表示为高维向量[55-56] 等,如图 5(b) 所示。也可以在输入层与隐含节点之间加入 一层映射层,来训练针对当前任务的词向量。每 一时刻都有一个隐含状态 ,这 些隐含状态中就记录了当前时刻之前的序列中所 包含的信息,每一时刻的隐含节点需要综合之前 时刻的信息以及当前时刻输入中包含的信息,将 二者结合起来传递给下一时刻。隐含节点的更新 ·8· 智 能 系 统 学 报 第 14 卷
第1期 胡越,等:关于深度学习的综述与讨论 9 公式为 0:Softmax (Vh,) (2) h,=(Wh1+Ux) 式(2)中Softmax就是罗杰斯特回归在多类 式中:σ代表非线性单元:W是历史数据对当前输 问题上的推广形式,Softmax将多分类的输出数值 出的权重;U是当前数据对输出的权重。对于不 转化为相对概率,使我们更容易对输出进行理解 同类型的问题,循环神经网络可以采用不同种类 和比较。其定义为:假设有一个数组X,X,表示 的输出,比如:对于序列的分类问题,可以将所 X中的第i个元素,那么元素X的Softmax值定义为 ex 有时刻的隐含状态收集到一起作为序列特征输入 S:=JeM 到分类器中进行分类,如图5(c)所示;而对于序 列生成或语言模型问题6,s列,每一时刻都应有相 为了在减少参数数目的同时使循环神经网络 能处理不同长度的输入序列,网络中的参数针对 应的输出,如图5(d)。可以将每一时刻的隐含状 输入序列的每个时刻都是相等的,这也使得参数 态作为特征进行分类,即 的梯度计算比前馈神经网络略复杂了一些。 ⊙ 2 循环神经网络的训练,需要使用随时间的反 向算法计算参数的梯度860,其本质上仍然利用 梯度的链式传递法则。将RNN沿时间展开后,可 以视为一个很深层的前馈神经网络,所以存在严 (3 (2) 重的梯度消散现象616导致RNN无法学习到数 (a)循环神经网络的一般表示形式 据中的长程依赖关系。 图6(a)为RNN的时间序列展开图,图6(b) 为RNN的单元结构图。为了减轻RNN中的梯度 消散现象,可以从单元结构与优化两方面着手改 隐含 进。单元结构方面,长短时记忆模型(long short- term memory,LSTM0646添加了额外的隐含状态 变量 来记忆序列的信息,使用3个门来控制当前时刻 的输入对记忆的影响,如图6(c)所示。通过这样 的改造,记忆能够更加通畅地在时间序列中传 X, 递,从而记住更久远之前的信息。长短时记忆模 (b)循环神经网络的编码表示形式 型被发明之后,也出现了诸多变种6?6,最实用的 分类器 是门控循环单元(gated recurrent unit)s9。门控循 ○○O…OO级联的特征 环单元合并了长短时记忆模型中的2种隐含状 隐含 态,如图6(d)所示,将控制门的个数减少到了 @0-00wo+0o-W+0000+0∞ 2个,使得收敛所需的时间有所下降,经过实验验 变量 证,门控循环单元相比长短时记忆模型几乎没有 性能的损失68,0。改进优化方面,研究表明在参 数初始化合适的情况下,循环神经网络也能较好 -1 地学习到长程依赖关系四。 (c)将级联的隐含变量作为特征进行分类器训练 上面介绍的循环神经网络只能用于处理输出 分类器 数据定长的情况。对于某些实际问题,如语言翻 隐含 0--000-0000- 译四、问答系统]等,对给定输入需要给出序列 变量 的输出。针对这一类问题,人们提出了seq2seq 及encoder--decoder模型。2种模型都使用了2个 88 循环神经网络,一个用于收集输入序列中的信息, 将输入序列的信息用向量进行表示,比如用最后 (d)将隐含变量作为特征进行分类器训练 1个时刻的隐状态作为输入序列的向量表示,另 图5循环神经网络 一个循环神经网络则用于生成序列。每一时刻都 Fig.5 Recurrent neural network 要综合输人序列的信息以及已产生序列中的信息
公式为 ht = σ(Wht−1 +U xt) 式中:σ 代表非线性单元;W 是历史数据对当前输 出的权重;U 是当前数据对输出的权重。对于不 同类型的问题,循环神经网络可以采用不同种类 的输出,比如:对于序列的分类问题[57] ,可以将所 有时刻的隐含状态收集到一起作为序列特征输入 到分类器中进行分类,如图 5(c) 所示;而对于序 列生成或语言模型问题[56, 58-59] ,每一时刻都应有相 应的输出,如图 5(d)。可以将每一时刻的隐含状 态作为特征进行分类,即 ot = Softmax(Vht) (2) 式 (2) 中 Softmax 就是罗杰斯特回归在多类 问题上的推广形式,Softmax 将多分类的输出数值 转化为相对概率,使我们更容易对输出进行理解 和比较。其定义为:假设有一个数组 X,Xi 表示 X 中的第 i 个元素,那么元素 Xi 的 Softmax 值定义为 S i = e Xi ∑ j e xj 为了在减少参数数目的同时使循环神经网络 能处理不同长度的输入序列,网络中的参数针对 输入序列的每个时刻都是相等的,这也使得参数 的梯度计算比前馈神经网络略复杂了一些。 循环神经网络的训练,需要使用随时间的反 向算法计算参数的梯度[18, 60] ,其本质上仍然利用 梯度的链式传递法则。将 RNN 沿时间展开后,可 以视为一个很深层的前馈神经网络,所以存在严 重的梯度消散现象[61-63] ,导致 RNN 无法学习到数 据中的长程依赖关系。 图 6(a) 为 RNN 的时间序列展开图,图 6(b) 为 RNN 的单元结构图。为了减轻 RNN 中的梯度 消散现象,可以从单元结构与优化两方面着手改 进。单元结构方面,长短时记忆模型 (long shortterm memory,LSTM)[64-66] 添加了额外的隐含状态 来记忆序列的信息,使用 3 个门来控制当前时刻 的输入对记忆的影响,如图 6(c) 所示。通过这样 的改造,记忆能够更加通畅地在时间序列中传 递,从而记住更久远之前的信息。长短时记忆模 型被发明之后,也出现了诸多变种[67-68] ,最实用的 是门控循环单元 (gated recurrent unit)[69]。门控循 环单元合并了长短时记忆模型中的 2 种隐含状 态,如图 6(d) 所示,将控制门的个数减少到了 2 个,使得收敛所需的时间有所下降,经过实验验 证,门控循环单元相比长短时记忆模型几乎没有 性能的损失[68, 70]。改进优化方面,研究表明在参 数初始化合适的情况下,循环神经网络也能较好 地学习到长程依赖关系[71]。 上面介绍的循环神经网络只能用于处理输出 数据定长的情况。对于某些实际问题,如语言翻 译 [72] 、问答系统[73] 等,对给定输入需要给出序列 的输出。针对这一类问题,人们提出了 seq2seq[74] 及 encoder-decoder[69] 模型。2 种模型都使用了 2 个 循环神经网络,一个用于收集输入序列中的信息, 将输入序列的信息用向量进行表示,比如用最后 1 个时刻的隐状态作为输入序列的向量表示,另 一个循环神经网络则用于生成序列。每一时刻都 要综合输入序列的信息以及已产生序列中的信息 (a) 循环神经网络的一般表示形式 V U W ... ... y0 y1 yt−1 yt h0 h1 h2 y2 ht−1 ht x0 x1 x2 xt−1 xt ... ... ... 隐含 变量 W V U (b) 循环神经网络的编码表示形式 y0 y1 y2 yt−1 yt x0 x1 x2 xt−1 xt Onehot 编码 隐含 变量 隐含 变量 (d) 将隐含变量作为特征进行分类器训练 (c) 将级联的隐含变量作为特征进行分类器训练 x0 x1 x2 xt−1 xt x0 x1 x2 xt−1 xt ... ... W U ... 级联的特征 分类器 Onehot 编码 ... W ... U 分类器 Onehot 编码 图 5 循环神经网络 Fig. 5 Recurrent neural network 第 1 期 胡越,等:关于深度学习的综述与讨论 ·9·
·10 智能系统学报 第14卷 来决定下一个单词的概率分布,利用采样决定生 环神经网络的效果,被广泛使用于各类序列学习 成的单词,然后可将生成的单词重新输入网络得 任务中。分级注意记忆(hierarchical attentive me- 到新的概率分布,如此循环即可生成整条序列。 moy)m进一步将节点组织成二叉树的形式,加快 ( 了搜索效率,且能够增强训练数据与测试数据长 度不一致情况下的推广能力。 A 在网络结构方面,双向的循环神经网络使 - 用从前向后以及从后向前2条链对时序数据建 模,用于刻画序列的上下文信息而不仅仅是过去 (a)循环神经网络的简化表示 时刻的信息。深层循环神经网络9对循环神经 网络进行叠加,将一层循环神经网络的隐含状态 序列作为下一层循环神经网络的输入,可以学习 级联anh 到更深层次的特征。 4深度学习的优化技巧 (b)经典循环神经网络的单元结构 各种深度神经网络已经在大量应用中展现了 出色的效果,一些典型的模型和算法已经比较成 C- 型并且有一些公开的框架可以使用,这大大方便 忘记门层 和加快了各种深度学习方法的应用。但针对一个 输人门层 实际的问题,深度学习的求解过程中存在大量的 技巧需要摸索,有效地使用一些技巧能够改善网 级联 tanh交 输出门层 络的收敛性以及网络的推广能力。 D: G 深度学习的参数求解本质上是一个优化问 题,不同的优化方法各有优劣。常用的优化 (©)LSTM单元的内部结构 方法大体上可以按照其收敛性分为一阶优化算法 与二阶优化算法。一阶优化算法是以目标函数相 对于待优化参数的一阶导数(梯度)作为优化的 依据,二阶优化算法则同时考虑了二阶导数信息。 C 忘记门层 一阶优化算法中最常用的当属以BP算法为 白-6 代表的梯度下降法及其变种。梯度下降法每轮迭 tanh 代中都计算参数的梯度,并将参数向负梯度方向 级联 输出门层 0 移动一段距离来更新参数值。根据每次计算梯度 o h 时取用的样本数不同分为梯度下降、随机梯度下 降、批量梯度下降等。梯度下降每轮迭代计算所 d另一种具有相同效果的LSTM 有样本的梯度平均,这样可以保证每次移动都必 定能优化目标函数,但梯度计算耗时长。相对 图6LSTM的结构示意图 地,随机梯度下降每次只选取一个样本计算梯 Fig.6 Schematic of LSTM structure 度,速度快而且有一定的跳出局部最优的能力, 在很多序列相关的问题中,输出往往只与输 但目标函数波动剧烈。为了缓解随机梯度下降梯 入的某些片段有较强的联系。比如:在机器翻译 度变化剧烈的问题,人们引入了动量(momentum) 问题中,输出单词的最大信息量来自于与输出单 机制4。动量的引入使得计算得到的梯度起到 词意义相同的词,如将“knowledge is power'”翻译 微调参数更新方向的作用,减少了振荡,有利于 为“知识就是力量”,其中“力量”一词之所以被生 目标函数的收敛。批量梯度下降法综合了随机梯 成完全是从“power'”中获取的信息。人们为建模 度下降法与梯度下降法的优点,选取训练集中的 这种关系引入了注意力机制s,即输出序列的 一部分计算梯度和,以此平衡计算速度与算法稳 每个词都只将注意力放在输入序列的一个区域而 定性。 不是完整的输入序列中。该机制能够大大提高循 在梯度下降类算法中,学习率(亦称步长)即
来决定下一个单词的概率分布,利用采样决定生 成的单词,然后可将生成的单词重新输入网络得 到新的概率分布,如此循环即可生成整条序列。 在很多序列相关的问题中,输出往往只与输 入的某些片段有较强的联系。比如:在机器翻译 问题中,输出单词的最大信息量来自于与输出单 词意义相同的词,如将“knowledge is power”翻译 为“知识就是力量”,其中“力量”一词之所以被生 成完全是从“power”中获取的信息。人们为建模 这种关系引入了注意力机制[75-76] ,即输出序列的 每个词都只将注意力放在输入序列的一个区域而 不是完整的输入序列中。该机制能够大大提高循 环神经网络的效果,被广泛使用于各类序列学习 任务中。分级注意记忆 (hierarchical attentive memory)[77] 进一步将节点组织成二叉树的形式,加快 了搜索效率,且能够增强训练数据与测试数据长 度不一致情况下的推广能力。 在网络结构方面,双向的循环神经网络[78] 使 用从前向后以及从后向前 2 条链对时序数据建 模,用于刻画序列的上下文信息而不仅仅是过去 时刻的信息。深层循环神经网络[79-80] 对循环神经 网络进行叠加,将一层循环神经网络的隐含状态 序列作为下一层循环神经网络的输入,可以学习 到更深层次的特征。 4 深度学习的优化技巧 各种深度神经网络已经在大量应用中展现了 出色的效果,一些典型的模型和算法已经比较成 型并且有一些公开的框架可以使用,这大大方便 和加快了各种深度学习方法的应用。但针对一个 实际的问题,深度学习的求解过程中存在大量的 技巧需要摸索,有效地使用一些技巧能够改善网 络的收敛性以及网络的推广能力。 深度学习的参数求解本质上是一个优化问 题,不同的优化方法各有优劣[81-83]。常用的优化 方法大体上可以按照其收敛性分为一阶优化算法 与二阶优化算法。一阶优化算法是以目标函数相 对于待优化参数的一阶导数 (梯度) 作为优化的 依据,二阶优化算法则同时考虑了二阶导数信息。 一阶优化算法中最常用的当属以 BP 算法为 代表的梯度下降法及其变种。梯度下降法每轮迭 代中都计算参数的梯度,并将参数向负梯度方向 移动一段距离来更新参数值。根据每次计算梯度 时取用的样本数不同分为梯度下降、随机梯度下 降、批量梯度下降等。梯度下降每轮迭代计算所 有样本的梯度平均,这样可以保证每次移动都必 定能优化目标函数,但梯度计算耗时长。相对 地,随机梯度下降每次只选取一个样本计算梯 度,速度快而且有一定的跳出局部最优的能力, 但目标函数波动剧烈。为了缓解随机梯度下降梯 度变化剧烈的问题,人们引入了动量 (momentum) 机制[84-85]。动量的引入使得计算得到的梯度起到 微调参数更新方向的作用,减少了振荡,有利于 目标函数的收敛。批量梯度下降法综合了随机梯 度下降法与梯度下降法的优点,选取训练集中的 一部分计算梯度和,以此平衡计算速度与算法稳 定性。 在梯度下降类算法中,学习率 (亦称步长) 即 (a) 循环神经网络的简化表示 W U V 展开 A A A A xt−1 yt−1 xt+1 yt+1 xt yt xt yt (b) 经典循环神经网络的单元结构 tanh A ht−1 级联 ht ht xt (c) LSTM 单元的内部结构 tanh tanh A 忘记门层 输入门层 输出门层 ht−1 级联 Ct−1 Ct ht ht i t ot f t xt σ σ σ Ct ^ tanh tanh A ht−1 级联 Ct−1 Ct ht ht it =1−f 1− t ot f t xt 忘记门层 输出门层 σ σ Ct ^ (d) 另一种具有相同效果的 LSTM 图 6 LSTM 的结构示意图 Fig. 6 Schematic of LSTM structure ·10· 智 能 系 统 学 报 第 14 卷