- 接著上一篇RNN的推導(dǎo),我們這次來理解LSTM的原理的推導(dǎo)過程.
- LSTM的由來這里簡(jiǎn)而概之,保留該保留的,忘記該忘記的,不懂的人可以百度一下,因?yàn)楸容^簡(jiǎn)單這里不再概述.
- 在Alex Graves的這篇論文《Supervised Sequence Labelling with Recurrent Neural Networks》中對(duì)LSTM進(jìn)行了綜述性的介紹是尔,并對(duì)LSTM的Forward Pass和Backward Pass進(jìn)行了公式推導(dǎo)殉了。
- 本博文是根據(jù)LSTM的公式推導(dǎo)詳解這篇翻譯進(jìn)行總結(jié)和整理(部分內(nèi)容可能有問題,加了自己的觀點(diǎn)),由于看外文太麻煩了,索性投機(jī)取巧了~~
- LSTM的結(jié)構(gòu)圖如下:
沒有看原論文,個(gè)人感覺這里有問題,從下面的公式推導(dǎo)來看,這里的圖少了一點(diǎn):當(dāng)前cell和下一個(gè)cell之間傳遞,現(xiàn)將自己改動(dòng)的圖放在下面
- 前向傳播
就是結(jié)構(gòu)復(fù)雜一點(diǎn),其他的都差不多,自己動(dòng)手退一下就好
- 反向傳播
- 這里得注意一下我剛開始畫的那條線,不然的話中間推導(dǎo)起來有點(diǎn)麻煩.
- 反向傳播主要是看反向傳播線,找到當(dāng)前需要求解的梯度值,然后找與之相對(duì)應(yīng)的反向傳播線即可,
- 這里給出一個(gè)最難求解的CELL端的反向傳播的分析例子,其它的自己動(dòng)手理一下就好.
- 首先找到cell與之相連的反向傳播線,這里我們找到是四個(gè)
- 下一時(shí)刻的Output Gate
- 當(dāng)前時(shí)刻的Cell Output
- 下一時(shí)刻的Input Gate
- 下一時(shí)刻的Forget Gate
- 分析完這些之后那就進(jìn)行鏈?zhǔn)角髮?dǎo)法則
- 總結(jié)
- LSTM就是RNN的加深,就像剛開始我說的:保留該保留的,忘記該忘記的,
- 推導(dǎo)的過程要屢清楚傳遞線路
- 熟悉鏈?zhǔn)角髮?dǎo)法則
- 就這樣了,理論和實(shí)踐還有很大差距,接下來我會(huì)用例子帶你進(jìn)入RNN的奇妙之旅
- 參考文獻(xiàn)