解锁深度学习:2006年的一项突破性研究如何彻底改变了神经网络

高维数据——例如拥有数百万像素的图像、包含数千词汇的文档,或是具有无数特征的基因组——其理解和分析可能极其复杂。这通常被称为维度灾难: 当变量过多时,发现有意义的模式和关系变得更加困难,这使得分类、可视化或存储等任务充满挑战。 几十年来,解决这个问题的首选技术是主成分分析 (PCA)。PCA 是一种线性方法,它能找到数据集中方差最大的方向,并将其投影到一个较低维度的空间中。这种方法简单有效,但本质上存在局限性——特别是当数据中的模式是非线性的、以复杂的方式在高维空间中弯曲时。在这种情况下,PCA 可能无法捕捉到重要的结构。 2006 年,Geoffrey Hinton 和 Ruslan Salakhutdinov 在《Science (科学) 》杂志上发表了一篇里程碑式的论文,彻底改变了这一问题的解决方式。他们使用一种名为自编码器的深度学习架构,展示了如何学习高维数据的丰富非线性表示。他们的方法不仅在性能上显著超越了 PCA,还帮助破解了训练深度神经网络的难题,为现代人工智能奠定了基础。 本文将带你了解他们的突破性工作,解释它为何重要,如何运作,以及它对未来意味着什么。 自编码器: 压缩数据,保留意义 这项工作的核心是自编码器。 自编码器是一种神经网络,其唯一任务是重构其自身的输入。它通过两个组件实现这一目标: 编码器 (Encoder) – 将高维输入 (例如,一个 784 像素的图像) 压缩成一个低维表示——通常称为编码或瓶颈。 解码器 (Decoder) – 将这个低维编码扩展还原,以重构原始输入。 如果一个自编码器在迫使数据通过一个狭窄的瓶颈的同时,成功地重构了输入,那就意味着这个编码包含了关键信息。换句话说,自编码器学习到了数据的压缩且有意义的特征。 这使得自编码器成为 PCA 的一种强大的非线性泛化。 预训练难题 多年来,深度自编码器 (拥有多个隐藏层) 几乎无法进行有效训练。标准的算法——反向传播——常常因为以下原因而失败: 梯度消失 (Vanishing gradients): 梯度信号在向后传播经过各层时会逐渐缩小,导致早期层几乎不被更新。 糟糕的局部最小值 (Poor local minima): 随机初始化常常导致网络陷入糟糕的解 (例如,只输出训练集的平均值) 。 浅层自编码器 (只有一个隐藏层) 可以直接训练,但深度架构——表达能力更强、理论上更优越——需要一个更好的起点。 突破: 逐层贪婪预训练 Hinton 和 Salakhutdinov 的关键创新在于不再同时训练所有层,而是以一种贪婪的方式逐层训练。 为了进行预训练,他们转向了一种特殊类型的神经网络: 受限玻尔兹曼机 (RBM) RBM 由一个**可见层 (数据) 和一个隐藏层 **(特征) 组成,层与层之间有对称连接,但同一层内的单元之间没有连接。这种限制简化了学习过程。 ...

