我目前正在努力赶上吴恩达在Coursera上的机器学习课程,我遇到了一点麻烦。。。
在他的反向传播视频中,他解释说我们需要计算big_delta
所有层的big_delta = big_delta + delta(l+1) * a(l)^t
l
但是,当我没有delta(l+1(时,如何计算输出层的big_delta?
他解释这一点的视频如下:https://www.youtube.com/watch?v=wmfpS5fKFeY
我迷路了。
输出层的增量是
delta = (<expected signal> - <calculated_signal>) * dA(<calculated_signal>)
其中dA是已经应用于信号的激活函数的导数。Sigmoid通常用作激活函数,其衍生物非常简单:
dS(x) = x(1-x)
"big_delta"均衡用于所有其他层,并且在更新权重和偏差时需要获得delta。
以下是反向传播的一些(难以阅读的(数学/算法。
编辑:
为了稍微澄清等式,如果Sigmoid被用作激活函数,则输出层的delta被计算为
delta = (<expected signal> - <calculated_signal>) * <calculated_signal> * (1 - <calculated_signal>)