有资源网yoqq.cn
 
 
查看: 4898|回复: 0

呆板学习模子的超参数优化

[复制链接]

该用户从未签到

265

主题

265

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2020-5-5 10:44:32 | 显示全部楼层 |阅读模式
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(1)


弁言
模子优化是呆板学习算法实现中最困难的挑衅之一。呆板学习和深度学习理论的全部分支都致力于模子的优化。
呆板学习中的超参数优化旨在探求使得呆板学习算法在验证数据集上体现性能最佳的超参数。超参数与一样平常模子参数差别,超参数是在练习条件前设置的。举例来说,随机丛林算法中树的数目就是一个超参数,而神经网络中的权值则不是超参数。
别的超参数有:
神经网络练习中的学习率支持向量机中的  参数和  参数k 近邻算法中的  参数……超参数优化找到一组超参数,这些超参数返回一个优化模子,该模子淘汰了预界说的丧失函数,进而进步了给定独立数据的猜测大概分类精度。
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(2)


分类算法中的超参数
超参数优化方法
超参数的设置对于模子性能有着直接影响,其紧张性不问可知。为了最大化模子性能,相识怎样优化超参数至关紧张。接下来先容了几种常用的超参数优化方法。
1.手动调参
许多环境下,工程师们依赖试错法手动对超参数举行调参优化,有履历的工程师可以或许很大水平上判定超参数怎样举行设置可以或许得到更高的模子正确性。但是,这一方法依靠大量的履历,而且比力耗时,因此发展出了很多主动化超参数优化方法。
2. 网格化寻优(Grid Search)
网格化寻优可以说是最根本的超参数优化方法。利用这种技能,我们只需为全部超参数的大概构建独立的模子,评估每个模子的性能,并选择产生最佳效果的模子和超参数。
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(3)


网格化寻优方法
以一个典范的核函数为 RBF 的 SVM 分类模子为例,其至少有两个超参数必要优化——正则化常数  和 核函数参数 。这两个超参数都是一连的,必要实行网格化寻优为每个超参数选择公道取值。假设 。那么网格化寻优方法将对每一对(  ,)赋值后的 SVM 模子举行练习,并在验证集上分别评估它们的性能(大概在练习集内举行 cross-validation)。终极,网格化寻优方法返回在评估过程中得分最高的模子及其超参数。
通过以下代码,可以实现上述方法:
起首,通过 sklearn 库调用 GridSearchCV 。
from sklearn.datasets import load_irisfrom sklearn.svm import SVCiris = load_iris()svc = SVR()from sklearn.model_selection import GridSearchCVfrom sklearn.svm import SVRgrid = GridSearchCV(estimator=SVR(kernel='rbf'),        param_grid={            'C': [0.1, 1, 100, 1000],            'epsilon': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10],            'gamma': [0.0001, 0.001, 0.005, 0.1, 1, 3, 5]        },        cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)
然后拟合网格。
grid.fit(X,y)
输出效果。
#print the best score throughout the grid searchprint grid.best_score_#print the best parameter used for the highest score of the model.print grid.best_param_
网格化寻优的一个缺点是,当涉及到多个超参数时,盘算数目呈指数增长。而且这一方法并不能包管搜刮会找到完善的超参数值。
随机寻优(Random Search)
通常并不是全部的超参数都有同样的紧张性,某些超参数大概作用更显着。 而随机寻优方法相对于网格化寻优方法可以或许更正确地确定某些紧张的超参数的最佳值。
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(4)



随机寻优方法
随机寻优方法在超参数网格的底子上选择随机的组合来举行模子练习。 可以控制组合的数目,基于时间和盘算资源的环境,选择公道的盘算次数。 这一方法可以通过调用 sklearn 库中的 randomizedSearchCV 函数来实现。
只管 RandomizedSearchCV 的效果大概不如GridSearchCV正确,但它令人不测地常常选择出最好的效果,而且只耗费GridSearchCV所需时间的一小部门。给定雷同的资源,RandomizedSearchCV乃至可以优于的效果大概不如GridSearchCV正确。当利用一连参数时,两者的差异如下图所示。
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(5)


