美文网首页训练调参
Python利用Gausian Process对Hyper-pa

Python利用Gausian Process对Hyper-pa

作者: 一个不知死活的胖子 | 来源:发表于2016-08-04 16:09 被阅读1086次

    导语

    在做模型的时候发现调参尤其是调Hyper-parameter真是惆怅T T……像Logistic Regression、SVM这类参数少的还能凭感觉手动调调,遇上Random Forest、AdaBoost这些参数多的咬着牙也能调出好结果,说到神经网络,那就真是无语泪先流了……是时候考虑如何才能高效调参了(握拳)!

    1. Grid Search

    顾名思义,Grid Search将所有参数划分成网格,网格中任意一个点所代表的参数组合都有可能最优参数搭配。
    Grid Search一个明显的优势在于它能完全遍历(brute-force search method)所有用户所指定的参数搭配,但也因此引发了它最大的缺点:效率低,因此也无法普适地有效解决Hyper-parameter调参问题。

    The number of grid points increases exponentially with the number of decision variables, which makes it computationally very costly.
    Source: Parameter Tuning Using Gaussian Processes (Jinjin Ma, The university of Waikato, 2012)

    Flowchart of general search algorithm for two parameters Source: Parameter Tuning Using Gaussian Processes (Jinjin Ma, The university of Waikato, 2012)

    2. Randomized Search

    Randomized Search为模型随机选取参数(Stochastic Search Process),选取用户指定次数后,从中选择效果最好的参数搭配。其中选取的参数点来源于通过网格划分所得到的参数点(划分过程与Grid Search同)。事实上,对于很多数据集和一些常用的算法,Random Search都表现不俗。


    Grid Search vs. Randomized Search Source: Random Search for Hyper-Parameter Optimization (James Bergstra & Yoshua Bengio, 2012)

    3. Gaussian Process Optimization

    关于利用高斯过程调参,一个不得不提到的概念就是Expected Improvement。

    The basic idea underlying EI is to estimate the improvement of possible candidate points over the current best value and to sample at the particular point next where the expected improvement is maximum.

    而利用高斯过程进行优化的目标就是在尽可能少的尝试中挑选出最佳的参数组合。
    不知死活的笔者发现了一个大牛运用Gaussian Process实现的Bayesian Optimization。但是不知道为什么,当笔者用这个包对几个以前已经调好参的模型进行调参时,结果并不如之前的结果好,所以在这一方面还有待于更深入的研究。

    相关文章

      网友评论

      • d8936b5a7bbf:你好请问下有没有实际的python例子呢?比如针对SVM分类调参的实际代码有吗?

      本文标题:Python利用Gausian Process对Hyper-pa

      本文链接:https://www.haomeiwen.com/subject/msyajttx.html