BP神经网络:BackPropagation Neuron NetWok

BP 神经网络是一类基于误差逆向传播 (BackPropagation, 简称 BP) 算法的多层前馈神经网络,BP算法是迄今最成功的神经网络学习算法。现实任务中使用神经网络时,大多是在使用 BP 算法进行训练。值得指出的是,BP算法不仅可用于多层前馈神经网络,还可以用于其他类型的神经网络,例如训练递归神经网络。但我们通常说 “BP 网络” 时,一般是指用 BP 算法训练的多层前馈神经网络。

括号内的值如果大于0即比阈值b大,表示神经元被激活;如果小于0即比阈值b小表示神经元被抑制。

要计算最后的的话是要先拿到,然后进行一个线性加权,再减去阈值,被激活函数激活一下,然后就拿到了中间这个神经元的输出,然后这个输出再作为下一个的最终神经元的输入,其实说白了前馈神经网络就是一个函数的复合,之所以叫前馈是因为他在向前复合,在向前算最终的输出。所以神经网络说白了就是函数的复合。 如何确定这个复合函数呢?其实这个函数里边的参数就是权重,以及每一个神经元他都有一个阈值。

前馈神经网络的训练:从训练集中学习权重和阈值。如果确定了权重和阈值,其实就是确定了一个复合映射。确定了复合映射之后,给定一个新的x我们就可以做预测了,只需要把x带进来一层一层的计算。

在这个神经网络中由于他是有函数的复合,以及激活函数,这个激活函数大部分情况下是非线性的,然后函数的复合也会导致函数非线性,所以这个神经网络他作为复合的映射的话,他是非线性的。

BP算法基于梯度下降法。使用梯度下降法更新权重即进行误差逆传播。

说明:

(1)输出:输出是向量形式的输出,多分类输出;如果说是一个回归问题的话,单输出的回归问题。如果是一个多分类问题,那么输出就是多个神经元,但是对于分类问题就不能使用均方误差作为损失函数,需要使用到交叉熵作为损失函数。

(2)初始化:随机初始化最常用。当然还有其他一些比较聪明的方法。

(3)学习率的问题:不能太大也不能太小。

(4)停止条件:误差比较小或者梯度不再更新或者梯度在若干轮比较小。

(5)每一轮是使用一个样本来更新权重,或者使用所有的样本来更新权重,或者是使用一批样本来更新权重。那么优化目标就要变成每个样本的均方误差的平均值。

在推导单隐藏层的BP算法的时候,已经非常麻烦了。如果有多个隐藏层,手工去推导是非常复杂的。简便的算法那就是使用计算图的方法,计算图也是复合函数求导来更新权重,复合函数求导结合梯度下降来更新权重,不过他表示的传梯度的方式是比较有效的。

如果整个数据集没有划分测试集或者训练集,需要使用k折交叉验证法。https://blog.csdn.net/tianguiyuyu/article/details/80697223

第二章:3、BP神经网络相关推荐

  1. 单神经元自适应控制算法,bp神经网络缺点及克服

    为什么BP神经网络是有限自适应的? 算法都是有自身的缺陷的吧,要不也不会出现这么多的神经网络改进的算法,但是BP神经网络对大多数的问题都是有一定的处理能力的,只是处理的精度不一定能够达到要求. 优化初 ...

  2. 基于bp神经网络的pid控制,pid神经网络什么原理

    关于基于神经网络的PID液位控制用MATLAB怎么编程啊?求高手指点!!!! . 其实只需要PID参数能够顺利确定就行了,这里有个程序,你试试看closeallclearallclctic%初始化x= ...

  3. 基于bp神经网络的pid算法,基于单神经元的pid控制

    基于BP神经网络的PID控制器设计 参考一下刘金琨的<先进PID控制>这本书. 例子:被控对象yout(k)=a(k)yout(k-1)/(1+yout(k-1)^2)+u(k_1)其中a ...

  4. 智能计算系统(学习笔记)-第二章神经网络

    课程: (智能计算系统第二章)地址 第二章神经网络 从机器学习到神经网络 符号说明: 线性-回归regression:最基础的机器学习 一元线性回归 多元线性回归 评价拟合的好坏 神经网络的发展 人工 ...

  5. 《MATLAB 神经网络43个案例分析》:第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选

    <MATLAB 神经网络43个案例分析>:第25章 基于MIV的神经网络变量筛选----基于BP神经网络的变量筛选 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 < ...

  6. 《MATLAB 神经网络43个案例分析》:第3章 遗传算法优化BP神经网络——非线性函数拟合

    <MATLAB 神经网络43个案例分析>:第3章 遗传算法优化BP神经网络--非线性函数拟合 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB 神经网 ...

  7. Hinton机器学习与神经网络课程的第二章学习笔记

    Hinton机器学习与神经网络课程的第二章学习笔记 该笔记为自己以后方便查阅,要是有大神感觉我的笔记有哪些地方记的有误差或者不对的话也欢迎指出 文章目录 Hinton机器学习与神经网络课程的第二章学习 ...

  8. 西瓜书研读——第五章 神经网络:BP神经网络

    西瓜书研读系列: 西瓜书研读--第三章 线性模型:一元线性回归 西瓜书研读--第三章 线性模型:多元线性回归 西瓜书研读--第三章 线性模型:线性几率回归(逻辑回归) 西瓜书研读--第三章 线性模型: ...

  9. bp神经网络代码_机器学习(周志华)课后习题——第五章——神经网络

    5.1 试述将线性函数 用作神经元激活函数的缺陷. 答: 使用线性函数作为激活函数时,无论是在隐藏层还是在输出层(无论传递几层),其单元值(在使用激活函数之前)都还是输入 的线性组合,这个时候的神经网 ...

最新文章

  1. php开发如何测试,用thinkphp开发微信,如何测试?
  2. 支付宝和微信的支付流程图
  3. C/Cpp / 如何定义一个只能在堆上(栈上)生成对象的类?
  4. Teams Bot的ServiceLevel测试
  5. min_25 推导及例题总结
  6. 只需5分钟即可启动并运行分层架构:: Spring Boot第1部分
  7. Docker安装influxDB
  8. 实例53:python
  9. 业务实时监控服务ARMS推出小程序监控支持各种小程序
  10. 数字图像恢复matlab结论,matlab模糊图像恢复数字图像处理
  11. NetFPGA平台介绍
  12. JDK下载安装及环境变量配置的图文教程(详解)
  13. System Exception:故障解决:端口已被占用 1080--->的处理方法
  14. php 微信公号授权登入,laravel实现微信公众号授权登录实战
  15. css折角的简单实现 真实项目实践
  16. 段码液晶屏实现原理和需要注意的事项
  17. 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
  18. [WC2008]游览计划
  19. 程矢Oracle PowerDesigner中生成Oracle版本主键和自增列
  20. 东北大学计算机学院领导,计算机学院召开新一届全体干部大会

热门文章

  1. 2021年大数据ELK(二十一):Logstash简介和安装
  2. Activity 数据传递给Fragment
  3. Manifest merger failed with multiple errors, see logs
  4. Error:This Gradle plugin requires Studio 3.0 minimum
  5. mvc框架实现的流程,值得收藏
  6. Java内存溢出详解之Tomcat配置
  7. 重新mysql-server
  8. iOS开发UI篇—transframe属性(形变)
  9. Android OpenGL ES(十一)绘制一个20面体 .
  10. [转]优化Flash性能