BP神经网络
有一组输入数据,输入层到隐含层的权阵记为,偏置矩阵为,隐藏层的数据记为,隐藏层到输出层的权阵为,输出数据为,目标值(标签)为,代价函数为,激活函数为Sigmoid函数,其中
则有
其中,的初值都是我们任意设置的,所以必然会跟目标值产生误差,BP算法的关键就在于误差的反向传播,在此我们借助梯度下降法。我们知道,梯度方向是函数增长最快的方向,但是我们希望误差能收敛到最小值,所以需要沿着梯度的反方向不断收敛,即
,其中为调整的步长,有经验来设置。而
更新后的隐藏层到输出层的权阵为
故
更新后的输入层到隐藏层的权阵为
至此我们可以不断地修改权阵,直至误差小于一定值或迭代次数达到阈值。
小结
BP神经网络简单有效,不足之处在于,由于步长设置不当,会使得收敛结果落入局部最小值,此时误差会比较大,同时也需要输入数据的偏导数存在。