MobileNet v2的Inverted Bottleneck为什么可以抵消ReLU激活函数所带来的信息损失

MobileNet v2的Inverted Bottleneck为什么可以抵消ReLU激活函数所带来的信息损失_第1张图片

A. Bottleneck transformation

在这一节中,我们研究一个算子 A  ReLU ( B x ) A \ \text{ReLU}(Bx) A ReLU(Bx)的特性,其中 x ∈ R n x\in \mathcal{R}^n xRn代表一个 n n n通道的像素, B B B是一个 m × n m\times n m×n矩阵, A A A是一个 n × m n\times m n×m矩阵。我们认为,如果 m ≤ n m≤n mn,这种形式的变换只能以损失信息为代价利用非线性。相反,如果 n ≪ m n\ll m nm,这种变换可以是高度非线性的,但仍然可以高概率地反转(对于初始随机权重)。

首先,我们表明ReLU对于任何位于其图像内部的点来说都是一种身份转换 (identity transformation)。

Lemma (辅助定理) 1:

S ( X ) = { ReLU ( x ) ∣ x ∈ X } S(X) = \{\text{ReLU}(x) | x \in X\} S(X)={ReLU(x)xX}。如果 S ( X ) S(X) S(X)的一个体积是非零的,那么内部 S ( X ) ∈ X S(X) \in X S(X)X

ReLU的性质,正半轴为正,负半轴为0

证明:

S ′ = interior ReLU ( S ) S' = \text{interior ReLU}(S) S=interior ReLU(S)。首先我们注意到,如果 x ∈ S 0 x\in S_0 xS0,那么对于所有的 i i i x i > 0 x_i>0 xi>0。事实上,ReLU的图像不包含负坐标的点,而零值坐标的点不可能是内部点。因此,对于每个 x ∈ S 0 x\in S_0 xS0 x = ReLU ( x ) x=\text{ReLU}(x) x=ReLU(x),如愿以偿。

由此可见,对于交错线性变换和ReLU算子的任意组合,如果它保留了非零体积,那么在这种组合上保留的那部分输入空间 X X X就是线性变换,因此很可能是深度网络力量的一个小贡献者。然而,这是一个相当弱的声明。事实上,如果输入流形可以被嵌入到 ( n − 1 ) (n - 1) (n1) 维流形中(总共有 n n n 个维度),那么该定理就基本成立,因为起始体积是 0 0 0

由于 ReLU ( x ) \text{ReLU}(x) ReLU(x) 非线性是一个将整个射线 x ≤ 0 x≤0 x0 映射到 0 0 0 的射影函数,在神经网络中使用这种非线性会导致信息损失。一旦 ReLU \text{ReLU} ReLU将输入流形的一个子集折叠成一个较小维度的输出,下面的网络层就不能再区分折叠的输入样本了。在下文中,我们表明,具有足够大的扩展层的瓶颈可以抵抗 ReLU \text{ReLU} ReLU 激活函数的存在所造成的信息损失。

Lemma (辅助定理) 2 (Invertibility of ReLU, ReLU的不可逆性):

考虑一个算子 ReLU ( B x ) \text{ReLU}(Bx) ReLU(Bx),其中 B B B 是一个 m × n m×n m×n 矩阵, x ∈ R n x \in R_n xRn。让 y 0 = ReLU ( B x 0 ) y_0=\text{ReLU}(Bx0) y0=ReLU(Bx0),对于一些 x 0 ∈ R n x_0 \in R_n x0Rn,那么方程 y 0 = ReLU ( B x ) y_0=\text{ReLU}(Bx) y0=ReLU(Bx)对于 x x x 有一个唯一的解,当且仅当 y 0 y_0 y0 至少有 n n n 个非零值,并且有 n n n 个线性独立的 B B B 的行对应于 y 0 y_0 y0 的非零坐标。

Proof:

T T T 表示 y 0 y_0 y0 的非零坐标集,设 y T y_T yT B T B_T BT y y y B B B T T T 定义的子空间的限制。如果 ∣ T ∣ < n |T| < n T<n,我们有 y T = B T x 0 y_T = B_T x_0 yT=BTx0,其中 B T B_T BT 至少有一个解 x 0 x_0 x0 是欠确定的,因此有无限多的解。假设有一个额外的解 x 1 ≠ x 0 x_1 \ne x_0 x1=x0,使得 y 0 = ReLU ( B x 1 ) y_0 = \text{ReLU}(Bx_1) y0=ReLU(Bx1),那么我们有 y T = B T ⋅ x 0 = B T ⋅ x 1 y_T = B_{T}\cdot x_0 = B_{T} \cdot x_1 yT=BTx0=BTx1,除非 x 0 = x 1 x_0 = x_1 x0=x1,否则不能满足。

