'); })();

浅谈深度学习基础(下)

编辑时间: 2017-12-26 23:02:45    关键字:

 我们来想一下卷积多张图的意义在哪?我们知道,越往后的卷积核的feature就越高级越抽象,而这个高级feature往往是通过组合低级feature得到的,比如低级feature可能是折线,而高级feature就可能是一个轮子、一张人脸。卷积多张图就是组合低级feature尝试生成高级feature的过程,这种不对称的组合连接的方式有利于提取多种组合特征。

  这里计算可训练参数和连接数也比C1层复杂得多,C3层一共(5*5*3+1)*6 + (5*5*4+1)*6 + (5*5*4+1)*3 + (5*5*6+1)*1 = 1516个训练参数,需要注意的是,之前的算法是(5*5+1)*卷积核数这里不再适用,因为每个卷积核不再只卷积一张图,5\*5后面要接着乘以卷积图的张图,因为之前只有1张,所以就省略了,这里每个卷积核都卷积多张图,所以不能省略,而且要分开计算,因为不同的卷积核卷积图的张数也分为不同的几种;至于连接数,代之前的公式,一共(10*10)*1516 = 151600个连接。

  再后面是S4层,用16个2*2的池化核将16张10*10的FM池化成16张5*5的图,一共16\*2 = 32个可训练参数,一共(5*5)*16*5 = 2000个连接。

  然后是C5层,我们看到S4层每张图就已经是5*5的了,而我们的卷积核也是5*5的,所以卷积完了就是一个点。这里用120个卷积核,生成120张FM,每张FM就一个点。每张FM都卷积S4层全部16张图,卷积多张图的方法也和C3层讲的一样。

  再后面是F6层,F6层是全连接层,有84个单元,与C5层全连接,有10164个可训练参数。如同经典神经网络,F6层计算输入向量和权重限量之间的点积,再加上一个偏置。然后将其传递给Sigmoid函数产生单元i的一个状态。

  输出层也是全连接层,前面提到过它的计算方式,这里重复一下,一共10个输出,10个单元,每个单元有84个输入,且如果节点i的值为0,则网络识别的结果是数字i。采用的是欧式径向基函数(ERBF)的网络连接方式。假设x是上一层的输入,y是ERBF的输出,则ERBF输出的计算方式是:

浅谈深度学习基础

 

  我们不断重复使用同样的网络结构,将其隐层相连,前面隐层的输出作为后面隐层输入的一部分使用。

上图是神经单元的展开,如果收起,则结构如下:

一个循环的神经单元

一个循环的神经单元

  那使用RNN如何解决前面提到的问题呢?在RNN里,当前面的词不同时,对应的隐层输出也就不同,前面词的隐层输出作为输入的一部分提供给了Taipei对应的隐层,进而使得Taipei被填进每个槽位的概率也不同。从而实现,当前面是arrive时,将Taipei填进目的地槽;当前面是leave时,将Taipei填进出发地槽。

  下面来讲RNN中广泛使用且效果极为出色的一种类型 —— LSTM(长短期记忆神经网络,Long-Short Term Memory)。

  前面讲,普通RNN无法处理随着递归,梯度爆炸或消失的问题,这样导致普通RNN无法捕捉过长时间的关联。前面隐层输出的不同会随着梯度消失,距离越远,影响就越小。而LSTM通过特殊的结构解决了这个长期依赖的问题。

  LSTM的结构这部分我主要读了两篇资料,一篇是Christopher Olah 的博文,另一篇是李宏毅教授Deep Learning Tutorial里面的对应内容。

  这两篇资料的讲解,一篇以等价的逻辑结构来讲,更通俗;一篇以真实结构来讲,更深入,这里我准备加上自己的理解,将两种结构对比起来讲。

  先说标准RNN的结构,所有的RNN都有神经网络的重复模块组成的链式结构。对于标准的RNN,这种重复模块有一个非常简单的结构,如一个单一的tanh(双曲正切)层:

浅谈深度学习基础

 

  LSTM中也有这样的链式结构,但重复模块却具有和一般RNN不同的结构。前面标准RNN只有一个交互层,而LSTM有四个。

  为了便于理解,我们先以LSTM的等价逻辑结构进行讲解:

LSTM的等价逻辑结构

LSTM的等价逻辑结构

  如图所示,LSTM的神经元由四部分组成,分别是:输入门、输出门、遗忘门和记忆细胞。接受4个输入,1个输出。输入门、输出门、遗忘门各接受一种控制信号输入。输入门还额外接受上个神经元的输入,输出门额外给出一个到下个神经元的输出。3种门是用来保护和控制细胞状态的。

  下图展示了逻辑结构下的实际计算过程:

浅谈深度学习基础

 

  首先,前面讲输入门、输出门、遗忘门各接受一种控制信号输入,也就是这里图上的zi、zo、zf,这三种信号进来要经过的函数f为激活函数,通常使用Sigmoid函数,我们知道Sigmoid函数的输出在0到1之间,非常适合作为门的控制信号,0代表完全舍弃(关闭),1代表完全保留(开启)。

  关注图中门的开启关闭是如何起作用的,我们可以发现,假如输入门接受信号zi过小,导致对应Sigmoid函数的输出为0,则意味着输入门关闭,我们可以看到f(zi)与神经元的输入z处理得到的g(z)是相乘的关系,也即如果输入门关闭,则该LSTM神经元不再接收输入门的输入z。同理,如果输出门关闭,则该LSTM神经元输出门无法产生有效的输出a。而对于遗忘门,根据图中的公式可知,如果遗忘门关闭,则意味着记忆细胞过去的记忆值c将被忘记,该LSTM神经元的输出完全独立,不受过去输出的影响。(如果将遗忘门叫做记忆门或许更好理解,记忆门关闭则完全遗忘。)

推荐热图
2010-2016 可思数据版权所有 ICP备案:京ICP备14056871号