【神经网络篇】--RNN递归神经网络初始与详解

一、前述

传统的神经网络每个输入节点之间没有联系,

【神经网络篇】--RNN递归神经网络初始与详解_第1张图片

 RNN (对中间信息保留):

【神经网络篇】--RNN递归神经网络初始与详解_第2张图片

 

【神经网络篇】--RNN递归神经网络初始与详解_第3张图片

由图可知,比如第二个节点的输入不仅依赖于本身的输入U1,而且依赖上一个节点的输入W0,U0,同样第三个节点依赖于前两个节点的输入,

假设每一个节点分别代表着“我出生在中国,我说——”的一个预测,则“说”后面则是依赖于前面的说的每个单词的所有组合。

【神经网络篇】--RNN递归神经网络初始与详解_第4张图片

xt表示第t,t=1,2,3...步(step)的输入

st为隐藏层的第t步的状态,它是网络的记忆单元

st=f(Uxt+Wst−1),其中f一般是非线性的激活函数。

ot是第t步的输出,如下个单词的向量表示softmax(Vst)(多分类)。
二、具体

1、递归神经网络的反向传播

【神经网络篇】--RNN递归神经网络初始与详解_第5张图片

不仅更新当前节点的输入梯度,还更新当前节点的所有记忆单元,一直传播下去。

2、RNN局限性问题

【神经网络篇】--RNN递归神经网络初始与详解_第6张图片

I am Chines, I Love China
递归神经网络参数太多,信息量冗余(因为最后的预测可能只 依赖它最近的词,但我们输入的时候是所有的词,所以信息量冗余)、梯度消失。

3、LSTM(长短记忆网络)

为了解决RNN的一些缺点,RNN与LSTM对比

【神经网络篇】--RNN递归神经网络初始与详解_第7张图片

C:控制参数
决定什么样的信息会被保留什么样的会被遗忘

【神经网络篇】--RNN递归神经网络初始与详解_第8张图片

 

 具体操作:

【神经网络篇】--RNN递归神经网络初始与详解_第9张图片

 门是一种让信息选择式通过的方法sigmoid 神经网络层和一乘法操作。

Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!

Sigmoid函数
【神经网络篇】--RNN递归神经网络初始与详解_第10张图片

【神经网络篇】--RNN递归神经网络初始与详解_第11张图片

具体过程:先把当前节点的输入和之前记忆的输入传递进来,然后通过sigmod函数组合起来后得到的函数值(0,1)之间,然后再跟Ct-1组合,决定丢弃什么信息。Ct是永远更新维护的值。

保留的信息:

【神经网络篇】--RNN递归神经网络初始与详解_第12张图片

最后总的信息:

【神经网络篇】--RNN递归神经网络初始与详解_第13张图片

分两部分,遗忘的信息Cti-1和保留Ct的信息。先走遗忘的信息,再走保留的信息。Ct从开始到最后一直更新。

 输出:

【神经网络篇】--RNN递归神经网络初始与详解_第14张图片

 LSTM整体架构:

【神经网络篇】--RNN递归神经网络初始与详解_第15张图片

 与RNN对比会有一部分信息保留,一部分信息丢弃。LSTM比RNN更实用。


 

你可能感兴趣的:(深度学习框架Caffe篇)