这个结论的一个推论是,如果 m ≫ n m \gg n mn,我们只需要 B x B_x Bx 的一小部分值是正的, ReLU ( B x ) \text{ReLU}(Bx) ReLU(Bx)就可以倒置。

对于真实的网络和真实的输入,可以用经验来验证定理2 (Lemma 2)的约束,因此我们可以保证信息确实得到了保留。我们进一步表明,就初始化而言,我们可以确信这些约束条件很可能得到满足。请注意,对于随机初始化,由于初始化的对称性,定理2 (Lemma 2)的条件得到了满足。然而,即使对于训练有素的图形,这些约束也可以通过在有效输入上运行网络并验证所有或大多数输入都在阈值以上来进行经验验证。在图7中,我们展示了不同MobileNetV2层的分布情况。在第0步,激活模式集中在有一半的正通道(正如初始化对称性所预测的)。对于经过充分训练的网络,虽然标准偏差明显增长,但除了两层之外,所有的网络仍然在可逆性阈值之上。我们认为对此进行进一步的研究是有必要的,并可能导致对网络设计的有益见解。

MobileNet v2的Inverted Bottleneck为什么可以抵消ReLU激活函数所带来的信息损失_第2张图片

图7:激活模式的分布。 x x x轴是层指数,我们显示了每次与ReLU卷积后的最小/最大/平均的阳性通道数。 y y y轴是通道的绝对数或相对数。"阈值线"表示ReLU的可逆性阈值–即正维数高于输入空间。在我们的例子中,这是 1 / 6 1/6 1/6 个通道的分数。请注意在图7a的训练开始时,分布是如何更紧密地集中在平均值周围的。训练结束后(图7b),平均数没有变化,但标准差急剧增长。最好以彩色观看。

Theorem 1 —— 定理1

S S S R n \mathcal{R}^n Rn的一个紧凑的 n n n维子域。考虑从 R n \mathcal{R}^n Rn R m \mathcal{R}^m Rm的函数族 f B ( x ) = ReLU ( B x ) f_B(x) = \text{ReLU}(Bx) fB(x)=ReLU(Bx),参数为 m × n m×n m×n矩阵 B ∈ B B\in \mathcal{B} BB。让 p ( B ) p(B) p(B)是所有矩阵 B \mathcal{B} B空间上的概率密度,满足以下条件:

  • 对于任何措施为零的子集 Z ⊂ B Z⊂ \mathcal{B} ZB P ( Z ) = 0 P(Z)=0 P(Z)=0
  • (对称条件)对于任何 B ∈ B B∈\mathcal{B} BB 和任何 m × m m×m m×m 对角线矩阵 D D D,所有对角线元素不是 + 1 +1 +1 就是 − 1 -1 1 p ( D B ) = p ( B ) p(DB)=p(B) p(DB)=p(B)

那么,被 f B f_B fB 折叠成低维流形的 S S S 的子集的平均 n n n体积为

V − N m , n V 2 m V - \frac{N_{m, n}V}{2^m} V2mNm,nV

其中 V = vol  S V=\text{vol } S V=vol S

N m , n = ∑ k = 0 m − n ( m k ) N_{m, n} = \sum^{m - n}_{k = 0}\left(\begin{matrix}m \\ k \end{matrix}\right) Nm,n=k=0mn(mk)

Proof:

对于任何 σ = ( s 1 , . . . , s m ) σ=(s_1, ..., s_m) σ=(s1,...,sm) s k ∈ − 1 , + 1 s_k∈{-1, +1} sk1,+1,让 Q σ = { x ∈ R m ∣ x i s i > 0 } Q_σ=\{x∈\mathcal{R}^m | x_is_i>0\} Qσ={xRmxisi>0} R m \mathcal{R}^m Rm 中的一个相应象限。对于任何 n n n 维子域 Γ ⊂ R m Γ⊂\mathcal{R}^m ΓRm,如果 σ σ σ 至少有 n n n 个正值[4],ReLU在 Γ ∩ Q σ Γ∩Q_σ ΓQσ 上起双射作用,否则收缩 Γ ∩ Q σ Γ∩Q_σ ΓQσ。同时注意到, B S BS BS R m   ( ∪ σ Q σ ) \mathcal{R}^m \ (∪_σQ_σ) Rm (σQσ) 的交点几乎肯定是 ( n − 1 ) (n-1) (n1) 维的。因此,将ReLU应用于 B S BS BS 而不被折叠的 S S S 的平均 n n n 体积由以下公式给出:

