结合斯坦福深度学习教程 对于BP反向传播算法原理的推导过程解析
来源:互联网 发布:大学生穷游软件 编辑:程序博客网 时间:2024/06/06 18:01
最近在对卷积神经网络(CNN)进行学习的过程中,发现自己之前对反向传播算法的理解不够透彻,所以今天专门写篇博客记录一下反向传播算法的推导过程,算是一份备忘录吧,有需要的朋友也可以看一下这篇文章,写的挺不错的:http://www.cnblogs.com/lancelod/p/4164231.html,本文也大量参考了这篇文章。本文在推导过程中忽略了偏置的存在,这样做是为了更简单明晰的阐述BP算法的操作过程,并不是说偏置不重要,希望不会引起误会。
我们知道,神经网络大多采取正向传播预测,反向传播误差的结构。反向传播算法是运用在神经网络中进行网络权重等最优值计算算法,其核心就是梯度下降 + 链式法则求偏导,下面就对反向传播算法进行一下简单的推导:
在下面的推导过程中,表示连接前一层神经元 和后一层神经元 的权值。
对于输出层神经元 ,它的输入 按下式进行计算(忽略偏置):
可以看到它的输入等于前一层所有神经元的输出和对应连接的加权和, 如上图,而的输出按下式计算:
对于有监督训练, 期望输出即样本类标签d和实际输出y都是已知的, 可以定义误差或者loss function为:
前期的准备工作已经完成了,下面开始正式的推导过程:
这样,我们就可以根据最后求出的误差来对权重进行更新,这种误差反向传递的方式就是反向传播算法的精髓所在。
处理完输出层神经元,我们再来看一下输出层之前的一层神经元的权值更新,我们定义表示连接前一层神经元和后一层神经元的权值。
相信大家已经看出误差反向传导的内涵了,每一层所产生的误差会逐渐向之前的层次传播,而各层的权重根据梯度下降算法不断地优化。总之,反向传播算法的核心就是梯度下降 + 链式法则求偏导,虽然看起来很繁琐并且计算复杂度有点高,但是实际上BP算法的精确性和易用性是很难被其他算法替代的,这也是现在比如CNN等很火的深度学习算法普遍采用BP算法的原因。
- 结合斯坦福深度学习教程 对于BP反向传播算法原理的推导过程解析
- 深度学习基础:反向传播即BP算法的推导过程
- 深度学习|反向传播算法(BP)原理推导及代码实现
- 反向传播算法BP的数学推导过程以及示例
- <深度学习系列>反向传播算法的公式推导
- 反向传播算法的公式推导(BP算法)
- BP神经网络,BP推导过程,反向传播算法,误差反向传播,梯度下降,权值阈值更新推导,隐含层权重更新公式
- 反向传播算法的推导
- Neural Network 反向传播算法(BP Algorithms)推导,无代码
- 深度学习:神经网络中的前向传播和反向传播算法推导
- 反向传播BP算法
- BP反向传播算法
- 反向传播BP算法
- 反向传播BP算法
- 反向传播BP算法
- 反向传播BP算法
- BP反向传播算法
- 反向传播BP算法
- qml中action属性的使用
- java.sql.SQLException: The Network Adapter could not establish the connection
- ZCMU-Problem E - Ones
- 去除list重复数据,并且显示重复数据的条数
- 【RMAN】【RMAN命令】CONFIGURE命令(1)--RMAN 配置参数说明
- 结合斯坦福深度学习教程 对于BP反向传播算法原理的推导过程解析
- 基础练习 十进制转十六进制
- MySQL优化必须调整的10项配置(文2014年)
- java值传递与引用传递的区别
- Hibernate缓存的作用
- Http chunk方式传输数据
- iOS架构组件化
- 【Unity&好文章】002
- Python简介