在之前我们一直讨论的是一个超参数的情况,但是如果是有多个超参数如何计算是最优的超参数呢?
比如逻辑回归加了两个正则(L1+L2正则项),那如何去计算这两个正则的超参数呢?
如果有两个lamda,时间复杂度是根据指数级增加的 ,比如lamda的候选个数为n,m,则时间复杂度是2^n+m,代价是相当大的。
随着超参数的增加,时间复杂度会根据指数级变大,那么有没有更好的方式去解决呢?
有,就是Grid Search算最笨的方法也是最有效的方法
如果我有两个超参数,那如何选择组合呢,lamda1和lamda2
for i in n:
for j in m:
(进行交叉验证)得到最好的score对应的超参数
Grid Search好处:
完全可以并行化,如果有很多计算资源,就可以进行并行化
那么除了Grid Search还有其他的选择超参数的方法吗?肯定是有的
- 随机搜索
- 遗传算法
- 贝叶斯优化
该选择超参数一个比较大的挑战就是神经网络,因为神经网络很多层,每一层都有对应的超参数。