神经网络架构搜索——可微分搜索(P-DARTS)

华为发表在 ICCV 2019上的NAS文章,致力于解决在 proxy 训练与 target 测试的模型 depth gap 问题。

  • Paper: Progressive Differentiable Architecture Search:Bridging the Depth Gap between Search and Evaluation
  • Code: https://github.com/chenxin061/pdarts

动机

渐进式Cell搜索架构

如上图所示,在DARTS中,搜索时候是以 8 cells with 50 epochs 来进行的,而evaluate时却以 20 cells,这bias造成了精度大幅度下降;而 P-DARTS 以渐进的方式 5 cells, 11 cells, 17 cells 分别 25 epochs 来进行,这样更能接近evaluate时的情况,故性能也更好。

方法

OK,你可能会问,为什么不直接以20 cells 来进行搜索呢?好问题,理论上应该是可行的,就是太耗memory且容易网络架构过拟合;那17 cells也很深,memory够吗?这也是好问题,P-DARTS其实就是在解决这个问题:

P-DARTS原理图

如上图所示,

(a) cells=5时,每个node间有5个candidate,当训练好了25 epochs后,会有对应的softmax置信度。

(b) 接着进行 cells=11的搜索,虽然深度加了一倍多,但这时每个node间operation candidate将会减少接近一半,即把(a)中最后置信度较低的operation直接delete掉。

(c) 同样的流程,最后进行 cells=17的搜索,再砍掉置信度低的一半opeartion。通过这样的方式来tradeoff depth及memory。

实验结果

CIFAR-10

CIFAR-10结果

ImageNet

ImageNet结果

参考

[1] Xin Chen, Lingxi Xie, Jun Wu, Qi Tian, Progressive Differentiable Architecture Search: Bridging the Depth Gap between Search and Evaluation, ICCV, 2019.

[2] https://zhuanlan.zhihu.com/p/73740783

你可能感兴趣的:(神经网络架构搜索——可微分搜索(P-DARTS))