逻辑斯谛回归(logistics regression,LR)

逻辑斯谛分布

之前学到的感知机线性回归说过,一个分离超平面S将特征空间分成两个部分,实例在不同的子空间中被分为相对应的类。但是当一个样本点与超平面的距离非常近时,被分成类A的可能性为51%,分成类B的可能性为49%,此时线性回归会直接给出该样本点属于A类的结论,并没有告诉我们它属于A类的概率是多少,这样就忽略了49%分成B类的可能性。

为了得到这个概率,引出了Sigmoid函数(也叫Logistic,逻辑斯谛函数)。
关于函数的简介,可以在百度中自行了解:
https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407
Sigmoid函数经常在深度学习中作为激励函数使用,它的基本形式如下:
S i g m o i d ( x ) = 1 1 + e x Sigmoid(x)=\frac{1}{1+e^{x}} Sigmoid(x)=1+ex1
Sigmoid函数能够将线性回归产生的值 x ∈ ( − ∞ , + ∞ ) x\in{(-\infty,+\infty)} x(,+) 转换到 y ∈ ( 0 , 1 ) y\in(0,1) y(0,1) 区间内,而概率的取值也在(0,1)内,这样,就可以得到一个样本被分为一个类的概率是多少了。
Sigmoid函数
引入Sigmoid函数之后,加入形状参数 γ \gamma γ和位置参数 μ \mu μ,便得到了逻辑斯谛分布:

当连续随机变量X服从逻辑斯谛分布时,X具有下列分布函数:
F ( x ) = 1 1 + e − ( x − μ ) / γ F(x)=\frac{1}{1+e^{-(x-\mu)/\gamma}} F(x)=1+e(xμ)/γ1
分布函数求导后得到密度函数:
f ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 f(x)=\frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2} f(x)=γ(1+e(xμ)/γ)2e(xμ)/γ
其中,形状参数 γ \gamma γ越小,曲线在中心附近越陡,增长的越快。

二项逻辑斯谛回归模型

μ = 0 , γ = 1 \mu=0,\gamma=1 μ=0,γ=1,随机变量Y只有两个取值0或1时,二项逻辑斯谛回归模型的形式为:
P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x + b ) P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x+b)}} P(Y=0x)=1+e(ωx+b)1
P ( Y = 1 ∣ x ) = 1 − 1 1 + e ( ω ⋅ x + b ) = e ( ω ⋅ x + b ) 1 + e ( ω ⋅ x + b ) P(Y=1|x)=1- \frac{1}{1+e^{(\omega \cdot x+b)}} = \frac{e^{(\omega \cdot x+b)}}{1+e^{(\omega \cdot x+b)}} P(Y=1x)=11+e(ωx+b)1=1+e(ωx+b)e(ωx+b)
有时为了方便,将权值向量 ω \omega ω扩充为 ( ω ( 1 ) , ω ( 2 ) , . . . , ω ( n ) , b ) T (\omega^{(1)},\omega^{(2)},...,\omega^{(n)},b)^T (ω(1),ω(2),...,ω(n),b)T,将输入向量x扩充为 ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 ) (x^{(1)},x^{(2)},...,x^{(n)},1) (x(1),x(2),...,x(n),1),扩充后的 ω ⋅ x = ω ( 1 ) x ( 1 ) + ω ( 2 ) x ( 2 ) + . . . + ω ( n ) x ( n ) + b \omega \cdot x=\omega^{(1)}x^{(1)}+\omega^{(2)}x^{(2)}+...+\omega^{(n)}x^{(n)}+b ωx=ω(1)x(1)+ω(2)x(2)+...+ω(n)x(n)+b,等价于扩充前的 ω ⋅ x + b \omega \cdot x+b ωx+b
这时的逻辑斯谛回归模型如下:
P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x ) P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x)}} P(Y=0x)=1+e(ωx)1
P ( Y = 1 ∣ x ) = 1 − 1 1 + e ( ω ⋅ x ) = e ( ω ⋅ x ) 1 + e ( ω ⋅ x ) P(Y=1|x)=1- \frac{1}{1+e^{(\omega \cdot x)}} = \frac{e^{(\omega \cdot x)}}{1+e^{(\omega \cdot x)}} P(Y=1x)=11+e(ωx)1=1+e(ωx)e(ωx)

当输入一个样本点x时,二项逻辑斯谛回归模型比较P(Y=0|x)和P(Y=1|x)的大小,将x分到概率值较大的那一类。其实只需计算一个条件概率值就行了,因为P(Y=0|x)+P(Y=1|x)=1。
例如当P(Y=0|x)=0.49,P(Y=1|x)=0.51时,x的类别为y=1,属于类1的概率为0.51。

这样,当一个样本点x输入到感知机模型sign(w•x+b)中时,只能得到样本点的类别;
当x输入到二项逻辑回归模型中时,不仅可以得到样本点的类别,还可以得到属于该类别的概率。

二项逻辑斯谛回归模型参数估计

下一个要解决的问题是,怎么得到模型中的未知参数 ω \omega ω

假如给你一个训练集,包括10个样本,其中7个样本为类0,3个样本为类1,类0出现的概率为p,类1出现的概率为1-p,那么出现训练样本这种现象的概率就是p7(1-p)3

既然这个样本结果已经出现了,为什么不利用已知的样本结果信息,反推最有可能(最大概率)导致这些样本结果出现的模型参数值 ω \omega ω呢?而这就是极大似然估计法的思想。

也就是说,我们可以用极大似然估计法估计 ω \omega ω。通过最大化对数似然函数,得到未知参数 ω \omega ω的估计值。

