深度学习的一些入门资料(一)

学习任一门知识都应该先从其历史开始,把握了历史,也就抓住了现在与未来  

———by BryantLJ

(上面这句话是抄的)


本文重心在于给出DL技术的发展轨迹,以及适用情况,现有平台的对应情况,大部分材料取自网上且结合自己的理解。

一、深度学习的发展

首先给出发展图:



如上图所示,深度学习开始于1943年MCP神经元数学模型的提出。该模型可以简化为图2


也就是对输入加权求和,然后引入非线性激活函数,得到输出。在1957年,有人利用此模型提出感知机(Percetron)算法。其可以用于二分类。且其使用梯度下降法自动更新权值,以至于达到收敛。

而1969年,感知机被证明为只是一种线性模型,而且其连基本的XOR问题都无法分类从而被宣判死刑。

期间深度学习停滞了20年,于1986年提出反向传播(BP)算法才使得这门学科有了起色。

反向传播算法用来更新权值,在神经网络第一次将所有的权值计算前向传播到输出层时,反向传播使用计算输出层误差的方式,将误差反向传播到隐含层的权值中,多次反复进行这种权值及误差计算的操作最终使得其整个网络收敛。

而1986年,Hinton提出了使用BP算法的多层感知机(MLP),使用sigmoid作为激活函数进行非线性映射,使得感知机可以进行非线性分类和学习。与此同时,MLP的万能逼近定理也被证明,此定理说明对任意闭区间的函数f,都可以用含有一个隐含层的BP网络来逼近(模拟)。BP算法直到现在也有其一定的影响。

与此同时,卷积神经网络LeNet也被提出,卷积神经网络作为在目前使用的主流神经网络,LeNet是一切的开始。即便开始简单,但麻雀虽小,五脏俱全。


该神经网络包含了:1.一个input层 32x32

                                2.三个卷积层 C1,C3,C5

                                3.两个池化层 S2,S4

                                4.一个全连接层F6

                                5.一个输出层OUTPUT   输出10个类,分别代表数字0-9 。

此处输入图片的描述

然而这种这种神经网络具有限制在已有分类上的特点,比如对于文本,它也就只能把对应的手写字符分类到对应的位置,而如果要基于一个字符预测下一个字符,则需要使得前一个字符保存下来作为输入,而之后的10年,也就是1997年,LTSM(长短期记忆网络)被提出,这种算法对于处理时序序列的数据有很好的效果,然而当时深度学习整体没有得到足够的重视,直到现在深度学习的火热而重得重用。

LTSM基于RNN(循环神经网络),RNN这种神经网络带有环,可以使得信息持久化。

它可以使得上个数据的输出变为下个数据的输出,这样,对于预测 I 'm 19 years ___(old).就可以借助上文成功预测。

但是,有些预测,它不仅依靠邻近的上下文,还依靠较远距离的信息,比如In  France......their people ’s language is  ___(Franch) 。这时候,预测文末的单词,RNN只知道是语言,而具体的线索在句首,RNN的结构使得过于遥远的记忆得不到保留而无法预测。

而LSTM的提出就是为了解决这种长期依赖(Long Term Denpendencies)的,总共分为三步。

用了遗忘门(Forget Gate)来决定是否忘记前面的数据

比如遇到了France,就需要把之前的国别信息遗忘掉并通过输入门(Input Gate)决定更新国别信息。

最后通过输出门(Output Gate)输出我们想输出的部分

而如今LSTM有许多变种,比如

加入窥视孔连接(peephole connection):使得可以观察到元胞状态----Gers & Schmidhuber (2000)

 

Gated Recurrent Unit合并遗忘门和输入门为更新门,使得一起忘记或者一起记忆新值----Cho, et al. (2014)

但LSTM在对于图像处理上也有个缺点,就是如果我们想对图像生成描述的话,它会对图像的每一部分生成对应输出,而我们人在看图像的时候只会选取最吸引人的部分,所以现在研究LSTM的主要方向是在注意力机制上(Attention)。

————————————2006

由于多层神经网络训练时间较久,Hinton等人于2006年提出深度信念网络,并给出了该模型下的高效学习算法。该模型通过对RBM(受限玻尔兹曼机)逐层训练,再通过传统学习算法如BP进行参数的微调,可以比原来对整体神经网络的整体直接训练有极大的效率提升。

深度信念网络的信念(Belief)简单来说是外在世界的输入当做真实,经过神经网络处理的输出当做想象,把想象当做真实这种行为可看作信念。整个网络首先处理数据得到想象,如果想象不符合现实就进行对现实微调,这部采用BP算法等等,再用微调后的现实取得到想象,递归以上过程,直到达到一个收敛(平衡为止)。

深度信念网络的组件(Component)是RBM(受限玻尔兹曼机),何为RBM? 简单来说就是一个两层的神经网络,它具有如下结构:


其中,上层是hidden layer 其作用是用来提取特征,下层是visible layer 其作用是用来观测数据,同层无连接,不同层全连接。

训练RBM为以下流程:

