VGG 16前向传播与反向传播公式推导

VGG 16 公式推导

VGG-16共有13层卷积层,5层池化层和3层全连接层,对前两层全连接网络采用dropout和L2正则化防止过拟合,采用批量梯度下降+Momentum以交叉熵为目标损失进行训练优化。
在这里插入图片描述

  • n l n^l nl—第 l l l层网络节点(卷积核)数目;

  • k p , q l k_{p,q}^l kp,ql—第 l l l p p p通道与第 l − 1 l-1 l1 q q q通道对应卷积核;

  • b p l b_p^l bpl—第 l l l p p p节点(通道)的偏置;

  • W l W^l Wl—第 l l l层全连接网络的权重;

  • z l z^l zl—第 l l l层未经过激活函数的前向输入;

  • a l a^l al—第 l l l层经过激活函数后的前向输出;

前向传递

l l l层卷积操作公式:
z p l ( i , j ) = ∑ q = 1 n l − 1 ∑ u = − 1 1 ∑ v = − 1 1 a q l − 1 ( i − u , j − v ) k p , q l ( u , v ) + b p l a p l ( i , j ) = R e L U ( z p l ( i , j ) ) z_{p}^{l}(i,j)=\sum\limits_{q=1}^{ { {n}^{l-1}}}{\sum\limits_{u=-1}^{1}{\sum\limits_{v=-1}^{1}{a_{q}^{l-1}(i-u,j-v)k_{p,q}^{l}(u,v)}}}+b_{p}^{l} \\ a_{p}^{l}(i,j)=ReLU\left( z_{p}^{l}(i,j) \right) zpl(i,j)=q=1nl1u=11v=11aql1(iu,jv)kp,ql(u,v)+bplapl(i,j)=ReLU(zpl(i,j))
l l l层最大池化公式:
z p l ( i , j ) = max ⁡ ( a p l − 1 ( 2 i − u , 2 j − v ) ) u , v ∈ { 0 , 1 } z_{p}^{l}(i,j)=\max \left( a_{p}^{l-1}(2i-u,2j-v) \right)u,v\in \left\{ 0,1 \right\} zpl(i,j)=max(apl1(2iu,2jv))u,v{ 0,1}
经过前18层的卷积核池化操作后可获得 7 × 7 × 512 7×7×512 7×7×512大小的特征图,需要将其转化为一个25,088维的向量以便作为全连接层的输入,该过程输出为 a 18 a^{18} a18:
a 18 = F ( { z p 18 } p = 1 , 2 , ⋯ , 512 ) a^{18}=F \left(\left\{z_p^{18}\right\}_{p=1,2,⋯,512}\right) a18=F({ zp18}p=1,2,,512)
全连接网络的前两层采用dropout,设为 d d d,第 l l l层节点的连通可用 r l r^l rl来表示,其服从伯努利分布:
r l ∼ B e r n o u l l i ( d ) { {r}^{l}}\sim Bernoulli(d) rlBernoulli(d)
前向传播为:
a ~ l = r l ⊙ a l z l + 1 = W l + 1 a ~ l + b l + 1 a l + 1 = R e L U ( z l + 1 ) { { {\tilde{a}}}^{l}}={ {r}^{l}}\odot { {a}^{l}} \\ { {z}^{l+1}}={ {W}^{l+1}}{ { {\tilde{a}}}^{l}}+{ {b}^{l+1}} \\ { {a}^{l+1}}=ReLU({ {z}^{l+1}}) a~l=rlalzl+1=Wl+1a~l+bl+1al+1=ReLU(zl+1)
其中,⨀为Hadmard积,即矩阵对应元素相乘。

输出层的激活函数为softmax:
a i L = s o f t m a x ( z i L ) = e z i L ∑ k = 1 n L e z k L a_{i}^{L}=softmax(z_{i}^{L})=\frac{ { {e}^{z_{i}^{L}}}}{\sum\limits_{k=1}^{ { {n}^{L}}}{ { {e}^{z_{k}^{L}}}}} aiL=softmax(ziL)=k=1nLezkLeziL
采用交叉熵损失作为损失函数:
L = − ∑ i = 1 n L y i log ⁡ a i L L=-\sum\limits_{i=1}^{ { {n}^{L}}}{ { {y}_{i}}\log a_{i}^{L}} L=i=1nLyilogaiL

反向传播

引入中间变量 δ l \delta^l δl,为第 l l l层的误差,表示损失函数对第l层前向输入 z l z^l zl 的梯度,即为 ∂ L ∂ z l \frac{\partial{L}}{\partial{z^l}} zlL

Softmax函数偏导数计算公式为:

i = j i=j i=j时,
∂ ∂ z j ( e z j ∑ k = 1 n e z k ) = e z j ∑ k = 1 n e z k − ( e z j ) 2 ( ∑ k = 1 n e z k ) 2 = a j ( 1 − a j ) \frac{\partial }{\partial { {z}_{j}}}\left( \frac{ { {e}^{ { {z}_{j}}}}}{\sum\nolimits_{k=1}^{n}{ { {e}^{ { {z}_{k}}}}}} \right)=\frac{ { {e}^{ { {z}_{j}}}}\sum\nolimits_{k=1}^{n}{ { {e}^{ { {z}_{k}}}}}-{ {\left( { {e}^{ { {z}_{j}}}} \right)}^{2}}}{ { {\left( \sum\nolimits_{k=1}^{n}{ { {e}^{ { {z}_{k}}}}} \right)}^{2}}} ={ {a}_{j}}\left( 1-{ {a}_{j}} \right) zj(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值