有哪些方法可以选择哪种内核会在内核PCA(主成分分析)输出的最终数据中实现良好的数据分离,还有哪些方法可以优化内核的参数?
如果可能的话,Layman的术语将不胜感激,并且解释这些方法的论文的链接也将很不错。
有哪些方法可以选择哪种内核会在内核PCA(主成分分析)输出的最终数据中实现良好的数据分离,还有哪些方法可以优化内核的参数?
如果可能的话,Layman的术语将不胜感激,并且解释这些方法的论文的链接也将很不错。
Answers:
在任何基于内核的方法中选择最佳内核(内核类型或内核参数)的一般方法是交叉验证。有关支持向量机的内核选择的讨论,请参见此处:如何为SVM选择内核?
交叉验证背后的想法是,我们省略一些“测试”数据,运行我们的算法以使模型适合剩余的“训练”数据,然后检查结果模型描述测试数据的程度(以及误差有多大)是)。对不同的遗漏数据重复此操作,将误差平均以形成平均交叉验证误差,然后可以比较不同的算法,以选择产生最低误差的算法。在SVM中,可以使用例如分类精度(或相关度量)作为模型性能的度量。然后,我们将选择一个能够对测试数据进行最佳分类的内核。
问题就变成了:在kPCA中可以使用哪种模型性能度量?如果要实现“良好的数据分离”(大概是良好的类分离),则可以以某种方式在训练数据上对其进行度量,然后使用它来找到最佳内核。但是请注意,这PCA / KPCA不是用来产生良好的数据分离(他们不花类标签考虑在所有)。因此,总的来说,人们会想要另一种与类无关的模型性能度量。
在标准PCA中,可以将重构误差用作测试集上的性能度量。在内核PCA中,还可以计算重构误差,但是问题在于它在不同内核之间不具有可比性:重构误差是在目标特征空间中测量的距离;并且不同的内核对应于不同的目标空间...所以我们有一个问题。
解决此问题的一种方法是以某种方式计算原始空间而非目标空间中的重建误差。显然,遗漏的测试数据点位于原始空间中。但是它的kPCA重构存在于目标空间的[低维子空间]中。但是,可以做的是在原始空间中找到一个点(“原像”),该点将被映射为尽可能靠近此重建点,然后测量测试点与该原像之间的距离。作为重建错误。
我不会在这里给出所有公式,而是请您参考一些论文,并在此处仅插入几张图。
本文显然引入了kPCA中的“原像”概念:
Mika等。并没有进行交叉验证,但是它们需要原像以进行降噪,请参见下图:
去噪(粗)点是kPCA投影的原像(此处没有测试和培训)。找到这些原像不是一件容易的事:需要使用梯度下降,并且损失函数将取决于内核。
这是一篇非常新的论文,该论文使用原图像进行交叉验证和内核/超参数选择:
这是他们的算法:
以下是一些结果(我认为这很不言而喻):