Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >神经网络的反向传播算法—ML Note 52

神经网络的反向传播算法—ML Note 52

作者头像
讲编程的高老师
发布于 2020-09-21 07:23:14
发布于 2020-09-21 07:23:14
5420
举报

上一小节讲了神经网络的代价函数,这一小节讲解一个让代价函数最小化的算法:反向传播算法。

算法目标

找到合适的参数,让代价函数最小。那我们要怎么做呢?

我们需要有一种能够用编码实现的算法,梯度下降也好、其它更高级的算法也好,我们需要能够通过一种迭代的办法不停改变这些参数\theta的值,使得代价函数最小。而参数每次改变的大小,需要计算偏导数,通过偏导数的值来确定每一步参数改变的大小和正负。

也就是说,我们把代价函数的值作为了函数的因变量,把参数作为自变量来进行求函数最小值。

前向传播

假设我们有一组训练样本(x,y),神经网络如何计算得出输出结果的呢?如下图,它是从最左边的输入层一层一层的算到输出层,然后给出一组结果的。

这样的运算过程,我们叫做前向传播。

前向传播的含义,就是从输入层向前逐层向前运算最后得到输出。

反向传播

反向传播,直观上我们是想要算出“真实值和神经网络的计算值之间的差”。

我们从神经网络的外面当然是只能看到输出层上,实际值和计算值之间的差值。但是,我们也知道最后输出上计算值和实际值之间的差值,是由前面从输入层到每个隐藏层慢慢地把这个误差给积累下来的。那我们该怎么算每一层上的误差呢?

我们先从输出层上开始做,将输出层上的每个神经元的计算结果和这个分量上训练样本实际的结果之间求差值。这就是输出层上的误差:

有了输出层的误差,倒数第二层的误差该怎么计算呢?本质上,输出层的误差是由上一层的误差经过输出层上的运算之后得到的,那我们再经过一次逆反运算就可以算出来了。

上式中,后面的一项是激活函数的导数。

前面一项,是权重导致的误差的和。

类似的,可以把第二层的也给算出来。这样,我们就有了每一层上的误差函数:

因为最左边的是输入层,没有误差,所以这里有3层的误差函数。

通过上面的计算过程,我们就知道这个算法为什么叫做反向传播算法了。

有一大堆的训练样本的时候,我们该怎么做?

假设有m组训练样本,反向传播算法的步骤如下图:

其实,上图中迭代更新的式子中,我们把当前样本的输入作为常量,把权值作为自变量来求偏导的,这样就和前面学习过的梯度下降类似了。

