我试图为手写数字分类问题实现神经网络。
我需要预测总共42,000个标记图像样本和28,000个未标记图像样本。每张图片为28x28,因此共有784个像素或特征。
首先,我使用sci-kit学习MinMaxScaler并训练我的神经网络来规范化数据样本。它有9个隐藏层和590个隐藏节点,我使用ReLu。我的分数是97.399%,所以我认为这很好。
之后,我认为我应该使用PCA来减少数据的维度并使培训过程更快。
我将数据的维度减少到100-300。
但是,PCA正在降低神经网络的准确性,并导致过度拟合。使用PCA,我的准确率不到50%。
我尝试更改隐藏层和隐藏节点的数量,但仍然,精度低于50%。
那我该怎么办?
答案 0 :(得分:1)
是的,它不起作用,因为缩小的图像分辨率很差(没有用于预测的有用/好的功能)。
虽然PCA不会丢弃所有其他像素,但它只会将数据转换为具有重要功能,但将尺寸减小到100-200个特征可能会太低。你不能用它代表一个好的形象。
您必须以保留最大差异的方式选择维度数。因此,在图像的情况下,可以通过可视化图像来表示最大方差。
缩小像素为特征的图像中的尺寸,意味着对图像进行下采样。因此,如果您将特征(像素)的数量从784个特征(像素)减少到100-200,那么大多数重要特征可能会消失,导致性能不佳。
尝试在降维后可视化图像,将其与784像素的图像进行比较,您将看到差异。
如果您仍想使用PCA并缩小尺寸,可以将其缩小到可以直观地批准图像的水平,以便算法具有大量功能。
< / LI>希望这有帮助!