问题标签 [overfitting-underfitting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
156 浏览

deep-learning - 使用预训练的 VGG-16 验证损失和准确性都在增加

因此,我正在对大约 12600 张图像进行 4 标签 X 射线图像分类:
Class1:4000
Class2:3616
Class3:1345
Class4:4000
我使用的是 imageNet 数据集上的 VGG-16 架构,具有交叉熵和 SGD在 pytorch 上运行的批量大小为 32,学习率为 1e-3

在此处输入图像描述

我知道,由于火车损失/acc 都相对 0/1,因此模型过度拟合,尽管我很惊讶 val acc 仍然在 0.9 左右!如何正确解释它以及导致它的原因以及如何预防它?我知道这有点像,因为准确度是 softmax 的 argmax,就像实际预测越来越低,但 argmax 始终保持不变,但我真的很困惑!我什至让它训练 +64 epochs 相同的结果 flat acc 而损失逐渐增加!

PS。我已经看到其他问题的答案,并没有真正得到解释

0 投票
1 回答
68 浏览

deep-learning - CNN模型过拟合

我正在尝试为 MRI 分类训练 CNN 模型。如您所见,训练损失小于验证损失。我的问题是:是训练损失>>验证损失,我们可以说我们有过度拟合吗?

在此处输入图像描述

0 投票
2 回答
92 浏览

python - 训练精度提高但验证精度仍然是每个班级的机会(1/班级数)

我正在 Pytorch 中使用 CNN 训练分类器。我的分类器有 6 个标签。每个标签有 700 个训练图像,每个标签有 10 个验证图像。批量大小为 10,学习率为 0.000001。每个类占整个数据集图像的 16.7%。我已经训练了 60 个 epoch,架构有 3 个主要层:

  1. Conv2D->ReLU->BatchNorm2D->MaxPool2D>Dropout2D
  2. Conv2D->ReLU->BatchNorm2D->展平->Dropout2D
  3. Linear->ReLU->BatchNorm1D->Dropout 最后是全连接和softmax。我的优化器是 AdamW,损失函数是交叉熵。随着训练准确度的提高,网络训练得很好,但验证准确度几乎保持不变,并且与每个类的机会相等(1/类数)。准确度如下图所示:

训练和测试的准确性

损失显示在:

训练和验证的损失

有什么想法为什么会发生这种情况?如何提高验证准确性?我也使用了 L1 和 L2 正则化以及 Dropout 层。我也尝试添加更多数据,但这些没有帮助。

0 投票
1 回答
2328 浏览

python - 微调 BERT 情绪分析时的过度拟合

一般来说,我是机器学习的新手。我目前正在尝试使用 BERT 和 Transformers 遵循有关情绪分析的教程https://curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/

但是,当我训练模型时,模型似乎过度拟合 训练/验证损失和准确性

我不知道如何解决这个问题。我尝试过减少时期的数量,增加批量大小,洗牌我的数据(这是有序的)并增加验证拆分。到目前为止,没有任何效果。我什至尝试过改变不同的学习率,但我现在使用的是最小的。

下面是我的代码:

0 投票
1 回答
20 浏览

python - 为什么发生过拟合时随机森林最大深度参数的验证分数不会缩小

我制作了随机森林模型,并可视化了结果。

当发生过度拟合时,我想让验证分数缩小。
像这个 SVR_C 参数。当发生过度拟合时, Image1
验证分数会缩小。

但是,当发生过拟合时,最大深度参数的验证分数不会缩小。 图片2

我了解到验证分数会缩小,会出现过度拟合的情况。
你能告诉我为什么会出现这种情况吗?:)

0 投票
0 回答
18 浏览

keras - 批量标准化时如何应用 L2?

我正在 Keras 中构建 MLP 神经网络,批量归一化似乎适用于所需的模型,我听到了关于在使用批量规范时是否需要 L2 的不同观点,但它似乎包含在常见的网络架构中。但是,我的问题是您将应用哪种类型的 L2:内核或活动?对于网络的其他部分,您会将它应用到哪里?下面的代码在哪里应用 L2,它不正确吗?

0 投票
0 回答
19 浏览

python - 当模型开始过度拟合时我应该增加还是减少损失

我正在以1e-480,90 个 epoch 的学习率进行图像分割,我觉得我的模型开始过度拟合。StackOverflow 上的这个答案表明小学习率会导致过度拟合,而大学习率会充当正则化器。另一方面,我们reducelronplateau在模型 val loss 停止减少时使用,这将是一个很小的学习率。所以我很困惑应该将学习率提高到1e-3还是进一步降低到1e-5

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
54 浏览

machine-learning - 训练损失正在减少,但验证损失是不变的。如何避免过拟合

我想重新训练 google 的 mediapipe 手部地标以进行更多关键点检测,但该模型仅以无法重新训练的tflite格式提供。

我创建了一个与 mediapipe 手部模型相同的模型,并使用我的自定义数据对其进行了训练,但面临过拟合问题,

我在用:

RMSprop 作为优化器

MSE(均方误差作为损失函数),

批量大小 = 32

initial_learning_rate=1e-3

衰减步数=1000

衰减率=0.9

colab 截图

训练损失减少到 4.3819e-04 但验证损失仍然是 0.00134

我也试过

亚当优化器

Huber损失函数

验证损失降至 0.00083 我仍然面临过拟合问题

0 投票
1 回答
20 浏览

knn - 多分类中的满分?

我正在研究一个多类分类问题,其中 3 个 (1, 2, 3) 类完美分布。(每个类的 70 个实例导致 (210, 8) 数据帧)。

现在我的数据按顺序分布了所有 3 个类,即前 70 个实例是 1 类,接下来 70 个实例是 2 类,最后 70 个实例是 3 类。我知道这种分布会导致在训练集上得分很高但得分很差在测试集上,因为测试集具有模型未见过的类。所以我stratifytrain_test_split. 以下是我的代码: -

现在的问题是我在每件事上都得到了满分。执行 cv 的 f1 宏得分为 0.898。以下是我的混淆矩阵和分类报告:-

分类报告:-

我是过度拟合还是什么?

0 投票
0 回答
91 浏览

python - 多类分类的学习曲线

我正在研究一个多类分类问题。我想知道我的模型是过拟合还是欠拟合。我正在学习如何绘制学习曲线。我的问题是,我所做的步骤顺序是否正确?

  1. 缩放
  2. 基线模型
  3. 学习曲线以查看基线模型的执行情况
  4. 超参数调优
  5. 拟合模型并根据测试数据进行预测
  6. 确定模型是否过拟合或欠拟合的最终学习曲线

第一个图是在我对基线模型进行 CV 之后和超参数调整之前,第二个图是在最后完成,在超参数调整并将最佳超参数拟合到最终模型之后

在此处输入图像描述

在此处输入图像描述