Logistic Regression几问

Logistic Regression几问

LR原理

在线性回归的模型中,是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y=Xθ,此时Y是连续的,如果想要Y输出的不是连续的,有什么办法呢,此时我们加一个激活函数 g(Y) g ( Y ) ,此时Y输出值在某个范围中属于类别A,其他范围属于类别B,那么这个就是二元逻辑回归了,如果还有其他的类别则属于多元分类。

Y=θX Y = θ X
Z=g(Y) Z = g ( Y )
其中 θ θ 是参数, g g 是激活函数,Z是最后的输出。
有了模型,接下来就是设定损失函数,来求解参数。我们以二元逻辑回归为例。

LR代价函数是什么

上一节中,我们阐述了LR的基本模型,但是我们没有设定优化损失函数,这一节我们将以二元逻辑回归为例设计损失函数,同时推广至多元损失函数。
我们知道在线性回归的损失函数是平方差,那么逻辑回归可以使用平方差吗?我们考虑线性回归输出是连续值,但是在逻辑回归是一个分类问题,输出值不连续,这个时候使用平方差就会存在问题(虽然可以强行使用)。因此我们需要寻找其他的损失函数来替代。我们可以从概率学角度进行分析。二元分类结果Y={0,1},所以其概率分别为:

P(y=1|x,θ)=gθ(x) P ( y = 1 | x , θ ) = g θ ( x )
P(y=1|x,θ)=1gθ(x) P ( y = 1 | x , θ ) = 1 − g θ ( x )
两者统一起来
P(y|x,θ)=gθ(x)y(1gθ(x))1y P ( y | x , θ ) = g θ ( x ) y ( 1 − g θ ( x ) ) 1 − y
根据似然函数最大化来求解我们需要的模型系数θ。
L(θ)=i=1m(gθ(x(i)))y(i)(1gθ(x(i)))1y(i) L ( θ ) = ∏ i = 1 m ( g θ ( x ( i ) ) ) y ( i ) ( 1 − g θ ( x ( i ) ) ) 1 − y ( i )
对数似然函数取反即为我们的损失函数 J(θ) J ( θ )
J(θ)=lnL(θ)=i=1m(y(i)log(gθ(x(i)))+(1y(i))log(1gθ(x(i)))) J ( θ ) = − l n L ( θ ) = − ∑ i = 1 m ( y ( i ) l o g ( g θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − g θ ( x ( i ) ) ) )
其中m是样本数。至此,我们就找到了二元逻辑回归的损失函数。如何推广至多元损失函数呢?
假设是K元分类模型,即样本输出y的取值为1,2,…. ,K。二元逻辑回归的经验,可以得到:
P(y=1|x,θ)=gθ(x) P ( y = 1 | x , θ ) = g θ ( x )
P(y=0|x,θ)=1gθ(x) P ( y = 0 | x , θ ) = 1 − g θ ( x )
那么
lnP(y=1|x,θ)P(y=0|x,θ)=lngθ1(x)1gθ0(x) l n P ( y = 1 | x , θ ) P ( y = 0 | x , θ ) = l n g θ 1 ( x ) 1 − g θ 0 ( x )

lnP(y=0|x,θ)P(y=K|x,θ)=lngθ0(x)1gθK(x) l n P ( y = 0 | x , θ ) P ( y = K | x , θ ) = l n g θ 0 ( x ) 1 − g θ K ( x )

lnP(y=1|x,θ)P(y=K|x,θ)=lngθ1(x)1gθK(x) l n P ( y = 1 | x , θ ) P ( y = K | x , θ ) = l n g θ 1 ( x ) 1 − g θ K ( x )
lnP(y=2|x,θ)P(y=K|x,θ)=lngθ2(x)1gθK(x) l n P ( y = 2 | x , θ ) P ( y = K | x , θ ) = l n g θ 2 ( x ) 1 − g θ K ( x )
.... . . . .
lnP(y=K1|x,θ)P(y=K|x,θ)=lngθK1(x)1gθK(x) l n P ( y = K − 1 | x , θ ) P ( y = K | x , θ ) = l n g θ K − 1 ( x ) 1 − g θ K ( x )
加上归一化条件
i=1KP(y=i|x,θ)=1 ∑ i = 1 K P ( y = i | x , θ ) = 1
组成K个线性方程组,依次可以求得:
P(y=k|x,θ) P ( y = k | x , θ )
至此,我们将损失函数推广至多元态。那么剩下的问题就是,如果挑选激活函数 g g

