训练集精度随着集大小的增加而降低

Training set accuracy deacreases as set size increases

为了更多地了解机器学习算法,我正在使用自己收集的一些数据,但是当与我的神经网络算法一起使用时我有一个奇怪的行为...

我的数据集由分为 3 个不同可能类别的数据组成(假设 A 占数据集的 5%,B 占数据集的 5%,C 占数据集的 90%)。

当我尝试使用 "small" 训练集(~1800 个条目)时,我的训练集准确率接近 100% (A:99% B:100% C:100 % -> 很正常),但是我的交叉验证集和测试集的准确性非常差。

所以我尝试使用更大的训练集(~12000 个条目),但我的训练集准确率急剧下降 (A:18%, B:28%, C:99%) 并且测试集准确率确实还是很差

然后我尝试使用中等训练集(~5500 个条目),正如预期的那样,训练集介于之前的两个结果之间(A:45%, B:78%, C:99%) 并且测试集的准确性仍然很差。

你知道造成这样结果的可能原因是什么吗?我的数据集是否缺少有助于区分 A、B 和 C 3 个类别的定性特征,或者是否有其他潜在原因可以解释此类结果?


我当前神经网络的配置,以防它提供一些提示:

你对 class C 过度拟合,因为三个训练集的维度非常不平衡(5%、5% 和 90%)。这首先解释了 cross-validation 和 test-set 的低准确度。然后,当训练集大小增加时,训练集的准确性也会下降,因为有太多 C 项,它们往往会显着修改网络权重,如果你使用较小的学习率也是如此。

换句话说,在classes A和B上训练引起的权重修改基本上是"forgot"网络造成的,因为在class C上训练引起的修改是更重要。