神经网络架构搜索

神经网络架构搜索

神经架构搜索(NAS),它就是一门专门研究如何可以不借助于人工的人工调试的方式就可以达到自动化设计高性能深度神经网络架构的技术。NAS本质上是一个优化问题,通过合适的优化算法对NAS进行求解,最终自动化得到一个神经网络的结构。

在文献当中,通常将NAS表示为右下角的优化问题,* $D_{train}$和$D_{valid}$分别代表训练集和验证集, $A$代表网路架构的搜索空间,$_A$代表其中的一个解。搜索过程就是从$A$中搜索出$_A$,在训练集上训练之后再在验证集上测试使误差最小,其中误差用$L$表示。**展开来说就是设计搜索空间$A$来找到解$_A$**。

通常我们找不到精确搜寻的算法,所以我们必须要考虑一些复杂的优化方法通过迭代的方式搜索获得(NAS搜索策略),在搜索过程中,需要将搜索的结果通过性能评估。总的来说,一个NAS算法由三个部分组成:搜索空间、搜索策略和性能评估。

搜索空间

根据搜索空间的颗粒度设计不同,目前搜索空间可以大概分成以下四类:

  • Layer-based: 默认是层与层之间顺序连接
  • Block-based: 每个块包含多个层,每个块里面每个层的设计是不一样的
  • Cell-based: 每个cell中包含多个块
  • Topology-based: 关注的是基本单元如何连接

搜索策略

包括强化学习(R-L)方法、梯度下降方法和EC方法等

强化学习基于固有的强化学习框架,通过控制器在搜索空间中采样出来几个单元组成网络,并对性能进行评估。将评估的结果根据强化学习的策略设计搜索更好的解。这类工作是NAS比较早期的工作。缺点是比较耗时,并且无法做到自动化。

基于梯度下降的方法主要关注基本单元是如何连接的。这种方法将NAS搜索问题建模为分类问题,再用梯度方法求解。缺点是没有数学保证,另外该方法需要构建一个大网络(supernet)。该方法效率高主要是因为加入先验,或者说是利用了weight-sharing的机制,并不是梯度下降带来的效率高的问题。

基于EC的方法基于EC的基本框架。相较于其他两种方法,EC方法的优势是可以实现完全的自动化。

性能评估

为了指导搜索策略高效的运行,搜索一次之后到底往哪个方向搜索,需要知道当前的搜索情况,这也是EC里面经常提到的fitness evaluation。这是任何迭代搜索算法都需要的。在NAS里面性能评估主要是对深度神经网络在训练集上进行训练,但随着网络规模或者数据量的扩大,训练时非常耗时的。大量的NAS搜索都面临时间代价的问题。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2024 John Doe
  • 访问人数: | 浏览次数:

让我给大家分享喜悦吧!

微信