论文链接:Differentiable Architecture Search
源代码:quark0/darts
背景
我们现在主流的效果最好的两种方法,进化学习(evolution)和强化学习(Reinforcement),他们的搜索空间都是不可微的,而现在作者提出了一种可微的方法,可以用梯度下降来解决架构搜索的问题,所以效率可以比之前不可微的方法快几个数量级。可以这么通俗的理解:之前不可微的方法,相当于是你定义了一个搜索空间(比如3*3和5*5的卷积核),然后神经网络的每一层你可以从搜索空间中选一个构成了一个神经网络,跑一下这个神经网络试结果,然后再换其它的可能,本质是在很多的组合当中尽快搜索到效果很好的那个,但这个过程是黑箱,所以我们有大量的验证过程,所以会很耗时,而这篇论文,他把架构搜索融合在模型当中,一起训练,具体怎么操作我们看下文的解析。对于是否耗时,这个有不同的评价标准,比如对于这种有大量采样,验证的方向,我们很好的支持并行,在机器足够多的情况下时间可能会很短,但这种可微串行的方法,就不太适用与机器很多的情况。
算法
会分三部分讲,第一部分讲如何定义它的搜索空间,第二部分讲梯度下降优化的策略,第三部分讲一个它的trick,使得算法效果提升,速度下降。