有哪些方法可用于调整图内核 SVM 超参数?

机器算法验证 支持向量机 交叉验证 内核技巧 图论
2022-03-10 04:09:49

我有一些数据存在于图表上G=(V,E). 顶点属于两个类之一yi{1,1},并且我有兴趣训练 SVM 以区分这两个类。一个合适的内核是扩散内核K=exp(βL),在哪里L拉普拉斯算Gβ是一个调整参数。

调整 SVM 需要选择超参数,所以我必须调整θ=(β,C).传统上,我们对这个问题使用交叉验证,但这在这里似乎不合适,因为省略了一个顶点iG改变整个图,甚至可能增加连接组件的数量!如果连接组件的数量发生变化,一些顶点变得无法从其他顶点到达,我们将面临与开始时截然不同的一组数据。也就是说,我们不仅缺少删除的顶点i,但我们也缺少有关所有其他顶点的信息j在与该顶点相邻的图中。

交叉验证的基本概念是,我们希望估计模型在呈现新数据时的表现。在标准问题中,省略一些用于测试的数据不会改变剩余训练数据的值。但是,在图形数据的情况下,尚不清楚模型在 CV 设置中看到“新”数据意味着什么。省略顶点或边有可能完全改变数据。例如,想象一个图表S=(VS,ES)这是一个k-星图,其中一个顶点有k边缘到k顶点,所有其他顶点都有 1 条边。省略中心顶点来构建训练数据S将完全断开图形,并且内核矩阵将是对角线!但是,当然,可以在提供的训练数据上训练模型S. 不太清楚的是,然后测试结果模型的样本外性能意味着什么。是否重新计算内核矩阵S,并提供预测?

或者,或者,是否从计算核矩阵开始S整体并根据需要省略行和列以生成用于估计 SVM 的内核矩阵?这提出了它自己的概念问题,因为将中心节点包含在S意味着每个顶点都可以从其他每个顶点到达,并且核矩阵是密集的。这种包含是否意味着跨折叠存在信息泄漏,并偏向交叉验证输出?一方面,关于省略的中心节点的数据仍然存在,因为省略的中心节点使图连接起来。另一方面,我们对标签一无所知 y被省略的节点,所以我们可能会很舒服,我们从以这种方式执行 CV 得到合理无偏的样本外估计。

如何为此类问题选择超参数?CV 是不完美但可以接受的,还是我们需要专门的方法?在我的上下文中,超参数调整是否可行?

1个回答

免责声明:我对图形内核不是很熟悉,所以这个答案可能是基于错误的假设。我同意在计算内核矩阵时省略顶点是次优的。也就是说,我不确定交叉验证是否一定有问题。你的学习环境是转导还是归纳?

总的来说,我不相信计算给定的核矩阵β基于所有数据(即训练和测试)必然会造成信息泄漏。如果基于所有数据计算内核结果没问题,那么您可以在典型的 cv 设置中训练模型,使用(预先计算的)完整内核矩阵的相关块进行训练/测试。

这种方法将使您能够共同优化βC,例如通过像Optunity这样的库,其中β用于基于所有数据计算内核,并且C专门用于在训练折叠上训练模型。