A. Bottleneck transformation

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

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

Lemma (辅助定理) 1:

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

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

证明:

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

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

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

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

考虑一个算子ReLU(Bx)\text{ReLU}(Bx)ReLU(Bx),其中 BBB 是一个 m×nm×nm×n 矩阵,x∈Rnx \in R_nx∈Rn​。让 y0=ReLU(Bx0)y_0=\text{ReLU}(Bx0)y0​=ReLU(Bx0),对于一些x0∈Rnx_0 \in R_nx0​∈Rn​,那么方程 y0=ReLU(Bx)y_0=\text{ReLU}(Bx)y0​=ReLU(Bx)对于 xxx 有一个唯一的解,当且仅当 y0y_0y0​ 至少有 nnn 个非零值,并且有 nnn 个线性独立的 BBB 的行对应于 y0y_0y0​ 的非零坐标。

Proof:

用 TTT 表示 y0y_0y0​ 的非零坐标集,设 yTy_TyT​ 和 BTB_TBT​ 是 yyy 和 BBB 对 TTT 定义的子空间的限制。如果 ∣T∣<n|T| < n∣T∣<n,我们有 yT=BTx0y_T = B_T x_0yT​=BT​x0​,其中 BTB_TBT​ 至少有一个解 x0x_0x0​ 是欠确定的,因此有无限多的解。假设有一个额外的解x1≠x0x_1 \ne x_0x1​​=x0​,使得 y0=ReLU(Bx1)y_0 = \text{ReLU}(Bx_1)y0​=ReLU(Bx1​),那么我们有 yT=BT⋅x0=BT⋅x1y_T = B_{T}\cdot x_0 = B_{T} \cdot x_1yT​=BT​⋅x0​=BT​⋅x1​,除非 x0=x1x_0 = x_1x0​=x1​,否则不能满足。

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

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

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

Theorem 1 —— 定理1

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

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

那么,被 fBf_BfB​ 折叠成低维流形的 SSS 的子集的平均 nnn体积为

V−Nm,nV2mV - \frac{N_{m, n}V}{2^m} V−2mNm,n​V​

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

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

Proof:

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

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

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

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

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

Nm,n2m≥1−mn+12mn!≥1−2(n+1)logm−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,n​​≥1−2mn!mn+1​≥1−2(n+1)logm−m≥1−2−m/2

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

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

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

  1. MobileNet v2中 Inverted Residual 和 Linear Bottleneck 是怎么回事

    MobileNet v2中 Inverted Residual 和 Linear Bottleneck 是怎么回事 flyfish MobileNet v1的深度可分离卷积 Block的结构 先从Mo ...

  2. resnet系列+mobilenet v2+pytorch代码实现

    一.resnet系列backbone import torch.nn as nn import math import torch.utils.model_zoo as model_zooBatchN ...

  3. 【MobileNet V2】《MobileNetV2:Inverted Residuals and Linear Bottlenecks》

    CVPR-2018 caffe 版本的代码:https://github.com/shicai/MobileNet-Caffe/blob/master/mobilenet_v2_deploy.prot ...

  4. 基于FPGA的MobileNet V2卷积神经网络加速器

    MobileNet V2介绍 MobileNetV2是在V1基础之上的改进.V1主要思想就是深度可分离卷积.而V2则在V1的基础上,引入了Linear Bottleneck 和 Inverted Re ...

  5. 论文笔记:MobileNet v2

    原论文:MobileNetV2: Inverted Residuals and Linear Bottlenecks MobileNet v2 1.四个问题 要解决什么问题? 与MobileNet v ...

  6. MobileNet V2简单总结

    2017_MobileNetV2_谷歌: 图: 网络描述: MobileNet V2提出了 the inverted residual with linear bottleneck,线性瓶颈反残差结构 ...

  7. 轻量级深度学习网络——MobileNet MobileNet v2

    这篇文章主要讲的是深度学习网络篇中轻量化网络之一的MobileNet和MobileNet v2.在深度学习中轻量化网络有很多方法, 比如说卷积核分解.使用bottleneck结构.用低精度浮点数保存模 ...

  8. MobileNet V2 论文笔记

    论文:Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segm ...

  9. MobileNet V2 复现

    MobileNet V2 复现 Windows 10 python 3.7.6 tensorflow 2.1 cuda 10.2 模型文件 model.py # -*- coding:utf-8 _* ...

  10. MobileNet V2 模型分析+解读

    一.论文: https://arxiv.org/abs/18 转载自https://blog.csdn.net/kangdi7547/article/details/8143157 二.论文理解 Mo ...

最新文章

  1. java项目的逻辑结构
  2. watch TV online for free
  3. emmet快速缩写展开的基本写法与心得
  4. Windows进程与线程学习笔记(一)—— 进程结构体
  5. c语言一年日历程序,c语言日历程序
  6. windwos::mutex
  7. android音频格式,适用于iOS和Android的音频格式
  8. html的iframe用法
  9. 鹏业安装算量软件8.0.0.76升级内容
  10. RecyclerView 实现横向滚动效果
  11. 辽宁科技大学计算机与软件工程学院调剂,辽宁科技大学2019年硕士研究生调剂信息...
  12. 1279C. Stack of Presents
  13. Alexa 排名万能查询系统
  14. 欧姆龙485通讯示例程序_欧姆龙PLC型号大全
  15. Python map
  16. 那些脑残粉请闭嘴好吗,这不是硬科幻
  17. linux搭建web服务
  18. 把Vue项目打包为桌面应用(nwjs)
  19. rosdep update 错误
  20. RHCE--搭建DNS服务器

热门文章

  1. 追梦算法网----团队数量
  2. 微信表情的字符编号完整版【图文并茂哦 】
  3. [資源]RAID是什么意思?RAID的应用
  4. WSL2 更换硬盘位置
  5. Vue2.0 —— 运用算法实现 AST 抽象语法树
  6. android编译系统分析一:source build/envsetup.sh与lunch
  7. python语言程序代码保存在_《计算机二级Python语言程序设计考试》第5章:函数和代码复用...
  8. 基于云开发的查单词小程序设计 报告+PPT+项目源码+演示视频
  9. 小学美术计算机教案模板,小学美术教案模板五篇
  10. 神棍传奇(cocos-jsV3.6)