Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

Chenxi Liu等作者arXiv选自

李飞飞等人提出Auto-DeepLab:自动搜索图像语义分割架构


过去,神经网络架构大部分都是由人类研究者手动开发的,这个过程非常耗时且容易出错。神经架构自动搜索(NAS)技术解放了人类工作,也让模型效率有了提升。在大规模图像分类问题上,自动算出的模型已经超越了人类设计的模型。

近日,斯坦福大学李飞飞组的研究者提出了 Auto-DeepLab,其在图像语义分割问题上超越了很多业内最佳模型,甚至可以在未经过预训练的情况下达到预训练模型的表现。Auto-DeepLab 开发出与分层架构搜索空间完全匹配的离散架构的连续松弛,显著提高架构搜索的效率,降低算力需求。

深度神经网络已经在很多人工智能任务上取得了成功,包括图像识别、语音识别机器翻译等。虽然更好的优化器 [36] 和归一化技术 [32, 79] 在其中起了重要作用,但很多进步要归功于神经网络架构的设计。在计算机视觉中,这适用于图像分类和密集图像预测。

表 1:本研究提出的模型 Auto-DeepLab 和其它双层 CNN 架构的对比。主要区别有:(1) Auto-DeepLab 直接搜索用于语义分割的 CNN 架构;(2) Auto-DeepLab 搜索网络级架构和单元级架构;(3) Auto-DeepLab 的高效搜索在一个 P100 GPU 上仅需 3 天。

最近,在 AutoML 和 AI 民主化的影响下,人们对自动化设计神经网络架构产生了极大兴趣,自动化设计神经网络无需严重依赖专家经验和知识。更重要的是,去年神经架构搜索(NAS)成功找到了在大规模图像分类任务上超越人类设计架构的网络架构 [92, 47, 61]。

图像分类对 NAS 来说是一个很好的起点,因为它是最基础且研究最深入的高级识别任务。此外,该研究领域存在具有规模相对较小的基准数据集(如 CIFAR-10),从而减少了计算量并加快了训练速度。然而,图像分类不应该是 NAS 的终点,现下的成功表明它可以扩展至要求更高的领域。在本文中,作者研究了用于语义图像分割的神经架构搜索。这是一项重要的计算机视觉任务,它为输入图像的每个像素分配标签,如「人」或「自行车」。

简单地移植图像分类的方法不足以进行语义分割。在图像分类中,NAS 通常使用从低分辨率图像到高分辨率图像的迁移学习 [92],而语义分割的最佳架构必须在高分辨率图像上运行。这表明,本研究需要:(1) 更松弛、更通用的搜索空间,以捕捉更高分辨率导致的架构变体;(2) 更高效的架构搜索技术,因为高分辨率需要的计算量更大。

作者注意到,现代 CNN 设计通常遵循两级分层结构,其中外层网络控制空间分辨率的变化,内层单元级架构管理特定的分层计算。目前关于 NAS 的绝大多数研究都遵循这个两级分层设计,但只自动化搜索内层网络,而手动设计外层网络。这种有限的搜索空间对密集图像预测来说是一个问题,密集图像预测对空间分辨率变化很敏感。因此在本研究中,作者提出了一种格子状的网络级搜索空间,该搜索空间可以增强 [92] 首次提出的常用单元级搜索空间,以形成分层架构搜索空间。本研究的目标是联合学习可重复单元结构和网络结构的良好组合,用于语义图像分割

就架构搜索方法而言,强化学习和进化算法往往是计算密集型的——即便在低分辨率数据集 CIFAR-10 上,因此它们不太适合语义图像分割任务。受 NAS 可微分公式 [68, 49] 的启发,本研究开发出与分层架构搜索空间完全匹配的离散架构的连续松弛。分层架构搜索通过随机梯度下降实施。当搜索终止时,最好的单元架构会被贪婪解码,而最好的网络架构会通过维特比算法得到有效解码。作者在从 Cityscapes 数据集中裁剪的 321×321 图像上直接搜索架构。搜索非常高效,在一个 P100 GPU 上仅需 3 天。

