LSTM

这篇文章配图质量太高了!

舍不得让它消失于互联网之中啊。

原文:http://colah.github.io/posts/2015-08-Understanding-LSTMs/

译文:https://www.jianshu.com/p/9dc9f41f0b29

 

普通RNN

 

 

 

LSTM

 

图例

 

 

 

 

1.细胞状态 cell_status,用字母c表示

上一个细胞的旧状态为Ct-1

 

 

2. 忘记门  forget gate

 

 

concat[ht-1,xt],再做一个linear变换,经过sigmoid得到ft 。

ft是sigmoid的输出,显然在0~1范围内。

ft传给Ct-1,表示保留多少数据。0全部舍弃,1全部保留,

 

我们把旧状态与 f_t 相乘,丢弃掉我们确定需要丢弃的信息,得到dropped_C。

 

 

3.输入门 input gate

 

 

第一,sigmoid层称 “输入门层” 决定什么值我们将要更新,输出it

然后,一个 tanh 层创建一个新的候选值向量,\tilde{C}_t,会被加入到状态中。

 

把两个结果相乘,得到 i_t * \tilde{C}_t,得到变化值delta_C。

 

4.更新状态Ct

用forget gate里得到的dropped_C + delta_C。

这就是新的细胞状态Ct。

 

5.对细胞状态Ct进行处理,得到新的输出ht

 

 

首先对Ct进行tanh处理,得到(-1,1)的值。

然后对input_x =concat(ht-1,xt),linear变化之后,再sigmoid(),得到(0,1)的值。

这两个值相乘,就是新的输出值ht。

 

 

还有一些变体,就是改各种连线图结构。

 

问题来了!!!

为什么同样一个input=concat(ht-1,xt)

经过sigmoid和tanh之后就有截然不同的意义?

为什么可以这样相乘,可以这样相加?

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值