监督学习——分类(基于判别式的方法)(参数方法——判别式参数估计)

介绍
第一部分 参数方法——类密度模型参数估计
第二部分 监督学习——分类(基于似然的方法)
第三部分 监督学习——分类(基于判别式的方法)(参数方法——判别式参数估计)
第四部分 监督学习——回归
第五部分 监督学习——关联规则
第六部分 维度规约(特征的提取和组合)
第七部分 半参数方法
第八部分 非监督学习——聚类
第九部分 非参数方法——密度估计
第十部分 非参数方法——决策树实现的判别式
第十一部分 多层感知器——非参数估计器
第十二部分 局部模型
第十三部分 支持向量机与核机器
第十四部分 隐马尔科夫模型
第十五部分 参数的贝叶斯估计
第十六部分 集成学习——组合多学习器
第十七部分 增强学习
第十八部分 机器学习实验
第十九部分 特征工程与数据预处理

基于判别式的方法

本节介绍不对样本密度进行估计,而估计判别式的思想。并采用参数的方法来实现。其他非参数的方法,在其他章节介绍。

在基于似然的方法中,通过参数、半参数、非参数方法来估计类似然p(\mathbf{x}|C_i)。然后使用后验密度定义判别式函数,如g_i(\mathbf{x})=\log \hat P(C_i|\mathbf{x}),并选择g_i(\mathbf{x})最大的类。
而在基于判别式的方法中,不去估计类密度,而直接估计判别式,不论是线性判别式,或高次判别式

(在基于似然的方法中,假定p(\mathbf{x}|C_i)\sim N_d(\boldsymbol{\mu_i,\boldsymbol{\Sigma}_i}),判别式函数g_i(\mathbf{x})=\log \hat P(C_i|\mathbf{x})等价于\log p(\mathbf{x}|C_i+\log P(C_i))是二次判别式。若假定所有类共享协方差矩阵,则二次项在每个类的判别式中一致,可约去。进而g_i(\mathbf{x})为于线性判别式。参见《监督学习——分类(基于似然的方法)
》)

在基于线性判别式的方法中,直接假定一个类的实例与其他类的实例是线性可分的。这种方法直接由给定标记的样本估计线性判别式的参数。不再对密度做任何假设。

为判别式定义一个模型g_i(\mathbf{x}|\Phi_i),显式地用参数\Phi_i的集合参数化。而与基于似然的方法在定义似然密度时具有隐式参数。这时不同的归纳偏倚:基于判别式的方法对边界形式进行假设,而不是对类密度的形式进行假设。

自然地基于判别式和基于似然的方法在学习的过程中,优化的参数也是不同的。基于判别式的方法优化模型参数\Phi_i来最大化在给定标号的训练集上的分类准确率。而基于似然的方法,则为每个类搜索最大化样本似然的参数。

实际上,当类边界判别式可以用简单函数近似时,估计类密度往往比估计类边界判别式更困难。这时使用基于似然的方法,为解决较简单的问题而解决困难的问题是没有意义的。

这里关注判别式是 x的线性函数的简单情况:
g_i(\mathbf{x}|\boldsymbol{\omega}_i,\omega_{i0})=\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}=\sum_{j=1}^d\omega_{ij}x_j+\omega_{i0}
线性判别式经常使用,主要由于它的简单性。它的空间和时间复杂度都是O(d)。在许多应用中,线性判别式相当准确。例如,当类是高斯的且具有相同的协方差矩阵时,最佳判别式就是线性的。

当然当线性判别式不够灵活时,可以提高复杂度,使用二次判别式函数
g_i(\mathbf{x}|W_i,\boldsymbol{\omega}_i,\omega_{i0})=\mathbf{x}^TW_i\mathbf{x}+\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}
这是复杂度变为O(d^2)。同时遇到偏移和方差的冲突,因为它需要更大的训练集,并在小样本上容易过拟合。
一种等价的方法是通过增加高阶项对输入进行预处理。例如,对于两个输入x_1x_2,,可以定义新变量\mathbf{z}=[z_1=x_1,z_2=x_2,z_3=x_1x_2,z_4=x_1^2,z_5=x_2^2]作为输入。这样,定义在五维空间z 上的线性函数对应于 二维空间x 上的二次非线性行函数。也就是说,通过定义到新空间上的非线性变换,在新空间上的判别式函数可以是线性的。
判别式可以表示为g_i(\mathbf{x})=\sum_{j=1}^k\omega_j\phi_{ij}(\mathbf{x}),其中\phi_{ij}(\mathbf{x})基函数。高阶项仅是一种可能的基函数,除了二次函数,还包括:

  • \sin(x_1)
  • \exp(-(x_1-m)^2/c)
  • \exp(-\|\mathbf{x}-\mathbf{m}\|^2/c)
  • \log(x_2)
  • 一些分段函数

