- link
- LeCun Yann, Yoshua Bengio, and Geoffrey Hinton
- 2015
这是2015年发在Nature上的文章,作者是深度学习的三巨头,看名字是篇介绍综述性的文章。7页左右+2页参考文献。
读文章之前的问题
- 是什么:什么是深度学习?针对什么样的问题,深度体现在哪里
- 好坏:深度学习的优势和不足
- 应用:深度学习具体有哪些应用
- 怎么做:深度学习基本框架,有哪些方法,有哪些分类标准
- 为什么:背后的数学或其他科学原理
大致内容
深度学习是机器学习的一种技术。可以应用在图像识别、语音识别等诸多领域。
传统机器学习难以直接处理原始的自然数据,受限于其能力,往往需要专家先从数据中提取特征再进行学习。机器学习研究者肯定不会满足于这样。
表示学习是机器学习的一种,研究如何自动地从原始数据中获取特征,以便后续更好学习。深度学习属于表示学习的一种,它是一种层级非线性的神经网络结构,有很多中间的表示层,通过端到端的学习将数据从原始形式不断抽象到更高层次。以图像为例,向量或矩阵输入,第一层可能会识别判断特定位置、特定方向的线条,第二层可能是将线条拼装成简单图案,第三层可能是将简单图案拼出更加复杂的图案来。深度学习可以依照某种通用规则自动地学出这些特征来。
监督学习
对于监督学习中的深度学习,其训练流程大致是通过不断给出机器的预测与实际结果的差异(优化目标),让机器根据某种规则(训练方式)调整其内在参数(模型结构),使得预测结果更加接近实际,从而达到训练的目的。
在实际使用过程中使用随机梯度下降SGD,对于一批训练数据,计算平均误差,然后根据平均误差计算梯度对参数进行更新,对不同参数的梯度计算使用反向传播技术。之所以叫随机是因为每一批小的训练数据提供了所有样本的平均梯度的一个带噪声的估计。
线性分类器的能力有限,通过超平面去化分出半空间,对于一些更复杂的例如图像分类任务无能为力。对于图像做一些简单平移可能具有不变性,同时图片的背景并不影响前景物体的分类结果,这是选择性,这些对于线性分类器都太过困难。深度学习使用非线性分类器,比起传统机器学习具有选择性和不变性的能力。
反向传播
反向传播的含义是,神经网络中的各个模块的参数关于输入的导数或梯度,都可以根据该参数关于输出的梯度求得,就是从后向前不断计算梯度,相对于前向计算输出,求梯度的过程是反向的。
神经网络早已有之,反向传播技术在上世纪七八十年代出现,九十年代神经网络和反向传播被机器学习社区所抛弃,直到2006年左右才得以复兴。
在优化问题中,理论和实验发现,局部最优总的来说并不是什么严重的问题,反而大量鞍点(梯度为0,在某些维度是局部最小,而在另一些维度是局部最大)出现地更加频繁,尤其是大量鞍点作为局部最小的维度很少。
预训练模型是一种无监督学习的技术。上层的参数学习目标可以通过下层参数来构建,可以通过预训练的方式赋值下层的参数,使得网络初始便具有某些偏好,对一些值更加敏感。最初可能会使用诸如RBM等方法来预训练,之后可能直接迁移大量数据集上训练好的模型的参数。对于少量数据的任务,通过加载预训练模型可以帮助缓解过拟合。
卷积神经网络
卷积有两个条件,一是相邻具有相关性,局部可以共同组合出更加复杂的特征,二是这种关系在不同位置会重复出现,与位置无关。这使得卷积核可以在局部进行运算,并可以不断平移。
一些术语:
feature map:上一层经过某一个卷积核处理后的更抽象的单个特征结果
filter bank:卷积核
imagenet2012大赛上卷积神经网络以第二名几乎一半的错误率,赢得了机器学习社区的足够重视。成功有很多因素,包括GPU,ReLU,dropout,数据增强(data augmentation)。
分布/分层的表示
深度学习相对于传统机器学习的优势之一便是特征的分层表示。某层有n个神经元,下一层便有种组合,指数型增长,表示能力强。除此以外,深度也可以导致不同层可以进行指数型的排列组合。
语言模型
词向量是一种单词的表示,比起one-hot编码其更加紧缩,且具有语义信息,可以通过大量真实的语言数据来学习。
符号主义与联结主义的争论。符号主义中,一个词语是一个唯一的符号,通过逻辑推理推导出结果,而联结主义利用类似词向量的方式表示词语,词之间可以计算距离
循环神经网络
RNN用于预测时序数据,然而梯度回传容易慢慢增大或减小,导致爆炸或消失。之后的一些改进缓解了该问题。LSTM相比于传统RNN更有效。
前景
相比于监督学习,无监督学习似乎更加符合人类认知与学习过程。人类的视觉具有注意力机制,是否可以通过CNN+RNN+RL来学习。除了计算机视觉,自然语言处理也是今后的发展方向。最终,复杂度表示学习会和推理相结合。
读完之后
读完基本能够回答之前的问题。我看的有点慢,可能英语是一个重要原因。一些细节不细写也不细究,文章讲的基本能够理解。
我觉得深度学习最主要的贡献还是让机器学习能够端到端地处理更加复杂的任务,提供了一种解决问题的方式,定义好优化目标,模型,训练方式,便可以利用监督数据自动地进行训练,去拟合一个分布。
本文大致介绍了什么是深度学习,相对于传统机器学习的区别和特点。之后介绍深度学习的一些技术细节和其中的代表方法,介绍其在不同任务上的应用,最后进行总结展望。介绍了包括反向传播(如何训练)、分布表示(特点)、CNN与RNN(代表结构)、CV与NLP(主要任务),还是较为全面的,就是还差一个RL,可以参考playing atart with dqn那篇。