***机器学习/深度学习 调参方法

本文主要整合了网络资源关于调参的一些见解,具体内容如下:

一、机器学习调参方法

1、超参数调节方法:
  • 手动调参
    需要experience
  • grid search
    类深度学习“规则搜索”
    ***机器学习/深度学习 调参方法_第1张图片
  • 随机搜索
    类深度学习“随机搜索”
    ***机器学习/深度学习 调参方法_第2张图片
  • 自动贝叶斯调参
    假设我们要调节的参数集为X={x1,x2,…xn},它与目标函数Y存在一定的函数关系,记为:Y=f(X),“贝叶斯优化”的核心思想是,利用“参数选取”的先验知识,不断增加“后验概率”,从而获得较好的参数值。
    假设我们用“参数选取”的先验知识构建下图(横坐标:超参数,纵坐标:待优化目标函数),贝叶斯优化的思想是,根据该先验知识(构建的图),判定我们下一步调参的方向该怎么走。假如我们现在所处的位置为图中star位置,则根据先验知识(图),我们可以选择往前走,得到local optimal,也可以选择往后走,“山穷水尽疑无路,柳暗花明又一村”。具体采取什么样的策略,我们可以“自定义函数实现”。
    ***机器学习/深度学习 调参方法_第3张图片
    参考博文:
    机器学习调参-模型选择
    完整的贝叶斯调参procedure:自动化机器学习(AutoML)之自动贝叶斯调参
    完整的贝叶斯调参procedure:贝叶斯优化调参实战(随机森林,lgbm波士顿房价)
    贝叶斯优化核心思想介绍:贝叶斯超参优化方法
    深入理解贝叶斯优化:贝叶斯优化(Bayesian Optimization)深入理解

二、深度学习调参方法

1、神经网络需要设置的参数有2种:“超参数”和“参数初始值(weight)”,下面分别介绍2类参数的设置方式:
  • 神经网络需要调节的hyperparameter:
    1)神经网络需要调节的超参数:
    ***机器学习/深度学习 调参方法_第4张图片
    2)超参数搜索方式:
    可以用“规则搜索(left)”也可以用“随机搜索(right)”,如下图所示:
    ***机器学习/深度学习 调参方法_第5张图片
    一般,“随机选取”要优于“规则选取”,因为相比规则选取,随机选取可以提供更多的hyperparamete数量,当利用“随机选取”获得拟合效果比较好的hyperparameter范围时,可以在该范围内进一步细化hyperparameter的搜索。
    ***机器学习/深度学习 调参方法_第6张图片
    3)如何正确为超参数设定合适的范围:
    加入我们希望将learning rate设为[0.0001 , 1]之间,那么你会怎么设置呢?
    错误的做法是,直接让alpha = np.random(0.0001,1),因为,这样做,alpha落在区间[0.1,1]的概率为90%,而只有10%的概率会落在[0.0001,0.1],而我们希望的是,alpha可以均匀的落在区间:0.0001-0.001-0.01-0.1-1,可以采用的做法如下:
    r= -4 * np.random.rand()
    alpha=10r
    或者是:
    令alpha belong to [10a,10b]
    r=np.random(a,b)
    alpha=10r
  • 神经网络“权重”初始化技巧:
    1)权重初始化方法
    (1)uniform xavier初始化方法:
    参考博文:
    深度学习——Xavier初始化方法
    深度学习中Xavier初始化
    (2)MSRA权重初始化

    参考博文:深度学习——MSRA初始化
    (3)其他的权重初始化方法
    参考博文:深度学习中的初始化
    2)插入一个有趣的话题:为什么较小的weight能够有效抑制overfitting?
    过拟合的时候,拟合函数的系数往往非常大,为什么?如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。
    ***机器学习/深度学习 调参方法_第7张图片
    参考博文:机器学习 算法总结(二) 调参技巧
  • 神经网络“learning rate”设置方式
    1)在神经网络训练初期,我们可以将Learning rate设置较大值,随着training的进行,weight越来越接近最优,此时,可以gradually减小learning rate,以防错过“最优点”。
    learning rate的衰减有很多形式,以下给出Andrew Ng课程中提到的几种learning rate衰减公式(其中alpha代表learning rate):
    ***机器学习/深度学习 调参方法_第8张图片
    2)博文“机器学习算法如何调参?这里有一份神经网络学习速率设置指南 ”提到了learning rate的几种设定方法,具体包含以下几种:
    步衰减:设定一个学习速率表;
    周期性学习速率:learning rate周期性的先增后减;
    带有重启的随机梯度下降:与“周期性学习率”类似;
  • 正则化项系数的调节方式:
    参考博文:机器学习算法中如何选取超参数:学习速率、正则项系数、minibatch size
2、CNN网络调参技巧:

参考文章:
深度学习调参技巧有哪些
深度卷积神经网络CNN中shortcut的使用
训练时Loss变为Nan的原因:深度学习中常用的调节参数

三、调参建议

  • 模型性能比较(最终还是要根据具体场景来定)
    ***机器学习/深度学习 调参方法_第9张图片
  • 模型参数建议
    ***机器学习/深度学习 调参方法_第10张图片

参考博文:机器学习常见算法性能比较与调参建议

四、自动学习 项目(小白表示恐慌 及 崇拜)

参考博文:
机器学习狗太苦逼了!自动化调参哪家强?:主要概述了几种自动学习项目,这些项目能够自动识别“数据集应该使用哪种model 以及 model参数如何调节”(博文附有相关论文链接),他们运用的主要思想有:“策略梯度(强化学习)”,“概率矩阵分解(类协同过滤)和贝叶斯优化(自动调参)”,“基于网络态射的高效神经网络结构检索(不了解,有时间看论文)”,“贝叶斯优化 和 自动集成构建(个人理解,就是将所有测试过的模型构建一个集成,类似于ensemble learning的思想,有时间看论文)”。

你可能感兴趣的:(综合-机器学习理论,机器学习)