Loading [MathJax]/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >神经网络 反向传播

神经网络 反向传播

作者头像
小小程序员
发布于 2023-12-04 00:18:14
发布于 2023-12-04 00:18:14
3220
举报
神经网络 反向传播算法

之前我们在计算神经网络预测结果的时候我们采用了一种正向传播方法,我们从第一层开始正向一层一层进行计算,直到最后一层的

hθ(x)

现在,为了计算代价函数的偏导数

Θ(l)ijJ(Θ)

,我们需要采用一种反向传播算法,也就是首先计算最后一层的误差,然后再一层一层反向求出各层的误差,直到倒数第二层。 以一个例子来说明反向传播算法。

假设我们的训练集只有一个样本

(x(1),y(1))

,我们的神经网络是一个四层的神经网络,其中

前向传播算法:

我们从最后一层的误差开始计算,误差是激活单元的预测( a ( 4 ) {a^{(4)}} a(4))与实际值( y k y^k yk)之间的误差,( k = 1 : k k=1:k k=1:k)。 我们用 δ \delta δ来表示误差,则: δ ( 4 ) = a ( 4 ) − y \delta^{(4)}=a^{(4)}-y δ(4)=a(4)−y 我们利用这个误差值来计算前一层的误差: δ ( 3 ) = ( Θ ( 3 ) ) T δ ( 4 ) ∗ g ′ ( z ( 3 ) ) \delta^{(3)}=\left({\Theta^{(3)}}\right)^{T}\delta^{(4)}\ast g'\left(z^{(3)}\right) δ(3)=(Θ(3))Tδ(4)∗g′(z(3)) 其中 g ′ ( z ( 3 ) ) g'(z^{(3)}) g′(z(3))是 S S S 形函数的导数, g ′ ( z ( 3 ) ) = a ( 3 ) ∗ ( 1 − a ( 3 ) ) g'(z^{(3)})=a^{(3)}\ast(1-a^{(3)}) g′(z(3))=a(3)∗(1−a(3))。而 ( θ ( 3 ) ) T δ ( 4 ) (θ^{(3)})^{T}\delta^{(4)} (θ(3))Tδ(4)则是权重导致的误差的和。下一步是继续计算第二层的误差: 因为第一层是输入变量,不存在误差。我们有了所有的误差的表达式后,便可以计算代价函数的偏导数了,假设 λ = 0 λ=0 λ=0,即我们不做任何正则化处理时有: ∂ ∂ Θ i j ( l ) J ( Θ ) = a j ( l ) δ i l + 1 \frac{\partial}{\partial\Theta_{ij}^{(l)}}J(\Theta)=a_{j}^{(l)} \delta_{i}^{l+1} ∂Θij(l)​∂​J(Θ)=aj(l)​δil+1​

重要的是清楚地知道上面式子中上下标的含义:

代表目前所计算的是第几层。

代表目前计算层中的激活单元的下标,也将是下一层的第

个输入变量的下标。

代表下一层中误差单元的下标,是受到权重矩阵中第

行影响的下一层中的误差单元的下标。

如果我们考虑正则化处理,并且我们的训练集是一个特征矩阵而非向量。在上面的特殊情况中,我们需要计算每一层的误差单元来计算代价函数的偏导数。在更为一般的情况中,我们同样需要计算每一层的误差单元,但是我们需要为整个训练集计算误差单元,此时的误差单元也是一个矩阵,我们用

来表示这个误差矩阵。第

层的第

个激活单元受到第

个参数影响而导致的误差。

我们的算法表示为:

