PCA 降低了我的神经网络的准确性并导致过度拟合

PCA reducing the accuracy of my neural network and also causing to overfit

我正在尝试针对手写数字分类问题实施神经网络。

我总共有 42,000 个标记图像样本和 28,000 个未标记图像样本需要预测。每张图片都是 28x28,所以总共有 784 个像素或特征。

所以我首先使用 sci-kit-learns MinMaxScaler 规范化数据样本并训练我的神经网络。它有 9 个隐藏层和 590 个隐藏节点,我使用的是 ReLu。我的分数是97.399%,所以我觉得还不错。

之后,我认为我应该使用 PCA 来降低数据的维度并使训练过程更快。

我正在将数据的维度减少到 100-300。

但 PCA 降低了神经网络的准确性,并导致过度拟合。

使用 PCA,我的准确率低于 50%。

我尝试更改隐藏层数和隐藏节点数,但准确率仍然低于 50%。

那我该怎么办呢?

是的,它不会工作,因为缩小后的图像分辨率很差(没有 useful/good 预测功能)。

  • 虽然 PCA 不会丢弃所有其他像素,它只会将数据转换为具有重要特征,但将维度降低到 100-200 个特征可能太低了。你不能用那个来代表一个好的形象。

  • 您必须 select 维数以保留最大方差的方式。所以在图像的情况下,仅通过可视化图像就可以说出最大方差。

  • 在以像素为特征的图像中减小尺寸意味着对图像进行下采样。因此,如果您将特征(像素)的数量从 784 个特征(像素)减少到 100-200 个,那么大部分重要的特征可能会消失,从而导致性能不佳。

  • 尝试将降维后的图像可视化,将其与784像素的图像进行比较,您会发现差异。

  • 如果您仍想使用 PCA 并减小尺寸,则可以将其减小到您可以在视觉上确认图像具有大量特征以供算法工作的级别。

希望对您有所帮助!