首先定义能量函数,此能量函数的作用使得整个问题可以用物理学的相关研究来进行:

注意此处的θ被拆分成a,b和W。由物理学相关定律,基于能量分布我们可以得到关于可见层和隐层的联合概率分布:

其中Z(θ)是归一化因子。利用上述联合分布可以得到边缘分布即:

右式即是现在用的最多的sigmoid函数。该边缘分布的有关计算见能量函数和概率分布的蓝字推导部分。

假设训练样本为P(V)根据我们的目标是调整θ从而适配训练集。也就是最大化以下对数似然函数:

由In函数具有单调递增的性质,那么可以考虑沿着梯度的方向增大自变量θ的值从而快速最大化这个式子,这种方法被称作梯度上升

式子中的n是常数,被称作学习率。计算单个可见层神经元v,那么右端可以化简得到下面的结果。

  

上式计算可以将θ还原成a,b,w分别计算。左边一项则分别有:




而上述式子可以推广到对所有可见层的神经元V,则有:

先对w求导,得


当我们设可见层单元只有v0时,该式变为:

式子中含有P(V),此项的求解需要计算归一化参数Z(θ),而此项计算复杂度为O(2^(Nv+Nh))所以求解很复杂直接求显得不可行。

所以对这个项的求解采用估计计算的方式,具体用MCMC或Gipps采样。

MCMC(马尔科夫-蒙特卡罗方法),马尔科夫链是指下一时刻的分布指依靠当前的概率分布,即:


马尔科夫链的可能性质:1.周期性,多次转移构成了循环。2.不可约性,任意两个状态可相互转移。3.各态遍历:若无上述两个性质,则称具有各态遍历性。

对于各态遍历的马尔科夫链,具有以下性质:

1.对任意分布π(0),随着转移次数增多,最后总会收敛到唯一的平稳分布π(*)。

2.且有π(*) =  P  π(*)。概率转移矩阵为P

3.细致平稳条件:设分布为π(x),概率转移矩阵为P,若满足等式:


则π(x)也是平稳分布π(*),注意这个条件是个充分条件,也就是说我们转移的时候,只要转移过程满足该条件,那么就是平稳分布下的采样。而该条件的物理意义就是,i状态下转移到j状态时,和j状态转移到i状态时,分布π依旧保持不变,还是原来那个分布,所以是平稳的。

所以需要采样需要构造一个马尔科夫过程,使得其满足细致平稳条件,从而得到平稳分布π(*)下的采样:

于是有了Metropolis算法,该算法的构造了满足细致平稳条件的马尔科夫过程。但是在选择概率转移矩阵P时,其因子Q(一个已知分布的选择)需要具有对称性,如柯西分布,均匀分布,正态分布等等。所以这种算法具有一定的局限性。

所以有了Metropolis-Hastings算法,该算法通过改进概率转移矩阵P的因子a,使得不需要因子Q具有对称性,具体如下:



可以通过证明得到上述的采样过程得到的马尔科夫链满足细致平稳条件。而MH采样只是针对单变量采样,多变量采样即是MH采样的变形式:

1.使要采样的变量θ变为向量,从而可以多维度一起更新:BlockWise Metropolis-Hastings采样,但限定于Q需要选定与目标分布同维度的分布。

2.MH基本方法不变,每次只更新向量θ中的一个参数,从而Q可以只需要单变量的分布为Componentwise Metropolis-Hastings采样。

上述采样方法的详细流程见Metropolis-Hastings算法

但上述基于MCMC方法的采样仍旧有缺点:1.需要计算接受率a,且接受率经常是个低值,从而需要多次计算接受率。2.在计算Q时需要计算联合概率分布,而当参数很多的时候,联合概率分布难以计算。

通过改进,得到了Gibbs抽样法:

原理是通过发现当计算Q的时候,如果使用待求分布的条件概率分布作为概率转移矩阵P则任意两点都满足细致平稳条件,即:




上式分别是A->B,A->C时的转移,从而相当于任意两点都可以进行转移。从而得到基于坐标轴轮换的GIbbs抽样法。

1

本质上就是从已有分布中,选定某一维,其他维作为条件进行抽样,选定的这一维可以利用均匀分布随机产生定义域内某个值。完毕之后选定下一维直到无法沿着单根坐标轴跳转为止。

那么RBM的采样同理,将v和h看作两个变量,那么可以采用轮换的方式得到其相应的采样,最终得到我们想要的采样v向量,即:

而对于可见层单元只有v0时,它可以近似为:

(第二项v(k)变化),从而整个式子可被拆分为:

至此所有部分皆可求。L(s)的梯度计算可以很快得到。上述算法被称作对比散度算法(CD-k):具体流程

从而训练RBM思路就是当调用对比散度算法不断刷新参数W,a,b,直到其梯度收敛:具体流程




参考文献:


https://blog.csdn.net/itplus/article/details/19408701

http://www.52nlp.cn/lda-math-mcmc-%E5%92%8C-gibbs-sampling2

https://blog.csdn.net/cyh_24/article/details/51440344

http://www.dataguru.cn/article-11339-1.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值