神经网络反向传播理解

一 、反向传播的作用

训练神经网络的目标是 优化代价函数,使得代价函数找到一个 全局最小值或者局部最小值。不管使用何种梯度下降算法(BGD, SGD ,Adam),都需要先算出各个参数的梯度。 反向传播的作用: 就是快速算出所有参数的偏导数。

二、 求导数的方式

求导数通常可以分为两类,一类是直接用定义,第二类是公式法(包括链式法)。
定义法:
在这里插入图片描述
定义法求导数存在问题: 当参数较多时(如:100万),计算一个样本所有的参数就需要计算 100万次 C(w+&) , 和一次 C(w) ,计算量太大。所以导数定义法行不通。
若直接将 公式展开求导又太复杂,所以选择用 链式求导法则 求所有参数的偏导。

三 、反向传播的原理

反向传播主要依赖于链式法则, y是复合函数:
在这里插入图片描述
反向传播正是用到了 链式法则
反向传播的优点在于: 尽力用一次前向传播和一次反向传播,就同时计算出所有参数的偏导数。 反向传播计算量和前向传播差不多,并且有效利用前向传播过程中的计算结果,前向传播的主要计算量 在 权重矩阵和input vector的乘法计算, 反向传播则主要是 矩阵和input vector 的转置的乘法计算。例子如下:

在这里插入图片描述
前向传播 计算出 q =W.*x , 和 f(q) = q12 + q22+…+qn**2, 反向传播先计算 f 对q 的偏导, 再计算 q 对W的偏导,得到f 对W的梯度。 利用了 前向传播计算的q。

四 用计算图解释几种求导方式

在这里插入图片描述
在这里插入图片描述
总结一下:路径上所有边相乘,所有路径相加。
一般情形如下:
在这里插入图片描述
在这里插入图片描述
两种求导模式:前向模式求导( forward-mode differentiation) 反向模式求导(reverse-mode differentiation)

前向模式:先求X对Y的影响,再求Y对Z的影响
在这里插入图片描述
后向模式: 先求Y对Z的影响,再求X对Y的影响。
在这里插入图片描述
这样看起来 前向模式求导和反向模式求导,除了求导顺序不同,好像没什么不同,那为什么要用反向模式求导,而不用前向模式求导呢?
求导顺序不同, 求导复杂度也不同
举例说明:
如果用前向求导模式:关于b向前求导一次
在这里插入图片描述
反向模式:
在这里插入图片描述
前向模式,一次只能求出 e对b的偏导, 而反向模式 可以同时 求出 e 对a 和b的偏导。使用前向模式求偏导,需要多次才能求出所有参数的偏导,而反向传播一次就够了

  • 11
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
神经网络反向传播(Backpropagation)是一种常用的训练神经网络的算法,其主要思想是通过计算神经网络输出误差,并将误差传递回神经网络中进行参数更新,从而不断优化神经网络的性能。 反向传播算法的主要过程如下: 1. 前向传播:将输入数据送入神经网络,按照从输入层到输出层的顺序依次计算每个神经元的输出值。 2. 计算误差:将神经网络输出的结果与真实标签值进行比较,计算输出误差。 3. 反向传播:将输出误差反向传播神经网络中,计算每个神经元的误差贡献,然后根据误差贡献更新神经元的参数。 4. 重复迭代:不断重复以上步骤,直到神经网络的性能达到预期要求为止。 具体来说,反向传播算法是通过链式法则(Chain Rule)实现误差反向传播的。在网络的每一层中,根据链式法则可以将误差贡献分解为上一层误差贡献和当前层神经元的激活函数对权重的导数乘积的和。然后,根据误差贡献和权重的导数,可以更新当前层的神经元权重和偏置值,从而不断优化神经网络的性能。 理解反向传播算法需要掌握数学知识,包括微积分、矩阵求导、链式法则等。同时,还需要对神经网络模型的结构和参数有一定的了解。通过不断练习和实践,可以逐渐掌握反向传播算法的原理和实现方法,并应用到实际的神经网络模型中进行训练和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值