0%

Logistic模型

Logistic分布

设 $X$ 为连续随机变量,$X$ 服从 $logistic$ 分布指的是 $X$ 具有下列分布函数:

$$ F(x) = P(X\le x) = \frac {1} {1+e^{-(x-\mu)/\gamma}}$$

其中 $\mu$ 为位置参数,$\gamma \gt 0$ 是形状参数。

Logistic回归模型

二项回归模型

对于二项 $logistic$ 回归模型,满足如下的条件概率分布

模型理解

从概率论的角度来讲,一个事件的几率指的是该事件发生概率与不发生概率的比值,如果事件发生的概率是 $p$,那么事件的几率就是 $\frac {p} {1-p}$,该事件的对数几率($logit$ 函数)是:

$$logit(p) =\log \frac {p} {1-p}$$

对于二项 $logistic$ 回归而言,其事件的对数几率为:

$$\log \frac {P(y=1|w,x)} {P(y=0|w,x)} $$

我们用 $g_1(x)$ 表示事件发生的概率,用 $g_0(x)$ 表示事件不发生的概率,于是有:

所以可以得到线性决策面为:

这就是说,输出 $y=1$ 的对数几率是输入 $x$ 的线性函数,或者说,输出 $y=1$ 的对数几率是由输入 $x$ 的线性函数表示的模型,这就是 $logistic$ 回归模型,我们可以把 $logistic$ 看做是线性模型的一种概率解释。

参数求解

为了更清晰地表达求解过程,我们定义:

$$ P(y=1|x) = \frac {exp(w·x)} {1+exp(w·x)}
\\ P(y=0|x) = \frac 1 {1+exp(w·x)} $$

模型的数学形式确定后,剩下就是如何去求解模型中的参数。统计学中常用的一种方法是最大似然估计,即找到一组参数,使得在这组参数下,我们的数据的似然度最大。在 $logistic$ 回归模型中,似然度可表示为:

$$ L(w) = P(D|w) = \prod_i P(y_i|x_i;w) = \prod_i g(w · x_i)^{y_i} (1-g(w · x_i))^{1-y_i} $$

取对数后得到:

$$ \begin{align} l(w) & = \sum_i y_i\log g(w·x_i) + (1-y_i)\log{(1-g(w·x_i))}\nonumber \\
& = \sum_i y_i \log \frac {g(w·x_i)} {1-g(w·x_i)} + y_i \log{(1-g(w·x_i))}\nonumber \\
& = \sum_i y_i \log (w·x_i) - y_i \log{(1+exp(w·x))}\nonumber
\end{align}$$

求 $l(w)$ 的极大值,就可以得到最优的参数估计值。

求得最优参数后:

$$ P(y=1|x) = \frac {exp(\hat w·x+b)} {1+exp(\hat w·x+b)}
\\ P(y=0|x) = \frac 1 {1+exp(\hat w·x+b)} $$

另一方面,在机器学习领域,我们更经常遇到的是损失函数的概念,其衡量的是模型预测错误的程度,其中 $log$ 损失在单个数据点上的定义为:

$$ -y\log{p(y|x)}-(1-y)\log(1-p(y|x)) $$

如果取整个数据集上的平均 $log$ 损失,我们可以得到:

$$ J(w) = -\frac{1}{N} l(w) $$

所以在 $logistic$ 回归模型中,我们最大化似然函数和最小化 $log$ 损失函数实际上是等价的,都可以使用梯度下降来进行求解:

  • 选择下降方向,即梯度方向,$\nabla J(w)$
  • 选择步长,更新参数 $w_i=w_{i−1}−\eta\nabla J(w_{i−1})$
  • 重复以上两步直到满足终止条件

多项回归模型

对多分类问题,$softmax$ 回归是逻辑回归在多分类的直接推广,具体形式为:
$$ P(y=i|x, \theta) = \frac{e^{\theta_i^T x}}{\sum_j^K{e^{\theta_j^T x}}} $$

决策函数为:
$$ y^* = \arg\max_i P(y=i|x,\theta) $$

判别模型和生成模型

$logistic$ 回归是一种判别模型,表现为直接对条件概率 $P(y|x)$ 建模,而不关心背后的数据分布 $P(x,y)$ 。而高斯贝叶斯模型是一种生成模型,先对数据的联合分布建模,再通过贝叶斯公式来计算样本属于各个类别的后验概率,即:

$$p(y|x) = \frac{P(x|y)P(y)}{\sum{P(x|y)P(y)}}$$

通常假设 $P(y|x)$ 是高斯分布, $P(y)$ 是多项式分布,相应的参数都可以通过最大似然估计得到。如果我们考虑二分类问题,通过简单的变化可以得到:

$$\log\frac{P(y=1|x)}{P(y=0|x)} = \log\frac{P(x|y=1)}{P(x|y=0)} + \log\frac{P(y=1)}{P(y=0)} \ = -\frac{(x-\mu_1)^2}{2\sigma_1^2} + \frac{(x-\mu_0)^2}{2\sigma_0^2}\ + \theta_0$$

如果 $\sigma_1 = \sigma_0$,二次项会抵消,我们得到一个简单的线性关系:

$$\log\frac{P(y=1|x)}{P(y=0|x)} = \theta^T x$$

由上式进一步可以得到:

$$P(y=1|x) = \frac{e^{\theta^T x}}{1+e^{\theta^T x}} = \frac{1}{1+e^{-\theta^T x}}$$

可以看到,这个概率和 $logistic$ 回归中的形式是一样的,这种情况下 $GNB$ 和 $LR$ 会学习到同一个模型。

典型的生成式模型:朴素贝叶斯、隐马尔科夫模型、混合高斯模型
典型的判别式模型:感知机、决策树、支持向量机、$logistic$ 回归、条件随机场、神经网络、$KNN$

参考文献:
[1] 周晓飞,《统计机器学习》,中国科学院大学2017年秋季研究生课程
[2] Logistic Regression 模型简介-美团技术团队