简介循环神经网络家族

突然更新的机器学习系列……

循环神经网络

不管是RNN还是CNN,他们都是一种特征提取的手段,只不过CNN做的是提取空域的近邻信息,然而RNN是提取的时域上的上下文关系,我们经常在视频,文本这样具有明显的时间关系的数据来源上利用这种结构,根据任务的不同,我们可以把他垫在softmax后面做分类,或者是利用隐向量做翻译。
循环神经网络的示意图

上面是一个简单的RNN,对于任何一个 h i h_i hi,它的表达式为
h i = f ( U x 1 + W h i − 1 + b ) h_i = f(Ux_1+Wh_{i-1}+b) hi=f(Ux1+Whi1+b)
f = t a n h ( X ) f = tanh(X) f=tanh(X)
我们发现RNN的每一个时刻对应hidden vector都和上一个时刻的hidden vector通过参数矩阵联系在一起,这些参数是同层共享的。同样的,我们在反向传播的时候,就需要重新考虑这个时刻之前的信息,公式比较复杂,这也引出了后面提到的问题:梯度消散

RNN的一些任务:

机器翻译:encoder&decoder
假设现在有一位中英翻译,一位英日翻译,现在你要去翻译一篇中文文章,翻译成日语,怎么做呢?当然是先翻译成英语,之后翻译成日语。
在无法实现n*(n-1)/2的点对翻译机制下,中间语言就比较重要了。
我们在使用RNN做翻译的时候,我们利用两个RNN做encoder,decoder。encoder的作用是把源语言翻译成隐向量,decoder就是把隐向量翻译成目标语言,这里的隐向量实际上就是中间语言

梯度消散和LSTM

由于RNN自身的参数更新方式,信息之间仅靠相邻关系,明显是不够的,再有,如果RNN的迭代次数越大,梯度就会变得越来越小,围殴了解决这样的问题,我们有了LSTM
LSTM的结构更加复杂,一个LSTMcell有三个输出,一个我们称为cell state,这个就是保存长远信息的机制,通过门机制,我们可以有选择地将输出推送到这个cell state相后传播
在这里插入图片描述
门机制实际上就是有选择的让一些数据经过这个门,对应上图的
在这里插入图片描述
结构,对于一个Sigmod function,他输出的值,就是让多大的数据走到下一步。有关遗忘门机制,可以参照http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 的解释,非常清楚

GRU LSTM的变体

对于LSTM实际上变体有很多,不如说LSTM和他的变体,都是对门机制的进一步应用,先对LSTM,GRU的结构比较简单,但是效果是接近的,在一定程度上可以代替LSTM
在这里插入图片描述

总结

循环神经网络的核心思想实际上就是保存信息,以及利用保存的信息,在其基础上的应用也有很多。考虑到其运算效率,实际应用还需要大量的算力和优化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值