如果x是已知确定的,参数 ω \omega ω是未知的, P ( x ∣ ω ) P(x|\omega) P(xω)叫做似然函数, 它描述对于不同的参数 ω \omega ω,出现x这个样本点的概率是多少。
关于极大似然估计更详细的解说,可以看这篇文章https://zhuanlan.zhihu.com/p/26614750

下面我们具体应用到二项逻辑回归模型中。
设训练数据集T={(x1,y1),(x2,y2),…,(xN,yN)}有N个样本,yi为0或1。
为了方便表述,设:
P ( Y = 1 ∣ x ) = e ( ω ⋅ x ) 1 + e ( ω ⋅ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x ) = 1 − π ( x ) ( 1 ) P(Y=1|x)=\frac{e^{(\omega \cdot x)}}{1+e^{(\omega \cdot x)}}=\pi(x), P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x)}}=1-\pi(x) \tag{\color{red}{1}} P(Y=1x)=1+e(ωx)e(ωx)=π(x),P(Y=0x)=1+e(ωx)1=1π(x)(1)

出现训练集T这个结果的似然函数就是把每个样本点出现的概率相乘起来:
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} i=1N[π(xi)]yi[1π(xi)]1yi
假如训练集T只有两个样本点,第一个样本点是类0,第二个是类1,代入上式就是:
∏ i = 1 2 [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i = [ π ( x 1 ) ] y 1 [ 1 − π ( x 1 ) ] 1 − y 1 [ π ( x 2 ) ] y 2 [ 1 − π ( x 2 ) ] 1 − y 2 = [ π ( x 1 ) ] 0 [ 1 − π ( x 1 ) ] 1 [ π ( x 2 ) ] 1 [ 1 − π ( x 2 ) ] 0 = [ 1 − π ( x 1 ) ] [ π ( x 2 ) ] \begin{aligned} &\prod_{i=1}^{2}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}\\ &=[\pi(x_1)]^{y_1}[1-\pi(x_1)]^{1-y_1}[\pi(x_2)]^{y_2}[1-\pi(x_2)]^{1-y_2}\\ &=[\pi(x_1)]^{0}[1-\pi(x_1)]^{1}[\pi(x_2)]^{1}[1-\pi(x_2)]^{0}\\ &=[1-\pi(x_1)][\pi(x_2)] \end{aligned} i=12[π(xi)]yi[1π(xi)]1yi=[π(x1)]y1[1π(x1)]1y1[π(x2)]y2[1π(x2)]1y2=[π(x1)]0[1π(x1)]1[π(x2)]1[1π(x2)]0=[1π(x1)][π(x2)]
是不是相当于那个p7(1-p)3呢。

为了让连乘变成连加,对上面的似然函数取对数,得到对数似然函数
L ( ω ) = ∑ i = 1 N [ l o g [ π ( x i ) ] y i + l o g [ 1 − π ( x i ) ] 1 − y i ] = ∑ i = 1 N [ y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) − y i l o g ( 1 − π ( x i ) ) + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i [ l o g π ( x i ) − l o g ( 1 − π ( x i ) ) ] + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) 1 − π ( x i ) + l o g ( 1 − π ( x i ) ) ] 将 前 面 设 的 式 1 代 入 = ∑ i = 1 N [ y i l o g e ( ω ⋅ x i ) 1 + e ( ω ⋅ x i ) 1 1 + e ( ω ⋅ x i ) + l o g 1 1 + e ( ω ⋅ x i ) ] = ∑ i = 1 N [ y i ( ω ⋅ x i ) − l o g ( 1 + e ( ω ⋅ x i ) ) ] \begin{aligned} L(\omega)&=\sum_{i=1}^{N}[log[\pi(x_i)]^{y_i}+log[1-\pi(x_i)]^{1-y_i}]\\ &=\sum_{i=1}^{N}[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_ilog\pi(x_i)-y_ilog(1-\pi(x_i))+log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_i[log\pi(x_i)-log(1-\pi(x_i))]+log(1-\pi(x_i))]\\ &=\sum_{i=1}^{N}[y_ilog\frac{\pi(x_i)}{1-\pi(x_i)}+log(1-\pi(x_i))]\\ 将前面设的式1代入&=\sum_{i=1}^{N}[y_ilog\frac{\frac{e^{(\omega \cdot x_i)}}{1+e^{(\omega \cdot x_i)}}}{\frac{1}{1+e^{(\omega \cdot x_i)}}}+log\frac{1}{1+e^{(\omega \cdot x_i)}}]\\ &=\sum_{i=1}^{N}[y_i(\omega \cdot x_i)-log(1+e^{(\omega \cdot x_i)})] \end{aligned} L(ω)1=i=1N[log[π(xi)]yi+log[1π(xi)]1yi]=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]=i=1N[yilogπ(xi)yilog(1π(xi))+log(1π(xi))]=i=1N[yi[logπ(xi)log(1π(xi))]+log(1π(xi))]=i=1N[yilog1π(xi)π(xi)+log(1π(xi))]=i=1N[yilog1+e(ωxi)11+e(ωxi)e(ωxi)+log1+e(ωxi)1]=i=1N[yi(ωxi)log(1+e(ωxi))]
L ( ω ) L(\omega) L(ω)求极大值,就可以得到参数 ω \omega ω的估计值,进一步得到二项逻辑回归模型。
到此,求二项逻辑回归模型就变成了求目标函数为 L ( ω ) L(\omega) L(ω)的最优化问题。求解该最优化问题一般使用梯度下降法和拟牛顿法。

梯度下降法的学习文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值