我们学了那么久,这一小节是第一次真正的挑战,因为在反向传播那个地方,这里跳过了很多的中间过程。不明白的同学,可以找一些BP网络原理的资料来看看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 讲编程的高老师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第十章 神经网络参数的反向传播算法
该系列文章为,观看“吴恩达机器学习”系列视频的学习笔记。虽然每个视频都很简单,但不得不说每一句都非常的简洁扼要,浅显易懂。非常适合我这样的小白入门。 10.1 代价函数 为神经网络拟合参数的算法
tomas家的小拨浪鼓
2019/03/21
6930
第十章 神经网络参数的反向传播算法
神经网络 反向传播
之前我们在计算神经网络预测结果的时候我们采用了一种正向传播方法,我们从第一层开始正向一层一层进行计算,直到最后一层的
小小程序员
2023/12/04
2880
神经网络 反向传播
反向传播算法推导-全连接神经网络
反向传播算法是人工神经网络训练时采用的一种通用方法,在现代深度学习中得到了大规模的应用。全连接神经网络(多层感知器模型,MLP),卷积神经网络(CNN),循环神经网络(RNN)中都有它的实现版本。算法从多元复合函数求导的链式法则导出,递推的计算神经网络每一层参数的梯度值。算法名称中的“误差”是指损失函数对神经网络每一层临时输出值的梯度。反向传播算法从神经网络的输出层开始,利用递推公式根据后一层的误差计算本层的误差,通过误差计算本层参数的梯度值,然后将差项传播到前一层。
SIGAI学习与实践平台
2018/08/07
1.4K0
反向传播算法推导-全连接神经网络
怎样理解神经网络的反向传播算法-ML Note 53
“Neural Networks: Learning——Backpropagation intuition”
讲编程的高老师
2020/09/27
5430
神经网络–反向传播详细推导过程
为了描述神经网络,我们先从最简单的神经网络讲起,这个神经网络仅由一个“神经元”构成,以下即是这个“神经元”的图示:
全栈程序员站长
2022/08/23
7890
神经网络–反向传播详细推导过程
前馈神经网络与反向传播算法
在上述网络中,信号从输入层开始,经过线性组合和激活函数的处理,输入到下一层的神经元,信号依次经过各个隐藏层的处理,最终输出到输出层,这样的信号传递是一个正向传递的过程,这种结构的神经网络称之为前馈神经网络。
生信修炼手册
2021/07/06
1.4K0
前馈神经网络与反向传播算法
神经网络基础:反向传播算法
反向传播(Backpropagation,简称 BP)是目前用来训练人工神经网络(Artificial Neural Network,简称 ANN)算法最常用、最有效的方法。
HyperAI超神经
2019/11/29
1.5K0
神经网络算法总结—ML NOTE 57
前面几个小节都讲了神经网络的一些东东,因为神经网络在机器学习中的地位实在是太重要了,所以需要单独一节把前面学到的事总结一下。
讲编程的高老师
2020/11/12
3820
神经网络算法总结—ML NOTE 57
机器学习——神经网络代价函数、反向传播、梯度检验、随机初始化
机器学习(十二) ——神经网络代价函数、反向传播、梯度检验、随机初始化 (原创内容,转载请注明来源,谢谢) 一、代价函数 同其他算法一样,为了获得最优化的神经网络,也要定义代价函数。 神经网络的输出的结果有两类,一类是只有和1,称为二分分类(Binary classification),另一种有多个结果,称为多分类。其中,多个结果时,表示方式和平时不太一样。例如,y的结果范围在0~5,则表示y=2,用的是矩阵y=[0 1 0 0 0]T来表示,如下图: 代价函数可以类比logistic回归的代价函数,l
企鹅号小编
2018/02/07
1K0
机器学习——神经网络代价函数、反向传播、梯度检验、随机初始化
你真的理解反向传播吗?面试必备
深度学习框架越来越容易上手,训练一个模型也只需简单几行代码。但是,在机器学习面试中,也会考量面试者对机器学习原理的掌握程度。反向传播问题经常出现,不少人碰到时仍觉得十分棘手。
量子位
2018/07/24
1K0
你真的理解反向传播吗?面试必备
机器学习系列12:反向传播算法
采用如下方法,先进行前向传播算法,然后再进行反向传播算法(Backpropagation Algorithm),反向传播算法与前向传播算法方向相反,它用来求代价函数的偏导数。具体过程看下图:
SuperFeng
2019/09/26
4480
机器学习系列12:反向传播算法
反向传播算法
反向传播算法 目录 关键词 损失函数 反向传播算法 BP算法伪代码 上一篇----》神经网络 》点击查看 1 关键词 反向传播算法 Backpropagation Algorithm 批量梯度下降法 batch gradient descent 整体代价函数 overall cost function 方差 squared-error 均方差 average sum-of-squares error 规则化项 regularization term 权重衰减 weight decay 偏置项 bias te
昱良
2018/04/08
1.3K0
反向传播算法
卷积神经网络的反向传播
---- 反向传播算法(Backpropagation)是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是: 将训练集数据输入到ANN的输入层,经过隐藏层,最后达到输出层并输出结果,这是ANN的前向传播过程; 由于ANN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层; 在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。 反向传播算法的思想比较
计算机视觉研究院
2018/04/17
9430
卷积神经网络的反向传播
误差反向传播算法浅解
反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称。由于多层前馈神经网络的训练经常采用误差反向传播算法,人们也常把多层前馈神经网络称为BP网络。
用户9624935
2022/04/02
2.2K0
误差反向传播算法浅解
神经网络的反向传播
梯度下降法是一种优化算法,用于寻找目标函数的最小值。梯度是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处变化最快的方向。在数学上,梯度就是关于输入的偏导数。
@小森
2024/05/03
1230
神经网络的反向传播
反向传播算法推导-卷积神经网络
在SIGAI之前的公众号文章“反向传播算法推导-全连接神经网络”中,我们推导了全连接神经网络的反向传播算法。其核心是定义误差项,以及确定误差项的递推公式,再根据误差项得到对权重矩阵、偏置向量的梯度。最后用梯度下降法更新。卷积神经网络由于引入了卷积层和池化层,因此情况有所不同。在今天这篇文章中,我们将详细为大家推导卷积神经网络的反向传播算法。对于卷积层,我们将按两条路线进行推导,分别是标准的卷积运算实现,以及将卷积转化成矩阵乘法的实现。在文章的最后一节,我们将介绍具体的工程实现,即卷积神经网络的卷积层,池化层,激活函数层,损失层怎样完成反向传播功能。
SIGAI学习与实践平台
2018/08/07
8940
反向传播算法推导-卷积神经网络
深度神经网络(DNN)与反向传播算法
深度神经网络(DNN)是人工智能和机器学习领域的核心技术之一,尤其在图像识别、语音识别、自然语言处理等多个应用中取得了突破性的成果。DNN的成功得益于其强大的学习能力和优化算法,而反向传播(Backpropagation,简称BP)算法则是训练神经网络的关键技术之一。本文将深入剖析反向传播算法的工作原理,并结合具体的例子,详细分析其在深度神经网络中的应用过程。
LucianaiB
2025/02/10
1650
Andrew Ng机器学习课程笔记(四)之神经网络
http://www.cnblogs.com/fydeblog/p/7365730.html
努力努力再努力F
2018/09/11
5150
Andrew Ng机器学习课程笔记(四)之神经网络
100天搞定机器学习|day38 反向传播算法推导
上集我们学习了反向传播算法的原理,今天我们深入讲解其中的微积分理论,展示在机器学习中,怎么理解链式法则。
统计学家
2019/08/06
3440
100天搞定机器学习|day38 反向传播算法推导
神经网络与反向传播算法
1、前言 先简单的说下神经网络吧。 简单来说就是模拟大脑的神经元。 前端会有一大批数据输入,例如,前端输入了一张图像的所有像素点。 中间层会有成千上万个网络数据节点,我们可以称之为神经元。 一系列的神
企鹅号小编
2018/01/08
5840
神经网络与反向传播算法
相关推荐
第十章 神经网络参数的反向传播算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文