首页 > 其他分享 >[轻量化网络]Mnasnet学习笔记

[轻量化网络]Mnasnet学习笔记

时间:2022-10-07 16:56:53浏览次数:84  
标签:函数 卷积 模型 笔记 轻量化 搜索 LAT Mnasnet Block

1. 重点与亮点

1.1. 多目标优化函数

 

 

将准确定性能和真实手机推理时间结合在一起,兼顾精度和速度构建出多目标的优化函数。(精度,速度)

其中ACC是准确度;LAT是预测时间;T是一个常数,硬指标,表示让模型在T时间内完成预测,如75ms;w是一个小于等于零的数;整体来讲,要让目标函数(找到某个模型m)最大化,则ACC要足够大,LAT要足够小。

w是一个超参数,当LAT满足硬指标的时候,设置为α,否则设置为β,至于不同的α和β有什么区别,可以参考下图:

左图是一个横轴为LAT,纵轴为目标函数的折线图。

方案1(左上角的图),当α为0,β为-1的时候,T之前(w=0),目标函数等于ACC,LAT无影响;T之后(w=-1),对LAT继续增加,导致对目标函数有明显的惩罚。

方案2(左下角的图),当α、β均为-0.07的时候,目标函数是一条平滑的曲线。至于为什么选-0.07,这个也是有依据的:

 

 

也就是说,当模型精度提高5%的时候,允许推断时间增加为原来的2倍,利用这个关系算出来的α、β更有利于寻找模型的帕累托最优解。

右图是不同的方案下,生成模型的分布情况。

方案一导致生成的模型更集中,由于超过T就会受到明显惩罚,最终搜索结果更偏向于待在舒适区(不求有功但求无过,哈哈),即T之前。

方案二,生成的模型更加多样与平均,搜索的空间更大,可以搜到更多样的模型,更多的精度与速度组合的模型。

他们搜了3000个模型,总的来说就是财大气粗。

1.2. 分层分解的的NAS搜索空间

 

设计了一个分层搜索的架构,总共有7个Block,每个Block里面有N个Layer,每个Block里的Layer的结构都是一样的,这就让不同Block中的结构是不一样的,缩小了搜索空间的同时,保证了结构的多样性。

其中图中蓝色的表示都是人工智能强化学习模型搜索出来的,如每个Layer的结构(卷积的方式如传统卷积还是深度可分离卷积,卷积核的大小),是否加SE模块注意力机制seratio的大小,跨层连接方式,输出层卷积核大小,每个Block中的Layer个数。

2. 其他

2.1. 强化学习

 

使用一个RNN作为智能代理,在搜索空间中采样模型,并进行模型训练,然后计算精度和在真实手机上的推断速度,算出目标优化函数,作为奖励反馈给RNN模型,RNN收到奖励后作出新一轮的反应,并采取新的行动策略……最终目标是目标函数最大化及期望值最大化。

2.2. 最终模型

这是搜索出来的架构,紫色部分是MobileNetv1的深度可分离卷积模块,绿色的是MobileNetV2的逆残差模块,红色的是带注意力机制的mobile SE模块。比较有趣的是,AI自己搜出来的卷积核里有5x5的卷积,跟主流的人工设计的架构里基本是3x3的卷积核有点不一样,说到底深度学习还是一门试验科学,最终好的模型也是试出来的。

3.题外话

目标优化函数导致最终搜索出来的模型那块是比较有意思的,类比现实的组织,评绩点的时候,如果上头给你定了一个硬指标,保证硬指标就能够拿到平均分,没达到这个指标,则按照程度给予严厉的惩罚,则最终导致大多数人都会选择相对保守的执行策略,大家都更愿意停留在舒适区,宁愿少做也不愿犯错;如果虽然有一个硬指标,但是允许你在一定程度上犯错,则会有更多人选择更多样的执行策略,而且更愿意试错。

4. 参考

[1] 【精读AI论文】谷歌轻量化网络Mnasnet(神经架构搜索)

[2] MnasNet:终端轻量化模型新思路

[3] 如何评价 Google 最新的模型 MnasNet?

(完)

标签:函数,卷积,模型,笔记,轻量化,搜索,LAT,Mnasnet,Block
From: https://www.cnblogs.com/harrymore/p/16760027.html

相关文章

  • 计网学习笔记(2)——物理层
    NoteoftheComputerNetworkingReference:DataCommunicationsandNetworking(ForthEdition)Chapter3带宽符合信号包含的频率范围称为带宽(bandwidth)。带宽是最大......
  • PyTorch搭建AlexNet实现猫狗分类学习笔记
    PyTorch搭建AlexNet实现猫狗分类一篇简单的学习笔记学习视频:https://www.bilibili.com/video/BV18L4y167jr/?spm_id_from=333.1007.top_right_bar_window_custom_collect......
  • 学习笔记六
    第三章3.1~3.2多任务处理与进程多任务处理:多任务处理指的是机器同时进行几项独立活动的能力。在计算机技术中,多任务处理是通过在不同任务之间切换实现的。虽然在一个......
  • 初学C语言笔记221007
    鹏哥花了点时间教大家投资fread返回值是真实读到的元素个数while(fread(&s,sizeof(structS),1,fp){//}课后扩展mySQLfseekftellintpos=ftell(fp); //文件指针相对......
  • 系统分析师:学习笔记之一:浮点数相关
    1.尾数+阶码;2.尾数表述精度,越大,精度越高;3.阶码越大,表示的范围大;4.2个浮点数的运算,通常是尾数的移码。......
  • 图论笔记
    ♠useC++11无向图节点的度:无向图中与节点相连的边的数目。有向图......
  • 第三章读书笔记
    第三章读数笔记Unix/Linux进程管理3.1多任务管理一般来说,多任务处理指的是同时进行几项独立活动的能力。在计算机技术中,多任务处理指的是同时执行几个独立的任务。在单......
  • SPI总线学习笔记
      SPI是串行外设接口(SerialPeripheralInterface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间......
  • [Python学习笔记]使用Python编写自动化程序处理锂电池保护板数据 - Preface
    因为工作需要,目前要开发一款自动化处理数据的程序。该程序的功能是自动读取锂电池BMS保护板数据excel,然后分析数据,来判断保护板中可能存在问题的电芯,并显示在交互界面上。......
  • 深入理解css 笔记(1)
     如果要掌握css,一定要理解基础知识,并且深入的理解。css的意思是层叠样式表。我们先讲层叠。我们需要理解浏览器如何解析样式规则。每条规则单独看很简单,但是当两条规则......