机器学习之正则化

欠拟合与过拟合

例子-预测房价

图1

如上图所示,通过建立以住房面积为自变量的函数来预测房价,可以对该数据做线性回归。但是可以看出这不是一个很好的模型,对于这些数据来说,很明显,随着房子面积增大,住房价格的变化趋势趋于稳定,或者往右越平缓。因此这个算法没有很好地拟合训练数据。

把这个问题称为欠拟合(under fitting),这个问题的另一个术语叫做高偏差(High bias)。这两种说法大致相似,意思是它只是没有很好地拟合训练数据。

图2

当加入一个二次项,在这组数据中,用二次函数来拟合它。自然,可以拟合出一条曲线,事实也证明这个拟合效果很好。

图3

如果拟合一个四次多项式,因此在这里用五个参数来拟合这五个训练样本,你可以得到看上去像这样的一条曲线。这个模型一方面似乎对训练数据做了一个很好的拟合,因为这条曲线通过了所有的训练实例。但是,这仍然是一条扭曲的曲线。它不停上下波动,因此事实上,并不认为它是一个预测房价的好模型。

这个问题我们把他叫做过度拟合(over fitting),另一个描述该问题的术语是高方差(variance)

介于高偏差高方差这两者之间的情况叫做“刚好合适”(图2)。

概括地说,过拟合的问题将会在变量过多的时候发生,这种时候训练出的方程总能很好的拟合训练数据,所以你的代价函数实际上可能非常接近于0,甚至就是0。但是这会导致这种模型无法泛化到新的数据样本中,以至于无法预测新样本价格。

在这里术语“泛化(generalize)”指的是一个假设模型能够应用到新样本的能力,新样本数据指的是:没有出现在训练集中的数据。

类似的问题也存在于逻辑回归之中:

为了解决过度拟合问题,有两种方法:

1. 要尽量减少选取的变量的数量。

具体而言即可以人工检测变量的条目,保留重要的特征,舍弃无用的特征(模型选择算法-可以自动选择哪些变量应该保留)

2.正则化

保留所有的特征变量,但是通过减少参数θj的数量级或值的大小。

这个方法非常有效,当有很多特征变量时,其中每一个变量都能对预测产生一点影响。正如在房价预测的例子中看到的那样,可以有很多特征变量,其中每一个变量都是有用的,因此不希望把它们删掉,这就导致了正则化概念的发生


正则化:

在前面的介绍中,可以看到如果用一个二次函数来拟合这些数据,那么它对数据可以很好的拟合。然而,如果用一个更高次的多项式去拟合,最终可能会得到一个曲线,它能很好地拟合训练集,但却并不是一个好的结果,因为它过度拟合了数据,因此,一般性并不是很好。

让我们考虑下面的假设,我们想要加上惩罚项,从而使参数 θ3 和 θ4 足够的小。这里的意思就是,尽量减少代价函数的均方误差。

现在,如果想最小化这个函数,我们需要尽量减少 θ3 和 θ4 的值。如果我们减少了这两项的值,就像是在上面的式子中忽略了后面的两项:

最终得到一个近似的二次函数,从而达到恰当地拟合数据的表达式。

所以推广到更通用的情况下,这里给出了正规化背后的思路。这种思路就是如果我们的参数值对应一个较小的值的话,那么往往我们会得到一个形式更简单的假设函数。

通常情况下来讲,参数值减少的越多,函数越光滑,因此就不易发生过拟合的问题

具体例子

对于房屋价格预测,我们可能有上百种特征,我们谈到了一些可能的特征,比如说:

x1 是房屋的尺寸

x2 是卧室的数目

x3 是房屋的层数

可能有一百个特征。

跟前面的多项式例子不同,我们是不知道 θ3,θ4 是高阶多项式的项,即如果我们有一百个特征,我们是很难提前选出那些关联度更小的特征的。我们不知道如何选择参数来缩小参数的数目。

因此在正规化中,我们要做的事情,就是通过修改我们的代价函数(这里就是线性回归的代价函数)

从而缩小我所有的参数值,修改方式就是在这后面添加一项:

当在最后添加一个额外的正则化项的时候,就收缩了每个参数,并且因此 会使我们所有的参数θ1.θ2.θ3.θ4…θ100的值变小。

