6.2-反向传播

发布于:2023-01-16 ⋅ 阅读:(415) ⋅ 点赞:(0)

一、反向传播(Backpropagation)

  • 在之前的线性回归和逻辑回归中,通常我们做梯度下降的参数都是很少的。但对于神经网络而言,参数通常是百万数量级的,这就导致用常规方法来做梯度下降是不可靠的。需要用到反向传播的演算法来提高计算效率
  • 链式法则(Chain Rule):如右图,就是微积分的链式法则

image-20220814091934100image-20220814092508907

image-20220814094544390image-20220814094605815

1.1 前向计算(Forward pass)

  • ∂ z ∂ w 1 = x 1 \frac{\partial z}{\partial w_1}=x_1 w1z=x1:这是可以秒算的

image-20220814094726306image-20220814094743182

1.2 后向计算(Backward pass)

  • 下面4图拆解了 ∂ C ∂ z \frac{\partial C}{\partial z} zC,并假设我们已经知道了 ∂ C ∂ z ′ 和 ∂ C ∂ z ′ ′ \frac{\partial C}{\partial z'}和\frac{\partial C}{\partial z''} zCz′′C,将其化简成了最后一项。

image-20220814094758217image-20220814094825634

image-20220814094841105image-20220814094852903

image-20220814100237400

1.3 计算 ∂ C ∂ z ′ \frac{\partial C}{\partial z'} zC ∂ C ∂ z ′ ′ \frac{\partial C}{\partial z''} z′′C

  • 假设一:假设已经到了输出层(Output Layer),那么 ∂ y 1 ∂ z ′ \frac{\partial y_1}{\partial z'} zy1就等于激活函数的一次微分, ∂ C ∂ y 1 \frac{\partial C}{\partial y_1} y1C就等于损失函数的一次微分。
  • 假设二:假设还没有到达输出层,那么就一直重复后向计算(Backward pass)的过程,直到到达输出层。

image-20220814100858643image-20220814100919685

image-20220814100940916image-20220814101005694

image-20220814101036048
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到