Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

前言

这是一些对于论文《Rethinking the Inception Architecture for Computer Vision》的简单的读后总结,文章下载地址奉上:Rethinking the Inception Architecture for Computer Vision
这篇文章是谷歌公司的研究人员所写的论文, 第一作者是Christian Szegedy,其余作者分别是Vincent Vanhoucke、Sergey Ioffe和Jonathon Shlens,其是2014年ImageNet竞赛冠军网络GoogLeNet的改进版。该文章主要是改进了Inception模块,降低了计算量的同时增加了模型的性能。
废话不多说,直接进入主题。

文章主要内容

在该文章主要内容是:

  1. 更详细的对卷积的分解进行了解释和说明,并且提出了向量化的卷积;
  2. 使用了特殊的正则化;
  3. 设计了升级版的Inception模型;
  4. 分析了低分辨率输入的性能并表示即使是低分辨率的输入也能拥有不输于高分辨率的结果;
  5. 辅助分类器。

更详细的对卷积的分解进行了解释和说明,并且提出了向量化的卷积

为了减少计算量,不仅从7×77\times75×55\times5的卷积降级成了多个3×33\times31×11\times1卷积,还针对3×33\times3再进一步的进行分解,将其分解为向量化的3×13\times11×31\times3的卷积,在保证模型性能的前提下进一步降低了算法的参数数量。
例如

  • 5×55\times5的卷积的参数数量是3×33\times3的卷积的25/9=2.7825/9=2.78倍,通常使用两个3×33\times3的卷积即可代替5×55\times5的卷积,此时5×55\times5的卷积的参数数量是两个3×33\times3的卷积的25/(9×2)=1.3925/(9\times2)=1.39倍;
  • 3×33\times3的卷积的参数数量是3×13\times11×31\times3的卷积的9/3=39/3=3倍,通常使用一个3×13\times1和一个1×31\times3的卷积即可代替3×33\times3的卷积,此时3×33\times3的卷积的参数数量是一个3×13\times1加一个1×31\times3的卷积的9/(3×2)=1.59/(3\times2)=1.5倍。

使用了特殊的正则化

通过光滑化标签来实现模型的正则化,该方法是基于交叉熵的,该文章提出了一种鼓励模型不那么自信的机制。如果目标是最大限度地提高训练标签的对数似然性,则可能不需要这样做,它对模型进行了正则化,使其具有更强的适应性。这个方法非常简单,考虑与训练样本x无关标签u(k){u}(k)上的分布和光滑化参数ϵ\epsilon。对于一个样本的真实标签y,将标签分布q(kx)=δk,yq(k|x)=\delta_{k,y}替换为
q(kx)=(1ϵ)δk,y+ϵu(k) q'(k|x)=(1-\epsilon)\delta_{k,y}+\epsilon{u}(k)
上式是原始真实分布q(kx)q(k|x)和固定分布u(k){u}(k)的一个组合,权重分别是1ϵ1-\epsilonϵ\epsilon。该实验中取u(k)=1/K{u}(k)=1/K,即
q(kx)=(1ϵ)δk,y+ϵK q'(k|x)=(1-\epsilon)\delta_{k,y}+\dfrac\epsilon K
该文章将这种真实标签分布的变化称作标签光滑正则化(label-smoothing regularization, LSR)。

通过考虑交叉熵,可以得到对LSR的另一种解释
H(qp)=k=1Klogp(k)q(k)=(1ϵ)H(qp)+ϵH(up) H(q'|p)=-\sum\limits_{k=1}^K\log{p}(k)q'(k)=(1-\epsilon)H(q|p)+\epsilon H(u|p)
因此,LSR等价于用一对交叉熵损失H(q,p)H(q,p)H(u,p)H(u,p)代替单个交叉熵损失H(q,p)H(q,p)。第二损失惩罚预测的标签分布p与先前u的偏差,相对权重为ϵ1ϵ\dfrac {\epsilon}{1-\epsilon}。注意,由于H(u,p)=DKL(up)+H(U)H(u,p)=D_{KL}(u||p)+H(U)H(u)H(u)是固定的,这种偏差可以等价地被KL散度捕获。当u是均匀分布时,H(u,p)H(u,p)是衡量预测分布p与一致分布有多大不同的一种度量,它也可以用负熵H(p)-H(p)来度量(但不是等价的);该文章作者还没有试验过这种方法。

在ImageNet实验中有K=1000K=1000个类,所以u(k)=1/1000u(k)=1/1000ϵ=0.1\epsilon=0.1。对ILSVRC 2012,可以同时绝对的提升top-1误差和top-5误差0.2%。

设计了升级版的Inception模型

首先是原始的Inception模型的结构图:
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结
接下来是升级版的Inception模型的结构图,其将5×55\times5的卷积替换为了两个3×33\times3的卷积(对应后面网络结构表中的figure 5):
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结
随后是总结出来的广义的Inception模型的结构图(对应后面网络结构表中的figure 6):
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

上述模型细化到该文章则变为(对应后面网络结构表中的figure 7):
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

网络的结构变为:
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

分析了低分辨率输入的性能并表示即使是低分辨率的输入也能拥有不输于高分辨率的结果

对于不同分辨率的输入使用不同的初始层,例如

  • 对于299×299299\times299的输入,第一层后使用最大池化,步长为2;
  • 对于151×151151\times151的输入,第一层后使用最大池化,步长为1;
  • 对于151×151151\times151的输入,第一层后不使用池化,步长为1。

它们的计算成本几乎一样,低分辨率输入的模型收敛稍慢,最终的性能差异很小:
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

辅助分类器

使用如下辅助分类器使得准确率提高了0.4%0.4\%:
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

实验结果

实验结果图如下:
Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结
最后一行使用了本文提出的所有的策略,也被称为Inception-v3。

下图的top-5和top-1应该是写反了:

Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

Inception-v2和Inception-v3来源论文《Rethinking the Inception Architecture for Computer Vision》读后总结

可以看见Inception-v3的提升相较于原始的GoogLeNet非常大,特别是Top-5错误率几乎降为GoogLeNet的一半。