文档章节

反向传播(Backpropagation)算法的数学原理

Lee的白板报
 Lee的白板报
发布于 2015/11/11 17:08
字数 781
阅读 15111
收藏 12

准备

本文不是一篇引导读者入门的科普文。读者至少需要对人工神经网络有概念性的理解,并且熟悉偏导数。

这是一个简单的人工神经网络,分为输入层,隐藏层和输出层。输入层以原始数据 x 作为本层向下一层的输出,即 a(1);隐藏层将 a(1) 中的元素进行线性组合作为自己的输入,即 z(2),然后将 z(2) 进行一个数学变换(函数 g(z))作为对下一层的输出,即 a(2)。以此类推,得到最后一层的输出,即 a(3) 或 hΘ(x),就是人工神经网络的运算结果。

其中 Θ(1), Θ(2) 分别是第1层,第2层向前传递数据时的线性组合参数,把 Θ(1), Θ(2)  统称为 Θ。在训练时,将已经标记好标准答案(称标准答案为 y)的数据输入网络,刚开始网络的输出与答案往往相距甚远,然后用优化算法(例如梯度下降法)不断修正 Θ,使网络的计算结果越来越接近标准答案,直至达到要求的精度。

这里定义一个表达式,叫做【代价方程】(Cost Function):

                      J(Θ) = 【计算结果 与 标准答案 之间的差距】

不需要关心 Cost Function 的具体形式,只需要理解它是对计算误差的一种衡量,并且它是 Θ 的函数。我们的目标就是使计算误差尽量小。

以梯度下降法为代表的很多优化算法可以用来解决上述的最小化问题。在优化过程中,这些算法通常会用到 J(Θ) Θ 中各元素的偏导数(Θ 是一个矩阵)。反向传播算法就是用来计算这些偏导数的。

最后要注意的一点是,除了最后一层以外,每一层都要在自己的输出向量前附加一个值为+1的项(称为 Bias Term),为了理解它的意义,可以想象二维坐标系中的一条直线:ax + b = 0,Bias term 与对应参数相乘后的值就是直线的截距 b。


数学原理


结语

听课时老师直接给出了反向传播的算法与程序,绕过了数学证明。虽然并不影响应用,但使用一个并不了解原理的工具,让我有如鲠在喉之感。通过证明,既可加深学习印象,也为后续的高阶学习夯实基础。

© 著作权归作者所有

共有 人打赏支持
Lee的白板报
粉丝 93
博文 31
码字总数 45338
作品 0
高级程序员
加载中

评论(5)

t
tjchern

引用来自“tjchern”的评论

为啥求第一部分的时候,使用的是加法,这样成立的前提是J可以写成Z的和,但是实际上不能啊

不好意思,楼主写的就是链式法则的定义形式,之前理解错了
t
tjchern
为啥求第一部分的时候,使用的是加法,这样成立的前提是J可以写成Z的和,但是实际上不能啊
PrincessMQ
PrincessMQ
楼主,能不能解释一下为什么第l层第i个单元的计算误差,是代价函数J(theta)对zi的偏导数?
Lee的白板报
Lee的白板报

引用来自“2550572497”的评论

楼主,能不能解释一下为什么J(Θ)要拆分成①,②,③三个部分?有没有什么特殊的含义?
只是链式求导过程中的不同步骤而已,为了方便理解。 比如: F=f1(f2(X)), 那么 dF/dX = dF/df1 * df1/df2 * df2/dX
2550572497
2550572497
楼主,能不能解释一下为什么J(Θ)要拆分成①,②,③三个部分?有没有什么特殊的含义?
反向传播的工作原理(深度学习第三章)

https://www.youtube.com/watch?v=Ilg3gGewQ5U What is backpropagation really doing? 梯度向量的每一项大小是在告诉大家,代价函数对于每一个参数有多敏感。 对于改变激活值,可以有三种方...

Fire_to_cheat_
01/19
0
0
详解反向传播算法(上)

目录: 1 用计算图来解释几种求导方法: 1.1 计算图 1.2 两种求导模式:前向模式求导( forward-mode differentiation) 反向模式求导(reverse-mode differentiation) 1.3 反向求导模式(反向传...

晓雷
2017/02/04
0
0
入门 | 如何通过梯度检验帮助实现反向传播

  选自imaddabbura   机器之心编译   参与:刘天赐、路      本文介绍了如何使用梯度检验方法确认反向传播代码是否准确。      在《Coding Neural Network - Forward Propaga...

机器之心
05/09
0
0
一文彻底搞懂BP算法:原理推导+数据演示+项目实战(上篇)

欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 反向传播算法(Backpropagation Algorithm,简称BP算法)是深度学习的重要思想基...

磐石001
04/02
0
0
Coursera机器学习笔记 第5周 第九章 神经网络:学习(一)

第九章 神经网络:学习(Neural Networks: Learning)(一) 第1节 代价函数和反向传播(Cost Function and Backpropagation) 9.1 代价函数 参考视频 : 9 - 1 - Cost Function (7 min).mkv ...

shengchaohua163
03/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

各种开源汇编、反汇编引擎的非专业比较

由于平时业余兴趣和工作需要,研究过并使用过时下流行的各种开源的x86/64汇编和反汇编引擎。如果要对汇编指令进行分析和操作,要么自己研究Intel指令集写一个,要么就用现成的开源引擎。自己...

simpower
11分钟前
1
0
(4)添加vue-router

(4)添加vue-router 1 安装vue-router cnpm install vue-router --save 2 页面准备 新建目录/src/views/common,此目录下面建立4个组件404.vue、home.vue、login.vue、theme.vue。每个文件...

neumeng
13分钟前
1
0
高可用性系统在大众点评的实践与经验

背景 所谓高可用性指的是系统如何保证比较高的服务可用率,在出现故障时如何应对,包括及时发现、故障转移、尽快从故障中恢复等等。本文主要以点评的交易系统的演进为主来描述如何做到高可用...

Skqing
21分钟前
2
0
Network protocols

The network stack does serveral seemingly-impossible things. It does reliable transmission over our unreliable networks, usually without any detactable hiccups. It adapts smooth......

nao
22分钟前
1
0
Android 生命周期方法

1,onCreate(); 2,onStart(); 3,onResume(); //打开页面,前三个方法自动执行 4,onPause(); 5,onStop(); //打开其他页面,前一个页面执行这俩方法 6,onRestart(); //onStart(),onResume //当关闭...

lanyu96
29分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部