东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

华中科大提出 EAT-NAS 方法:提升大规模神经模型搜索速度

  • 2019-01-27
  • 本文字数:3502 字

    阅读完需:约 11 分钟

华中科大提出EAT-NAS方法:提升大规模神经模型搜索速度

神经模型搜索(Neural Architecture Search,NAS)是一种自动化的模型结构搜索方法,旨在代替深度学习专家选择最优的网络模型结构。传统的 NAS 方法都是针对小规模数据库设计的,直接迁移到大型数据库上无法保证模型的预测效果。针对这一缺陷,华中科大与地平线合作提出了一种针对大规模 NAS 问题的弹性结构迁移方法 EAT-NAS,该方法大大加快了在如 ImageNet 这种大型数据库上的搜索进程。与现有的大规模 NAS 方法相比,EAT-NAS 在八块 Titan X 配置的机器上仅需要 5 天就可以完成整个搜索过程,显著减少了搜索时间,并且得到的最优模型仍具有较高的准确度。我们对该方法做了简要介绍,本文是 AI 前线第 67 篇论文导读。

背景

由人类专家设计神经网络架构,通常需要繁琐的实验过程还容易出现错误。为了让这个过程更加高效化,许多神经结构搜索方法(Neural Architecture Methods,NAS)被提出。先不说结果如何,大部分 NAS 方法都需要非常昂贵的计算资源。例如 2017 年 ICLR 的论文《Neural architecture search with reinforcement learning》使用了 800 块 GPU 在 CIFAR-10 图像分类任务上花费了 28 天的时间进行搜索。CIFAR-10 只是一个非常小规模的数据库,而实际应用的情景往往都是大规模的数据,因此 NAS 方法在大规模数据库上的局限性成为了阻碍其发展的关键因素。


许多现有的 NAS 方法通过在小规模数据库上进行结构搜索,然后针对大规模数据库对深度和宽度进行手动调整。这一机制广泛的应用于 NAS 领域。但是由于大规模数据库与小规模数据库之间域的不同,在小规模数据库上的模型搜索算法应用于大规模数据库时,并不能保证其效果。


在这篇论文中,作者针上述的限制,提出了一种更合理的解决方案。作者使用迁移学习的方法从将针对小规模任务的结构应用到大规模任务上并进行微调。更详细地,作者使用了基于弹性框架的 NAS 方法——联赛选择,即首先使用现有的方法在小数据库上搜索神经框架,然后将上一步得到的框架作为初始化种子再在大型数据库上进行搜索。


总得来说,这篇文章的亮点主要可概括为:


  1. 提出一种弹性结构迁移机制(Elastic Architecture Transfer Machanism)用来弥补大规模任务和小型任务上进行结构搜索的差异。

  2. 由于使用了小规模数据库上的最优模型作为大型任务的初始化种子,该方法有效节省了在大规模数据库上进行模型搜索的时间。

  3. 在节省了计算资源的情况下,最终的模型仍然能达到不错的性能。

相关方法

本文提出的 EAT-NAS 方法,是在基于进化算法(Evolutionary Algorithm,EA)的 NAS 方法上进行改进的。进化算法在 NAS 领域的应用非常广泛,其详细算法如下表所示:



该算法首先在搜索空间中使用随机生成的 P 模型对种群进行初始化,随后将每个模型在数据库上进行训练和评估以获得模型的准确率。在每个进化周期里,S 是从种群中随机采样的模型。其中分数最高的模型 M_best 和分数最低的模型 M_worst 会被选出进行下一步处理。对 M_best 添加一些变换即可得到变异的模型,变异的模型会被添加到种群中进行训练、评价,同时 M_worst 会被移除。上述的搜索进程便被称为联赛选择算法。最终,再对前 k 个效果最好的模型进行重训练,选择其中最好的模型即可完成整个搜索过程。

本文算法

在将模型结构用于大规模数据库时,许多 NAS 方法只不过是依赖人类专家的先验知识,手动地修改模型的宽度和深度。与这些方法不同,EAT-NAS 对基本模型结构的各个元素进行微调得到最终可以适应大规模数据库的模型,这些元素包括结构、尺度、操作等。通过使用在小规模数据库上搜索得到的基本模型,EAT 算法可以有效地加速大规模任务上模型的搜索进程。

1 算法框架

图 1 弹性结构迁移算法框架


图 1 弹性结构迁移算法框架


