【Google 机器学习笔记】
七、特征组合与L2正则化
本节是回归模型的最后一节内容,介绍如何使用特征组合使非线性规律转换为线性规律,以及使用L2正则化降低模型复杂度。
概念:
- 特征组合 【Feature cross】:通过将单独的特征进行组合(求笛卡尔乘积)而形成的合成特征。特征组合有助于表达非线性关系。
- L2 正则化【L2 regularization】:一种正则化,根据权重的平方和来惩罚权重。L2 正则化有助于使离群值权重接近于 0,但又不正好为 0。在线性模型中,L2 正则化始终可以改进泛化。
特征组合
对于无法用一条直线进行预测的非线性规律,常常使用特征组合,使其转换为线性规律。
例如,对于上图特征值 ,创建一个新的特征值 ,且 。回归模型变为
当 时,基本可以预测是蓝色点;
当 时,基本可以预测是橙色点。
-
特征组合的种类
- [A × B]:将两个特征的值相乘形成的特征组合。
- [A × B × … × N]:将多个特征的值相乘形成的特征组合。
- [A × A]:对单个特征的值求平方形成的特征组合。
-
组合独热矢量
- 独热矢量进行特征组合,会得到可解读为逻辑连接的二元特征。
使用特征组合最终获得的预测能力将远远超过任一特征单独的预测能力。
L2 正则化
对于大部分模型训练的损失函数常常如下图:
该泛化曲线显示该模型最终与训练集中的数据过拟合。根据奥卡姆剃刀定律,通过降低复杂模型的复杂度可以防止过拟合,这种原则称为正则化。
也就是说,并非只是以 最小化损失(经验风险最小化) 为目标:
而是以最小化损失和复杂度为目标,这称为结构风险最小化:
现在,训练优化算法是一个由两项内容组成的函数:一个是损失项,用于衡量模型与数据的拟合度,另一个是正则化项,用于衡量模型复杂度。
- 衡量模型复杂度的两种常见方式:
- 将模型复杂度作为模型中所有特征权重的函数。(如:L2 正则化)
- 将模型复杂度作为具有非零权重的特征总数的函数。(如:L1 正则化)
L2 正则化公式(该公式将正则化项定义为所有特征权重的平方和):
为使结构风险最小化,与损失项类似,正则化项添加一个超参数lambda(又称为正则化率,标量),来调整正则化项的整体影响。完整的结构风险最小化公式: ① 当 较大时,最小化以降低模型复杂度优先。此时模型会变得简单,但将面临数据欠拟合的风险。模型将无法从训练数据中获得足够的信息来做出有用的预测。
② 当 较小时,最小化以降低损失优先。此时模型会变得复杂,并且面临数据过拟合的风险。模型将因获得过多训练数据特点方面的信息而无法泛化到新数据。
③ 当 时,取消正则化。
理想的 lambda 值生成的模型可以很好地泛化到以前未见过的新数据。 遗憾的是,理想的 lambda 值取决于数据,因此需要手动或自动进行调整。
补充
- 早停法 【Early stopping】:一种非正式的正则化方法,是指在训练损失仍可以继续降低之前结束模型训练。使用早停法时,在验证数据集的损失开始增大(也就是泛化效果变差)时结束模型训练。
上一篇:【Google 机器学习笔记】六、表示法
下一篇:【Google 机器学习笔记】八、分类模型(内容有点多,更新时间大概率落在30号)