误差反向传播算法-2| 学习笔记

简介: 快速学习误差反向传播算法-2。

开发者学堂课程【机器学习算法 :误差反向传播算法-2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7241


误差反向传播算法-2

 

内容介绍

一.例图

二、正向求导

三、反向求导

四、向量表示

五、BP 算法


一、例图

在已知路径如图的情况下,求整体上输入 ×1,×2 ,b 对输出 o 的影响。

图片35.png


二、正向求导法

  • 正向求导

即所有路径都遍历一遍,不利的是路径冗余

图片36.png

① X1=> h1=> o,输入 x1 对于 o 的影响

② X1=> h2=> o,输入 x1 对于 o 的影响

③ X2=> h1=> o,输入 x2 对于 o 的影响

④ X2=> h2=> o,输入 x2 对于 o 的影响

⑤ b=> h1=> o,输入 b 对于 o 的影响

⑥ b=> h2=> o,输入 b 对于 o 的影响

⑦ 整体上输入 ×1,×2 ,b 对输出 o 的影响

为:48+0+0+72+0+72=192

 

三、反向求导

当已知路径,反向求导。

o 对 h1 和 h2 求导的相当于此时输出传导回隐藏层。

① 第一层,o =>h1,o =>h2 :

图片37.png 

此时 h1 实际上还是受到 b,x1 和 x2 的影响,我们将该影响再传到值输入层。

② 第二层中间结果:

hx=>b,h1=>xt,h1=>x2, h2=>b,h2=>x1,h2=>x2

③ 第二层,o=> b, o => ×1,o=>×2

图片38.png 

同时在最终求偏导时,直接使用中间结果的值,就可以将整个结果表示出来即只求一遍即可。反向求导即为,从 o 开始向前一层一层求传递的影响


三、向量表示

1. 用向量形式表示

H 即为隐藏层=权重1*输入层,输出层=权重 2*H。严格书写形式应在权重的上标添加转置符号 T。

H=W1.X  O=W2.H

图片39.png

在之前求解时,求得输入层导数为1,隐藏层到输入层为 w1,最终的输出层为x的偏导,即 w1*w2 (图片第一行,为正向求导)

或者反向求导(图片第二行,为反向求导),o 对 X  的影响为 w1*w2,o 对 H 的影响为 w2,o 对 o 的影响就是1。

图片40.png 

2.前向和反向的特点:

  • 前向的“分母”一样,反向的“分子”一样

前向:分母加引号为导数的表示形式,此话表示每次计算时,无论在任何一层都要计算到输入层。

反向:分子都为 o,表示计算的时候只用计算两层。

  • 前向强调的是某个输入对某个神经元的影响
  • 前向求导方式是“路径加和”,逐条路径求解
  • 反向采用的是“合并同类路径,分阶段按层次求解”
  • 前向会导致路径中的部分冗余遍历,反向不会
  • 反向中某一阶段计算时可以直接使用上一阶段的结果
  • 前向计算量比反向大很多

整体来看,反向求导的计算更加清晰,而前向更加麻烦,因为含有重复路径也没有中间结果可使用。

 

四、BP 算法

1.介绍

最早时候感知器被认为不能解决线性不可分的问题,被认为价值有限,后来有了多层感知器(MLP)能够解决此问题。而功能虽然没有问题,但在实际应用中计算量过大,参数过多,过于复杂,被发现仅理论可行,就不被看好。

直至 BP 算法(Error Back Propagation,误差反向传播算法)︰是目前用来训练人工神经网络(ANN)最常用、最有效的算法。由1974年 Paul Werbos 最早提出,未被重视,后由 Rumelhart 和 McCelland 发表《并行分布式处理》正式提出。

2. 特点

l 数据前向传播:

首先,训练集数据输入到输入层,结合权重去计算,经过隐藏层计算结合函数去作用到净输出上,到达输出层,计算最后输出的结果

l 误差反向传播:

然后,有了实际输出后,计算输出值与实际值的误差,从输出层向隐藏层反向传播,直至输入层

l 调整算法参数

最后,在反向传播的过程中,根据误差调整各种参数的值,反复迭代直至收敛

