“PSO参数优化SVM”的含义是什么?

时间:2016-06-09 13:33:16

标签: optimization machine-learning svm

我可以手动更改参数C和epsilon以获得优化结果,但我发现PSO(或任何其他优化算法)存在SVM参数优化。没有算法。它意味着什么:PSO如何自动优化SVM参数?我读了几篇关于这个主题的论文,但我还是不确定。

1 个答案:

答案 0 :(得分:0)

粒子群优化是一种使用ML参数(在您的情况下为SVM参数)作为其特征的技术。

每个"粒子"群中的特征在于那些参数值。例如,您的初始坐标可能为

   degree  epsilon  gamma   C
p1    3     0.001    0.25  1.0
p2    3     0.003    0.20  0.9
p3    2     0.0003   0.30  1.2
p4    4     0.010    0.25  0.5
...
pn   ...........................

"健身"通过所得模型的精确度测量每个粒子(此处显示的 n 粒子群中的p1-p4):PSO算法训练并测试每个粒子的模型,返回该模型&# 39;误差率为与训练损失函数(计算值的计算方式)类似的值。

在每次迭代中,粒子都会向最适合的邻居移动。重复该过程直到最大值(希望是全局值)出现为收敛点。这个过程只是熟悉的梯度下降族中的一个。

有两种基本的PSO变体。在 gbest (全局最佳)中,每个粒子都会影响所有其他粒子,这是一种万有引力原理。它快速收敛,但很可能错过了全球最大值,有利于更接近群体原始中心的本地最大值。在 lbest (本地最佳)中,粒子仅响应其 k 最近邻居。这可以形成本地化的集群;它收敛得更慢,但更有可能在非凸空间中找到全局最大值。

我会尝试简要解释一下,以回答您的澄清问题。如果这不起作用,我担心你可能不得不在白板前找人讨论这个问题。

要使用PSO,您必须确定要尝试优化的SVM参数以及要使用的粒子数量。 PSO是一种元算法,因此它的特征是SVM参数。 PSO参数是总体(您想要使用多少粒子,更新邻域( lbest 大小和距离函数; gbest 是包罗万象的情况)和速度( SVM参数的学习率。)

为了便于说明,让我们假设上面的粒子表,扩展到20个粒子群。我们使用 lbest ,邻域为4,速度为0.1。我们选择(随机地,在网格中,或者我们认为可能给我们很好的结果)20个粒子中的每个粒子的度,epsilon,gamma和C的初始值。

Each iteration of PSO works like this:
    # Train the model described by each particle's "position"
    For each of the 20 particles:
        Train an SVM with the SVM input and the given parameters.
        Test the SVM; return the error rate as the PSO loss function value.

    # Update the particle positions
    for each of the 20 particles:
        find the nearest 4 neighbours (using the PSO distance function)
        identify the neighbour with the lowest loss (SVM's error rate).
        adjust this particle's features (degree, epsilon, gamma, C) 0.1 of the way toward that neighbour's features.  0.1 is our learning rate / velocity.  (Yes, I realize that changing degree is not likely to happen (it's a discrete value) without a special case in the update routine.

Continue iterating through PSO until the particles have converged to your liking.

gbest 只是 lbest ,带有无限的邻居;在这种情况下,你不需要在粒子空间上使用距离函数。