网格化寻优 VS 随机寻优
随机寻优方法找到最优参数的时机相对更高,但是这一方法实用于低维数据的环境,可以在较少迭代次数的环境下找到精确的参数聚集,而且耗费的时间较少。
通过以下代码,可以实现上述方法:
起首,通过 sklearn 库调用 RandomizedSearchCV 。
from sklearn.datasets import load_irisfrom sklearn.ensemble import RandomForestRegressoriris = load_iris()rf = RandomForestRegressor(random_state = 42)from sklearn.model_selection import RandomizedSearchCVrandom_grid = {'n_estimators': n_estimators,'max_features': max_features,               'max_depth': max_depth,               'min_samples_split': min_samples_split,               'min_samples_leaf': min_samples_leaf,               'bootstrap': bootstrap}rf_random = RandomizedSearchCV(estimator = rf, param_distributions = random_grid, n_iter = 100, cv = 3, verbose=2, random_state=42, n_jobs = -1)# Fit the random search model
然后举行盘算。
rf_random.fit(X,y)
输出效果。
#print the best score throughout the grid searchprint rf_random.best_score_#print the best parameter used for the highest score of the model.print rf_random.best_param_Output:{'bootstrap': True,'max_depth': 70, 'max_features': 'auto', 'min_samples_leaf': 4, 'min_samples_split': 10, 'n_estimators': 400}
贝叶斯优化方法(Bayesian Optimization)
前面两种方法可以或许针对单独超参数组合模子举行练习,并评估各自的性能。每个模子都是独立的,因此很易于举行并行盘算。但是每个模子都是独立的,也导致模子之间不具有引导意义,前一模子的盘算效果并不能影响后一模子的超参数选择。 而贝叶斯优化方法(次序优化方法的一种,sequential model-besed optimization, SMBO)则可以鉴戒已有的效果进而影响后续的模子超参数选择。
这也限定了模子练习评估的盘算次数,由于只有有望进步模子性能的超参数组合才会被举行盘算。
贝叶斯优化是通过构造一个函数的后验分布(高斯过程)来工作的,该后验分布最好地形貌了要优化的函数。随着观测次数的增长,后验分布得到改善,算法更加确定参数空间中哪些地区值得探索,哪些地区不值得探索。
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(6)


当反复迭代时,算法会在思量到它对目的函数的相识的环境下,均衡它的探索和开辟需求。在每个步调中,高斯过程被拟合到已知的样本(先前探索的点),后验分布与探索计谋(比方UCB(上置信限,upper confidence bound)或EI(预期改善, expected improvement))被用于确定下一个应该探索的点。
通过贝叶斯优化方法,可以更高效得探索超参数变量空间,低落优化时间。
基于梯度的优化方法(Gradient-based Optimization)
基于梯度的优化方法常常被用于神经网络模子中,重要盘算超参数的梯度,而且通过梯度降落算法举行优化。
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(7)


这一方法的应用场景并不广泛,其范围性重要在于:
超参数优化通常不是一个平滑的过程超参数优化每每具有非凸的性子进化寻优(Evolutionary Optimization)
进化寻优方法的头脑泉源于生物学概念,由于天然进化是不停变革的情况中发生的一个动态过程,因此实用于超参数寻优题目,由于超参数寻优也是一个动态过程。
优化-免费yoqq呆板学习模子的超参数优化yoqq资源(8)


进化算法常常被用来探求其他技能不易求解的近似解。优化题目每每没有一个准确的办理方案,由于它大概太耗时而且盘算资源占用很大。在这种环境下,进化算法通常可以用来探求一个充足的近似最优解。 进化算法的一个长处是,它们可以产生出不受人类误解或私见影响的办理方案。
作为一个一样平常性的履历法则,任何时间想要优化调解超参数,优先思量网格化寻优方法和随机寻优方法!
总结
在本文中,我们相识到为超参数找到精确的值大概是一项令人沮丧的使命,并大概导致呆板学习模子的欠拟合或过拟合。我们看到了怎样通过利用网格化寻优、随机寻优和其他算法来降服这一停滞。
作者:Nagesh Singh Chauhan
deephub翻译组:Oliver Lee
想相识更多出色内容,快来关注deephub










您现在利用的是【试用版】,许多功能受到限定!!假如试用此插件之后满足,对您产生了资助,请购买正式版支持一下辛劳的开辟者,插件的连续发展离不开正式版用户的支持,良好的应用得益于您的捐助,点击下面的链接去Discuz官方应用中央购买正式版永世授权


https://addon.dismall.com/?@csdn123com_todaynews.plugin
正式版后续更新升级免费,一次购买,终身利用!

有资源网- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与有资源网立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者有资源网享有帖子相关版权。
3、有资源网管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者 有资源网的同意。
有资源网是一个网络技术交流、游戏交流、娱乐休闲的温馨家园.提供网络最新it资讯、热门电影电视剧、破解软件工具下载_技术和娱乐性的综合型大论坛论资源网
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

快速回复 返回顶部 返回列表