Hyperparameters
参数是机器学习算法的关键。它们通常由过去的训练数据中总结得出。在经典的机器学习文献中,我们可以将模型看作假设,将参数视为对特定数据集的量身打造的假设。
模型是否具有固定或可变数量的参数决定了它是否可以被称为“参数”或“非参数”。
模型参数是根据数据自动估算的。但模型超参数是手动设置的,并且在过程中用于帮助估计模型参数。
定义
我们虽然无法知道给定问题的模型超参数的最佳值,但是我们可以使用经验法则,在其他问题上使用复制值,或通过反复试验来搜索最佳值。
如果必须手动指定模型参数,那么它可能是一个模型超参数。
在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数。 相反,其他参数的值通过训练得出。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
超参数:定义关于模型的更高层次的概念,如复杂性或学习能力。
不能直接从标准模型培训过程中的数据中学习,需要预先定义。
可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定
超参数的一些示例:
- 树的数量或树的深度
 - 矩阵分解中潜在因素的数量
 - 学习率(多种模式)
 - 深层神经网络隐藏层数
 - k均值聚类中的簇数
 
优化问题
超参数优化或模型选择是为学习算法选择一组最优超参数时的问题,通常目的是优化算法在独立数据集上的性能的度量。 通常使用交叉验证来估计这种泛化性能。
超参数优化与实际的学习问题形成对比,这些问题通常也被转化为优化问题,但是优化了训练集上的损失函数。
实际上,学习算法学习可以很好地建模/重建输入的参数,而超参数优化则是确保模型不会像通过正则化一样通过调整来过滤其数据。
网格搜索
执行超参数优化的传统方法是网格搜索或参数扫描,这仅仅是通过学习算法的超参数空间的手动指定子集的详尽搜索。 网格搜索算法必须由某些性能度量指导,通常通过训练集合上的交叉验证或对被保留验证集进行评估来衡量。
由于机器学习者的参数空间可能包括某些参数的实值或无界值空间,因此在应用网格搜索之前可能需要手动设置边界和离散化。
贝叶斯优化
贝叶斯优化包括从超参数值到在验证集上评估的目标的功能的统计模型。直观上,该方法假设有一些平滑但嘈杂的功能,作为从超参数到目标的映射。在贝叶斯优化中,一个目的是收集观察结果,以便尽可能少地显示机器学习模型的次数,同时尽可能多地显示关于该功能的信息,特别是最佳位置。贝叶斯优化依赖于假设一个非常普遍的先验函数,当与观察到的超参数值和相应的输出结合时,产生函数分布。该方法通过迭代地选择超参数来观察(实验运行),以抛售(结果最不确定的超参数)和利用(预期具有良好结果的超参数)的方式。实际上,贝叶斯优化已经被证明 ,因为在实验的质量运行之前,能够对网格搜索和随机搜索进行更少的实验获得更好的结果。
随机搜索
由于网格搜索是一种穷尽且潜在昂贵的方法,因此已经提出了几种替代方案。 特别地,已经发现,简单地对参数设置进行固定次数的随机搜索,比在穷举搜索中的高维空间更有效。 这是因为事实证明,一些超参数不会显着影响损失。 因此,随机分散的数据给出了比最终不影响损失的参数的详尽搜索更多的“纹理”数据。
基于梯度的优化
对于特定的学习算法,可以计算相对于超参数的梯度,然后使用梯度下降优化超参数。 这些技术的第一次使用集中在神经网络。从那时起,这些方法已经扩展到其他模型,如支持向量机或逻辑回归 。
训练集/测试集/验证集
首先,需要说明一点的是,训练集(training set)、验证集(validation set)和测试集(test set)本质上并无区别,都是把一个数据集分成三个部分而已,都是(feature,label)造型。尤其是训练集与验证集,更无本质区别。
测试集可能会有一些区别,比如在一些权威计算机视觉比赛中,测试集的标签是private的,也就是参赛者看不到测试集的标签,可以把预测的标签交给大赛组委会,他们根据你提交的预测标签来评估参赛者模式识别系统的好坏,以防作弊。
【训练集】:每个样本都是(feature,label)造型,用来训练模式识别系统。
【验证集】:在训练集上训练好系统后,有些参数是不可学习的,需要人为设定的,比如支持向量机SVM中的超参数松弛参数C。但是人为设定可能不是最优的,怎样寻找最优的这个参数呢?这就需要验证集。在验证集上不断调试这个人为设定的超参数,直到在验证集上得到的结果满意为止,这一步通常采用验证集上的交叉验证来确定最优超参数。需要人为设定的超参数确定后,到此这个系统的所有参数都确定了,然后看一下这个系统在测试集上的效果怎么样。
【测试集】:用来最终评估模式识别系统的性能。
需要注意的是,当整个模式识别系统中没有需要人为设定的超参数,所有参数都是通过学习得到的,则不需要验证集,训练集和测试集就够了。
参考:https://blog.csdn.net/u011501388/article/details/78359133
Hyperparameters的更多相关文章
- How to Grid Search Hyperparameters for Deep Learning Models in Python With Keras
		
