广义线性模型(3)线性回归模型—Lasso回归、Ridge回归

1 Ridge回归和Lasso回归概述

在机器学习中,如果特征很多,但是训练数据X量不够大的情况下,学习器很容易把X特有的一些特点也当做是整个样本空间的一般性质进行学习,这就会出现过拟合的现象,线性回归模型也不例外。对于过拟合,在模型层面上我们一般会在模型中加入正则化项来优化模型,正则化项一般分为两种:L1正则和L2正则。

  1. 线性回归的L1正则称为Lasso(least absolute shrinkage and selection operator)回归,Lasso回归和普通线性回归模型的区别是在损失函数上增加了一个L1正则项,\lambda为调节经验风险和结构风险之间关系的系数,其损失函数为:

L(\theta )=\frac{1}{2}\sum_{i=1}^m(\sum_{i=1}^m\theta_ix_i-y_i)^2+\sum_{i=1}^m|\theta_i|=\frac{1}{2}(Xθ-Y)^T(Xθ-Y)+\lambda||\theta||_1

  1. 线性回归的L2正则称为Ridge回归(岭回归),其与普通线性回归模型的区别是在损失函数上增加了一个L2正则项,其损失函数为:

L(\theta )=\frac{1}{2}\sum_{i=1}^m(\sum_{i=1}^m\theta_ix_i-y_i)^2+\sum_{i=1}^m\theta_i^2=\frac{1}{2}(Xθ-Y)^T(Xθ-Y)+\frac{\lambda}{2}||\theta||^2

Ridge回归(L2正则)会倾向于让模型选择更小的参数,但不会使参数为0,所以L2正则不会减少模型的特征;而Lasso回归(L1正则)能使一些“不重要”的特征的参数为0,相当于丢弃了这个特征,简化了模型。

2 Ridge回归和Lasso回归求解

2.1 Ridge回归求解

根据上面的损失函数可知,Ridge回归就是在原线性回归损失函数的基础上加了个平方项,并不影响对损失函数进行求导,所以最小二乘法和梯度下降法都没问题,对损失函数求导得到:

\frac{\partial}{\partial\theta}L(\theta) = X^T(X\theta - Y)+\lambda\theta

使用最小二乘法求解\theta

θ = (X^TX+\theta E)^{-1}X^TY

使用梯度下降法求解\theta

\mathbf\theta= \mathbf\theta - \lambda [X^T(X\theta - \mathbf{Y})+\lambda\theta]

2.2 Lasso回归求解

Lasso回归的特殊之处在于其损失函数中包含一个绝对值项\lambda||\theta||_1,其在0处是非连续可导的,故普通的最小二乘法和梯度下降就都没法用了,所以需要我们来探索一下Lasso回归的参数求解方法。

2.2.1 次梯度方法

1)次导数

首先回想下梯度下降的原理:假设损失函数为多元函数L(\theta),对其进行一阶泰勒展开得到:

L(\theta+\Delta \theta)\approx L(\theta)+\sum_i\frac{\partial L}{\partial\theta_i}\Delta\theta_i

所以:\Delta L(\theta)\approx\sum_i\frac{\partial L}{\partial \theta_i}\Delta \theta_i= \nabla L\Delta \theta,如果\Delta \theta=-\lambda \nabla L,则有:

\Delta L(\theta)\approx \nabla L\Delta \theta=-\lambda \nabla L^2

梯度\nabla L不为0时,\Delta L(\theta)为负值,所以当\theta按负梯度-\lambda \nabla L更新时,损失函数在随着不断减小,这就是梯度下降的思想。

梯度即各个变量在一点处的一阶导数,一个一元函数在一阶展开时有:

f(x+\Delta x)= f(x)+f'(x)\Delta x+R_2(x), \ R_2(x)为二阶拉格朗日余项

f'(x)= \frac{f(x+\Delta x)-f(x)}{\Delta x}

函数可导的充要条件:函数在该点连续且左导数、右导数都存在并相等,稍微有些局限,不可导的函数怎么办呢?为了处理不可导的问题,我们需要引出次导数的概念。

次导数:凸函数f:I→R在点x_0的次导数是实数c使得:

f(x+\Delta x)-f(x)\geq c*\Delta x

我们可以证明,在点x_0处的次导数的集合是一个非空闭区间[a,b],其中ab是单侧极限:

它们一定存在,且满足a≤b。所有次导数的集合[a,b]称为函数fx_0处的次微分。由此可知,凸函数f(x)=|x|在原点的次导数是区间[−1, 1]

如上图,函数在某一点的导数可以看成函数在这一点上的切线,那么在原点,因为这一点不是光滑的,所以可以找到实线下方的无数条支撑直线(一维支撑超平面,支撑超平面:一个平面会把空间划分为两部分,能使函数图像仅在其中一部分的超平面),形成一个曲线族。我们就把这些支撑直线斜率的范围定义为这一点的次导数(subgradient)。

次导数性质:

  • 凸函数f:I→Rx_0可导,当且仅当次微分只由一个点组成,这个点就是函数在x_0的导数,即连续可导的点处的支撑直线只能画出来一条;
  • x_0是凸函数f的最小值,当且仅当次微分中包含零,也就是说,在上面的图中,我们可以作一条水平的“次切线”。这个性质是“可导函数在极小值的导数是零”的事实的推广,想象一下|x|图像就很容易理解这一点。
2)次梯度

将次导数和次微分的概念推广到多元函数,就可以得到次梯度了。如果f是一个实变量凸函数,函数f在点x_0的次梯度对于所有的x都有:

f(x)\geq f(x_0)+g^T(x-x_0)

