谷歌官方:反向传播算法图解


新智元推荐

来源:google-developers.appspot.com

【新智元导读】反向传播算法(BP算法)是目前用来训练人工神经网络的最常用且最有效的算法。作为谷歌机器学习速成课程的配套材料,谷歌推出一个演示网站,直观地介绍了反向传播算法的工作原理。

网站地址:

https://google-developers.appspot.com/machine-learning/crash-course/backprop-scroll/

反向传播算法对于快速训练大型神经网络来说至关重要。本文将介绍该算法的工作原理。

简单的神经网络

如上图,你会看到一个神经网络,其中包含一个输入节点、一个输出节点,以及两个隐藏层(分别有两个节点)。

相邻的层中的节点通过权重

相关联,这些权重是网络参数。

激活函数

每个节点都有一个总输入 x、一个激活函数 f(x) 以及一个输出 y=f(x)。

f(x)必须是非线性函数,否则神经网络就只能学习线性模型。

常用的激活函数是 S 型函数:

误差函数

目标是根据数据自动学习网络的权重,以便让所有输入

的预测输出

接近目标

为了衡量与该目标的差距,我们使用了一个误差函数

。常用的误差函数是

正向传播

首先,我们取一个输入样本

,并更新网络的输入层。

为了保持一致性,我们将输入视为与其他任何节点相同,但不具有激活函数,以便让其输出与输入相等,即

现在,我们更新第一个隐藏层。我们取上一层节点的输出 y,并使用权重来计算下一层节点的输入 x。

然后,我们更新第一个隐藏层中节点的输出。 为此,我们使用激活函数 f(x)。

使用这两个公式,我们可以传播到网络的其余内容,并获得网络的最终输出。

误差导数

反向传播算法会对特定样本的预测输出和理想输出进行比较,然后确定网络的每个权重的更新幅度。 为此,我们需要计算误差相对于每个权重

的变化情况。

获得误差导数后,我们可以使用一种简单的更新法则来更新权重:

其中,

是一个正常量,称为“学习速率”,我们需要根据经验对该常量进行微调。

[注意] 该更新法则非常简单:如果在权重提高后误差降低了 (

),则提高权重;否则,如果在权重提高后误差也提高了 (

),则降低权重。

其他导数

为了帮助计算

,我们还为每个节点分别存储了另外两个导数,即误差随以下两项的变化情况:

反向传播

我们开始反向传播误差导数。 由于我们拥有此特定输入样本的预测输出,因此我们可以计算误差随该输出的变化情况。 根据我们的误差函数

,我们可以得出:

现在我们获得了

,接下来便可以根据链式法则得出

其中,当 f(x) 是 S 型激活函数时,

一旦得出相对于某节点的总输入的误差导数,我们便可以得出相对于进入该节点的权重的误差导数。

根据链式法则,我们还可以根据上一层得出

。此时,我们形成了一个完整的循环。

接下来,只需重复前面的 3 个公式,直到计算出所有误差导数即可。

结束。

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2018-06-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏梦里茶室

读论文系列:Object Detection NIPS2015 Faster RCNN

转载请注明作者:梦里茶 Faster RCNN在Fast RCNN上更进一步,将Region Proposal也用神经网络来做,如果说Fast RCNN的最大...

3228
来自专栏xingoo, 一个梦想做发明家的程序员

吴恩达机器学习笔记 —— 13 支持向量机

总结来说:如果y=1,我们希望z的值大于等于1,如果y=0,我们希望z的值小于-1,这样损失函数的值都会为0.

1171
来自专栏机器学习算法与理论

逻辑回归与梯度下降详解

逻辑回归 Sigmoid函数: ? Sigmoid函数 梯度: ? 梯度的表达式 这个梯度是指:沿着x方向移动 ? 个单位,沿着y方向移动 ? 个...

2989
来自专栏杂七杂八

反向传播与神经网络初步(下)

神经网络训练过程:通过前馈得到损失,通过反馈得到梯度,通过对梯度的使用来完成权值更新。

1102
来自专栏杂七杂八

线性分类器损失函数与最优化(上)

使用正则化一方面的优化参数,另一方面是权衡训练损失和用于测试集的泛化损失。尽管有时候会使训练集上的效果变差,甚至是分类错误,但是对于测试集的训练效果是有很大效果...

3242
来自专栏机器学习、深度学习

跟踪算法基准--Tracking the Trackers: An Analysis of the State of the Art in Multiple Object Tracking

Tracking the Trackers: An Analysis of the State of the Art in Multiple Object Tr...

2856
来自专栏计算机视觉战队

深度学习---反向传播的具体案例

最近遇到一位小师弟,他让我给他推导一下前向传播和反向传播过程,于是我埋头在白纸上一步一步推导,最后,小师弟特别开心,在此过程中,我也更一步认识了这个知识点,感觉...

35515
来自专栏AI深度学习求索

深度学习基础学习 | 为什么要进行特征提取

在计算机中,图片以有序的多维矩阵进行存储,按颜色分为灰度图片用二维数组存储图片的像素值,和彩色图片用三维数组存储图片的三个通道颜色的像素值。

2202
来自专栏大数据智能实战

空洞卷积与DeeplabV2实现图像语义分割的测试(tensorflow)

图像语义分割是对图像像素级理解的基础,也是图像处理的高阶操作。自从深度学习出来之后,已经有了不少的基于卷积网络的图像语义分割模型,如从全卷积网络到大型卷积核:深...

5399
来自专栏SIGAI学习与实践平台

反向传播算法推导-卷积神经网络

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不能用于商业目的。

2421

扫码关注云+社区

领取腾讯云代金券