∑ σ ∈ ∑ n E B [ V σ ( B ) ] \sum_{\sigma \in \sum_n} \mathbb{E}_B [V_\sigma(B)] σnEB[Vσ(B)]

其中 Σ n = { ( s 1 , . . , s m ) ∣ ∑ k θ ( s k ) ≥ n } Σ_n = \{(s_1, . . , s_m)| \sum_k θ(s_k) ≥ n\} Σn={(s1,..,sm)kθ(sk)n} θ θ θ 是一个阶梯函数, V σ ( B ) V_σ(B) Vσ(B) 是由 B B B 映射到 Q σ Q_σ Qσ S S S 的最大子集的体积。现在让我们计算 E B [ V σ ( B ) ] \mathbb{E}_B [V_σ(B)] EB[Vσ(B)]。回顾 p ( D B ) = p ( B ) p(DB)=p(B) p(DB)=p(B),对于任何 D = diag ( s 1 , . . . , s m ) D=\text{diag}(s_1, ..., s_m) D=diag(s1,...,sm) s k ∈ − 1 , + 1 s_k∈{-1, +1} sk1,+1,这个平均值可以改写为 E B E D [ V σ ( D B ) ] \mathbb{E}_B \mathbb{E}_D [V_σ(DB)] EBED[Vσ(DB)]。注意到 D B DB DB 映射到 Q σ Q_σ Qσ S S S 子集也被 B B B 映射到 D − 1 Q σ D^{-1}Q_σ D1Qσ,我们立即得到 ∑ σ ′ V σ [ diag ( σ 0 ) B ] = ∑ σ ′ V σ ′ [ B ] = vol S \sum_{σ'} V_\sigma [\text{diag}(σ_0)B] = \sum_{σ'} V_{σ'} [B] = \text{vol} S σVσ[diag(σ0)B]=σVσ[B]=volS,因此 E B [ V σ ( B ) ] = 2 − m vol S \mathbb{E}_B [V_σ(B)] = 2^{-m} \text{vol} S EB[Vσ(B)]=2mvolS. 将此和 ∣ Σ n ∣ = ∑ k = 0 m − n |Σn| = \sum^{m-n}_{k=0} Σn=k=0mn 进入公式3,证明就完成了。

[4]:除非所有 x ∈ Γ ∩ Q σ x∈Γ∩Q_σ xΓQσ 的正坐标中至少有一个是固定的,这对几乎所有的 B B B Γ = B S Γ=BS Γ=BS 来说都不是这样。

请注意,对于有 m ≫ n m \gg n mn 的足够大的扩展层,塌陷空间 N m , n / 2 m N_{m,n} /2^m Nm,n/2m 的部分可以被下列公式约束:

N m , n 2 m ≥ 1 − m n + 1 2 m n ! ≥ 1 − 2 ( n + 1 ) log m − m ≥ 1 − 2 − m / 2 \frac{N_{m, n}}{2^m} \ge 1 - \frac{m^{n + 1}}{2^m n!} \ge 1 - 2^{(n+1)\text{log} m -m } \ge 1 - 2^{-m / 2} 2mNm,n12mn!mn+112(n+1)logmm12m/2

因此,ReLU(Bx)执行了一个非线性变换,同时大概率地保留了信息。

我们讨论了瓶颈如何防止流形塌陷,但是增加瓶颈扩展的大小也可能使网络有可能表示更复杂的函数。按照[47]的主要结果,我们可以证明,例如,对于任何整数 L ≥ 1 L≥1 L1 p > 1 p>1 p>1,存在一个由 L L L ReLU层组成的网络,每个层包含 n n n 个神经元和一个大小为 p n pn pn 的瓶颈扩展,这样它就可以将 p n L p^{nL} pnL 输入量(线性同构为 [ 0 , 1 ] n [0,1]^n [01]n)映射到相同的输出区域 [ 0 , 1 ] n [0,1]^n [01]n。因此,附加在网络输出上的任何复杂的可能是非线性的函数将有效地计算 p n L p^{nL} pnL 输入线性区域的函数值。

你可能感兴趣的:(深度学习,分类网络,面试题,深度学习,计算机视觉,机器学习)