当训练样本增加时准确率下降

when training sample increases accuracy decreases

我正在测试 keras 的 imdb 数据集。问题是,当我拆分训练和测试 2000 个单词时,准确率接近 87%:

(X_train, train_labels), (X_test, test_labels) = imdb.load_data(num_words=2000)

但是当我将单词增加到喜欢 5000 或 10000 时,模型表现不佳:

(X_train, train_labels), (X_test, test_labels) = imdb.load_data(num_words=10000)

这是我的模型:

model = models.Sequential()

model.add(layers.Dense(256, activation='relu', input_shape=(10000,)))

model.add(layers.Dense(16, activation='relu' ))

model.add(layers.Dense(1, activation='sigmoid'))

model.compile(optimizer='adam',
            loss='binary_crossentropy',
            metrics=['accuracy'])
history =model.fit(X_train, y_train, epochs=10, batch_size=64,validation_data=(x_val, y_val))

谁能解释一下为什么会这样。我虽然有更多的样本(和更少的过拟合)我应该得到一个非常好的模型。

感谢任何建议

增加 num_words 不会增加样本数量,但会增加词汇量,导致每个样本(统计上)更多的单词,朝着 curse of dimensionality 的方向发展,这对模型。

来自docs

num_words: integer or None. Top most frequent words to consider. Any less frequent word will appear as oov_char value in the sequence data.