MNASNET论文详解

  • MNasNet
  1. 核心点
  1. 机器学习搜索最优模型;
  2. 多目标优化:精度 速度(pixel1上实测)
  3. 分层搜索结构

即:以前是搜索一个block,然后model对这个block重复;根据自然规律,浅层的block和深层的block不同,因此文本的假设:每个block有很多层,每一层相同。每个block各自搜索结构。

 此处的搜索空间,要兼顾:多样性和有限性。

  1. 摘要

Float只是一个代理指标,例如:mobilenetv1和nasnet的float差不多,但是其速度差距很大。

       过去搜索基本都是搜索一个block,然后不断重复,这样不合理。不够多样性,因此提出多层结构搜索。即,不同的block搜索不同的结构。

  1. 前言
  1. 量化权重/激活值 用lower bit表示
  2. 剪枝,去掉不重要的参数;
  3. 引入硬件评价指标latency,如Nasnet
  4. 手动设计:SN,shufflenet,mobilenet等
  5. 机器学习设计cnn(RL,遗传算法,darts-可微分算法 等)——设计基本单元,重复

但是仅仅在cifar上测试。

额外:目标cnn侧重与落地,因此真实数据 十分可贵。

GAN可以生成数据,但是无法覆盖极端情况下的数据。

  1. MNASnet

目标函数:

该优化目标,仅仅只有一个解。

但是pareto需要多个最优解,即:相同性能下,预算最小。属于性能和预算的博弈。

一系列速度和精度的模型,每一个对应一个精度和速度的trade-off

此处:w < 0

此代价函数,找到一系列速度~精度的组合,并且其cost近似。

实验表明:

一倍的速度,可以换来5%精度的提升。

  1. 分层结构

预定义骨架,每一层输入/输出尺寸,conv的个数,得到MnasNet的机构。

下采样采用stride = 2

以mobilenetV2为基础进行搜索,对于每一个block,layer{0, +1,-1}分别表示:不变,增加一层,减小一层。Filter size表示卷积核的数量{0.75, 1.0, 1.25}

此处不是连续随意搜索,而是基于特定的阶段/数值进行搜索。

搜索算法,采用RL,得到多个pareto最优解。用多目标函数。

RL:在很大的搜索空间中,找到适应环境的局部最优解。像生物适应/改善环境一样。

RL:映射cnn的搜索空间中的超参数 到 一系列的 token。

Rnn生成一系列的向量,分别表示:filter size,con op等。

生成向量为一个动作,a1:t

RL本身的参数,即智能体的参数为theta

目标函数:期望奖励最大化

M:采样出的模型,由动作a1:t决定。

Rnn:智能体生成一个token,对应一个模型,

Trainer:拿到token,把model 训练出来,得到acc,再在真实手机pixel1上得到latency,然后得到目标函数。

循环:sample – eval – update

使用theta,生成一个batch 的模型,预测一系列的token,一个token对应一个模型。根据目标函数,使得期望奖励最大化。训练方式:PPO

不断重复,直到达到最优解,或者 theta收敛。

  1. 实验

直接在imagenet上训练。自训练5epoch,只看5epoch的acc和latency。

不同的配置,得到不同的Mnasnet,例如:不同的block的数量,每个block的层数。。

每个mnasnet训练4.5天。

智能体采样8000个模型,选出top 15迁移到coco。

进行预热。

T=75MS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值