这种将非线性函数表示成非线性基函数的线性和的思想,在多层感知器,径向基函数等方法中有更多的应用。


线性判别式的几何意义

1.两类问题
对于有最简单的两类问题,使用一个判别式函数就足够:
\begin{align}{} g(\mathbf{x})&=g_1(\mathbf{x})-g_2(\mathbf{x}) \\ &=(\boldsymbol{\omega}_1^T\mathbf{x}+\omega_{10})-(\boldsymbol{\omega}_2^T\mathbf{x}+\omega_{20}) \\ &=(\boldsymbol{\omega}_1-\boldsymbol{\omega}_2)^T\mathbf{x}+(\omega_{10}-\omega_{20})\\ &=\boldsymbol{\omega}^T\mathbf{x}+\omega_0 \end{align}
如果g(\mathbf{x})>0,则选择C_1,否则选择C_2
这定义了一个超平面,其中\boldsymbol{\omega}权重向量\omega_0阈值。超平面将输入空间分割成两部分。
取决策面上的两个点x_1x_2,则有
\boldsymbol{\omega}^T\mathbf{x}_1+\omega_0=\boldsymbol{\omega}^T\mathbf{x}_2+\omega_0
\boldsymbol{\omega}^T(\mathbf{x}_1-\mathbf{x}_2)=0
可以看到,\boldsymbol{\omega}是超平面上任意向量的法线。将\mathbf{x}改写为:
\mathbf{x=\mathbf{x}_p+r\frac{\boldsymbol{\omega}}{\|\boldsymbol{\omega}\|}}
其中,\mathbf{x}_p\mathbf{x}在超平面上的投影,r\mathbf{x}到超平面的距离,\mathbf{x}在超平面正侧,r为正,否则为负。当\mathbf{x}为原点0时,g(\mathbf{x})=\omega_0\omega_0>0则原点在超平面正侧,\omega_0=0则原点在超平面上。
计算g(\mathbf{x}),注意到g(\mathbf{x}_p),有
\begin{align} g(\mathbf{x})&=\boldsymbol{\omega}^T(\mathbf{x}_p+r\frac{\boldsymbol{\omega}}{\|\boldsymbol{\omega}\|})+\omega_0\\ &=\boldsymbol{\omega}^T\mathbf{x}_p+\omega_0+r\|\boldsymbol{\omega}\| \\ &=r\|\boldsymbol{\omega}\| \\ \end{align}
得到r=\frac {g(\mathbf{x})}{\|\boldsymbol{\omega}\|}
超平面到原点的距离为r_0=\frac {\omega_0}{\|\boldsymbol{\omega}\|}
由此可以看出,\omega_0决定了超平面的位置,\boldsymbol{\omega}决定了超平面的方向。

2.多类问题
当存在K>2个类时,有K个判别式函数。当它们都是线性的时,有
g_i(\mathbf{x}|\boldsymbol{\omega}_i,\omega_{i0})=\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}

