从最初rnn 到lstm 演变, lstm各个控制门的实现过程

自剪枝神经网络

Simple RNN从理论上来看,具有全局记忆能力,因为T时刻,递归隐层一定记录着时序为1的状态

但由于Gradient Vanish问题,T时刻向前反向传播的Gradient在T-10时刻可能就衰减为0。

从Long-Term退化至Short-Term。

尽管ReLU能够在前馈网络中有效缓解Gradient Vanish,但RNN的深度过深,替换激活函数治标不治本。

tj=p+1bjhbj1h(βWβh)tpwhereβ=UpperBound

上式中指明的根源所在,由于W和h两个矩阵多次幂导致受数值影响敏感,简而言之就是深度过大。

大部分Long-Term情况下,不需要提供路径上完整的信息,但反向传播还是循规蹈矩地穿过这些冗深度。

解决方案之一是,设置可自主学习的参数来屏蔽掉这些无用的信息,与"降维"相似,这种方法叫"降层"

神经网络的剪枝策略很简单,就是添加参数矩阵,经过一定周期的学习,选择性屏蔽掉输入,精简网络。

从结构上来看,类似“树套树”,就是”神经网络套神经网络“。

动态门结构

简单概括:

★LSTM将RNN的输入层、隐层移入Memory Cell加以保护

★Input Gate、Forget Gate、Output Gate,通过训练参数,将Gate或开(置1)或闭(置0),保护Cell。

在时序展开图上则更加清晰:

 

公式定义

原版LSTM最早在[Hochreiter&Schmidhuber 97]提出。

今天看到的LSTM是[Gers 2002]改良过的 extended LSTM。

extended LSTM扩展内容:

★Forget Gate,用于屏蔽t-1以及之前时序信息。

在时序展开图上,由左侧锁住以保护Cell。

★三态门控:

97年提出的Gate输入类似RNN,分为两态Weight矩阵:

Wx——序列输入信息

Wh——递归隐态输入信息

2002年补充了第三态:

Wc——递归Cell态输入信息

将Cell的时序状态引入Gate,称为Peephole Weights。

唯一作用似乎是提升LSTM精度,Alex Graves的博士论文中这么说:

The peephole connections,meanwhile, improved the LSTM’s ability to learn tasks that require precise
timing and counting of the internal states.

具体实现的时候,为了增加计算效率,可以忽视:

Theano的Tutorial中这么说道:

The model we used in this tutorial is a variation of the standard LSTM model.

In this variant, the activation of a cell’s output gate does not depend on the memory cell’s state C_t.

This allows us to perform part of the computation more efficiently (see the implementation note, below, for details).

而CS224D Lecture8中压根就没提。

所以双态Gate可能是更为主流的LSTM变种。

2.1 前向传播

输入门:

it=Sigmoid(Wixt+Uiht1+ViCt1)       ①

遗忘门:

ft=Sigmoid(Wfxt+Ufht1+VfCt1)     ②

输出门:

Ot=Sigmoid(Woxt+Uoht1+VoCt)     ③

原始Cell(RNN部分):

Ct~=Tanh(Wcxt+Ucht1)                   ④

门套Cell:

Ct=itCt~+ftht1          (输入门+遗忘门)        ⑤

ht=OtTanh(Ct)whereht=FinalOutput        (输出门)       ⑥

————————————————————————————————————————————————————

仔细观察①②③④,发现除了Peephole Weights引入的 V 阵,这四个式子是一样的。

Theano中为了GPU能够一步并行计算,没有使用Peephole Weights,这样①②③④就是一个基本并行模型:

以相同的代码,运算数据集在空间中的不同部分。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值