Hyperparameter optimization is a big part of deep learning. The reason is that neural networks are n ...
 - 深度学习:参数(parameters)和超参数(hyperparameters)
		
1. 参数(parameters)/模型参数 由模型通过学习得到的变量,比如权重和偏置 2. 超参数(hyperparameters)/算法参数 根据经验进行设定,影响到权重和偏置的大小,比如迭代次数 ...
 - 如何选取一个神经网络中的超参数hyper-parameters
		
1.什么是超参数 所谓超参数,就是机器学习模型里面的框架参数.比如聚类方法里面类的个数,或者话题模型里面话题的个数等等,都称为超参数.它们跟训练过程中学习的参数(权重)是不一样的,通常是手工设定的,经 ...
 - 超参数 hyperparameters
		
转载:https://www.cnblogs.com/qamra/p/8721561.html 超参数的定义:在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据 ...
 - 使用神经网络来识别手写数字【译】(三)- 用Python代码实现
		
实现我们分类数字的网络 好,让我们使用随机梯度下降和 MNIST训练数据来写一个程序来学习怎样识别手写数字. 我们用Python (2.7) 来实现.只有 74 行代码!我们需要的第一个东西是 MNI ...
 - Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
		
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
 - PRML读书笔记——3 Linear Models for Regression
		
Linear Basis Function Models 线性模型的一个关键属性是它是参数的一个线性函数,形式如下: w是参数,x可以是原始的数据,也可以是关于原始数据的一个函数值,这个函数就叫bas ...
 - paper 127:机器学习中的范数规则化之(二)核范数与规则项参数选择
		
机器学习中的范数规则化之(二)核范数与规则项参数选择 zouxy09@qq.com http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮 ...
 - CNN for NLP (CS224D)
		
斯坦福课程CS224d: Deep Learning for Natural Language Processing lecture13:Convolutional neural networks - ...
 
随机推荐
- 在Azure DevOps Server(TFS)上集成Python环境,实现持续集成和发布
			
Python和Azure DevOps Server Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初主要为系统运维人员编写自动化脚本,在实际应用中,Python已经在前端 ...
 - (四)golang--注意事项
			
以.go为结尾: 执行入口是main()函数: 区分大小写: Go方法由一条条语句构成,每个语句后不需要加问号: Go编译器是一行行进行编译的,一行不能写多条语句: go语言定义的变量或者import ...
 - Qt Quick 组件与动态对象
			
博客24## 一.Components(组件) Component 是由 Qt 框架或开发者封装好的.只暴露了必要接口的 QML 类型,可以重复利用.一个 QML 组件就像一个黑盒子,它通过属性.信号 ...
 - JS中Map的用法
			
声明 var map = new Map(); 设值 map.set("key","value"); 取值 map.get("key"); ...
 - 【问题记录】ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
			
一.问题描述 环境:MySQL 8.0 + Windows 由于密码错误或者其他原因导致无法连上MySQL服务,如下图: 二.解决方案 解决该问题的具体步骤如下: 1.关闭MySQL服务 以管理员权限 ...
 - 小白开学Asp.Net Core 《八》
			
小白开学Asp.Net Core <八> — — .Net Core 数据保护组件 1.背景 我在搞(https://github.com/AjuPrince/Aju.Carefree)这 ...
 - 我是如何一步步编码完成万仓网ERP系统的(七)产品库设计 3.品牌图片跨域上传
			
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
 - 微服务架构 ------ Dockerfile定制镜像
			
Docker容器不仅仅是运行原生的容器,而是把我们的具体的项目能够布置到容器上面去,这就是Docker定制镜像需要做的事情. Docker容器 = new Docker镜像 镜像相当于类,容器相当 ...
 - 5.css三角的做法
			
如上图所示,类似这样的小三角都可以通过以下代码写出: .box1 { width: ; height: ; /* border: 10px solid pink; */ border-top: 10p ...
 - Generate a document using docxtemplater
			
生成word文档,更新word内容 http://javascript-ninja.fr/docxtemplater/v1/examples/demo.html https://docxtempl ...