EAT-NAS 的基本思想如上图所示,首先使用进化算法在小型任务上搜索最优模型,然后将其作为第二阶段的初始化种子,再使用进化算法对大规模任务进行搜索。由于使用了小任务上的最佳模型对大任务的初始种群做初始化,在大规模任务上的搜索进程明显会比从零开始的收敛速度快得多。作者使用了种群质量判别函数(Population Quality)以便在进化过程中对模型种群做出更好的评价。此外,作者在第二阶段使用了后代结构生成器(offspring architecture generator)来产生新的结构。为了同时对模型的准确度和尺寸进行优化,作者使用了 Pareto 优化进行求解,Pareto 优化是多目标优化问题中一种求最优解集的方法。

2 搜索空间

对于结构搜索来说,确定一个好的搜索空间是非常必要的。作者使用了 MobileNetV2 作为骨架网络,整个网络的结构如下图所示:


图 2 基于MobileNetV2的骨干网络结构


图 2 基于 MobileNetV2 的骨干网络结构


网络被分为了多个 block,每个 block 的结构彼此不同,它们各自包含了多个层,每个层表示一种在当前 block 中进行的多次的操作。对于每个 block,作者给出了更详细的选择条件:


  • 卷积操作:深度可分离卷积(SepConv)、膨胀率为{3,6}的移动反转瓶颈卷积(MBConv)。

  • 卷积核大小:3X3,5X5,7X7

  • 跳跃连接:每层之间是否添加跳跃连接。

  • 宽度因子:输出相对于输入的宽度扩张比率[0.5, 1.0, 1.5, 2.0]

  • 深度因子:每个 block 包含的层数[1, 2, 3, 4]


其中,每个 block 的第一层默认丢弃降采样和宽度扩张操作。


作者在搜索空间中使用了编码的方式表示网络结构,以便对神经结构进行操作。整个网络可以使用一个 block 集合来表示:



每个 block 包含了上述的五个元素,因此使用一个元组对其进行表示:



所有对网络结构进行的操作都通过改变编码的形式进行。

3 种群质量

在训练过程中,仅根据模型预测的精确度不足以判断其是否收敛。尤其是在搜索空间中,参数是共享的,这就更加难以判断精度的提高是由于参数共享还是由于更好的模型性能。因此作者提出了一种自定义的函数近似地评估模型种群质量:



其中,acc_mean 表示种群中模型的平均精确度,std 表示模型精度的标准差,w 是由超参数进行控制的权重因子:


4 规模搜索

许多 NAS 方法都会基于先验知识,将模型的规模设为一个固定值。EAT-NAS 则在深度和宽度层面上,都对模型的结构进行了搜索。为了加速搜索的过程,作者使用了两种不同的方法分别在深度和宽度层面进行参数共享。


  • 宽度层面的共享算法如下表所示,除了共享的参数以外,K_l 的其余参数均使用随机初始化。



  • 深度层面的共享方法如下所示,其中 U 和 W 分别是含有 l_u 层的两个相关的 block 的参数,这里使用 W 的参数对 U 进行共享。

  • 是一个服从正态分布的参数随机初始化函数。


5 后代结构生成器

在完成了基础模型结构的搜索后,需要将基本结构迁移到大规模任务上。作者使用了后代结构生成器(Offspring Architecture Generator,OAG)从模型种群中生成新的模型种群,OAG 会将基础模型作为新种群的初始化种子。同时,作者还定义了一个新的变换函数,通过添加一些扰动,使得输入框架可以更加轻量并同质化。算法 3 是该变换函数的详细过程:



在使用后代结构生成器产生新的种群后,再使用算法 1 中的进化算法进行最优化搜索,最终即可得到适用于大规模任务的模型结构。

实验结果

在 CIFAR-10 数据库上进行搜索

在 CIFAR-10 上的实验可以分为两步:结构搜索和结构进化。CIFAR-10 包含 5w 张训练图像和 1w 张测试图像。作者对原始训练集进行 2/8 划分,分别作为验证集和训练集。CIFAR-10 的测试集仅用来在完成最后的模型搜索后进行测试。实验过程中使用了标准的预处理和数据增强步骤。所有的图像都使用了通道均值与标准差进行白化。训练过程的详细参数可以参阅论文。


