机器学习/深度学习中的自动调参数

作者: Rita_曾小辰 | 来源:发表于2019-03-26 22:16 被阅读3次

目前的机器学习/深度学习框架日渐成熟,工具的发展为模型的自动调参提供了完善的功能,帮助我们可以快速、有效的达成优化模型,确定最有参数的目的。

在开始讲述这个调参之前,我们先来回顾一个空间概念。

我们的模型未知参数可以构成一个平面,如果只有 2 个未知参数,那就是一个 2 维平面,如果是多个未知参数,则构成一个多维平面,但在这里我们依然把他理解成一个高维空间里面的曲面(如下图)。

图1 空间曲面

我们所要寻找的最优点,则是这个曲面里的极值,因此自动调参就是自动搜索极值的过程。

1. 机器学习中的自动调参

机器学习目前最流行的python库,为Scikit-learning。这个库为我们提供了丰富的机器学习工具,当然也少不了自动调参,那我们就从这个库的功能讲起。

这个库中间,可以通过 estimator 来调用自动调参的函数:

estimator.get_params()

上述函数可以获取需要自动搜索最优参数,比如支持向量机里面的 C,kernel 和 gamma,或者 Lasso 中的 alpha 等模型参数。

1.1 grid search

由于我们刚刚提到的,调参的目标是为了找寻曲面中的极点。那么其中最简单的方式,就是网格式搜索,在我们输入给定的范围内,对不同的参数组合进行测试,之后找出最优解。

图2 Grid Search 的形象展示

代码实现:

param_grid=[{'C':[1,10,100,1000],'kernel':['linear']},{'C':[1,10,100,1000],'gamma':[0.001,0.0001],'kernel':['rbf']},]

上述代码就是 support vector machine 的参数组合,根据 任意的组合,找出所有组合中 cross validation值最优的组合,作为自动寻优最佳组合。

1.2 randomizedsearch

除了比较均匀的采样以外,grid search 也可以采用随机采样的方式,来替代上述均匀网格的方式。

图3 随机采样示意图

代码实现:

{'C':scipy.stats.expon(scale=100),'gamma':scipy.stats.expon(scale=.1),'kernel':['rbf'],'class_weight':['balanced',None]}

在上述代码中,通过scipy的stats库进行exponential分布的采样,此外这个函数还支持gamma,uniform 以及 randint 分布的采样。

1.3 深度学习中的自动调参

从上面的描述中,我们可以发现其实这个工具就是提供了一个pipeline,通过循环的方式帮你自主找到合适的参数组合。比起我们自己写这个循环,会稍微方便一点,但是并没有真正做到无限环境。

那么,在深度学习里面也是有这样可以做到 grid search,以及 random search 的工具。

那就是 Ray Tune,链接放在这里,http://ray.readthedocs.io/en/latest/tune.html

代码实现:

希望对大家有帮助~

相关文章

  • 机器学习/深度学习中的自动调参数

    目前的机器学习/深度学习框架日渐成熟,工具的发展为模型的自动调参提供了完善的功能,帮助我们可以快速、有效的达成优化...

  • 不败给名词! 了解特征工程

    机器学习 基本概念:人工智能 > 机器学习 > 深度学习机器学习:机器学习是从数据中自动分析获得规律(模型), 并...

  • 【DL碎片4】深度学习中的的超参数调节

    深度学习中的的超参数调节 我们平时一直都在说“调参、调参”,但实际上,不是调“参数”,而是调“超参数”。 一、参数...

  • 《Python深度学习》第一章笔记

    人工智能、机器学习、深度学习 人工智能::努力将通常由人类完成的智力任务自动化 机器学习:输入数据和从这些数据中预...

  • 谈谈深度学习中的 Batch_Size

    谈谈深度学习中的 Batch_SizeBatch_Size(批尺寸)是机器学习中一个重要参数,涉及诸多矛盾,下面逐...

  • 深度学习参数调优

    compile函数 一个典型的compile主要解决3个问题:optimizer是什么,loss是什么,metri...

  • 人工智能、机器学习、深度学习的区别

    1、人工智能、机器学习、深度学习的区别 1.1 深度学习vs神经网络 神经网络的缺陷: 比较容易过拟合,参数比较难...

  • 贝叶斯调参

    机器学习中参数调优的目的是为了找到模型在测试集上表现最好的参数,目前常见的调参方法主要有四种: 1、手动调参; 2...

  • 深度学习笔记01 - 深度学习的基础概念

    [toc] 深度学习的基础概念 人工智能、机器学习与深度学习 人工智能的概念: 努力将通常由人类完成的智力任务自动...

  • 深度神经网络超参

    模型的参数:就是模型可以根据数据可以自动学习出的变量,应该就是参数。比如,深度学习的权重,偏差等超参数:就是用来确...

网友评论

    本文标题:机器学习/深度学习中的自动调参数

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