深度学习的反向误差传播,其实就是导数的链式求导法则,通过误差对权重的偏导:
求得权重对误差的贡献大小,然后在给定学习率的情况下,根据该偏导求权重的更新值:
反向传播的链式法则,实例推导:
http://www.cnblogs.com/charlotte77/p/5629865.html
反向传播的简单例子:
http://www.ppvke.com/Blog/archives/40563
反向传播最简单的python例子(11行python代码):
http://blog.csdn.net/mingtian715/article/details/53954069
在2层网络中,其反向传播的核心代码如下:
X是输入,nonlin是求sigmoid函数,加第二个参数,且为true时,其求的是sigmoid的导数
syn0是权重,下面后三行中的代码全部是按照偏导求法的链式法则来求的
for iter in xrange(10000):
# forward propagation
l0 = X
l1 = nonlin(np.dot(l0,syn0))
# how much did we miss?
l1_error = y - l1
# multiply how much we missed by the
# slope of the sigmoid at the values in l1 反向传播公式
l1_delta = l1_error * nonlin(l1,True)
# update weights
syn0 += np.dot(l0.T,l1_delta)
反向传播示意图:
源地址:http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html