顺便说一下,按照惯例来讲,我们是从θ1开始的:

所以我实际上没有去惩罚θ0,在实际情况中,是否包含θ0θ0只会有非常小的差异。

正规化优化的目标:

正规化之后的代价函数如下:

在后面的正规化项中的λ称为正规化参数

λ要做的就是控制在两个不同的目标中的一个平衡关系:

第一个目标就是:我们想要训练使假设函数更好的拟合训练数据。

第二个目标就是:我们想要保持参数值较小。

参数λ就是用来控制这两者之间的平衡,目标就是平衡拟合训练的目的和保持参数值较小的目的。(即欠拟合和过拟合的平衡)

对于房屋价格预测的例子来说,尽管之前已经用非常高的高阶多项式来拟合,我们将会得到一个非常弯曲和复杂的曲线函数,就像下面这样:

但现在不这样了,你只需要确保使用了正规化目标的方法,那么你就可以得到一个类似于二次函数但并不是真正的二次函数的一条曲线:

这样就得到了对于这个数据来说更好的假设函数。

在正规化线性回归中,如果正规化参数值被设定为非常大,那么会发生什么呢?

将会非常大地惩罚我们的参数,会使得所有的参数接近于0。如果我们这么做,那么就相当于我们从假设函数中去掉了这些项,并且使得我们只是留下了一个简单的假设:

最终得到:hθ(x)=θ0

那就是类似于拟合了一条水平直线:

对于数据来说这就是欠拟合(underfitting)

换句话说,就是这种假设有过于强烈的“偏见”或者过高的偏差(bais),认为预测的价格只是等于θ0。

因此为了使正则化运作的良好,应该去选择一个不错的正则化参数λ(会有方法来自动选择λ)

线性回归的正则化:

对于线性回归的求解,之前推导了两种学习算法:一种基于梯度下降、一种基于正规方程。现在把它们推广到正则化线性回归中去。

基于梯度下降:

这是推导出的正则化线性回归的优化目标:

前面第一部分是一般线性回归的目标函数,后半部分是正则化项。其中λ是正则化参数。这里是想找到能最小化代价函数的参数θ。

之前,使用梯度下降求解原来没有正则项的代价函数:

我们会反复更新参数θj,其中j=0,1,2,3,…,n。

先把j=0j的情况单独写出来:

这样做的原因是因为上边提到的,对于正则化的线性回归,惩罚参数从θ1开始,不惩罚θ0。所以当修改这个正则化线性回归的算法时,将对θ0有所不同。

具体地说,如果要对这个算法进行修改,并用它求解正则化的目标函数,我们需要做的是把下面的这一项加上正则化项:

如果这样做的话,那么你就有了用于最小化正则化代价函数J(θ)的梯度下降算法。

对于上面式子中第二项:

可以改写为这种形式:

具体来讲,这一项的值:

通常是一个小于1的具体的实数(通常情况下是一个比1小一点点的值),所以我们可以把它想成一个像0.99一样的数字。

所以 θj 更新的结果可以看作是被替换为 θj 的0.99倍(把θj向0压缩了一点点)。

另外后面的这一项:

实际上与原来的梯度下降更新完全一样。

当使用正则化线性回归时,需要做的就是在每一个被正则化的参数θj上乘以了一个比1小一点点的数字,然后,执行跟以前一样的更新。

基于正规方程:

梯度下降只是拟合线性回归模型的两种算法之一,另一种算法是基于正规方程。

我们的做法是建立这个设计矩阵X-X是一个m×(n+1)维矩阵

其中每一行对应于一个单独的训练样本。

然后创建一个m维度的向量y,包含了所有训练集里的标签:

为了最小化代价函数J,可以让θ等于这个式子:(不了解可点击:机器学习之线性回归

\theta =(x^Tx)^ -1 x^Ty

如果使用了正则化,想要得到最小值,那么推导方式如下:

取J关于各个参数的偏导数,并令他们等于0:

然后通过一些数学推导,可以得到这样的式子:

其中正则化矩阵左上角的元素是0,其余对角线元素都是1,剩下的元素也都是0。矩阵的维度是(n+1)×(n+1)。

逻辑回归的正则化:

使用梯度下降:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容