基于 RL 的神经架构搜索如何工作?

人工智能 强化学习 神经架构搜索
2021-10-19 12:23:37

我已经阅读了该线程中链接的许多论文和文章,但我无法找到我的问题的答案。

我已经建立了一些小型 RL 网络,并且我了解 REINFORCE 的工作原理。不过,我不太明白它们是如何应用于 NAS 的。通常 RL 代理将状态映射到动作并获得奖励,以便他们可以改进决策(选择哪个动作)。我知道奖励来自子网络的准确性,而动作是编码网络架构的一系列数字。

什么作为状态传递给 RL 代理?我读过的论文和文章中似乎没有提到这一点。是以前的网络吗?示例输入数据?

1个回答

(我将重复一些您已经知道的细节,以便其他用户也可以理解上下文)。

神经架构搜索 (NAS) 论文中(我在对您在问题中链接到的问题的回答中提到),代理是控制器(另请参阅这个问题在强化学习中控制和动作之间有什么区别? ),它被实现为循环神经网络 (RNN)。这个控制器根据它收到的奖励产生动作(或控制),它们是表示神经网络超参数的字符串(参见例如第 3.2 节),在这种情况下,它是验证数据集的准确性设计(由控制器)和训练的神经网络获得。

在这种情况下,控制器因此是强化学习代理(或策略)。控制器是一个 RNN,由参数向量表示,θc. 该控制器使用策略梯度方法进行训练,以最大限度地提高验证数据集的预期精度(参见本文的第 3 节)。所以θc使用这种策略梯度方法进行调整,以便控制器生成 NN 架构,在完成某些任务后,在验证数据集上产生更高的准确度。

因此控制器的目标函数为

J(θc)=E[R]

在哪里R是验证数据集的准确度。为什么预期您将多次执行此操作,因此,直观地说,您需要使用控制器可能产生的多个神经网络架构在验证数据集上获得的平均准确度。

验证数据集的准确度,表示为R, 实际上是不可微的,所以作者使用了著名的 REINFORCE 算法(这里我就不解释了)。作者实际上使用了 REINFORCE 算法的近似值(参见第 3.2 节)。

1mk=1mt=1TθclogP(atat1:1;θc)Rk

所以,给定这个公式并考虑到 REINFORCE 算法的公式,那么代理的状态似乎是at1:1,即agent之前的动作。(回想一下,代理是一个实现为循环神经网络的控制器)。