假设所有的类都是线性可分的,每个类都可以通过一个线性判别式与其他类区分开。那么计算得出参数\boldsymbol{\omega}_i\omega_{i0},使得对于训练集中的所有实例,有
g_i(\mathbf{x}|\boldsymbol{\omega}_i,\omega_{i0}) = \begin{equation} \left\{ \begin{array}{} >0 , & if\ \mathbf{x} \in C_i\\ \leq0, & else \end{array} \right. \end{equation}
理想情况下,给定\mathbf{x}应当只有一个g_i(\mathbf{x})大于0,其他都小于0。但实际上并不会总是这样,所有判别式的正侧可能重叠,有可能存在g_i(\mathbf{x})所有都小于0的情况。这种情况可以看做拒绝判断,但通常通过将 x 指派到g_i(\mathbf{x})最大的类。

如果类不是线性可分的,可将问题划分成一组线性问题,使用K(K-1)/2个线性判别式g_{ij}(\mathbf{x}),每对类的识别通过一个判别式来完成:
g_{ij}(\mathbf{x})=\boldsymbol{\omega}_{ij}^T\mathbf{x}+\omega_{ij0}
训练参数,使得
g_{ij}(\mathbf{x})=\begin{equation} \left\{ \begin{array}{} >0, & if\ \mathbf{x} \in C_i \\ \leq0, & if\ \mathbf{x} \in C_j,\ i\neq j \\ undefined,& else \end{array} \right. \end{equation}
在检验时,如果对任意的j\neq i,都有g_{ij}(\mathbf{x})>0,则选择C_i
当然,很可能对于任意的给定i,都都无法满足对任意的j\neq ig_{ij}(\mathbf{x})>0。这时可以用和式放宽合取,选择最大化g_i(\mathbf{x})=\sum_{j\neq i}g_{ij}(\mathbf{x})的类。
很多情况下,多类情况不是线性可分的,但这些类可能是逐对线性可分的。采用逐对分离的思路,将非线性分离的复杂问题分解成一系列简单的问题。

下面开始介绍如何计算g_i(\mathbf{x})


逻辑斯蒂函数(Sigmoid函数)

参数方法密度估计中的线性判别式

在参数方法基于似然的运用中,通过取最大化 参数方法给出的判别式 的类作为输出。
如果类密度p(\mathbf{x}|C_i)是高斯的,不共享协方差矩,判别式是二次判别式。
共享协方差矩阵时,则判别式函数是线性的g_i(\mathbf{x})=\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}
其中参数可以通过训练数据集解析地估计
\begin{align} \boldsymbol{\omega}_i&=\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_i\\ \omega_{i0}&=-\frac12 \boldsymbol{\mu}_i^T\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_i+\log P(C_i) \\ \end{align}

考虑两类情况时,定义y\equiv P(C_1|\mathbf{x})P(C_2|\mathbf{x})=1-y。则在参数方法分类时,选择C_1,如果y>0.5(等价地\frac{y}{1-y}>1\log\frac{y}{1-y}>0)。
\log\frac{y}{1-y}称为 y 的对数几率。在两个正态类共享协方差矩阵时,对数几率是线性的
\begin{align} logit(P(C_1|\mathbf{x}))&=\log\frac{P(C_1|\mathbf{x})}{1-P(C_1|\mathbf{x})}=\log\frac{P(C_1|\mathbf{x})}{P(C_2|\mathbf{x})} \\ =&\log\frac{p(\mathbf{x}|C_1)}{p(\mathbf{x}|C_2)}+\log\frac{P(C_1)}{P(C_2)}\\ =&\log\frac{(2\pi)^{-d/2}|\boldsymbol{\Sigma}|^{-1/2}\exp[-(1/2)(\mathbf{x}-\boldsymbol{\mu}_1)^T\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu}_1)]}{(2\pi)^{-d/2}|\boldsymbol{\Sigma}|^{-1/2}\exp[-(1/2)(\mathbf{x}-\boldsymbol{\mu}_2)^T\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu}_2)]}+\log\frac{P(C_1)}{P(C_2)}\\ =&-\frac12(\mathbf{x}^T\boldsymbol{\Sigma}^{-1}\mathbf{x}-2\mathbf{x}^T\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_1+\boldsymbol{\mu}_1^T\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_1)\\ &+\frac12(\mathbf{x}^T\boldsymbol{\Sigma}^{-1}\mathbf{x}-2\mathbf{x}^T\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_2+\boldsymbol{\mu}_2^T\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_2)+\log\frac{P(C_1)}{P(C_2)}\\ =&\mathbf{x}^T\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)-\frac12(\boldsymbol{\mu}_1+\boldsymbol{\mu}_2)^T\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)+\log\frac{P(C_1)}{P(C_2)}\\ =&\boldsymbol{\omega}^T\mathbf{x}+\omega_0 \end{align}

由对数几率求得P(C_i|\mathbf{x}),则称为逻辑斯蒂函数,又称Sigmoid函数
P(C_1|\mathbf{x})=sigmoid(\boldsymbol{\omega}^T\mathbf{x}+\omega_0)=\frac{1}{1+\exp[-(\boldsymbol{\omega}^T\mathbf{x}+\omega_o)]}
有的地方会称这种假设下参数方法的对数几率为线性判别分析LDA(与维度规约的LDA方法有所不同,维度规约中的费希尔线性判别式更侧重于LDA的数据降维的能力),不共享协方差的二次判别式对应地则称二次判别分析QDA

