Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

长短时记忆网络(LSTM)中Wfx、Wix, Wox, Wcx的权重梯度的计算,为何不再对历史时刻t进行累加? #30

Open
cyrixlin opened this issue Sep 27, 2018 · 10 comments

Comments

@cyrixlin
Copy link

学习长短时记忆网络(LSTM)中发现一个问题,Wfx、Wix, Wox, Wcx的权重梯度的计算,没有对历史时刻t进行累加。而在循环神经网络(RNN)中,损失函数E对权重矩阵U的梯度,也是各个时刻E对U的梯度之和。因此很奇怪,LSTM中损失函数对Wfx、Wix, Wox, Wcx的权重梯度,只取最后时刻的梯度,而没有按历史时刻进行梯度累加。
我怀疑LSTM里Wfx、Wix, Wox, Wcx的权重梯度的计算写错了,也应当按照历史时刻t进行梯度累加。

@894551089
Copy link

没有写错呀,LSTM里Xt-1与WWfx、Wix, Wox, Wcx是没有关系的,所以和RNN里的那个不一样,建议你看看RNN里关于为什么把梯度相加的推导

@cyrixlin
Copy link
Author

cyrixlin commented Oct 9, 2018

"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的。

@894551089
Copy link

RNN里的W是对状态st-1的权重,而LSTM里的Wfx,Wix,Wox,Wcx是对于输入X来说的,你硬要比较,那也只是和RNN里的U类似罢了,但是RNN里的U的梯度是所有时间和,这是因为U是Nett的函数,所以推导和W一样都是所有时间状态的梯度和,你再认真看看RNN里的证明吧

@cyrixlin
Copy link
Author

cyrixlin commented Oct 12, 2018

确实Wfx,Wix,Wox,Wcx就是和RNN里的U类似,但是RNN里的U的梯度是所有时间和,这里也没有任何道理求Wfx,Wix,Wox,Wcx的梯度时候不对各个时刻求和。Wfx、Wix, Wox, Wcx发生变动是从各个时刻共同来影响最后的损失函数L的。这道理是很明显的。

@894551089
Copy link

你去推推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关联了。

@sangcheng0615
Copy link

@894551089 在求对Wo,x求导时,导数和Wo,h*ht-1无关,这不对吧,你推导下,ht-1是和Ot-1相关的,而Ot-1和Wo,x与Xt-1 相关,这样就关联上了啊

@luv666
Copy link

luv666 commented Mar 10, 2020

我有同样的问题 但是没有人能解释清楚

@irises1412
Copy link

+1,我也理解不了

@yepaoxixi
Copy link

yepaoxixi commented Jan 17, 2024 via email

@haildceu1
Copy link

下面这个视频里面对于Wxf的推导确实用的求和,应该是写错了
https://www.bilibili.com/video/BV1uT411n7Br?p=5&vd_source=df279daeacbb7a06318d2a393fff9b4a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants