Logistic 回归

  Logistic回归 为概率型非线性回归模型,它是一个 分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有 回归 两个字,却不是一个回归算法。

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

  线性回归的模型可简写为:
y = \omega^Tx + b此时y是连续的,所以是回归模型。假如样本所对应的输出是在指数尺度上变化,那我们可以将真实值的对数作为我们回归模型逼近的目标,即:
lny = \omega^Tx + b这就是对数线性回归,其本质上是求解输入空间到输出空间的非线性函数映射,这里的对数函数只是起到了将线性回归模型的预测值跟真实标签联系起来的作用。更一般性,考虑单调可微函数g(\cdot),令y = g^{-1}( \omega^Tx + b)这样得到的模型称为广义线性模型,很显然对数线性回归广义线性模型g(\cdot) = ln(\cdot)的特例。

2. 二元逻辑回归模型

  上面提到对线性回归的结果做一个在函数g上的转换,如果令g(y)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。如果结果的类别只有两种,那么就是一个二元分类模型了。逻辑回归的出发点就是从这来的。
  这个函数g在逻辑回归中我们一般取为sigmoid函数,形式如下:g(z) = \frac{1}{1+e^{-z}}


它有一个非常好的性质,即当z趋于正无穷时,𝑔(𝑧)趋于1,而当z趋于负无穷时,𝑔(𝑧)趋于0,并且在点时斜率最大,梯度更新最快,这非常适合于我们的分类概率模型。另外,它还有一个很好的导数性质:
如果我们令𝑔(𝑧)中的z为:,这样就得到了二元逻辑回归模型的一般形式:其中为样本输入,为模型输出,可以理解为某一分类的概率大小。而为分类模型的要求出的模型参数。对于模型输出,让它和我们的二元样本输出(假设为0和1)有这样的对应关系,如果 ,即, 则为1。如果,即, 则为0。是临界情况,此时为, 从逻辑回归模型本身无法确定分类。

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

  线性回归的损失函数使用 MSE 来定义损失函数。但是逻辑回归不是连续的,自然MSE就用不上了。不过我们可以用 最大似然法 来推导出我们的损失函数。
假设我们的样本输出是0或者1两类。那么对于一个样本有:p(y=1|x,\theta) = h_\theta(x)则,p(y=0|x,\theta) = 1 - h_\theta(x) 把这两个式子写成一个式子,就是:p(y|x,\theta) = h_\theta(x)^y(1- h_\theta(x))^{(1-y)}其中y的取值只能是0或者1。
得到了y的概率分布函数表达式,因为各个观测样本之间 相互独立,那么它们的联合分布为各边缘分布的乘积。得到似然函数为:
L(\theta) = \prod_{i=1}^mh_\theta(x^{(i)})^{y^{(i)}}(1- h_\theta(x^{(i)}))^{(1-y^{(i)})}其中m为样本的个数。
我们就可以用似然函数最大化来求解我们需要的模型系数\theta。为了方便求解,这里我们用对数似然函数最大化,对数似然函数取反即为我们的损失函数l(\theta)。对似然函数对数化取反的表达式,即损失函数表达式为:l(\theta) = -ln(L(\theta)) = -\sum_{i=1}^m(y^{(i)}log(h_\theta(x^{(i)})) + (1-y^{(i)})log(1-h_\theta(x^{(i)})))

4. l(\theta)损失函数的优化方法

  对于二元逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,牛顿法等。这里推导出梯度下降法中𝜃每次迭代的公式。
求逻辑回归模型f(θ),等价于:\theta^* = argmin_{\theta}l(\theta)采用梯度下降法:\frac{\partial(l(\theta))}{\partial\theta_{i}} = (\frac{y^{(i)}}{h_\theta(x^{(i)})}-\frac{1-y^{(i)}}{1-h_\theta(x^{(i)})})\frac{\partial h_\theta(x^{(i)})}{\theta_i} = \frac{y^{(i)}-y^{(i)}h_\theta(x^{(i)})-h_\theta(x^{(i)})+y^{(i)}h_\theta(x^{(i)})}{h_\theta(x^{(i)})(1-h_\theta(x^{(i)}))}\frac{\partial h_\theta(x^{(i)})}{\partial(\theta^Tx^(i)+b)}\frac{\partial(\theta^Tx^(i)+b)}{\partial \theta_i}
\frac{\partial(l(\theta))}{\partial\theta_{i}} = \frac{y^{(i)}-h_\theta(x^{(i)})}{h_\theta(x^{(i)})(1-h_\theta(x^{(i)}))}{h_\theta(x^{(i)})(1-h_\theta(x^{(i)}))}\frac{\partial(\theta^Tx^{(i)}+b)}{\partial \theta_i} = (y^{(i)}-h_\theta(x^{(i)}))x^{x(i)}
中间用到了g^\prime(z) = g(z)*(1-g(z))
从而迭代θ至收敛即可:\theta_i := \theta_i + \alpha(y^{(i)}-h_\theta(x^{(i)}))x^{(i)}其中,𝛼为梯度下降法的步长。实践中,我们一般不用操心优化方法,大部分机器学习库都内置了各种逻辑回归的优化方法,不过了解至少一种优化方法还是有必要的。

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

  逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化。