作者最终选择了前 8 个训练好的模型进行重训练,挑选其中精确度最高的作为基本结构。最终基本结构达到了 96.42%的平均测试精度,模型参数大小仅为 2.04M,平均精度的标准差为 0.05。

迁移到 ImageNet 数据库

这里使用了上一步得到的基础模型作为 ImageNet 任务的种子来生成新的模型。搜索进程在整个 ImageNet 数据库上进行。作者使用 OAG 在基本结构的基础上产生了 64 个新的结构。CIFAR-10 上得到的基本结构和迁移到 ImageNet 上网络结构如下图所示:


图 3 基本网络框架与经过弹性迁移后的框架


图 3 基本网络框架与经过弹性迁移后的框架


在 ImageNet 数据库上,整个进化过程经过 100 次突变循环即达到了收敛。也就是说,在基本模型的基础上,算上最开始的 64 个模型,仅采样了 164 个模型即找到了最优模型。而在类似的 MnasNet 中则需要采样约 8k 个模型才可达到最优,是 EAT-NAS 的 50 倍。最终的模型精度如下表所示,EATNet 表示本文提出方法得到的模型。


总结

总的来说,EAT-NAS 算法使用了一种很巧妙的设计,将模型在小规模数据库上学习到的信息用于大规模数据库上的模型搜索。作者将迁移学习的思想与进化算法相结合,在基本没有损失模型性能的基础上,极大地加速了整个优化进程。


论文原文链接:


EAT-NAS: Elastic Architecture Transfer for Accelerating Large-scale Neural Architecture Search


公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2019-01-27 14:315855

评论 1 条评论

发布
用户头像
看预告琉璃
2019-01-27 15:12
回复
没有更多了
发现更多内容

第十周学习总结

菲尼克斯

易观方舟70秒可视化埋点SDK全部开源!

易观大数据

埋点

怎么写一个超棒的 README 文档

程序员生活志

经验总结 文档

如何让“哑”终端进化,你知道吗?

华为云开发者联盟

操作系统 物联网 IoT 华为云 LiteOS

拼多多员工曝离职黑幕:要走可以,要离职证明,没有!

程序员生活志

职场 互联网公司

Spark优化之小文件是否需要合并?

华为云开发者联盟

spark 数据 cpu 内存 Spark调优

面经手册 · 第4篇《HashMap数据插入、查找、删除、遍历,源码分析》

小傅哥

Java 小傅哥 hashmap 面经 红黑树

翻译: Effective Go (4)

申屠鹏会

翻译 Go 语言

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第7章定位

Geek_8dbdc1

巴黎世家土味病毒营销,B端创业初期,如何用营销壮大种子用户?

北柯

创业 营销 tob

mini-vue之proxy代理

晓枫

vue.js

全民加速节:全站加速在游戏行业的最佳实践

阿里云Edge Plus

CDN 动态加速

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局

Geek_8dbdc1

计算机网络基础(十八)---传输层-TCP的流量控制

书旅

TCP 计算机网络 协议栈 网络层 流量控制

第10周作业

小胖子

linux终端的快捷命令汇总

良知犹存

Linux

B 站收藏 10W+,GitHub 标星 6K+,肝了这门计算机速成课!

JackTian

GitHub 编程 程序员 B站 计算机基础

超市趣味游戏关卡设计

孙志平

肯耐珂萨D1轮融资资方阵营揭晓,跟投方为中南资本、青发集团

人称T客

哈希算法的设计要点、应用场景

多选参数

哈希 hash 哈希算法

React TypeScript项目基本构建

JackWangGeek

libuv 异步网络编程之 TCP 源码分析

Huayra

网络编程 libuv libuv 源码分析

第十周命题作业

菲尼克斯

OpenTSDB 数据存储详解

vivo互联网技术

数据库 时序数据库

为什么需要企业架构师?

周金根

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第9章FlexBox实战有路网

Geek_8dbdc1

悄咪咪提高团队幸福感 & Surprise!

Kerwin

Java 开源

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第6章表格与表单

Geek_8dbdc1

192.168.52.165/25是啥意思?

书旅

IP 网络 CIDR

前端科普系列(1):前端简史

vivo互联网技术

html 大前端 Web

工业互联网网络安全渗透测试技术研究

几维安全

网络安全 数据安全;工业互联网 移动应用安全 渗透测试

华中科大提出EAT-NAS方法:提升大规模神经模型搜索速度_AI&大模型_Jiemin Fang_InfoQ精选文章