即首先用正向传播方法计算出每一层的激活单元,利用训练集的结果与神经网络预测的结果求出最后一层的误差,然后利用该误差运用反向传播法计算出直至第二层的所有误差。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
吴恩达笔记5_神经网络
为了计算神经网络中代价函数的偏导数\frac{\partial J(\Theta)}{\partial \Theta_{ij^{(l)}}},需要使用反向传播法
皮大大
2021/03/02
3660
机器学习:神经网络(二)
,比较我们可以发现,其实就是增加了一些嵌套的求和符号,因为代价函数最终为一个标量,所以我们需要将
Here_SDUT
2022/09/19
6560
机器学习:神经网络(二)
第十篇:《机器学习之神经网络(四)》
j 代表下一层中误差单元的下标,是受到权重矩阵中第行影响的下一层中的误差单元的下标。
ACM算法日常
2018/12/10
4860
第十篇:《机器学习之神经网络(四)》
NLP教程(3) | 神经网络与反向传播
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/04
8320
NLP教程(3) | 神经网络与反向传播
Chapter 2. 反向传播
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
村雨遥
2019/09/09
5600
Chapter 2. 反向传播
第十章 神经网络参数的反向传播算法
该系列文章为,观看“吴恩达机器学习”系列视频的学习笔记。虽然每个视频都很简单,但不得不说每一句都非常的简洁扼要,浅显易懂。非常适合我这样的小白入门。 10.1 代价函数 为神经网络拟合参数的算法
tomas家的小拨浪鼓
2019/03/21
7160
第十章 神经网络参数的反向传播算法
TF-char7-反向传播法
向量\left(\frac{\partial \mathcal{L}}{\partial \theta_{1}}, \frac{\partial \mathcal{L}}{\partial \theta_{2}}, \frac{\partial \mathcal{L}}{\partial \theta_{3}}, \ldots \frac{\partial \mathcal{L}}{\partial \theta_{n}}\right)叫做函数的梯度
皮大大
2021/03/01
3150
TF-char7-反向传播法
前向传播算法(Forward propagation)与反向传播算法(Back propagation)「建议收藏」
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
全栈程序员站长
2022/08/10
7320
前向传播算法(Forward propagation)与反向传播算法(Back propagation)「建议收藏」
斯坦福NLP课程 | 第4讲 - 神经网络反向传播与计算图
教程地址:http://www.showmeai.tech/tutorials/36
ShowMeAI
2022/05/04
1K0
斯坦福NLP课程 | 第4讲 - 神经网络反向传播与计算图
Andrew Ng机器学习课程笔记(四)之神经网络
http://www.cnblogs.com/fydeblog/p/7365730.html
努力努力再努力F
2018/09/11
5280
Andrew Ng机器学习课程笔记(四)之神经网络
9 神经网络: 学习(Neural Networks: Learning)
9.1 代价函数(Cost Function) 9.2 反向传播算法(Backpropagation Algorithm) 9.3 直观理解反向传播(Backpropagation Intuition) 9.4 实现注意点: 参数展开(Implementation Note: Unrolling Parameters) 9.5 梯度检验(Gradient Checking) 9.6 随机初始化(Random Initialization) 9.7 综合起来(Putting It Together) 9.8 自主驾驶(Autonomous Driving)
用户2188327
2020/07/09
6210
9 神经网络: 学习(Neural Networks: Learning)
神经网络的反向传播算法—ML Note 52
上一小节讲了神经网络的代价函数,这一小节讲解一个让代价函数最小化的算法:反向传播算法。
讲编程的高老师
2020/09/21
5620
神经网络的反向传播算法—ML Note 52
反向传播算法推导-全连接神经网络
反向传播算法是人工神经网络训练时采用的一种通用方法,在现代深度学习中得到了大规模的应用。全连接神经网络(多层感知器模型,MLP),卷积神经网络(CNN),循环神经网络(RNN)中都有它的实现版本。算法从多元复合函数求导的链式法则导出,递推的计算神经网络每一层参数的梯度值。算法名称中的“误差”是指损失函数对神经网络每一层临时输出值的梯度。反向传播算法从神经网络的输出层开始,利用递推公式根据后一层的误差计算本层的误差,通过误差计算本层参数的梯度值,然后将差项传播到前一层。
SIGAI学习与实践平台
2018/08/07
1.4K0
反向传播算法推导-全连接神经网络
详解 误差反向传播算法推导
反向传播算法(back propagation,简称BP模型)是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。
全栈程序员站长
2022/06/28
8560
详解 误差反向传播算法推导
卷积神经网络(CNN)反向传播算法
    在卷积神经网络(CNN)前向传播算法中,我们对CNN的前向传播算法做了总结,基于CNN前向传播算法的基础,我们下面就对CNN的反向传播算法做一个总结。在阅读本文前,建议先研究DNN的反向传播算法:深度神经网络(DNN)反向传播算法(BP)
刘建平Pinard
2018/08/08
8640
小白也能看懂的BP反向传播算法之Surpass Backpropagation
上篇文章小白也能看懂的BP反向传播算法之Further into Backpropagation中,我们小试牛刀,将反向传播算法运用到了一个两层的神经网络结构中!然后往往实际中的神经网络拥有3层甚至更多层的结构,我们接下来就已一个三层的神经网络结构为例,分析如何运用动态规划来优化反向传播时微分的计算!
desperate633
2018/08/23
8750
一文搞定BP神经网络——从原理到应用(原理篇)「建议收藏」
本文着重讲述经典BP神经网络的数学推导过程,并辅助一个小例子。本文不会介绍机器学习库(比如sklearn, TensorFlow等)的使用。 欲了解卷积神经网络的内容,请参见我的另一篇博客一文搞定卷积神经网络——从原理到应用。
全栈程序员站长
2022/09/09
4.8K1
一文搞定BP神经网络——从原理到应用(原理篇)「建议收藏」
神经网络知识点总结_经典神经网络
本文基于文章“Deep Learning:Technical introduction”,对神经网络的知识点做一个总结,不会对某些概念性的东西做详细介绍,因此需要对神经网络有基本的了解。以下是一些符号定义。
全栈程序员站长
2022/11/17
8620
神经网络知识点总结_经典神经网络
【深度学习 | 反向传播】释放反向传播的力量: 让训练神经网络变得简单
反向传播算法是一种用于训练神经网络的常用优化算法。它通过计算损失函数对每个参数的梯度,然后根据这些梯度更新参数值,以使得神经网络能够逐步调整和改进其预测结果。
计算机魔术师
2023/10/18
4810
【深度学习 | 反向传播】释放反向传播的力量: 让训练神经网络变得简单
你真的理解反向传播吗?面试必备
深度学习框架越来越容易上手,训练一个模型也只需简单几行代码。但是,在机器学习面试中,也会考量面试者对机器学习原理的掌握程度。反向传播问题经常出现,不少人碰到时仍觉得十分棘手。
量子位
2018/07/24
1K0
你真的理解反向传播吗?面试必备
推荐阅读
相关推荐
吴恩达笔记5_神经网络
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档