贝叶斯定理
根据贝叶斯理论,给定一组数据$\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.林轩田,机器学习技法. 国立台湾大学;