BP算法
- BP(BackPropagation:误差逆传播算法),迄今为止最成功、最常用的神经网络算法,可用于多种任务,不仅限于分类。
- ∆v的改变一定是因为有误差E。有误差后常见的改正方式是求导。
- 最理想的情况导数为零,求出极值,如果是凸函数则极值点就是我们所求的最优。
- 然而我们在用神经网络求解时,无法保证一定是凸函数。但是求导后,沿着梯度的负方向,就是往好的方向。
- 误差E对w求偏导,注意到
E直接是y的函数,y是β的函数,β是w的函数
,所以用链式法则求偏导。
- 输入信号x,先随机初始化各权重(参数)。
- 先进行一轮学习,得到输出y,让y与grandtruth(真实值)求误差。
- 根据上述数学式将∆w等算出来,再进行调整各参数的值。
- 新一轮,再输入x,得到y,再调整,不断训练下去,就是BP算法的学习过程。
缓解过拟合
- 在机器学习中,我们始终斗争的就是过拟合,希望模型不要把特性学出来。
- 缓解过拟合有两种策略:
- 早停:
- 连续训练a轮后,训练误差变化不大,意味着没有继续训练的必要了。
- 使用验证集,若训练误差降低,但验证误差升高,说明有过拟合的趋势。(一般会多测试几轮,发现出现这种情况再停止;避免出现某一轮验证误差升高,接下来几轮验证误差降低的情况,造成判断失误。)
- 正则化:
- 在误差目标函数中增加一项描述神经网络的复杂度。
E=λ*(1/m)∑Eκ+(1-λ)∑ω²
,中λ*(1/m)∑Eκ
是一般误差的计算公式。(1-λ)∑ω²
是希望ω(权值,神经元间的传递参数)越小越好
。因为ω越小,各个数据点间的差距越小,函数越平滑,越能够代表数据集的总体趋势,而不是个别数据的起伏变化,更好的缓解过拟合。
- 早停:
以上就是本文的全部内容,感谢各位的阅读与支持!