Open cyrixlin opened 6 years ago
没有写错呀,LSTM里Xt-1与WWfx、Wix, Wox, Wcx是没有关系的,所以和RNN里的那个不一样,建议你看看RNN里关于为什么把梯度相加的推导
"LSTM里Xt-1与Wfx、Wix, Wox, Wcx是没有关系的",Xt-1与Wfx、Wix, Wox, Wcx当然是有关系的。RNN与LSTM里权重系数都是共享的,X1, X2, ... Xt-1, Xt共享一套Wfx、Wix, Wox, Wcx。因此Wfx、Wix, Wox, Wcx发生变动是从各个时刻共同来影响最后的损失函数L的。
RNN里的W是对状态st-1的权重,而LSTM里的Wfx,Wix,Wox,Wcx是对于输入X来说的,你硬要比较,那也只是和RNN里的U类似罢了,但是RNN里的U的梯度是所有时间和,这是因为U是Nett的函数,所以推导和W一样都是所有时间状态的梯度和,你再认真看看RNN里的证明吧
确实Wfx,Wix,Wox,Wcx就是和RNN里的U类似,但是RNN里的U的梯度是所有时间和,这里也没有任何道理求Wfx,Wix,Wox,Wcx的梯度时候不对各个时刻求和。Wfx、Wix, Wox, Wcx发生变动是从各个时刻共同来影响最后的损失函数L的。这道理是很明显的。
你去推推RNN里的U的梯度,对U求梯度可以利用链式求导法则化成对netj的偏导,而netj=UXj+Wf(netj-1),这里j是时刻,这样就关联起来了。你再看看LSTM里的NETo,t,NETf,t,NETc,t这些。例如
NETo,t=Wo,hht-1+Wo,xXt+b,在求对Wo,x求导时,导数和Wo,h*ht-1无关,这样就和ht-1即上一时刻的输出是无关的(ht和ht-1和xt-1有关),也就无法关联到xt-1,而对Wo,h求导这和ht-1关联了。
@894551089 在求对Wo,x求导时,导数和Wo,h*ht-1无关,这不对吧,你推导下,ht-1是和Ot-1相关的,而Ot-1和Wo,x与Xt-1 相关,这样就关联上了啊
我有同样的问题 但是没有人能解释清楚
+1,我也理解不了
你发过来的邮件怎么都是乱码啊,什么都看不到,再发一次吧。
下面这个视频里面对于Wxf的推导确实用的求和,应该是写错了 https://www.bilibili.com/video/BV1uT411n7Br?p=5&vd_source=df279daeacbb7a06318d2a393fff9b4a
学习长短时记忆网络(LSTM)中发现一个问题,Wfx、Wix, Wox, Wcx的权重梯度的计算,没有对历史时刻t进行累加。而在循环神经网络(RNN)中,损失函数E对权重矩阵U的梯度,也是各个时刻E对U的梯度之和。因此很奇怪,LSTM中损失函数对Wfx、Wix, Wox, Wcx的权重梯度,只取最后时刻的梯度,而没有按历史时刻进行梯度累加。 我怀疑LSTM里Wfx、Wix, Wox, Wcx的权重梯度的计算写错了,也应当按照历史时刻t进行梯度累加。