CV第九课 ResNet

ResNet

 

 

 

其他不带残差的网络(plain-CNN)中:

  56层的网络比20层的网络,无论是trainning set 还是test set都要表现差

问题: 1) 优化问题,梯度在传播过程中出现梯度消失,或者梯度爆炸  2) weight_matrix_decay

      1. Batch Normalization,可以解决在forward过程中的梯度消失

   2. Residual block 提供的 skip connection,在backpropagation中直接将梯度跨层传递,这可以使得即使有几百层的模型也可以收敛的更快。

    例如在t时刻:

    非残差网络G(1)=1.1, 

    残差网络H(1)=1.1, H(1)=F(1)+1, F(1)=0.1

    在t+1时刻:

    非残差网络G’(1)=1.2, 

    残差网络H’(1)=1.2, H’(1)=F’(1)+1, F’(1)=0.2

    这时候我们看看:

    非残差网络G的梯度  = (1.2-1.1)/1.1 = 1/11

    而残差网络F的梯度 = (0.2-0.1)/0.1 = 1
    ————————————————
    版权声明:本文为CSDN博主「ylyyyy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_40240670/article/details/85685095

    3. 

    1)消除了输入和权重零奇点

    2)打破对称性

    3)打破线性依赖性

    https://www.jianshu.com/p/a2812cf3ddad

 

 

 

 

解决方法:

  1.ResNet采用残差块的堆叠,每个残差块有两个3*3*depth的ConvReLu组成

  2. 周期性的double filter的数量(64->128,......),并将stride变成2

  3. 除了最后output的1000FC,没有全连接层

 

 

 

 

另:

  1. 在深层ResNet-50+中,我们也用bottleneck to improve efficientcy

 

 

细节:

  1. 每层 Conv之后都有ReLu与BN

  2. Xavier/2 initialization 

  3. SGC + Momentum 

  4. learning rate decay 

  5. mini-batch size 256

  6.weight decay 1e-5

  7. no dropout

 

posted @ 2020-05-28 18:38  ChevisZhang  阅读(242)  评论(0编辑  收藏  举报