在具有多个参数的模型中,应该首先通过交叉验证调整哪个参数?

机器算法验证 交叉验证
2022-04-19 16:38:39

我有一个损失函数,比如

L(U,V,P,Q)=α1(RUVT)2+α2(DUPT)2+α3(SVQT)2+λ1(U2+V2)+λ2P2+λ3Q2

在哪里α1,2,3是权重和λ1,2,3是正则化参数。

现在我想通过交叉验证找到最好的参数,但是有两个问题:

问题1.我应该先调整权重参数,还是先调整正则化参数?顺序重要吗?

问题 2. 在权重参数中,我应该先调整哪个值,其余的应该修复哪个值?

因为我认为这些参数是相互依赖的,比如说α1α2,如果我修复α2到某个值(我也不知道应该是哪个值),然后调α1,我怎样才能确保调谐α1是全局最优的吗?

1个回答

由于这些超参数相互影响,最好将它们一起调整。通常,超参数响应面非常复杂,这意味着单独调整参数通常会导致较差的结果。

调整的标准方法是网格搜索,例如测试预先确定的超参数元组(使用交叉验证)并使用产生最佳性能的元组。然而,网格搜索效率低下。当你有很多超参数时,网格搜索效率非常低(6 已经是网格搜索的问题)。另一种方法是随机搜索,它本质上意味着尝试一组随机元组。

最好的选择是使用专门的库来提供自动求解器来优化超参数。这些求解器需要更少的参数元组来测试,因此需要更少的时间。您可以在OptunityHyperopt中找到此类求解器