RNN与LSTM系列(一)——LSTM反向传播公式推导

更新时间:2023-06-15 02:23:51 阅读: 评论:0

RNN与LSTM系列(⼀)——LSTM反向传播公式推导
转载⾃
0 LSTM相对于rnn的优势
The Problem of Long-Term Dependencies
One of the appeals of RNNs is the idea that they might be able to connect previous information to the prent task, such as using previous video frames might inform the understanding of the prent frame. If RNNs could do this, they’d be extremely uful. But can they? It depends.
Sometimes, we only need to look at recent information to perform the prent task. For example, consider a language model trying to predict the next word bad on the previous ones. If we are trying to predict the last word in “the clouds are in
the sky,” we don’t need any further context – it’s pretty obvious the next word is going to be sky. In such cas, where the gap between the relevant information and the place that it’s needed is small, RNNs can learn to u the past information.
But there are also cas where we need more context. Consider trying to predict the last word in the text “I grew up in France… I speak fluent French.” Recent information suggests that the next word is probably the name of a language, but if we want to narrow down which language, we need the context of France, from further back. It’s entirely possible for the gap between the relevant information and the point where it is needed to become very large.
Unfortunately, as that gap grows, RNNs become unable to learn to connect the information.
In theory, RNNs are absolutely capable of handling such “long-term dependencies.” A human could carefully pick
与生俱来
parameters for them to solve toy problems of this form. Sadly, in practice, RNNs don’t em to be able to learn them. The
problem was explored in depth by  and , who found some pretty fundamental reasons why it might be difficult.
Thankfully, LSTMs don’t have this problem!
弟弟的英文
1. 结构
1.1 ⽐较
RNN:
全脑开发训练
LSTM:
其中的notation:
1.2 核⼼思想:
LSTM在原来的隐藏层上增加了⼀个
The key to LSTMs is the cell state, the horizontal line running through the top of the diagram.
1. LSTM⽐RNN多了⼀个细胞状态,就是最上⾯⼀条线,像⼀个传送带,它让信息在这条线上传播⽽不改变信息。
The cell state is kind of like a conveyor belt. It runs straight down the entire chain, with only some minor linear
interactions. It’s very easy for information to just flow along it unchanged.
2. LSTM可以⾃⼰增加或移除信息,通过“门”的结构控制。
“门”选择性地让信息是否通过,“门”包括⼀个sigmoid层和按元素乘。如下图:
sigmoid层输出0-1的值,表⽰让多少信息通过,1表⽰让所有的信息都通过。
⼀个LSTM单元有3个门。
2. 流程
上⾯⼀条线CtCt是细胞状态,下⾯的htht是隐藏状态 。
其实看多少个圆圈、黄框就知道有哪些操作了。
三个sigmoid层是三个门:忘记门、输⼊门、输出门。
ftitCt~Ctotht=σ(Wf⋅[ht−1,xt]+bf)=σ(Wi⋅[ht−1,xt]+bi)=tanh(WC⋅[ht−1,xt]+bC)=ft∗Ct−1+it∗Ct~=σ(Wo⋅[ht−1,xt]+bo)=ot∗tanh(Ct)
2.1 忘记门:扔掉信息(细胞状态)
论文期刊等级
第⼀步是决定从细胞状态⾥扔掉什么信息(也就是保留多少信息)。将上⼀步细胞状态中的信息选择性的遗忘 。
实现⽅式:通过sigmoid层实现的“忘记门”。以上⼀步的ht−1ht−1和这⼀步的xtxt作为输⼊,然后为Ct−1Ct−1⾥的每个数字输出⼀个0-1间的值,表⽰保留多少信息(1代表完全保留,0表⽰完全舍弃),然后与Ct−1Ct−1乘。
例⼦:让我们回到语⾔模型的例⼦中来基于已经看到的预测下⼀个词。在这个问题中,细胞状态可能包含当前主语的类别,因此正确的代词可以被选择出来。当我们看到新的主语,我们希望忘记旧的主语。
例如,他今天有事,所以我…… 当处理到‘’我‘’的时候选择性的忘记前⾯的’他’,或者说减⼩这个词对后⾯词的作⽤。
2.2 输⼊层门:存储信息(细胞状态)
第⼆步是决定在细胞状态⾥存什么。将新的信息选择性的记录到细胞状态中。
实现⽅式:包含两部分,1. sigmoid层(输⼊门层)决定我们要更新什么值;2. tanh层创建⼀个候选值向量Ct~Ct~,将会被增加到细胞状态中。 我们将会在下⼀步把这两个结合起来更新细胞状态。
例⼦:在我们语⾔模型的例⼦中,我们希望增加新的主语的类别到细胞状态中,来替代旧的需要忘记的主语。 例如:他今天有事,所以我…… 当处理到‘’我‘’这个词的时候,就会把主语我更新到细胞中去。
2.3 更新细胞状态(细胞状态)
更新旧的细胞状态
实现⽅式:Ct=ft∗Ct−1+it∗Ct~Ct=ft∗Ct−1+it∗Ct~,ftft表⽰保留上⼀次的多少信息,itit表⽰更新哪些值,Ct~Ct~表⽰新的候选值。候选值被要更新多少(即itit)放缩。
这⼀步我们真正实现了移除哪些旧的信息(⽐如⼀句话中上⼀句的主语),增加哪些新信息。
2.4 输出层门:输出(隐藏状态)
最后,我们要决定作出什么样的预测。
实现⽅式:1. 我们通过sigmoid层(输出层门)来决定输出新的细胞状态的哪些部分;2. 然后我们将细胞状态通过tanh层(使值在-1~1之间),然后与sigmoid层的输出相乘。
所以我们只输出我们想输出的部分。
例⼦:在语⾔模型的例⼦中,因为它就看到了⼀个 代词,可能需要输出与⼀个 动词 相关的信息。例如,可能输出是否代词是单数还是复数,这样如果是动词的话,我们也知道动词需要进⾏的词形变化。
例如:上⾯的例⼦,当处理到‘’我‘’这个词的时候,可以预测下⼀个词,是动词的可能性较⼤,⽽且是第⼀⼈称。 会把前⾯的信息保存到隐层中去。
3. 反向传播
如图上的5个不同的阶段反向传播误差。
1. 维度
先介绍下各个变量的维度,htht 的维度是黄框⾥隐藏层神经元的个数,记为d,即矩阵W∗W∗ 的⾏数(因为WjiWji是输⼊层的第ii个神经元指向隐藏层第jj个神经元的参数),xtxt的维度记为n,则[ht−1xt][
ht−1xt]的维度是d+nd+n,矩阵的维度都是d∗(d+n)d∗(d+n),其他的向量维度都是d∗1d∗1。(为了表⽰、更新⽅便,我们将bias放到矩阵⾥)
以WfWf举例:
同理:
合并为⼀个矩阵就是:
2.⼀些符号
⊙⊙ 是element-wi乘,即按元素乘。其他的为正常的矩阵乘。
为了表⽰向量和矩阵的元素,我们把时间写在上标。
⽤δztδzt表⽰EtEt对ztzt的偏导。
⊗⊗​表⽰外积,即列向量乘以⾏向量
3.两点疑惑
1. 3.2中 δCt+=δht⊙ot⊙[1−tanh2(Ct)]δCt+=δht⊙ot⊙[1−tanh2(Ct)] 我还没想明⽩
2. 3.5中下划线的是ht−1ht−1的函数 ,但Ct−1iCit−1 也是ht−1ht−1的函数,不知道为什么不算 。
3.1 δhtδht
我们⾸先假设∂Et∂ht=δht∂Et∂ht=δht ,这⾥的EtEt指的是t时刻的误差,对每个时刻的误差都要计算⼀次。
3.2 δot、δCtδot、δCt
Forward: ht=ot⊙tanh(Ct)ht=ot⊙tanh(Ct)
已知:δhtδht
求:δot、δCtδot、δCt
解:由于
所以
但是 提到 δCt+=δht⊙ot⊙[1−tanh2(Ct)]δCt+=δht⊙ot⊙[1−tanh2(Ct)] 我还没想明⽩
3.3 δft、δit、δCt~、δCt−1δft、δit、δCt~、δCt−1
Forward:Ct=ft⊙Ct−1+it⊙Ct~Ct=ft⊙Ct−1+it⊙Ct~
已知:δot、δCtδot、δCt
求:δft、δit、δCt~、δCt−1δft、δit、δCt~、δCt−1
解:因为
所以:
周一诺资料
3.4 δWf、δWi、δWc、δWoδWf、δWi、δWc、δWo
Forward:ft=Wf⋅st,it=Wi⋅st,ot=Wo⋅st,Ct~=WC⋅stft=Wf⋅st,it=Wi⋅st,ot=Wo⋅st,Ct~=WC⋅st
已知:δft、δit、δCt~、δCt−1δft、δit、δCt~、δCt−1
求:δWf、δWi、δWc、δWoδWf、δWi、δWc、δWo
彼岸花的故事解:由于
所以:
合并在⼀起就是:
3.5 δht−1δht−1
Forward:
下划线的是ht−1ht−1的函数 ,但Ct−1iCit−1也是ht−1ht−1的函数,不知道为什么不算 。
云南的风景已知:δft、δit、δCt~、δCt−1δft、δit、δCt~、δCt−1
求:δht−1δht−1
解:
式1是Forward⾥第⼀个式⼦对oti和ctioit和cit求导;式2是Forward⾥第⼆个式⼦对fti,iti,Ct~fit,iit,Ct~求导。
然后看Forward⾥的后⼏个式⼦,对ht−1ht−1求导:
所以(*)式⽤矩阵计算则为:
3.6 总梯度
∂E∂W=∑t=0T∂Et∂W∂E∂W=∑t=0T∂Et∂W
4.变种
GRU
校园招聘It combines the forget and input gates into a single “update gate.” It also merges the cell state and hidden state, and makes some other changes. The resulting model is simpler than standard LSTM models, and has been growing increasingly popular.
add peephole
u coupled forget
Another variation is to u coupled forget and input gates. Instead of parately deciding what to forget and what we should add new information to, we make tho decisions together. We only forget when we’re going to input something in its place. We only input new values to the state when we forget something older.
其他
The are only a few of the most notable LSTM variants. There are lots of others, like Depth Gated RNNs by . There’s also some completely different approach to tackling long-term dependencies, like Clockwork RNNs by .
Which of the variants is best? Do the differences matter? do a nice comparison of popular variants, finding that they’re all about the same. tested more than ten thousand RNN architectures, finding some that worked better than LSTMs on certain tasks.
参考:

本文发布于:2023-06-15 02:23:51,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1038952.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:状态   信息   细胞   输出   向量   主语   知道
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图