神经网络与机器学习 笔记—反向传播算法(BP)

先看下面信号流图,L=2和M0=M1=M2=M3=3的情况,上面是前向通过,下面部分是反向通过。

1.初始化。假设没有先验知识可用,可以以一个一致分布来随机的挑选突触权值和阈值,这个分布选择为均值等于0的均匀分布,它的方差选择应该使得神经元的诱导局部域的标准偏差位于sigmoid激活函数的线行部分与饱和部分过渡处。
(1)训练样本的呈现。呈现训练样本的一个回合给网络。对训练集中以某种形式排序的每个样本,一次进行下面的第3点和第4点中所描述的前向和反向计算。
(2)前向计算。在该回合中设一个训练样本是(x(n),d(n)),输入向量x(n)作用于感知节点的输入层,期望响应向量d(n)指向计算节点的输出层。不断经由网络一层一层第前进,可以计算网络的诱导局部域和函数信号。在层L的神经元j的诱导局部域为:

这里η为学习率参数,α为动态常数。
迭代。通过呈现新的一回合样本给网络并根据第3和第4进行前向和反向迭代计算,知道满足停止准则。
注意:训练样本的呈现顺序从一个回合到另一个回合必须是随机的。动量和学习率参数随着训练迭代次数的增加而调整(通常是减少的)。

3.学习率和动量问题。反向传播算法(BP)提供使用最速下降方法在权空间计算得到的轨迹的一种近似。使用的学习率参数η越小,从一次迭代带下一次迭代的网络突触权值的变化量就越小,轨迹在权值空间就越光滑。然而,这种改进是以减慢学习速度为代价的。另一方面,如果让η的值太大以加快学习速度的话,结果有可能是网络突触权值不稳定。一个既要加快学习速度又要保持稳定的简单方法是修改

这里α是动量常数,通常是正数。他控制围绕Δwji(n)的反馈环路如下图(z-1表示单位时间延迟操作符)

