最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

华中科大提出 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


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-01-27 14:315860

评论 1 条评论

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

Redis 核心原理与实战总结系列

码哥字节

Redis 6.0 技术专题合集

聊聊SpringBoot中的两种占位符:@*@ 和 ${*}

xiaoxi666

maven springboot

Linux之cd命令

入门小站

目录

Deutsch-Jozsa Algorithm

Si Yuan

量子计算

模块六作业

doublechun

「架构实战营」

字典树之旅03.Patricia Trie(一)

极客志

Java 自然语言处理 数据结构 算法 字典树

10.《重学JAVA》--控制语句(二)

杨鹏Geek

Java 25 周年 28天写作 12月日更

MySql优化:详细解读InnoDB存储引擎

秋水

MySQL性能优化 内容合集 签约计划第二季 MySQL InnoDB

模块二作业

Geek_e6f7f6

架构训练营

我们需要一个React框架吗?

RingCentral铃盛

React 框架 分布式应用框架

给弟弟的信第9封|初入职场攻略

大菠萝

28天写作

1-7聚合架构第八讲:ADM被骂的冤吗?

钰湚—付晓岩

企业架构 业务架构 聚合架构

电商系统微服务架构设计

天天向上

架构实战营

HHL Algorithm

Si Yuan

量子计算

🏆视差特效的原理和实现方法

德育处主任

JavaScript 前端 特效 前端特效 css特效

如何决定响应式网站的 CSS 单位?

海拥(haiyong.site)

响应式 大前端 28天写作 签约计划第二季 12月日更

1-8聚合架构第九讲:我们聊聊4个A?

钰湚—付晓岩

企业架构 业务架构 聚合架构

dart系列之:实时通讯,在浏览器中使用WebSockets

程序那些事

flutter dart HTTP 程序那些事 12月日更

【分布式技术专题】「分布式ID系列」百度开源的分布式高性能的唯一ID生成器UidGenerator

洛神灬殇

唯一ID 12月日更 UidGenerator 服务ID 百度技术

创业合伙人的选择和经营

wood

创业 合伙人 28天写作

MySql优化:MySQL体系结构及存储引擎总结

秋水

MySQL性能优化 内容合集 签约计划第二季

区块链,开启智慧养老新时代

CECBC

【Promise 源码学习】第十七篇 - async/await 简介

Brave

源码 Promise 12月日更

SQL优化和索引

lixiaofeng

SQL优化 索引优化 内容合集 签约计划第二季

Quantum Mechanics Is Different

Si Yuan

量子计算

100+行业大牛,Qcon全球软件开发者大会参会记录

看点代码再上班

技术 互联网 软件开发 Qcon

成年人除了工作以外,在社会上还要争取什么?

DaemonStone

管理 技术人生 职业发展 人生选择

预付式消费不安全怎么办?区块链技术来了

CECBC

Android C++系列:Linux网络(四)TCP详解

轻口味

c++ android 28天写作 12月日更

Redis 实战:巧用 Bitmap 实现亿级数据统计

码哥字节

redis BitMap 签约计划第二季

Servlet的生命周期

JavaEdge

12月日更

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