为什么我会使用线性自动编码器进行降维?

机器算法验证 主成分分析 降维 自动编码器
2022-03-25 07:01:58

继从:PCA 和自动编码器之间有什么区别?

如果我想进行降维并限制自己对自动编码器使用线性激活,是否有任何理由使用 AE 而不是主成分分析?PCA 将限制在某个子空间中的数据与真实表示之间的平方距离最小化,并且具有封闭形式的解决方案,因此速度非常快 - AE 确实绕着房子走来实现这一点,并且解决方案不会有更好的损失,即被优化的损失函数最多只能与 PCA 相同。

所以我得出结论,如果我想结合非线性激活函数、使用多层或使用卷积层等,我应该只使用自动编码器进行降维。这是一个公平的结论吗?

1个回答

使用线性自动编码器代替 PCA 在大规模学习场景中也很有用。由于您可以使用随机梯度下降 (SGD) 来训练 AE,因此无需一次将所有训练样本加载到主存中,这对于大规模问题可能会带来问题。

线性 AE 也可以在在线学习场景中派上用场,在这种场景中,训练示例会随着时间的推移而到达,因为这可以通过 SGD 轻松处理。

另一种选择是使用 PCA 的增量版本(例如 Scikit-learn):http ://scikit-learn.org/stable/auto_examples/decomposition/plot_incremental_pca.html