深度学习500问:AI工程师面试宝典
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.8 超参数

在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。本节主要介绍有哪些超参数,参数和超参数有什么区别,有哪些超参数寻优办法等。更多关于超参数的详细知识将在后续章节单独展开讨论。

3.8.1 超参数有哪些

超参数通常存在于以下几个场景。

(1)定义关于模型的更高层次的概念时,如复杂性或学习能力。

(2)不能直接从标准模型培训过程中的数据中学习,需要预先定义的场景。

(3)可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定的场景。

超参数通常有算法中的学习率(Learning Rate)、梯度下降法迭代的数量(Iteration)、隐含层数目(Hidden Layer)、隐含层单元数目、激活函数(Activation Function)等,这些数字的值都需要根据实际情况来设置,并且它们控制并影响最后的参数和输出值,所以它们被称作超参数。

3.8.2 参数和模型的关系

参数作为模型从历史训练数据中学到的一部分,是机器学习算法的关键。根据经典的机器学习文献,可以将模型看作假设,而参数是根据特定的数据集对假设进行的具体调整。模型是否具有固定或可变数量的参数,决定了模型是“参数”模型或“非参”模型。

3.8.3 参数和超参数的区别

参数

参数就是模型内部的配置变量,可以用数据估计它的值。参数有以下特征。

(1)进行模型预测时需要参数。

(2)参数值可以定义模型功能。

(3)参数用数据估计或数据学习得到。

(4)参数一般不由实践者手动设置。

(5)参数通常作为学习模型的一部分被保存。

通常使用优化算法估计参数,优化算法是对参数的可能值进行的一种有效搜索。参数的一些例子包括神经网络中的权重、支持向量机中的支持向量、线性回归或逻辑回归中的系数等。

超参数

超参数是模型外部的配置,其值不能从数据估计得到。超参数有以下特征。

(1)超参数常应用于估计参数的过程。

(2)超参数通常由实践者直接指定。

(3)超参数通常可以使用启发式方法来设置。

(4)超参数通常根据给定的预测建模问题而调整。

通常对于给定的问题,一般使用经验法、复制用于其他问题的值、反复试验的方法来探寻其最优值。超参数的一些例子包括训练神经网络的学习速率、支持向量机的C和sigma超参数、k邻域中的k等。

怎么区分参数和超参数?我们可以用一句话概括:如果你必须手动指定一个参数,那么它可能就是一个超参数。

3.8.4 如何寻找超参数的最优值

在使用机器学习算法时,总有一些难调的超参数。例如权重衰减大小、高斯核宽度等。这些参数需要人为设置,设置的值对结果产生较大影响。下面是常见的设置超参数的方法。

(1)猜测和检查:根据经验或直觉,选择参数,一直迭代。

(2)网格搜索:让计算机尝试在一定范围内均匀分布的一组值。

(3)随机搜索:让计算机随机挑选一组值。

(4)贝叶斯优化:使用贝叶斯优化超参数,会遇到贝叶斯优化算法本身就需要很多参数的困难。

(5)MITIE方法:在初始猜测的前提下进行局部优化。

(6)LIPO的全局优化方法:这个方法没有参数,而且经验证比随机搜索方法好。

3.8.5 超参数搜索的一般过程

超参数搜索的一般过程如下。

(1)将数据集划分成训练集、验证集及测试集。

(2)在训练集上根据模型的性能指标对模型参数进行优化。

(3)在验证集上根据模型的性能指标对模型的超参数进行搜索。

(4)过程(2)和过程(3)交替迭代,最终确定模型的参数和超参数,在测试集中验证评价模型的优劣。

其中,搜索过程需要搜索算法,一般有网格搜索、随机搜索、启发式智能搜索和贝叶斯搜索。