ENAS问题

控制器——一种预定义的循环神经网络(RNN),一般是长短期记忆(LSTM)循环神经网络
子模型——图像分类任务所需要的卷积神经网络(CNN)

ENAS包括三个方面:

搜索空间——所有可能的不同结构或者能够产生的子模型

搜索策略——产生这些结构或者子模型的方法

性能评估——测量这些产生的子模型效能的方法

1.控制器通过使用搜索策略产生指令集(或者,更严格地说,做出和挑选决策),来控制或者直接构建子模型的结构。这些决策就像是组成子模型中特定网络层的各种操作类型(如卷积,池化等等)。通过这些决策便能够构建子模型。一个生成出来的子模型就是众多能够在搜索空间中可能产生的模型之一。
通过控制器来生成子模型。
2.
接下来,我们将使用随机梯度下降法来训练这个子模型直到收敛,从而最小化预测类别与真是类别之间的期望损失函数(对于图像分类任务来说)。经过指定的迭代次数——我们习惯称为子迭代(child epoch)——之后,训练将完成,然后我们便可以去验证这个训练好的模型。

3.随后,我们使用REINFORCE——一种基于策略的强化学习算法——去更新控制器的参数,从而最大化期望奖励函数,也就是验证准确率。我们希望这种参数更新能产生更好的决策从而给出更高的验证准确率。

1.在ENAS中,控制器通过在大型计算图中搜索最优子图来发现神经网络结构。使用策略梯度对控制器进行训练,以选择一个子图,使验证集上的期望回报最大化。同时对所选子图对应的模型进行训练,使正则交叉熵损失最小化。
2.NAS的计算瓶颈是对每个子模型进行收敛性的训练,只是为了度量其准确性,同时丢弃所有训练过的权值

3.ENAS的DAG是NAS搜索空间中所有可能的子模型的叠加,
其中节点表示本地计算,
边缘表示信息流
每个节点上的本地计算都有自己的参数,这些参数仅在激活特定计算时使用。因此,ENAS的设计允许参数之间共享
但是,我还是不明白为什么可以参数共享
4.从一个指定的DAG和一个控制器来为递归神经网络设计单元

5.为了创建一个循环单元,控制器RNN对N个决策块进行采样。这里,我们通过一个简单的计算节点为N = 4的递归计算单元(如图1所示)来说明ENAS机制。设xt为循环单元的输入信号,ht - 1是前一个时间步长的输出我们抽样如下。
节点一:控制器首先对激活函数采样。
在我们的例子中,控制器选择tanh激活函数,这意味着循环单元的节点1应该计算。
在节点2:控制器对之前的索引和激活函数进行采样。在我们的示例中,它选择前面的索引1和激活函数ReLU。这样,计算单元的节点2
在节点3:控制器再次采样前一个索引和一个激活函数。在我们的示例中,它选择前面的索引2和激活函数ReLU
在节点4:控制器再次对之前的索引和激活函数进行采样。在我们的示例中,它选择前面的索引1和激活函数tanh
对于输出,我们简单地对所有未被选择作为输入的节点进行平均。在我们的示例中,由于索引3和索引4从未被采样为任何节点的输入,因此递归单元使用它们的平均值(h3 + h4)/2作为输出。换句话说,ht =
(h3 + h4) / 2。

在上面的示例中,我们注意到,对于每一对节点j <ℓ,有一个独立的参数matrixW (h)
ℓ,j。如示例所示,通过选择前面的索引,控制器还可以决定使用哪个参数矩阵。因此,在ENAS中,搜索空间中的所有递归单元都共享同一组参数 明白为何共享参数了
我们的搜索空间包含一个指数式的构型。具体来说,如果复发细胞有N个节点,我们允许4个激活函数(即tanh、ReLU、identity和sigmoid),那么搜索空间有4N×N!配置。在我们的实验中,N = 12,这意味着在我们的搜索空间中大约有*个模型。
培训ENAS并派生架构
我们的控制器网络是LSTM,有100个隐藏单元(Hochreiter & Schmidhuber, 1997)。这个LSTM通过softmax分类器以自回归的方式对决策进行采样:将上一步中的决策作为嵌入到下一步的输入输入。在第一步,控制器网络接收一个空嵌入作为输入。
在ENAS,有两套可学的参数:控制器的参数LSTM,用θ,和子模型的共享参数,用ω表示。ENAS的培训过程包括两个交叉阶段。第一阶段训练ω,modle的共享参数模型,在整个通过训练数据集。在PIB实验中,ω是训练大约400步,每个minibatch 64的例子,在梯度∇ω计算使用反向传播通过时间,截断35次步骤。与此同时,对于CIFAR-10,ω是训练4500张图像,分为minibatches大小128,∇ω计算使用标准的反向传播。第二训练θ,控制器的参数LSTM,固定数量的步骤,通常在我们的实验设置为2000。这两个阶段在ENAS培训期间交替进行。
详情如下。
训练孩子的共享参数ω模型。
在这一步中,我们解决控制器的政策π(m;θ)和执行随机梯度下降法(SGD)ω最小化预期损失函数Emπ [L(m; ω)].在这里,L (m;ω)的标准熵损失,计算minibatch训练数据,模型m取样π(m;θ)。梯度是使用蒙特卡罗估计计算
*********************就像上面描述的那样mi有π(m;θ)采样而来

6.模型m取样π(m;θ),即model有policyπ(m;θ)采样而来,Eqn 1提供了梯度的无偏估计,然而,这个估计比标准SGD梯度有更高的方差,其中m是固定的。然而,这也许是令人吃惊的——我们发现M = 1就可以了,即我们可以更新使用梯度从任何单一模型Mω取样π(m;θ)。如前所述,我们训练在整个训练数据通过ω。
训练控制器参数θ。
我们 固定 ω 和 更新 政策 参数 θ, 旨在 最大化 最大化 期望 的 奖励 Emπ(m;θ) [R(m, ω)]
奖励R (mω)计算验证设置,而不是在训练集上,鼓励ENAS选择overfit模型,推广而不是模型训练集。在我们的语言模型实验中,奖励函数是c/valid ppl,其中perplexity是在一小批验证数据上计算的。在我们的图像分类实验中,奖励函数是对一小批验证图像的准确性。
7.注意,奖励时验证集的精度,那再训练集上都干嘛?
8.在递归单元的搜索空间中,控制器RNN在每个决策块上采样两个决策:1)连接哪个前节点,2)使用哪个激活函数。在卷积模型的搜索空间中,控制器RNN还在每个决策块上对两组决策进行采样:1)连接之前的节点;2)使用什么样的计算操作。
9.对于递归单元,ENAS卷积网络中每一层的每个操作都有一组不同的参数。
10为什么不是应用到当前节点
在每个节点上,对前一个节点及其对应的操作进行采样后,将这些操作应用于前一个节点,并将它们的结果相加

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值