据我了解,非线性降维有三种主要方法:
- 流形学习(几何/拓扑算法,如 ISOMAP、LLE、LTSA)
- 自动编码器
- 不属于前 2 个类别的事物(概率启发的 t-SNE、内核 PCA 等)
前两种方法的优缺点是什么?
有没有人认为自编码器会完全胜过流形学习,就像深度学习在性能方面比大多数机器学习算法黯然失色?
据我了解,非线性降维有三种主要方法:
前两种方法的优缺点是什么?
有没有人认为自编码器会完全胜过流形学习,就像深度学习在性能方面比大多数机器学习算法黯然失色?
在我试图回答你的问题之前,我想在你所指的方法之间建立一个更强的分离。
我相信您所指的第一组方法是基于邻域的降维方法,其中构建了邻域图,其中边缘表示距离度量。现在来反对我自己,MDS/ISOMAP 都可以解释为内核 PCA 的一种形式。因此,尽管这种区别似乎比较明显,但各种解释将这些方法从一类转移到另一类。
您提到的第二组方法我将放在无监督神经网络学习领域。自动编码器是一种特殊的架构,它试图将输入空间映射到低维空间,从而允许以最小的信息损失解码回输入空间。
首先,让我们谈谈自动编码器的优缺点。自动编码器通常使用一些随机梯度下降的变体进行训练,这会产生一些优势。数据集不必放入内存,可以动态加载并使用梯度下降进行训练。与基于邻域的学习中的许多方法不同,后者迫使数据集存在于内存中。自编码器的架构允许将数据的先验知识合并到模型中。例如,如果数据集包含图像,我们可以创建一个利用 2d 卷积的架构。如果数据集包含具有长期连接的时间序列,我们可以使用门控循环网络(查看 Seq2Seq 学习)。这就是一般神经网络的力量。它允许我们将有关问题的先验知识编码到我们的模型中。这是其他模型无法做到的,更具体地说,是降维算法无法做到的。
从理论的角度来看,有几个不错的定理。网络越深,网络可学习的函数的复杂度呈指数增长。一般来说,至少在发现新事物之前,您不会找到比正确选择的神经网络更具表现力/功能更强大的模型。
现在虽然这一切听起来不错,但也有缺点。神经网络的收敛是非确定性的,很大程度上取决于所使用的架构、问题的复杂性、超参数的选择等。神经网络的表达能力也会导致问题,如果正确的正则化,它们往往会很快过拟合未选择/使用。
另一方面,与神经网络相比,邻域方法的表达能力较差,并且倾向于运行确定性的时间量直到收敛,所基于的参数要少得多。
方法的选择直接取决于问题。如果您有一个适合内存的小型数据集,并且不使用任何类型的结构化数据(图像、视频、音频),那么经典的降维可能是可行的方法。但是随着结构的引入,您的问题的复杂性会增加,并且您拥有的数据量会增长神经网络成为正确的选择。
希望这可以帮助。