应用深度学习(二)

记录一下反向传播的计算与推导,了解一下loss.backward()里面做的是什么,怎么完成的。

相关定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
经过网络层的计算后:
z l = W l a l − 1 + b l z^l=W^la^{l-1}+b^l zl=Wlal1+bl
σ \sigma σ 定义为激活函数,所以有公式:
a l = σ ( W l a l − 1 + b l ) a^l=\sigma(W^la^{l-1}+b^l) al=σ(Wlal1+bl)

函数计算在这里插入图片描述

向量表示

在这里插入图片描述所以参数中,最主要的是计算 Δ θ C ( θ i ) \Delta_{\theta}C(\theta^i) ΔθC(θi)的值。

链式法则

在这里插入图片描述

公式计算1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可得如下公式:
∂ z i l ∂ w i j l = { a j l − 1 , l > 1 x j , l = 1 \frac{\partial z_i^l}{\partial w_{ij}^l} = \begin{cases} a_j^{l-1}&,l>1 \\ x_j&, l = 1 \end{cases} wijlzil={ajl1xj,l>1,l=1
a j l − 1 a_j^{l-1} ajl1这样的值需要在前向传播(feedward)中进行计算

公式计算2

在这里插入图片描述

在这里插入图片描述
计算最初的 δ L \delta^L δL:
δ L = σ ′ ( z L ) ⊙ Δ C ( y ) \delta^L=\sigma'(z^L)\odot\Delta C(y) δL=σ(zL)ΔC(y)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
得到递推关系式:
δ i l = σ ′ ( z i ) ∑ k w k i l + 1 δ k i + 1 \delta_i^l=\sigma'(z_i)\sum_kw_{ki}^{l+1}\delta_k^{i+1} δil=σ(zi)kwkil+1δki+1
在这里插入图片描述
矩阵表现形式:
δ l = σ ′ ( z l ) ⊙ ( W l + 1 ) T δ l + 1 \delta^l=\sigma'(z^l)\odot(W^{l+1})^T\delta^{l+1} δl=σ(zl)(Wl+1)Tδl+1

结论

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
所以前向和反向都需要计算,那么是不是意味着会产生不少的中间变量?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值