AutoML综述学习 —— DL & NAS篇

AutoML: A Survey of the State-of-the-Art

聚焦 deep learning,根据完整的 AutoML pipeline 总结 AutoML 相关的方法


1. AutoML Pipeline

请添加图片描述

  • AutoML pipeline 包括几个过程:① 数据准备、② 特征工程、③ 模型生成、④ 模型评估
  • 模型生成可进一步分为 a.搜索空间 + b.优化方法。
    • 搜索空间定义了ML模型的设计原则,可以分为两类:
      • 传统的ML模型(如SVM和KNN)
      • 深度神经网络 (DNN) 结构。
    • 优化方法分为超参数优化 (HPO) 和架构优化 (AO),
      • Hyperparameter Optimization (超参数优化):与训练相关的参数(如学习率和批量大小)
      • Architecture Optimization (架构优化):与模型相关的参数(如神经架构的层数)

2. Data Preparation

数据准备阶段的流程如下,分为三个步骤:数据收集、数据清洗、数据增强 (DA)

请添加图片描述

  • 数据收集
    • Data Searching (数据搜索)
      • 网络上搜索出的结果不一定符合关键字:需要去噪
      • 网络数据可能标签错误:需要使用主动学习半监督学习
      • 网络数据的数据分布可能不平衡,与真是分布存在误差:synthetic minority over-sampling technique (SMOTE) 在现有的真实少数族样本之间生成新的少数族样本,而不是简单地上采样少数族样本或下采样多数族样本。
    • Data Synthesis (数据生成)
      • 使用 Data simulator
      • 使用 GANs,其中对于离散文本数据,可以用自编码器连续化
  • 数据清洗
    • 为提高效率,有些方法只清洗部分数据集
    • BoostClean 将数据清洗视为一个 Boosting 任务,得到一系列清洗操作
    • AlphaClean 将数据清洗视为一个超参数优化问题,得到一组流水线清洗操作
  • 数据增强 (DA)
    • 图像数据:仿射变换 (包括旋转、缩放、随机裁剪和反射),弹性变换 (包括对比度偏移、亮度偏移、模糊和通道洗牌),高级变换 (包括随机擦除、图像混合、剪切和混合)。基于神经网络的变换 (对抗噪声,神经样式转移和GAN技术)
    • 文本数据:数据扭曲,过采样生成,插入同义词,先将文本翻译成一种外语,然后再将其翻译回原语言


3. Feature Engineering

特征工程由三个子主题组成:① 特征选择、② 特征提取、③ 特征构建

  • 特征选择:通过选择重要特征来减少特征冗余。(完全搜索、启发式搜索和随机搜索)
    请添加图片描述
  • 特征提取:通过应用特定的映射函数来降低特征的维数 (主成分分析(PCA)、独立成分分析、等距图、非线性降维、线性判别分析(LDA))
  • 特征构建:利用特征构建来扩展原有的特征空间 (预处理转换,如标准化、规范化或特征离散化)



4. Model Generation —— NAS

本文聚焦于深度神经网络 (DNN) 结构的搜索,NAS 的目标:通过从预定义的搜索空间中选择和组合不同的基本操作来搜索一个健壮和性能良好的神经体系结构。

NAS 由三个重要组成部分组成:① 神经结构的搜索空间、② AO方法、③ 模型评估方法
* 搜索空间:entire-structured , cell-based, hierarchical and morphism-based search space.
* AO 方法:reinforcement learning (RL), evolution-based algorithm (EA), gradient descent (GD), Surrogate ModelBased Optimization (SMBO), and hybrid AO methods

4.1. Search Space (搜索空间)

  • Entire-structured Search Space (全结构搜索空间):堆叠预定义数量的节点,其中每个节点代表一层并执行指定的操作。—— 搜索深度网络花销太大,结果缺乏可迁移性。
  • Cell-based Search Space (细胞搜索空间):神经结构是由固定数量的重复细胞结构组成的。—— 大大提高可迁移性。
  • Morphism-based Search Space (态射搜索空间):在现有神经网络的基础上,引入态射转换设计新的神经网络。

