我有一个损失函数,比如
在哪里是权重和是正则化参数。
现在我想通过交叉验证找到最好的参数,但是有两个问题:
问题1.我应该先调整权重参数,还是先调整正则化参数?顺序重要吗?
问题 2. 在权重参数中,我应该先调整哪个值,其余的应该修复哪个值?
因为我认为这些参数是相互依赖的,比如说和,如果我修复到某个值(我也不知道应该是哪个值),然后调,我怎样才能确保调谐是全局最优的吗?
我有一个损失函数,比如
在哪里是权重和是正则化参数。
现在我想通过交叉验证找到最好的参数,但是有两个问题:
问题1.我应该先调整权重参数,还是先调整正则化参数?顺序重要吗?
问题 2. 在权重参数中,我应该先调整哪个值,其余的应该修复哪个值?
因为我认为这些参数是相互依赖的,比如说和,如果我修复到某个值(我也不知道应该是哪个值),然后调,我怎样才能确保调谐是全局最优的吗?
由于这些超参数相互影响,最好将它们一起调整。通常,超参数响应面非常复杂,这意味着单独调整参数通常会导致较差的结果。
调整的标准方法是网格搜索,例如测试预先确定的超参数元组(使用交叉验证)并使用产生最佳性能的元组。然而,网格搜索效率低下。当你有很多超参数时,网格搜索效率非常低(6 已经是网格搜索的问题)。另一种方法是随机搜索,它本质上意味着尝试一组随机元组。
最好的选择是使用专门的库来提供自动求解器来优化超参数。这些求解器需要更少的参数元组来测试,因此需要更少的时间。您可以在Optunity和Hyperopt中找到此类求解器。