Fork me on GitHub

逻辑回归

[TOC]

逻辑回归

从贝叶斯分类准则谈起

二分类问题,假设正负样本类条件概率密度为 $$ p(x|y=1) = \frac{1}{(2\pi)^{d/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu_1)^T \Sigma^{-1}(x-u_1)), $$
$$ p(x|y=0) = \frac{1}{(2\pi)^{d/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu_0)^T \Sigma^{-1}(x-u_0)), $$即方差相同,均值不同高斯分布,根据贝叶斯判定准则,若 $ p(y=1|x) \geq p(y=0|x) $,我们就把样本分类为正样本,反之亦然。即

$$
\frac{p(y=1|x)}{p(y=0|x)} \geq 1
$$

分类为正样本。由贝叶斯公式得到
$$p(y=i|x) = \frac{p(x|y=i)p(y=i)}{p(x)}.$$
假设类先验概率相等(不相等也没关系,只是为了方便讨论)代入 $ \frac{p(y=1|x)}{p(y=0|x)} $,得到
$$
\frac{p(y=1|x)}{p(y=0|x)} = exp(\frac{1}{2}(2\Sigma^{-1}(\mu_1 - \mu_0)x + \mu_0^T\Sigma^{-1}\mu_0 - \mu_1^T\Sigma^{-1}\mu_1)
$$
$\text{sigmoid}$ 函数马上就要登场了,咱们令 $ w = \Sigma^{-1}(\mu_1 - \mu_0)$,$b = \frac{1}{2}\mu_0^T\Sigma^{-1}\mu_0 - \mu_1^T\Sigma^{-1}\mu_1 $, 于是得到
$$
\frac{p(y=1|x)}{1- p(y=1|x)} = \exp(w^Tx+b)
$$
解出来 $ p(y=1|x) = \frac{1}{1+\exp(-(w^Tx + b))}$, 这就是熟悉的sigmoid函数。

极大似然估计(MLE)求解参数

事实上,上面的推导过程是从生成式模型的角度来考虑,为了进行分类,若使用生成式的方法,我们需要求解的参数包括协方差矩阵,两个类概率均值,假设样本特征n维的话,需要估计的参数约等于$n^2$。但是正如我们最后推导出来的Sigmoid函数一样,实际分类的时候我们只需要估计出$w,b$,就可以求出后验概率,这时候需要估计的参数为$n$,所以逻辑回归是一种判别式模型,直接求出后验概率$ p(y=1|x)$,下面我们看如何求解逻辑回归的参数。

方便起见,统一一下概率的形式,
$$
p(y_i|x) = (\frac{1}{1+\exp(-(w^Tx_i + b))})^{y_i}(\frac{\exp(-(w^Tx_i + b))}{1+\exp(-(w^Tx_i + b))})^{1-y_i}
$$
极大对数似然估计可以得到:
$$
\max_{w,b} \sum_{i=1}^m y_i\log\frac{1}{1+\exp(-(w^Tx_i + b))} + (1-y_i)\log \frac{\exp(-(w^Tx_i + b))}{1+\exp(-(w^Tx_i + b))}
$$
化简一下得到:
$$
\max_{w,b} \sum_{i=1}^m y_i (w^Tx_i + b) - \log (1+\exp(w^Tx_i + b))
$$
等价于
$$
\min_{w,b} \sum_{i=1}^m -y_i (w^Tx_i + b) + \log (1+\exp(w^Tx_i + b))
$$
此问题是一个无约束的凸优化问题,可使用一些基于梯度的优化方法进行求解。

逻辑回归的 loss function

从上面通过极大似然求解参数$w,b$的推导过程,我们得到了最终的目标函数,所以逻辑回归的 loss function 为:
$$-\ y\log\frac{1}{1+\exp(-(w^Tx + b))} - (1-y)\log \frac{\exp(-(w^Tx + b))}{1+\exp(-(w^Tx + b))}, $$
或者
$$-y (w^Tx + b) + \log (1+\exp(w^Tx + b)。$$
结果很显然,没太多需要解释的,但是在有些地方我们却看到逻辑回归的 loss function 为:
$$\log \big(1+\exp(-y(w^Tx + b)\big),$$

比如说,在周志华《机器学习》支持向量机那一章,对比hinge losslog loss以及0-1 loss

通过对比,发现这一写法与上面的两个怎么都不等价,比如直接让$y=0$就会发现不同。那为什么在李航的《统计学习方法》和周志华《机器学习》讲解逻辑回归的时候,推导出的是上面两个loss function, 而有些地方却出现下面的loss function,后来才发现,在推导逻辑回归的时候我们一般习惯于将样本的正负标签$y$表示为$1,0$,而下面那个loss function 将正负标签表示为了 $1,-1$,分别用$1,0$代入上面两式,$1,-1$代入下面两式,发现他们是相同的。(尴尬)

References

[1] 周志华,机器学习
[2] PRML