神经架构搜索Neural Architecture Search综述

举报
苏道 发表于 2022/07/30 15:29:31 2022/07/30
【摘要】 神经结构搜索从入门到放弃

搜狗截图22年07月30日1046_1.jpg


引言

          机器学习在现代生活中起着重要作用,如越来越【智能】的汽车,机器学习在其自动驾驶系统的几乎每一个部分都发挥着关键作用,帮助我们的汽车了解周围环境,了解世界,预测他人的行为,并决定车辆自身的下一步行动。
          智能汽车的感知系统往往采用神经网络组合的形式,使我们的车辆能够解释传感器数据来识别物体,并随着时间的推移跟踪它们,这样它就能深入了解周围的世界。这些神经网络的创建往往是一项耗时的任务;优化神经网络模型结构,以实现在自动驾驶汽车上运行所需的精度和速度,这是一个复杂的微调过程,需要工程师数月的时间来完成新任务。
           而神经架构搜索就是来释放人力,自动搜索可获得最佳验证精度(其他指标,如延迟)的模型结构。


什么是神经架构搜索

           神经网络里面很多parameters参数,也叫做weights权重,比如全连接层中的权重矩阵,卷积中的卷积核,都是网络需要训练的参数,而超参数是在网络训练前就提前设置好的参数,神经网络的参数显然依赖于于训练数据和超参数,超参数一般有两种,一种是网络结构参数,一种是优化算法,比如sgd还是adamlrbatch 大小啊,而我们去训练一个模型,就是期望在用训练数据和优选超参数去迭代更新网络的权重,最后得到更高的测试精度的这样一个过程,如下图所示:

1.jpg

网络结构参数

           网络的结构参数包括啥,以下图这个resnet50的结果为例,结构参数可以是,kchannellayer,分别代表是kernel size的大小、channel数,以及层数。

           2.jpg

而实际上,现在市面上常用的模型结构如resnet、transformer、mobilenet都是人工设计的结构,不同的结构有不同的偏好。倘若面对一个新的任务,想手工去调整模型结构来获得更高的增益,是非常困难和不划算的事情,因为这样的调整往往仅仅针对特定数据集,特定硬件,下次一个新的场景,可能就完全不适用。并且微调模型结构非常消耗资源,也非常需要专业知识,更重要的是,不是每次都行


神经架构搜索三要素

           神经架构搜索的执行流程如下图所示:

5.jpg


搜索空间

           简单地说,对于搜索空间的定义就是,所有可能被找到的模型结构的集合。举个例子,如下表所示,假定channel的选项有4种,kernel size的选项也有3种,假定模型有50层,那么搜索空间的大小就是(4*3)^50,堪称巨大,要想在这么大的空间寻找一个最优解,是非常困难的事情。

3.JPG

例子1 - Random Search

           最简单的神经架构搜索方法估计就是random search了,想法很简单,随机挑选一组结构超参,训练至完备,看看精度,然后再随机挑选另一组结构超参,训练至完备,如此循环反复一定次数后,选取精度最高的那组结构超参输出,流程如下图所示,是不是和大家在做调参的过程非常相似。

4.jpg

           但是这样的搜索方式也有非常致命的缺点:

           1、每一次训练的极度耗时间

           2、空间太大了,想要更优秀的模型结果非常难穷尽

           有此引出一个概念,搜索策略。


搜索策略

           可以看到模型集合太大、搜索空间太大,如果用最朴素的想法,一个个模型去验证性能,选最好的模型出来,穷尽毕生之力也穷不尽,所以我们定义一个搜索策略,帮助我们更加聪明的找到一个好的模型架构,常用的搜索有,强化学习,遗传算法等等,当然随机搜索如例子1,也是搜索策略之一。

           我用最简单的例子1,随机搜索方案给大家讲解一下整个nas流程就是,采样出一个模型结构,训练,验证,然后再采样,训练,验证,迭代一定次数后,给出最优。而若是是采用,遗传算法,也是一样,采样,训练,验证,选出好的模型,进行遗传变异,变异出来的再去训练,验证,迭代一定次数后,优胜劣汰,给出最优。

           那这套方法大概需要花费多少时间呢,回顾这个流程,大家都是知道把一个模型训练充分是非常需要时间,何况是每次迭代都需要训练一批模型,并且当想要获得一个更好的性能,就意味要探索一个更加广泛的模型空间,迭代更多的次数,而这样的方法的缺点在于随着探索的增加,不可避免的所需要的时间或者说探索的成本也在线性增加,这是难以承受的,时间成本可见下图:

6.jpg

           那看到这里大家也会说,今年都20222222年了,这样也很慢怎么办,能不能快点,这就带来一个思考,怎么样探索更加广泛空间又不提升探索成本呢?后续继续补。。。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。