LR激活函数为什么是sigmoid

我们重新来看二元逻辑回归的概率解释,假设x为正太分布,Y只有0和1两类,且

P(y=1)=π1,P(y=0)=π0 P ( y = 1 ) = π 1 , P ( y = 0 ) = π 0
那么
P(y=1|x)=P(y=1,x)P(x)=π0N(x|u1,Σ1)iπiN(x|ui,Σi)=π0N(x|u1,Σ1)π0N(x|u0,Σ0)+π1N(x|u1,Σ1)=11+π0N(x|u0,Σ0)π1N(x|u1,Σ1) P ( y = 1 | x ) = P ( y = 1 , x ) P ( x ) = π 0 N ( x | u 1 , Σ 1 ) ∑ i π i N ( x | u i , Σ i ) = π 0 N ( x | u 1 , Σ 1 ) π 0 N ( x | u 0 , Σ 0 ) + π 1 N ( x | u 1 , Σ 1 ) = 1 1 + π 0 N ( x | u 0 , Σ 0 ) π 1 N ( x | u 1 , Σ 1 )
从此处看,我已经可以看出sigmoid的影子了。实际上这是由于x的假设具有exponential family(其实是exponential family中的伯努利分布性质)所具有的性质,其实这也是最大熵模型具有的性质。那么最大熵模型与LR究竟有什么关联呢?

LR与最大熵模型的关系

上一节中,我阐述了激活函数为什么sigmoid,这是有我们假设了数据服从伯努利分布,进而一步步推导出来。但是上一节中也提出了一个问题即,最大熵模型与LR的关系。那么我先了解一下最大熵模型。
熵度量了事物的不确定性,越不确定的事物,它的熵就越大。实际上人们学习知识的过程就是一个减熵的过程;下面介绍最大熵模型:
X X Y分别是输入输出数据集,最大熵模型可以表示为给定输入 X X ,以条件概率P(Y|X)输出的Y。在给定训练数据集的情况下,我可以得到 P(X,Y) P ( X , Y ) 的经验分布 P(X,Y) P ¯ ( X , Y ) 边缘分布 P(X) P ( X ) 的经验分布 P(X) P ¯ ( X )

