这是一篇CVPR2021的关于NAS的论文,作者发现DARTS中在生成最优架构时对每个内部节点保留与前驱节点相连边中权值最大的两条,这种使用操作权重来衡量架构优越与否是不合理的,寻找到的结构往往不是最优的而是次优的,这也就是为什么使用DARTS搜索到的结构运行的精度有时还不如随机搜索的精度高。作者还附上实验进一步证实这个发现:
上图左侧是a、c两图是根据操作重要性选择边的方法,每次选取两条边,可以看出模型精度和边组合没有相关性,右侧b、d两图是作者提出的边组合权重选择边的方法,这里边组合同模型精度高度相关。
对于上述问题,作者决定解耦边重要性和操作权重的关系,首先根据权重选择保留最大操作,然后使用边组合来决定保留哪条边,具体来讲:
其中i代表其前驱节点,遵循DARTS对每个节点选择其与两个前驱节点相连。
对节点的拓扑空间连续化:
在实际运行时不需要知道边组合c,只需从包含该边的组合中聚合其权重,用公式表示为:
其中Ν(c)表示边组合c的边数。
结合权重,得到节点的特征表示:
使用模拟退火算法弥合优化差距:
不同于DARTS的双层优化,使用一阶优化:
以上方法时针对手动设置边组合中的边数,作者后面又介绍了自动搜索边数的方法,这里暂且不表。
作者对DARTS类方法操作搜索过程进行改造,使用组策略进行搜索,具体来说,就是从操作搜索空间中分离出许多个子搜索空间,分别对其进行搜索,在每个子搜索空间中取权重最大的操作,公式化表示如下:
这样,在拓扑搜索阶段,拓扑相关和拓扑无关的操作都有机会被选择,由于同时优化操作权重和拓扑结构会带来误差,作者使用模拟退火方法,在拓扑搜索早起固定操作权重单纯进行拓扑搜索,一定epochs后再更新操作,过程如下图:
附上ImageNet上实验结果:
作者最后进行消融实验,发现:
增加拓扑搜索阶段和操作分组可以提升现有DARTS类方法的精度;
边缘组合权重可以直接反映边缘选择的目标,移除边数限制可以进一步提升精度;
操作搜索策略需要平衡拓扑相关(跳跃连接)和无关(空洞卷积)的操作,保留两种操作(一种与拓扑相关,一种与拓扑无关)足以进行拓扑搜索。
以上。