深度学习——RNN网络结构和升级版LSTM

YouTube视频链接

RNN网络结构
RNN——递归神经网络
中间在隐藏层做了相应的变换,不是像全连接网络一样,直接将得到的结果向前传递,而是需要在中间保存信息,在后续的计算中会利用到之前保存好的信息。
RNN展开式
比如现在我们有一句话:我出生在中国,所以我的母语是?x0代表我;xt代表说,那么现在我们要做的事情是用RNN网络实现预测“说”后面该接什么词。
当输入“我”时,在A处得到一个记忆单元,这个记忆单元除了向前传递到h0之外,还要向右传递,那么对于x1输入“出生”也是一样的,依此类推,最后当输入xt是“说"时,RNN网络会“记得”之前有个词是“中国”,因为预测?为汉语的概率就会大大增加。
结构
xt表示输入,如果是自然语言处理中类似于上面的例子,我们首先需要做的是分词,划分完词之后就可以将每一个分词作为每一步的输入值;
st表示网络的记忆单元,不仅包括第t步的输入,还要之前的t-1步的信息,两者共同作用于一个激活函数上;
ot通常我们希望得到的是一个概率值,我们要对每一步的ot得到他的softmax形式,也就是将词的向量转换成概率的形式,表示这个词输入进来之后,下面接的词的概率是多少。
反向传播

假设现在我们得到了第4步的输出是E3,我们算反向传播的时候,可以看到E3链接的单元是s3,可以计算E3对s3的梯度;
到了s3之后,看到s3连接了两部分,一部分是x3输入值,如果更新x3到s3的权重w3时,可以再计算s3对x3的梯度;
另一部分是s3对s2的梯度,可以计算出s2对s3向前传播时的梯度。
以此类推,就可以得到各个连接线上不同的梯度。
RNN的缺点
那么RNN有什么缺点呢?
1、如果句子很长,那么最后预测的单词的概率可能和第一个词的关联性不是很大,保留下来的信息可能大部分没有用,导致信息冗余,也会造成网络结构太庞大;
2、在反向传播的过程中,梯度很多,如果梯度很小,会造成梯度消失。
下面介绍LSTM对上面的缺点进行改进:在这里插入图片描述在这里插入图片描述
在LSTM中,当输入一个数据之后,并不会把所有的信息都保留下来,我们会指定一个控制参数C。假如C[0,0.5,1,0.8],对于某个信息来说,如果对应的C值是0,那就直接将这个信息舍弃,参数为0.5的保留部分信息。
在这里插入图片描述
参数C是需要网络进行训练的,是通过一个门单元,利用sigmoid函数来进行设置的。
在这里插入图片描述
在这里插入图片描述
当输入xt和t-1层的记忆单元之后,通过sigmoid函数将输入结果转化到[0,1]之间,然后与C_t-1相乘共同决定丢弃什么信息。
在这里插入图片描述
在这里插入图片描述
将丢弃的门单元和保留的门单元共同作用得到了新的C_t值,这里的C_t是从始至终要更新的。
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值