deep learning初步了解
虽然听了很久的deep learning大名,但是第一次看deep learning的文章,对该领域有一个初步的了解。
参考文章,Nature的文章deep learning (LeCun, Bengio, & Hinton, 2015)。
历史(待完善)
1959年,perceptron提出。
69-80年,冰河期,Minsky,写了本书,认为神经网络不靠谱,无法推广计算。
1985年,神经网络多层结构可以求解通过BP
1995年,神经网络再次进入寒冬期。当时认为没有先验知识学习有用的特征提取是不可行的,并且容易陷入局部极小值。
2006年,深度前馈网络出现,Canadian institute for Advanced Research(CIFAR)。他们表明无监督学习可以创造特征检测子的层不用标签数据。
2010年,GPU通用计算,10-20倍提速,繁荣期
2012年,ConvNet之前仍然不是CV和ML的主流,直到ImageNet比赛,一百万图片,一千类,几乎是传统方法错误率的1/2,成功使用了GPU,ReLU,新的正规化技术dropout,以及产生更多的训练数据通过变形现存的。这个成功带来了CV的革命,成为了几乎所有识别和检测任务的主流。
最近的ConvNet结构有10-20层ReLU,数亿权重,几十亿连接单元。两年前训练这种网络需要几周时间,现在软硬件和算法并行的提升减少训练时间到了几个小时。
原文要点(存在疑问)
摘要
DL允许多层的计算模型来学习各种抽象数据的表示。这些方法有显著地提升当前语音识别,视觉物体识别,物体检测和许多其它领域,比如新药研发和基因组学。DL发现大数据中错综复杂的结构,通过BP算法来指出如何一个机器改变内部参数,从以前的层用于计算每一层的表示。深度卷积网络带来了突破,包括处理图像、视频、语音,recurrent nets在处理序列数据表现良好,比如text和speech。
0 前言
1,传统机器学习的方法在处理自然数据时能力有限,需要对研究邻域有足够的背景知识。
2,Representation learning是指从raw data直接提取所需的表示的一系列方法。
3,DL方法是表示学习方法,结合多个水平表示,通过简单但是非线性模块,每个转换表示在一个低水平进入高水平表示。DL的关键是这些层的特征不是人为决定,而是通过数据自动学习。
1 supervised learning
supervised learning原理
1,ML的大部分方法,都是监督学习。假设我们要分类图像比如车、马、人等,首先我们需要收集大量的包含这些类的图像,并且每类还要有标签(label)。训练的时候,输入是图像,输出是得分向量,向量每个成分对应一类,我们就想要期待的那类有最高分,但是在训练之前是不可能发生的。
因此,我们就需要建立一个可以测试输出得分和预期得分之间差异的目标函数,而机器通过调整内部参数来逐渐减小这个误差。这些参数就是权重,它们是定义输入输出函数的关键。
典型的DL系统,可能具有上亿个权重参数,以及上亿个训练样本。
2,目标函数最优化,代价函数最小,参数是权重,负梯度。
3,实际工程考虑,随机梯度。
4,test。
ML学习方法
1,浅分类器(shallow),选择不变性的窘境:表示图像可分的重要特征,同时对无关特征保持不变,比如动物的位置。
2,非线性方法的引入,核方法。需要人为设计特征提取方法,所以要该方面的背景知识。
3,DL的好处就是可以自动学习好的特征。DL由多层简单的模块构成,每块都是学习获得,每块都将增加选择性,同时保持表示不变性。
2 backpropagation to train multilayer architectures
1,每个模块是将输入的加权,然后非线性转换。
2,BP是求目标函数梯度的一种方法,通过输出层逐渐往回传,直到输入层。
3,最流行的非线性函数是rectified linear unit(ReLU),即max(z,0),它比其它学习更快,不用无监督的预先训练。
4,在大型网络,局部极小值问题很少出现,而鞍点经常出现,但是鞍点处的目标函数是近似的,因此,算法不会陷在鞍点处。
5,2006年deep feedforward networls,预训练特征描述子层,不用很多标签数据。学习特征检测子,可以在之后的层重构特征检测子的行为。
6,对于小的数据集,无监督预训练帮助防止过拟合,显著提升性能。
7,ConvNet,不再是全连接层,更容易训练和推广。ConvNet是深度前馈网络的特例,更容易训练并且产生更好的结果比起全连接网络。
3 convolutional neural networks
1,典型的ConvNet由一系列阶段组成,前面的阶段主要是两种:卷积层和pooling层。
2,卷积层的单元由特征图构成,每个单元都由之前的层通过滤波模板加权获得,加权之后通过非线性单元比如ReLU。
3,同样的feature map都有相同的filter bank。这种结构有两个原因,1)数组数据比如图像,局部值是高度相关的,形成不同的容易检测的局部模板;2)图像和其它信号的局部统计和位置是无关的。数学上来说,feature map的滤波操作就是一个离散卷积,从而得名。
大致意思是,同一个卷积层的卷积模板是一样的。
4,卷积层从之前的层检测特征的局部连接,pooling层合并语义相似的特征为一个。
5,典型的pooling单元计算feature map的局部单元最大值。相邻的pooling单元获得周围的输入,平移多余一行或者一列,从而减少表示的维度,并且创造小平移和变形的不变性。
疑问:feature map是如何构成的,难道是遍历正负图的尺寸,类似harr方法?
6,深度NN利用自然信号是分层组织的性质,也就是高水平的特征是由低水平获得。图像中局部边缘结合构成模块,模块组成parts,parts组成物体。当之前的层的元素改变位置和形式,pooling保持表示变化非常小。
7,卷积和pooling层受经典的视觉神经科学的简单cell和复杂cell的启发,并且整个结构是LGN-V1-V2-V4-IT的视觉皮层ventral通路。,
4 image understanding with deep convolutional networks
这部分讲的是2012年imageNet比赛引起的CNN迅速发展,和image understanding好像没什么关系。
5 distributed representations and language processing
1,DL理论表明深度网络比起传统学习方法有两个不同的指数优点,好像说的是分布式表示的优势。
2,文中每个单词表示为一个1-N向量,也就是只有一个成分是1,其它是0。语言模型中,第一层,每个单词创造一个不同的激活模式,或者单词向量;其它层学习转换输入单词向量为下一个预测单词向量,可以是单词表中的任意一个。神经网络学习单词向量包含许多有效成分,每个成分都能理解为单词的独立特征,比如符号分布表示。这些语义特征没有在输入时表明,它们通过学习方式分解输入和输出符号的结构关系。
3,有些学习的单词向量是相似的,比如Tuesday和Wednesday,Sweden和Norway,这种表示称为分布式表示,因为它们的元素不是互相排斥的,并且它们的许多配置对应于可见数据的变化。这些特征不是由专家提供,而是自动通过网络发现。
4,其它类型网络。表示问题是逻辑启发和NN启发认知框架争论的中心。逻辑启发框架,符号是唯一的性质用于确定一直或者不一致和其它符号。没有中间的结构可供使用,他们必须明断归类。相比,NN只用大的大的活动向量,大的权重矩阵,以及尺度非线性来表现。。。
这部分好像核心是Word2vec的概念,从而结果不是标准的0,1,而是小数,小数有其它的用途,比如相关程度。
6 recurrent neural networks
1,适用范围。当BP首先引入,它的最大的使用是训练RNN,对于包含序列输入的任务,比如语音和语言,使用RNN更合适。RNN一次处理输入序列中的一个元素,保持在隐藏单元中作为状态向量,隐含包含关于所有过去元素的历史信息。
2,RNN是非常强大的动态系统,但是训练他们证明是有问题的,因为BP梯度增加或者减小在每一步,所以许多步之后他们一般会爆炸或者消失。
3,预测文本。当然还有其他的用途,比如翻译。当读了一句英语句子,encoder网络可以训练最后状态向量很好的表示句子的思想表达。思想向量可以用作法语decoder网络的输入,从而输出法语转换的第一个单词概率分布。然后迭代生成后面的代词。总之,通过英语句子产生法语的概率分布。这种原始的表现机器转换很有竞争力,那么,明白一个句子是否需要通过推理规则理解中间的符号表示呢?
4,image captions。代替翻译法语意思为一个英语句子,我们可以学习转换图像为英语句子。Encoder是一个ConvNet,将像素转换为隐藏层的向量,decoder是一个RNN,和用于自然语言模型处理方法类似。最近有很多这方面的兴趣研究。
5,LSTM 。
RNN,一旦在时间上解开,就可以看成一个非常深的feedforward网络,所有层都有相同的权重。尽管他们主要目的是学习长期依赖性,理论的和经验的证据表明要长期学习存储信息很困难。
为了解决这个问题,一个想法是增加网络用一个外部memory。第一个这种方案是long short-term memory(LSTM),用了特殊的隐藏层,可以长时间记住输入行为。这种特别的单元就像一个累计或者gated leaky neuron:它可以连接自身下一步,从而有权重为1,因此它处理自己实值状态并且累积外部信号,但是这个自连接是乘法门,需要另外一个单元学习决定何时清除memory的内容。
LSTM证明比传统RNN更加有效,特别是当每个时间步骤有很多层的时候,使能整个语音识别系统。同样可以处理机器翻译。
6,让RNN增加Memory模块有不同的方案,neural Turing machine类似于磁带,可以读写。Memory networks增加了一种associative memory。这种网络可以处理标准的问答。
7 the future of deep learning
1,无监督对于恢复DL的兴趣学习起了催化剂效果,但是由于单纯监督学习的成功又黯然失色。尽管本文没有讲它,我们期待无监督学习在未来变得更加重要。人和动物的学习是无监督的:我们通过观察发现世界的结构,而不是被告诉每个物体的名字。
2,人的视觉是一个主动过程连续采样光学数组,通过智能、任务引导用一个小的高精度fovea,而周围是大的、低分辨率区域。我们期待未来的视觉处理可以训练端到端,并且结合ConvNets和RNN用增强学习决定看哪里。结合DL和增强学习还处于婴儿期,但是它们已经超过被动视觉系统在分类方面,并且有好的结果在玩不同视频游戏。
好像alpha GO就是这样的原理。
3,自然语言理解是另外一个邻域,DL将重点研究的。我们期待用RNN明白句子或文档的系统将更好。
4,最后,人工智能主要进步将结合表示学习和复杂推理。尽管DL和简单推理有长时间用于语音和手写识别,新的范式需要代替基于规则的符号表达式操作通过大的向量操作。
心得
1,文中多次强调DL是一种representation learning,这种方法可以自动提取特征,而不需要该领域的相关背景知识。
2,图像中的特征有一个很重要的问题是,选择不变性,也就是特征和局部有关,和所处的位置和形式无关。
3,CNN中feature map的权重保持一致似乎是一个很重要的概念。
4,CNN中卷积层和pooling层的理解很重要。
5,RNN适合处理动态系统问题,也就是连续时间序列,应用包括机器翻译,语音识别,还有最近很火的image captions。
6,LSTM是处理RNN学习存储的一种有效手段,虽然不明白为什么,但是好像很重要。
7,DL的大数据训练方式和真实的学习过程是不同,人学习的时候不会看那么多样本,学习本质的理解还有很到的空间。现在的DL离真正理解语句或者图像的意思还差的很远,或者说根本就没有理解,而完全是一种统计的结果。
参考文献
LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444. doi: 10.1038/nature14539