ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-05-26 11:30:43  阅读:143  来源: 互联网

标签:误差 推导 梯度 神经网络 最小 步长 理解 BP 拟合


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

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

算法推导

梯度下降简介

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

在这里插入图片描述

第二,步长太大

在这里插入图片描述

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

在这里插入图片描述

学习率的理解
  • 学习率可以理解为控制步长的一个参数
  • 在学习率的调解下,最终达到最优解,如下图所示
    在这里插入图片描述

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

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

全局最小和局部最小

在这里插入图片描述

在这里插入图片描述

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

标签:误差,推导,梯度,神经网络,最小,步长,理解,BP,拟合
来源: https://blog.csdn.net/lyp3171790866/article/details/117283763

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有