《An Introduction to Statistical Learning》线性判别分析章节中,有对LDA/QDA的介绍。通过显式地假设各类服从多元高斯分布,并基于样本进行参数估计。

通过训练数据估计均值\mathbf{m}_1\mathbf{m}_2和共享协方差矩阵\mathbf{S}。计算g(\mathbf{x})=logit(P(C_1|\mathbf{x}))=\boldsymbol{\omega}^T\mathbf{x}+\omega_0,当g(\mathbf{x})>0则选择C_1;等价地,计算有y=sigmoid(\boldsymbol{\omega}^T\mathbf{x}+\omega_0)>0.5则选择C_1

Sigmoid函数就是从判别式的值\log\frac{P(C_1|\mathbf{x})}{1-P(C_1|\mathbf{x})}=\boldsymbol{\omega}^T\mathbf{x}+\omega_0得到的后验概率P(C_1|\mathbf{x})


作为非密度估计方法使用逻辑斯蒂函数——逻辑斯蒂判别式

在逻辑斯蒂判别式中,不对类密度p(\mathbf{x}|C_i),而是它们的比例建模。并基于对比例的估计,直接得到后验概率,不显式地估计似然p(\mathbf{x}|C_i)和先验P(C_i)

1.两类问题

先考虑两类问题,假定对数似然比是线性的:
\log \frac{p(\mathbf{x}|C_1)}{p(\mathbf{x}|C_2)}=\boldsymbol{\omega}^T\mathbf{x}+\omega_0^o
使用贝叶斯规则,有
logit(P(C_1|\mathbf{x}))=\log \frac{P(C_1|\mathbf{x})}{1-P(C_1|\mathbf{x})}=\log \frac{p(\mathbf{x}|C_1)}{p(\mathbf{x}|C_2)}+\log \frac{P(C_1)}{P(C_2)}=\boldsymbol{\omega}^T\mathbf{x}+\omega_0
其中\omega_0=\omega_0^o+\log \frac{P(C_1)}{P(C_2)}
Sigmoid函数y=\hat P(C_1|\mathbf{x})=\frac1{1+\exp[-(\boldsymbol{\omega}^T\mathbf{x}+\omega_0)]} \tag{a}
作为后验P(C_1|\mathbf{x})的估计。下面的问题就是如何学习\boldsymbol{\omega}\omega_0

-学习参数
给定两类样本X=\{ \mathbf{x}^t,r^t \},其中如果\mathbf{x}\in C_1r^t=1,如果\mathbf{x}\in C_2r^t=0假定给定\mathbf{x}^tr^t是伯努利分布,具有上述Sigmoid函数(a)的概率y^t\equiv P(C_1|\mathbf{x}^t)r^t|\mathbf{x}^t\sim Bernoulli(y^t)

由此可以看出,基于似然的方法和基于判别式的方法的区别
基于似然的方法,对p(\mathbf{x}|C_i)建模;
基于判别式的方法,对r|\mathbf{x}建模;

