线性模型(三)逻辑回归logistic regression

逻辑回归,也叫对数几率回归,它先回归出一个预测值,再用一个函数(sigmoid函数)把预测值转换为0 or 1类的概率从而实现分类。前面讲的最小二乘只能回归,只是求解了一个拟合模型,对于新数据可以预测出一个具体的实值,却止步于此,不能用于二分类。

探究一下“逻辑回归”和“对数几率回归”两个名字,里面的用词也承载了一些信息量。以下纯属自己杜撰臆想,不一定真实或正确。
“逻辑”即“真”“假”,就是布尔类型,不是0就是1,这是因为逻辑回归的基本思想是找个单调可微的函数把预测值和分类任务的标签联系起来,最初找的函数是阶跃函数(当然阶跃函数不连续),预测值大于阈值就判定为正类(y=1),小于阈值就判定为负类(y=0),这里面就包含了非0即1,故称“逻辑”。
“对数”“几率”在后面讲数学推导时说。


推导前最后的啰嗦

  1. 求解目的
    推导的终极目的是求什么?逻辑回归的模型依旧是线性模型,即wTx+bw^Tx+b,我们推导的目的就是找到能实现2分类目的且最优的模型参数w,b(w,b)

  2. 先回归再分类
    求出模型,然后嘞?我们要用这个求解出的模型对新数据进行预测(先回归),然后再想办法把这个预测值转化为分类标签实现2分类(再分类)。

  3. sigmoid函数(logistic 函数)的登场
    那想什么办法,或者说用什么函数能把预测值和分类tag联系到一起呢?
    y=g1(wTx+b)y=g^{-1}(w^Tx+b)
    我们希望这个g1(x)g^{-1}(x)函数是单调可微的,因为后面的模型求解需要求导。
    刚开始选的阶跃函数
    y={0,z<00.5,z=01,z>0y=\left\{ \begin{aligned} 0&,&z<0\\ 0.5&,&z=0\\ 1&,&z>0 \end{aligned} \right.
    z=wTx+bz=w^Tx+b
    (z就是线性分界面,它的两边就是两个类别,数据代入模型,大于0就在分界面的上边,被分为正类。想不明白可以回忆感知机

但阶跃函数不连续也不便于求导,因此要寻找替代函数,于是就找到了如今已耳熟能详大名鼎鼎的sigmoid函数头上:
y=11+ezy=\frac{1}{1+e^{-z}}
它近似阶跃函数,还单调可微,所以就用它来做线性模型预测值和分类标签的桥梁了。

它的输出是(0,1)之间的数,有点像概率,但严格来讲又不是概率,只能说它转换出来的值yy这个样本属于正类(1)的可能性。自然,1y1-y 就是该样本属于负类(0)的可能性.

线性模型(三)逻辑回归logistic regression
4. 何为“几率”,“对数几率”
注意我们推导的思路实际上是反着来的,先假设模型参数已经有了,去构建能量函数,再从能量函数/目标函数的最优化上去求解出模型参数。

把样本xx代入模型的预测值:wTx+bw^Tx+b
预测值经sigmoid转换为此样本属于正类的可能性:
y=11+e(wTx+b)y=\frac{1}{1+e^{-(w^Tx+b)}}

几率,即此样本属于正类的可能性与属于负类的可能性的比值,也即此样本属于正类的相对可能性
y1y\frac{y}{1-y}

对数几率,就是模型预测值:
lny1y=wTx+bln\frac{y}{1-y}=w^Tx+b


正式动手推导,求解模型参数(w,b)

把sigmoid得到的可能性暂时就当作概率来用吧,思想上反正是一样的,那么

(1)p(y=1x)=11+e(wTx+b)=ewTx+b1+ewTx+bp(y=1|x)=\frac{1}{1+e^{-(w^Tx+b)}}=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}} \tag1

(2)p(y=0x)=111+e(wTx+b)=11+ewTx+bp(y=0|x)=1-\frac{1}{1+e^{-(w^Tx+b)}}=\frac{1}{1+e^{w^Tx+b}} \tag2

这俩从前往后推的条件概率是似然,(由后往前推的条件概率p(xy)p(x|y)后验)。

所以这里我们就用极大化似然的思想来构建能量函数,进行后续推导!!!

假设有一个训练样本集D={(x1,y1),(x2,y2),,(xm,ym)},yi{1,+1}.D=\left\{(\boldsymbol {x_1},y_1),(\boldsymbol {x_2},y_2),\ldots,(\boldsymbol {x_m},y_m)\right\},y_i\in \left\{-1,+1\right\}.

β=(w;b),x^=(x;1)\beta=(w;b),\hat{x}=(x;1),则wTx+b=βTx^w^Tx+b=\beta^T\hat{x}.

每个样本的似然
(3)p(yixi;w,b)=yip1(xi^;β)+(1yi)p0(xi^;β)p(y_i|x_i;w,b)=y_ip_1(\hat{x_i};\beta)+(1-y_i)p_0(\hat{x_i};\beta) \tag3
若此训练样本的标记类是1类(正类),yi=1y_i=1,则上式取第一项;反之,上式取第二项。

则m个样本的总的对数似然:
(4)l(w,b)=i=1mlnp(yixi;w,b)l(w,b)=\sum_{i=1}^mln\quad p(y_i|x_i;w,b) \tag4

这就是逻辑回归问题的目标函数,我们要极大化这个总对数似然。

综合(1)-(4)式,目标函数转化为
l(β)=i=1m[yiβTxi^ln(1+eβTxi^)]l(\beta)=\sum_{i=1}^m[ y_i \beta^T\hat{x_i}-ln(1+e^{\beta^T\hat{x_i}})]

最终问题转化为这个优化问题:
minl(β)=i=1m[yiβTxi^+ln(1+eβTxi^)]min \quad l(\beta)=\sum_{i=1}^m[ -y_i \beta^T\hat{x_i}+ln(1+e^{\beta^T\hat{x_i}})]
这是关于变量的高阶可导连续凸函数,根据凸优化,可用经典的数值优化方法,如梯度下降法(一阶)或牛顿法(二阶),都可求出使标量l(β)l(\beta)最小的向量β\beta^*
β=arg minβl(β)\beta^*=arg\,\min_{\beta}l(\beta)

这样就把线性模型求出来啦。而且不仅能回归,还能分类。注意分类是,一般是把sigmoid转换得到的可能性和0.5比较,大于0.5则为正类。


再废话一点

所以逻辑回归和最小二乘回归虽然都是线性模型,但求解模型所遵循的根本思想是不同的哦,前者是最大化所有训练样本的似然之和(似然来自于sigmoid),后者是最小化所有训练样本的预测值和真实值的残差的平方和