机器学习算法的参数调整

数据挖掘 超参数 超参数调整 网格搜索
2022-02-22 07:06:40

当谈到调优参数的话题时,大多数时候你会阅读网格搜索。但是如果你有 6 个参数,你想测试 10 个变体,你会得到 10^6 = 1000000 次运行。在我的情况下,这将是几个月的处理时间。

这就是为什么我一直在寻找替代方案。Kaggle网站上,我找到了一个使用不同方法的教程。它几乎像这样工作:

1) 使用其他 5 个参数作为默认值单独测试所有 6 个参数并绘制结果

2) 将所有 6 个参数的默认值更改为关联图的最佳值

3) 单独测试所有 6 个参数,将其他 5 个参数作为最后一个最佳值并绘制结果

4) 重复第 2 步和第 3 步,直到结果不再变化

这种方法的优点是需要更少的运行。这是一个科学接受的程序吗?这种方法在文献中有名字吗?

1个回答

通常,您的方法会陷入局部最小值。这就是为什么它不被科学接受的原因。(请注意,在非常特殊的情况下,这可能会有所不同,特别是如果算法的性能是所有输入参数的严格凸函数)。

要查看该方法如何失败,假设您的机器学习算法有两个参数,它们可以是默认值为xy01x=1y=1.

你的机器学习算法的性能是并且应该尽可能高。假设以下性能水平ff(x,y)

    | x=0 | x=1 
----|-----|-----
y=0 | 0.9 | 0.2
y=1 | 0.1 | 0.3

您的方法将执行以下操作:

  1. 首先,选择默认值并计算其次,选择默认值并计算x=1f(x=1,y=0)=0.2f(x=1,y=1)=0.3y=1f(x=0,y=1)=0.1f(x=1,y=1)=0.3
  2. 将默认值更改为最佳值。在这种情况下,这不需要更改,因为分别是最佳值。x=1y=1
  3. 结果没有改变。报告作为最佳参数组合。(x=1,y=1)

但是全局性能最大值出现在(x=0,y=0).