BP神经网络学习算法原理
一、从根本理解BP神经网络
BP神经网络是一种多层前馈神经网络,特点是:信号向前传播,误差反向传播。通俗理解就是,BP神经网络通过层与层向前传播,得到最终实际输出后,与期望输出做对比,通过“梯度下降”策略,逐层调节权重和阈值,最终得到与期望输出在误差允许范围内的神经网络模型。
二、基础知识(神经元模型和激活函数)
神经元的模型(阈值加权和),简称为M-P模型,,是神经网络的处理单元。每个符号在图中都有对应的标示,要对应着动物的神经系统去理解神经系统的精髓。在这个模型中,神经元接收到来自n个其他的神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值与神经元的阈值进行比较,然后通过“激活函数”处理,神经元再将处理结果进行输出。
理想中的激活是a(阶跃函数),它将输入值映射为输出值0或1,1对应神经元兴奋,0对应神经元抑制。如果我们期望得到离散的输出,我们可以选用阶跃激活函数但;如果我们期望得到连续的输出,我们可以选用Sigmoid函数,因为Sigmoid函数是处处连续可导的,并且导数均大于0.实际常用b(Sigmoid函数)作为激活函数。
三、BP神经网络
BP网络在前面已经介绍过了,下面带着大家推导一下。
给定训练集D={(x1,y1),(x2,y2),...(xm,ym)}, 即输入示例由d个属性描述,输出l维实值向量。如图所示,Xi表示输入层第i个输入;Vih表示输入层第i个输入与隐层第h个神经元的连接权重;bh表示隐层第h个神经元的输入,Whj表示隐层第h个神经元到输出层第j个神经元的连接权重。其中输出层第j个神经元的阈值用表示,隐层第h个神经元的阈值用表示。假设隐层和输出层神经元神经元都是用Sigmoid函数。
(1)
上面公式表示输出层第j个神经元实际输出为输出层f函数处理结果,其中函数输入值为第j个神经元输入减去阈值。
(2)
上面公式表示在(Xk,Yk)上的均方误差。
(3)
上面公式表示隐层到输出层权重的差值,表示给定的学习率,表示误差,所以这个公式理解为误差对于权重的导数就是实际权重与理论权重相差值。
BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调整。这个地方向小白介绍一下什么是地图下讲策略。我们在最后评估模型的时候,我们是观察测试集的实际输出结果与期望值的差值,差值越小越好。我们把梯度下降法形象的理解下:我们假设需要有画的参数有两个,则参数空间是二维的平面,我们加入实际输出结果与期望值的差值(后面我们叫做损失值)作为第三个维度,这样就形成了一个高低不同的地形图,经纬度表示参数,高度表示损失值。优化的目的是找到最低的经纬度,也就是损失值最低的两个参数。梯度下降法的思路是,首先任意选择一个地点,然后在当前找到坡度最陡的地方,沿着该方向向下坡方向迈出一步,作为新地点进行下一次迭代,这样就可以迈着最少的步,走到海拔最低的地方,也就是参数差改变最小,找到模型最好的时候。下面两幅图帮助大家理解:
因为首先影响输出层第j个神经元输出值,再影响到其输出值,然后影响到Ek,所以推导出下面的公式:
(4)
根据的定义,我们可以得到公式:
(5)
上面这个公式理解为第j个神经元输出对的导数。
Sigmoid函数有一个性质(感兴趣的可以自己去推导):
(6)
根据公式1和公式2我们可以推导出输出层梯度项:
(7)
我们将公式7、公式5、公式3带入公式4,可以得到BP算法关于的更新公式:
(8)
这个公式表示的是隐层到阈值的变化量,现在跳出来思考,其实变化量(德尔塔)= 学习率 * 梯度项 * 原始输入。
同理可推导出:
以上分别表示输出层阈值的变化量、隐层权重的变化量、隐层阈值的变化量。感兴趣可以自己推导一下,非常简单。
学习率范围为(0,1),控制者算法每一轮迭代中的更新步长,如果太大容易震荡,太小又会导致收敛速度过慢,有时为了做精细调节,可令公式8、公式9和公式10、公式11的学习率必相等。
接下来就是不断的迭代,通过数据集去训练权重和阈值,又回到了本文开始的地方。
BP神经网络学习算法原理相关推荐
- matlab 植物生长算法,基于模拟植物生长的BP神经网络学习算法研究
第29卷第3期 2 8年6月 JOURNAL OF DALIAN UNIVERSITY VOL29 N住3 Jun. 2 8 基于模拟植物生长的BP神经网络学习算法研究李彤*,于江波,温钰 (大连大学 ...
- mlp神经网络和bp神经网络,bp神经网络lm算法原理
MATLAB中训练LM算法的BP神经网络 1.初始权值不一样,如果一样,每次训练结果是相同的 2.是 3.在train之前修改权值,IW,LW,b,使之相同 4.取多次实验的均值 一点浅见,仅供参考 ...
- BP神经网络原理及其应用,bp神经网络的工作原理
1.BP神经网络的工作原理 人工神经网络就是模拟人思维的第二种方式.这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理.虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系 ...
- BP神经网络训练算法的比较(课程小论文)
摘 要 BP神经网络可以有效地对非线性系统进行逼近,但是传统的最速下降搜索方法存在收敛速度慢的问题.本文通过对常用的BP神经网络训练算法进行比较,说明了不同训练算法的适用范围,为不同场景下BP神经网络 ...
- Python大数据综合应用 :零基础入门机器学习、深度学习算法原理与案例
机器学习.深度学习算法原理与案例实现暨Python大数据综合应用高级研修班 一.课程简介 课程强调动手操作:内容以代码落地为主,以理论讲解为根,以公式推导为辅.共4天8节,讲解机器学习和深度学习的模型 ...
- TensorFlow深度学习算法原理与编程实战 人工智能机器学习技术丛书
作者:蒋子阳 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2019-01-01 TensorFlow深度学习算法原理与编程实战 人工智能机器学习技术丛书 ISBN:97875170682 ...
- 深度学习算法原理_用于对象检测的深度学习算法的基本原理
深度学习算法原理 You just got a new drone and you want it to be super smart! Maybe it should detect whether ...
- Python实现贝叶斯优化器(Bayes_opt)优化BP神经网络回归模型(BP神经网络回归算法)项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 贝叶斯优化器 (BayesianOptimization) 是一 ...
- Python实现贝叶斯优化器(Bayes_opt)优化BP神经网络分类模型(BP神经网络分类算法)项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 贝叶斯优化器(BayesianOptimization) 是一种 ...
- Python实现哈里斯鹰优化算法(HHO)优化BP神经网络回归模型(BP神经网络回归算法)项目实战
说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris ...
最新文章
- 爬虫基础-request的一些基础属性
- Excel中条件格式应用的探讨之突出显示!
- 不该被忽视的CoreJava细节(四)
- 如何在Ubuntu18.04下安装CUDA10.1和cudnn
- Apache引起的wampserver安装好第二次使用无法启动问题
- HDinsight 系列-使用证书登陆中国区Azure
- streamsets添加mysql驱动_StreamSets3.9.1安装说明
- hive 时间函数_Hive常用大法(聚合/排序/分组)
- brasb 密码自动应答
- Github版本控制——基础操作
- 3D视觉(一)三维数学基础教程和SLAM
- 雅虎邮箱pop服务器,雅虎邮箱pop如何设置
- 手机怎么查看连接过的wifi密码
- 为不同分辨率的手机创建界面
- 通讯:白先勇的“八千里路云和月”
- 锁仓怎么解_锁仓后解锁技巧
- linux系统图形界面
- android 微信文件位置改变大小,安卓微信8.0.6内测更新:发文件大小上调1G等6个变化!...
- git 账号密码问题
- 2022考研数学学习资源分享203G视频之汤家凤数学网盘
热门文章
- 我的第一个Imx6ULL应用《百度图像识别》
- 苹果 ios mdm服务器搭建
- 硬件仿真加速器(emulator)
- php 读取脸型,基于OpenCV的PHP图像人脸检测识别技术
- 富士施乐m115b怎么连接电脑_富士施乐m115b打印机驱动下载-富士施乐m115b驱动下载 v1.0.1.00官方版--pc6下载站...
- 冰点还原精灵密钥可以用多少台电脑
- 【蓝桥杯】第八届java A组题详解
- wps如何只让他显示3级标题_wps文字怎样设置多级标题
- ws550 第三方固件_【详细图文】华为WS550固件升级方法
- 基于JavaWeb的会议室预约管理系统