CVPR 2020 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。

https://hangzhang.org/CVPR2020/

@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-PyTorch

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

CVer
CVer

一个专注于计算机视觉方向的平台。涉及目标检测,图像分割,目标跟踪,人脸检测&识别,姿态估计,GAN和医疗影像等。

入门计算机视觉CVPR 2020
1
相关数据
Amazon机构

亚马逊(英语:Amazon.com Inc.,NASDAQ:AMZN)是一家总部位于美国西雅图的跨国电子商务企业,业务起始于线上书店,不久之后商品走向多元化。目前是全球最大的互联网线上零售商之一,也是美国《财富》杂志2016年评选的全球最大500家公司的排行榜中的第44名。

https://www.amazon.com/
相关技术
韩松人物

2017 年斯坦福大学电子工程系博士毕业,师从 NVIDIA 首席科学家 Bill Dally 教授。他的研究也广泛涉足深度学习和计算机体系结构,他提出的 Deep Compression 模型压缩技术曾获得 ICLR'16 最佳论文,ESE 稀疏神经网络推理引擎获得 FPGA'17 最佳论文,对业界影响深远。他的研究成果在 NVIDIA、Google、Facebook 得到广泛应用,博士期间创立了深鉴科技,现为麻省理工学院电气工程和计算机科学系的助理教授。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

结构搜索技术

深度学习提供了这样一种承诺:它可以绕过手动特征工程的流程,通过端对端的方式联合学习中间表征与统计模型。 然而,神经网络架构本身通常由专家以艰苦的、一事一议的方式临时设计出来。 神经网络架构搜索(NAS)被誉为一条减轻痛苦之路,它可以自动识别哪些网络优于手工设计的网络。

推荐文章
暂无评论
暂无评论~