作者在多个语义分割基准数据集上进行了实验,包括 Cityscapes、PASCAL VOC 2012 和 ADE20K。在未经 ImageNet 预训练的情况下,最佳 Auto-DeepLab 模型在 Cityscapes 测试集上的结果超过 FRRN-B 8.6%,超过 GridNet 10.9%。在利用 Cityscapes 粗糙标注数据的实验中,Auto-DeepLab 与一些经过 ImageNet 预训练的当前最优模型的性能相近。值得注意的是,本研究的最佳模型(未经过预训练)与 DeepLab v3+(有预训练)的表现相近,但在 MultiAdds 中前者的速度是后者的 2.23 倍。另外,Auto-DeepLab 的轻量级模型性能仅比 DeepLab v3+ 低 1.2%,而参数量需求却少了 76.7%,在 MultiAdds 中的速度是 DeepLab v3+ 的 4.65 倍。在 PASCAL VOC 2012 和 ADE29K 上,Auto-DeepLab 最优模型在使用极少数据进行预训练的情况下,性能优于很多当前最优模型。

本论文主要贡献如下:

  • 这是首次将 NAS 从图像分类任务扩展到密集图像预测任务的尝试之一。

  • 该研究提出了一个网络级架构搜索空间,它增强和补充了已经得到深入研究的单元级架构搜索,并对网络级和单元级架构进行更具挑战性的联合搜索。

  • 本研究提出了一种可微的连续方式,保证高效运行两级分层架构搜索,在一个 GPU 上仅需 3 天。

  • 在未经 ImageNet 预训练的情况下,Auto-DeepLab 模型在 Cityscapes 数据集上的性能显著优于 FRRN-B 和 GridNet,同时也和 ImageNet 预训练当前最佳模型性能相当。在 PASCAL VOC 2012 和 ADE20K 数据集上,最好的 Auto-DeepLab 模型优于多个当前最优模型。

论文:Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

论文地址:https://arxiv.org/pdf/1901.02985v1.pdf

摘要:近期,在图像分类问题上神经架构搜索(NAS)确定的神经网络架构能力超越人类设计的网络。本论文将研究用于语义图像分割的 NAS,语义图像分割是将语义标签分配给图像中每个像素的重要计算机视觉任务。现有的研究通常关注搜索可重复的单元结构,对控制空间分辨率变化的外部网络结构进行人工设计。这种做法简化了搜索空间,但对于具备大量网络级架构变体的密集图像预测而言,该方法带来的问题很多。因此,该研究提出在搜索单元结构之外还要搜索网络级架构,从而形成一个分层架构搜索空间。本研究提出一种包含多种流行网络设计的网络级搜索空间,并提出一个公式来进行基于梯度的高效架构搜索(在 Cityscapes 图像上使用 1 个 P100 GPU 仅需 3 天)。本研究展示了该方法在较难的 Cityscapes、PASCAL VOC 2012 和 ADE20K 数据集上的效果。在不经任何 ImageNet 预训练的情况下,本研究提出的专用于语义图像分割的架构获得了当前最优性能。

4 方法

这部分首先介绍了精确匹配上述分层架构搜索的离散架构的连续松弛,然后讨论了如何通过优化执行架构搜索,以及如何在搜索终止后解码离散架构。

4.2 优化

连续松弛的作用在于控制不同隐藏状态之间连接强度的标量现在也是可微计算图的一部分。因此可以使用梯度下降对其进行高效优化。作者采用了 [49] 中的一阶近似,将训练数据分割成两个单独的数据集 trainA 和 trainB。优化在以下二者之间交替进行:

1. 用 ∇_w L_trainA(w, α, β) 更新网络权重 w;

2. 用 ∇_(α,β) L_trainB(w, α, β) 更新架构 α, β。

其中损失函数 L 是在语义分割小批量上计算的交叉熵

4.3 解码离散架构

单元架构

和 [49] 一样,本研究首先保留每个构造块的两个最强前任者(predecessor),然后使用 argmax 函数选择最可能的 operator,从而解码离散单元架构。

网络架构

