论文《Deep Learning》 (深度学习)
作者:Yann Lecun, Yoshua Bengio, Geoffery Hinton
单位: FAIR, NYU, UMontreal, Utoronto, Google
发表会议及时间:《Nature》杂志
1、论文作者简介
2019年3月27日,美国计算机协会(ACM)宣布把2018年的图灵奖(Turing Award)颁给人工智能科学家Yoshua Bengio,Geoffery Hinton和Yann Lecun,以表彰他们为当前人工智能的繁荣发展所奠定的基础。
Geoffery Hinton
谷歌副总裁兼工程研究员,Vector Institute的首席科学顾问,多伦多大学的名誉教授;
重要贡献:
- 1986年发表反向传播论文“Learning Internal Representations by Error Propagation”;
- 1983年发明玻尔兹曼机(Boltzmann Machines);
- 2012年对卷积神经网络进行改进,并在著名的ImageNet评测中取得了很好的成绩;
Yann LeCun
纽约大学教授,Facebook副总裁和首席人工智能科学家;
重要贡献:
- 1980年代,LeCun发明了卷积神经网络;
- 1980年代末期,Yan LeCun在多伦多大学和贝尔实验室工作期间,首次将卷积神经网络用于手写数字识别;
Yoshua Bengio
蒙特利尔大学教授,魁北克人工智能研究所Mila科学主任,著作《深度学习》花书作者之一;
重要贡献:
- 1990年代发明Probabilistic models of sequences,将神经网络和概率模型结合在一起
- 2000年发表划时代的论文“A Neural Probabilistic Language Model”,使用高维词向量来表征自然语言
2、前期知识储备
应用数学和机器学习基础
线性代数 | 本科线性代数知识 |
---|---|
概率与信息论 | 本科概率知识 |
数值计算 | 梯度优化、约束优化等方法 |
机器学习基础 | 过拟合、欠拟合、超参数等 |
3、课程安排和学习建议
课程要求
- 记录每一天的笔记
- 随时记录不明白的为题
- 按要求完成作业
学习建议
- 精度经典论文
- 跟进最新论文
- 通读领域论文
- 复现领域经典论文
- 论文写作
4、深度学习背景介绍
论文第一节对深度学习背景进行介绍;
机器学习应用方向:
- 图像识别;
- 语音转换;
- 推荐系统;
机器学习现实中的应用:
- 百度搜索内容过滤和匹配;
- 淘宝、京东商品推荐;
- 美颜相机、智能手机手写识别;
- 支付宝人脸识别、安全验证;
传统方法:
- 构建一个模式识别或机器学习系统需要领域专家的帮助设计一个特征抽取器;
表示学习:
- 一系列允许机器能够接受原始数据并自动转换成检测或分类任务能处理的形式的方法;
深度学习方法
- 多层表示的表示学习方法,由简单的非线性模块组成,上一层的转换结果作为下一层的输入继续进行转换表示,提升抽象层次;
深度学习的关键
- 特征层不是专家工程师设计的,而是使用学习算法从数据中学到的。
深度前馈网络
基本结构组成:
- 输入层:输入实例的特征向量;
- 隐藏层:中间计算结果输出;
- 输出层:学习的目标结果向量;
- 全连接
- 权重参数
- **函数(用于在神经网络中引入非线性的机制)
- 反向传播
5、监督学习(Supervised Learning)
图像识别训练过程
监督学习是从有限的数据中去监督网络进行特征学习,上图是图像识别过程,最左侧有三种不同的数据输入(三种不同的图片)。中间的前馈神经网络就会从给定的输入数据以及它们对应的标签去学习图像中的特征,通过学习到的特征对任意三个类别中的数据进行分类,最终到达良好的分类效果。监督学习就是给定数据和相应的标签,神经网络可以通过数据以及相应的标签去学习数据中的特征,最终达到输出相应结果的目的。
监督学习训练步骤
- 收集三个类别的图片,打标签;
- 在训练过程中,对输入图片输出一个得分向量,每个类别均有得分;
- (希望目标类别在所有类别中拥有最高得分);
- 设计目标函数,计算网络输出和目标输出之间的差距;
- 随后通过修改中间参数(权重)来最小化误差;
最优化手段:随机梯度下降(Stochastic Gradient Descent, SGD)
随机梯度下降(SGD)
随机梯度下降法在训练过程中会初始化所有的权重参数,比如说是一个二维向量,那么首先会为分配一个初始权重。在学习过程中会通过标好的类别以及一个图像经过神经网络预测的结果之间的差来计算损失,损失可以通过神经网络反向从输出传回到输入,在传回的过程中损失会不断和中间每一层权重参数计算梯度,或者说计算偏导数,得到所有参数的偏导数乘于一个学习率,利用原来的初始化参数减去学习率乘于偏导数的值,那么就完成了一次参数更新,这就是随机梯度下降。
监督学习 vs 深度学习
- 传统机器学习需要精心设计特征抽取器,而这个过程往往需要大量的专业技能和丰富的邻域知识;
- 深度学习则可以避免这一繁琐的过程:特征可以通过学习算法自动学习得到;
- 通过多个非线性层组合(例如5-20层),系统可以敏锐观察到图像中的关键部分,忽略非关键部分;
- 这正是深度学习的关键之处。
6、反向传播——一种用于计算梯度的方法
- 反向传播——计算目标函数对多层神经网络权重的梯度;
- 利用微积分中的链式法则完成反向梯度计算;
链式法则
**函数
- ReLU:目前最常用的**函数,
- Sigmoid:
- Tanh:
- Others…
反向传播 - 20世纪90年代末,神经网络和反向传播一直被机器学习、计算机视觉以及语音识别社区所摒弃、忽略;
- 当时普遍认为在利用很少的先验知识情况下,学到的多级特征抽取器并不可靠。而且,梯度下降算法会陷入局部最优点;
- 理论研究以及实验结果显示,局部最优解并不是最严峻的问题,梯度消失的问题更为严重;、
- 2006年,从CIFAR研究小组的提取的非监督学习算法开始,科学家关于深度前馈网络的兴趣才开始复苏。
7、卷积神经网络基础
输入信号的维度
- 1D:序列和信号,包括语言信息等;
- 2D:平面图像、声音频谱图等;
- 3D:视频网络、立体图像等;
卷积神经网络的关键
- 信号的局部连接;
- 共享权重;
- 降采样;
- 多层网络结构;
上面这幅图为大家很直观地带来了卷积神经网络的图像理解过程。输入一张图像,这张图像是三维通道,包括Red通道,Green通道和Blue通道。卷积神经中的每一个卷积核都会识别这个图像里的一个特征信息,经过多层卷积降采样进行组合,那么图像会不断地降维,特征图在每一个通道上维度都不相同。卷积神经网络会通过不同的维度、不同的卷积层去学习不同的特征,比如最靠近输入层,卷积神经网络会学习到一些比较简单的边缘纹理信息,越靠近输出层,卷积神经网络能学习到的信息越具备高级的语义。
卷积审计网络主要层次结构
(1)卷积层
- 卷积的输出被称作特征映射(feature map);
- 卷积核(kernel)共享权重;
- 卷积神经网络具有稀疏交互性(sparse interactions);
(2)这样设计的好处
- 数组形式的数据(例如图像),局部值之间是高度相关的,形成容易检测的各种局部图形;
- 图片和其它信号数据的局部统计特征具有位置不变性;
(3)池化层
- 将邻域内语义相近的特征进行融合,减小图像的维度;
- 常见池化操作:Max-pool,Average-pool
- 当前一层特征组件发生位置变化或表现变化,降低当前层的表征变化;
通常将2-3个卷积层+非线性**函数+池化层作为一个模块;一个模型通常包含多个这种模块;
卷积神经网络多级结构的功能
- 图像低级特征到高级特征:边缘->纹理->组件->物体;
- 接近输入的特征图:检测边缘、简单纹理;
- 层次加深:语义信息提升,理解组件或物体的表征;
卷积神经网络的反向传播计算和常规的深度网络计算一样简单;
卷积层和池化层:来自于视觉神经科学中简单细胞和复杂细胞的经典概念;
8、经典卷积神经网络
LeNet
来自于Yann Lecun,卷积神经网络的开山之作,用于解决手写数字识别的视觉任务;
AlexNet
在2012年ImageNet竞赛中以超过第二名10.9个百分点的绝对优势一举夺冠;
VGG
由牛津大学VGG组提出,2014年ImageNet竞赛定位任务第一名和分类任务第二名;
GoogleNet
2014年的ImageNet分类任务上击败了VGG-Nets夺得冠军;
ResNet
2015年何恺明推出的ResNet在ISLVRC和COCO上横扫了所有选手获得冠军;
DenseNet
CVPR2017最佳论文DenseNet
9、基于CNN的图像理解
- ImageNet大赛之前,卷积神经网络的能力和作用一直被忽视;
- 2012年ImageNet大赛上用CNN识别1000个类别近100万张图片,错误率比之前最好成绩降低了一半;
- 成功也来自GPU、ReLU以及一个新的正则化办法——Dropout的发明;
- 基于CNN的视觉系统的表现引起了大多数技术公司的注意,包括Google、Facebook、Microsoft、IMB等;
- 许多公司包括NVIDIA、Mobileye、Intel、Qualcomm和Samsung正在开发卷积神经网络芯片,支持在智能手机、数码相机、机器人和自动驾驶上的实时视觉应用;
人脸识别
- 利用CNN提取人脸特征向量,与人脸库中的人脸进行判别,返回最相似的;
- FaceNet,DeepFace,SphereFace,etc;
服装识别
- 利用CNN网络提取图像中服装特征,单分类或者多分类完成服装属性的识别;
- DeepFashion数据集;
10、分布式特征表示&语言处理
分布式特征表示是深度学习的一个核心概念:发现数据之间的语义相似性;下面这个图是分布式特征表示的形象理解过程;
首先给出四个图形,有四种不同的描述方法,第一个是横向的矩阵(Horizontal Rectangle),第二个描述的是纵向的矩阵(Vertical Rectangle),第三个描述是横向的椭圆(Horizontal Ellipse),第四个描述是纵向的椭圆(Vertical Ellipse)。这是一个非常稀疏的局部的表示方法,对于每一个图形都可以明确一个类别。
如果变成一个分布式的特征表示,也只需要四种表示,在第二个图中,第一个特征不再是水平矩阵,变为水平(Horizontal),第二个特征是竖直(Vertical),第三个特征是矩形(Rectangle),第四个特征是椭圆(Ellipse)。任意一个图形都可以用其中两个特征进行表示,这种表示方法增加了特征表示的稠密性。对于一个圆形,怎么用分布式特征表示呢?分布式特征表示会更加有用,因为它能够提供一个新的图形是如何与其它图形相关联的信息。比如一个圆形,如图3,可以表示为水平、竖直、椭圆三种特征。这就是分布式特征表示所能带来的好处。它能够发现数据之间的语义相似性。
深度网络两个巨大优势
- 分布式特征表示提升算法重新组合学过的特征的泛化能力;
- 深度网络特征表示组成的网路能够带来例如指数级深度的其它优势;
示例:预测语句中下一个单词?
- 输入:文本内容,每个单词输入到网络中都是一个的向量;
- 输出:下一个单词是什么?
- 学习:word-vector,网络挖掘深层语义特征,作为输入-输出的连接关系。
从文本中学习到的单词的向量表示在自然语言应用中广泛使用;
提出一个问题
杭州
上海
宁波
北京
在语料库中,杭州、上海、宁波、北京各对应一个向量,向量中只有一个值为1,其余为0,所有向量都表现出非常稀疏的特性。请问能不能把词向量的维度变小呢?
如果语料库中有成百上千甚至几百万几千万,几个亿的不同的词,向量的维度会非常大,这个向量会表现得非常稀疏。为了降低向量的维度,就引出了Word-embedding的方法。
Word-embedding
- 将高维词向量嵌入到一个低维空间;
- 即用分布式特征表示表示的较短词向量;
- 较容易的分析词之间的关系;
上图中,假设3个词在3个不同的维度中,将三个词同时映射到一个嵌入空间,这3个词都可以在这个嵌入空间的二维坐标中进行表示,就成功地将高维词向量 嵌入到一个低维的空间。在二维空间中,可以更好更容易地分析出三个词之间的关系。
由此引出了一个在自然语言处理中非常常用的方法,Word2Vec。
Word2Vec
- 简单化的神经网络;
- 输入是One-Hot Vector;
- Hidden Layer没有**函数,也就是线性的单元;
- Output Layer维度=Input Layer维度,Softmax回归;
- 训练后只需要隐层的权重矩阵;
- 分为CBOW和Skip-gram两种模型;
N-grams
- 在分布式表示特征学习之前广泛应用;
- 指文本或语音中连续出现的n个“部分”;
- N元语法是基于(N+1)阶马尔科夫链的一种概率语言模型;
- “部分“”通常包括:音素、音节、字母、单词或基本词组等;
- 当N=1,2,3时,分别称为“一元语法”、“二元语法”和“三元语法”;
- 还可以用于计算字符串的距离;
上图给出了Word-embedding的一个形式化展示,在一个二维坐标系中,把词汇或者词组表示成不同的向量,就可以被嵌入到二维的特征空间中,在二维的特征空间中可以很方便地计算两个词或者两个词组之间的距离,也就是他们之间的相似性或者他们之间的关系。
11、循环神经网络
RNN
- 适用于序列化输入,如语言和语音;
- 一次处理一个输入序列元素;
- 维护隐单元中的“状态向量”,这个向量隐式地包含过去时刻序列元素的历史信息;
- 训练过程中反向传播梯度在每一个时刻会增长或下降,长时间迭代后会出现梯度爆炸或消失;
- 基于器网络结构和训练的特点,RNNs在预测文本中下一个字符或序列中下一个单词这两方面具有很好的表现;
- RNNs也可以应用于更加复杂的任务中;
- 一旦展开,可以把它当做一个所有层共享权值的前馈神经网络;
- 理论上和经验上的证据都证明很难学习并长期保存信息;
给出一个实例:
这个图展示了一个实例,给定一个单词“大海”,通过循环神经网络计算出了一个向量,这个向量返回概率最高的值,下一个词是“的”的概率是0.8,下一个词是“是”的概率是0.15,因此采取概率最大的词。第二个词是“的”,它会预测下一时刻出现概率最大的词,概率最大的词是“颜色”。“颜色”预测下一个时刻出现概率最大的词是“是”,接下来预测出现概率最大的词是一个颜色。因此循环神经网络可以达到预测下一个单词或者下一时刻序列数据的能力。
前面说了RNN很难长时间保存序列数据的状态信息,为了解决这个问题,前人发明了LSTM。
LSTM
- 输入门、遗忘门、记忆单元、输出门;
- 遗忘门:控制是否遗忘,以一定概率控制是否遗忘上一层的隐藏细胞状态;
- 输入门:处理当前序列位置的输入;
- 细胞状态:前面的遗忘门和输入门的结果都会作用于细胞状态C(t);
下图第一个图给出了RNN展开的基本形式,也就是单向传递的神经网络,给定了一个到的序列,那么首先有一个初始化的状态,在经过RNN的过程中不断地预测下一个时刻可能的值,最终状态是。但这只是单向的传递。
RNN同样可以具备一个双向传递的过程,下图中的第二个图就展示了Bi-directional RNN,也就是双向RNN模型。
12、未来展望
(1)无监督学习(Unsupervised Learning)
- 无监督学习对于重新点燃深度学习的热潮起到了促进作用;
- 有监督学习比无监督学习更加成功;
- 但是在人类和动物的学习中无监督学习占据主导地位;
无监督学习问题可以进一步分为聚类问题和关联问题
- 聚类问题:希望在数据中发现内在的分组,比如以购买行为对顾客进行分组;
- 关联问题:想发现数据的各部分之间的联系和规则,例如购买X物品的顾客也喜欢购买Y物品;
(2)强化学习(Reinforcement Learning)
通常用马尔科夫决策过程来描述:
- 机器处于环境E中,状态空间为X,其中每个状态是机器感知到的环境的描述;
- 机器能采取的动作构成动作空间A;
- 转移函数P将使得环境从当前状态按某种概率转移到另一个状态;
- 转移到另一个状态时,环境会根据潜在“奖赏”函数R反馈给机器一个奖赏;
在深度学习或者在图像识别中,一个非常经典的领域是生成式对抗网络(GAN)。
GAN网络由两个主要组件:
- 生成器,生成器是用来从一个随机数中对目标图像进行不断的生成;
- 鉴别器,鉴别器是用来鉴别生成的图像以及真实图像之间的差距,让生成器能够更好地生成图像,鉴别器也能更好地鉴别伪造的图像;