周志华机器学习BP改进

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


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

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

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

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

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

Δω(t)=η[(1−μ)g(t)+μg(t−1)]Δω(t)=η[(1−μ)g(t)+μg(t−1)] \Delta \omega(t) = \eta[(1-\mu) g(t)+ \mu g(t-1) ]
始终, μμ\mu为动量因子(取值 0~1)。上式也等价于:
Δω(t)=αΔω(t−1)+ηg(t)Δω(t)=αΔω(t−1)+ηg(t)\Delta \omega(t) = \alpha\Delta\omega (t-1)+\eta g(t)
式中 αα \alpha 称为遗忘因子, αΔω(t−1)αΔω(t−1) \alpha \Delta \omega(t-1) 表示上一次梯度下降的方向和大小信息对当前梯度下降的调整影响。

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

η(t)=ση(t−1)η(t)=ση(t−1) \eta (t) = \sigma \eta(t-1)
上式中, η(t)η(t) \eta (t) 为第t次迭代时的自适应学习速率因子,下面是一种计算实力:

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

(3)算法总结
将上述两种方法结合起来,形成动态自适应学习率的BP改进算法:

从上图及书中内容可知,输出层与隐层的梯度项不同,故而对应不同的学习率 η_1 和 η_2,算法的修改主要是第7行关于参数更新的内容:

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

2.对比实验


BP神经网络算法改进相关推荐

  1. 【项目实战】Python基于BP神经网络算法实现家用热水器用户行为分析与事件识别

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 居民在使用家用热水器的过程中,会因为地区气候.不同区域和用户年龄 ...

  2. bp神经网络权值调整公式,bp神经网络算法推导

    神经网络BP模型 一.BP模型概述误差逆传播(ErrorBack-Propagation)神经网络模型简称为BP(Back-Propagation)网络模型. PallWerbas博士于1974年在他 ...

  3. 数学建模算法与应用【BP神经网络算法】

    评价预测和分类问题可以用到神经网络.卷积神经网络适合大样本的情况,深度学习包括很多种网络,如卷积神经网络,对抗网络等,深度学习大小样本皆可. 人工神经网络ANN 在机器学习和认知科学领域,人工神经网络 ...

  4. 如何提高bp神经网络精度,改进bp神经网络的方案

    1.BP神经网络的核心问题是什么?其优缺点有哪些? 人工神经网络,是一种旨在模仿人脑结构及其功能的信息处理系统,就是使用人工神经网络方法实现模式识别.可处理一些环境信息十分复杂,背景知识不清楚,推理规 ...

  5. BP神经网络算法基本原理,bp神经网络实例分析

    BP人工神经网络方法 (一)方法原理人工神经网络是由大量的类似人脑神经元的简单处理单元广泛地相互连接而成的复杂的网络系统.理论和实践表明,在信息处理方面,神经网络方法比传统模式识别方法更具有优势. 人 ...

  6. 大数据挖掘建模案例分析:利用BP神经网络算法进行用户行为分析(一)

    泰迪智能科技(数据挖掘平台:TipDM数据挖掘平台)最新推出的数据挖掘实战专栏 专栏将数据挖掘理论与项目案例实践相结合,可以让大家获得真实的数据挖掘学习与实践环境,更快.更好的学习数据挖掘知识与积累职 ...

  7. 人工神经网络与bp神经网络,BP神经网络算法原理

    BP神经网络原理 人工神经网络有很多模型,但是日前应用最广.基本思想最直观.最容易被理解的是多层前馈神经网络及误差逆传播学习算法(ErrorBack-Prooaeation),简称为BP网络. 在19 ...

  8. BP神经网络算法基本原理,bp网络神经算法代码

    bp神经网络的算法改进一共有多少种啊!麻烦举例一下! . 改进点主要在以下几个方面1激励函数的坡度-------误差曲面的平台和不收敛现象----------------激励函数中引入陡度因子,分段函 ...

  9. MATLAB 中BP神经网络算法用于回归拟合的实现

    转载自:https://www.cnblogs.com/babyfei/p/7400072.html BP神经网络算法提供了一种普遍并且实用的方法从样例中学习值为实数.离散值或者向量的函数,这里就简单 ...

  10. 基于BP神经网络算法的性别识别

    目录 基于 BP 神经网络算法的性别识别 1 目录 1 1.背景介绍 2 2. OpenCV 的介绍 3 3.安装 OpenCV 4 4. BP 神经网络算法介绍和实践 4 4.1 BP 神经网络结构 ...

最新文章

  1. oracle sql profile
  2. mongod副本集的安装配置
  3. [转]为什么Java中的HashMap默认加载因子是0.75
  4. Matlab去掉数组中0
  5. C语言中变量的链接属性
  6. uploadify在火狐下上传不了的解决方案,java版(Spring+SpringMVC+MyBatis)详细解决方案
  7. C语言——猴子吃桃问题
  8. tensorflow3
  9. 为VMware ESXi主机添加本地存储的过程及注意事项之2
  10. matlab方阵对角线清零
  11. Android System ANR caused SWT restart issue
  12. scala case 常用简写
  13. 自然数分解:任何一个自然数m的立方均可写成m个连续奇数之和。编程实现:输入一自然数 n,求组成 n3的 n个连续奇数。
  14. springboot 实现图片上传功能
  15. 双硬盘安装win10+ubuntu18.04双系统,U盘安装,UEFI引导
  16. UI5-Fiori初学者导航
  17. python3爬虫图片_【已下线】Python3 实现淘女郎照片爬虫
  18. maven-springmvc工程
  19. MTK Wlan驱动功能
  20. POI 不支持函数XIRR

热门文章

  1. python处理葵花8 netCDF4(nc格式)数据
  2. 【详解】P问题、NP问题和NPC问题详解(千禧年问题之首)
  3. 浅析HashMap底层原理
  4. 修改centos系统时间
  5. 10个优秀个android项目,精选|快速开发
  6. 同构数的算法——C语言
  7. DRF实战1 - 环境搭建
  8. 推荐姊妹篇:搜索中的深度匹配模型
  9. 发现一个记录笔记的方法(康奈尔笔记即5R笔记)
  10. 3dmax顶点动画导入unity_怎么把3DMax中的模型动画导入unity