可以想象一下上面的二维的图来理解一下这个定义,其实几何含义就是把那些支撑超平面的向量想成次梯度,次梯度的性质:

  • 凸函数的次梯度总是存在;
  • 如果函数在x_0处可微,则次梯度唯一,且等于梯度;
  • 当且仅当0属于函数f在点x^*处次梯度集合的元素时,x^*为最优解,因为当次梯度为0时有f(x)\geq f(x^*)+0(x-x_0)=f(x^*)对所有x成立。

为什么用次梯度可以求最小值呢?定义中说次梯度对所有x成立,那么函数最小值对应的x^*想必也是成立的,即:

f(x^*)-f(x_0)\leq 0\geq g^T(x^*-x_0)=|g^T|*|x^*-x_0|*cos\theta

所以可知次梯度-g^Tx^*-x_0之间的夹角\theta小于等于90°,因此-g^T是与x^*-x_0方向不背离的,即从x_0可能向x^*靠近,因此可以认为沿着负次梯度方向也可能是在逼近最小值(不绝对,不像梯度下降那样能保证损失减小)。

3)次梯度方法

次梯度方法 (subgradient method) 的做法与梯度下降类似:

x^{t+1}=x^{t}-\lambda_{t} g^t

其中,g^t是次梯度集合中的一个,\lambda一般是设定好的步长。因为次梯度方向不一定使函数值减小,所以并不是迭代到最后的x就是最优的,需要保留每一步的结果进行对比:

f(x^k_{best})=min(f(x^i)),i=1,2,...,k

至于算法会不会收敛,可以看下方参考资料中的证明。次梯度法的优势是比传统方法处理问题范围大,劣势是算法收敛速度慢。

2.2.2 坐标下降法(coordinate descent)

1)坐标下降法原理

坐标下降法,其含义就是让函数值沿着坐标轴下降,其基本思想是:一个可微的凸函数f(x),其中x是n维向量,可以理解为x有n个坐标轴,如果在某一点x^*,使得f(x^*)在每一个坐标轴x_i(i = 1,2,...n)上都是最小值,那么f(x^*)就是一个全局的最小值,如下图,在这一点对可微的凸函数有:

对于不可微的凸函数,这一结论并不成立,即收敛点并不一定是全局最优,如下图所示,两个坐标轴方向的迭代会在红色虚线的交叉处停止,因为在这两个方向单独来看,都已经找不到更小的点了,实际上并没有到全局最优点:

让我们回忆一下Lasso回归的损失函数形式:

L(\theta )=\frac{1}{2}\sum_{i=1}^m(\sum_{i=1}^m\theta_ix_i-y_i)^2+\sum_{i=1}^m|\theta_i|

其损失函数的形式是:y=g(x)+\sum_i^n h_i(x_i),其中g(x)是可微的凸函数,每个h_i(x_i)都是不可微的凸函数,这种形式可不可以使用坐标下降法呢?答案是可以的,如下图所示:

从几何上理解:因为加上的每个h_i(x_i)都是凸函数,也就是在每个坐标轴上都是

理论上来看:要证明收敛点x为全局最优解,则要有对任意yf(y) -f(x)\geq 0,而且对于凸函数,其必然满足一阶条件:g(y)-g(x)\geq \nabla g(x)^T(y-x),故综合可得:

f(y) -f(x)= g(y)-g(x)+\sum_i^n [h_i(y_i)-h_i(x_i)]

f(y) -f(x)\geq \nabla g(x)^T(y-x)+\sum_i^n [h(y_i)-h(x_i)]=\sum_i^n [\nabla_i g(x_i)(y_i-x_i)+h_i(y_i)-h_i(x_i)]

后面这个式子将任意的点y与收敛点x比较大小的问题转移到了各个坐标轴上,因为收敛点是各个坐标轴的最小值,所以\nabla_i g(x_i)(y_i-x_i)+h_i(y_i)-h_i(x_i)\geq 0,所以收敛点是全局最优。

2)坐标下降法用法

每一轮迭代中,分别把损失函数看做xn个维度x_i的函数,对每个函数求极小值,当所有的坐标轴上的x_i(i = 1,2,...n)都达到收敛时,损失函数最小,此时的x即为我们要求的结果。

具体的算法过程:

  1. 随机取一个初值x^{(0)} ,(0)代表我们迭代的轮数;

  2. 对于第k轮的迭代:我们从x^{(k)}_1开始,到x^{(k)}_n为止,依次求x^{(k)}_ix^{(k)}_i的表达式如下:

  1. 如果达到了设定的终止条件,则终止迭代,得到收敛点x,比如设定一个阈值,如果在所有维度上变化都小与这个值,那么终止迭代。

小结:

  • 坐标下降每次只进行一个坐标轴的优化,如果多个一起优化不一定能收敛;
  • 每次迭代中坐标轴的顺序可以是任意的,即可以按{1,2,...,n}的任何顺序进行下降;
  • 坐标下降每一轮迭代的效果类似于梯度下降的一次迭代;
  • 坐标下降法的优点是非常简单高效,适用性也比较广。

3 总结

本篇主要介绍了Ridge回归和Lasso回归的概念,当我们需要正则降低模型结构风险的时候,他们是非常合适的。此外,本文介绍了他们的求解方法,其中Lasso回归的求解较为复杂,除了本文提到的次梯度方法和坐标下降法之外,还有别的方法可用,比如最小角回归法、近端梯度下降法等,以后有时间了再加上吧,下一篇打算说说逻辑回归了。



主要参考
【机器学习】次梯度(subgradient)方法
坐标下降法(Coordinate descent)

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