当前位置: 首页 > news >正文

MnasNet:NAS 自动架构搜索

【置顶必看】k学长的深度宝典

源码、配套笔记&讲解视频,点击文末名片获取

  1. 研究背景和动机(MnasNet)
    我们先回顾一下背景:
  2. 以前的做法(人工 + 理论指标)
  • 在 MobileNet、ShuffleNet 之前,网络基本靠 人类专家拍脑袋设计:
    • 用什么卷积?
    • 每层多少通道?
    • 多深?
  • 改进方向主要看 FLOPs(理论计算量),但这有个大坑:
    • FLOPs 低 ≠ 手机上跑得快。
    • 因为硬件(手机 CPU/GPU)有内存访问瓶颈,导致一些理论轻量的模型,实际并不快。
      👉 举例:MobileNet v2 FLOPs 比较少,但在手机上推理并没有预期那么快。

如果一味减小网络,速度快了但精度掉太多;如果一味加深网络,精度提高了但速度变慢。
MnasNet 的核心动机就是:

  • 用自动化的神经网络结构搜索(NAS)方法,帮我们在“速度—精度”之间找到最优平衡,而且是真正针对具体硬件(比如手机 CPU)来优化的。

  1. MnasNet 的核心创新

具体方法叫 平台感知的神经架构搜索(Platform-Aware NAS)。

  • 它的主要特点:
    1. 不是人手工设计,而是让 AI(强化学习控制器)自动生成模型结构。
    2. 不是光看 FLOPs,而是直接在真手机上跑,测出每个候选模型的 真实延迟(Latency)。
    3. 最后选择 精度高 + 延迟低 的模型,而不是单一优化。

3、MnasNet 的网络结构
传统 NAS(神经网络搜索)就像 在整个工厂里,每一台机器都要重新挑选(卷积方式、卷积核大小、是否加注意力…)。
👉 问题:搜索空间巨大,计算成本爆炸。


🚀 MnasNet 的新思路:分解层次搜索
MnasNet 说:别傻傻地在每个小零件上都重新选,我们 按车间(Block)来分工,让搜索更聪明!
[图片]

🏭 工厂类比讲解

  1. 整个网络是一家工厂
    工厂一共有 7 个“车间”(Block1 ~ Block7)。
  • 早期车间处理的是大尺寸原料(高分辨率图片)。
  • 后期车间处理的是精细零件(小分辨率但通道多)。
  1. 每个车间里有多台一样的机器(Layers)
  • 比如 Block4 有 4 台机器(Layer 4-1 … Layer 4-4)。
  • 这些机器都是同一型号,这样整个车间的风格统一,也让搜索问题更简单。
  • 如果需要缩小尺寸(stride=2),就让车间里的第一台机器负责“压缩尺寸”。
  1. 搜索任务:给每个车间选一种机器型号
    对于某个车间(比如 Block4),我们要决定:
  • 用什么类型的机器?(普通卷积 or 深度卷积 or 倒残差 MBConv)
  • 零件刀片多大?(3×3 还是 5×5 卷积核)
  • 要不要加个“质检员”?(SE 注意力模块)
  • 是否需要旁边开一条捷径?(跳跃连接 identity/pooling)
  • 每台机器能处理多少原料?(通道数)
  • 这个车间要放几台机器?(重复次数 N)
  1. 块内同构、块间异构
  • 块内同构:一个车间内机器全都一样 → 好管理,减少搜索空间。
  • 块间异构:不同车间可以选不同型号机器 → 早期车间选小卷积,后期车间选大卷积,更灵活。