公式 7 本质上表明图 1 中每个蓝色节点处的「outgoing 概率」的总和为 1。事实上,β 可被理解为不同「时间步」(层数)中不同「状态」(空间分辨率)之间的「transition 概率」。本研究的目标是从头开始找到具备「最大概率」的的路径。在实现中,作者可以使用经典维特比算法高效解码该路径。图 1:左图是 L = 12 时的网络级搜索空间。灰色节点表示固定的「stem」层,沿着蓝色节点形成的路径表示候选网络级架构。右图展示了搜索过程中,每个单元是一个密集连接的结构。

5 实验结果

图 3:使用本研究提出的分层神经架构搜索方法找到的最优网络架构和单元架构。灰色虚线箭头表示每个节点处具备最大 β 值的连接。atr 指空洞卷积(atrous convolution),sep 指深度可分离卷积(depthwise-separable convolution)。

图 4:在 10 次随机试验中,40 个 epoch 中架构搜索优化的验证准确率

表 2:不同 Auto-DeepLab 模型变体在 Cityscapes 验证集上的结果。F:控制模型容量的 filter multiplier。所有 Auto-DeepLab 模型都是从头开始训练,且在推断过程中使用单尺度输入。

表 3:Cityscapes 验证集结果。研究采用不同的训练迭代次数(50 万、100 万与 150 万次迭代)和 SDP(Scheduled Drop Path)方法进行实验。所有模型都是从头训练的。

表 4:模型在推断过程中使用多尺度输入时在 Cityscapes 测试集上的结果。ImageNet:在 ImageNet 上预训练的模型。Coarse:利用粗糙注释的模型。

表 5:PASCAL VOC 2012 验证集结果。本研究采用多尺度推理(MS,multi-scale inference)和 COCO 预训练检查点(COCO)进行实验。在未经任何预训练的情况下,本研究提出的最佳模型(Auto-DeepLab-L)超越了 DropBlock 20.36%。所有的模型都没有使用 ImageNet 图像做预训练。

表 6:PASCAL VOC 2012 测试集结果。本研究提出的 AutoDeepLab-L 取得了可与众多在 ImageNet 和 COCO 数据集上预训练的顶级模型相媲美的结果。

表 7:ADE20K 验证集结果。在推断过程中使用多尺度输入。† 表示结果分别是从他们最新的模型 zoo 网站获得的。ImageNet:在 ImageNet 上预训练的模型。Avg:mIOU 和像素准确率的均值。

图 5:在 Cityscapes 验证集上的可视化结果。最后一行展示了本研究提出方法的故障模式,模型将一些较难的语义类别混淆了,如人和骑车的人。

图 6:在 ADE20K 验证集上的可视化结果。最后一行展示了本研究提出方法的故障模式,模型无法分割非常细粒度的对象(如椅子腿),且将较难的语义类别混淆了(如地板和地毯)。

理论语义分割论文AutoML李飞飞
4
相关数据
李飞飞人物

李飞飞,斯坦福大学计算机科学系教授,斯坦福视觉实验室负责人,斯坦福大学人工智能实验室(SAIL)前负责人。专业领域是计算机视觉和认知神经科学。2016年11月李飞飞加入谷歌,担任谷歌云AI/ML首席科学家。2018年9月,返回斯坦福任教,现为谷歌云AI/ML顾问。10月20日斯坦福大学「以人为中心的AI计划」开启,李飞飞担任联合负责人。11月20日李飞飞不再担任SAIL负责人,Christopher Manning接任该职位。

图像分割技术

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像索赋予相同的编号。

权重技术

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

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

维特比算法技术

维特比算法(英语:Viterbi algorithm)是一种动态规划算法。它用于寻找最有可能产生观测事件序列的维特比路径——隐含状态序列,特别是在马尔可夫信息源上下文和隐马尔可夫模型中。 术语“维特比路径”和“维特比算法”也被用于寻找观察结果最有可能解释相关的动态规划算法。例如在统计句法分析中动态规划算法可以被用于发现最可能的上下文无关的派生(解析)的字符串,有时被称为“维特比分析”。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

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

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

计算机视觉技术

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

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

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

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

空洞卷积技术

空洞卷积最大的特性就是扩张感受野,它不是在像素间插入空白像素,而是略过一些已有的像素。当然,我们也可以理解为保持输入不变,并向卷积核中添加一些值为零的权重,从而在计算量基本不变的情况下增加网络观察到的图像范围或序列长度。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

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