BP中文名为误差后向传播算法,其是针对前馈神经网络的常用训练算法。BP的算法原理资料很多,这里就不一一赘述。
一、算法的思考与改进
BP算法虽然很强大,但是其收敛速度慢,训练时间长、容易落入局部最优值等缺点一直为人诟病。而对于BP算法的改进方法有如:自适应步长、增加动量项等。
固定步长:
如下对于这是简单的线性数据拟合,差不到200+次迭代神经网络才收敛:
调整策略1:
这个调整策略来自参考文献[1]的变学习率公式,前期的步长十分大,而后学习率随着迭代次数增加而线性减小:
stepDist = max_step - ((max_step - min_step) * cntIter / nIter);
其接近20次就基本收敛了:
调整策略2:
使用前后两次的迭代误差的差值来确定是否