如何进行模型调参?(内含超参数调优)

课程ppt链接:https://c.d2l.ai/stanford-cs329p/_static/pdfs/cs329p_slides_12_1.pdf

课程:9.2 超参数优化【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

目录

一、人工调参

二、AutoML

2.1 搜索空间

​2.1.1常见参数的搜索空间以及分布

2.2 超参数的优化的分类

1)黑盒:

2)多精度方法

常见超参数优化的算法

​1.网格搜索

2.随机搜索

3.贝叶斯优化

4. SH 算法​编辑

5. Hyperband

2.3 总结:


一、人工调参

  1.  参考模型中的超参数,获得一个还不错的base line
  2.  每次只调整一个值,看模型的变化
  3.  重复多次,获得调参的感觉
    1. 哪个超参数比较重要
    2. 模型对哪个超参数比较敏感(也可能选择对超参数不太敏感的算法,比如Adam,可能精度没有SGD高,但是在一个比较大的区间内更好,更容易调参)f38a98b340c74d2e96df43ce02aa351a.png
    3. 超参数的寻参范围
  4. 需要详细记录实验信息
  5. 保存训练日志和超参数,用于后续进行比较、分享、重现
    1. 用text保存log,将详细的参数、metrics保存在excel
    2. 使用现有的工具,比如Tensorboard、weights&bias
  6. 复现比较困难,因为
    1. 环境(硬件&library)
    2. code
    3. 随机性(seed),数据本身、dropout等都可能导致随机结果不一致。9cd75788c99d48ccb8510cc92fd5cfde.png

二、AutoML

2.1 搜索空间

搜索空间是指在给定条件下,可能出现的所有可能性的集合。

调参所做的事情就是在搜索空间中寻找最优解

16f5ba36295549a89a88558ca277ea44.png

2.1.1常见参数的搜索空间以及分布

  • 学习率:
    • 一般取值:[1e-6,1-e-1]
    • 分布:log-uniform,就是在[-6,-1]中随机均匀采样,再将采样后的结果映射会原本空间内(e^n)
  • batch_size:
    • 一般取2的n次方,加速计算(数据分配到相同的线程中)
  • momentum:
    • 在[0.85,0.95]区间内均匀采样
  • weight decay
    • 一般取值:[1e-6,1-e-2]
    • 分布:log-uniform

2.2 超参数的优化的分类

HPO:Hyperparameter optimization,超参数优化

b3302b6159224b909eedf753a3f72dea.png

1)黑盒:

完整训练所有的训练过程,输入是一组超参数,输出是训练结束后的模型以及模型指标。

适用于所有机器学习算法。

2)多精度方法

完整的训练特别贵,只是为了寻找更优的超参数,很多情况下不需要完整数据、模型来进行训练。所以多精度方法实际上是尽可能地降低寻参的代价。常见的方法有:

1.对数据集进行采样

2.减小模型的尺寸(resnet-50->resnet18)

3.早些停止比较差的配置(训不起来或者梯度爆炸)

常见超参数优化的算法

2fc57bca8feb41028128b5b90dc0423f.png

d6002a7c3c724b049a640a0b695dc020.png

1.网格搜索

搜索搜索空间中所有可能的组合

当搜索空间比较大的时候,会产生维度灾难

2.随机搜索

在搜索空间中随机选取可能的组合

根据次数or精度停止(一段时间内精读不变,或者精读满足需求)

3.贝叶斯优化

学习超参数到目标函数的一个函数

(区别:机器学习学的是数据到label的一个函数)

根据当前的评估,选择下次trial的方向。

728cbe92ada344599b62a7307d185875.png

36f6f45cb88849c896fffad4911f1f60.png

贝叶斯优化的构成

  • surrogate model:拟合超参数表现的模型
  • 紫色区间表示置信度,虚线是真实的,实线是模型的评估(评估HPO效果的)
  • 获取函数(Acquisition function):获取函数的最大值地方表示不置信且目标函数的结果是高的。下次采样的时候就采样获取函数最大值的地方。

贝叶斯优化的缺点:

  • 初始阶段,效果等同于随机搜索
  • 优化过程是串行的
  • 更复杂,需要更多的资源、样本点进行调参,实际使用中,可能是随机搜索更常用一些

4. SH 算法473e2a1c8e3a450c825c0bd53271d7dc.png

训练过程:

假设n=16,m=25

第一轮:选取16个超参数组合,,训练25个epoch。

第二轮:选取训练25个epoch后,最优的8个超参数组合,继续训练50个epoch。

每次的超参数组合减半,训练的epoch数双倍,直至收敛。

每轮的训练时长一样,所以可以提前预估自己需要选取多少组超参数来进行寻参。

5. Hyperband

实际上就是多跑几次SH算法,因为有些参数在后面效果才会起来,所以多给它们一些机会。

每次选取上轮SH算法中最好的n组超参数,继续进行下一轮SH算法。

优点:对n和m的选取不那么敏感。

a3dcc7a722aa4072af73346aee04571d.png

2.3 总结:

  • 一般会先使用随机搜索进行寻参
  • 有些参数在很多数据集上效果都很优秀,可以记住它们,或者从其他人的论文中寻找别人的超参数组合

5446941d7fce4ec09352b7d7fbd5b50e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值