机器学习中的超参数的选择与交叉验证

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. 随机搜索参数值,而不是格点搜索

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

原文发布于微信公众号 - 机器学习算法全栈工程师(Jeemy110)

原文发表时间:2017-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏算法channel

BAT面试题12:机器学习为何要经常对数据做归一化?

一般做机器学习应用的时候大部分时间是花费在特征处理上,其中很关键的一步就是对特征数据进行归一化,为什么要归一化呢?维基百科给出的解释:1)归一化后加快了梯度下降...

1422
来自专栏CreateAMind

RCNN学习笔记(7):Faster R-CNN 英文论文翻译笔记

reference link:http://blog.csdn.net/liumaolincycle/article/details/48804687

2503
来自专栏达观数据

达观数据深度学习资料之卷积神经网络(下篇)

达观数据深度学习资料之卷积神经网络(下篇) 4.2什么是池化? 在通过卷积获得特征后进行分类,依然面临计算量大的挑战。及时一张96×96像素的图片,经过400...

35410
来自专栏人工智能头条

李理:详解卷积神经网络

2137
来自专栏老秦求学

[Deep-Learning-with-Python]机器学习基础

二分类、多分类以及回归问题都属于监督学习--目标是学习训练输入和对应标签之间的关系。 监督学习只是机器学习的冰山一角。机器学习主要分为4类:监督学习、非监督学...

923
来自专栏有趣的Python

8- 深度学习之神经网络核心原理与算法-卷积神经网络

1876
来自专栏开心的学习之路

神经网络体系搭建(一)——神经网络

本篇是神经网络体系搭建的第一篇,解决体系搭建的前四个问题,详见神经网络体系搭建(序) 神经网络 ? 最简单的神经网络 神经网络的定义就不再赘述,直接从最简单的神...

32810
来自专栏LhWorld哥陪你聊算法

【机器学习】--Adaboost从初始到应用

AdaBoost算法和GBDT(Gradient Boost Decision Tree,梯度提升决策树)算法是基于Boosting思想的机器学习算法。在Boo...

942
来自专栏技术小站

吴恩达深度学习笔记 2.3 logistic回归损失

损失函数测量预测(p()和期望输出(y()之间的差异。换句话说。损失函数计算单个培训示例的错误。

1531
来自专栏AI研习社

一文带你了解 Faster R-CNN

Fast R-CNN 有两个网络:建议窗口网络(RPN)生成建议窗口并使用这些窗口检测物体。与Fast R-CNN 的主要区别在于后者使用选择性搜索来生成建议窗...

1233

扫码关注云+社区