DeepLearning-交叉验证的方法和用途


前言

交叉验证是检验机器/深度学习模型好坏的非常重要的环节,以下主要讲述方法和作用。


一、交叉验证是啥

  交叉验证,就是重复的使用样本数据,首先把得到的样本数据划分成训练集和测试集,其中的组合可以有不同方式。
在每个组合中用训练集来训练模型,测试集来评估模型预测的好坏。

  所谓''交叉'':是由于样本划分是随机的,每次划分之后数据集的组合是不一样的,那么对于本组划分的数据进行训练和验证后,
下次训练和验证时,训练样本数据有可能会变成测试集中的数据,测试集中的数据可能变成训练集中的数据。

二、交叉验证的方法

1.简单交叉验证

这是一种最简单的验证方法:其随机地将样本数据分为两部分(比如: 70% 的训练集,30% 的测试集),然后用训练集来训练模型,在测试集上验证模型及参数。接着,再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后我们选择损失函数评估最优的模型和参数。(若需要验证集时,一般都是采用60% 20% 20%的比例)

2.K 折交叉验证 (K-Fold Cross Validation)

简单交叉验证的升级版(堪比鸡蛋灌饼升级版)且是最常用的。K 折交叉验证会把样本数据随机的分成 K 份,每次随机的选择 K-1份作为训练集,剩下的 1 份做测试集。当这一轮完成后,重新随机选择 K-1 份来训练数据。若干轮(小于 K)之后,选择损失函数评估最优的模型和参数。(若需要验证集时,一般都是将部分作为测试集,然后在剩余的数据集中分为K份,轮流的将每一份作为验证集,其他的作为训练集)

3.留一交叉验证 (Leave-one-out Cross Validation, LOOCV)

类似于K折交叉验证(特殊情况),就相当于只用一个样本数据作为测试集,其他的数据都作为训练集,并将此步骤重复 N 次(N 为数据集的数据数量)就得到了留一交叉验证。(图片借鉴于知乎:大学还要学理综)若需要验证集,类比K折交叉验证。
在这里插入图片描述

三、交叉验证的用途

前情提要:不同的用途下会把样本数据划分成不同子集。训练集、测试集 or 训练集、验证集、测试集

1.模型评估

注意:除了使用交叉验证进行模型评估之外,还可以采用性能指标进行模型评估,比如准确率、精确率、召回率等
模型评估提前已经与预有了模型,涉及不到模型选择,仅对模型进行评估便于后续优化,因此把样本分为训练集、测试集,其实你可以认为验证集在测试集中,因为他不需要验证集来选择超参数。

在进行模型评估时,采用交叉验证的方法用训练集训练、测试集检验模型预测的好坏,以便于优化模型。(与其说使用了交叉验证不如说是交叉测试(自己乱起的名字))

此方法相比于传统的模型评估的方式(划分出固定的训练集和测试集),交叉验证的优势在于:避免由于数据集划分不合理而导致的问题,比如模型在训练集上过拟合,这种过拟合不是可能不是模型导致的,而是因为数据集划分不合理造成的。这种情况在用小规模数据集训练模型时很容易出现,所以在小规模数据集上用交叉验证的方法评估模型更有优势。

2.模型选择(超参数选择)

交叉验证最关键的作用是进行模型选择,也可以称为超参数选择。

在模型选择中把样本数据分成训练集、验证集、测试集
训练集: 训练各个模型
验证集: 用训练集外的数据集检验模型的好坏,便于确定合适超参数,进而选出模型。
测试集: 选择出模型后检验模型的泛化能力(就是查看对于未知数据拟合的情况)。

过程:
首先在训练集和验证集上对多种模型选择(超参数选择)进行验证,选出平均误差最小的模型(超参数),注意是平均误差最小的,这里别忘记交叉验证是对模型进行多次训练和检验。选出合适的模型(超参数)后,可以把训练集和验证集合并起来,在上面重新把模型训练一遍,得到最终模型,然后再用测试集测试其泛化能力。
在这里插入图片描述

"blitz-bayesian-deep-learning-master" 是一个软件项目的名称,该项目是一个在深度学习领域中应用贝叶斯方法的程序代码库。 深度学习是一种机器学习方法,用于训练和模拟人工神经网络,以便可以从大规模数据中进行模式识别和预测。而贝叶斯方法是一种从概率的角度解释不确定性的统计学方法。 blitz-bayesian-deep-learning-master项目的目标是将贝叶斯方法应用于深度学习领域。通过引入贝叶斯理论和方法,这个项目试图解决深度学习中的一些问题,如模型不确定性估计和过拟合问题。这将有助于提高深度学习模型的鲁棒性和泛化能力。 在blitz-bayesian-deep-learning-master项目中,可能会包含一些贝叶斯深度学习的常见算法和模型,如变分自编码器(VAE)、蒙特卡洛dropout和贝叶斯卷积神经网络等。这些算法和模型可以被应用于各种深度学习任务,如图像分类、目标检测和自然语言处理等。 通过使用该项目,研究人员和开发人员可以更好地理解深度学习中的不确定性和模型鲁棒性,并在实际问题中应用贝叶斯深度学习方法。这将为科学研究和工程应用带来更加准确和可靠的结果。 总而言之,blitz-bayesian-deep-learning-master是一个旨在将贝叶斯方法应用于深度学习领域的项目,旨在提高模型的不确定性估计和泛化能力,为科学研究和工程应用带来更好的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值