P(X,Y)=P(X=x,Y=y)=f(X=x,Y=y)N P ¯ ( X , Y ) = P ¯ ( X = x , Y = y ) = f ( X = x , Y = y ) N
P(X)=P(X=x)=f(X=x)N P ¯ ( X ) = P ¯ ( X = x ) = f ( X = x ) N
其中 f(x,y) f ( x , y ) 是特征函数描述输入x和输出y之间的关系。
f(x,y)={10xy f ( x , y ) = { 1 x 与 y 满 足 某 个 关 系 0 否 则
那么特征函数 f(x,y) f ( x , y ) 关于经验分布 P(X,Y) P ¯ ( X , Y ) 的期望为:
EP(f)=x,yP(x,y)f(x,y) E P ¯ ( f ) = ∑ x , y P ¯ ( x , y ) f ( x , y )
特征函数 f(x,y) f ( x , y ) 关于条件分布 P(Y|X) P ( Y | X ) 和经验分布 P(X) P ¯ ( X ) 的期望值为:
EP(f)=x,yP(x)P(y|x)f(x,y) E P ( f ) = ∑ x , y P ¯ ( x ) P ( y | x ) f ( x , y )
模型训练过程中,我们可以认为
EP(f)=EP(f) E P ¯ ( f ) = E P ( f )
假如我们有M个特征函数 fi(x,y)(i=1,2...,M) f i ( x , y ) ( i = 1 , 2... , M ) 就有M个约束条件:
EP(fi)=EP(fi)(i=1,2,...M) E P ¯ ( f i ) = E P ( f i ) ( i = 1 , 2 , . . . M )
定义在条件概率分布P(Y|X)上的条件熵为:
H(P)=x,yP(x)P(y|x)logP(y|x) H ( P ) = − ∑ x , y P ¯ ( x ) P ( y | x ) l o g P ( y | x )
我们的目标是得到使 H(P) H ( P ) 最大的时候对应的 P(y|x) P ( y | x ) ,这里可以对 H(P) H ( P ) 加了个负号求极小值,这样做的目的是为了使 H(P) − H ( P ) 为凸函数,方便使用凸优化的方法来求极值。因此最大熵模型为:
minPH(P)=x,yP(x)P(y|x)logP(y|x) m i n ⏟ P − H ( P ) = ∑ x , y P ¯ ( x ) P ( y | x ) l o g P ( y | x )
约束条件为:
EP(fi)EP(fi)=0(i=1,2,...M) E P ¯ ( f i ) − E P ( f i ) = 0 ( i = 1 , 2 , . . . M )
yP(y|x)=1 ∑ y P ( y | x ) = 1
引入拉格朗日乘子,定义拉格朗日函数进行求解:
L(P,w)H(P)+w0(1yP(y|x))+i=1Mwi(EP(fi)EP(fi)) L ( P , w ) ≡ − H ( P ) + w 0 ( 1 − ∑ y P ( y | x ) ) + ∑ i = 1 M w i ( E P ¯ ( f i ) − E P ( f i ) )
其中 wi w i 是拉格朗日乘子,这样我们就将原问题
minPmaxwL(P,w) m i n ⏟ P m a x ⏟ w L ( P , w )
转化为对偶问题
maxwminPL(P,w) m a x ⏟ w m i n ⏟ P L ( P , w )
由于 minPL(P,w) m i n ⏟ P L ( P , w ) 是一个凸优化问题,那么我们求的极小值就是最优解,
L(P,w)P(y|x)=x,yP(x)(logP(y|x)+1)yw0x,y(P(x)i=1Mwifi(x,y))=0 ∂ L ( P , w ) ∂ P ( y | x ) = ∑ x , y P ¯ ( x ) ( l o g P ( y | x ) + 1 ) − ∑ y w 0 − ∑ x , y ( P ¯ ( x ) ∑ i = 1 M w i f i ( x , y ) ) = 0
可以得到 P(y|x) P ( y | x ) 如下:
P(y|x)=exp(i=1Mwifi(x,y)+w01)=exp(i=1Mwifi(x,y))exp(1w0) P ( y | x ) = e x p ( ∑ i = 1 M w i f i ( x , y ) + w 0 − 1 ) = e x p ( ∑ i = 1 M w i f i ( x , y ) ) e x p ( 1 − w 0 )
由于约束条件 yP(y|x)=1 ∑ y P ( y | x ) = 1 ,因此我们可以得到 Pw(y|x) P w ( y | x ) 表达式如下:
Pw(y|x)=1Zw(x)exp(i=1Mwifi(x,y)) P w ( y | x ) = 1 Z w ( x ) e x p ( ∑ i = 1 M w i f i ( x , y ) )
其中 Zw(x) Z w ( x ) 为规范化因子,定其形式如下:
Zw(x)=yexp(i=1Mwifi(x,y)) Z w ( x ) = ∑ y e x p ( ∑ i = 1 M w i f i ( x , y ) )
接下来第二步,我们需要求 maxwPw(y|x) m a x ⏟ w P w ( y | x ) ,我们直接采用求偏导数。之后将w代入上面的 Pw(y|x) P w ( y | x ) ,这样我们对最大熵模型就有了足够的了解了。
最大熵模型与LR模型有类似的形式,它们又称为对数线性模型(log linear model)。 模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化的极大似然估计。

回过头来我们再看LR模型,假设数据第i个特征对第k类的贡献是 wki w k i ,因为一个样本属于各类的概率之和为1,所以可以得到

P(y=k)=exp(iwkixi)kexp(iwkixi) P ( y = k ) = exp ⁡ ( ∑ i w k i x i ) ∑ k ′ exp ⁡ ( ∑ i w k ′ i x i )
回到二元LR模型
P(y=1)=exp(iw1ixi)exp(iw1ixi)+exp(iw0ixi)=11+exp(iwixi) P ( y = 1 ) = exp ⁡ ( ∑ i w 1 i x i ) exp ⁡ ( ∑ i w 1 i x i ) + exp ⁡ ( ∑ i w 0 i x i ) = 1 1 + exp ⁡ ( − ∑ i w i x i )
其中参数 wi w i 表示第i个特征对1类的贡献比对0类的贡献多多少。通过上面的描述我们可以得知LR和MaxEntropy模型具有异曲同工之妙。

LR如何防止过拟合以及为什么这些手段可以防止过拟合

通用的防止过拟合的问题的方法有两种,增加L1范数或者增加L2范数。那么L1范数和L2范数为什么都可以防止过拟合呢?同时为什么L1范数可以得到稀疏解呢?首先我们需要了解为什么会有过拟合,过拟合的本质是什么。过拟合的表现是训练数据模型拟合能力非常好,而测试数据拟合能力较为差,导致这一原因的因素是,数据中存在噪声,当我们在训练的时候,迭代过程中有噪声的作用,使得训练出来的权值参数( w w )是一个非常大值,那么这个是样本数据只要稍微的变化一点,就有可能导致输出结果变化非常大(类似Δxw非常大),这个时候就容易产生我们所谓的过拟合。明白了过拟合是怎么产生的之后,我就看L1范数和L2范数怎么解决这个问题。因为L2范数是可导的,我们先介绍L2范数。

L(w)=Lo+λ2nww2 L ( w ) = L o + λ 2 n ∑ w w 2
L(w)w=Low+λnw ∂ L ( w ) ∂ w = ∂ L o ∂ w + λ n w
wwL(w)w=wηLowηλnw w → w − ∂ L ( w ) ∂ w = w − η ∂ L o ∂ w − η λ n w
从上式可以看出,加入L2正则化主要是减小参数 w w ,从而达到防止过拟合效果。L1范数由于不可导性,不能只求导,因此我们需要绕道而行,常用的方法是坐标轴下降法或者Lasso回归法,这里不详细介绍。其实除此之外,我们也可以用分段求导来计算。
L(w)=Lo+λ2nw|w|
L(w)w=Low+λnsgn(w) ∂ L ( w ) ∂ w = ∂ L o ∂ w + λ n s g n ( w )
wwL(w)w=wηLowηλnsgn(w) w → w − ∂ L ( w ) ∂ w = w − η ∂ L o ∂ w − η λ n s g n ( w )
从此处可以看到L1范数的作用效果和L2范数作用效果是一样的,都是使得参数减小。当w小于1的时候,L2正则项的惩罚效果越来越小,L1正则项惩罚效果依然很大,L1可以惩罚到0,而L2却很难,因此L1范数相对来说更容易获得稀疏解。我们从概率学的角度来分析一下L1范数和L2范数。

L1,L2范数来自于对数据的先验知识,如果现有的数据来自于高斯分布,那么就应该在代价函数中加入数据先验 P(x) P ( x ) 或者是对数似然 logP(x) l o g P ( x ) ,然后再去优化,这样最终的结果是,由于模型参数考虑了数据先验,模型效果就更好。如果数据是稀疏的,可以认为数据是服从拉普拉斯分布。通过对高斯分布和拉普拉斯分布执行对数似然,剩下的部分就是参数 w w <script type="math/tex" id="MathJax-Element-86">w</script>的平方项或者绝对值项。从这点看,我们认为加入正则化项是源于我们得知了数据的先验知识。
因此我们从两个方面解释了正则化为什么可以防止过拟合。

如何利用LR解决非线性问题

SVM算法和PCA(将维)中解决非线性的问题是采用了核方法,因此LR解决非线性的方法也可以采用核函数进行升维,变成线性处理

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值