一、定义
机器学习模型中一般有如下两类参数:
- 一类需要从数据中学习和估计得到,称为模型参数(Parameter),即模型本身的参数。比如,线性回归直线的加权系数(斜率)及其偏差项(截距)都是模型参数。还比如:卷积核的权重和阈值等也是典型的模型参数。
- 另一类则是机器学习算法中的调优参数(tuning parameters),需要人为设定,称为超参数(Hyperparameter)。比如,正则化系数λ,决策树模型中树的深度。
归纳来看,机器学习的上下文中,超参数(Hyperparameter)是在开始学习过程之前设置值的参数。 相反,其他参数的值是通过训练得出的。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
或者说,超参数也是一个参数,是一个未知变量,但是它不同于在训练过程中的参数,而是可以对训练得到的参数产生影响的参数。超级参数需要训练者人工输入,并作出调整,以便优化训练模型的效果。
或者说,超参数也是一种参数,它具有参数的特性,比如未知,也就是它不是一个已知常量。是一种手工可配置的设置,需要为它根据已有或现有的经验,指定“正确”的值,也就是人为为它设定一个值,它不是通过系统学习得到的。例如学习率、正则化器、正则化系数、隐藏层的维数、初始权重值,甚至选择什么样的优化器优化权重和偏置。
例如,在卷积神经网络中,超参数有学习速率、迭代次数、层数、每层神经元的个数、批大小(batch size)及损失函数中各部分的权值等。而参数是可以根据模型自身的算法,通过数据迭代自动学习出的变量,如卷积核的权值w、偏置b等。如果将卷积神经网络的训练看成多项式拟合问题,那么超参数是最高项次数,参数是各次项的系数。其中,参数可以用最小二乘法求解;而超参数只能先人工设定,再根据验证集上的效果选取最优的。
归纳起来看,超参数具有如下的几个特点:
- 定义关于模型的更高层次的概念,如复杂性或学习能力。
- 不能直接从标准模型培训过程中的数据中学习,需要预先定义。
- 可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定。
参数和超参数的区别:
- 模型参数是模型内部的配置变量,需要用数据估计模型参数的值。
- 模型超参数是模型外部的配置,其值无法从数据中估计,需要手动设置,并且在过程中用于帮助估计模型参数。
- 机器学习中一直说的“调参”,实际上不是调“参数”,而是调“超参数”。
超参数的典型示例
- 矩阵分解中潜在因素的数量
- 学习率(多种模式)
- 卷积神经网络中的卷积核的大小
- 深层神经网络隐藏层数
- k均值聚类中的簇数
- 迭代次数epoch
- k近邻法(kNN)中的k(最相近的点的个数)
- 决策树模型中树的深度等
代码示例
Tensorflow中的卷积操作:
conv1 = tf.nn.conv2d(input_tensor,conv1_weight,strids=[1,1,1,1],padding='SAME')
这是一个常见的卷积操作,其中strides=[1,1,1,1]表示滑动步长为1,padding=‘SAME’表示填0操作(属于超级参数),strides在官方定义中是一个一维具有四个元素的张量,其规定前后必须为1,我们可以改的是中间两个数,中间两个数分别代表了水平滑动和垂直滑动步长值,也属于超级参数。
二、卷积层超参数——填充和步幅
参考地址:https://baijiahao.baidu.com/s?id=1739417988560047378&wfr=spider&for=pc
可结合李沐老师的免费课程:https://www.zhihu.com/education/video-course/1647604835598092705?section_id=1647604843948966019
三、优化问题
学习率可能是最重要的超参数。 超参数优化或模型选择是为学习算法选择一组最优超参数时的问题,通常目的是优化算法在独立数据集上的性能的度量。 通常使用交叉验证来估计这种泛化性能。 超参数优化与实际的学习问题形成对比,这些问题通常也被转化为优化问题,但是优化了训练集上的损失函数。 实际上,学习算法学习可以很好地建模/重建输入的参数,而超参数优化则是确保模型不会像通过正则化一样通过调整来过滤其数据。
1 网格搜索
执行超参数优化的传统方法是网格搜索或参数扫描,这仅仅是通过学习算法的超参数空间的手动指定子集的详尽搜索。 网格搜索算法必须由某些性能度量指导,通常通过训练集合 [3] 上的交叉验证或对被保留验证集进行评估来衡量。
由于机器学习者的参数空间可能包括某些参数的实值或无界值空间,因此在应用网格搜索之前可能需要手动设置边界和离散化。
2 贝叶斯优化
贝叶斯优化包括从超参数值到在验证集上评估的目标的功能的统计模型。直观上,该方法假设有一些平滑但嘈杂的功能,作为从超参数到目标的映射。在贝叶斯优化中,一个目的是收集观察结果,以便尽可能少地显示机器学习模型的次数,同时尽可能多地显示关于该功能的信息,特别是最佳位置。贝叶斯优化依赖于假设一个非常普遍的先验函数,当与观察到的超参数值和相应的输出结合时,产生函数分布。该方法通过迭代地选择超参数来观察(实验运行),以抛售(结果最不确定的超参数)和利用(预期具有良好结果的超参数)的方式。实际上,贝叶斯优化已经被证明 ,因为在实验的质量运行之前,能够对网格搜索和随机搜索进行更少的实验获得更好的结果。
3 随机搜索
由于网格搜索是一种穷尽且潜在昂贵的方法,因此已经提出了几种替代方案。 特别地,已经发现,简单地对参数设置进行固定次数的随机搜索,比在穷举搜索中的高维空间更有效。 这是因为事实证明,一些超参数不会显着影响损失。 因此,随机分散的数据给出了比最终不影响损失的参数的详尽搜索更多的“纹理”数据。
4 基于梯度的优化
对于特定的学习算法,可以计算相对于超参数的梯度,然后使用梯度下降优化超参数。 这些技术的第一次使用集中在神经网络从那时起,这些方法已经扩展到其他模型,如支持向量机或逻辑回归。
引用
- https://baike.baidu.com/item/%E8%B6%85%E5%8F%82%E6%95%B0/3101858
- https://blog.csdn.net/qq_43711995/article/details/126003814
- https://www.cnblogs.com/qamra/p/8721561.html
- https://blog.csdn.net/wzz110011/article/details/120601799
- https://www.zhihu.com/education/video-course/1647604835598092705?section_id=1647604843948966019
- https://blog.csdn.net/Kefenggewu_/article/details/118557608/,【深度学习卷积神经网络中涉及的训练参数与超参数概念理解】
- https://baijiahao.baidu.com/s?id=1739417988560047378&wfr=spider&for=pc,AI课堂23: 卷积层超参数——填充和步幅