逻辑回归原理小结(转)

逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。那为什么有“回归”这个误导性的词呢?个人认为,虽然逻辑回归是分类模型,但是它的原理里面却残留着回归模型的影子,本文对逻辑回归原理做一个总结。

1. 从线性回归到逻辑回归

我们知道,线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y=Xθ。此时我们的Y是连续的,所以是回归模型。如果我们想要Y是离散的话,怎么办呢?一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为g(Y)。如果我们令g(Y)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。如果结果的类别只有两种,那么就是一个二元分类模型了。逻辑回归的出发点就是从这来的。下面我们开始引入二元逻辑回归。

2. 二元逻辑回归的模型

上一节我们提到对线性回归的结果做一个在函数g上的转换,可以变化为逻辑回归。这个函数g在逻辑回归中我们一般取为sigmoid函数,形式如下:

$$
g(z)=11+e−z
$$

它有一个非常好的性质,即当z趋于正无穷时,g(z)趋于1,而当z趋于负无穷时,g(z)趋于0,这非常适合于我们的分类概率模型。另外,它还有一个很好的导数性质:

$ g′(z)=g(z)(1−g(z)) $

这个通过函数对g(z)求导很容易得到,后面我们会用到这个式子。

如果我们令g(z)中的z为:z=xθ,这样就得到了二元逻辑回归模型的一般形式:

$ hθ(x)=11+e−xθ $

其中x为样本输入,hθ(x)为模型输出,可以理解为某一分类的概率大小。而θ为分类模型的要求出的模型参数。对于模型输出hθ(x),我们让它和我们的二元样本输出y(假设为0和1)有这样的对应关系,如果hθ(x)>0.5 ,即xθ>0, 则y为1。如果hθ(x)<0.5,即xθ<0, 则y为0。y=0.5是临界情况,此时xθ=0为, 从逻辑回归模型本身无法确定分类。

hθ(x)的值越小,而分类为0的的概率越高,反之,值越大的话分类为1的的概率越高。如果靠近临界点,则分类准确率会下降。

此处我们也可以将模型写成矩阵模式:
$ hθ(X)=11+e−Xθ $

其中hθ(X)为模型输出,为 mx1的维度。X为样本特征矩阵,为mxn的维度。θ为分类的模型系数,为nx1的向量。

理解了二元分类回归的模型,接着我们就要看模型的损失函数了,我们的目标是极小化损失函数来得到对应的模型系数θ。

3. 二元逻辑回归的损失函数

回顾下线性回归的损失函数,由于线性回归是连续的,所以可以使用模型误差的的平方和来定义损失函数。但是逻辑回归不是连续的,自然线性回归损失函数定义的经验就用不上了。不过我们可以用最大似然法来推导出我们的损失函数。

我们知道,按照第二节二元逻辑回归的定义,假设我们的样本输出是0或者1两类。那么我们有:

P(y=1|x,θ)=hθ(x)
    P(y=0|x,θ)=1−hθ(x)
     把这两个式子写成一个式子,就是:

P(y|x,θ)=hθ(x)y(1−hθ(x))1−y
    其中y的取值只能是0或者1。

用矩阵法表示,即为:

P(Y|X,θ)=hθ(X)Y(E−hθ(X))1−Y,其中E为单位向量。

得到了y的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数θ。

为了方便求解,这里我们用对数似然函数最大化,对数似然函数取反即为我们的损失函数J(θ)。其中:

似然函数的代数表达式为:

L(θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
    其中m为样本的个数。

对似然函数对数化取反的表达式,即损失函数表达式为:

J(θ)=−lnL(θ)=−∑i=1m(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))
    损失函数用矩阵法表达更加简洁:

J(θ)=−Y∙loghθ(X)−(E−Y)∙log(E−hθ(X))
    其中E为单位向量,∙为内积。

4. 二元逻辑回归的损失函数的优化方法

对于二元逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等。这里推导出梯度下降法中θ每次迭代的公式。由于代数法推导比较的繁琐,我习惯于用矩阵法来做损失函数的优化过程,这里给出矩阵法推导二元逻辑回归梯度的过程。

对于J(θ)=−Y∙loghθ(X)−(E−Y)∙log(E−hθ(X)),我们用J(θ)对θ向量求导可得:

∂∂θJ(θ)=−Y∙XT1hθ(X)hθ(X)(1−hθ(X))+(E−Y)∙XT11−hθ(X)hθ(X)(1−hθ(X))
    这一步我们用到了矩阵求导的链式法则,和下面三个矩阵求导公式:

∂∂XlogX=1/X
    ∂∂zg(z)=g(z)(1−g(z))(g(z)为sigmoid函数)

∂∂θXθ=XT
    对于刚才的求导公式我们进行化简可得:

∂∂θJ(θ)=XT(hθ(X)−Y)
    从而在梯度下降法中每一步向量θ的迭代公式如下:

θ=θ−αXT(hθ(X)−Y)
    其中,α为梯度下降法的步长。

实践中,我们一般不用操心优化方法,大部分机器学习库都内置了各种逻辑回归的优化方法,不过了解至少一种优化方法还是有必要的。

5. 二元逻辑回归的正则化

逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化。

逻辑回归的L1正则化的损失函数表达式如下,相比普通的逻辑回归损失函数,增加了L1的范数做作为惩罚,超参数α作为惩罚系数,调节惩罚项的大小。

二元逻辑回归的L1正则化损失函数表达式如下:

J(θ)=−Y∙loghθ(X)−(E−Y)∙log(1−hθ(X))+α||θ||1
    其中||θ||1为θ的L1范数。

逻辑回归的L1正则化损失函数的优化方法常用的有坐标轴下降法和最小角回归法。

二元逻辑回归的L2正则化损失函数表达式如下:

J(θ)=−Y∙loghθ(X)−(E−Y)∙log(1−hθ(X))+12α||θ||22
    其中||θ||2为θ的L2范数。

逻辑回归的L2正则化损失函数的优化方法和普通的逻辑回归类似。

6. 二元逻辑回归的推广:多元逻辑回归

前面几节我们的逻辑回归的模型和损失函数都局限于二元逻辑回归,实际上二元逻辑回归的模型和损失函数很容易推广到多元逻辑回归。比如总是认为某种类型为正值,其余为0值,这种方法为最常用的one-vs-reset,简称OvR.

另一种多元逻辑回归的方法是Many-vs-Many(MvM),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。最常用的是One-Vs-One(OvO)。OvO是MvM的特例。每次我们选择两类样本来做二元逻辑回归。

这里只介绍多元逻辑回归的softmax回归的一种特例推导:

首先回顾下二元逻辑回归。

P(y=1|x,θ)=hθ(x)=11+e−xθ=exθ1+exθ
    P(y=0|x,θ)=1−hθ(x)=11+exθ
    其中y只能取到0和1。则有:

lnP(y=1|x,θ)P(y=0|x,θ)=xθ
    如果我们要推广到多元逻辑回归,则模型要稍微做下扩展。

我们假设是K元分类模型,即样本输出y的取值为1,2,。。。,K。

根据二元逻辑回归的经验,我们有:

lnP(y=1|x,θ)P(y=K|x,θ)=xθ1
    lnP(y=2|x,θ)P(y=K|x,θ)=xθ2

...

lnP(y=K−1|x,θ)P(y=K|x,θ)=xθK−1

上面有K-1个方程。

加上概率之和为1的方程如下:

∑i=1KP(y=i|x,θ)=1
    从而得到K个方程,里面有K个逻辑回归的概率分布。

解出这个K元一次方程组,得到K元逻辑回归的概率分布如下:

P(y=k|x,θ)=exθk/1+∑t=1K−1exθt  k = 1,2,...K-1

P(y=K|x,θ)=1/1+∑t=1K−1exθt
    多元逻辑回归的损失函数推导以及优化方法和二元逻辑回归类似,这里就不累述。

7.小结

逻辑回归尤其是二元逻辑回归是非常常见的模型,训练速度很快,虽然使用起来没有支持向量机(SVM)那么占主流,但是解决普通的分类问题是足够了,训练速度也比起SVM要快不少。如果你要理解机器学习分类算法,那么第一个应该学习的分类算法个人觉得应该是逻辑回归。理解了逻辑回归,其他的分类算法再学习起来应该没有那么难了。

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