逻辑斯蒂回归的前世

贝叶斯定理

根据贝叶斯理论,给定一组数据$\chi = (x_1,x_2,\ldots,x_N)$,以及包括的类标签集合${c_1,c_2,\ldots,c_K}$,则一个样本$x$所属的类别可以建模为后验概率:

其中$P(c_j)$是不需要提供任何前提信息时类别$c_j$出现的先验概率,$P(x|c_j)$表示给定类别$c_j$的前提下,样本$x$出现的概率,称为似然概率,分母部分$P(x) = \sum_{i=1}^K P(x|c_i)P(c_i)$表示样本$x$的概率分布,对于所有的类别$c_j$具有相同的值。

贝叶斯理论认为样本$x$应该属于具有最大后验概率的类别,考虑到分母部分对于具体的样本是常数,所以$x$的类别$c_x$必须满足:

生成式模型使用给定的样本集来估计条件密度函数$P(x|c)$和先验概率$P(c)$,相当于去直接学习原始的联合分布$P(x, c)$,适合于在线的增量学习。这类模型包括朴素贝叶斯、线性判别分析、隐马尔可夫模型等。
判别式模型不直接学习联合分布$P(x,c)$,它更加关注不同类样本之间的差异性,一般直接学习决策函数$f(x)$或者条件概率分布$P(c|x)$。包括逻辑斯蒂回归、条件随机场等。

线性判别分析

对于二分类问题$c_j,j=0,1$,式子(1)简化为:
$$ \begin{align} P(c_1 | x) &= {P(x | c_1) P(c_1) \over {P(x | c_1) P(c_1)+P(x | c_0) P(c_0)}} \\ & = {1 \over {1 + { P(x | c_0) P(c_0) \over P(x | c_1) P(c_1)}}} \end{align} \tag{3} $$
令$a = log { P(x | c_0) P(c_0) \over P(x | c_1) P(c_1)} = log {P(c_0 | x) \over P(c_1 | x) }$,称为事件:”给定样本$x$,该样本属于$c_0$类”的对数几率(log odds),则表达式(3)可以改写为:
$$ P(c_1 | x) = {1 \over {1 + exp(a)}} \tag{4} $$
下面计算$a$的表达式。线性判别分析对此做了两个假设:条件概率分布$P(x|c_i),i=0,1$服从高斯分布且不同类的条件分布具有相同的协方差矩阵,即:
$$ P(x|c_i) = {1 \over {(2 \pi)^{n/2} |\Sigma|^{1/2} } } exp\{ -{1 \over 2} (x-\mu_i)^T \Sigma^{-1} (x-\mu_i) \} \tag{5} $$
其中$\mu_i$表示类别$c_i$的均值向量,$\Sigma$表示共同的协方差矩阵。将(5)带回到$a$的定义中得到:
$$ \begin{align} a &= logP(x|c_0) - logP(x|c_1) + logP(c_0) - logP(c_1) \\ & = -{1 \over 2} (x-\mu_0)^T \Sigma^{-1} (x-\mu_0) + {1 \over 2} (x-\mu_1)^T \Sigma^{-1} (x-\mu_1)+ logP(c_0) - logP(c_1) \\ & = (\mu_0 - \mu_1)^T \Sigma^{-1} x - {1 \over 2} \mu_0^T \Sigma^{-1} \mu_0 +{1 \over 2} \mu_1^T \Sigma^{-1} \mu_1 + logP(c_0) - logP(c_1) \\ & = w^T x + b \end{align} \tag{6} $$
其中

将式子(6)代入到式子(4)中就可以得到逻辑斯蒂回归模型的表达式形式:
$$ P(c_1 | x) = {1 \over {1 + exp(w^T x + b)}} \tag{8} $$
求解(7)中的$w,b$有两种方法:

生成式:通过最大似然估计求解$\mu_0,\mu_1,\Sigma,P(c_i)$的值,从而得到$w,b$的估计值;
判别式:通过极大似然估计法直接估计$w,b$的值,这正是逻辑斯蒂回归采取的方法。

生成式(LDA)

通过极大似然估计得到的$\hat \mu_i,\hat \Sigma,\hat P(c_i)$分别为[1]:

其中$S_i = {1 \over N_i} \sum_{j \in c_i} (x_j - \hat \mu_i)(x_j - \hat \mu_i)^T, i=0,1$,$N_i$表示属于类别$c_i$的样本数目,$N$表示所有样本的数目。
从(9)可以看到,极大似然估计法得到的$\hat \mu_i$估计值是计算相应类下样本特征的平均值,而后面的$\hat \Sigma$需要用到$\hat \mu_i$值来计算。因为平均值对于样本异常值的鲁棒性很差,因此导致学习到的模型同样不具有对于异常样本的鲁棒性,使得模型效果较差。