- 欲使时间序列收敛,动量常数必须限制在0<=|α|<1 范围内。当α等于0时,反向传播算法运行起来没有动量。虽然在实际中动量常数α不大可能是负的,但是它还是可正可负。
- 在反向传播(BP)算法中包含动量趋于在稳定的下降方向上加速下降。
- 在反向传播算法中包含动量具有符号正负摆动方向的稳定效果。
- 动量向一定程度上可以防止学习过程停止在误差曲面上的局部最小值。
在反向传播算法的应用中可以选择使所有突触权值都是可调整的,或者在自适应过程中可能限制网络中某些权值使其保持固定。对于后者,误差信号是以通常的方式通过网络反向传播的;然而,固定的突触权值是不改变的。这一点可以简单通过使突触权值的学习率参数等于0来做到。
4.停止准则。通常,不能证明反向传播算法是收敛的,并且没有明确定义的算法停止准则。相反,仅有一些合理的准则,它们每个都有自己的实际用处,这些准则可用于终止权值的调整。
- 当梯度向量的欧几里得范数达到一个充分小的帝都阈值时,我们认为反向传播算法已经收敛。
- 当每一回合的均方误差变化的绝对速率足够小时,我们认为反向传播算法已经收敛。
神经网络与机器学习 笔记—反向传播算法(BP)的更多相关文章
- 深度神经网络(DNN)反向传播算法(BP)
在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...
- 【机器学习】反向传播算法 BP
知识回顾 1:首先引入一些便于稍后讨论的新标记方法: 假设神经网络的训练样本有m个,每个包含一组输入x和一组输出信号y,L表示神经网络的层数,S表示每层输入的神经元的个数,SL代表最后一层中处理的单元 ...
- Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)
反向传播算法(Back Propagation): 引言: 在逻辑回归中,我们使用梯度下降法求参数方程的最优解. 这种方法在神经网络中并不能直接使用, 因为神经网络有多层参数(最少两层),(?为何不能 ...
- 深度学习——深度神经网络(DNN)反向传播算法
深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, ...
- 100天搞定机器学习|day38 反向传播算法推导
往期回顾 100天搞定机器学习|(Day1-36) 100天搞定机器学习|Day37无公式理解反向传播算法之精髓 上集我们学习了反向传播算法的原理,今天我们深入讲解其中的微积分理论,展示在机器学习中, ...
- 卷积神经网络(CNN)反向传播算法
在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结.在阅读本文前,建议先研究DNN的反向传播算法:深度 ...
- 神经网络反向传播算法&&卷积神经网络
听一遍课程之后,我并不太明白这个算法的奇妙之处?? 为啥? 神经网络反向传播算法 神经网络的训练依靠反向传播算法,最开始输入层输入特征向量,网络层计算获得输出,输出层发现输出和正确的类号不一样,这时就 ...
- 机器学习 —— 基础整理(七)前馈神经网络的BP反向传播算法步骤整理
这里把按 [1] 推导的BP算法(Backpropagation)步骤整理一下.突然想整理这个的原因是知乎上看到了一个帅呆了的求矩阵微分的方法(也就是 [2]),不得不感叹作者的功力.[1] 中直接使 ...
- 神经网络训练中的Tricks之高效BP(反向传播算法)
神经网络训练中的Tricks之高效BP(反向传播算法) 神经网络训练中的Tricks之高效BP(反向传播算法) zouxy09@qq.com http://blog.csdn.net/zouxy09 ...
随机推荐
- burpsuite 隐藏 detectportal.firefox.com
0x00原由 抓包时经常出现detectportal.firefox.com,不利于我们的渗透工作 0x01解决方法 在输入框输入:about:config 然后设置以下选项:network. ...
- 基于CefSharp开发浏览器(九)浏览器历史记录弹窗面板
一.前言 前两篇文章写的是关于浏览器收藏夹的内容,因为收藏夹的内容不会太多,故采用json格式的文本文件作为收藏夹的存储方式. 关于浏览器历史记录,我个人每天大概会打开百来次网页甚至更多,时间越长历史 ...
- P2424 约数和 【整除分块】
一.题目 P2424 约数和 二.分析 因为都是加法,那么肯定有的一个性质,即前缀和的思想,就是$$ { ans =\sum_{i=1}^y f(i)} - {\sum_{i=1}^x f(i)} ...
- python 常用的库
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
- Python模拟简易版淘宝客服机器人
对于用Python制作一个简易版的淘宝客服机器人,大概思路是:首先从数据库中用sql语句获取相关数据信息并将其封装成函数,然后定义机器问答的主体函数,对于问题的识别可以利用正则表达式来进行分析,结合现 ...
- Centos7 Firewall 使用笔记
在 Centos 7 中防火墙由 firewalld 来管理,而不是以前的 iptables. 记录一下常用操作备查 firewall-cmd 操作 firewall-cmd --state 查看防火 ...
- Hadoop集群--linux虚拟机Hadoop安装与配置、克隆虚拟机
Hadoop集群 第四章 Hadoop安装与配置.克隆虚拟机 一.Hadoop安装与配置 1.将hadoop安装包通过Xftp传输到虚拟机的/software目录下 2.进入/software目录下, ...
- Java 并发工具类 CountDownLatch、CyclicBarrier、Semaphore、Exchanger
本文部分摘自<Java 并发编程的艺术> CountDownLatch CountDownLatch 允许一个或多个线程等待其他线程完成操作.假设现有一个需求:我们需要解析一个 Excel ...
- TypeError: Can't convert 'int' object to str implicitly Python常见错误
尝试连接非字符串值与字符串 想要字符串连接非字符串需要先进行强制转化 可以用str()函数 --------------------------------
- Istio安全-证书管理(实操一)
Istio安全-证书管理 目录 Istio安全-证书管理 插入现有CA证书 插入现有证书和密钥 部署Istio 配置示例services 校验证书 卸载 Istio的DNS证书管理 DNS证书的提供和 ...