机器学习调参-模型选择
本文主要介绍机器学习模型中超级参数(hyperparameter)的调优问题(下文简称为调参问题),主要的方法有手动调优、网格搜索、随机搜索以及基于贝叶斯的参数调优方法。因为模型通常由它的超级参数确定,所以从更高的角度看调参问题就转化为模型选择问题。
手动调优
需要较多专业背景知识。
网格搜索
先固定一个超参,然后对其他各个超参依次进行穷举搜索,超参集合为
H={h1,h2,...,hN}H=\{h_1,h_2,...,h_N\},则需要的计算次数为∏i=Ni=1|hi|,(i=1,2,...,N),|hi|\prod_{i=1} ^{i=N}|h_i|,(i=1,2,...,N),|h_i|表示超参hih_i的取值个数。
随机搜索
在N维参数空间按某种分布(如正态分布)随机取值,因为参数空间的各个维度的重要性是不等的,随机搜索方法可以在不重要的维度上取巧。如下图所示,按网格搜索的方式进行搜索时,由于在非重要维度上取值无效,因此相当于只取了3个有效点。随机取值相同的参数空间,则可能达到9个有效搜索点。
贝叶斯方法
从模型选择的角度来,通过计算在已知数据的情况下,哪种模型的后验概率大即选择哪种模型,公式如下,这种方法偏向于选择简单的模型,详见MLAPP
通用的分析方法
如果训练误差和验证误差都停滞在一个很大的值上,那么可能的原因和可以尝试的解决方案:
- 欠拟合,采取增加模型容量的方法,如将weight decay 设为0
模型有bug,将训练数据集减小,再次训练看训练误差是否能减小
不能很好解释的问题
对于非凸优化问题模型,当学习率较小时,随着迭代次数增加,损失函数停滞在较大的值上。
参考
1.Bengio etc.2015,deep learning
贝叶斯模型选择
1.Robert C P. Machine Learning, a Probabilistic Perspective[J]. Chance, 2014.
机器学习调参-模型选择相关推荐
- Lesson 6.5Lesson 6.6.1Lesson 6.6.2 机器学习调参基础理论与网格搜索多分类评估指标的macro与weighted过程GridSearchCV的进阶使用方法
Lesson 6.5 机器学习调参基础理论与网格搜索 在上一小节执行完手动调参之后,接下来我们重点讨论关于机器学习调参的理论基础,并且介绍sklearn中调参的核心工具--GridSearchCV. ...
- 建模与调参+模型结果融合
一.建模与调参 1.线性回归模型 线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析. 训练模型的过程其实就是根 ...
- 机器学习模型选择:调参参数选择
http://blog.csdn.net/pipisorry/article/details/52902797 调参经验 好的实验环境是成功的一半 由于深度学习实验超参众多,代码风格良好的实验环境,可 ...
- Python机器学习建模的标准流程(特征工程+建模调参+模型评估+全流程可视化)
作者CSDN:进击的西西弗斯 本文链接:https://blog.csdn.net/qq_42216093/article/details/116994199 版权声明:本文为作者原创文章,转载需征得 ...
- 机器学习-分类算法-模型选择与调优09
模型选择与调优 交叉验证:为了让被评估的模型更加准确可信 网格搜索 from sklearn.neighbors import KNeighborsClassifier from sklearn.mo ...
- 机器学习调参自动优化方法
本文旨在介绍当前被大家广为所知的超参自动优化方法,像网格搜索.随机搜索.贝叶斯优化和Hyperband,并附有相关的样例代码供大家学习. 一.网格搜索(Grid Search) 网格搜索是暴力搜索,在 ...
- 机器学习调参神器——网格搜索方法
网格搜索方法主要用于模型调参,也就是帮助我们找到一组最合适的模型设置参数,使得模型的预测达到更好的效果,这组参数于模型训练过程中学习到的参数不同,它是需要在训练前预设好的,我们称其为超参数. 超参数的 ...
- 机器学习 | 调参 Part1
调参系列1 1 什么叫调参? 2 为什么要调参 3 调参方法有哪些? 3.1 网格搜索 3.1.1 原理 3.1.2 Python实现 3.2 随机搜索 3.2.1 原理 3.2.2 Python实现 ...
- 机器学习调参——网格搜索调参,随机搜索调参,贝叶斯调参
from sklearn.datasets import load_boston from sklearn.metrics import mean_squared_error from lightgb ...
- pytorch 优化器 机器学习 调参
torch.optim 如何使用optimizer 构建 为每个参数单独设置选项 进行单次优化 optimizer.step() optimizer.step(closure) 算法 如何调整学习率 ...
最新文章
- Paxos 实现日志复制同步(Multi-Paxos)
- Java集合必会14问(精选面试题整理)
- wxWidgets:wxScopedPtr类用法
- Vijos——T 1082 丛林探险
- 详解ASP.NET页面生命周期事件
- php的前端环境,PHP中的环境变量
- Nature:新发现挑战神经元作用传统理论 [转自科学网]
- hdu 3925 一道复杂的简单题
- 网络安全策略防御加固
- 2020年中考英语计算机考试,2020年中考英语听说测试考生问答
- 一位股票老战士的十年投资心得!
- Mac 下显示隐藏文件或文件夹
- 工程质量智慧检测管理系统为检测机构数字化管理提供更优解决方案
- 在米思齐上实现数码管图形化编程
- android studio 自定义mk文件
- 记一次前端春招实习面经(已拿字节、腾讯offer)
- 适用于 Web 开发者的 Atom 编辑器插件
- 超级计算机神威太湖之光图片,超级计算机“神威太湖之光”芯片惊艳亮相
- PowerBI中同比环比那点事
- 二十一、动网格Layering方法及实例
热门文章
- 显示器驱动程序已停止响应 并且已成功恢复
- Linux用户管理命令和压缩解压命令
- MySQL数据库(七)
- IPv6 to IPv4过渡技术——手工隧道和GRE隧道配置实例
- 华为eNSP BUG——Serial线配置ACL问题
- Node.js连接mysql报加密方式错误解决方案
- Python脚本控制的WebDriver 常用操作 十八 获取测试对象的css属性
- 苹果宣布CEO乔布斯辞职 COO库克接任
- win2003server域控服务器安装及设置
- 拉取远程分支到本地分支_想买的保险本地没有分支机构怎么办?异地投保理赔难吗?...