基于伯努利分布的假设,样本似然为l(\boldsymbol{\omega},\omega_0|X)=\prod_t (y^t)^{r^t}(1-y^t)^{1-r^t}
最大化样本似然等价于最小化负的对数似然(这里就是交叉熵
E(\boldsymbol{\omega},\omega_0|X)=-\log l=-\sum_t\left[ r^t\log y^t+(1-r^t)\log(1-y^t)\right] \tag{b}
由于Sigmoid函数y^t是非线性的,不能直接求解解析解。这就需要通过迭代方法进行计算。

- 迭代优化
在基于似然的方法中,估计的参数是p(\mathbf{x}|C_i)P(C_i)的充分统计量,通过如最大似然的方法来估计这些参数。
而在基于判别式的方法中,估计的参数是判别式中的参数,通过最小化训练集上的分类误差,来使它们最优。在最小化分类误差时,寻找\boldsymbol{\omega}^*=\arg\min_{\omega}E(\boldsymbol{\omega}|X),多数情况下都是没有解析解的,这需要依赖迭代优化方法进行计算。

对于这种无法解析求解的最常用的方法就是梯度下降。当E(\omega)是变量的可微函数时,由偏导数组成的梯度向量\nabla_{\omega}E=[\frac{\partial E}{\partial \omega_1},\frac{\partial E}{\partial \omega_2},\dots,\frac{\partial E}{\partial \omega_d}]^T,和梯度下降的过程,来最小化E。从随机向量\boldsymbol{\omega}开始,每一步按梯度的相反方向更新\boldsymbol{\omega}
\triangle\omega_i=-\eta\frac{\partial E}{\partial \omega_i},\forall \ i
\omega_i=\omega_i+\triangle\omega_i
其中\eta称作步长学习因子

学习因子决定了在梯度方向上移动多少。使用较好的\eta值很关键,如果太小,则收敛可能太慢。如果太大可能导致摆动无法收敛甚至发散。常在训练开始时使用相对较大的\eta,加快收敛速度,随后逐渐减小,避免摇摆。(《非参数方法——多层感知器
》 一节对训练优化中也介绍了这种思想)

使用梯度下降的方法最小化上面的交叉熵(b)。
Sigmoid函数y=\frac1{1+\exp (-a)}的导数是\frac{\mathrm{d}y}{\mathrm{d}a}=y(1-y)。得到更新方程:
\triangle \omega_j=-\eta\frac{\partial E}{\partial \omega_j}=\eta\sum_t(\frac{r^t}{y^t}-\frac{1-r^t}{1-y^t})y^t(1-y^t)x_j^t=\eta\sum_t(r^t-y^t)x_j^t, \ j=1,\dots,d
\triangle \omega_0=-\eta \frac{\partial E}{\partial \omega_0}=\eta\sum_t(r^t-y^t)

上面的更新方式是离线的,将所有训练实例的误差一起计算。在线的方法也可以用于逻辑斯蒂判别式。
单个实例的误差为E^t(\boldsymbol{\omega},\omega_o|\mathbf{x}^t,r^t)=-r^t\log y^t+(1-r^t\log (1-y^t))y^t=sigmoid(\boldsymbol{\omega}^T\mathbf{x}^t+\omega_0)
更新规则为\triangle\omega_j^t=\eta(r^t-y^t)x_j^t

最好用接近0的随机值初始化\omega_j。这样做的理由是,如果\omega_j的值很大,则加权和可能也很大,从而Sigmoid函数很可能饱和,导数几乎为0,这会使梯度下降的效率极大降低,甚至导致不会更新权重。

训练完成后的检验阶段,给定\mathbf{x}^t,计算后验估计\hat P(C_1|\mathbf{x})=y^t=sigmoid(\boldsymbol{\omega}^T\mathbf{x}^t+\omega_0),如果y^t>0.5则选择C_1。这意味着,为了最小化误差,不需要一直学习直到所有的y^t都为正确分类的0或1,而只需要学习直到y^t在其决策边界正确的一侧(\boldsymbol{\omega}^T\mathbf{x}^t+\omega_0大于或小于0,或y^t大于或小于0.5)。这种在达到零训练误差之前提前停止的做法是一种正则化形式。

2.多类问题

推广到K>2个类的情况。取其中一个类C_k,作为参考类。并像两类问题一样,假定对数似然比为线性的
\log\frac{p(\mathbf{x}|C_i)}{p(\mathbf{x}|C_K)}=\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}^o \tag{2.a}
于是有\log\frac{P(C_i|\mathbf{x})}{P(C_K|\mathbf{x})}=\log\frac{p(\mathbf{x}|C_i)}{p(\mathbf{x}|C_K)}+\log\frac{P(C_i)}{P(C_K)}
\frac{P(C_i|\mathbf{x})}{P(C_K|\mathbf{x})}=\exp [\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}^o +\log\frac{P(C_i)}{P(C_K)}]=\exp [\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}] \tag{2.b}

可以看到
\sum_{i=1}^{K-1}\frac{P(C_i|\mathbf{x})}{P(C_K|\mathbf{x})}=\frac{1-P(C_K|\mathbf{x})}{P(C_K|\mathbf{x})}=\sum_{i=1}^{K-1}\exp[\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}]
由此可得
P(C_k|\mathbf{x})=\frac1{1+\sum_{i=1}^{K-1}\exp[\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}]}
进而根据(2.b)
P(C_i|\mathbf{x})=\frac{\exp [\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}]}{1+\sum_{j=1}^{K-1}\exp[\boldsymbol{\omega}_j^T\mathbf{x}+\omega_{j0}]}, \ i=1,\dots,K-1

