累计BP和标准BP
标准BP算法
每次仅仅针对一个训练样例进行更新更新权值和阈值,参数更新非常频繁,而且不同样例的更新效果可能出现“抵消”的现象。
累计BP算法
累计误差:
E=1m∑k=1mEk
直接针对累计误差最小化,再读取整个训练集 D 一遍之后才对参数进行更新,对参数更新的频率会比标准BP算法低好多。
但是累计误差在下降到一定程度之后,进一步下降会非常缓慢,这时候使用标准BP算法会更快获得较好的结果。尤其是在训练集
缺点和应对办法
过拟合
BP神经网络常常遭遇过拟合,此时训练误差不断降低,但是测试误差不断升高。
早停
将数据集分成训练集和验证集,
训练集:用来计算梯度,更新连接权值,和阈值
验证集:估计误差,若训练集误差降低但是验证误差升高则停止训练,同时返回具有最小验证集误差的连接权和阈值。
正则化
基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分,例如连接权值和阈值的平方和,
累计误差函数:
E=λ1m∑k=1mEk+(1−λ)∑iw2i
其中 λ∈(0,1) wi 表示连接权值和阈值的和