🧩 图里的意思

  • 图上绿色方块(Block1~7)就是车间。
  • 黄色小方块(Layer 2-1 … Layer 2-N₂)表示同一车间里重复的机器。
  • 蓝色箭头上的选项(ConvOp、KernelSize、SE Ratio、SkipOp、FilterSize、#Layers)就是我们给工厂配机器时的菜单。
  • 底部小蓝框示例(1×1 conv → 5×5 depthwise → SE → 1×1 conv → 残差)就是某个车间最终选中的机器型号。
    MnasNet 的“分解层次搜索”就像是:
    👉 不再在工厂里的 每一台机器上瞎选,而是 先把工厂划分成车间,再给每个车间统一选好机器型号和数量。
  • 块内机器相同 → 节省精力(缩小搜索空间)。
  • 不同车间机器可不同 → 保证灵活性(不同阶段处理不同任务)。
    🔄 整体流程
    [图片]
  1. Controller(控制器) → 经理
  • 它的任务就是 从搜索空间里挑选一份候选模型。
  • 搜索空间就像“人才市场”,有各种可能的神经网络结构(不同卷积、核大小、层数等)。
  • Controller 会“抽签”一样,采样出一个模型交给 Trainer。

  1. Trainer(训练器) → 培训班老师
  • 它接收 Controller 提供的候选模型,把它放到数据集上做训练,看看效果。
  • 训练后会测试两个关键指标:
    • accuracy(准确率):模型识别的对不对。
    • latency(延迟):模型在 真实手机上跑的速度。

  1. Mobile phones(手机硬件) → 真机考核
  • MnasNet 强调 平台感知,所以不是只在电脑上测,而是直接把模型丢到手机里,测真实延迟。
  • 这样能避免模型“纸面上很快,但手机上很慢”的问题。

  1. Multi-objective reward(多目标奖励) → 综合打分系统
  • 这里就像考核工人的总分,不仅看工作质量(准确率),还要看效率(延迟)。
  • 如果模型又准又快 → 奖励高。
  • 如果模型虽然准,但很慢 → 奖励低。
  • 如果模型快,但不准 → 奖励也低。

  1. Reward 回传给 Controller(奖惩反馈) → 经理学习
  • Controller 根据奖励结果来调整“挑人策略”。
  • 就像经理从经验中学会:
    • “哦,原来在手机上用 5×5 卷积太慢了,以后少挑。”
    • “用 SE 模块虽然稍慢,但精度大幅提升,值得保留。”
  • 经过不断循环,Controller 越来越会挑模型,最后找到一个“既准又快”的最佳结构。
    这个搜索算法就像是:
  • Controller = 招聘经理:负责挑选候选人(模型结构)。
  • Trainer = 培训老师:负责对候选人进行测试(训练+验证)。
  • Mobile phone = 真机面试官:直接考察候选人在真实岗位(硬件)上的表现。
  • Reward = 总分系统:把准确率和速度综合起来,打分反馈。
  • 闭环学习:经理不断从反馈中学习,最终能招到“又能干又高效”的最佳员工(最终模型)。
    4、 致命缺陷:搜索开销巨大,效率低
    MnasNet 用的是 强化学习(RL)+真实手机延迟测试 的搜索方式。
  • 每次 Controller 采样一个模型 → Trainer 要训练、评估精度 → 还要真机跑延迟 → 最后才能打分。
  • 这个过程要 成千上万次循环,一次搜索往往需要 几百上千 GPU 天!

5、后续改进方向(怎么解决 MnasNet 的高开销问题)
1️⃣ ProxylessNAS(2019)

  • 问题:MnasNet 每次都要真机测试延迟,太耗时。
  • 改进:ProxylessNAS 提出了 直接在目标硬件上搜索,但是用了一种 延迟预测模型,不需要每次都跑真机。
  • 好处:把搜索效率提升了一个量级,训练更快,硬件友好。
    👉 打个比方:MnasNet 是每造一辆赛车都拉到赛道跑一圈;ProxylessNAS 则是先训练一个“赛道模拟器”,能预测赛车的速度,这样大大节省时间。

2️⃣ FBNet(Facebook,2019)

  • 问题:MnasNet 训练每个候选模型太慢。
  • 改进:FBNet 提出 可微分 NAS(Differentiable NAS),直接把搜索问题变成一个 梯度优化问题。
  • 核心思想:候选模型不再一个个训练,而是共享参数(weight sharing),用梯度下降来一步到位找到最优结构。
  • 好处:搜索效率从几百 GPU 天 → 1 GPU 天就能完成。
    👉 打个比方:MnasNet 是“造一辆车就训练一辆车”;FBNet 是“造一个车厂,把所有车的零件都放进去,让它们共享零件,只训练一次,就能挑出最好车”。

3️⃣ EfficientNet(Google,2019)

  • 问题:MnasNet 搜到的结构是固定的,如果要换大小(比如大模型、小模型),得重新搜索。
  • 改进:EfficientNet 提出了 复合缩放法(Compound Scaling),只用一个基础网络(通过类似 MnasNet 搜出来的),再用统一规则同时放大宽度、深度和分辨率。
  • 好处:不用每次重新搜索,一次搜索 → 一家子模型(EfficientNet-B0 到 B7)。
    👉 打个比方:MnasNet 是“每次都要重新设计车子”;EfficientNet 是“设计一辆车的原型,然后通过放大缩小比例,就能得到不同排量的车型(小轿车 → SUV → 卡车)”。
http://www.dtcms.com/a/439467.html

相关文章:

  • 深度学习打卡第N8周:使用Word2vec实现文本分类
  • 天津高端网站建设企业东莞+网站+建设+汽车
  • 手机代码网站有哪些问题吗网站建设的能力
  • Python 中的垃圾回收机制揭秘
  • 菲律宾——宿务省——宿务市(Cebu City、CEB)介绍
  • 卫辉市住房和城市建设局网站建网站要多少钱一年
  • 苏州网站设计公司兴田德润i简介金华网站建设公司招聘
  • 济南品牌网站建设价格低广州建设交易中心
  • 免费建站的怎么知道网站的空间服务商
  • wordpress注释代码模板网站如何做优化
  • 班级网站 程序怎么在Front做网站
  • 康复实训室介绍:助力康复人才掌握临床核心操作能力
  • 中国购物网站排名学it什么培训机构好
  • 从网站开发到游戏编程制作网站一般是多大
  • 旅游网站建设与网页设计意义wordpress 自动缩进
  • 数据结构之图(基本概念和模拟)
  • 网站建设ssc源码技术重庆相册制作工厂
  • html网站开发教程云南建管微信小程序
  • 企业网站托管收费标准网站 后台 回车不了
  • 诚信网站体系建设工作网站建设营销开场白
  • 手机app开发制作报价济南seo网站建设
  • 建设网站需要什么技术支持中兴建设 基金管理有限公司网站
  • 铜煤建设网站集客crm
  • 深度学习第八章 初始化(下)
  • WordPress阿里云安装网站建站前seo注意
  • 沧州机械类网站建设汽车网址都有哪些
  • 同一ip 网站 权重有没有免费的资源可以在线观看
  • 网站开发技术难点海口最新新闻消息
  • 网络设备架构-三平面分离解析
  • 西宁建设网站鄂州商城网站建设