跟李沐学AI:实用机器学习 | 第九章

9.1 模型调参

手动调参

从一个好的基线开始,从工具包或者论文中的设置选择起始参数。

每次调一个超参数的值,观察性能变化。

虽然SGD在参数调得好的情况下模型效果会优于Adam,但是Adam相比于SGD,相对来说对超参数没那么敏感,调参方便一些。

记录所有训练日志和超参数,工具:TensorBoardweights&bias

重复实验很难,因为:①环境 ②代码 ③随机性(随机种子)

自动调参Automated Machine Learning AutoML

Hyperparameter optimization(HPO)、Neural architecture search(NAS)

9.2 超参数优化HPO

搜索空间

跟李沐学AI:实用机器学习 | 第九章_第1张图片

HPO算法:black box or multi-fidelity

  • 黑盒:把训练任务当做一个黑盒
  • multi-fidelity:修改训练任务加速搜索 ①训练采样到的小数据集 ②减小模型尺寸(更少的层数、通道) ③早期停止 

    跟李沐学AI:实用机器学习 | 第九章_第2张图片

Black box

Grid search穷举,评估所有的组合,可以找到最好的结果,但是会遭受维度灾难

 

Random search尝试n个随机组合,比Grid search更高效(最常用!!

跟李沐学AI:实用机器学习 | 第九章_第3张图片 

n的选择可以通过运行时间、best_result的变化来选,觉得OK了就可以停止

Bayesian optimization (BO):迭代地学习从超参数到目标函数之间的映射

  • 代理模型surrogate model:估计目标函数和超参数的关系,如概率回归模型,随机森林、高斯过程……
  • 获取函数acquisition function:acquisition高意味着不确定性高,根据获取函数采样下一轮尝试的超参数。Trade off exploration and exploitation(探索和利用之间的权衡)
  • limitation:早期和随机搜索差不多,后期效果好一些;优化过程是串行的。

Multi-Fidelity

Successive Halving:选取n个超参数,每个超参数训练m个epoch (n>m),留下最好的n/2个超参数再训练m个epoch,留下(n/2)/2个超参数再训练2m个epoch…… 直到只剩下最后1-2个超参数。(训练任务减半,训练时间翻倍)基于预算选取n和m。

Hyperband:多跑几次Successive Halving

9.3 网络架构搜索NAS

一个神经网络有不同类型的超参数:拓扑结构(layers),单层参数(kernel_size, channels, hidden_outputs)

NAS使神经网络的设计自动化:定义搜索空间、搜索空间搜索策略、性能估计

跟李沐学AI:实用机器学习 | 第九章_第4张图片

NAS with Reinforcement Learning

The One-shot Approach:既训练框架,又训练模型参数(常用的是DARTS)

  • 可微的架构搜索Differentiable architecture search

跟李沐学AI:实用机器学习 | 第九章_第5张图片

跟李沐学AI:实用机器学习 | 第九章_第6张图片 

Scaling CNNs

CNN可以从三个方面进行调整:更多层(Deeper)、更多输出通道(Wider)、增加输入图片像素(Larger inputs)

EfficientNet:提出了一种综合调整方法

跟李沐学AI:实用机器学习 | 第九章_第7张图片

ps:FLOP,计算复杂度

研究方向

  • NAS结果的可解释性
  • 嵌入边缘设备的搜索架构:边缘设备的数据隐私性、处理器多样性、能耗限制。最小化模型损失和硬件延迟

  • 做一些扩展使机器学习更加自动化

你可能感兴趣的:(跟李沐学AI,笔记整理,人工智能,python)