我很困惑为什么dz=da*g'(z)
?
众所周知,在a=g(z)
的前向传播中,取z
的导数后,我可以得到da/dz=g'(z)
,所以dz=da*1/g'(z)
?
谢谢!
答案 0 :(得分:2)
据我所记得,在许多课程中,像dZ
之类的表示形式是写dJ/dZ
等的较短方法。所有导数在各种参数,激活和加权总和等方面都是代价。
答案 1 :(得分:0)
微分方程基于最后一层,然后您可以向后构建它们,最后一层的方程可以基于很少的激活函数。
线性 g'(z)= 1或1D(基于图层尺寸的1矢量)
Sigmoid g'(z)= g(z)*(1-g(z))
Tanh g'(z)= 1-thanh ^ 2(z)
Relu = 1,如果g(z)> 0否则为0
泄漏的Relu = 1,如果g(z)> 0以及您保持的泄漏的Relu斜率。
从那里基本上,您必须为先前的层计算局部梯度。查看http://neuralnetworksanddeeplearning.com/chap2.html以获得更深入的了解