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

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

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

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


误差反向传播算法-3

 

内容介绍:

一、 损失函数优化:梯度下降法

二、 BP算法:梯度下降法

 

一、 损失函数优化:梯度下降法

确定了损失函数,就需要对损失函数进行优化,求最小值,以平方损失函数(QuadraticLF)为例:L(y,f(x))=(y -f(x))2

求L的梯度:

image.png

假设激活函数选用了sigmoid函数

image.png

求出此时L的梯度;

image.png

//如果激活函数选用了sigmoid函数sigmoid函数本身有一个特点,sigmoid函数本身乘以1减sigmoid函数形式非常优美。

 

二、 BP算法:梯度下降法

image.png

输入向量:X=(x1,x2…xn)T

隐层输出:Y=(y1,y2…ym)T

输出向量:O=(o1,o2…ol)T

期望输出:D=(d1,d2…dl)T

权重矩阵:V=(v1,v2…vm)T

W=(W1,W2…wl)T

//输入层到隐藏层的权重矩阵是v,隐藏层y到最终输入层o的权重矩阵是w,

向前传导的过程:

image.png

//向前传播的过程,从输入层到隐藏层,净输出是image.png求和,隐藏层的实际输出yj=f(netj ),j=1,2...,m作用到净输出上。

隐藏层到最终输出层,首先是净输出用w乘y,最终的输出oj=f(netk),k=1,2...,I函数作用一下。

误差反向传导过程:

image.png

//E等于2分之1,d减o的平方,d是期望输出,o是实际输出,把它带进去。d是已知的,o可以用

oj=f(netk),k=1,2...,I函数表示,netk等于w乘y带入,y可以用yj=f(netj ),j=1,2...,m表示,把y带进去,得到最终误差。

权重更新公式如下:

image.png

//对隐藏层到输出层的权重更新是,等于负η,η是学习率或者学习补偿或者更新补偿,E对w求偏导,E是误差,v等于E对v求偏导。

为了表示起来方便,记:

image.png

//netk是输出层的代数和就是w乘y,激活函数没作用的净输出。

有:

image.png

//E首先对netk  求偏导,netk 在对w求偏导,做一个符号的代换。

image.png

//E首先对netk  求偏导等于E对o求偏导,o在对netk  求偏导,带进去,E等于(d-o)2,对o求偏导,image.png求偏导以后成(dk-ok)。

image.pngimage.png

//同样再去求image.png同样的道理,也是先E对y求偏导,在y对netj 求偏导,y本身是netj的函数,所以image.png转换成image.png。在求前面部分,因为是对y求偏导,刚才应该是ok可以表示成y的函数就等于

image.png平方2乘上来和2分之1消掉,就是(dk-ok),在用image.png这项对y乘偏导,在做一次连续求导,首先这个函数本身求导数,在对应里面求和的一项再对y求导就等于wk就可以了,image.pngimage.png带进去就是

image.png

image.png

//更新权重的时候,直接算出Δwkj和Δvji。Δwkj中η是已知常量,dk是已知期望数据,ok是算出来的,yi是已知的。Δvji也一样,多了个xi,xi也是已知的。O,y都是数据传播中算出来的,才得到误差,才可以算Δw。Δv也一样,像权重w,y等等在数据正向传播中都可以算出来的值,在反向传播中求Δv。用Δw和Δv更新权重。

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