[读书笔记-西瓜书] 线性模型、Logistic回归

这是阅读周志华教授的《机器学习》中关于Logistic回归部分的笔记(在模识老师的安利下,最终还是买了西瓜书)。

Logistic回归音译为“逻辑回归”实在是太蠢了。

Logistic回归是西瓜书第三章“线性模型”中的内容,首先总结一下在logistic回归之前的知识点。

所谓线性回归就是定义一个线性函数$f(x)=w^Tx+b$,经过在一个特定数据集上学习后获得参数$w$和$b$的过程。通常需要搭配优化算法使用,例如最小二乘法、梯度下降法、牛顿法、拟牛顿法$^{[1,2]}$等,我将它们的特点总结如下:

最小二乘法:希望找到一条n维空间上的直线,使得所有数据点到这条线上的欧几里德距离最短(均方差误差最小),因为均方误差损失函数是凸的,所以最小二乘法直接对该损失函数关于$w$和$b$进行求导。

梯度下降法:这是一种迭代求解最优的算法,方法就是将参数沿着梯度负方向更新。这种算法经常陷入局部最优,而且速度未必快。有很多延伸的优化,比如随机梯度下降、带惯性的梯度下降等。

牛顿法:对拟合目标函数泰勒展开后求导后迭代,需要计算任意两个变量的二阶偏导的逆(海森矩阵的逆)所以计算复杂度高,但是收敛快。过程一图以蔽之:

img

拟牛顿法:把海森矩阵用个近似矩阵来代替,为了减少计算的复杂度,同时这个近似矩阵保证是可逆的(感谢HF同学的指正QAQ)。

但是通常的拟合任务并非是线性的,数据可能是符合某种非线性函数的变化(例如指数),因此有了对数线性回归(log-linear regression)。由于自变量的变化还是$w^Tx+b$,因此还属于线性回归模型。更一般的形式如下:
$$
g(y)=w^Tx+b
$$
$$
y=g^{-1}(w^Tx+b)
$$

此处$g(\cdot)$是一个非线性函数,这个函数需要“连续且充分光滑”。

分类任务和回归任务最大的区别是,分类需要一个hard-label,而回归通常是一个实数值的soft-label(hard-label和soft-label是我自己起的)。想用回归的方法进行分类,则需要有一个soft->hard的映射函数。

可以手动设阈值(阶跃,就是分段函数),但是不满足作为$g(\cdot)$需要的充分条件。于是有人构造了更加光滑的logistic function(对数几率函数):
$$
y=\dfrac{1}{1+e^{-z}}
$$
这是一种sigmoid函数:形似S的函数。我们想表示成$g(y)=w^Tx+b$的形式,可以推:
$$
y=\dfrac{1}{1+e^{-z}}
$$
$$
y+ye^{-z}=1
$$

$$
\dfrac{1-y}{y}=e^{-z}
$$

$$
\ln\dfrac{1-y}{y}=-z
$$

$$
\ln\dfrac{y}{1-y}=z
$$

其中$z=w^Tx+b$,$y$和$1-y$分别可看作是正反例的可能性(logits),二者的比值取对数称为“对数几率 ”。通常写作:
$$
\ln\dfrac{p(y=1|x)}{p(y=0|x)}=z
$$
有:
$$
p(y=1|x)=\dfrac{e^{z}}{1+e^z}
$$
由于$p(y=0|x)=1-p(y=1|x)$,则:
$$
p(y=0|x)=\dfrac{1}{1+e^z}
$$
使用极大似然估计$w$和$b$,构造损失函数$l(w,b)=\sum_{i=1}^{m}\ln p(y_i|x_i;w,b)$,最大化该函数,整理一下就能得到loss函数的形式,之后就能用上述的最优化算法求它的最优解了。

Reference

[1]. https://www.cnblogs.com/shixiangwan/p/7532830.html

[2]. https://www.cnblogs.com/xiaohuahua108/p/6011105.html