[paper] Inception v2/v3
Inception v2/v3
论文题目 Rethinking the Inception Architecture for Computer Vision
Abstract
模型的尺寸的增加和计算能力的提升让CNN可以解决很多问题
然而当模型规模扩大时必须依赖于硬件计算能力的提升而手机等小型设备依然面临巨大的挑战难以实现这一目标。
这篇文章的目的就是减少计算代价
Introduction
从2014年开始,网络性能通过增加尺寸(宽度或者深度)有了很大的提升。
VGG架构虽然在结构上较为简单易懂,但其计算成本却相对较高;相比之下,则显示出较低的计算开销优势。具体而言,在参数规模方面表现更为突出的是AlexNet模型:它拥有6,000万个参数量;相比之下,则仅有5,000,000个参数;值得注意的是,在这一对比中发现的是:VGG网络所包含的参数数量仅仅是AlexNet的三倍左右
Inception不仅其计算成本较低,并且其结果表现更为出色。从而使得Inception在大数据场景中的应用成为可能。
目前Inception的局限性在于其架构过于复杂, 导致难以实现对网络的具体修改. 在General Design Principles部分将详细阐述如何进行网络修改以及具体的修改标准和要求.
General Design Principles
规则1: 应避免在特征描述中产生空间维度上的压缩瓶颈(representational bottleneck)。具体而言,在CNN架构中某一层次的池化操作可能导致大量特征信息丢失。尽管池化操作是CNN架构中不可或缺的一部分,但为了维持模型性能,在设计时可以通过优化算法或引入额外机制来尽量减少池化带来的信息损失。
随着所提取特征数量的增长(即特征数目增多),系统的收敛速度也会显著提升)。当模型中各个特征彼此之间相互独立时(即各子空间之间互不干扰),整个信息处理过程能够实现更加高效的分解与整合。具体而言,在这种情况下(即各子空间间的关联性较低),虽然单个子空间内部可能存在较高的关联性(即同一子空间内的不同维度具有较强的协同作用),但通过将高度相关的特征聚合成一个子空间(correlated features tend to co-adapt),系统能够更加高效地完成信息处理任务。这一现象正是Hebbin学习法则的核心体现:只有那些频繁同时被激活的学习单元才会形成稳固的连接(connections)。从另一个角度来看(Rule 2),结合Rule 1的做法能够进一步提高系统的收敛效率;然而需要注意的是,在池化操作中所导致的信息丢失问题仍然存在(尽管如此,在池化操作中所导致的信息丢失问题仍然存在)。针对这一局限性(information loss issue induced by pooling operations still exists), 必须借助其他技术手段才能有效缓解这一挑战
规则三: 能够有效降低计算复杂度的方法是允许模型在不显著影响性能的情况下实现参数数量的大幅减少。Inception-V1网络通过采用1\times 1卷积操作将特征图的通道数量进行缩减,并在此基础上提取高阶特征这一技术手段得以实现这一特性。不同通道之间的信息具有一定的关联性,在进行通道缩减操作时可以通过这种关联性实现对原始信息的有效还原或近似恢复。
规则4: 保持网络宽度与深度的比例平衡。为了提高网络性能,应以相同比例增加网络宽度和深度
Factorizing Convolutions with Large Filter Size
这一节主要讲述了如何分解大Filter
Factorization into smaller convolutions 将大卷积分解成小卷积
一般来说,大量规模的卷积计算开销更高。例如,在实际应用中采用5 \times 5大小的卷积核所需的计算开销是3 \times 3大小卷积核所需开销的大约2.78倍。
在CNN的早期阶段使用较大的卷积核能够提取出浅层特征,在此过程中计算量也会相应增大。因此,在权衡之下选择采用多个较小尺寸的卷积层进行串联处理以取代单个较大尺寸的卷积核。
举个例子来说吧!把一个5 \times 5的卷积核拆分成两个3 \times 3的卷积核连接起来使用。如图所示,在这种情况下,这两个3 \times 3的卷积核正好覆盖了整个5 \times 5区域。计算一下的话,在这种设计下所需的计算量相当于之前的比例为\frac{18}{25}

但是随之有两个问题
- 这种转换是否会导致expressiveness degradation(表现力的降低)
- 如果我们的核心任务是对计算的线性部分进行分解,则是否有必要在第一个3×3卷积核之后引入非线性激活层
A1: The text states that since we are developing a vision network, it becomes reasonable to leverage translation invariance again and replace the fully connected component with a two-layer convolutional architecture.
A2: 我们进行了一个实验

