油管最火十分钟机器学习数学课-超参数优化

你应该选择什么样的超参数去训练你的模型?机器学习模型只是一个公式,由需要学习的参数组成的公式,但是同时也有一些参数是无法通过正常的训练过程来直接学习的。我们叫做超参数。超参数是在训练数据之前设立的模型值,这可以是随机森林,也可以是神经网络隐藏层的个数,或是逻辑回归的学习率 。我们能让这些参数自己学习得到最优值,是我们要解决的目标。

支持向量机来分类推文sweets,给出包含正负的推文,来进行二元分类。建立一个支持向量机去学习,接着可以分析新的推文,这叫情感分析。情感分析是在自然语言处理中十分流行的任务。一个支持向量机可以帮助我们精确画出一个决策界限来划分正负推文。因为是非线性的,削弱支持向量机(RSVM)用了核技巧,不再试图拟合非线性模型。我们用输入数据在新的高纬度的特征空间中画出,通过核函数或相似函数的非线性转化,再在特征空间中用线性模型,如下图所示。

                                                  

我们定义推文中的核函数或相似函数为径向基函数,连个向量作为输入,输出基于下面方程的相似度。

                                                   

两个推文越是相似,这个方程输出值会越高。代码中有两个高阶参数:方差权衡参数和核函数的宽度参数,可以引导我们的现在画 C_values=[0.01,0.03,0.1,0.3,1,3,10,30,100] gamma_values=[0.01,0.03,0.1,0.3,1,3,10,30,100]。两个高阶参数选择需要小心,它们以某种未知的方式相互依存,所以我们不能一次最优化其中一个参数。如果我们把所有可能高阶参数组合都试一遍?这不可能,假设我们建立了一个支持向量机,我们可以为两个高阶参数选择一部分可能的值。然后创建一个变量来储存我们每个模型的准确度,接着我们为每个方差权衡参数C建立一个嵌套for循环,尝试每个核函数宽度参数gamma的值。在每次迭代中,通过高阶参数的设定重新初始化支持向量机,我们会训练评分它,再利用分数与最好的分数对比。如果更高,相应更新我们的值,这个过程会运行我们所有的高阶参数值。代码如下:

for C in C_values:

     for  gamma in gamma_values:

         # train the model for every hyperparameter value pair

         svc=svm.SVM(C=C,gamma=gamma)

         svc.fit(X,y)

         score=svc.score(Xval,yval)

         #rate accuracy of the model using each hyperparm value pair

         if score > best_score:

                best_score=score

                best_params[‘C’]=C

                best_params[‘gamma’]=gamma

这个技术叫做网格搜索(grid search)。因为本质上我们制作了一个搜索空间的网格,我们为网格中的每个点引入尽可能多维的高阶参数组,接着评估每个高阶参数组的表现。这个策略的评估规模还是庞大,我们添加越多高阶参数或者维度,越容易引发维数灾难。我们有比穷举搜索更优的方法,我们尝试每个预先列举值的高阶参数组合,简单地对参数设置进行固定次数的随机搜索,比在穷举搜索中的高维空间更有效。 这是因为事实证明,一些超参数不会显着影响损失。这不能保证我们可以得到如格点搜索得到的最好高阶参数组合。但它会消耗更少的时间。所以如手动搜索、网格搜索和随即搜索都是很好的方法,但应当有能结合学习的更加机智的方式。

基于梯度的优化,对于特定的学习算法,可以计算相对于超参数的梯度,然后使用梯度下降优化超参数。 这些技术的第一次使用集中在神经网络,从那时起,这些方法已经扩展到其他模型,如支持向量机 或逻辑回归 。

现在流行的的技术叫做贝叶斯优化,贝叶斯方法在优化过程中学习到模型信息的优势。我们关于高阶参数将会如何表现,将选择一些先验观点,接着强制搜索参数空间并在持续测量过程中更新我们的先验观点,探索与开发之间的权衡,探索确保我们是否检查空间的每一个角落,开发是一旦我们发现有希望的区域,会在其中发现最优值。贝叶斯优化用原本测评的点来计算损失f的后验期望值,接着它对能效用最大化f期望值新点进行损失值取样。这个效用函数告诉我们在那个主要f区域最适合取样。这两步过程不断重复直到收敛结合。对于先验分布,我们假定f可以被描述为高斯过程,一个高斯分布通常称为正态分布。分布是连接统计试验结果和它发生概率的公式。高斯分布很多情况下都适用,高斯过程是通过函数生成高斯分布,而不是随机变量。

                        

所以当高斯分布是由平均值和方差定义,高斯过程则由它们的均值方程和协方差方程指定。我们发现最佳取样点的方式是,选取可以最大化获取函数的点。

                   

      这是关于f的后验分布函数,它描述了所有高阶参数值的效用,有最高效用的值就是用作我们计算损失的值,我们将会用流行的期望改进函数,这个函数的x是当前最佳的高阶参数集。通过最大化上述函数,它会给予我们更多增进f最多的点,。所以给定x所观测的f值,我们通过高斯过程更新f的后验期望,接着我们发现可以最大化获取函数的新的x值,得到预期的改进,最终为新的x值计算出f值。最初,这个算法可以探索参数的空间,很快发现表现最佳的区域,再从这块区域中取样。

总而言之,我们可以通过好几个策略优化我们的高阶参数,但是贝叶斯优化看起来是最佳的选择。贝叶斯是对高阶参数的表现,选择一种先验观点,并在这个持续过程中更新对高阶参数的先验观点来更新我们原先信条的方法在参数空间搜索。所以贝叶斯学派让先验观点影响我们预测,而频率学派没有做这一点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值