为了一致地处理所有的类,记
y_i=\hat P(C_i|\mathbf{x})=\frac{\exp [\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}]}{\sum_{j=1}^{K}\exp[\boldsymbol{\omega}_j^T\mathbf{x}+\omega_{j0}]}, \ i=1,\dots,K \tag{2.c}
,这样一来\sum_i y_i =1,称之为软最大函数

当一个类的对数似然比(2.a)明显大于其他类的对数似然比时,通过(2.b)取指数,并按(2.c)规范化后,得到的软最大y_i将接近于1,而其他的则接近于0.

对于K>2个类,每个样本点是一次多项式分布的抽样取值,即\mathbf{r}^t|\mathbf{x}^t \sim Mult_K(1,\mathbf{y}^t),其中y_i^t \equiv P(C_i|\mathbf{x}^t)。样本似然为l(\{\boldsymbol{\omega}_i,\omega_{i0}\}_i|X)=\prod_t\prod_i(y_i^t)^{r_i^t}。对数似然同样是交叉熵E( \{\boldsymbol{\omega}_i,\omega_{i0}\}_i|X)=-\sum_t\sum_ir_i^t\log y_i^t

- 迭代优化
依然使用梯度下降的方法,计算参数。
如果y_i=\frac{\exp(a_i)}{\sum_j\exp(a_j)},则有\frac{\partial y_i}{\partial a_j}=y_i(\delta_{ij}-y_j)。其中
\delta_{ij}=\begin{equation} \left\{ \begin{array}{} 1, & i=j \\ 0, & else \\ \end{array} \right. \end{equation}
对于给定训练集,有如下更新方程
\begin{align} \triangle\boldsymbol{\omega}_j=&\eta\sum_t\sum_ir_i^t(\delta_{ij}-y_j^t)\mathbf{x}^t\\ =&\eta\sum_t\left[ \sum_ir_i^t\delta_{ij}-y_j^t\sum_ir_i^t\right]\mathbf{x}^t\\ =&\eta\sum_t(r_j^t-y_j^t)\mathbf{x}^t \end{align}
\triangle\omega_{j0}=\eta\sum_t(r_j^t-y_j^t)
迭代地更新判别式,使得取软最大之后,正确的类具有最大的值,而其他类小。
和二类问题一样,不需要一直训练使得尽可能最小化交叉熵(对数似然E),只需要训练直到正确的类有最大的软最大值(最大的加权和(2.a))。

在线学习的方法,单个实例的误差为E^t(\{ \boldsymbol{\omega}_i,\omega_{i0}\}_i|\mathbf{x}^t,\mathbf{r}^t)=-\sum_i r_i^t \log y_i^t
i=1,\dots,Kj=0,\dots,d,更新规则为
\triangle\omega_{ij}^t=\eta(r_i^t-y_i^t)x_j^t

当数据是高斯分布时,逻辑斯蒂判别式与参数的、基于正态的线性判别式具有大致相当的错误率。当类条件密度不是正太的时,只要类时线性可分的,逻辑斯蒂判别式仍然可用。

逻辑斯蒂判别式对类密度的比例进行建模,当然不局限于线性的模型。假定一个二次判别式,有\log \frac{p(\mathbf{x}|C_i)}{p(\mathbf{x}|C_K)}=\mathbf{x}^T\mathbf{W}_i\mathbf{x}+\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0}。这对应并推广到具有不同协方差矩阵、满足多元正太条件分布的参数判别式。

同本章前部分讨论的,还可以用基本变量的指定函数(基函数)作为x变量。从而将判别式写成采用非线性基函数的线性和
\log \frac{p(\mathbf{x}|C_i)}{p(\mathbf{x}|C_K)}=\boldsymbol{\omega}_i^T\Phi(\mathbf{x})+\omega_{i0}
其中\Phi(\mathbf{x})是基函数。在神经网络中,这成祖宗多层感知器,这种模型称作径向基函数
甚至可以使用完全非参数的方法来给出指定函数,如Parzen窗口。

基于密度的线性判别式和逻辑斯蒂判别式的对比

基于密度的线性判别式(或称线性判别分析)基于高斯类且共享协方差矩阵的参数模型假设,对后验概率的对数几率(是线性形式)进行比较。选择最大对数几率的类。需要先估计类判别式g_i(\mathbf{x})=\boldsymbol{\omega}_i^T\mathbf{x}+\omega_{i0},在计算对数几率。

