gpt4 book ai didi

optimization - "parameter optimization of SVM by PSO"是什么意思?

转载 作者:行者123 更新时间:2023-11-30 09:21:14 27 4
gpt4 key购买 nike

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

最佳答案

粒子群优化是一种使用 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 算法训练和测试模型每个粒子,返回该模型的错误率作为类似于训练损失函数的值(它是如何计算该值的)。

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

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

<小时/>

我将尝试简要解释足以回答您的澄清问题。如果这不起作用,恐怕您可能需要找人在白板前讨论这个问题。

要使用 PSO,您必须决定要尝试优化哪些 SVM 参数,以及要使用多少个粒子。 PSO是一种元算法,所以它的特征就是SVM参数。 PSO 参数是总体(要使用多少个粒子、更新邻域(lbest 大小和距离函数;gbest 是包含所有情况的情况))和速度( SVM 参数的学习率)。

为了便于说明,我们假设上面的粒子表扩展到 20 个粒子。我们将使用邻域为 4、速度为 0.1 的 lbest。我们为 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;在这种情况下,您不需要粒子空间上的距离函数。

关于optimization - "parameter optimization of SVM by PSO"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37727489/

27 4 0