手推RNN(第二部)

  • 接着上一篇RNN的推导,我们这次来理解LSTM的原理的推导过程.
  • LSTM的由来这里简而概之,保留该保留的,忘记该忘记的,不懂的人可以百度一下,因为比较简单这里不再概述.
  • 在Alex Graves的这篇论文《Supervised Sequence Labelling with Recurrent Neural Networks》中对LSTM进行了综述性的介绍,并对LSTM的Forward Pass和Backward Pass进行了公式推导。
  • 本博文是根据LSTM的公式推导详解这篇翻译进行总结和整理(部分内容可能有问题,加了自己的观点),由于看外文太麻烦了,索性投机取巧了~~
  • LSTM的结构图如下:
8791347-36196905ee3bd874.png
LSTM简图
8791347-154e758bd7d36ebb.png
剖析图(/home/wjy/Desktop/123.png)

没有看原论文,个人感觉这里有问题,从下面的公式推导来看,这里的图少了一点:当前cell和下一个cell之间传递,现将自己改动的图放在下面

8791347-74a0599f90adafa5.png
修改后的图
  • 前向传播

就是结构复杂一点,其他的都差不多,自己动手退一下就好

8791347-fb393c51e358a40a.png
前向传播
  • 反向传播
8791347-b60c6c061e739eb7.png
权重示意图
  1. 这里得注意一下我刚开始画的那条线,不然的话中间推导起来有点麻烦.
  2. 反向传播主要是看反向传播线,找到当前需要求解的梯度值,然后找与之相对应的反向传播线即可,
  3. 这里给出一个最难求解的CELL端的反向传播的分析例子,其它的自己动手理一下就好.
8791347-36d11658aa66331c.png
Cell梯度求解示意图
  • 首先找到cell与之相连的反向传播线,这里我们找到是四个
    1. 下一时刻的Output Gate
    2. 当前时刻的Cell Output
    3. 下一时刻的Input Gate
    4. 下一时刻的Forget Gate
  • 分析完这些之后那就进行链式求导法则
8791347-bdf108f7b46d79e8.png
Cell梯度图
8791347-8dbbb4d5cd885066.png
全部反向梯度图
  • 总结
  1. LSTM就是RNN的加深,就像刚开始我说的:保留该保留的,忘记该忘记的,
  2. 推导的过程要屡清楚传递线路
  3. 熟悉链式求导法则
  4. 就这样了,理论和实践还有很大差距,接下来我会用例子带你进入RNN的奇妙之旅
  • 参考文献

RNN推导的挺好的,就是没图片

RNN推导参考之一

LSTM文章简介,没有公式推导

外国大神的论文,来自中国大神的翻译,非常棒

手写RNN代码

猜你喜欢

转载自blog.csdn.net/weixin_33953384/article/details/87428849