逻辑回归 Logistic Regression

逻辑回归也被称为对数几率回归,是一种分类算法,用条件概率分布的形式表示 P ( Y | X ) ,这里随机变量 X 取值为 n 维实数向量。

例如 x = ( x 1 , x 2 , , x n ) Y 取值为 0 1

逻辑回归模型
逻辑回归的模型定义如下:

P ( Y = 1 | x ) = e x p ( w · x + b ) 1 + e x p ( w · x + b )
P ( y = 0 | x ) = 1 1 + e x p ( w · x + b )
假设有一个二分类问题,输出为 y = { 0 , 1 } ,而线性回归模型产生的预测值为 z = w x + b 是实数值,我们希望有一个理想的阶跃函数来帮我们实现z值到0/1值的转化.

我们可以很自然的想到如下函数:

ϕ ( z ) = { 0 if z<0 0.5 if z=0 1 if z>0
但是由于该函数在定义域内不连续,而我们需要一个单调可微的函数来供我们使用,于是便找到了Sigmoid函数:
ϕ ( z ) = 1 1 + e z

这里写图片描述

由于Sigmoid函数的取值范围为 [ 0 , 1 ] ,我们就可以将其视为类1的后验概率估计 P ( y = 1 | x ) 。说白了,就是如果有了一个测试点 x ,那么就可以用Sigmoid 函数算出来的结果来当做该点x属于类别1的概率大小。

于是,非常自然地,我们把Sigmoid函数计算得到的值大于等于0.5的归为类别1,小于0.5的归为类别0:

y ^ = { 1 if  ϕ ( z )  0 0 otherwise

逻辑回归的损失函数
逻辑回归模型的损失函数(误差平方和)定义如下:

J ( w ) = i 1 2 ( ϕ ( z ( i ) ) y ( i ) ) 2
其中:
z ( i ) = w T x ( i ) + b i ,表示第 i 个样本点;
y ( i ) 表示第 i 个样本的真实值;
ϕ ( z ( i ) ) 表示第 i 个样本的预测值。

这时,如果我们将 ϕ ( z ) = 1 1 + e z 带入的话,会发现这是一个非凸函数,这就意味着代价函数(代价即预测值和实际值之间的差距)有着许多的局部最小值,这非常不利于我们求解。

左:非凸函数;右:凸函数
这里写图片描述

因此我们需要换一个思路去解决问题,我们注意到,在逻辑回归的分类任务中,分类结果非0即1,所以我们有:

P ( y = 1 | x ; w ) = ϕ ( z )
P ( y = 0 | x ; w ) = 1 ϕ ( z )
其中:
ϕ ( z ) = ϕ ( w T x + b )
P ( y = 1 | x ; w ) 表示给定 w ,那么 x y = 1 的概率大小。

于是上式可以整合为:

P ( y | x ; w ) = ϕ ( z ) y ( 1 ϕ ( z ) ) 1 y

逻辑回归模型参数估计
求解 P ( y | x ; w ) = ϕ ( z ) y ( 1 ϕ ( z ) ) 1 y 中的参数 w 可以用极大似然估计(最大可能性估计)的方法:
L ( w ) = i = 1 n P ( y ( i ) | x ( i ) ; w ) = i = 1 n ( ϕ ( z ( i ) ) ) y ( i ) ( 1 ϕ ( z ( i ) ) ) 1 y ( i )
等式两边做对数变换可得
l ( w ) = ln L ( w ) = i = 1 n y ( i ) ln ( ϕ ( z ( i ) ) ) + ( 1 y ( i ) ) ln ( 1 ϕ ( z ( i ) ) )
我们现在就得到了代价函数 l ( w ) ,为了方便使用梯度下降法求解代价函数,我们取代价函数的相反数,然后将代价函数定义为原代价函数的相反数:
J ( w ) = l ( w ) = i = 1 n [ y ( i ) ln ( ϕ ( z ( i ) ) ) + ( 1 y ( i ) ) ln ( 1 ϕ ( z ( i ) ) ) ]

逻辑回归的模型求解
由于Sigmoid函数的自身性质,其对参数求偏导后:

ϕ ( z ) = 1 1 + e z
ϕ ( z ) = d ϕ ( z ) d z = ϕ ( z ) ( 1 ϕ ( z ) )

偏导数推导过程:
这里写图片描述

接下来使用梯度下降法求解回归模型:

w := w + w
其中
w := w + w
相关文章
相关标签/搜索