机器学习笔记:逻辑回归

本博客内容主要来自周志华著《机器学习》及网上相关资源,用于个人的学习记录,禁止转载。

线性模型虽然简单,但是变化非常丰富,例如,我们如果认为样例所对应的输出是在指数尺度上变化的,那么就可以将输出标记的对数作为线性模型逼近的目标, ln y = w T x + b \ln y = w^Tx+b 。这就是对数线性回归,实际上是利用 e w T + b e^{w^T+b} 逼近 y y ,形式上虽然是线性回归,但是求的是输入空间到输出空间的非线性映射。更一般的考虑单调可微函数 g ( ) g(\cdot) ,令 y = g ( w T x + b ) y=g(w^Tx+b) ,这样的模型称为广义线性模型。

1.模型

回归(regression)模型的输出是连续值,如何用连续值做分类的。考虑基本的二分类问题,我们可以使用阶跃函数,设 z = w x + b z=w^x+b
y = { 0 , z < = 0 ; 0.5 , z = 0 ; 1 , z > 0. y= \begin{cases} 0, & z<=0;\\ 0.5, & z =0;\\ 1, & z>0. \end{cases}
但是,单位阶跃函数不连续,求解性质不好,我们希望能够找到一个近似单位阶跃函数的替代函数,要求是单调可微。对数几率函数(Sigmoid函数)就是一个常用的替代。可以得到广义线性模型
y = 1 1 + e ( w T x + b ) y=\frac{1}{1+e^{-(w^Tx+b)}}
从而 ln y 1 y = w T x + b \ln \frac{y}{1-y}=w^Tx+b ,这里我们将 y y 看做样本是正例的概率,那么 1 y 1-y 自然是负例的概率,数学中定义“几率”为相对可能性,即 y 1 y \frac{y}{1-y} ,那么自然 w T x + b w^Tx+b 便成了所谓的**“对数几率”**。那么我们现在实际上是在用线性模型逼近真实样本的对数几率,称为”对数几率回归“,也叫”逻辑回归“。

2.求解

求解广义线性模型通常使用最小二乘法和极大似然法,极大似然法是概率统计中常用的求解模型参数的方法。这里,我们将 y y 表示为后验概率 p ( y = 1 x ) p(y=1|x) ,由前面的定义得到(注意Sigmoid函数1+ e ( w T x + b ) e^{-(w^Tx+b)} 和后验概率1+ e ( w T x + b ) e^{-(w^Tx+b)} 的区别)
p ( y = 1 x ) = e w T x + b 1 + e w T x + b p(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}

p ( y = 0 x ) = 1 1 + e w T x + b p(y=0|x)=\frac{1}{1+e^{w^Tx+b}}

极大似然法可以简单理解为设定参数 θ ^ \hat{\theta} ,使得各样本在此参数下的分布中真实出现的概率(积)最大,也就是下是的 y i y_i 是样本真实的标签决定的。给定数据集 ( x i , y i ) i = 1 m {(x_i,y_i)}_{i=1}^m ,对数几率回归最大化
l ( w , b ) = i = 1 m ln p ( y i x i ; w , b ) l(w,b)=\sum\limits_{i=1}^m \ln p(y_i|x_i;w,b)
为了方便讨论,记 β = ( w , b ) , x ^ = ( x ; 1 ) \beta=(w,b),\hat{x}=(x;1) ,将 w T x + b w^Tx+b 简写为 β T x ^ \beta ^T\hat{x} 。由于这里的标签 y i { 0 , 1 } y_i\in\{0,1\} ,我们使用一个小trick,将样本的后验概率写为
p ( y i x i ; w , b ) = y i p ( y i = 1 x ^ i ; β ) + ( 1 y i ) p ( y i = 0 x ^ i ; β ) p(y_i|x_i;w,b)=y_i\cdot p(y_i=1|\hat{x}_i;\beta)+(1-y_i)\cdot p(y_i=0|\hat{x}_i;\beta)
需要注意,代入求解时, ln p ( y i ) \ln p(y_i) 转化为 y i ln p ( y i = 1 ) + ( 1 y i ) ln p ( y i = 0 ) y_i \ln p(y_i=1)+(1-y_i) \ln p(y_i=0) ,这里的“转化为”其实可以写为“=”,因为 y i y_i 的二值性。或者按照《统计学习方法》中的表示,将样本的后验概率写为。
p ( y i x i ; w , b ) = [ p ( y i = 1 x ^ i ; β ) ] y i [ p ( y i = 0 x ^ i ; β ) ] 1 y i p(y_i|x_i;w,b)= [p(y_i=1|\hat{x}_i;\beta)]^{y_i}\cdot[p(y_i=0|\hat{x}_i;\beta)]^{1-y_i}
此时,将式1、2、3代入4或5都可得到
l ( β ) = i = 1 m ( y i β T x ^ i + ln ( 1 + e β T x ^ i ) ) l(\beta)=\sum\limits_{i=1}^m (-y_i\beta^T\hat{x}_i+\ln(1+e^{\beta^T\hat{x}_i}))
上述函数 l ( β ) l(\beta) 是关于 β \beta 的高阶可到连续凸函数,许多经典的数值优化算法都可用于求解,例如梯度下降法、牛顿法等这里不做详解。

猜你喜欢

转载自blog.csdn.net/weixin_37621790/article/details/87367141