【22-23 春学期】AI作业6-误差反向传播

文章介绍了梯度下降的基本原理和三种变体,以及反向传播算法如何在深度学习中计算参数梯度以优化网络性能。计算图作为一种数据结构,被用于表示和优化神经网络的计算过程。文中还展示了使用Numpy和PyTorch实现这些概念的例子。
摘要由CSDN通过智能技术生成

1.梯度下降

梯度下降(Gradient Descent,GD)是一种用于优化和训练机器学习模型的迭代算法。其基本思想是通过多次迭代来更新模型的参数,使得目标函数能够达到最优或接近最优状态。

在训练过程中,我们会计算参数的梯度,并使用负梯度方向(即目标函数的下降方向)来更新参数,以使得损失函数能够最小化。所谓负梯度方向,指的是目标函数相对于各个参数的偏导数乘以负数。

梯度下降算法主要分为三种类型:批量梯度下降(Batch Gradient Descent), 随机梯度下降(Stochastic Gradient Descent)和小批量梯度下降(Mini-batch Gradient Descent)。

2.反向传播

反向传播(Backpropagation,BP)是一种用于训练深度学习模型的算法,它可以有效计算神经网络中每个参数对误差的贡献,并通过梯度下降等优化算法调整网络中每个参数的值。反向传播算法的关键在于通过链式法则计算出每层参数的梯度。

具体地,反向传播算法从神经网络的输出层开始计算,计算误差函数对最后一层每个神经元的输出值的偏导数,然后计算其他层的参数梯度,一直计算到输入层。在计算参数更新梯度的过程中,会一直利用链式法则将误差反向传递回每一层,通过这种方式计算出每个参数对误差的影响,然后使用梯度下降等优化算法更新权重和偏置。

总之,反向传播算法是一种用于优化深度神经网络参数的重要算法,通过计算参数梯度实现优化,从而减少网络的训练误差,并提高深度神经网络的预测性能。

3.计算图

计算图是一种数据结构,用于表示计算过程。具体来说,计算图是一组节点和边组成的图,其中节点表示计算单元(如矩阵乘法、加法等),边表示数据流动(即数据在计算单元之间的传递)。

在深度学习中,计算图用于表示神经网络的计算过程,可以帮助我们更好地理解和调试网络。在 TensorFlow、PyTorch 等深度学习框架中都使用了计算图,可以通过它来构建、训练和评估神经网络。

使用计算图的优势在于,它可以在运行时动态地构建和修改计算过程,并且可以利用硬件加速(如 GPU)来提高计算效率。

总结:计算图是一种数据结构,用于表示计算过程,在深度学习中被广泛使用,帮助我们更好地理解和调试网络。

4.使用Numpy编程实现例题

输入值:x1, x2; 0.5 0.3 输出值:y1, y2: 0.23 -0.07
=第0轮=
正向传播: 0.47695 0.5287
损失函数: 0.21
=第1轮=
正向传播: 0.39688 0.3339
损失函数: 0.1
=第2轮=
正向传播: 0.35292 0.24607
损失函数: 0.06
=第3轮=
正向传播: 0.32545 0.20128
损失函数: 0.04
=第4轮=
正向传播: 0.30671 0.17356
损失函数: 0.03
=第5轮=
正向传播: 0.29314 0.15435
损失函数: 0.03
=第6轮=
正向传播: 0.28291 0.14005
损失函数: 0.02
=第7轮=
正向传播: 0.27495 0.12888
损失函数: 0.02
=第8轮=
正向传播: 0.26861 0.11985
损失函数: 0.02
=第9轮=
正向传播: 0.26348 0.11236
损失函数: 0.02
在这里插入图片描述

5.使用PyTorch的Backward()编程实现例题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值