[NAS-Bench-1Shot1: Benchmarking and Dissecting One-shot Neural Architecture Search 🔗](https://arxiv.org/abs/2001.10422)

破解一次性 NAS 的密码:深入解析 NAS-Bench-1Shot1 基准

引言: 自动化 AI 的希望与风险 神经架构搜索 (NAS) 是机器学习中最令人振奋的前沿领域之一。试想,一种算法能为你的特定任务自动设计出完美的神经网络,并且可能超越世界级人类专家精心打造的架构——这就是 NAS 的承诺。 早期的成功证明了 NAS 能够为图像分类等任务找到最先进的模型——但代价极其高昂。搜索过程往往需要数千 GPU 日的计算量,使其成为少数大型科技公司才能负担的奢侈品。 为了让 NAS 普惠化,研究人员提出了一种巧妙的方法:** 一次性 NAS (one-shot NAS)** 。它不是从零开始分别训练数千个架构,而是训练一个包含搜索空间中所有可能架构的大型超模型,所有架构共享权重。搜索过程因此转化为在这个预训练的超模型中高效找到最佳路径的问题。这一创新将 NAS 的成本从数月缩短至数天,甚至数小时,从而引发了一次性 NAS 方法的“寒武纪大爆发”。 然而,快速进步也带来了新问题。一-shot 方法复杂、对超参数高度敏感,且常常难以复现。当一篇新论文宣称取得了最先进的结果时,我们如何判断这是因为搜索算法本身更优,而不是由于使用了不同的搜索空间、碰巧找到合适的超参数,或是训练流程中的独特技巧?公平比较这些方法成为一大挑战。 这正是 《NAS-Bench-1Shot1: 一次性神经架构搜索的基准测试与剖析》 的切入点。研究人员提出了一个开创性框架,通过巧妙地将一次性 NAS 与广泛使用的表格型基准 NAS-Bench-101 联系起来,实现了低成本、公平且可复现的一-shot NAS 基准测试,从而为深入、科学地理解这些强大算法如何真正运作打开了大门。 背景知识: 必备工具 在深入了解 NAS-Bench-1Shot1 之前,我们需要理解两个核心要素: NAS-Bench-101 和一次性范式。 NAS-Bench-101: 神经网络的“查找表” 想象一下,有一本百科全书,记录了受限搜索空间中每一个可能神经网络的最终性能。测试一个新 NAS 算法不再需要数周的训练——只需提出一个架构,即可立即查到它的真实最终准确率。 这就是 NAS-Bench-101。由谷歌研究人员创建,包含 423,624 个独特架构,每个都在 CIFAR-10 数据集上经过多次完整训练和评估。生成该数据集耗费了数月 TPU 时间,但成果是一份无价的资源,它使研究人员能在笔记本电脑上运行 NAS 实验,公平比较不同方法,并消除训练流程差异等混淆因素。 问题在于,NAS-Bench-101 为离散 NAS 算法设计——即每次提出一个完整架构的方法。人们普遍认为它不适用于在连续、权重共享的超模型上运行的一次性方法。 一次性范式: 一次训练全部模型 一次性 NAS 的核心思想是权重共享。每个潜在的架构都被视为一个包含在更大图——即一次性模型或超图——中的子图。 例如,图中的某个节点可能在以下操作中选择: ...

2020-01
[NEURAL ARCHITECTURE SEARCH ON IMAGENET IN FOUR GPU HOURS: A THEORETICALLY INSPIRED PERSPECTIVE 🔗](https://arxiv.org/abs/2102.11535)

数小时而非数天找到顶尖神经网络:深入解读免训练 NAS

神经架构搜索 (Neural Architecture Search, NAS) 是深度学习领域最令人振奋的前沿之一。它的愿景简单而深远: 为特定任务自动设计出最优的神经网络,从而将人类从繁琐且依赖直觉的手动架构设计过程中解放出来。然而,这一承诺一直伴随着高昂的代价——传统的 NAS 方法可能需要耗费数千个 GPU 小时,在庞大的搜索空间中训练和评估无数候选架构。这种巨大的计算成本使 NAS 仅限于少数资金雄厚的研究实验室。 如果我们能完全绕过这一过程中最昂贵的环节呢? 如果我们能在不进行任何训练的情况下,就识别出性能最强的架构呢? 这正是德克萨斯大学奥斯汀分校的研究人员在其论文《Neural Architecture Search on ImageNet in Four GPU Hours: A Theoretically Inspired Perspective》中提出的激进问题。他们提出了一个名为 TE-NAS (免训练神经架构搜索) 的框架,该框架利用深度学习理论,在网络“诞生”之初——即随机初始化状态下——就评估其潜力。 结果令人惊叹: TE-NAS 可以在约 30 分钟 内在 CIFAR-10 数据集上发现最先进的架构,在规模庞大的 ImageNet 数据集上也仅需 4 小时,且只用一块 GPU。 本文将剖析 TE-NAS 背后的理论与方法。我们将探讨它用来评估网络质量的两个关键指标,它如何在一种巧妙的基于剪枝的搜索中平衡二者,以及为何这项工作标志着 NAS 向高效与普及迈出重要一步。 传统 NAS 的瓶颈 要理解 TE-NAS 的突破性,首先要明白为何传统 NAS 速度如此缓慢。任何 NAS 算法都必须回答两个核心问题: 如何评估? 给定一个候选架构,我们如何判断它是否“优秀”? 如何优化? 我们如何高效地探索庞大的可能架构空间以找到最佳方案? 多数 NAS 方法用验证准确率回答第一个问题——将架构训练一段时间 (或完全收敛) 并测量其性能。这种方法可靠,但也是最大的瓶颈。训练一个深度神经网络就已耗时漫长,在搜索中训练成千上万个网络更是代价高昂。 为此,研究人员提出了一些加速策略: 超网 (Supernet) 方法: 构建包含所有候选架构的巨型网络,从中采样子网络并通过共享权重进行评估。此法节省时间,但可能误导搜索——超网内的性能并不总能反映从零训练的表现。 代理评估 (Proxy evaluations) : 在更少的轮次或更小的数据集上训练候选架构。虽能加快评估,但会偏向那些早期收敛快、却未必泛化良好的架构。 TE-NAS 采取完全不同的路径: 它提出了一种无需训练、无需标签、几乎不耗时间的架构评估方法。 ...

2021-02
[Hierarchical Neural Architecture Search for Deep Stereo Matching 🔗](https://arxiv.org/abs/2010.13501)

LEAStereo – AI 如何学会设计顶尖的 3D 视觉模型

几十年来,让计算机像人类一样理解三维世界,一直是计算机视觉领域的核心目标。这项被称为立体视觉的技术,为自动驾驶汽车在复杂街道中导航、机器人精准抓取物体,以及增强现实系统将虚拟物体无缝融入现实环境提供了动力。立体视觉的核心是解决一个看似简单的问题: 给定同一场景从两个略微不同的角度 (如同我们的双眼) 拍摄的两张图像,我们能否计算出场景中每个物体的深度? 答案是响亮的**“能”**——近年来,深度学习彻底革新了这项任务。复杂的神经网络现在可以生成惊人精确的深度图。然而,这一成功也伴随着代价。设计这些顶尖的网络模型过程艰辛,需要依赖专家的直觉、反复试验以及多年的领域经验。最终得到的模型通常规模庞大且计算成本高昂。 这就引出了一个诱人的问题: 我们能否将设计过程本身自动化?AI 能否学会设计出更强大的 AI?这正是**神经架构搜索 **(Neural Architecture Search, NAS) 所承诺的目标,该领域在图像分类等任务中已取得了显著成功。 然而,长期以来,将 NAS 应用于像立体匹配这样资源高度密集的任务被认为是不可行的。其搜索空间大到天文数字,而且立体匹配模型内存占用高,难以在搜索过程中反复训练。这正是研究团队要解决的挑战。在他们的论文《深度立体匹配的分层神经架构搜索》中,他们提出了 LEAStereo (Learning Effective Architecture Stereo) ——一个不仅让 NAS 在立体匹配任务中变得可行,还利用它构建出了一个比以往任何模型都更小、更快、更准的全新 SOTA 模型的框架。 图 1: LEAStereo 在 KITTI 2015 基准测试中创造了新的 SOTA 记录,与此前方法相比,它以极少的参数量和显著更快的推理速度实现了顶尖精度。 本文将深入解析作者们如何取得这些成果,探讨他们如何将人类的几何知识与自动化搜索方法相结合,从而推动 3D 计算机视觉的前沿发展。 背景: 现代立体视觉的基石 在深入介绍 LEAStereo 的创新之前,让我们先回顾两个核心概念: 现代深度模型如何处理立体匹配任务,以及 NAS 的原理。 深度立体匹配的“黄金标准”流程 现代深度立体匹配方法通常分为两大类: 直接回归: 大型 U-Net 风格的架构直接从输入图像预测每个像素的视差 (深度) 值。这类模型概念简单,但在应对陌生环境时泛化能力可能不足。 体数据 (代价体) 方法: 受经典立体几何学启发,是当前的黄金标准。这类方法遵循一个结构化的多步骤流程: 特征网络 (Feature Net): 一个 2D 卷积神经网络分别处理左右图像,为每个像素提取丰富的特征描述。 特征体构建: 将左图特征与右图特征拼接,右图特征会根据所有可能的视差级别进行平移,形成一个 4D 特征体,其中每个“切片”代表一个深度假设。 匹配网络 (Matching Net): 一个 3D CNN 处理该 4D 特征体,分析不同视差下的匹配代价,并将它们聚合为 3D 代价体。 投影层: 借助如 soft-argmin 这类不可学习的操作,选出每个像素最可能的视差,生成最终视差图。 ...

2020-10
[BigNAS: Scaling Up Neural Architecture Search with Big Single-Stage Models 🔗](https://arxiv.org/abs/2003.11142)

BigNAS:一次训练,随处部署的单阶段神经架构搜索

在现实世界中部署机器学习模型是一项棘手的任务。对于高端云 GPU 来说完美无缺的模型,可能完全不适合智能手机;而适合智能手机的模型,对于微型控制器来说又显得性能过剩。每种设备都有其独特的约束——延迟、内存和功耗——这种多样性催生了神经架构搜索 (Neural Architecture Search, NAS) 的迅速发展,该领域致力于自动设计针对特定硬件的神经网络。 尽管 NAS 已取得令人瞩目的成果,但它通常伴随着一个隐藏的代价: 复杂性与高昂的计算成本。一种现代流行的 一次性 NAS (one-shot NAS) 方法试图通过训练一个巨大的“超网络”来简化这一过程,这个超网络内部包含了无数个较小的“子”架构。寻找最佳架构因此变得像是在这个超网络中找到最优路径一样简单。 然而,问题在于: 直接从超网络中提取的子模型,其性能往往远逊于从头训练的同等模型。它们的共享权重是在迥然不同的架构之间的妥协,很少能对任何一个特定架构做到最优。这导致了 NAS 领域中根深蒂固的“规则”:** 你必须将发现的架构从头开始重新训练,或者应用复杂的后处理才能获得良好性能**。这个最终步骤可能成为巨大的瓶颈,尤其是在需要为各种设备提供模型时。 但如果这个规则是错的呢?如果你可以只训练一个巨大的模型,然后即时切分出任何尺寸的高性能、可直接部署的子模型,而无需任何重新训练呢? 这正是来自 Google Brain 的研究人员提出的 BigNAS 背后的颠覆性理念。他们挑战了传统观念,并展示了如何训练一个单一模型,使其能够作为适配各种计算预算的通用最先进模型的来源。 图 1: BigNAS 的工作流程 (右) 相比以往方法简化了部署。不再需要复杂、多步骤的重新训练或蒸馏流程,BigNAS 通过训练一个单一模型,可即时切分出各种规模的子模型。 一次性 NAS 的问题所在 在标准的一次性 NAS 工作流程中,你会定义一个搜索空间——一组可能的配置,如卷积核尺寸、网络深度和通道宽度。然后构建一个包含所有这些可能性的超网络。在训练过程中,对不同的子架构进行采样,并更新它们共享的权重。 这种方法很优雅: 你只需训练一组权重。但它也极具挑战性。一套参数必须同时适用于微小、浅层的网络以及庞大、深层的网络——这些架构的学习动态完全不同。结果就是一种妥协: 共享的权重对任何特定子模型都不是最优的。切分出的模型准确率通常只是个近似值,因此不得不进行代价高昂的从头再训练。 BigNAS 的目标就是消除这一差距。旨在训练出一个单阶段模型,使得任意切分出的子模型都已接近最佳性能。 核心方法: 训练高质量的单阶段模型 核心挑战在于平衡冲突的需求: 最小的模型需要更高的学习率和更少的正则化才能有效学习,而最大的模型则需要更低的学习率和更多的正则化来避免过拟合。 BigNAS 引入了五项关键技术来调和这些差异。 1. 三明治法则 (The Sandwich Rule) — 界定性能边界 训练过程同等关注搜索空间的两端和中间段。 在每一步中,BigNAS 不仅采样随机架构,还会始终采样: 最大模型 — 最大深度、最大宽度、最大卷积核、最大分辨率 最小模型 — 各项参数均取最小值 随机模型 — 若干介于其间的不同架构 所有这些模型的梯度会聚合起来更新权重。通过明确训练最大与最小模型,该过程确保性能范围的两端同时得到提升。 ...

2020-03
[Neural Architecture Search without Training 🔗](https://arxiv.org/abs/2006.04647)

数秒内找到顶级神经网络——无需任何训练

设计一个高性能的神经网络,长久以来都是一半艺术、一半科学,再加无数的试错过程。多年来,最顶尖的深度学习模型都是通过巨大的人力投入、直觉判断,以及无数小时的 GPU 实验锻造出来的。这种手动设计过程是一个巨大的瓶颈,也因此催生了一个令人振奋的领域:** 神经架构搜索 (Neural Architecture Search, NAS)** 。 NAS 的目标很直接: 自动化神经网络的设计。NAS 算法不再依赖人类煞费苦心地选择层、连接和操作,而是在一个庞大的架构空间中进行探索,以找到最适合特定任务的设计。早期的 NAS 方法具有革命性,发现了像 NASNet 这样的尖端模型。但它们也付出了惊人的计算成本——最早的 NAS 论文需要 800 个 GPU 连续运行 28 天,总计超过 60 个 GPU 年,才能完成一次搜索。 后续研究通过巧妙的优化让 NAS 更加高效,但一个核心问题依然存在: 大多数 NAS 算法遵循“生成-训练”的循环。它们生成一个候选架构,**训练它 **(或其代理版本) 来衡量性能,然后用该信号指导搜索。而这一步训练,是主要的成本来源。 但如果我们能完全跳过训练呢?如果我们可以在一个刚刚初始化的网络——在进行任何一次梯度下降之前——就预测它在训练后的表现会有多好呢? 这篇名为《无需训练的神经架构搜索》 (Neural Architecture Search without Training) 的论文探讨了这一激进想法。作者提出了一种评分方法,无需任何训练就能预测一个架构的潜力,从而能够在单个 GPU 上几秒钟内发现顶尖模型。这是一次范式转变,挑战了长期以来“训练是评估网络潜力的必要条件”的假设。 寻找架构的高昂成本 为了理解这一突破,让我们回顾一下 NAS 的发展历程。Zoph 和 Le 的开创性工作使用一个控制器网络 (通常是 RNN) 生成架构描述。每个候选架构都需要从零开始训练,其最终准确率被用作奖励,通过强化学习更新控制器。这一过程极其缓慢且消耗大量资源。 研究人员后来通过两个关键思想提高了 NAS 的效率: 基于单元的搜索 — 优化更小、可复用的构建块,称为单元 (cells) ,而不是整个网络。 权重共享 — 训练一个巨大的“超网络 (supernetwork) ”,在候选架构之间共享权重。 这些创新将搜索时间从 GPU 集群上的数周缩短到单个 GPU 上的数小时。但代价也随之而来——权重共享可能会扭曲结果,有时甚至让随机搜索表现出乎意料地有竞争力。同时,搜索空间依旧巨大,通常无法证明已经找到最优架构。 ...

2020-06
[NAS-BENCH-201: EXTENDING THE SCOPE OF RE-PRODUCIBLE NEURAL ARCHITECTURE SEARCH 🔗](https://arxiv.org/abs/2001.00326)

神经网络的公平竞技场:深入解析 NAS-Bench-201

神经架构搜索 (Neural Architecture Search, NAS) 已经改变了我们设计深度学习模型的方式。NAS 算法不再仅仅依赖人类的直觉和多年的经验,而是能够自动发现强大且高效的网络架构——其性能常常超越人工设计的前辈模型。这种范式转变为 NAS 带来了爆炸性的进展,涌现出涵盖强化学习、进化策略和可微优化的多种新方法。 但这种快速发展也带来了隐藏的代价:** 一场可比性危机**。 想象一场田径比赛,每位运动员都在不同的赛道、不同的天气条件下,用不同的装备进行冲刺。你如何真正判断谁跑得最快?这正是当前 NAS 研究的现状。每种新算法往往在不同的数据集上、使用各异的搜索空间和训练流程进行测试。因此,我们很难分辨一个方法是真正更优,还是仅仅得益于更有利的实验设置。 为了解决这一问题,研究人员开始创建标准化的基准。第一个重要的里程碑是 NAS-Bench-101,但它存在一些局限性,使得许多现代算法无法直接在其上评估。于是,NAS-Bench-201 应运而生,也正是我们今天要深入探讨的主题——一个旨在为几乎所有 NAS 算法提供公平竞争环境的多功能基准。 NAS-Bench-201 定义了一个包含超过 15,000 种架构的固定搜索空间,并预先计算了它们在三个数据集上的性能。这使研究人员能够跳过重复且耗费 GPU 资源的训练过程,专注于最重要的部分: 搜索算法本身。 接下来,让我们深入解析 NAS-Bench-201 的工作原理、我们可以从中得到哪些启示,以及它为何是迈向更可复现且更高效 AI 研究的重要一步。 背景: 寻求标准化的 NAS 竞技场 现代 NAS 方法通常采用基于单元 (cell-based) 的方法。与其设计一个完整的大型网络,NAS 算法会去搜索最优的单元——一种小巧而灵活的计算模块——然后重复堆叠这些单元来构建完整模型。这种方法将搜索问题从“整个网络应该长什么样?”转变为“最优的构建模块是什么?” NAS-Bench-201 采用了这一范式,定义了一个既具备足够挑战性以确保其意义,又小到可以对每一种架构进行穷尽训练和评估的搜索空间。这产生了一个庞大的“查找表”,NAS 算法只需提出一个架构,即可立即获得其真实的、完整训练后的性能——无需 GPU 训练。 NAS-Bench-201 的核心 NAS-Bench-201 不仅是一个数据集,更是一个包含四个主要组成部分的生态系统: 明确定义的搜索空间 具有标准化划分的多个数据集 预先计算的训练与评估指标 用于深入分析的丰富诊断信息 1. 搜索空间: 15,625 种架构的宇宙 所有架构共享相同的高层宏观骨架。如图 1 顶部所示,该骨架包含三个阶段,每个阶段堆叠五个相同的单元。每个阶段之间通过残差块连接,用以降低空间分辨率并提升通道深度。 ...

2020-01
[Progressive Neural Architecture Search 🔗](https://arxiv.org/abs/1712.00559)

PNAS:如何在不耗尽资源的情况下找到顶级性能的神经网络

长期以来,设计神经网络的架构一直被视为一门玄学——直觉、经验与反复试验的结合。但如果我们能将这个过程自动化呢?如果一个 AI 能设计出更强大的 AI 呢?这就是神经架构搜索 (Neural Architecture Search, NAS) 的前景,该领域已经诞生了一些计算机视觉中性能最优秀的模型。 然而,这种强大的能力在过去一直伴随着惊人的成本。早期的顶尖方法,如谷歌的 NASNet,需要巨大的计算资源——500 张高端 GPU 连续运行 4 天,训练和评估 20,000 种不同的架构。这样的要求,让没有大型数据中心的多数研究人员或机构望而却步。 渐进式神经架构搜索 (Progressive Neural Architecture Search, PNAS) 应运而生: 这是一种更智能、更高效的方式来寻找高性能架构。PNAS 能够在达到先前方法相同准确率的同时,做到模型评估效率高出 5 倍,总计算速度快 8 倍。PNAS 不是盲目地在巨大的可能性空间中搜索,而是从简单开始,逐步增加复杂性,并利用一个学习到的模型来引导搜索方向。 在本文中,我们将探索 PNAS 的工作原理——从其渐进式搜索策略到性能预测器——以及各项结果如何使它成为自动化机器学习领域的一个里程碑。 背景: 为什么架构搜索如此困难 在 PNAS 之前,主流的 NAS 方法主要有两种: 强化学习 (Reinforcement Learning, RL) : 一个基于 RNN 的控制器学习策略来生成描述神经架构的序列。每个生成的架构都会被训练,其验证准确率将作为奖励来更新控制器。经过数千次迭代,更优秀的架构逐渐涌现。NASNet 就是著名的例子。 演化算法 (Evolutionary Algorithms, EA) : 将架构视作一个基因组群体。性能最好的模型通过**突变 (随机更改) 和交叉 **(混合两个架构的部分) 来“繁殖”,逐步演化出更好的解决方案。 这两种方法都很强大,但成本极高: 它们从一开始就搜索完全指定、复杂度很高的架构。这导致反馈缓慢、计算开销巨大。 NASNet 的一个关键想法是搜索单元 (cell) 而不是整个 CNN。 一个单元是一个小型网络模块,通过堆叠可以构造完整 CNN——这大大缩小了搜索空间,并使其能够迁移到其他数据集。 ...

2017-12
[ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware 🔗](https://arxiv.org/abs/1812.00332)

ProxylessNAS:直接在你的目标硬件上搜索最优神经网络

神经架构搜索 (Neural Architecture Search, NAS) 是深度学习领域最令人振奋的前沿之一。试想,有一种算法可以自动为你设计出最先进的神经网络——并且完美契合你的特定任务。NAS 的愿景是用一种有原则的、自动化的搜索过程,取代繁琐且依赖直觉的人工网络设计。 然而,多年来,这一愿景伴随着巨大的代价。早期的 NAS 方法需要数万个 GPU 小时才能发现一个架构——成本高得令人望而却步,大多数研究人员和工程师都无法承担。为了让 NAS 可行,社区提出了一种巧妙的变通方法: 不直接在庞大的目标任务 (如 ImageNet) 上搜索,而是在更小、更容易管理的代理任务上进行搜索——例如用 CIFAR-10 代替 ImageNet、缩短训练周期,或者只搜索一个可复用的模块而非整张网络。 但这引出了一个关键问题:** 为小型代理任务优化的架构,对真实目标任务来说也是最优的吗?** 答案越来越倾向于*“不一定”*。在 CIFAR-10 上效果惊艳的设计,面对 ImageNet 的复杂性时可能并不理想。更重要的是,当你考虑到特定手机或 GPU 上的推理延迟等现实约束时,在代理任务上得到的架构可能远非最佳。 这正是《ProxylessNAS: 直接在目标任务和硬件上进行神经架构搜索》这篇论文要解决的问题。研究人员提出了一种彻底消除代理的方法,可以直接在像 ImageNet 这样的大规模任务上进行搜索,同时针对延迟等硬件特定指标优化。正如我们将看到的,他们的方法在仅需极少计算资源的情况下,取得了业界最前沿的成果。 图 1: 基于代理的 NAS 在将架构迁移到目标任务之前,依赖一个中间的代理任务。ProxylessNAS 移除了代理,直接在目标数据集和硬件上学习架构。 可微 NAS 的问题: 内存消耗大户 随着像 DARTS 这样的可微 NAS方法的引入,NAS 的效率实现了飞跃。其思想非常巧妙: 与其训练数千个独立的候选网络,不如创建一个巨大的、过参数化的网络,它包含了搜索空间中所有可能的架构。 想象一下网络中的一层。在常规设计中,你会选择它是 3×3 卷积、5×5 卷积、池化层还是其他操作。在可微 NAS 中,你把所有这些选项都并行包含进来。这种“混合操作”会输出每个候选操作结果的加权和: \[ m_{\mathcal{O}}^{\text{DARTS}}(x) = \sum_{i=1}^{N} \frac{\exp(\alpha_i)}{\sum_j \exp(\alpha_j)}\, o_i(x) \]这里,\(o_i(x)\) 是第 \(i\) 个操作 (如 3×3 卷积) 的输出,权重 \(\alpha_i\) 是可学习的架构参数,经 softmax 归一化。搜索过程变为标准优化问题: 使用梯度下降同时训练网络权重和架构参数。 ...

2018-12
[Efficient Neural Architecture Search via Parameter Sharing 🔗](https://arxiv.org/abs/1802.03268)

ENAS:让神经架构搜索快 1000 倍

设计一个高性能的神经网络通常被形容为一门玄学。它需要深厚的专业知识、直觉以及大量的反复试验。如果我们能将这个过程自动化呢?这就是神经架构搜索 (Neural Architecture Search,NAS) 的愿景——自动为特定任务寻找最佳网络架构。 Zoph 与 Le (2017) 的原始 NAS 论文是一项里程碑式的成果。它使用强化学习为图像分类和语言建模任务找到了当时的最优架构,甚至超越了人类专家的设计。但代价却极其高昂: 搜索过程需要数百块 GPU 持续运行数天。例如,NASNet (Zoph 等人,2018) 使用了 450 块 GPU 运行了 3–4 天。这种资源消耗对于大多数研究人员、学生和公司来说都是遥不可及的。 核心瓶颈在于: 对于系统提出的每一个候选架构,都必须从零开始训练到收敛,才能得到一个性能评分。然后所有训练好的权重都会被丢弃,换一个新架构重新开始。这是极其浪费的。 这正是论文 《通过参数共享实现高效的神经架构搜索》 (ENAS) 切入的核心问题。作者将这种浪费视为关键痛点,并提出了一个简单却强大的解决思路: 让所有候选架构 (子模型) 共享同一组权重**。 这个想法带来了惊人的效率提升。ENAS 能够在保持与原始 NAS 相近性能的前提下,将 GPU 计算量减少超过 1000 倍,甚至可以在单块 GPU 上一夜完成搜索。这项研究不是小步前进,而是一次飞跃,让几乎每个人都能接触到自动化模型设计。本文将深入解析它的原理。 背景: 原始 NAS 及其瓶颈 要理解 ENAS 的创新之处,我们首先需要了解原始的 NAS 框架。系统包含两个主要组件: 控制器 (Controller) : 通常是一个循环神经网络 (RNN) ,通过生成一系列决策来提议新的神经网络架构,例如“使用 3×3 卷积”、“连接到第 2 层”、“使用 ReLU 激活函数”等等。这些决策定义了一个完整的子网络。 子模型 (Child Model) : 由控制器采样得到的神经网络。 整个迭代过程如下: ...

2018-02