一个基础的模型——逻辑回归

本文详细介绍了逻辑回归模型,包括从线性回归推导而来的原因、二分类与多分类问题的处理方法、损失函数的设计原理以及激活函数的选择依据。此外还探讨了逻辑回归作为广义线性模型的特点。

  逻辑回归是分类算法,可以支持二分类和多分类得问题,但是为什么称为回归?而不是分类呢?个人认为,第一,逻辑回归中保留了回归模型(线性回归)的思想;第二,逻辑回归在经过非线性转换为概率,然后用概率对类别。其中第二种思想在很多分类学习器中都有体现,如:神经网络,GBDTGBDT.

1. 从线性回归导出逻辑回归

  我们知道,线性回归就是以一个线性函数Y^=θX¯Y^=θX¯拟合真实标记YY,损失函数为均方误差:L(X¯,Yθ)=12m(Y^Y)T(Y^Y),最终根据最小二乘法得到拟合模型:Y=θX¯Y=θ∗X¯;此时样本的标记YY是连续的,如果Y是离散的,我们强行使用线性回归会出现问题,因此我们需要一个能解决分类问题的模型。具体思想是:我们通过一个函数将线性回归的输出转换到样本所属类别概率上,最终通过拟合概率来得到模型,数学表示为:

P(YX)=ϕ(θX)P(Y∣X)=ϕ(θX)

  一般来说,我们的ϕ(X):R[0,1]ϕ(X):R→[0,1],但是我们使用的确实sigmoidsigmoid函数:ϕ(x)=11+exϕ(x)=11+e−x;而不使用ϕ(x)=1+tanh(x)2ϕ(x)=1+tanh(x)2这是为什么呢(新浪面经)?在讲述玩逻辑回归后我们回就这个问题展开讨论.

2. 逻辑回归模型的二分类

2.1. 概率预测

  为了简单起见,我们假设标记Yi{0,1},i=1,,nYi∈{0,1},i=1,…,n,且在样本XiXi给定下,类别标记YiYi独立同BernoulliBernoulli分布,数学表述为:

P{Yi=1Xi}=1P{Yi=0Xi}i=1,,n,P{Yi=1∣Xi}=1−P{Yi=0∣Xi}i=1,…,n,

P{Yi,YjXi,Xj}=P{YiXi}P{YjXj}i,j=1,,n.P{Yi,Yj∣Xi,Xj}=P{Yi∣Xi}P{Yj∣Xj}i,j=1,…,n.

  因此,对于样本集{(xi,yi)i=1,,n}{(xi,yi)∣i=1,…,n},如第一节所述,

我们假设yi=1yi=1的条件概率为:

P{yi=1xi}=ϕ(θxi),P{yi=1∣xi}=ϕ(θxi),

那么yi=0yi=0 的条件概率为:
P{xi=0xi}=1ϕ(θxi),P{xi=0∣xi}=1−ϕ(θxi),

所以二分类问题yiyi 的条件概率为:
P{yixi}=ϕ(θxi)yi(1ϕ(θxi))1yi,P{yi∣xi}=ϕ(θxi)yi(1−ϕ(θxi))1−yi,

统一形式,我们令ϕ(θxi)=hθ(xi)ϕ(θxi)=hθ(xi),得条件概率为:
P{yixi}=hθ(xi)yi(1hθ(xi))1yi.P{yi∣xi}=hθ(xi)yi(1−hθ(xi))1−yi.

2.2. 损失函数

  上节介绍了一个样本xixi类别标记为yiyi得条件概率为:P{yixi}=hθ(xi)yi(1hθ(xi))1yiP{yi∣xi}=hθ(xi)yi(1−hθ(xi))1−yi,那么所有样本XX类别标记为Y的概率(似然函数):

L(θ)=P{YX,θ}=Πni=1P{yixi,θ}=Πni=1P{yixi}=Πni=1hθ(xi)yi(1hθ(xi))1yi,(24)(25)(26)(24)L(θ)=P{Y∣X,θ}=Πi=1nP{yi∣xi,θ}(25)=Πi=1nP{yi∣xi}(26)=Πi=1nhθ(xi)yi(1−hθ(xi))1−yi,

我们将对数似然函数L(θ)L(θ)取负及得损失函数:

J(θ)=ln(L(θ))=ln(ni=1hθ(xi)yi(1hθ(xi))1yi)=ni=1(yiln(hθ(xi))+(1yi)ln(1hθ(xi))).(27)(28)(29)(30)(31)(27)J(θ)=−ln⁡(L(θ))(28)(29)=−ln⁡(∏i=1nhθ(xi)yi(1−hθ(xi))1−yi)(30)(31)=−∑i=1n(yiln⁡(hθ(xi))+(1−yi)ln⁡(1−hθ(xi))).

2.3. 参数更新

  从概率角度来讲,我们希望最大化所有样本XX被判为Y的概率P{YX,θ}P{Y∣X,θ},也就是最大化对数似然函数L(θ)L(θ),或者说最小化损失函数J(θ)J(θ):

