问题标签 [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.
machine-learning - 在训练/验证设置中选择最佳模型:如何迭代模型
在下表中,您可以看到R2
不同模型的训练/测试拆分的比较表(表格回归问题)。现在,理想情况下,我会选择这种ideal_model
场景,因为它最有可能在现实生活中表现最好,但我在训练模型时遇到了问题。具体来说,一旦我有了我的特征和问题设置,我通常可以用超参数来修补我想要的所有东西,但通常,随着我降低复杂性(或处理神经网络时的一些其他技巧——比如 dropout 层等),我的验证分数。
现在我当然担心训练集上的过度拟合会造成损害,但我也不能忽视验证步骤中的性能差异。
question
: 一般在这种情况下,走哪条路最好?也就是说,尽量减少过度拟合,但也要尽可能地保持验证性能:切换模型?合奏路线?(那里的结果好坏参半,因为它是遭受这个问题的模型的组合)切换损失函数以使模型学习得更好?
ps:请假设,为了这种情况,特性是一成不变的,没有交叉验证(当然我们会在现实生活中使用交叉验证)
tensorflow - RNN/GRU 增加验证损失但减少平均绝对误差
我是深度学习的新手,我尝试实现一个 RNN(有 2 个 GRU 层)。起初,网络似乎做得很好。但是,我目前正在尝试了解损失和准确度曲线。我附上了下面的图片。深蓝色的线是训练集,青色的线是验证集。在 50 个 epoch 之后,验证损失会增加。我的假设是这表明过度拟合。但是,我不确定为什么验证平均绝对误差仍然会减少。你有什么想法吗?
我想到的一个想法是,这可能是由我的数据集中的一些大异常值引起的。因此,我已经尝试清理它。我也尝试正确缩放它。我还添加了一些 dropout 层以进行进一步的正则化(rate=0.2)。然而,这些只是正常的 dropout 层,因为 cudnn 似乎不支持 tensorflow 的recurrent_dropout。
备注:我使用负对数似然作为损失函数,使用张量流概率分布作为输出密集层。
任何提示我应该调查什么?提前致谢
deep-learning - 验证准确度低于训练准确度
该模型仍在训练中。并且验证准确度越来越低于训练。这表明过拟合?我怎样才能克服这个?我使用了 MobileNet 模型。我可以通过降低学习率来做到这一点吗?
这是我的代码。我使用了 DeepFashion 数据集并使用 209222 张图像进行训练。并且还使用了 learning_rate=0.001 的 SGD 优化器。
python - Lasso 回归的 Mse 值
我正在研究套索回归。我在数据集中有 155 行和 6 个输入列,因此我的最后一个模型(决策树 reg、SVR、rfr ..)中存在过度拟合问题。我用 k 折交叉验证尝试了 lasso 回归,然后我在下面得到了这些结果。
当我们根据训练和测试的 MSE 值评估套索模型时,我可以充分评估它吗?
deep-learning - 序列数据是否会使模型过度拟合训练数据?
我正在使用 kitti 和 waymo 数据集训练 3D 对象检测模型。模型在 kitti 上运行良好(数据未排序,随机数据,随机选择数据)。但是在waymo 上,模型是过拟合的。Waymo 数据是序列数据,所以我随机选择帧,同时输入网络。
并且我还对waymo数据集的模型进行了一些更改,这使得网络具有更多的嵌入参数。对kitti也做了同样的改变,效果很好。
我正在做数据八月,批量标准化与 kitti 数据集相同。
我的目标对象是数据中的行人。kitti火车组的行人数量约为3k,waymo火车组的行人数量约为30k。在有效和测试集中,数量分别为 800 和 5k。
有人可以解释这个原因吗?
python - sklearn Logistic回归中的C参数是什么?
C
参数中的含义是什么sklearn.linear_model.LogisticRegression
?它如何影响决策边界?高值C
会使决策边界非线性吗?如果我们可视化决策边界,逻辑回归的过度拟合会是什么样子?
python - 分类变量处理期间的数据泄漏?
我对机器学习相当陌生。我遇到了数据泄漏的概念。文章说在执行预处理步骤之前总是拆分数据。
我的问题是,诸如离散化、将类别分组为单个类别以减少基数、将类别变量转换为二进制变量等步骤是否会导致数据泄漏?
在应用这些步骤之前,我应该将数据拆分为训练集和测试集吗?
另外,为了避免数据泄漏,我真的需要注意哪些主要的预处理步骤?
machine-learning - 检测器2中的训练损失没有减少
我正在使用detectron2来训练自定义模型来检测文档的布局,其中包括['header','title','text','form','footer','table','list','figure'] . 训练超过 15000 次迭代后,损失没有减少。我有大约 3000 个样本在训练中的数据。
我的配置文件看起来像 -
我该如何解决这个问题?
tensorflow - CNN + LSTM 图像模型在验证数据集上表现不佳
我的训练和损失曲线如下所示,是的,类似的图表已经收到诸如“经典过度拟合”之类的评论,我明白了。
我的模型如下所示,
在上面的模型构建代码中,请将注释行视为我迄今为止尝试过的一些方法。
我已遵循作为此类问题的答案和评论给出的建议,但似乎没有一个对我有用。也许我错过了一些非常重要的东西?
我尝试过的事情:
- 辍学在不同的地方和不同的数额。
- 玩包含和排除密集层及其单位数量。
- LSTM 层上的单元数尝试了不同的值(从低至 1 开始,现在为 16,我的性能最好。)
- 遇到权重正则化技术并尝试如上面的代码所示实现它们,因此尝试将其放在不同的层(我需要知道我需要使用什么技术而不是简单的反复试验 - 这是我做了什么,这似乎是错误的)
- 实现了学习率调度程序,我使用它来降低学习率,因为在一定数量的 epochs 之后随着 epochs 的进展。
- 尝试了两个 LSTM 层,第一个具有 return_sequences = true。
毕竟,我仍然无法克服过度拟合的问题。我的数据集被正确地洗牌并以 80/20 的火车/验证比进行划分。
数据增强是我发现通常建议的另一件事,但我还没有尝试,但我想看看我是否犯了一些错误,我可以纠正它,并暂时避免深入数据增强步骤。我的数据集具有以下大小:
显示的数字是样本,每个样本将有 3 个图像。所以基本上,我一次输入 3 个法师作为我的时间分布的一个样本,CNN
然后是其他层,如模型描述中所示。之后,我的训练图像是 6780 * 3,我的验证图像是 1484 * 3。每张图像都是 100 * 100,并且在通道 1 上。
我使用的优化器比我的测试RMS prop
表现更好adam
更新
我在不同的地方尝试了一些不同的架构和一些 reularizations 和 dropout,现在我能够实现 59% 以下的 val_acc 是新模型。
tensorflow - 我的验证损失低于我的训练损失,我应该摆脱正则化吗?
我听过很多人谈论一些原因,但他们从来没有真正回答是否应该修复它。我检查了我的数据集是否有泄漏,并从 TFRecords 数据集中随机抽取了 20% 用于我的验证集。我开始怀疑我的模型有太多的正则化层。我应该减少我的正则化以使验证线位于训练线之上吗?或者它真的很重要吗?