相关文章
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
11月前
|
机器学习/深度学习 算法 前端开发
图解前向、反向传播算法,一看就懂!
前向传播是神经网络中信息从输入层经过隐藏层传递到输出层的过程。每个神经元接收前一层的输出,通过加权求和和激活函数处理后传递给下一层,最终生成预测结果。此过程涉及输入信号、加权求和、激活函数应用等步骤。前向传播用于生成预测结果,在训练阶段与真实标签比较以计算损失函数,并在推理阶段直接生成预测值。反向传播则利用链式法则计算损失函数相对于权重的梯度,调整参数以减小误差,从而优化模型性能。两者结合实现神经网络的有效训练和预测。
|
机器学习/深度学习 人工智能 自然语言处理
深度学习还不如浅层网络?RL教父Sutton持续反向传播算法登Nature
【9月更文挑战第24天】近年来,深度学习在人工智能领域取得巨大成功,但在连续学习任务中面临“损失可塑性”问题,尤其在深度强化学习中更为突出。加拿大阿尔伯塔大学的研究人员提出了一种名为“持续反向传播”的算法,通过选择性地重新初始化网络中的低效用单元,保持模型的可塑性。该算法通过评估每个连接和权重的贡献效用来决定是否重新初始化隐藏单元,并引入成熟度阈值保护新单元。实验表明,该算法能显著提升连续学习任务的表现,尤其在深度强化学习领域效果明显。然而,算法也存在计算复杂性和成熟度阈值设置等问题。
280 2
WK
|
机器学习/深度学习 监控 算法
反向传播算法是如何工作的
反向传播算法通过最小化损失函数优化神经网络。首先,输入数据经由前向传播得到预测结果,并计算损失;接着,反向传播计算各参数的梯度,并利用梯度下降法更新权重和偏置。这一过程反复进行,直至满足停止条件。算法具备高效性、灵活性及可扩展性,能处理复杂模式识别与预测任务,适用于不同类型与规模的神经网络,显著提升了模型的预测准确性和泛化能力。
WK
555 3
|
机器学习/深度学习 算法
**反向传播算法**在多层神经网络训练中至关重要,它包括**前向传播**、**计算损失**、**反向传播误差**和**权重更新**。
【6月更文挑战第28天】**反向传播算法**在多层神经网络训练中至关重要,它包括**前向传播**、**计算损失**、**反向传播误差**和**权重更新**。数据从输入层流经隐藏层到输出层,计算预测值。接着,比较预测与真实值计算损失。然后,从输出层开始,利用链式法则反向计算误差和梯度,更新权重以减小损失。此过程迭代进行,直到损失收敛或达到训练次数,优化模型性能。反向传播实现了自动微分,使模型能适应训练数据并泛化到新数据。
316 2
|
机器学习/深度学习 人工智能 算法
反向传播算法
深度学习中,反向传播是神经网络训练的关键,它通过计算损失函数对参数的梯度来调整网络权重,减少预测与真实值的差距。该过程包括:1) 前向传播,输入数据通过网络;2) 计算损失,评估预测输出与实际值的偏差;3) 反向传播,利用链式法则计算所有参数的梯度;4) 参数更新,使用梯度下降法更新权重。这一循环不断迭代,提高模型性能。反向传播使得神经网络能适应复杂任务,推动了现代机器学习的发展。
|
机器学习/深度学习 算法 PyTorch
神经网络反向传播算法
神经网络中的反向传播算法是用于训练的关键步骤,通过计算损失函数梯度更新权重。它始于前向传播,即输入数据通过网络得出预测输出,接着计算预测与实际值的误差。反向传播利用链式法则从输出层开始逐层计算误差,更新每一层的权重和偏置。例如,一个包含隐藏层的网络,初始权重随机设定,通过反向传播计算损失函数梯度,如sigmoid激活函数的网络,调整权重以减小预测误差。在Python的PyTorch框架中,可以使用`nn.Linear`定义层,`optimizer`进行参数优化,通过`backward()`计算梯度,`step()`更新参数。
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
人工智能 算法 C++
c++算法学习笔记 (17) 质数
c++算法学习笔记 (17) 质数
|
人工智能 算法 C++
c++算法学习笔记 (18) 约数
c++算法学习笔记 (18) 约数

热门文章

最新文章