神经网络之BP算法内容及推导

误差逆传播(BP)算法初介绍

https://www.bilibili.com/video/BV19K4y1L7ao
正向传播FP就损失
反向传播BP回传误差
根据误差修改权重
继续迭代至最优

算法推导

梯度下降简介

梯度下降就是从起点开始,沿着梯度 的方向,按照步长 的大小,一步一步地走到谷底
梯度的理解
  • 梯度分为正梯度方向和负梯度方向(可以理解为求最大值和最小值)
谷底的理解(以负梯度为例)
  • 达到最小值
步长的理解
第一,步长长度太小

神经网络之BP算法内容及推导

第二,步长太大

神经网络之BP算法内容及推导

值得注意的是,步长太大,很可能跨过最低点,运气好的话可能会不断震荡到最小值,如果运气不好的话,可能会震荡到发散

神经网络之BP算法内容及推导

学习率的理解
  • 学习率可以理解为控制步长的一个参数
  • 在学习率的调解下,最终达到最优解,如下图所示
    神经网络之BP算法内容及推导

BP算法可能导致的过拟合问题的处理方法

过拟合
  • 简单理解为在训练集上拟合程度很高,但是测试集上拟合程度很低
第一种解决办法——“早停”策略
  • 将数据分为训练集和测试集,训练集用来计算梯度、更新连接权和阈值,测试集用来估计误差
  • 如果训练集误差降低但测试集误差升高就停止训练
第二种解决方法——“正则化”策略
  • 在误差目标函数中添加一个用于描述网络复杂度的部分,比如连接权和阈值的平方和,添加之后,训练过程会偏好比较小的连接权和阈值,使得输出更加“光滑”,从而缓解过拟合问题

全局最小和局部最小

神经网络之BP算法内容及推导

神经网络之BP算法内容及推导

如何跳出局部最小,接近全局最小?
方法一
  • 用多组不同的参数初始化神经网络,按照标准训练后,取其中最小的解作为最终参数(理解为可能陷入多个不同的局部最小,从中选择全局最小)
方法二
  • 模拟退火技术:在每一步都以一定的概率接受比当前解更差的结果,有助于跳出局部最小,但是同时也可能跳出全局最小
方法三
  • 使用随机梯度下降,即在计算梯度的时候加入了随机因素,即使陷入局部最小点,计算出的梯度也不是零,有机会跳出局部最小
上一篇:【预测模型】基于matlab BP神经网络公路运量预测【含Matlab源码 413期】


下一篇:BP网络算法-预测配餐模型(附源码)