该蓝色曲线采用以下方法:将大卷积核分解为多个小卷积核,并在每组卷积操作后均附加一个ReLU激活层;而该红色曲线采用的方法则是:将大卷积核分解为多个小卷积核,并对每组单独应用ReLU激活层。实验结果显示,在蓝色曲线上的测试集准确率为76.2%,而在红色曲线上则达到了77.2%的测试集准确率
因此将大卷积分解为小卷积,并在两个卷积核之后添加Relu层的效果更好。
The process of spatial factorization can be viewed as the decomposition into asymmetric convolutions.
在上一节中, 我们将其大卷积核分割为两个3\times 3的小卷积核。那么针对此情况下的3\times 3小卷积核是否能够进一步细分呢?
如图所示,在处理一个3\times 3尺寸的卷积核时,我们首先应用一个3\times 1尺寸的卷积层进行滤波操作,随后再使用一个1\times 3尺寸的卷积层完成水平方向上的处理.这种方法可以使计算复杂度降低至约70%(原值的\frac{1}{3})

从理论上讲,我们可以通过将任意一个n \times n形状的卷积核转换为n \times 1形状后跟上1 \times n形状来实现对n \times n卷积的效果。然而,在实践中这种方法在CNN初期表现不佳,在网络中后期则表现出更好的效果(其中特征图的空间尺寸通常控制在12到20像素之间)。由于其高效的计算效率和内存占用优势,在实际应用中得到了广泛的应用)。
Utility of Auxiliary Classifiers 引用辅助分类器
采用辅助分类器这一技术有助于提升Inception v1中的深度网络收敛性。然而我们发现,在下层阶段应用辅助分类器并无显著价值;但进入较高层阶段后,在训练后期引入这一技术则有助于实现模型正规化。
Efficient Grid Size Reduction
现有尺寸缩减方法通常依赖于池化操作。然而这种方法可能导致表示瓶颈问题。为了缓解这一问题,在本研究中我们建议先对特征图进行扩展处理后再应用池化操作。
在Figure9中,左图违背了规则1,并可能导致representational bottleneck问题出现。右图所涉及的计算量较之左图增加了两倍多。相比之下,这两种方案均未表现出显著优势

如图所示,在图10中,我们采用了两个平行结构的模块P和C。其中P属于池化层,并且两者的步长参数均为 stride=2。这一配置既能防止 representational bottleneck 问题同时也能降低计算负担。

Inception V2
Inception V2的结构如下:




Model Regularization via Label Smoothing
本文在另一个方面实现了标签平滑正则的引入。在原先情况下,在每个类别分配一个唯一的编号后,在给定样本仅被分配到唯一的一个 ground truth 类别中,则对应的 target 标签值将被设定为 1(即该样本属于该类别),其余类别则标记为 0。随后计算交叉熵损失函数作为评估标准。
现在作者提到这种特殊的概率分布(Dirac delta函数),其概率质量集中在目标点处,并且该点的概率密度值为1;然而这种理论上的target分布显得过于复杂;因此引入了软标签的概念;将整体的概率质量从一个类别均匀地分配到其他类别中以避免绝对确定;以防止神经网络过于自信地将所有输入归类到某一个类别;soft labels are as follows:
q^{'}(k)=(1-\epsilon)\delta_{k,y}+\frac{\epsilon}{K}
取一个小值\epsilon时,在ground truth类别的输出概率主要集中在该值附近的情况下,在其他类别上的输出概率则非常低。从而能够有效防止模型出现过度拟合现象,并防止网络在预测时过于依赖某一特定类别。
此处提出了一个新引入的交叉熵损失函数定义:
H(Q^+,p)=-\sum_{k=1}^{K}\log \left( p(k)\cdot Q^+(k)\right)= (1−ε)\cdot H(q,p)+ε\cdot H(u,p)其中ε∈[0,1]
即每一样本对应分布的交叉熵损失加权求和。
LSR方法直观上具有一定的合理性,在多篇文献中也有提及。作为一种改进方案具有显著的效果。研究者指出——该方法带来了大约0.2%绝对值上的提升,在top-1错误率和top-5错误率方面均有所体现。尽管提升幅度较小但依然保持较高的有效性实际上将平均分配策略用于其他类别并不一定是最佳选择并依据类别间的相似程度以及语义相近可能导致误判的程度应当采用更为合理的软标签分配策略
Performance on Lower Resolution Input
高质量的图片通常能够带来更高的准确率;当输入图片分辨率较低时,请问您该如何处理?建议大家设置多高的分辨率比较合适?
该方案建议:当输入为低分辨率图像时,则应移除其前两层stride并去除第一个池化层。
在计算量不变的情况下,不同策略的效果:
The network architecture incorporates a 299 \times 299 receptive region with a stepping stride of 2, followed by maximal pooling in the initial layer. A similar configuration is employed for a 151 \times 151 receptive region, which also undergoes maximal pooling after the first layer. Notably, the final layer features a 79\times79 receptive area that processes information without any pooling mechanism.
结果如下:

Inception V3

Table 3的最下部一行即为Inception V3模型,在其基础结构中实现了对Inception V2模型辅助分类器的优化与改进,并引入了Batch Normalization层作为关键提升措施。
Conference
https://zhuanlan.zhihu.com/p/32702113
https://zhuanlan.zhihu.com/p/32850841
