资讯详情

MnasNet

1. 轻量化网络的概念

方法 例子
1. 压缩训练有素的模型 知识蒸馏; 量化剪枝的权值(①权重剪枝;②通道剪枝);注意力迁移
2. 轻量化网络的直接训练 SqueezeNet;MobileNets系列;MnasNet;ShuffleNet系列;Xception;EfficientNet;EfficientDet
3. 加快卷积运算 im2col GEMM;Winograd低秩分解
4. 硬件部署 TensorRT;JetsonTensorflow;slimTensorflow;liteOpenvino;FPGA集成电路

: 参数、计算、内存访问、耗时、能耗、碳排放CUDA加速,对抗学习,Transformer、Attention、Nas、嵌入式开发,FPGA、软硬件协同设计,移动终端,边缘段,智能终端

2. MnasNet创新

  1. 多目标优化函数
  2. 多层NAS搜索空间(性能的准确性 真实手机推理时间)

这种直接用落地设备的比例FLOPs, MAC, Params要更加合理

2.1 多目标优化函数

m m a x i m i z e A C C ( m ) × [ L A T ( m ) T ] w \underset{m} maximize \ \ \ \ ACC(m) \times [\frac{LAT(m)}{T}]^w mmaximizeACC(m)×[TLAT(m)]w 中 m m m 为模型, m m a x i m i z e \underset{m}maximize mm​aximize 为该模型 m m m 的优化函数的目标,即使得后面的部分最大化, A C C ( m ) ACC(m) ACC(m) 为该网络的准确率, L A T LAT LAT 为该网络的实际推理速度, T T T 为期望网络的推理速度,是一个人为设定的常数, w w w 被定义为:

