基于神经网络的分类是否需要降维?

机器算法验证 主成分分析 神经网络
2022-03-20 08:53:51

我正在使用基于神经网络的分类器对我的数据进行 n 维分类。

然后我认为首先对我的数据运行像PCA这样的降维可能是一个好主意,然后将PCA结果放入分类器(我保留3个PC)。但是,降维特征的分类不如直接使用原始的高维特征。

然后我发现这篇文章 NN as a DR1 讨论了神经网络作为一种降维方法。在本文中还可以找到一些信息 NN as a DR2 我现在很困惑:

  1. 如果我使用基于神经网络的分类(在 Matlab 中),它会自动为我进行降维吗?
  2. 在运行神经网络分类之前,我应该像 PCA 一样运行降维吗?
  3. 是否还有其他原因导致 PCA 结果分类不如使用原始高维特征?
3个回答

原则上,PCA 执行的线性变换也可以由神经网络的输入层权重执行,因此严格来说没有必要。然而,随着网络中权重数量的增加,能够可靠地确定网络权重所需的数据量也会增加(通常非常迅速),并且过度拟合成为一个更大的问题(因此使用正则化是也是个好主意)。降维的好处是它减少了网络的大小,从而减少了训练它所需的数据量。使用 PCA 的缺点是区分一个类与另一个类的判别信息可能在低方差分量中,因此使用 PCA 会使性能变差。

就像统计模式识别中的大多数事情一样,没有一种方法可以可靠地解决所有问题,最好的办法是尝试两种方法,看看哪种方法效果最好。

如果我使用基于神经网络的分类(在 Matlab 中),它会自动为我进行降维吗?答:如果您使用多个层进行分类,并且隐藏层中的神经元数量少于输入神经元,那么您就有一种降维神经网络。如果在图像 n>m 中你有一个降维网络 但它可能不是 PCA。

由于神经网络可以通过学习逼近任何非线性映射,并且不受非线性模型的约束,因此不需要像 PCA 那样提前降维。这也说明人工神经网络(ANN)具有很强的非线性计算能力。

其它你可能感兴趣的问题