神经网络反向传播理解

一 、反向传播的作用

训练神经网络的目标是 优化代价函数,使得代价函数找到一个 全局最小值或者局部最小值。不管使用何种梯度下降算法(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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值