功放parameter是什么意思 parameter是什么意思( 六 )


除了 Node 之间的连线外 , ENAS 论文里面可以训练的超参数还包括上图中的激活函数 , 也是通过 controller 模型输出的一组参数来决定每个 Node 使用的激活函数 , 而这些激活函数不需要重新训练 , 只需要直接加载共享权重然后做一次 Inference 来参与模型评估即可 。
很多人可能觉得目前共享的权重比较简单 , 只能实现矩阵乘法和加法 , 也就是全连接层的作用 , 但在图像方面会用到更多的卷积网络 , 也会有 filter size、polling kernel size 等参数需要选择 。实际上 ENAS 已经考虑这点了 , 这些 Node 拥有的权重以及使用权重的方法被称为 Cell , 目前已经提供乘法和卷积这两种 Cell , 并且在 PTB 和 Cifar10 数据集上做过验证 , 当然未来还可以加入 RNN 等 Cell , 甚至多种 Cell 一起混用 , 当然这个在实现上例如前置节点的连线上需要有更复杂的判断和实百思特网现 。
对于 ENAS 的 controller 模型的参数调优 , 论文中使用的是增强学习中的 Policy gradient , 当然正如前面所提到的 , 使用贝叶斯优化、DQN、进化算法也是没问题的 。不过目前 ENAS 的 controller 模型和共享权重的实现放在了一起 , 因此要拓展新的 controller 提优算法比较困难 , 未来我们希望把更多的调优算法集成到 Advisor 中(目前已经支持 Bayesian optimization、Random search、Grid search , 正在计划支持 Policy gradient、DQN、Evolution algorithm、Particle swarm optimization 等) , 让 ENAS 和其他 NAS 算法也可以更简单地使用已经实现的这些调优算法 。
总体而言 , ENAS 给我们自动超参调优、自动生成神经网络结构提供了全新的思路 。通过权值共享的方式让所有生成的模型都不需要重新训练了 , 只需要做一次 Inference 就可以获得大量的 state 和 reward , 为后面的调优算法提供了大量真实的训练样本和优化数据 。这是一种成本非常低的调优尝试 , 虽然不一定能找到更优的模型结构 , 但在这么大的搜索空间中可以快速验证新的模型结构和调优生成模型结构的算法 , 至少在已经验证过的 PTB 和 CIFAR-10 数据集上有了巨大的突破 。
当然也不能忽略 ENAS 本身存在的缺陷(这也是未来优化 ENAS 考虑的方向) 。首先是为了共享权重必须要求 Node 数量一致会限制生成模型的多样性;其次目前只考虑记录前一个 Node 的 index , 后面可以考虑连接多个 Node 制造更大的搜索空间和更复杂的模型结构;第三是目前会使用某一个模型训练的权重来让所有模型复用进行评估 , 对其他模型不一定公平也可能导致找不到比当前训练的模型效果更好的了;最后是目前基于 Inference 的评估可以调优的参数必须能体现到 Inference 过程中 , 例如 Learning rate、dropout 这些超参就无法调优和选择了 。
总结
最后总结下 , 本文介绍了业界主流的自动生成神经网络模型的 NAS 算法以及目前最为落地的 ENAS 算法介绍 。在整理本文的时候 , 发现 NAS 其实原理很简单 , 在一定空间内搜索这个大家都很好理解 , 但要解决这个问题在优化上使用了贝叶斯优化、增强学习等黑盒优化算法、在样本生成上使用了权值共享、多模型 Inference 的方式、在编码实现用了编写一个 Graph 来动态生成 Graph 的高级技巧 , 所以要读好一篇 Paper 需要有一对懂得欣赏的眼睛和无死角深挖的决心。
本文致谢 Hieu Pham、Melody Y Guan、Barret Zoph、Quoc V Le、Jeff Dean 。

推荐阅读