超参数及其优化办法:验证集

一、超参数定义:

超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。和一般的参数比如权重、偏置之类的有差别。

通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

有时一个选项被设为学习算法不用学习的超参数,是因为它太难优化了。更多的情况是,该选项必须是超参数,因为它不适合在训练集上学习。这适用于控制模型容量的所有超参数。如果在训练集上学习超参数,这些超参数总是趋向于最大可能的模型容量,导致过拟合例如,相比低次多项式和正的权重衰减设定,更高次的多项式和权重衰减参数设定 λ = 0 总能在训练集上更好地拟合。

二、超参数的例子:

树的数量或树的深度、矩阵分解中潜在因素的数量、学习率(多种模式)、深层神经网络隐藏层数、k均值聚类中的簇数等。

三、关于超参数的优化:

百度百科中关于超参数写了这样三句话:1、定义关于模型的更高层次的概念,如复杂性或学习能力;2、不能直接从标准模型培训过程中的数据中学习,需要预先定义;3、可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定。

其实讲得差不多是一个意思。但是第3点没有讲清楚,既然机器学习过程中无法训练我们的超参数,那么我们如何优化我们的超参数?

我们需要一个训练算法观测不到的验证集(validation set) 样本:

我们讨论过和训练数据相同分布的样本组成的测试集,它可以用来估计学习过程完成之后的学习器的泛化误差。其重点在于测试样本不能以任何形式参与到模型的选择中包括设定超参数。基于这个原因,测试集中的样本不能用于验证集。 因此,我们总是从训练数据中构建验证集。特别地,我们将训练数据分成两个不相交的子集。其中一个用于学习参数。另一个作为验证集,用于估计训练中或训练后 的泛化误差,更新超参数。用于学习参数的数据子集通常仍被称为训练集,尽管这 会和整个训练过程用到的更大的数据集相混。用于挑选超参数的数据子集被称为 验 证集(validation set)。通常,80% 的训练数据用于训练,20% 用于验证。由于验证集是用来 ‘‘训练’’ 超参数的,尽管验证集的误差通常会比训练集误差小,验证集会低估泛化误差。所有超参数优化完成之后,泛化误差可能会通过测试集来估计。

猜你喜欢

转载自blog.csdn.net/lyxleft/article/details/85984109
今日推荐