超参数的选择与交叉验证

原创 2017年07月16日 22:33:07

1. 超参数有哪些

  与超参数对应的是参数。参数是可以在模型中通过BP(反向传播)进行更新学习的参数,例如各种权值矩阵,偏移量等等。超参数是需要进行程序员自己选择的参数,无法学习获得。
  常见的超参数有模型(SVM,Softmax,Multi-layer Neural Network,…),迭代算法(Adam,SGD,…),学习率(learning rate)(不同的迭代算法还有各种不同的超参数,如beta1,beta2等等,但常见的做法是使用默认值,不进行调参),正则化方程的选择(L0,L1,L2),正则化系数,dropout的概率等等。

2. 确定调节范围

  超参数的种类多,调节范围大,需要先进行简单的测试确定调参范围。

2.1. 模型

  模型的选择很大程度上取决于具体的实际问题,但必须通过几项基本测试。
  首先,模型必须可以正常运行,即代码编写正确。可以通过第一个epoch的loss估计,即估算第一个epoch的loss,并与实际结果比较。注意此过程需要设置正则项系数为0,因为正则项引入的loss难以估算。
  其次,模型必须可以对于小数据集过拟合,即得到loss接近于0,accuracy接近于1的模型。否则应该尝试其他或者更复杂的模型。
  最后,如果val_acc与acc相差很小,可能是因为模型复杂度不够,需要尝试更为复杂的模型。

2.2. 学习率

loss基本不变:学习率过低
loss震动明显或者溢出:学习率过高
根据以上两条原则,可以得到学习率的大致范围。

2.3. 正则项系数

val_acc与acc相差较大:正则项系数过小
loss逐渐增大:正则项系数过大
根据以上两条原则,可以得到正则项系数的大致范围。

3. 交叉验证

  对于训练集再次进行切分,得到训练集以及验证集。通过训练集训练得到的模型,在验证集验证,从而确定超参数。(选取在验证集结果最好的超参数)
  交叉验证的具体实例详见CS231n作业笔记1.7:基于特征的图像分类之调参和CS231n作业笔记1.2: KNN的交叉验证。

3.1. 先粗调,再细调

  先通过数量少,间距大的粗调确定细调的大致范围。然后在小范围内部进行间距小,数量大的细调。

3.2. 尝试在对数空间内进行调节

  即在对数空间内部随机生成测试参数,而不是在原空间生成,通常用于学习率以及正则项系数等的调节。出发点是该超参数的指数项对于模型的结果影响更显著;而同阶的数据之间即便原域相差较大,对于模型结果的影响反而不如不同阶的数据差距大。

3.3. 随机搜索参数值,而不是格点搜索

random layout

通过随机搜索,可以更好的发现趋势。图中所示的是通过随机搜索可以发现数据在某一维上的变化更加明显,得到明显的趋势。

版权声明:本文为博主原创文章,未经博主允许不得转载。

用验证曲线 validation curve 选择超参数

本文结构: 验证曲线的作用? 验证曲线是什么? 怎么解读? 怎么画? 验证曲线的作用?我们知道误差由偏差(bias)、方差(variance)和噪声(noise)组成。偏差:模型对于不同的训练样本集,...

SVM支持向量机高斯核调参小结

转自http://www.cnblogs.com/pinard/p/6117515.html  在支持向量机(以下简称SVM)的核函数中,高斯核(以下简称RBF)是最常用的,从理论上讲, RBF...

CS231n课程笔记5.4:超参数的选择&交叉验证

CS231n简介详见 CS231n课程笔记1:Introduction。 注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。1. 超参数有哪些与超参数对应的是参数。参数是可以在模型中通...

sklearn学习-SVM例程总结3(网格搜索+交叉验证——寻找最优超参数)

网格搜索+交叉验证——寻找最优超参数 1548962898@qq.com 连续三天写了三篇博客,主要是为了尽快了解机器学习中算法以外的重要知识,这些知识可以迁移到每一个算法中,或许说,这些知识是学习...
  • sqiu_11
  • sqiu_11
  • 2017年03月03日 14:57
  • 1634

libsvm交叉验证与网格搜索(参数选择)

【原文:http://blog.sina.com.cn/s/blog_6833a4df0100puzv.html】 首先说交叉验证。 交叉验证(Cross validation)是一种评估统计...

libsvm交叉验证与网格搜索(参数选择)

首先说交叉验证。 交叉验证(Cross validation)是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力(generalize), 能够避免过拟合问题。 交叉验证一般要尽量...

交叉验证--模型参数选择

机器学习中有监督的学习,通过标注data训练model时,通常采用交叉验证的方法选择模型参数。 将有标注的data分为训练集,(交叉)验证集,测试集三份: 机器学习的model中,...
  • abcd1f2
  • abcd1f2
  • 2016年07月06日 14:50
  • 870

scikit-learn中交叉验证及其用于参数选择、模型选择、特征选择的例子

内容概要 训练集/测试集分割用于模型验证的缺点 K折交叉验证是如何克服之前的不足 交叉验证如何用于选择调节参数、选择模型、选择特征 改善交叉验证 1. 模型验证回顾进行模型验证的一个重要目的是要选出一...

【scikit-learn】交叉验证及其用于参数选择、模型选择、特征选择的例子

内容概要¶ 训练集/测试集分割用于模型验证的缺点 K折交叉验证是如何克服之前的不足 交叉验证如何用于选择调节参数、选择模型、选择特征 改善交叉验证 1. 模型验证回顾¶ 进行模型验证的一个重要目的是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:超参数的选择与交叉验证
举报原因:
原因补充:

(最多只允许输入30个字)