而逻辑斯蒂判别式不对类密度模型作假设,而是对类密度的比率建模。直接通过最小化样本似然(互熵)训练参数。\mathbf{x}可以是由离散属性组成,而参数方法的线性判别式显然不能。其有着更广泛的应用。


逻辑斯蒂回归判别式

除了上面所介绍的,逻辑斯蒂函数可以直接估计类后验。逻辑斯蒂函数也可以用来构建分类判别式。
用于分类的逻辑斯蒂回归判别式,采用回归模型对分类判别式进行建模,不再是简单的线性模型。

采用回归方式得到分类判别式,概率模型是r^t=y^t+\varepsilon。其中\varepsilon\sim N(0,\sigma_2)
如果只有两类r^t \in \left\{ 0,1\right\},则使用Sigmoid函数,y^t可能限于落在该区间。
假定线性模型和两个类,有
y^t=sigmoid(\boldsymbol{\omega}^T\mathbf{x}^t+\omega_0)=\frac1{1+\exp[-(\boldsymbol{\omega}^T\mathbf{x}^t+\omega_0)]}
于是假定\mathbf{r}|\mathbf{x} \sim N(y,\sigma^2),则回归中的样本似然为
l(\boldsymbol{\omega},\omega_0|X)=\prod_t\frac1{\sqrt{2\pi}\sigma}\exp\left[ -\frac{(r^t-y^t)^2}{2\sigma^2}\right]
最大化对数似然是最小化误差平方和E(\boldsymbol{\omega},\omega_0|X)=\frac12\sum_t(r^t-y^t)^2
使用梯度下降,更新方程为
\triangle\boldsymbol{\omega}=\eta\sum_t(r^t-y^t)y^t(1-y^t)\mathbf{x}^t
\omega_0=\eta\sum_t(r^t-y^t)y^t(1-y^t)

当存在K>2个类时,也可以时使用回归判别式,概率模型为\mathbf{r}^t=\mathbf{y}^t +\boldsymbol{\varepsilon}。其中\boldsymbol{\varepsilon}\sim N_K(0,\sigma_2 \mathbf{I}_K)。为每个类假定一个线性模型,有
y_i^t=sigmoid(\boldsymbol{\omega}_i^T\mathbf{x}^t+\omega_{i0})=\frac1{1+\exp[-(\boldsymbol{\omega}_i^T\mathbf{x}^t+\omega_{i0})]}
于是样本似然为
l(\left\{\boldsymbol{\omega}_i,\omega_{i0}\right\}_i|X)=\prod_t\frac1{(2\pi)^{\frac K2}|\boldsymbol{\Sigma}|^{\frac12}}\exp\left[ -\frac{\|\mathbf{r}^t-\mathbf{y}^t\|^2}{2\sigma^2}\right]
最大化样本似然等价于最小化误差:
E(\left\{\boldsymbol{\omega}_i,\omega_{i0}\right\}_i|X)=\frac12\sum_t\|\mathbf{r}^t-\mathbf{y}^t\|^2=\frac12\sum_t\sum_i(r_i^t-y_i^t)^2
i=1,\dots,K更新方程为
\triangle\boldsymbol{\omega}=\eta\sum_t(r_i^t-y_i^t)y_i^t(1-y_i^t)\mathbf{x}^t
\omega_0=\eta\sum_t(r_i^t-y_i^t)y_i^t(1-y_i^t)

逻辑斯蒂回归判别式和逻辑斯蒂判别式 方法的区别,就在于它们对\mathbf{r}|\mathbf{x}的建模不同。回归判别式,假定\mathbf{r}|\mathbf{x}服从以\mathbf{y}^t为均值的正态分布;而在逻辑斯蒂判别式中,假定\mathbf{r}|\mathbf{x}服从各类概率为\mathbf{y}^t的多项式分布。
反映在计算上,两种方法的样本似然截然不同。
两者\mathbf{y}^t都通过Sigmoid函数给出,计算后验的过程也是相同的。


其他基于判别式的方法

除了上面所介绍的参数地估计判别式的方法之外,还有一些其他判别式方法。
决策树分类就是一种基于判别式的非参数方法,并不对类比例(线性的,非线性的),具体见《非参数方法——决策树》。
支持向量机的方法则通过找到支持向量,来得到判别式,见《核机器》。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容