BP神经网络算法改进文献_bp神经网络算法流程图

BP神经网络算法改进文献_bp神经网络算法流程图周志华机器学习BP改进试设计一个算法,能通过动态调整学习率显著提升收敛速度,编程实现该算法,并选择两个UCI数据集与标准的BP算法进行实验比较。1.方法设计传统的BP算法改进主要有两类:-启发式算法:如附加动量法,自适应算法-数值优化法:如共轭梯度法、牛顿迭代法、Levenberg-Marquardt算法(1)附加动量项这是一种广泛用于加速梯度下降法收敛…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

周志华机器学习BP改进

试设计一个算法,能通过动态调整学习率显著提升收敛速度,编程实现该算法,并选择两个UCI数据集与标准的BP算法进行实验比较。


1.方法设计
传统的BP算法改进主要有两类:
– 启发式算法:如附加动量法,自适应算法
– 数值优化法:如共轭梯度法、牛顿迭代法、Levenberg-Marquardt算法

(1)附加动量项
这是一种广泛用于加速梯度下降法收敛的优化方法。其核心思想是:在梯度下降搜索时,若当前梯度下降与前一个梯度下降的方向相同,则加速搜索,反之则降速搜索。

标准BP算法的参数更新项为:



Δω(t)=ηg(t) Δ ω ( t ) = η g ( t )





Δω(t)t,ηg(t)t 式 中 Δ ω ( t ) 是 第 t 次 迭 代 的 参 数 调 整 量 , η 为 学 习 率 , g ( t ) 为 第 t 次 迭 代 计 算 出 的 梯 度 。

在添加动量项后,基于梯度下降的参数更新项为:



Δω(t)=η[(1μ)g(t)+μg(t1)] Δ ω ( t ) = η [ ( 1 − μ ) g ( t ) + μ g ( t − 1 ) ]



始终,

μ μ
为动量因子(取值 0~1)。上式也等价于:




Δω(t)=αΔω(t1)+ηg(t) Δ ω ( t ) = α Δ ω ( t − 1 ) + η g ( t )



式中

α α
称为遗忘因子,

αΔω(t1) α Δ ω ( t − 1 )
表示上一次梯度下降的方向和大小信息对当前梯度下降的调整影响。

(2) 自适应学习率
附加动量法面临选取率的选取困难,进而产生收敛速度和收敛性的矛盾。于是另考虑引入学习速率自适应设计,这里给出一个·自适应设计方案:



η(t)=ση(t1) η ( t ) = σ η ( t − 1 )



上式中,

η(t) η ( t )
为第t次迭代时的自适应学习速率因子,下面是一种计算实力:

σ(t)=2λ σ ( t ) = 2 λ
其中 λ λ 为梯度方向: λ=sign(g(t)(t1)) λ = s i g n ( g ( t ) ( t − 1 ) )
这样,学习率的变化可以反映前面附加动量项中的“核心思想”

(3)算法总结
将上述两种方法结合起来,形成动态自适应学习率的BP改进算法:
这里写图片描述
从上图及书中内容可知,输出层与隐层的梯度项不同,故而对应不同的学习率 η_1 和 η_2,算法的修改主要是第7行关于参数更新的内容:

将附加动量项与学习率自适应计算代入,得出公式(5.11-5.14)的调整如下图所示:
这里写图片描述

2.对比实验


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194960.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月26日 下午5:22
下一篇 2025年10月26日 下午6:01


相关推荐

  • vite详解

    vite详解一 认识 vitewebpack 是目前整个前端使用最多的构建工具 但是除了 webpack 之后也存在其他一些构建工具 比如说 rollup parcel gulp vite 等等 vite 的官方定位是下一代前端开发和构建工具 如何定义下一代开发和构建工具呢 我们知道在实际开发中 我们在编写的代码往往是不能被浏览器直接识别的 比如 ES6 TypeScript Vue 文件等 所以此时我们必须通过构建工具来对代码进行转换 编译 类似的工具有 webpack rollup parcel 但是随着项目越来越大 需要处理的

    2026年3月20日
    3
  • 不同组织的窗宽窗位

    不同组织的窗宽窗位头颅,脑组织:窗宽设定为80Hu~100Hu,窗位为30Hu~40Hu,垂体及蝶鞍区病:变窗宽宜设在200Hu~250Hu,窗位45Hu~50Hu,脑出血患者可改变:窗宽位80Hu~140Hu,窗位30Hu~50Hu,脑梗死患者:常用窄窗60Hu,能提高病灶的检出率,清楚显示梗死及软化灶,颌面部眼眶:窗宽定为150Hu~250Hu,窗位30Hu~40Hu,…

    2022年6月20日
    39
  • 扣子智能体怎么没了

    扣子智能体怎么没了

    2026年3月15日
    3
  • 在定义adt时_ScriptableObject

    在定义adt时_ScriptableObjectADT操作分类Creators构造器:利用其他的数据类型对象产生一个新的对象可能实现为构造函数或静态工厂方法Producers生产器:用已有该类型对象产生新对象如string.concat()(连接两个字符串,产生一个新的字符串)Observers观察器如list.size()返回int(不同于原类型)Mutators变值器(改变对象属性的方法)通常范围void,如果返回void,则必然意味着它改变了某些对象的内部状态,也可能范围非空类型(如容器类的put、add方法)…

    2025年9月4日
    6
  • 添加数据时,页面的validateRequest属性设置

    添加数据时,页面的validateRequest属性设置有的时候,添加数据会出错,时因为validateRequest属性默认为true。这个是进行非法数据验证的。我们可以讲它关闭,例如:

    2022年6月3日
    32
  • 逻辑斯蒂回归(Logistic Regression)

    logistic回归logistic回归经常被人译为“逻辑回归“,虽然我个人认为貌似并没有什么关联,但下面就姑且这么叫吧。逻辑回归虽然是名字里带着回归,但其实是一种解决分类问题的算法,说到分类就有分几类的区别,本篇我们只讨论用于二分类问题的逻辑回归。基本的线性回归的形式为:y=ωTx+by=ωTx+by=\omega^{T}x+b线性回归模型产生的预测值是一系列实值。为了使得输…

    2022年4月4日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号