1. 残差指的是什么?
其中ResNet提出了两种mapping:一种是identity mapping,指的就是图1中”弯弯的曲线”,
另一种residual mapping,指的就是除了”弯弯的曲线“那部分,所以最后的输出是 y=F(x)+xy=F(x)+x
identity mapping顾名思义,就是指本身,也就是公式中的

x
,而residual mapping指的是“差”,也就是yxy−x,所以残差指的就是F(x)F(x)部分。
ResNet笔记

论文中残差模块定义为:

y=F(x,wi)+x

其中,x代表输入,y代表输出,F(x,wi)代表需要学习的残差mapping。像上图有两层网络,用F=W2σ(W1x)表示,这里σ表示ReLU**层。这里Wx是卷积操作,是线性的,ReLU是非线性的。


2.为什么ResNet可以解决“随着网络加深,准确率不下降”的问题?
理论上,对于“随着网络加深,准确率下降”的问题,Resnet提供了两种选择方式,也就是identity mapping和residual mapping。如果网络已经到达最优,继续加深网络,residual mapping将被push为0(残差函数比非线性函数更容易逼近0),只剩下identity mapping,它没有引入额外的参数和计算复杂度,这样理论上网络一直处于最优状态了,网络的性能也就不会随着深度增加而降低了。


3.相关处理
用ImageNet中的图片,随机resize[256,480]中的一个大小(multi-scale),然后crop成224x224. 减去均值。应用论文:A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.中的标准颜色augment。在每个CONV后,activation前加上BN层。应用论文:K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In ICCV, 2015.中的初始化方法。mini-batch=256, 用SGD。weight decay 0.0001,momentum=0.9 初始化学习率为0.1,遇到error plateaus就除以10。共迭代600,000次。不用dropout。

3.两种ResNet设计
这两种结构分别针对ResNet34(左图)和ResNet50/101/152(右图),一般称整个结构为一个”building block“。其中右图又称为”bottleneck design”,目的一目了然,就是为了降低参数的数目和减少训练时间,第一个1x1的卷积把256维channel降到64维,然后在最后通过1x1卷积恢复,整体上用的参数数目:1x1x256x64 + 3x3x64x64 + 1x1x64x256 = 69632,而不使用bottleneck的话就是两个3x3x256的卷积,参数数目: 3x3x256x256x2 = 1179648,差了16.94倍。
对于常规ResNet,可以用于34层或者更少的网络中,对于Bottleneck Design的ResNet通常用于更深的如101这样的网络中,目的是减少计算和参数量(实用目的)。ResNet笔记

4.ResNet之Building block
ResNet笔记
如图所示为截选自ResNet-34的部分Buildingblock,论文作者对于identiy shortcut和projection shortcut的两种options的描述,让我不太理解具体过程。

以下是我对这个问题的理解:

首先,为了方便,我将buildingblock区分为两类:

a.  第一类Building block(BB1)如上图中实线部分的building block所示,特点为输入输出的维度一致,特征图个数也一致;

b.      第二类Building block(BB2)如上图虚线部分的building block所示,特点为输出是输入维度的1/2,输出特征图个数是输入特征图个数的2倍(即执行了/2操作)。

区分了两类Building block后,仔细读一下论文:

1. “The identity shortcuts (Eqn.(1)) can be directly used when theinput and output are of the same dimensions (solid line shortcuts in Fig. 3).”

对于BB1,矩阵直接相加?输入都经过两次3×3的卷积操作,维度不匹配,我理解的中间过程应该如下所示:
ResNet笔记
2. “When the dimensions increase (dotted line shortcuts in Fig. 3),we consider two options: (A) The shortcut still performs identity mapping, withextra zero entries padded for increasing dimensions. This option introduces noextra parameter; (B) The projection shortcut in Eqn.(2) is used to matchdimensions (done by 1×1 convolutions). For both options, when the shortcuts goacross feature maps of two sizes, they are performed with a stride of 2.”

这段解释了如何解决维度不匹配问题
对于BB2,作者提供了两种选择:(A)如BB1的处理一样,0填充技术,只是要填充好多0啊,这也是为什么得到实验4.1中的ResidualNetworks部分的“B is slightly better than A. We argue that this is because thezero-padded dimensions in A indeed have no residual learning.”的结论(P6右侧中间)。(B)采用公式(2)的projectionshortcut,让Ws与输入做步长为2的1×1的卷积操作,这样,输入和输出就具有相同的维数;
ResNet笔记

过程如下图所示:

ResNet笔记

相关文章:

  • 2021-12-25
  • 2021-04-05
  • 2021-09-25
  • 2021-11-24
  • 2021-10-15
猜你喜欢
  • 2021-07-14
  • 2021-09-28
  • 2021-05-14
  • 2021-11-18
相关资源
相似解决方案