逻辑回归(Logistic Regression)

逻辑回归(Logistic Regression)

这是一个软性二分类问题:关心的是目标函数的值(分布在[0,1]之间),表示正类的概率是多少。值越接近于1,表示正类的可能性越大。

目标函数: f ( x ) = P ( + 1 | x ) [ 0 , 1 ] P ( y | x ) = { 1 f ( x ) , f o r y = 1 f ( x ) , f o r y = + 1

理想中的数据是分布在[0,1]之间的具体值,但是实际中的数据只可能是0或1,可以把实际中的数据看成是理想数据加上了噪声的影响。
其hypothesis: h ( x ) = 1 1 + e w T x
目标:求出这个预测函数,使它接近目标函数 f ( ( x )
似然性:若找到一个hypothesis h(x)很接近target function,也就是说,在所有的hypothesis中找到一个h(x)与f(x)最接近,能产生同样的数据集D,则称这个h(x)为最大似然性。

假设数据集 D = { ( x 1 , ) , ( x 2 , × ) , , ( x N , × ) }
probability that f generates D:

P ( x 1 ) f ( x 1 ) × P ( x 2 ) ( 1 f ( x 2 ) ) × × P ( X N ) ( 1 f ( X N ) )

likelihood that h generates D:
P ( x 1 ) f ( x 1 ) × P ( x 2 ) ( 1 f ( x 2 ) ) × × P ( X N ) ( 1 f ( X N ) )

(若 h f ,则likelihood h的公式如上所示)

logistic function: h ( x ) = θ ( w T x ) 满足一个性质: 1 h ( x ) = h ( x ) .
那么,likelihood h的公式为:

l i k e l i h o o d ( h ) = P ( x 1 ) h ( + x 1 ) × P ( x 2 ) h ( x 2 ) × P ( x N ) h ( x N )

因为 P ( x n ) 对所有的h来说都是一样的,所以可以忽略。则ikelihood正比于所有的 h ( y n x n ) 的乘积。
目标是使乘积最大化。

m a x h l i k e l i h o o d ( h ) n = 1 N h ( y n x n )

将w带入:
m a x w l i k e l i h o o d ( w ) n = 1 N θ ( y n w T x n )

为了简化计算,引入 ln 操作:
m a x w n = 1 N ln θ ( y n w T x n )

将maximize问题转化为minimize问题,并引入平均数 1 N :
m i n w 1 N n = 1 N ln θ ( y n w T x n )

将logistic function θ ( s ) 的表达式带入,得:
m i n w 1 N n = 1 N ln ( 1 + e x p ( y n w T x n ) )

m i n w 1 N e r r ( w , x n , y n )

由此得到了logistic function的err function,称之为 cross-entropy error 交叉信息熵:
e r r ( w , x , y ) = ln ( 1 + e x p ( y w T x ) )

则接下来的 目标是:找到合适的向量w,使err(即训练误差 E i n )最小。

E i n 的曲线是凸函数,那么只要计算出 E i n = 0 时的w,即为最优解。

E i n = 1 N n = 1 N θ ( y n w T x n ) ( y n x n ) = 0

其中 θ ( y n w T x n ) 可看成时 y n x n 的线性加权。
要使线性加权和为0,有两种情况:
第一种:若所有的权重 θ ( y n w T x n ) = 0 ,则 E i n = 0 因为 θ ( y n w T x n ) 为sigmoid function,只要 y n w T x n << 0 ,即 y n w T x n >> 0 ,就可使结果为0。而 y n w T x n >> 0 表示对所有的点 y n w T x n 都是同号的,这表示数据集必须是线性可分的才能成立。
但是,保证线性可分不现实,更多的情况是线性不可分的。
第二种:非线性可分,只能通过使加权和为0来求解w。这种情况只能使用迭代来逐步求解。
E i n 曲线比作一个山谷,则使 E i n 最小,即可比作下山的过程。整个下山过程受两个因素影响:下山的单位方向 ν 和下山的补偿 η .
利用微分思想和线性近似,根据泰勒一节展开:
E i n ( w t + η ν ) E i n ( w t ) + η ν T E i n ( w t )

要让 E i n ( w t + η ν ) < E i n ( w t ) ,则 ν 方向要与 E i n 方向相反,
令下降方向 ν 为:
ν = E i n ( w t ) | | E i n ( w t ) | |

ν 是单位向量, ν 每次都是沿着梯度的反方向走,这种方法称为 梯度下降*(gradient descent)
那么:
w t + 1 w t η E i n ( w t ) | | E i n ( w t ) | |

η = η | | E i n ( w t ) | | ,则:

w t + 1 w t η E i n ( w t )

根据该公式不断循环,最终即可求得w

总结一下基于梯度下降的logistic regression算法步骤:
初始化w
计算t梯度 E i n
迭代 w t + 1 w t η E i n ( w t )
当满足 E i n ( w t + 1 ) = 0 或达到迭代次数时,迭代结束。

接下来从另一个角度来说逻辑回归
这种方法也是梯度下降,但是使用的cost function与上面的 E i n 不一样。

c o s t ( h ( w ) , y ) = { log ( h w ( x ) ) , y = 1 log ( 1 h w ( x ) ) , y = 0


c o s t ( h w ( x ) , y ) = y log ( h w ( x ) ) ) ( 1 y ) l o g ( 1 h w ( x ) )

则整个数据集的cost function为:
J ( w ) = 1 N n = 1 N c o s t ( h w ( x n ) , y n )

(也可用最大似然法推出来)

目的:求出最小的 J ( w )
使用梯度下降法
repeat{
w i = w i α J ( w ) w i
}

其中: J ( w ) w i = 1 N n = 1 N ( h w ( x n ) y n ) x n j ,
w j 表示第j个特征的权重。

具体推导就不推了。

猜你喜欢

转载自blog.csdn.net/qq_42522262/article/details/81947466