你还在手动调参?自动化深度学习了解一下!(CVPR2020 Tutorial)

就在今天,IEEE国际计算机视觉与模式识别会议 CVPR 2020 (IEEE Conference on Computer Vision and Pattern Recognition)  2020 开始了!原定在华盛顿州西雅图的华盛顿州会议中心举行,但是当前全球疫情势态严峻,CVPR 2020在线 虚拟举办 ,从6月14到到6月19日举行。

http://cvpr2020.thecvf.com/

根据CVPR 2020官方公布论文收录结果,在6656篇有效投稿中,共有1470篇论文被接收,接收率为22%左右,相较去年25%的入选率,同比下降3%。

CVPR 2020 接受论文列表:

http://openaccess.thecvf.com/CVPR2020.py

现在,我们来介绍一个优秀的Tutorial工作:

(以下内容来源于张航@知乎,https://zhuanlan.zhihu.com/p/148168883)

Tutorial 网站:https://hangzhang.org/CVPR2020/

计算机视觉领域需要 AutoML 吗?

自 AlexNet 以来,计算机视觉领域的科研的重心由 feature engineering,转化为 network engineering,各种网络结构层出不穷。然而随着网络设计选择空间的扩大,手动寻找最优的结构设计变得越发困难,系统地对网络结构进行搜索成为神经网络设计的 必然发展方向 。其实不仅仅是网络结构,最近自动数据增强等方向的发展也证明了超参优化是计算机视觉领域取得 SoTA 的 必备手段

人脑通常擅长思考模块化的东西,但是对于高维度的搜索空间,人们倾向于 grid search,实际上这种做法在超参优化上是非常低效的。如何更加有效地利用科学地搜索算法,以及高效的工具能够让你在新一轮的角逐中领先一步。

CVPR Tutorial 主要内容

为了能够为大家比较系统地了解 AutoML,神经网络结构搜索,超参优化等领域,我和来自麻省理工的韩松教授,还有亚马逊的 Dr. Cedric Archambeau 和 Dr. Matthias Seeger 等学者一起举办了 “From HPO to NAS: Automated Deep Learning” Tutorial,主要内容包括:

  1. AutoML 背景知识和概述 (Cedric Archambeau, Amazon)

  2. 介绍 AutoGluon 工具箱 (张航, Amazon)

  3. 神经网络搜索的前沿 OFA Network (韩松, MIT)

  4. 动手学习部分 ( @吴冲若, 朱力耕 @Lyken, 唐昊天,Thibaut)

(Tutorial 当天 06/15~06/16,我们会提供 GPU 机器给大家动手学习准备的资料。目前我们网站上的视频仅提供了 YouTube 链接,我们随后会提供 B 站链接。)

误区:网络结构搜索与超参优化很贵吗?

我认为大家可能对网络结构搜索和超参优化领域有个误区,就是认为这些方法一定“很贵”,所在实验室或者团队资源不足,很难跟上。这可能是因为早年来自谷歌的一些比较开创性的工作都相对“暴力”,然而最新的进展让这些原本很耗资源的领域变得更加高效。以网络结构搜索为例,近两年来领域内很多工作都极大地加速了搜索过程,比如 DARTS,ENAS,ProxylessNAS,FBNet 等工作通过复用网络权重参数,交替训练网络结构参数和权重参数的方式,仅需要一次训练就可以搜索到最佳结构,极大地减小了对资源的需求。自动数据增强(Auto Augment)取得了很好的效果,但是其搜索过程很费资源,最近快速数据增强(Fast AutoAugment)将搜索速度提高了几百倍。所以这些你认为可能“很贵”的领域,可能不再那么耗资源了,而且这很可能是新科研时代的发展方向。

AutoML 工具箱:工欲善其事必先利其器

作为一个计算机视觉领域的研究人员,从我自己的角度来看,我需要一个 automl 工具箱可以弥补我对其他领域理解的不足,比如分布式管理,以及参数优化算法,而这些正是 AutoGluon 工具箱所提供的:1)“傻瓜式”集群管理,分布式调度。2)通过自定义搜索空间,自动构建搜索算法。

特别是第二点,已有的 python 代码,只需要添加几行代码就可以定义搜索空间,并且构建搜索算法,这里用的是 Bayesian Optimization。想快速了解更多的功能,欢迎看我在 tutorial 中的20分钟讲解 AutoGluon。


@ag. args(
batch_size=128,
lr=ag.Real(1e-4, 1e-2))
def train_fn(args, reporter=None):
print(args.lr, args.batch_size)
reporter(epoch=0, accuracy=0.9)


myscheduler = ag.scheduler.FIFOScheduler(train_fn, num_trials=25, searcher=“bayesopt”)

myscheduler.run()

课后材料:

既然介绍了 AutoML 工具箱,那么不能只展示一下 toy example。我们复现了最近的工作 RegNet 的搜索过程,还有快速数据增强 (Fast AutoAugment),一个我认为被严重低估的工作。代码和 README 比较易懂,之后有时间可能单独讲解一下。

https://github.com/zhanghang1989/RegNet-Search-PyTorchgithub.com

https://github.com/zhanghang1989/Fast-AutoAug-Torchgithub.com

在线问答:

我们将在以下时间段进行在线问答,期待你的参与:

6月16号,北京时间早上 9:00~9:30AM,https://zoom.us/j/2169400860%3Fpwd%3DOUttUEY3SEtFN08yMXlJcHI0QU1HZz09

6月16号,北京时间晚上 11:00~11:30PM,https://zoom.us/j/2169400860%3Fpwd%3DOUttUEY3SEtFN08yMXlJcHI0QU1HZz09

(以下内容来自专知@微信公众号)