文档章节

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

Lee的白板报
 Lee的白板报
发布于 2015/11/11 17:08
字数 781
阅读 14833
收藏 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的白板报
粉丝 90
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kernel version does not match DSO version

错误信息: kernel version 384.11 does not match DSO version 384.130.0 原因是: cuda driver版本太低,不匹配DSO 简单有效的修复方法,升级nvidia driver, 步骤如下: 1. google seach ...

刘小米
今天
0
0
maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部