4.2. Architecture Optimization (AO, 结构优化)

  • Evolutionary Algorithm (EA, 免疫算法)
    • Direct encoding:直接编码,显式指定表现型
    • Indirect encoding:指定生成规则来构建网络,并允许使用更紧凑的表示形式
    • 算法流程:
      ① Selection (选择):从所有生成的网络中选择一部分网络
      ② Crossover (杂交):每两个网络被选择产生一个新的子代网络
      ③ Mutation (变异):对产生的子代网络进行变异
      ④ Update (更新):挑选一部分网络留下
  • Reinforcement Learning (强化学习)
    请添加图片描述
  • Gradient Descent (GD, 梯度下降法):【DARTS】
  • Surrogate Model-based Optimization (SMBO, 基于顺序模型的优化): 通过迭代记录过去的评估结果,建立目标函数的代理模型,并使用代理模型预测最有希望的架构。Bayesian optimization (贝叶斯优化, BO)、神经网络为代理模型。
  • Grid and Random Search (网格或随机搜索)
  • Hybrid Optimization Method (混合优化)


4.3. Hyperparameter Optimization (HPO, 超参数优化)

在找到最好的神经结构后,有必要重新设计超参数集,并使用它来重新训练或微调该结构。

  • Grid and Random Search
  • Bayesian Optimization
  • Gradient-based Optimization



5. Model Evaluation (模型评估)

4 中的模型生成,每每产生了新的神经网络,就必须对其性能进行评估。一种直观的方法是训练网络收敛,然后评估其性能。但是,这种方法需要大量的时间和计算资源。所以有以下一些加速评估的方法。

  • Low fidelity (低保真度):可以降低训练集图片的数量和分辨率、可以降低要训练的模型的复杂度、还可以用集成学习来克服低保真度带来的偏差。
  • Weight sharing (网络的权重共享)
  • Surrogate (代理评估模型):用模型来拟合配置与表现的关系,可以监督学习或半监督学习。
  • Early stopping (提前终止训练):停止 预计在验证集上表现较差 的配置模型的计算。



6. NAS Discussion

讨论NAS技术的一些主要主题

6.1. NAS Performance Comparison (如何评估 NAS 搜索出的模型的表现)

  • 早期基于 EA 和 RL 的 NAS 方法更多地关注于高性能
  • 后续的NAS研究试图在保证搜索模型高性能的同时提高搜索效率
  • Kendall Tau Metric —— 评估搜索阶段和评估阶段之间模型性能的相关性 τ = N C − N D N C + N D \tau=\frac{N_{C}-N_{D}}{N_{C}+N_{D}} τ=NC+NDNCND其中 N C N_C NC N D N_D ND 表示一致对和不一致对的个数
  • NAS-Bench Dataset:数据集包含一个搜索空间中产生的很多个神经网络,以及它们分别在某些数据集上的训练和测试精度。

6.2. One-stage vs. Two-stage

根据流程,NAS方法可以大致分为两类 —— 两阶段和一阶段:

请添加图片描述

  • One-stage NAS:通过同时运行AO和参数训练,输出一个设计良好、训练良好的神经体系结构,而无需额外的再训练。例如:对整个神经网络进行预训练,然后逐步微调共享权值的较小网络。
  • Two-stage NAS:包括 ① 搜索阶段,包括:a) 架构优化,旨在寻找最优架构;b) 参数训练,即训练所找到的体系结构的参数。② 评估阶段,进一步重新培训性能最好的架构。

6.3. One-shot

One-shot:将搜索空间嵌入到一个过参数化的超级网络中,因此,所有可能的架构都可以从超级网络中派生出来。并且派生的所有架构共享权重

NAS算法是否属于 One-shot 方法取决于候选体系结构是否具有相同的权重,大部分 One-stage NAS 都是基于 One-shot 的。可分为:

  • Coupled optimization (耦合优化):以耦合的方式优化架构和权重。即在超级网络上引入结构分布,然后直接优化超级网络和这个分布,最后依据分布来选择最优子结构。
    会引起 multimodel forgetting:因为直接对超级网络优化,当对新的子架构进行持续采样和训练时,以前架构的权重会受到负面影响,导致性能下降。
  • Decoupled optimization (解耦优化):将架构和权重的优化解耦为两个顺序阶段:① 训练超级网络,② 使用训练后的超级网络作为不同架构的预测性能评估器,选择最有前途的架构。
    有研究发现:最终选出的子架构的预测结果与超级网络的预测结果的对称 KL 散度越小,架构性能越好。

6.4. Joint Hyperparameter and Architecture Optimization

很多 NAS 方法在搜索过程中都是用一致的超参数。搜索完成后,再最最优结构的超参数进一步优化。这种方式可能会导致次优结果,因为不同的架构往往适合不同的超参数。所以需要引入 HPO 来同时优化结构和超参数:

hyperparameter and architecture optimization (HAO) =
  hyperparameter optimization (HPO) + architecture optimization (AO)


6.5. Resource-aware NAS

将计算成本作为资源约束添加到损失函数中。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值