一、超参数的选择
超参数:机器学习算法中的调优参数(tuning parameters),需要人为设定
举例:梯度下降法中的学习率α;迭代次数epoch;批量大小batch-size;k近邻法中的k(最相近的点的个数);决策树模型中树的深度;正则化系数λ等
优化:
有四种主要的策略可用于搜索最佳配置:
- 照看(babysitting,又叫试错)
- 网格搜索
- 随机搜索
- 贝叶斯优化
1. 训练误差和泛化误差:
· 训练误差:模型在训练数据上的误差
※ 泛化误差:模型在新数据上的误差(真正需要降低的)
2. 验证数据集、测试数据集
用来计算误差,调试超参数
· 验证数据集:评估模型好坏的数据集(※不能跟训练数据集混在一起)
例如,拿出一半的训练数据作为验证训练集,用来测试超参数的精度、误差——寻找合适的超参数
· 测试数据集:只用一次的数据集(新的数据)
3. K则交叉验证
· 在没有足够多的数据时,使用K则交叉验证
· 算法:
将训练数据分割为K块;
Fori = 1,...,K
· 每次使用第i块作为验证数据集调试精度,其余作为训练数据集训练模型
· 更改验证数据集和训练数据集取到的数据块,反复训练与验证
报告K个验证集误差的平均
常用:K=5或K=10
二、过拟合与欠拟合
模型容量有高低之分(如线性回归模型-低,多层感知机-高);
数据有简单复杂之分(简单例如人工数据集,复杂如实际的复杂数据集);
· 对于简单的数据集,就要用容量低的模型来处理,否则会过拟合。
· 对于复杂的数据集,就要用容量高的模型来处理,否则会欠拟合。
模型容量
定义:拟合各种函数的能力
· 低容量的模型难以拟合所有训练数据
· 高容量的模型可以记住所有训练数据
举例,如图所示的训练数据:
用线性回归模型会变成一条直线,拟合效果很差,导致欠拟合;
用容量过大的模型会变成折线,把噪音拟合住了,拟合效果不佳,导致过拟合;
正常情况下,应该用一条平滑的曲线拟合。
因此,首先应该尽量选择容量大的模型去拟合,进一步去减小容量以达到最优
模型容量的影响:
估计模型容量:
给定一个模型种类。有两个主要因素:
· 参数的个数
· 参数值的选择范围
数据复杂度:
· 样本个数
· 每个样本的元素个数
· 时间、空间结构
· 数据的多样性