论文笔记: Deep Residual Learning for Image Recognition
目标:利用残差网络是的训练更加简单
面对的问题:
degradation Problem: 当添加的网络层次变多,精确度逐渐饱和,网络层次将趋近饱和。
Intuition:
文中的想法是将堆叠的感知器学习原有输出的残差。
具体表示是:假设H(x)\\mathcal{H}(\\mathbf{x})H(x)为表示某几层感知器的, xxx是输入。那么我们令F(x):=H(x)−x\\mathcal{F}(\\mathbf{x}):=\\mathcal{H}(\\mathbf{x})-\\mathbf{x}F(x):=H(x)−x
那么原来的输出将变成:F(x)+x=H(x)\\mathcal{F}(\\mathbf{x})+\\mathbf{x} =\\mathcal{H}(\\mathbf{x})F(x)+x=H(x), 让感知层用来学习F\\mathcal{F}F
尽管两者将同时迭代到需要的方程,但两者的难易程度不同。
我们假设后者比前者容易。
如图中所示,
y=F(x,{Wi})+x\\mathbf{y}=\\mathcal{F}\\left(\\mathbf{x},\\left\\{W_{i}\\right\\}\\right)+\\mathbf{x}y=F(x,{Wi})+x
其中F=W2σ(W1x)\\mathcal{F}=W_{2} \\sigma\\left(W_{1} \\mathbf{x}\\right)F=W2σ(W1x), σ\\sigmaσ便是ReLU
如果x\\mathbf{x}x and F\\mathcal{F}F不是相同的纬度,那遍让x\\mathbf{x}x乘以一个矩阵WsW_sWs:
y=F(x,{Wi})+Wsx\\mathbf{y}=\\mathcal{F}\\left(\\mathbf{x},\\left\\{W_{i}\\right\\}\\right)+W_{s} \\mathbf{x}y=F(x,{Wi})+Wsx
即使纬度相同,也可以乘以一个方阵。但是作者认为单位矩阵就足够解决degradation problem.
关于F\\mathcal{F}F的选取,作者认为可以是各种样子,可以是很多层,但如果是只有一层,就与线性层没有差别,并不能看出什么优势。
网络结构
普通结构
Baseline 由VCG网络而来。大部分的过滤器由3×3构成,而且都服从以下两条规则:
(i) 如果输出的特征图相同,那么过滤器数量不变
(ii)如果输出的特征图纬度减半,那么过滤器数量翻倍
残差网络
在普通结构上使用残差结构。如果输入输出纬度相同,那我们直接使用单位矩阵。
y=F(x,{Wi})+x\\mathbf{y}=\\mathcal{F}\\left(\\mathbf{x},\\left\\{W_{i}\\right\\}\\right)+\\mathbf{x}y=F(x,{Wi})+x
如果维度(图中虚线部分)缩减,将有两种原则:
(A)捷径的部分(x)仍然使用单位矩阵。缺失的部分添加0来解决,这种方式没有增加多余的参数
(B)用(2)式中的方式,将x\\mathbf{x}x映射到相同纬度上来
对于两种方法,如果残差网络经过了纬度变换的时候,他们的步长为2(也就是说每种维度的特征图各取一层)
最后的实验证明两种方式(A)(B)并没有太多表现上的区别