-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
关于反向传播的问题 #3
Comments
误差反向传播,最后一层的误差就是预测(前向传播的值)减去label真实值,然后反向传播计算每一层的误差 |
更新第二层权重theta2需要求costFunction对theta2的导数,costFunction对theta2的导数可以分解为 z3对theta2的导数 与 costFunction对z3的导数 之积,前者是a2,后者不应该只是 h-class_y 吧,我觉得应该是 (h-class_y)乘上h对z3的导数,即sigmoidGradient(z3)。我是初学者,也是自学者,没有进行过专业的学习,很可能犯一些很幼稚的错误,希望你能多多包涵,不吝赐教。 |
好久没看都忘记了,你的理解是对的,但是这里最后使用的是交叉熵损失函数,你可以试着推导一下,应该是没错的。 |
刚做了个实验,代码里是有一个利用梯度的定义检测梯度的函数的,如果代价函数定义为均方误差(没加正则):
然后修改
这样输出的梯度是正常的
(如果我检测梯度函数没写错的话=-=) |
是我惯性思维了,以为这里是欧式距离,你说的是对的。 |
当时也是刚学完python没多久写的,应该有好多地方不是最简化的。意思意思 |
在反向传播更新 Theta2_grad 时,delta3 是不是应该乘上 sigmoidGradient(z3) 之后再进行梯度更新呢
The text was updated successfully, but these errors were encountered: