为什么验证集的loss会小于训练集的loss?

原因1-在训练中应用正则化(加了正则项),但在验证/测试中未应用正则化  正则化方法通常会牺牲训练准确性来提高验证/测试准确性——在某些情况下,可能导致验证loss低于训练loss。原因2-训练loss是在每个epoch测量的,而验证loss是在每个epoch后测量的  在整个epoch内,您的训练loss将不断得到报告;但是,仅在当前训练epoch完成后,才根据验证集计算验证指标。这意味着,平均而言,训练loss要提前半个epoch来衡量原因3-验证集可能比训练集更容易,或者代码中的数据/错误泄漏。确保验证集大小合理,并且是从训练集相同的分布(和难度)中抽取的。

原文地址:https://www.cnblogs.com/xin-qing3/p/11967410.html

时间: 2024-10-09 19:31:49

为什么验证集的loss会小于训练集的loss?的相关文章

机器学习基础:(Python)训练集测试集分割与交叉验证

在上一篇关于Python中的线性回归的文章之后,我想再写一篇关于训练测试分割和交叉验证的文章.在数据科学和数据分析领域中,这两个概念经常被用作防止或最小化过度拟合的工具.我会解释当使用统计模型时,通常将模型拟合在训练集上,以便对未被训练的数据进行预测. 在统计学和机器学习领域中,我们通常把数据分成两个子集:训练数据和测试数据,并且把模型拟合到训练数据上,以便对测试数据进行预测.当做到这一点时,可能会发生两种情况:模型的过度拟合或欠拟合.我们不希望出现这两种情况,因为这会影响模型的可预测性.我们有

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

一.前言 训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train set),验证集(validation set),测试集(test set). 二.训练集.验证集.测试集 如果给定的样本数据充足,我们通常使用均匀随机抽样的方式将数据集划分成3个部分——训练集.验证集和测试集,这三个集合不能有交集,常见的比例是8:1:1.需要注意的是,通常都会给定训练集

关于训练集,验证集,测试集的划分

首先需要说明的是:训练集(training set).验证集(validation set)和测试集(test set)本质上并无区别,都是把一个数据集分成三个部分而已,都是(feature, label)造型.尤其是训练集与验证集,更无本质区别.测试集可能会有一些区别,比如在一些权威计算机视觉比赛中,测试集的标签是private的,也就是参赛者看不到测试集的标签,可以把预测的标签交给大赛组委会,他们根据你提交的预测标签来评估参赛者模式识别系统的好坏,以防作弊. 通常,在训练有监督的机器学习模型

tensorflow识别Mnist时,训练集与验证集精度acc高,但是测试集精度低的比较隐蔽的原因

tensorflow识别Mnist时,训练集与验证集精度acc高,但是测试集精度低的比较隐蔽的原因除了网上说的主要原因https://blog.csdn.net/wangdong2017/article/details/90176323 之外,还有一种是比较隐蔽的原因(可能对于大多数人不会犯这种低级错误),作为新手的我找了半天才找到,原因是在程序中创建了一个会话之后又重新创建了一个会话,代码程序见我博客https://www.cnblogs.com/hujinzhou/p/guobao_2020

自助采样包含训练集里63.2%的样本?

自助采样包含训练集里63.2%的样本? 在学习随机森林的时候,经常会看到这么一句话" 自助采样法给bagging带来的好处就是:由于每个学习器只是使用了%63.2的数据,剩下的约%36.8的样本可以用作验证集来对泛化性能进行"包外估计"." 那么这个63.2%是怎么来的呢?假设我们有n个样本,有放回的进行抽取,那么每个样本不被抽取的概率为\(1 - \dfrac{1}{n}\).我们需要抽取n轮,那么某个样本一直不被抽到的概率为 \[ p=(1 - \dfrac{1

模型训练过程中的训练集、训练开发集、开发集和测试集总结

36.什么时候你应该在不同分布上做训练和测试 当你的猫app已经上传10000张图,你已经人工标记它们有没有猫,同时你有200000张互联网上下载的图,这时你要怎么划分训练开发测试集呢? 当你训练深度学习模型时,可能必须用到那200000张图,那么训练和测试集的分布就不同,这会怎样影响你的工作呢? 当然将210000张图片随机分裂到训练开发测试集是一种方法,但我(吴恩达)不推荐这种方法,记住选择开发测试集的推荐方法是:选择你未来预期会得到的数据来作为开发测试集. 大多数学术文章假设训练开发测试集

中文文本分类器训练集

sougou还真地道.中文文本分类器训练集下载 http://www.sogou.com/labs/dl/c.html mini版(tar.gz格式) 136Kmini版(zip格式) 167K精简版(tar.gz格式) 24M精简版(zip格式) 30M完整版 107M(由于文件较大,需要注册后获取ftp地址下载)分类编码对照表(txt格式) 138字节

caffe 进行自己的imageNet训练分类:loss一直是87.3365,accuracy一直是0

caffe 进行自己的imageNet训练分类: loss一直是87.3365,accuracy 一直是0,可能的原因是: 解决方法: http://blog.csdn.net/jkfdqjjy/article/details/52268565?locationNum=14知道了原因,解决时就能对症下药.总体上看,softmax输入的feature由两部分计算得到:一部分是输入数据,另部分是各层权重参数. 1.观察数据中是否有异常样本或异常label导致数据读取异常 2.调小初始化权重,以便使s

解决caffe绘制训练过程的loss和accuracy曲线时候报错:paste: aux4.txt: 没有那个文件或目录 rm: 无法删除"aux4.txt": 没有那个文件或目录

我用的是faster-rcnn,在绘制训练过程的loss和accuracy曲线时候,抛出如下错误,在网上查找无数大牛博客后无果,自己稍微看了下代码,发现,extract_seconds.py文件的 get_start_time()函数在获取时间时候获取失败,因为if line.find('Solving') != -1:这个语句判断错误导致,具体解决办法: 将该函数改造成: def get_start_time(line_iterable, year):    """Find