MobileNetV2: Linear Bottleneck重解读与原文翻译
一个深度神经网络由nnn层LiL_iLi组成,每层有一个维度为hi∗wi∗dih_i*w_i*d_ihi∗wi∗di的激活张量。通过这个章节我们将会讨论这些激活张量的基本属性,我们把这些张量看做有did_idi维hi∗wih_i*w_ihi∗wi像素的容器。非正式的,对于一组输入的真实的图像,我们可以说这一组层激活(对于任何LiL_iLi层)形成了一个“感兴趣的流形”。长期以来有一
原文arxiv链接
Keras官方模型
网络上的文章对于ReLU在低维空间上操作时会丢失信息这一理解没有错,也能够说明为什么在倒残差结构中要移去最后一层的非线性激活函数,但是对于设计的动机解释的不清晰。
以下是个人理解:
每一个卷积块会学习出一个模式,而这个模式是在低维空间上线性的(原文把这种模式称作“兴趣流形”,这个流形可以在低维空间上展开),所以会在卷积块中增加一个低维的卷积层来学习这种模式,由于这个层比其它层维度低,所以形象的取名为瓶颈。一般的来说一个卷积层后会跟一个非线性激活ReLU层,但是ReLU激活函数在低维空间操作时会损失信息,所以新增的瓶颈层中不带有非线性激活层,所以这个层就被称作线性瓶颈。
以下是个人疑问:
原文中证明ReLU对可以在低维空间展开的流形操作没有损失,但如何证明神经网络学习的兴趣流形是可以在低维空间展开的呢?原文用了很不严谨的“It has been long assumed”。
以下是原论文线性瓶颈段落的中文翻译:
一个深度神经网络由
n
n
n层
L
i
L_i
Li组成,每层有一个维度为
h
i
∗
w
i
∗
d
i
h_i*w_i*d_i
hi∗wi∗di的激活张量。通过这个章节我们将会讨论这些激活张量的基本属性,我们把这些张量看做有
d
i
d_i
di维
h
i
∗
w
i
h_i*w_i
hi∗wi像素的容器。非正式的,对于一组输入的真实的图像,我们可以说这一组层激活(对于任何
L
i
L_i
Li层)形成了一个“兴趣流形”。长期以来有一个假设说 神经网络的感兴趣流形可以被嵌入到低维子空间。换句话说,当我们观察一个深度卷积层所有单独的
d
d
d通道的像素,被编码成这些数值的信息实际上存在与某些可嵌入到一个低维子空间的流形中。
乍一看,可以通过简单地减小层的维度从而减小操作空间的维度来达到这个目的。 这已被MobileNetV1成功运用,MobileNetV1通过宽度乘数参数有效地在计算和精度之间进行权衡,并且这一操作已被并入其他网络的模型设计中。 按照这种直觉,宽度乘数法可以减小激活空间的尺寸,直到感兴趣的流形平铺整个空间为止。 但是,当我们回想起深度卷积神经网络实际上具有非线性转换(例如ReLU)时,这种直觉就失效了。 例如,将ReLU应用于一维空间中的一条线会产生“射线”,而在 R n R_n Rn空间中,它通常会生成具有 n n n个连接点的分段线性曲线。
容易看到,通常,如果层变换ReLU ( B x ) (Bx) (Bx)的结果具有非零的体积 S S S,则映射到内部 S S S的点是通过输入的线性变换 B B B获得的,因此表明对应于一维输出的输入空间仅限于线性变换。 换句话说,深度网络仅在输出域的非零体积部分具有线性分类器的功能。 参考补充材料以获得更正式的说明。
另一方面,当ReLU压缩通道时,它不可避免地会丢失该通道中的信息。 但是,如果我们有很多通道,并且激活流形中有一个结构,信息可能仍会保留在其他通道中。 在补充材料中,我们表明,如果可以将输入流形嵌入到激活空间的明显较低维度的子空间中,那么ReLU转换将保留信息,同时将所需的复杂性引入可表达的函数集中。 总而言之,我们重点介绍了两个属性,这些属性指示所需的流形应位于高维激活空间的低维子空间中:
-
如果感兴趣的流形在ReLU转换后仍保持非零体积 ,它对应于线性变换。
-
ReLU能够保留有关输入流形的完整信息,但前提是输入流形位于输入空间的低维子空间中。
这两个见解为我们提供了优化现有神经体系结构的经验提示:假设感兴趣的流形是低维的,我们可以通过将线性瓶颈层插入到卷积块中来利用这一点。实验证据表明,使用线性层至关重要,因为它可以防止非线性破坏过多的信息。在第6节中,我们通过经验证明,在瓶颈中使用非线性层确实会降低性能百分之几,从而进一步验证了我们的假设。我们注意到,在[29]中报道了类似的报告,其中非线性得到了帮助,其中从传统残差块的输入层中去除了非线性,从而提高了CIFAR数据集的性能。在本文的其余部分,我们将利用瓶颈卷积。我们将输入瓶颈的大小与内部大小之间的比率称为扩展比率。
更多推荐
所有评论(0)