[NAS论文]AttentiveNAS: Improving Neural Architecture Search via ..
【AttentiveNAS: Improving Neural Architecture Search via Attentive Sampling】
作者:Facebook 大佬们
论文地址:https://arxiv.org/abs/2011.09011
论文源码:https://github.com/facebookresearch/AttentiveNAS
注:以下图片都来自论文原文、文字基于原文翻译和个人主观理解,作者水平很差,大家手下留情,如有错误欢迎大家指正,拜谢
【总结、太长不看系列】
1、性能超越BigNas、Once-for-all,目前2021.4.13的top1,看下图1就知道有多强。
2、从2个角度改善supernet训练,第一个是搜索空间的设置,提供了搜索更depth和narrower子架构的机会,看图2的表画红圈的部分,第二个,关注sample到架构,和fairnas、spos、或者其他采样方式不同,本文关注的是帕累托前沿的架构,关注、帕累托最佳的前沿,或者帕累托最差的前沿,狂采样前者,是一种直觉,提高上限,起到带头作用,一人得道鸡犬升天,狂训后者是提高下限,把差的acc拉高,有利用整体的训练效果。
3、要狂训帕累托相关的架构,抽一丢架构跑前向,看谁是帕累托那太慢了,所以需要一个预测器,本文训练了一个预测器来预测架构精度来筛选谁是帕累托前沿的架构。
4、其他设置基本遵循BigNas,包括三明治法则训练和in-place 蒸馏
图1
图2
【以下是细品】
【搜索空间带来的增益】
【为什么关注帕累托前沿的架构】
【架构怎么抽?】
【预测器】
- Minibatch-loss作为性能估计器:对于每个架构,使用当前小批量训练数据上的训练损失作为度量;
- 在验证集训练一个预测器,用预测器来估计性能。那这个具体怎么玩呢,先把训练集90%用来训练,10%用来test,然后无约束情况下随机采样训练30epochs,然后随机抽1024个架构,用test测acc,这样就有1024个pair【architecture、accuracy】,然后用随机森林训出一个预测器。
可以看到相关系kendall很高0.89了,所以预测还是很赞的,但是作者觉得supernet在训练过程中可能不稳定,毕竟这个只是30epoch 的时候训练出来的,会不会和stand-alone训练360epochs下的真实精度相关系差很多,所以作者又做了另一个对比。看下图
【result】
方法看的差不多了,直接看结果吧,有几组对比数据,WorstUp-50(acc)【就是训最差帕累托,k=50】,Bestup-50(acc)【训最好的帕累托架构,k=50】、WorstUp-1M (acc)【离线抽了1百万的架构,所有预测一遍得到帕累托架构的最差集合狂训,可以理解为k很大】、Bestup-1M (acc)、Uniform【uniform采样】、WorstUp-3 (loss)【就是抽3个架构根据loss大小,选出最差的】、BestUp-3(loss)。下图是以Uniform采样作为基准:
可以看到:
【总结】
NAS领域百家争鸣,但是总的来说,关注更好的搜索空间的构建和sample哪些架构,就对了
- 点赞
- 收藏
- 关注作者
评论(0)