神经网络有很多超参数(学习率,正则等等)。如何寻找最好的超参数组合,穷举搜索 Grid Search 效率太低;随机搜索比穷举搜索好一点;目前比较好的解决方案是贝叶斯优化。
1.贝叶斯优化的优点
- 贝叶斯调参采用高斯过程,考虑之前的参数信息,不断地更新先验;网格搜索未考虑之前的参数信息;
- 贝叶斯调参迭代次数少,速度快;网格搜索速度慢,参数多时易导致维度爆炸;
- 贝叶斯调参针对非凸问题依然稳健;网格搜索针对非凸问题易得到局部最优。
2. 贝叶斯初步优化
安装 相关包
pip install bayesian-optimization
使用随机森林作为模型进行参数优化
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from bayes_opt import BayesianOptimization
# 产生随机分类数据集,10个特征, 2个类别
x, y = make_classification(n_samples=1000,n_features=10,n_classes=2)
# 不调参数的结果:
rf = RandomForestClassifier()
print(np.mean(cross_val_score(rf, x, y, cv=20, scoring='roc_auc')))
# 0.965162

本文介绍使用贝叶斯优化方法进行神经网络超参数调整的过程,包括安装所需库、使用随机森林模型进行优化实践,以及如何通过探索进一步提高优化效果。
最低0.47元/天 解锁文章
5828

被折叠的 条评论
为什么被折叠?



