BP神经网络的自适应步长问题
来源:互联网 发布:小米2s3g网络设置 编辑:程序博客网 时间:2024/05/17 09:03
BP中文名为误差后向传播算法,其是针对前馈神经网络的常用训练算法。BP的算法原理资料很多,这里就不一一赘述。
一、算法的思考与改进
BP算法虽然很强大,但是其收敛速度慢,训练时间长、容易落入局部最优值等缺点一直为人诟病。而对于BP算法的改进方法有如:自适应步长、增加动量项等。
固定步长:
如下对于这是简单的线性数据拟合,差不到200+次迭代神经网络才收敛:
调整策略1:
这个调整策略来自参考文献[1]的变学习率公式,前期的步长十分大,而后学习率随着迭代次数增加而线性减小:
stepDist = max_step - ((max_step - min_step) * cntIter / nIter);
其接近20次就基本收敛了:
调整策略2:
使用前后两次的迭代误差的差值来确定是否增加还是减少学习率,更加差值的大小,确定步长的变化幅度。而且变化的步长使用差值的log函数作为最为单位步长的倍数,使用对数函数能减缓变化的速度,减少网络发散的可能。
这个算法是我自己想的,虽然能提升收敛速度,但是收敛的过程中单位步长应该更小一些,震荡才不会那么厉害
sde = 0.01;%%变化的单位步长%k = err(1) - err(2); %%前后两次的迭代误差的差值%if k > 0.01 stepDist = stepDist - (log(k) + 1) * sde;if stepDist <= 0 stepDist = 0.01; endelseif k < -0.01 stepDist = stepDist + (log(-k) + 1) * sde;end end
<未完待续>
0 0
- BP神经网络的自适应步长问题
- 参数自适应的单层 bp 神经网络
- matlab中bp神经网络的一些问题
- BP神经网络归一化问题
- BP神经网络的优缺点
- BP神经网络的基本原理
- BP神经网络的实现
- BP神经网络的学习
- BP神经网络的理解
- BP神经网络的分类
- BP神经网络的应用
- BP神经网络的结构
- BP神经网络的优缺点
- BP神经网络的讲解
- BP神经网络的缺点
- 基础的BP神经网络
- BP神经网络的实现
- BP神经网络-异或问题
- android控件之ViewPager
- Codeforces Round #260 (Div. 2) B. Fedya and Maths (数学规律)
- 个人工具集
- RTTI(Run-Time Type Identification)、虚函数和虚基类的实现方式、开销分析及使用指导
- AS和Eclipse的快捷键
- BP神经网络的自适应步长问题
- (3)下载网络文件
- hdu1008
- 命名参数(C#)
- 事务隔离级别小记
- 图
- IM长连接为何要发送心跳包
- (5)正则表达式——Java
- 常用的mysql练习题和答案01