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

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

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

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

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

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

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

2.1. 概率预测

  为了简单起见,我们假设标记 Yi{0,1},i=1,,n Y i ∈ { 0 , 1 } , i = 1 , … , n ,且在样本 Xi X i 给定下,类别标记 Yi Y i 独立同 Bernoulli B e r n o u l l i 分布,数学表述为:

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

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

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

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

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

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

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

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

2.2. 损失函数

  上节介绍了一个样本 xi x i 类别标记为 yi y i 得条件概率为: P{yixi}=hθ(xi)yi(1hθ(xi))1yi P { y i ∣ x i } = h θ ( x i ) y i ( 1 − h θ ( x i ) ) 1 − y i ,那么所有样本 X X 类别标记为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 = 1 n P { y i ∣ x i , θ } (25) = Π i = 1 n P { y i ∣ x i } (26) = Π i = 1 n h θ ( x i ) y i ( 1 − h θ ( x i ) ) 1 − y i ,

我们将对数似然函数 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 = 1 n h θ ( x i ) y i ( 1 − h θ ( x i ) ) 1 − y i ) (30) (31) = − ∑ i = 1 n ( y i ln ⁡ ( h θ ( x i ) ) + ( 1 − y i ) ln ⁡ ( 1 − h θ ( x i ) ) ) .

2.3. 参数更新

  从概率角度来讲,我们希望最大化所有样本 X X 被判为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 = 1 n ( y i ∂ ( ln ⁡ ( h θ ( x i ) ) ∂ θ + ( 1 − y i ) ∂ ( 1 − h θ ( x i ) ) ∂ θ ) (33) = − ∑ i = 1 n ( y i h θ ( x i ) ( 1 − h θ ( x i ) ) h θ ( x i ) − ( 1 − y i ) ( 1 − h θ ( x i ) ) h θ ( x i ) 1 − h θ ( x i ) ) x i (34) = ∑ i = 1 n ( h θ ( x i ) − y i ) x i

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

得到参数 θ θ 的更新为:

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

也可以写成矩阵形式:

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

2.4. 正则化

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

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

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

  • L1正则

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

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

  • L2正则

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

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

3. 逻辑回归的多分类

3.1. 多分类的经典策略

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

  • “一对一”(OvO)

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

  • “一对其余”(OvR)

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

  • “多对多”(MvM)

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

3.2. 逻辑回归多分类

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

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

类似有:

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 = C N ∣ x , θ ) P ( y = C 1 ∣ x , θ ) = 1 e θ 1 T x (36) P ( y = C N ∣ x , θ ) P ( y = C 2 ∣ x , θ ) = 1 e θ 2 T x (37) … … (38) P ( y = C N ∣ x , θ ) P ( y = C N − 1 ∣ x , θ ) = 1 e θ N − 1 T x

Nk=1P(y=Ckx,θ)=1 ∑ k = 1 N P ( y = C k ∣ x , θ ) = 1

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

(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 = 1 m ∑ k = 1 K I ( y i = C k ) ln ⁡ P ( y i = C k ∣ x i , θ k )

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

  值得一提的是,我们也可以构造 N N 个学习器,这样输出就有N个,可以通过 softmax s o f t m a x 函数转换得到 N N 个概率值,第k个概率值就是 y y CK的概率:

P{y=Ckx,Θ}=eθTkxNi=1eθTixk=1,2,,N(41) (41) P { y = C k ∣ x , Θ } = e θ k T x ∑ i = 1 N e θ i T x k = 1 , 2 , … , N

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

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

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

A. 指数族分布

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

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

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

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

B. 广义线性模型(GLM)

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

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

P(yx,θ)=b(η)eηT(y)α(η) P ( y ∣ x , θ ) = b ( η ) e η T ( y ) − α ( η )

  1. 给定 x x ,我们的预测是y的期望:

h(x)=E(yx) h ( x ) = E ( y ∣ x )

  1. 参数 η η 满足:

η=θTx η = θ T x

  首先,我们可以看出,在二分类中, Bernoulli B e r n o u l l i 分布就是一个指数族分布.
  二分类逻辑回归中,我们假设样本的类别标记服从 Bernoulli B e r n o u l l i 分布,所以

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) = e x p ( y ln ⁡ ϕ + ( 1 − y ) ln ⁡ ( 1 − ϕ ) ) (44) = e x p ( ln ⁡ ϕ 1 − ϕ + ln ⁡ ( 1 − ϕ ) )

我们令:

η=lnϕ1ϕϕ=11+eη(sigmoid)α(η)=ln(1ϕ)=ln(1+eη)b(η)=1 { η = ln ⁡ ϕ 1 − ϕ ⇒ ϕ = 1 1 + e − η ( s i g m o i d ) α ( η ) = − ln ⁡ ( 1 − ϕ ) = ln ⁡ ( 1 + e η ) b ( η ) = 1

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

  其次,对于逻辑回归中 Bernoulli B e r n o u l l i 分布的期望:

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 η = θ T x (满足第三条).

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

5.总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值