问题标签 [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.
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。我已经看到其他问题的答案,并没有真正得到解释
deep-learning - CNN模型过拟合
我正在尝试为 MRI 分类训练 CNN 模型。如您所见,训练损失小于验证损失。我的问题是:是训练损失>>验证损失,我们可以说我们有过度拟合吗?
python - 训练精度提高但验证精度仍然是每个班级的机会(1/班级数)
我正在 Pytorch 中使用 CNN 训练分类器。我的分类器有 6 个标签。每个标签有 700 个训练图像,每个标签有 10 个验证图像。批量大小为 10,学习率为 0.000001。每个类占整个数据集图像的 16.7%。我已经训练了 60 个 epoch,架构有 3 个主要层:
- Conv2D->ReLU->BatchNorm2D->MaxPool2D>Dropout2D
- Conv2D->ReLU->BatchNorm2D->展平->Dropout2D
- Linear->ReLU->BatchNorm1D->Dropout 最后是全连接和softmax。我的优化器是 AdamW,损失函数是交叉熵。随着训练准确度的提高,网络训练得很好,但验证准确度几乎保持不变,并且与每个类的机会相等(1/类数)。准确度如下图所示:
损失显示在:
有什么想法为什么会发生这种情况?如何提高验证准确性?我也使用了 L1 和 L2 正则化以及 Dropout 层。我也尝试添加更多数据,但这些没有帮助。
python - 微调 BERT 情绪分析时的过度拟合
一般来说,我是机器学习的新手。我目前正在尝试使用 BERT 和 Transformers 遵循有关情绪分析的教程https://curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/
我不知道如何解决这个问题。我尝试过减少时期的数量,增加批量大小,洗牌我的数据(这是有序的)并增加验证拆分。到目前为止,没有任何效果。我什至尝试过改变不同的学习率,但我现在使用的是最小的。
下面是我的代码:
python - 为什么发生过拟合时随机森林最大深度参数的验证分数不会缩小
我制作了随机森林模型,并可视化了结果。
当发生过度拟合时,我想让验证分数缩小。
像这个 SVR_C 参数。当发生过度拟合时, Image1
验证分数会缩小。
但是,当发生过拟合时,最大深度参数的验证分数不会缩小。
图片2
我了解到验证分数会缩小,会出现过度拟合的情况。
你能告诉我为什么会出现这种情况吗?:)
keras - 批量标准化时如何应用 L2?
我正在 Keras 中构建 MLP 神经网络,批量归一化似乎适用于所需的模型,我听到了关于在使用批量规范时是否需要 L2 的不同观点,但它似乎包含在常见的网络架构中。但是,我的问题是您将应用哪种类型的 L2:内核或活动?对于网络的其他部分,您会将它应用到哪里?下面的代码在哪里应用 L2,它不正确吗?
python - 当模型开始过度拟合时我应该增加还是减少损失
我正在以1e-4
80,90 个 epoch 的学习率进行图像分割,我觉得我的模型开始过度拟合。StackOverflow 上的这个答案表明小学习率会导致过度拟合,而大学习率会充当正则化器。另一方面,我们reducelronplateau
在模型 val loss 停止减少时使用,这将是一个很小的学习率。所以我很困惑应该将学习率提高到1e-3
还是进一步降低到1e-5
machine-learning - 训练损失正在减少,但验证损失是不变的。如何避免过拟合
我想重新训练 google 的 mediapipe 手部地标以进行更多关键点检测,但该模型仅以无法重新训练的tflite格式提供。
我创建了一个与 mediapipe 手部模型相同的模型,并使用我的自定义数据对其进行了训练,但面临过拟合问题,
我在用:
RMSprop 作为优化器
MSE(均方误差作为损失函数),
批量大小 = 32
initial_learning_rate=1e-3
衰减步数=1000
衰减率=0.9
训练损失减少到 4.3819e-04 但验证损失仍然是 0.00134
我也试过
亚当优化器
Huber损失函数
验证损失降至 0.00083 我仍然面临过拟合问题
knn - 多分类中的满分?
我正在研究一个多类分类问题,其中 3 个 (1, 2, 3) 类完美分布。(每个类的 70 个实例导致 (210, 8) 数据帧)。
现在我的数据按顺序分布了所有 3 个类,即前 70 个实例是 1 类,接下来 70 个实例是 2 类,最后 70 个实例是 3 类。我知道这种分布会导致在训练集上得分很高但得分很差在测试集上,因为测试集具有模型未见过的类。所以我stratify
在train_test_split
. 以下是我的代码: -
现在的问题是我在每件事上都得到了满分。执行 cv 的 f1 宏得分为 0.898。以下是我的混淆矩阵和分类报告:-
分类报告:-
我是过度拟合还是什么?