文章目录
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 l−1层 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=1∑nl−1u=−1∑1v=−1∑1aql−1(i−u,j−v)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(apl−1(2i−u,2j−v))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) rl∼Bernoulli(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=rl⊙alzl+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=1∑nLezkLeziL
采用交叉熵损失作为损失函数:
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=1∑nLyilogaiL
反向传播
引入中间变量 δ l \delta^l δl,为第 l l l层的误差,表示损失函数对第l层前向输入 z l z^l zl 的梯度,即为 ∂ L ∂ z l \frac{\partial{L}}{\partial{z^l}} ∂zl∂L
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∂(∑

2839

被折叠的 条评论
为什么被折叠?