θ=minθJ(θ),θ∗=minθJ(θ),

常用的方法有牛顿法,坐标轴下降法,牛顿法等等;这里使用的方法是梯度下降法
我们将J(θ)J(θ)θθ求偏导:

J(θ)θ=i=1n(yi(ln(hθ(xi))θ+(1yi)(1hθ(xi))θ)=i=1n(yihθ(xi)(1hθ(xi))hθ(xi)(1yi)(1hθ(xi))hθ(xi)1hθ(xi))xi=i=1n(hθ(xi)yi)xi(32)(33)(34)(32)∂J(θ)∂θ=−∑i=1n(yi∂(ln⁡(hθ(xi))∂θ+(1−yi)∂(1−hθ(xi))∂θ)(33)=−∑i=1n(yihθ(xi)(1−hθ(xi))hθ(xi)−(1−yi)(1−hθ(xi))hθ(xi)1−hθ(xi))xi(34)=∑i=1n(hθ(xi)−yi)xi

其中,hθ(x)θ=hθ(x)(1hθ(x)).∂hθ(x)∂θ=hθ(x)(1−hθ(x)).

得到参数θθ的更新为:

θ=θηi=1n(hθ(xi)yi)xiθ=θ−η∑i=1n(hθ(xi)−yi)xi

也可以写成矩阵形式:

θ=θηXT(hθ(X)Y)θ=θ−ηXT(hθ(X)−Y)

2.4. 正则化

  回顾线性回归的正则化:为了防止过拟合,我们在损失函数上加上正则化,得到岭回归和LassoLasso回归.
* 岭回归:
J(θ)=12nni=1(θTx¯iyi)2+λni=1θ2iJ(θ)=12n∑i=1n(θTx¯i−yi)2+λ∑i=1nθi2

  • Lasso回归:
    J(θ)=12nni=1(θTx¯iyi)2+λni=1|θi|J(θ)=12n∑i=1n(θTx¯i−yi)2+λ∑i=1n|θi|

同理我们可以得到逻辑回归的正则化表示:

  • L1正则

    J(θ)=i=1n(yiln(hθ(xi))+(1yi)ln(1hθ(xi)))+λi=1n|θi|J(θ)=−∑i=1n(yiln⁡(hθ(xi))+(1−yi)ln⁡(1−hθ(xi)))+λ∑i=1n|θi|

    参数更新方法常用坐标轴下降法和最小角回归法.

  • L2正则

    J(θ)=i=1n(yiln(hθ(xi))+(1yi)ln(1hθ(xi)))+λi=1nθ2iJ(θ)=−∑i=1n(yiln⁡(hθ(xi))+(1−yi)ln⁡(1−hθ(xi)))+λ∑i=1nθi2

    参数更新方法和一般的逻辑回归类似.

3. 逻辑回归的多分类

3.1. 多分类的经典策略

  在机器学习中处理多分类问题主要使用拆分方法,经典的拆分策略有三种:”一对一”(OvO),”一对其余”(OvR),”多对多”(MvM).
  给定训练数据(xi,yi) i=1,,m, yi{C1,C2,,CN}(xi,yi) i=1,…,m, yi∈{C1,C2,…,CN}.

  • “一对一”(OvO)

    (OvO)策略是将数据按类别俩俩配对进行训练,得到N(N1)/2N(N−1)/2个学习器,然后将训练结果投票表决.

  • “一对其余”(OvR)

    OvR策略是将从数据中选出一个类别数据作为正例,其他类别数据统称为负例进行训练,最终得到NN个学习器,如果一个样本在N个学习器下的结果只有一个则样本类别已确定,否则找出找出置信度最大的结果作为样本类别.

  • “多对多”(MvM)

    MvM策略是每次将若干样本作为正例,若干样本作为负例,且正,负例具有独特的设计不能随便选取,最常用的MvM技术:”纠错输出码”.

3.2. 逻辑回归多分类

  对付逻辑回归多分类,我们可以训练N1 N−1 个分类器,其中第kk个分类器用来输出y=Ck的概率,回顾二分类问题,

P(y=1x,θ)P(y=0x,θ)=1/(1+eθTx)eθTx/(1+eθTx)=1eθTxP(y=1∣x,θ)P(y=0∣x,θ)=1/(1+eθTx)eθTx/(1+eθTx)=1eθTx

类似有:

P(y=CNx,θ)P(y=C1x,θ)P(y=CNx,θ)P(y=C2x,θ)P(y=CNx,θ)P(y=CN1x,θ)=1eθT1x=1eθT2x=1eθTN1x(35)(36)(37)(38)(35)P(y=CN∣x,θ)P(y=C1∣x,θ)=1eθ1Tx(36)P(y=CN∣x,θ)P(y=C2∣x,θ)=1eθ2Tx(37)……(38)P(y=CN∣x,θ)P(y=CN−1∣x,θ)=1eθN−1Tx

Nk=1P(y=Ckx,θ)=1∑k=1NP(y=Ck∣x,θ)=1

通过上述NN个式子我们解得:

(39)P(y=Ckx,θ)=eθkTx1+i=1N1eθkTxk=1,2,,N1(40)P(y=CNx,θ)=11+i=1N1eθkTx

最终损失函数为:

J(θ)=i=1mk=1KI(yi=Ck)lnP(yi=Ckxi,θk)J(θ)=−∑i=1m∑k=1KI(yi=Ck)ln⁡P(yi=Ck∣xi,θk)

容易看出,上述方法采用的是OvO的策略.

  值得一提的是,我们也可以构造NN个学习器,这样输出就有N个,可以通过softmaxsoftmax函数转换得到NN个概率值,第k个概率值就是yyCK的概率:

P{y=Ckx,Θ}=eθTkxNi=1eθTixk=1,2,,N(41)(41)P{y=Ck∣x,Θ}=eθkTx∑i=1NeθiTxk=1,2,…,N

损失函数类似第一种方法.

4. 逻辑回归激活函数选取

  在逻辑回归中,我们使用的确实sigmoidsigmoid函数:ϕ(x)=11+exϕ(x)=11+e−x;而不使用ϕ(x)=1+tanh(x)2ϕ(x)=1+tanh(x)2这是为什么呢?其实是有依据的,只有当使用sigmiodsigmiod函数做输出函数时逻辑回归模型才能算是一个广义线性模型(Generalized Linear Model).
  在解释其原因之前我们先介绍两个概念.

A. 指数族分布

  指数族分布满足下面公式:

p(y,η)=b(η)eηT(y)α(η)p(y,η)=b(η)eηT(y)−α(η)

  其中ηη为自然参数,T(y)T(y)是充分统计量,通常为T(y)=yT(y)=yα(η)α(η)为正则化项.

  举个例子,我们常见的指数分布:
p(x)=λeλxp(x)=λe−λx
显然是一个指数族分布,它对应着b(λ)b(λ)T(x)=xT(x)=xα(λ)=0α(λ)=0的情况.

B. 广义线性模型(GLM)

  满足以下三个条件的模型称为GLM:

  1. x,θx,θyy是一个参数为η的指数族分布,或:

P(yx,θ)=b(η)eηT(y)α(η)P(y∣x,θ)=b(η)eηT(y)−α(η)
  1. 给定xx,我们的预测是y的期望:

h(x)=E(yx)h(x)=E(y∣x)
  1. 参数ηη满足:

η=θTxη=θTx

  首先,我们可以看出,在二分类中,BernoulliBernoulli分布就是一个指数族分布.
  二分类逻辑回归中,我们假设样本的类别标记服从BernoulliBernoulli分布,所以

P(yx,θ)=ϕy(1ϕ)1k=exp(ylnϕ+(1y)ln(1ϕ))=exp(lnϕ1ϕ+ln(1ϕ))(42)(43)(44)(42)P(y∣x,θ)=ϕy(1−ϕ)1−k(43)=exp(yln⁡ϕ+(1−y)ln⁡(1−ϕ))(44)=exp(ln⁡ϕ1−ϕ+ln⁡(1−ϕ))

我们令:

η=lnϕ1ϕϕ=11+eη(sigmoid)α(η)=ln(1ϕ)=ln(1+eη)b(η)=1{η=ln⁡ϕ1−ϕ⇒ϕ=11+e−η(sigmoid)α(η)=−ln⁡(1−ϕ)=ln⁡(1+eη)b(η)=1

因此,条件概率可写成P(yx,θ)=b(η)eηyα(η)P(y∣x,θ)=b(η)eηy−α(η),这是一个指数族分布函数,同时我们也得出输出ϕ(x)=11+eηϕ(x)=11+e−η(满足第一条).

  其次,对于逻辑回归中BernoulliBernoulli分布的期望:

E(yx,θ)=1×P(y=1x,θ)+0×P(y=0,,x,θ)=1×ϕ=ϕ(.)(45)(46)(45)E(y∣x,θ)=1×P(y=1∣x,θ)+0×P(y=0,∣,x,θ)(46)=1×ϕ=ϕ(满足第二条.)

  最后我们令η=θTxη=θTx(满足第三条).

  所以在转换函数为ϕ(x)=11+eθTxϕ(x)=11+e−θTx下,逻辑回归模型是一个广义线性模型.

5.总结

  逻辑回归模型是一个非常简单的模型,训练速度非常快,而且容易理解,一般在数据处理完毕之后第一时间使用的就是逻辑回归.,虽然使用起来没有支持向量机(SVM)那么占主流,但是解决普通的分类问题是足够了,训练速度也比起SVM要快不少。如果你要理解机器学习分类算法,那么第一个应该学习的分类算法个人觉得应该是逻辑回归。理解了逻辑回归,其他的分类算法再学习起来应该没有那么难了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值