机器学习中的训练集、验证集、测试集

本文详细介绍了机器学习中的训练集、验证集和测试集的用途,强调了它们在模型训练和评估中的角色。训练集用于确定模型参数,验证集用于选择最佳超参数,如学习率、权值衰减和动量,而测试集则在模型最终评估时使用。此外,讨论了防止过拟合的方法,如权重初始化和Dropout,并提醒读者避免在训练过程中使用测试集。
摘要由CSDN通过智能技术生成

机器学习中的训练集、验证集、测试集

训练集

训练集用来训练模型,即确定模型的权重和偏置这些参数,通常我们称这些参数为学习参数。

验证集

而验证集用于模型的选择,更具体地来说,验证集并不参与学习参数的确定,也就是验证集并没有参与梯度下降的过程。验证集只是为了选择超参数,比如网络层数、网络节点数、迭代次数、学习率这些都叫超参数。比如在k-NN算法中,k值就是一个超参数。所以可以使用验证集来求出误差率最小的k。

超参数,就是机器学习模型里面的框架参数,比如聚类方法里面类的个数,或者话题模型里面话题的个数等。它们跟训练过程中学习的参数(权重)是不一样的,通常是手工设定,不断试错调整,或者对一系列穷举出来的参数组合一通枚举(叫做网格搜索)。

常用的超参数:

  1. learning rate
    学习率决定了权值更新的速度,设置得太大会使结果超过最优值,太小会使下降速度过慢。学习率是指在优化算法中更新网络权重的幅度大小。学习率可以是恒定的、逐渐降低的、基于动量的或者是自适应的,采用哪种学习率取决于所选择优化算法的类型,如SGD、Adam、Adgrad、AdaDelta、RMSProp等算法。

  2. weight decay(权值衰减)
    在实际应用中,为了避免网络的过拟合,必须对价值函数(cost function)加入一些正则项。在机器学习或者模式识别中,会出现overfitting,而当网络逐渐overfitting时网络权值逐渐变大,因此,为了避免出现overfitting,会给误差函数添加一个惩罚项,常用的惩罚项是所有权重的平方乘以一个衰减常量之后。其用来惩罚大的权值。weight decay的使用既不是为了提高收敛精确度也不是为了提高收敛速度,其最终目的是防止过拟合。在损失函数中,weight decay是放在正则项(regularization)前面的一个系数,正则项一般指示模型的复杂度,所以weight decay的作用是调节模型复杂度对损失函数的影响,若weight decay很大,则复杂的模型损失函数的值也越大。

  3. momentum(动量)
    动量来源于牛顿定律,基本思想是为了找到最优加入”惯性”的影响。mementum是梯度下降法中一种常用的加速技术。总能得到更好的收敛速度。

  4. learing rate decay
    每次迭代的时候减少学习率的大小。

  5. 迭代次数
    迭代次数是指整个训练集输入到神经网络进行训练的次数。当测试错误率和训练错误率相差较小时,可认为当前的迭代次数是合适的,否则需继续增大迭代次数,或调整网络结构。

  6. 权重初始化
    在网络中,通常会使用小随机数来初始化各网络层的权重,以防止产生不活跃的神经元,但是设置过小的随机数可能生成零梯度网络。一般来说,均匀分布方法效果较好。

  7. Dropout方法
    作为一种常用的正则化方式,加入Dropout层可以减弱深层神经网络的过拟合效应。该方法会按照所设定的概率参数,在每次训练中随机地不激活一定比例的神经单元。该参数的默认值为0.5.

测试集

测试集只使用一次,即在训练完成后评价最终的模型时使用。它既不参与学习参数过程,也不参数超参数选择过程,而仅仅使用于模型的评价。
值得注意的是,千万不能在训练过程中使用测试集,而后再用相同的测试集去测试模型。这样做其实是一个cheat,使得模型测试时准确率很高。

参考

深度学习中的验证集和超参数简介

交叉验证与训练集、验证集、测试集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值