逻辑回归的L1正则化的损失函数表达式相比普通的逻辑回归损失函数,增加了L1的范数做作为惩罚,超参数𝛼作为惩罚系数,调节惩罚项的大小。
二元逻辑回归的L1正则化损失函数表达式如下:
l(\theta) = -\sum_{i=1}^m(y^{(i)}log(h_\theta(x^{(i)})) + (1-y^{(i)})log(1-h_\theta(x^{(i)}))) + \alpha||\theta||_1其中||𝜃||1为𝜃的L1范数。
逻辑回归的L1正则化损失函数的优化方法常用的有坐标轴下降法和最小角回归法。
L1正则相当于加入拉普拉斯先验
L2正则相当于加入高斯先验
二元逻辑回归的L2正则化损失函数表达式如下:
l(\theta) = -\sum_{i=1}^m(y^{(i)}log(h_\theta(x^{(i)})) + (1-y^{(i)})log(1-h_\theta(x^{(i)}))) + \frac{1}{2}\alpha||\theta||_2^2其中||𝜃||2为𝜃的L2范数。
逻辑回归的L2正则化损失函数的优化方法和普通的逻辑回归类似。

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

  前面几节我们的逻辑回归的模型和损失函数都局限于二元逻辑回归,实际上二元逻辑回归的模型和损失函数很容易推广到多元逻辑回归。比如总是认为某种类型为正值,其余为0值,这种方法为最常用的one-vs-rest,简称OvR.
  另一种多元逻辑回归的方法是Many-vs-Many(MvM),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。最常用的是One-Vs-One(OvO)。OvO是MvM的特例。每次我们选择两类样本来做二元逻辑回归。
这里只介绍多元逻辑回归的softmax回归的一种特例推导:
首先回顾下二元逻辑回归。
p(y=1|x,\theta) = h_\theta(x) = \frac{1}{1+e^{-(\theta^Tx+b)}} = \frac{e^{(\theta^Tx+b)}}{1+e^{\theta^Tx+b}}
p(y=0|x,\theta) = 1 - h_\theta(x) = \frac{1}{1+e^{\theta^Tx+b}}其中y只能取到0和1。则有:ln\frac{p(y=1|x,\theta)}{p(y=0|x,\theta)} = \theta^Tx+b如果我们要推广到多元逻辑回归,则模型要稍微做下扩展。
我们假设是K元分类模型,即样本输出y的取值为1,2,...,K.

根据二元逻辑回归的经验,我们有:
ln\frac{p(y=1|x,\theta)}{p(y=K|x,\theta)} = \theta_1^Tx+b_1
ln\frac{p(y=2|x,\theta)}{p(y=K|x,\theta)} = \theta_2^Tx+b_2
....
ln\frac{p(y=K-1|x,\theta)}{p(y=K|x,\theta)} = \theta_{K-1}^Tx+b_{K-1}
上面有K-1个方程。
加上概率之和为1的方程如下:
\sum_{i=1}^Kp(y=i|x,\theta) = 1
从而得到K个方程,里面有K个逻辑回归的概率分布。

解出这个K元一次方程组,得到K元逻辑回归的概率分布如下:
p(y=k|x,\theta) = \frac{e^{\theta_{k}^Tx+b_k}}{1+\sum_{i=1}^{K-1}e^{\theta_{k}^Tx+b_k}}, k=1,2,3,...,K-1
p(y=K|x,\theta) = \frac{1}{1+\sum_{i=1}^{K-1}e^{\theta_{k}^Tx+b_k}}
多元逻辑回归的损失函数推导以及优化方法和二元逻辑回归类似。

小结:Logistic回归尤其是二元Logistic回归是非常常见的模型,训练速度很快,虽然使用起来没有SVM那么占主流,但是解决普通的分类问题是足够了,训练速度也比起SVM要快不少,适合分布式训练,适用于离散特征。如果想要理解机器学习的所有分类算法,那么第一个应该学习的分类算法个人觉得应该是逻辑回归。理解了逻辑回归,其他的分类算法再学习起来应该没有那么难了。

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

推荐阅读更多精彩内容