SNAS:比DARTS更随机的

原文地址:https://arxiv.org/pdf/1812.09926.pdf

参考博客:AI科技大本营雷锋网喜欢打酱油的老鸟

原本是打算略读这篇的……不过读着读着愈发感觉到这里面承载的知识含量,因此开一贴详述。

1.本文做了什么?

DARTS将网络架构搜索变得可微分,大幅提高了速度,但在最终选择离散架构时只是粗暴的选择了概率最高的结果(并无数学依据),并且在优化部分只能进行“两步走”,分开优化网络权值和各操作权值。详细请见我的DARTS介绍

而SNAS与DARTS最大的不同在于,其在搜索环节就通过概率实现了采样(Sample),这也使他们最终搜索到的网络无需fine-tune。在摘要中就提到:同时在一次反向传播中训练神经元参数和网络分布参数。而由商汤自己撰写的中文介绍中,他们介绍自己的贡献是:

  • 与基于强化学习的方法(ENAS等)相比,SNAS的搜索优化可微分,搜索效率更高,可以在更少的迭代次数下收敛到更高准确率。
  • 与其他可微分的方法(DARTS等)相比,SNAS直接优化NAS任务的目标函数,搜索结果偏差更小,可以直接通过一阶优化搜索。而且结果网络不需要重新训练参数。
  • 此外,基于SNAS保持了概率建模的优势,作者提出同时优化网络损失函数的期望和网络正向时延的期望,扩大了有效的搜索空间,可以自动生成硬件友好的稀疏网络。

2.本文是怎样做的?

0.一些基础知识

传统来说,NAS任务因为需要依次选择各连接与操作而被视为一个马尔可夫决策过程(MDP)。而本文在此基础上进一步总结,认为NAS是一个确定环境中的完全延迟奖励的任务,因为其只有选定了网络的所有连接与操作,才能从训练结果中看出网络的效果,也即强化学习方法中的奖励。如下图所示。

640?wx_fmt=gif

强化学习通常使用TD-Learning进行优化。具体来说,就是将这一动作在未来的期望作为损失函数,在执行期间通过动态规划对其进行优化。但是随着网络复杂度的提升,对未来的预期偏差会增加,导致网络需要更多次动态规划修复这一偏差,进而造成了时间损失。

而延迟奖励会增加这一偏差。Rudder等人经严格证明,得到了如下结论:

  • 延迟奖励会指数级延长TD的收敛需要的更新次数; 
  • 延迟奖励会给指数级多的状态的MC(蒙特卡洛采样)价值评估带来抖动。 

他们提出的解决方法是绕过TD和MC,用一个神经网络拟合每个trajectory的得分,从而通过梯度回传将得分分配到每个输入上。他们的实验也证明这种方法能够极大提升收敛速度。但是其需要额外的数据和训练,且可解释性(分配是否合理)较差。

1.对NAS重新建模

传统基于强化学习的NAS的方法可以概括为每一步的决策,以及最终通过TD对决策贡献的划分。如下图。

TB15d.7DxnaK1RjSZFtXXbC2VXa.gif

在这个过程中,网络本身的损失函数和强化学习agent的损失函数并不互通。因而只能进行两步走的迭代优化,导致优化速度变慢。

而本文受Rudder等人启发,用损失函数(使输出与每个输入直接相关)替代准确率,就可以使NAS问题可微。具体来说,本文继承了DARTS的思想,但是并不是直接训练所有操作的权值,而是通过决策Z对子网络进行采样,并根据所有子网络的表现构建损失函数。具体来说,从母网络中产生子网络,可以通过在母网络的每一条边的所有可能神经变换的结果后乘上一个one-hot向量来实现。而对于子网络的采样,就因此自然转化为了对一系列one-hot随机变量的采样(包含0操作,即不连接这条边)。

640?wx_fmt=gif

如此就将网络的参数θ和连接的参数Z整合在了一起。接下来就是如何求梯度的问题了。

后面写不下去了。。。实在看不懂。之后如果有更深入的理解再更

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章