机器学习教程之4-正则化(Regularization)

0.概述

利用正则化(regularization)技术解决过拟合(over-fitting)问题。

1.过拟合的问题

模型的分类欠拟合完全符合过拟合

目前已经学习的线性回归逻辑回归可以解决很多问题,在实际应用中可能会产生过度拟合(over-fitting)的问题,可能导致它们的效果很差。

这里利用正则化(regularization,有译者翻译为:规范化)技术减少过度拟合的问题。

减少过拟合的方法
1. 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征, 或者使用一些模型选择的算法来帮忙(例如 PCA)
2. 正则化。 保留所有的特征,但是减少参数的大小(magnitude)。

2.代价函数

上面的回归问题中如果我们的模型是:

正是那些高次项导致了过拟合的产生,所以如果我们能让这些高次项的系数接近于 0 的话,我们就能很好的拟合了。

所以我们要做的就是在一定程度上减小这些参数 θ 的值,这就是正则化的基本思想

回顾一下线性回归的代价函数公式:

假如我们有非常多的特征,我们并不知道其中哪些特征我们要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的能防止过拟合问题的假设。

我们通过在代价函数后面添加正则化项以防止过拟合的现象。

正则化的代价函数如下所示:

其中lambda又称为正则化参数( Regularization Parameter)。

由于这里的规范化项的最高次为2次项,因而也叫L2规范化

规范化可以理解为寻找小的权重和最小化原始的代价函数间的折中。

在其他资料里用theata用w表示。

3.正则化线性回归

对于线性回归的求解,我们之前推导了两种学习算法:一种基于梯度下降,一种基于正规方程。

正则化线性回归的代价函数为:

如果我们要使用梯度下降法令这个代价函数最小化,因为我们未对 θ0 进行正则化,所以梯度下降算法将分两种情形,具体如下图所示:

对上面的算法中 j=1,2,…,n 时的更新式子进行调整可得:

可以看出, 正则化线性回归的梯度下降算法的变化在于,每次都在原有算法更新规则的基础上令 θ 值减少了一个额外的很小的值。

我们同样也可以利用正规方程来求解正则化线性回归模型,方法如下所示:

图中的矩阵尺寸为 (n+1)*(n+1)。

4.正则化的逻辑回归模型

逻辑函数正则化的表达式为:

要最小化该代价函数,通过求导,得出梯度下降算法为:

注:看上去同线性回归一样,但是知道 hθ(x)=g(θTX),所以与线性回归不同。

注意
1)虽然正则化的逻辑回归中的梯度下降和正则化的线性回归中的表达式看起来一样,但由于两者的 h(x)不同所以还是有很大差别。
2)θ0不参与其中的任何一个正则化。

5.规范化的其他技术

L1规范化是在未规范化的代价函数上加一个权重绝对值的和:

比较:L1和L2规范化都是惩罚大的权重,但是权重缩小的方式不同。在L1规范化中,权重通过一个常量向0进行缩小,在L2规范化中,权重通过一个和w成正比的量进行缩小的。

6.总结

目前大家对机器学习算法可能还只是略懂,但是一旦你精通了线性回归、高级优化算法和正则化技术,坦率地说,你对机器学习的理解可能已经比许多工程师深入了。因此,可以通过大量实验已巩固深化已学的线性回归、逻辑逻辑回归以及正则化的方法

7.参考资料

[1] Ng的机器学习 [2] 深度学习与神经网络

相关文章

正则替换html代码中img标签的src值在开发富文本信息在移动端...
正则表达式
AWK是一种处理文本文件的语言,是一个强大的文件分析工具。它...
正则表达式是特殊的字符序列,利用事先定义好的特定字符以及...
Python界一名小学生,热心分享编程学习。
收集整理每周优质开发者内容,包括、、等方面。每周五定期发...