『AI科技大本营』低耗时、高精度,微软提基于半监督学习的神经网络结构搜索算法


北京联盟_本文原题:低耗时、高精度 , 微软提基于半监督学习的神经网络结构搜索算法
『AI科技大本营』低耗时、高精度,微软提基于半监督学习的神经网络结构搜索算法
本文插图

作者 | 罗人千、谭旭、王蕊、秦涛、陈恩红、刘铁岩
来源 | 微软研究院AI头条(ID:MSRAsia)
编者按:近年来 , 神经网络结构搜索(Neural Architecture Search, NAS)取得了较大的突破 , 但仍然面临搜索耗时及搜索结果不稳定的挑战 。 为此 , 微软亚洲研究院机器学习组提出了基于半监督学习的神经网络结构搜索算法 SemiNAS, 能在相同的搜索耗时下提高搜索精度 , 以及在相同的搜索精度下减少搜索耗时 。 SemiNAS 可在 ImageNet(mobile setting) 上达到23.5%的 top-1 错误率和6.8%的 top-5 错误率 。 同时 , SemiNAS 第一次将神经网络结构搜索引入文本到语音合成任务(Text to Speech, TTS)上 , 在低资源和鲁棒性两个场景下取得了效果提升 。
NAS 在近些年取得了突破性进展 , 它通过自动化设计神经网络架构 , 在很多任务(如图像分类、物体识别、语言模型、机器翻译)上取得了比人类专家设计的网络更好的结果 。
『AI科技大本营』低耗时、高精度,微软提基于半监督学习的神经网络结构搜索算法
本文插图

图1:NAS 框架示意
NAS 主要包括一个控制器(controller)和一个评估器(evaluator) , 其中控制器负责生成不同的网络结构 , 然后交由评估器进行评估 , 如图1所示 。 评估器需要对网络进行训练 , 然后获得其在目标任务验证数据集上的准确率 , 并返回给控制器 。 控制器利用网络结构及其对应的准确率进行学习 , 进而生成更好的网络结构 。 这一过程中 , 评估器对网络进行评估的过程非常耗时 , 因为它需要对每个网络结构进行训练 , 而控制器的学习又需要尽可能多的网络结构-准确率对作为训练数据 , 从而使得整个搜索过程中评估器的耗时非常高 。 之前的工作中 , 评估器的耗时在至少上百 GPU/day (等价于几百块 GPU 运行1天) 。
随后 , 研究者们提出了利用参数共享(weight-sharing)的 one-shot 神经网络结构搜索算法 。 具体来说就是构建一个超网络 , 包含了搜索空间中所有可能的结构 , 不同结构之间共享相同子结构的参数 。 训练超网络相当于同时训练了若干个网络结构 。 此方法直接将耗时降到了 10 GPU/day 以内 , 但是由于自身问题(如平均训练时间不足)导致网络结构的准确率和其真实准确率排序关系较弱 , 进而影响控制器的学习 , 难以稳定地搜索出很好的网络结构 , 甚至有时和随机搜索的效果差不多 。
为了解决传统方法训练耗时高 , 而 one-shot 方法搜索不稳定性能较差的问题 , 微软亚洲研究院机器学习组的研究员们提出了 基于半监督学习的神经网络结构搜索方法 SemiNAS , 可以降低搜索耗时 , 同时提升搜索精度 。
方法
NAS 中的控制器利用大量的神经网络结构及其对应的准确率作为训练数据进行监督学习(supervised learning) 。 训练大量的网络结构直到收敛以获取其准确率是非常耗时的 , 但是获取无监督数据(即只有神经网络结构本身而没有对应的准确率)是非常容易的(例如随机生成网络结构) 。 因此 , 我们希望 利用大量的易于获取的无监督数据(神经网络结构)来进一步帮助控制器的学习, 这种方法称作半监督学习(semi-supervised learning) 。 这样做有两点好处:1. 提升性能:在几乎相同的训练代价(相同的有监督数据)下 , 可以利用大量的无监督数据来进一步提高搜索算法性能 , 以搜索出更好的网络结构;2. 降低时间:在达到相同搜索精度的情况下 , 通过利用大量的无监督数据 , 可以大大减少有监督数据的数量 , 以降低训练耗时 。


推荐阅读