深度学习中的贝叶斯优化

数据挖掘 优化 贝叶斯 超参数调整
2021-09-23 19:17:58

有没有人尝试过使用贝叶斯优化来获得最佳学习率,以及其他用于深度学习的超参数。

如何在训练之间更改参数。关于回调的任何例子?

我可以看到一些代码来实现它们吗?

2个回答

目前我正在摆弄Ax / BoTorch来优化 ResNet50 以进行对象分类(稍后通过 SSD 进行检测)。我发现很难将文档中的示例应用到我自己的模型中,所以这是第一个原型。看看这个 GIST ......

https://gist.github.com/pinkerltm/74f98485d1408849476fb02686d0c228

到目前为止,我可以说,它以某种方式将学习率优化到正确的方向,但我认为我必须正确连接更多的超参数,并且可能优化更长的时间才能获得与迄今为止简单地手动定义最佳参数相媲美的结果,因为优化学习率的准确率在几个 100 个 epoch 后只能达到 67% 左右,而这个模型应该很容易达到至少 71%。

我也非常有兴趣分享这方面的经验和发现。我将在此处相应地编辑我的答案,以便它至少提供一个使用 Ax/BoTorch 优化 CNN 分类网络的简单示例。

我在深度学习方面没有太多经验,但我已经在“普通”ML 技术上进行了尝试。

Python中,我使用名为hyperopt (link)的包取得了一些成功,但如果您对贝叶斯方法感兴趣,请查看Spearmint (link)

如果您正在使用R,请查看rBayesianOptimization