阅读笔记
论文贡献:
1. 指出Origin Darts中存在的两个现象: 即搜索的后期skip-connection数量过多,与由连续近似到离散结构的过程中存在性能差距的gap;
2. 分别根据上述两个问题,给出对应的解决方法: 包括将操作权重的筛选独立,提出一个新的loss来抑制近似过程中的性能差距;
3. 较为系统地总结了自Darts横空出世来各种对其性能的改进与分析;
论文方法:
1. Darts的性能瓶颈在哪里?
作者观察到,Darts在搜索的后期会出现大量的skip connection操作,skip connection对其他操作有着较为明显的抑制。虽然在search阶段的性能可能仍有小幅上涨,但在对提取出的离散结构重新进行完整训练时却发生精度的下降。
作者认为,大量skip connection操作的出现与在结构输出处使用的 有关,这是因为会以牺牲其他成员的权重为代价来增加某一成员的权重。这意味着,如果某个成员在早期拥有比其他成员更好的表现(哪怕是极轻微的优势),它也可能会被一直强化,从而逐渐占据主导地位。而在设计时所采用的加权和形式,本质上与残差连接 的思想接近。这一block的设计思路也在一定程度上放大了skip connect的优势。在由搜索切换到完全训练阶段,只选取top-2的操作,也使得其他操作无法得到筛选。
本文分析的第二个性能瓶颈在于由连续到离散结构的近似过程存在性能差距的gap。在NAS领域,几乎所有的搜索策略都会面临一个问题,即搜索阶段的结构表现与重新独立训练的结构表现之间的相关性。NAS任务需要将该相关性做的很高才能使得整个工作有意义,否则,随机搜索可能都会取得一个比较好的结果。
也面临相同情况,即由退化到会带来性能的gap。作者认为,在最坏的情况下,搜索和重训练之间的gap甚至会影响操作的选择。同时,在实验中也观察到,所谓的“优势”和“劣势”操作之间的权重差微乎其微。权重本身并不能拉开差距,可能我们选择了权重为0.25的op,但并不代表权重0.24的op操作就不可取。
2. 如何突破性能的瓶颈
1)将权重操作的归一化独立开
既然要归一化权重,又要让权重之间独立互不干扰,那么将替换为就是一个相对自然的选择;作者也在系统回顾时说明了这一改变与其他论文中思路的对比,包括先验地约束skip connection的数量、在操作后加入dropout操作以及引入早停止机制等等。
2) 提出一个新的zero-one loss作为正则项引入损失函数
在上面关于性能gap的分析中,也可以看到,op与op之间的weight差距不够大,不能显著地引导区分所谓的好操作和坏操作。为此,作者设计了一个新的损失函数,作为正则项加入最终的损失函数,来引导将权重区分得更加明显。该设计的初衷就在于,假如理想情况下搜索到最后得到的就是一个独热码向量,那么gap也就不存在了。
总的损失函数为:
论文结果:
在CIFAR-10上:
在ImageNet上:
结论:
通过研究存在的两个性能瓶颈,分别提出了独立权重参数和设计新的损失函数的思路,在分类任务上能够取得SOTA的结果。