判别式(Logistic)

二类别

逻辑斯蒂模型绕过原始分布参数的学习,直接学习参数$w,b$,对于一个样本$x$,我们希望$P(c_x | x)$尽可能接近1,也就是说最优的$w,b$应该使得如下的似然函数最大:

其中$\pi(x_i) = P(c_1 | x_i),y_i = (1,\text{if} \; c_1 = c_{x_i} ; \text{else} \;0)$,对(10)取对数 ,并将(8)带入整理得交叉熵:

根据极大似然估计法,需要$L(w,b)$最大。分别计算它的梯度为:
$$ \begin{cases} {\partial L(w,b) \over \partial w} = \sum_{i=1}^N x_i [\pi(x_i) - y_i] = \Delta w \\ {\partial L(w,b) \over \partial b} = \sum_{i=1}^N [\pi(x_i) - y_i] = \Delta b \end{cases} \tag{12} $$
根据梯度下降法原理,参数$w,b$的更新方程为:

除了梯度下降法,还可以用牛顿法进行优化更新。另外,从(12)中$\Delta w$的表达式可以看到,如果$x_i$是异常样本,则它同样会影响到最佳$\hat w$的值。为了减小异常样本对模型学习过程的影响,一种办法是对分类超平面的法向量$w$引入$L_1,L_2$惩罚项.
逻辑斯蒂回归引入核函数可以帮助其拟合复杂的分类界面,不过因为不像SVM中只保留少数支撑向量,引入核函数的逻辑斯蒂回归训练和预测时计算量比较大[3].

多类别

二项逻辑斯蒂回归模型可以推广至多分类问题。根据式子(4)中$a$的定义,将其推广至$K>2$的情况[2]:

则有

根据概率的规范性定义$\sum_{i=1}^K P(c_i | x) = 1$,结合表达式(15),可以分别求出:
$$ \begin{align} & P(c_K | x) = {1 \over {1 + \sum_{i=1}^{K-1} exp(w_i^T x + b_i)}} \\ & P(c_j | x) = {exp(w_j^T x + b_j) \over {1 + \sum_{i=1}^{K-1} exp(w_i^T x + b_i)}} , j=1,2,\ldots,K-1 \end{align} \tag{16} $$
类似式子(10),定义模型(16)对应的似然损失函数:
$$ \mathop{\prod}_{j=1}^K \mathop{\prod}_{i=1}^{N_{c_j}} P(c_j | x_i) \tag{17} $$
其中$N_{c_j}$表示属于类$c_j$的样本数。对(17)取对数,并代入(16),得到K类问题的交叉熵损失函数:
$$\begin{align} L(w,b) &= \sum_{j=1}^{K-1} \sum_{i=1}^{N_{c_j}} log{ {exp(w_j^T x_i + b_j) \over {1 + \sum_{k=1}^{K-1} exp(w_k^T x_i + b_k)}} } + log{ {1 \over {1 + \sum_{k=1}^{K-1} exp(w_k^T x_i + b_k)}}} \\ & = \sum_{j=1}^{K-1} \sum_{i=1}^{N_{c_j}} (w_j^T x_i + b_j) - N \text{log} ({1 + \sum_{k=1}^{K-1} exp(w_k^T x_i + b_k)}) \tag{18} \end{align} $$
需要对损失函数取最大值。损失函数(18)分别对$w_l,b_l,l=1,2,\ldots,K-1 $求偏导得到全部$N$个样本的梯度之和:
$$ \begin{cases} & { \partial L(w,b) \over \partial w_l } = \mathop{ \sum}_{i=1}^{N_{c_j} } x_i - N \cdot x_i \cdot P(c_l | x_i) = \Delta w_l \\ & { \partial L(w,b) \over \partial b_l } = N_{c_j} - N \cdot P(c_l | x_i) = \Delta b_l \end{cases} \tag{19} $$
然后按照下面的表达式进行参数更新:

计算出最优的$\hat w_l, \hat b_l,( l = 1,2,\ldots,K-1)$后,通过$P(c_i | x) = P(c_j | x)$确定类别$c_i,c_j, ( i \ne j \ne K)$之间的分隔超平面方程:
$$ {( \hat w_j^T x + \hat b_j) \over {1 + \sum_{k=1}^{K-1} exp( \hat w_k^T x + \hat b_k)}} $$
等价于:
$$ \hat w_i^T x + \hat b_i = \hat w_j^T x + \hat b_j $$
即分隔超平面方程为: $ (\hat w_i^T - \hat w_j^T) x + \hat b_i - \hat b_j =0 $

参考文献

1.极大似然估计法估计原始分布的参数值;
2.Sergios Theodoridis. Pattern Recognition, fourth edition. Elsevier;
3.林轩田,机器学习技法. 国立台湾大学;