问题标签 [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.
tensorflow - 为什么这个模型不能过拟合一个例子?
我在 TensorFlow 2.7 上练习 conv1D,我正在检查我开发的解码器,检查它是否会过拟合一个例子。该模型仅在一个示例上进行训练时不会学习,并且不能过度拟合这一个示例。我想了解这种奇怪的行为。这是 colab Notebook上笔记本的链接。
performance - XGBoost 在训练数据集中具有高 AUC (>0.9),但在测试/验证数据集中具有低 AUC (<0.7)
我最近使用 xgboost 来预测二进制目标。该数据集有 42k 行和大约 300 个特征。目标率为 1%。我将其分为训练(70%)和测试(30%)数据集。我只使用了 10 个参数进行调优(其中一些实际上没有使用),包括:
我还使用了“early_stopping_rounds = 20”和“eval_metric = 'auc'”。其他 XGBoost 参数将是默认值。
训练数据帧的 AUC 值远大于测试数据帧的 AUC 值。下面给出一个例子:
这表明严重的过度拟合,尽管我使用了一些输入参数来防止它。我不知道如何进一步控制过拟合或者我应该考虑调整哪些参数。
顺便说一句,我还运行了随机森林模型,它为测试数据帧提供了更好的 AUC。
随机森林模型的参数是:
根据我的经验,xgboost 的性能应该比随机森林好。有人可以给我一些关于如何改进 xgboost 模型的建议吗?
非常感谢。
pytorch - 在 Vision Transformer 模型中将 Dropout 设置为非零
我正在使用 Vision Transformer 模型进行图像分类。我正在进口
model_ft = torch.hub.load('facebookresearch/deit:main', 'deit_base_patch16_224', pretrained=True)
加载模型后,我打印模型以查看不同的层,我得到:
**我想在所有不同的层中将 dropout 设置为 0.5。当我这样做时从第一层开始 : model_ft._modules["pos_drop"] = nn.Dropout(0.5, inplace=True)
,它适用于 dropout 的第一个实例,但是当我想对第二个 dropout 做同样的事情并尝试model_ft._modules["blocks"].attn.proj_drop = nn.Dropout(0.5, inplace=True)
时,它会引发错误。
真正的问题是我不知道如何访问网络中的 dropout 层并将它们全部设置为非零值。我需要知道如何索引具有 Dropout 选项的不同层并将它们设置为非零值。
如果您能帮助我了解如何访问模型的不同层并将所有层的 dropout 设置为 true,我将非常感谢您。**
deep-learning - 解决卷积网络中的过拟合
我编写了一个片段来对 Omniglot 图像进行分类。我计算每个时期的训练和验证损失,后者是使用网络之前未见过的图像计算的。两个地块如下:
由于训练损失减少而验证损失增加,我得出的结论是我的模型过拟合。我已经尝试了几个建议(例如这里)来克服这个问题,包括:
- 增加训练集的大小。
- 洗牌数据。
- 添加 dropout 层(最高 p=0.9)。
- 使用更小的模型。
- 改变架构。
- 改变学习率。
- 减少批量大小。
- 添加重量衰减。
但是,验证损失仍然增加。我想知道是否有任何其他建议可以改善这种行为,或者这是否不是过度拟合,但问题是别的。以下是此问题中使用的代码段。
deep-learning - 基于准确性的模型欠拟合对不平衡数据是否重要?
我正在为二进制分类的不平衡数据训练一个深度学习模型。我使用binary_crossentropy作为损失函数,使用Accuracy作为度量。当我绘制损失时,我得到了一个欠拟合。这是一个问题,因为我的数据不平衡并且准确性不能反映模型的好坏吗?
r - R:CTM 主题建模将大部分数据放在一个主题中
我有由一列组成的文本数据。我正在尝试对这些数据进行主题建模。我试过LDA和CTM。我正在寻找主题之间的良好分离。我的结果总是显示我的大部分数据都集中在一个主要主题中,而其他主题的结果很少,这也导致了主题之间的重叠。我的预处理包括删除以下内容:最常见的单词、标点符号、不太常见的单词、停用词、数字。我尝试通过减少和增加主题的数量来玩弄它们,但结果仍然相同。对于要调查的事情,我们将不胜感激。
speech-recognition - 训练损失、验证损失和 WER 减少,然后增加
我正在尝试使用 Hugginface 数据集使用本教程使用转换器进行语音识别,epochs=30,steps=400,train_batch_size=16。训练损失、验证损失和 WER 减少,然后增加:
这是因为我的时代太多了吗?过拟合?还是与steps/batch_size有关?还是学习率?
python - 我正在尝试建立一个深度学习模型,我的模型是否过拟合?
我正在尝试建立一个深度学习模型,然后我在这里绘制了我的损失和准确度曲线。这个模型是否过度拟合?
deep-learning - 训练和验证准确性产生过拟合
下面是 CNN 模型的代码,问题是训练准确率为 96%,验证准确率为 69%。帮助我提高验证的准确性。
结果:训练:准确度 = 0.937500;损失 = 0.125126 测试:准确度 = 0.662508 ;损失 = 1.089228
tensorflow - cache() 是否会抵消在 epoch 之间改组输入数据的影响
希望我已经充分理解了这个过程,这个问题实际上是有意义的。
为了训练我的模型(时间序列),我在 tf.dataset 函数之外进行预处理。我将这些保存为 numpy 数组,拆分为多个文件(例如train_1.npy,.. train_n.npymodel.fit
。)并使用生成器加载它们。
train_dataset = tf.data.Dataset.from_generator(generator=sequence_generator,args= ['train'], output_types = (tf.float32, tf.float32))
train_dataset = train_dataset.cache().batch(BATCH).prefetch(tf.data.AUTOTUNE)
validation_dataset = validation_dataset.cache().batch(BATCH).prefetch(tf.data.AUTOTUNE)
test_dataset = test_dataset.batch(64)
生成器从一组 train/val/test .npy文件中生成一个随机文件,以帮助避免过度拟合。
我的问题是,在不同时期之间,.cache()
我的代码部分是否会抵消随机生成的.npy文件的效果。