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

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

开发者学堂课程【神经网络概览及算法详解:误差反向传播算法-2】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/40/detail/930


误差反向传播算法-2

 

内容介绍:

一、 正向求导

二、 反向求导

三、 前向和反向的特点

四、 BP算法

 

一、 正向求导

image.png

X1=> h1=>o,输入X1 对于o的影响为:

image.png

image.png

image.png

整体上输入X1 , X2, b对输出o的影响为:48+0+0+72+0+72=192

//正向求导每一个路径都要变一遍,会有很有路径冗余。

 

二、反向求导

image.png

第一层,o= > h1,o= > h₂ :

image.png

第二层中间结果:h1  = >b,h1=> X2,h₂  = >b,h₂=> X1,h₂=> X2

image.png

第二层: o= >b,o= > X1,o= > X2

image.png

//求偏导的时候,把中间结果求出来,最后直接用中间值把最终结果表示出来,只求一遍。反向求导从o往前开始一层一层去传递影响。

 

三、前向和反向的特点

image.png

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

前向强调的是某个输入对某个神经元的影响

前向求导方式是“路径加和”,逐条路径求解

反向采用的是“合并同类路径,分阶段按层次求解”

前向会导致路径中的部分冗余遍历,反向不会

反向中某一阶段计算时可以直接使用上一阶段的结果

前向计算量比反向大很多

//整体来看,反向更容易计算,更清晰。正向会麻烦的多,计算量大,也没有中间结果可用。

 

四、BP算法

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

//最早的时候认为感应器不能解决线性不可分的问题,后来有了多层感应器之后,可以解决线性不可分的问题,看上去功能没有问题,但在实际训练过程中,因为计算量过大,传输过多,算起来太复杂的原因,只是理论上可行,直到BP算法出现为止。BP算法到现在几十年,还被用来训练人工神经网络(ANN)最常用、最有效的算法。

//来看一下BP算法,首先数据前向传播,训练集数据输入到输入层,经过隐蔽层,到达输出层,计算输出的结果。接下来有了实际输出之后,计算实际输出值和实际值的误差,从输出层向隐蔽层反向传播,直至输入层,这叫误差反向传播。在反向传播的过程中,根据误差,调整各种参数的值,反复迭代直至收,这是调整算法参数。

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