w = { α , i f   L A T ( m ) ≤ T β , o t h e r s w=\begin{cases} \alpha,&if \ LAT(m) \leq T \\ \beta,&others \end{cases} w={ α,β,​if LAT(m)≤Tothers​

要想使得目标函数足够大, A C C ACC ACC 需要变大, L A T LAT LAT 小,即上面的公式表示:找到某个模型的 m m m 使得目标函数最大化。

L A T LAT LAT = Latency,即延迟 -> 模型的推理速度

我们看一下这张数据图:

在这里插入图片描述 我们分析一下 α \alpha α, β \beta β 这两个参数:

  • 当我们设置 α = 0 , β = 1 \alpha=0 , \beta=1 α=0,β=1 时:

    • 如果模型的 L A T LAT LAT 满足我们设置的推理速度 T ( L A T ( m ) ≤ T ) T (LAT(m) \leq T) T(LAT(m)≤T) ,那么 w = α = 0 w=\alpha=0 w=α=0 ,模型的 A C C ACC ACC 就是其本身,模型并无任何波澜,甚至想笑😂;
    • 如果模型的 L A T LAT LAT 不满足我们设置的推理速度 T ( L A T ( m ) ≥ T ) T (LAT(m) \geq T) T(LAT(m)≥T),那么 w = β = − 1 w = \beta = -1 w=β=−1,此时模型的 A C C = A C C × [ T L A T ( m ) ] ACC=ACC \times [\frac{T}{LAT(m)}] ACC=ACC×[LAT(m)T​] ,很明显 [ T L A T ( m ) ] ≤ 1 [\frac{T}{LAT(m)}] \leq 1 [LAT(m)T​]≤1,所以此时模型的 A C C = 惩 罚 系 数 × A C C ACC = 惩罚系数 \times ACC ACC=惩罚系数×ACC , A C C ACC ACC 会降低。且 L A T LAT LAT 越大,惩罚越严重,而 ,所以
  • 当我们设置 α = − 0.07 , β = − 0.07 \alpha=-0.07, \beta=-0.07 α=−0.07,β=−0.07 时:

    • 如果模型的 L A T LAT LAT 满足我们设置的推理速度 T ( L A T ( m ) ≤ T ) T (LAT(m) \leq T) T(LAT(m)≤T),那么 w = α = − 0.07 w=\alpha=-0.07 w=α=−0.07,模型的 A C C = A C C ( m ) × [ T L A T ( m ) ] 0.07 ≥ 1 ACC = ACC(m) \times [\frac{T}{LAT(m)}]^{0.07} \geq 1 ACC=ACC(m)×[LAT(m)T​]0.07≥1,所以
    • 如果模型的 L A T LAT LAT 不满足我们设置的推理速度 T ( L A T ( m ) ≥ T ) T (LAT(m) \geq T) T(LAT(m)≥T),那么 w = β = − 0.07 w = \beta = -0.07 w=β=−0.07,此时模型的 A C C = A C C × [ T L A T ( m ) ] 0.07 ≤ 1 ACC=ACC \times [\frac{T}{LAT(m)}]^{0.07} \leq 1 ACC=ACC×[LAT(m)T​]0.07≤1,所以此时模型的 $ACC = 惩罚系数 \times ACC $, $ACC $会降低。

我们会发现, α = 0 \alpha=0 α=0, β = 1 \beta=1 β=1 有点像one-hot编码;而 α = − 0.07 \alpha=-0.07 α=−0.07, β = − 0.07 \beta=-0.07 β=−0.07 则像label-smooth编码

通过右图我们也可以看出来, α = 0 , β = 1 \alpha=0, \beta=1 α=0,β=1 由于惩罚很激进,所以 A C C ACC ACC 和 L A T LAT LAT 都比较集中;而 α = − 0.07 , β = − 0.07 \alpha=-0.07, \beta=-0.07 α=−0.07,β=−0.07 没有那么激进,所以模型没有前者那么集中。

2.1.1 α , β \alpha, \beta α,β的选择

选择 α = − 0.07 , β = − 0.07 \alpha=-0.07, \beta=-0.07 α=−0.07,β=−0.07 , 优点如下:

  • 模型的搜索空间更大
  • 可以搜索到更加多样的帕累托最优解(Pareto Optimality),多种 的权衡

帕累托最优(Pareto Optimality),也称为帕累托效率(Pareto efficiency),是指资源分配的一种理想状态,假定固有的一群人和可分配的资源,从一种分配状态到另一种状态的变化中,在没有使任何人境况变坏的前提下,使得至少一个人变得更好,这就是帕累托改进或帕累托最优化。 多目标优化函数可以让模型在 ACC 与 LAT 之间做出tradeoff。

多目标优化函数可以让模型在 A C C ACC ACC 与 L A T LAT LAT 之间做出tradeoff。

2.2 分层的NAS搜索空间

将一个CNN分解为7个Block,每个Block中的结构是一样的,如Block2中的Layer 2-1和Layer 2-N2是一样的;但每个Block之间的结构并不是一样的。这就使得我们可以设计不同的CNN模型。

3. NAS可以设计和搜索出哪些参数呢?

上图中所有蓝色的数字都是由NAS设计出来的,如:

  • 卷积的方式
  • 常规卷积
  • 深度可分离卷积
  • 逆残差卷积
  • 卷积核大小
  • 3×3还是5×5
  • 是否要引入SE Module
  • SE ratio=?
  • 跨层连接的方式
  • 池化
  • 恒等映射
  • 无 skip connection
  • 输出层卷积核大小
  • 每个Block中的Layer层数

以上这些参数都是由强化学习(Reinforcement Learning, RL)去搜索得到的,这是一个非常庞大的搜索空间,但是在论文中将其预定义为7个Block的分层的、分解的 搜索空间,这就能够使得不同的Block结构是多样化的。

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,

4. NAS分层的意义

分层的NAS搜索可以使得我们的CNN模型具有多样性,

我们使用分层的NAS后,生成的Block都不一样了,增加了模型的多样性

5. 强化学习(Reinforcement Learning)

  1. 使用RNN作为强化学习的智能代理 Agent(Controller);
  2. 它可以采取一系列的行动,从而生成一系列的模型;每生成一个模型就将这个模型训练出来(Trainer);
  3. 获取它的精度(accuracy)并在真实的手机(Mobile phones)上获取它的实测速度(latency);
  4. 由精度和速度算出多目标的优化函数(Multi-objective reward),就是我们刚才提到的公式;
  5. 再由这个函数作为奖励(reward)反馈给RNN代理(Controller)。

以上就是一个典型的强化学习流程,这个流程的。用公式简单表示:

J = E p ( a 1 : T ; θ ) [ R ( m ) ] J = E_p(a_{1:T};\theta)[R(m)] J=Ep​(a1:T​;θ)[R(m)]

其中, E p E_p Ep​ 为期望, a 1 : T a_{1:T} a1:T​ 为一系列结构选择, θ \theta θ 为智能体参数, [ ⋅ ] [\cdot] [⋅]为决定, R ( ⋅ ) R(\cdot) R(⋅)为目标函数(奖励), m m m 为模型。

6. 通过NAS搜索出来的MnasNet

新版本

v1版本

其中: × n \times n ×n表示该Block的层数 紫色为MobileNet v1的深度可分离卷积模块 绿色为MobileNet v2的逆残差模块 红色是加了SE Attention的逆残差模块

7. MnasNet实验结果

7.1 横向对比

7.2 与MobileNet v2进行对比

上图表明,MnasNet速度是MobileNet v2的1.8倍,性能也是全面超越。

MobileNet v2可以调节乘宽系数和分辨率大小(这个貌似CNN都可以😂),从上图中发现,使用了相同的系数,MnasNet也是全面超越MobileNet v2的。

7.3 限制推理时间

上表表明,MnasNet可以人为设定 T T T ,然后根据实际任务搜索出新的网络,

在Latency预算固定的前提下,NAS的准确率更高

7.4 目标检测

MnasNet除了可以用

标签: 集成电路00k3

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台