nas|自动机器学习里的神经架构搜索(NAS)技术是什么?

nas|自动机器学习里的神经架构搜索(NAS)技术是什么?

文章图片

nas|自动机器学习里的神经架构搜索(NAS)技术是什么?

文章图片




神经架构搜索有望加快寻找神经网络架构的过程 , 从而为给定的数据集产生良好的模型 。神经架构搜索是为给定数据集自动找到一个或多个架构的任务 , 这些架构将为给定的数据集生成具有良好结果(低损失)的模型 。 神经架构搜索目前是一个新兴领域 。 正在进行大量研究 , 有许多不同的方法来完成这项任务 , 而且通常没有单一的最佳方法——甚至没有单一的最佳方法来解决图像中的对象识别等特殊类型的问题 。
神经架构搜索是AutoML的一个方面 , 以及特征工程、迁移学习和超参数优化 。 这可能是目前正在积极研究的最难的机器学习问题;
甚至神经架构搜索方法的评估也很困难 。 神经架构搜索研究也可能既昂贵又耗时 。
或者说 , 相当的耗费计算资源 , 计算资源就是钱呀 。
【nas|自动机器学习里的神经架构搜索(NAS)技术是什么?】改进神经架构搜索的动机是相当明显的 。 神经网络模型的大多数进步 , 例如图像分类和语言翻译 , 都需要对神经网络架构进行大量手动调整 , 这既费时又容易出错 。 即使与公共云上高端 GPU 的成本相比 , 数据科学家的人力成本也非常高 。
正如多位作者(例如Lindauer 和 Hutter、Yang 等人以及Li 和 Talwalkar)所观察到的 , 由于多种原因 , 许多神经架构搜索 (NAS) 研究都是不可重复的 。 此外 , 许多神经架构搜索算法要么无法胜过随机搜索(应用了提前终止标准) , 要么从未与有用的基线进行比较 。
杨等人 。 表明许多神经架构搜索技术难以显着击败随机抽样的平均架构基线 。 (他们称他们的论文为“NAS 评估非常困难 。 ”)他们还提供了一个存储库 , 其中包括用于评估多个不同数据集上的神经架构搜索方法的代码以及用于增强具有不同协议的架构的代码 。
Lindauer 和 Hutter根据他们的文章提出了一个NAS 最佳实践清单 。
发布代码的最佳实践对于您报告的所有实验 , 检查您是否发布了:

  • ·用于评估最终架构的训练工作流程
  • 搜索空间代码
  • 用于最终评估工作流的超参数以及随机种子
  • NAS 方法的代码
  • NAS 方法的超参数 , 以及随机种子

埃尔斯肯等人(Elsken et al.2018)对神经架构搜索方法进行了调查 , 并根据搜索空间、搜索策略和性能估计策略对它们进行了分类 。 搜索空间可以用于整个架构 , 逐层((macro search) , 或者可以限制为组装预定义的单元(cell search ) 。
神经架构的搜索策略包括随机搜索、贝叶斯优化、进化方法、强化学习和基于梯度的方法 。 所有这些方法都有成功的迹象 , 但没有一个真正脱颖而出 。
估计神经网络性能的最简单方法是根据数据训练和验证网络 。 不幸的是 , 这可能导致神经架构搜索需要很大计算量 。 减少计算的方法包括降低保真度估计(更少的训练时期、更少的数据和缩小的模型);学习曲线外推;热启动训练;和权重共享的 one-shot 模型(子图使用 one-shot 模型的权重) 。 所有这些方法都可以将训练时间减少 。
然而 , 这些近似值引入的偏差尚未得到很好的理解 。
微软的 Petridish 项目微软研究院声称已经开发出一种新的神经架构搜索方法 , 该方法将快捷连接添加到现有网络层并使用权重共享 。 添加的快捷连接有效地在增强层上执行梯度提升 。 他们称这个项目为 Petridish 。

相关经验推荐