- 以最基本的批量梯度下降法为例来描述反向传播算法。
输入: 总层数L,以及各隐藏层与输出层的神经元个数,激活函数,损失函数,迭代步长α,最大迭代次数MAX与停止迭代阈值ϵ,输入的m个训练样本{(x1,y1),(x2,y2),...,(xm,ym)}
输出:各隐藏层与输出层的线性关系系数矩阵W和偏倚向量b。
1) 初始化各隐藏层与输出层的线性关系系数矩阵W和偏倚向量b的值为一个随机值。
2)for iter to 1 to MAX:
2-1) for i =1 to m:
a) 将DNN输入a1设置为xi
b) for l=2 to L,进行前向传播算法计算
c) 通过损失函数计算输出层的δi,L
d) for l= L to 2, 进行反向传播算法计算
2-2) for l = 2 to L,更新第l层的Wl,bl:
2-3) 如果所有W,b的变化值都小于停止迭代阈值ϵ,则跳出迭代循环到步骤3。
3) 输出各隐藏层与输出层的线性关系系数矩阵W和偏倚向量b。