从乘法求导法则到BPTT算法

虚幻大学 xuhss 307℃ 0评论

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475
本文为手稿,旨在搞清楚为什么BPTT算法会多路反向求导,而不是一个感性的认识。

7f2a67dae01f387aa591d3e6289579e2 - 从乘法求导法则到BPTT算法

375f9074594cc736217edfcfd5bca25d - 从乘法求导法则到BPTT算法

假设我们要对E3求导(上图中的L3),那么则有:

5a39043250a4775e5faf334080f63a59 - 从乘法求导法则到BPTT算法4ced2be0ab0bffa707548ae59fd5cc2e - 从乘法求导法则到BPTT算法

所以S2是W的函数,也就是说,我们不能说:

8cc3d1e27e6179d49e677b4b35c04f56 - 从乘法求导法则到BPTT算法

因为WS2 = WS2(w),S2里面包含了W这个变量,S2是W的函数,也许有人会说:“S2里面的W是常数吧”,那么请想一想S2的一般表达式。(这里我其实还是有点过不去,但是我觉得应该是这样的,不知道各位是否有理解方法)

所以有:

746dfd971a2e96bb978f8bd033d65d18 - 从乘法求导法则到BPTT算法

而对函数WS2(w)求导(对W求导),结果为:

2d3a750de9d6ddffcefb99278471caae - 从乘法求导法则到BPTT算法

S02和W2在RNN中的位置为:

7549c524c28de68927c3e67279bf798e - 从乘法求导法则到BPTT算法

再次注意,上面两个值不是变量,是一个具体的值。

然后再求(WS1)`:

bd767da97823b15fbe280bb96f9a5c60 - 从乘法求导法则到BPTT算法

另外关于W1,这里我不太清楚是否继续要用W2,因为毕竟是对第t=3时刻的W求导,如果后面知道了,再改也不迟。

继续求下去:

614e9843e55b8f12bb83505c59c16620 - 从乘法求导法则到BPTT算法

我们假设S-1是全0的向量,那么S0`就会是0.

然后,我们把上面分开求的结果合并起来,直接计算S3对W的导数:

c0ed15d3f7ff185d21d8c75673156a9e - 从乘法求导法则到BPTT算法b3526db27db34c927d82c21799bd08c6 - 从乘法求导法则到BPTT算法

最后一行就是最终的结果,其实这三项分别对应:

a8158227f95ec7d73a94dc38ce6d6bbc - 从乘法求导法则到BPTT算法

下面是数学表示:

21f8a93c5a7f63d907b0b03e10207125 - 从乘法求导法则到BPTT算法

所以,

BPTT反向求导为什么必然会有多路,实际上是因为 S2是W的函数,所以要运用乘法求导法则,最后完全求出(S2W)`之后,便可以写成这样的形式:

7f2a67dae01f387aa591d3e6289579e2 - 从乘法求导法则到BPTT算法

1d976cf14151503fa2898717f6492e8f - 从乘法求导法则到BPTT算法

1e539c19aca29e1a3838c94bd2b64f9a - 从乘法求导法则到BPTT算法

以下是完整草稿:

2278d1a459711710e3558b4f2f836209 - 从乘法求导法则到BPTT算法

6b6de5ea5d56770563653a0c64ada632 - 从乘法求导法则到BPTT算法

7faadbc1e4b477a2c351eb3a941e87dc - 从乘法求导法则到BPTT算法

本文截图部分来自我的NLP课程乔波老师的PPT。

转载请注明:xuhss » 从乘法求导法则到BPTT算法

喜欢 (0)

您必须 登录 才能发表评论!