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

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

基于判别式的方法

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

在基于似然的方法中,通过参数、半参数、非参数方法来估计类似然。然后使用后验密度定义判别式函数,如,并选择最大的类。
而在基于判别式的方法中,不去估计类密度,而直接估计判别式,不论是线性判别式,或高次判别式

(在基于似然的方法中,假定,判别式函数等价于是二次判别式。若假定所有类共享协方差矩阵,则二次项在每个类的判别式中一致,可约去。进而为于线性判别式。参见《监督学习——分类(基于似然的方法)
》)

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

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

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

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

这里关注判别式是 x的线性函数的简单情况:

线性判别式经常使用,主要由于它的简单性。它的空间和时间复杂度都是。在许多应用中,线性判别式相当准确。例如,当类是高斯的且具有相同的协方差矩阵时,最佳判别式就是线性的。

当然当线性判别式不够灵活时,可以提高复杂度,使用二次判别式函数

这是复杂度变为。同时遇到偏移和方差的冲突,因为它需要更大的训练集,并在小样本上容易过拟合。
一种等价的方法是通过增加高阶项对输入进行预处理。例如,对于两个输入,,,可以定义新变量作为输入。这样,定义在五维空间z 上的线性函数对应于 二维空间x 上的二次非线性行函数。也就是说,通过定义到新空间上的非线性变换,在新空间上的判别式函数可以是线性的。
判别式可以表示为,其中是基函数。高阶项仅是一种可能的基函数,除了二次函数,还包括:

  • 一些分段函数

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


线性判别式的几何意义

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}
如果,则选择,否则选择。
这定义了一个超平面,其中是权重向量,是阈值。超平面将输入空间分割成两部分。
取决策面上的两个点,,则有


可以看到,是超平面上任意向量的法线。将改写为:

其中,是 在超平面上的投影,是到超平面的距离,在超平面正侧,为正,否则为负。当为原点0时,,则原点在超平面正侧,则原点在超平面上。
计算,注意到,有
\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}
得到,
超平面到原点的距离为。
由此可以看出,决定了超平面的位置,决定了超平面的方向。

2.多类问题
当存在K>2个类时,有K个判别式函数。当它们都是线性的时,有

假设所有的类都是线性可分的,每个类都可以通过一个线性判别式与其他类区分开。那么计算得出参数和,使得对于训练集中的所有实例,有

理想情况下,给定应当只有一个大于0,其他都小于0。但实际上并不会总是这样,所有判别式的正侧可能重叠,有可能存在所有都小于0的情况。这种情况可以看做拒绝判断,但通常通过将 x 指派到最大的类。

如果类不是线性可分的,可将问题划分成一组线性问题,使用个线性判别式,每对类的识别通过一个判别式来完成:

训练参数,使得

在检验时,如果对任意的,都有,则选择。
当然,很可能对于任意的给定i,都都无法满足对任意的,。这时可以用和式放宽合取,选择最大化的类。
很多情况下,多类情况不是线性可分的,但这些类可能是逐对线性可分的。采用逐对分离的思路,将非线性分离的复杂问题分解成一系列简单的问题。

下面开始介绍如何计算。


逻辑斯蒂函数(Sigmoid函数)

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

在参数方法基于似然的运用中,通过取最大化 参数方法给出的判别式 的类作为输出。
如果类密度是高斯的,不共享协方差矩,判别式是二次判别式。
共享协方差矩阵时,则判别式函数是线性的。
其中参数可以通过训练数据集解析地估计

考虑两类情况时,定义,。则在参数方法分类时,选择,如果(等价地或)。
称为 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}

由对数几率求得,则称为逻辑斯蒂函数,又称Sigmoid函数

有的地方会称这种假设下参数方法的对数几率为线性判别分析LDA(与维度规约的LDA方法有所不同,维度规约中的费希尔线性判别式更侧重于LDA的数据降维的能力),不共享协方差的二次判别式对应地则称二次判别分析

通过训练数据估计均值,和共享协方差矩阵。计算,当则选择;等价地,计算有则选择。

Sigmoid函数就是从判别式的值得到的后验概率。


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

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

1.两类问题

先考虑两类问题,假定对数似然比是线性的:

使用贝叶斯规则,有

其中。
Sigmoid函数
作为后验的估计。下面的问题就是如何学习和。

-学习参数
给定两类样本,其中如果则,如果则。假定给定,是伯努利分布,具有上述Sigmoid函数(a)的概率:。

由此可以看出,基于似然的方法和基于判别式的方法的区别
基于似然的方法,对建模;
基于判别式的方法,对建模;

基于伯努利分布的假设,样本似然为
最大化样本似然等价于最小化负的对数似然(这里就是交叉熵

由于Sigmoid函数是非线性的,不能直接求解解析解。这就需要通过迭代方法进行计算。

- 迭代优化
在基于似然的方法中,估计的参数是和的充分统计量,通过如最大似然的方法来估计这些参数。
而在基于判别式的方法中,估计的参数是判别式中的参数,通过最小化训练集上的分类误差,来使它们最优。在最小化分类误差时,寻找,多数情况下都是没有解析解的,这需要依赖迭代优化方法进行计算。

对于这种无法解析求解的最常用的方法就是梯度下降。当是变量的可微函数时,由偏导数组成的梯度向量,和梯度下降的过程,来最小化E。从随机向量开始,每一步按梯度的相反方向更新:


其中称作步长学习因子

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

使用梯度下降的方法最小化上面的交叉熵(b)。
Sigmoid函数的导数是。得到更新方程:

上面的更新方式是离线的,将所有训练实例的误差一起计算。在线的方法也可以用于逻辑斯蒂判别式。
单个实例的误差为,
更新规则为

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

训练完成后的检验阶段,给定,计算后验估计,如果则选择。这意味着,为了最小化误差,不需要一直学习直到所有的都为正确分类的0或1,而只需要学习直到在其决策边界正确的一侧(大于或小于0,或大于或小于0.5)。这种在达到零训练误差之前提前停止的做法是一种正则化形式。

2.多类问题

推广到K>2个类的情况。取其中一个类,作为参考类。并像两类问题一样,假定对数似然比为线性的

于是有

可以看到

由此可得

进而根据(2.b)

为了一致地处理所有的类,记

,这样一来,称之为软最大函数

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

对于K>2个类,每个样本点是一次多项式分布的抽样取值,即,其中。样本似然为。对数似然同样是交叉熵。

- 迭代优化
依然使用梯度下降的方法,计算参数。
如果,则有。其中

对于给定训练集,有如下更新方程


迭代地更新判别式,使得取软最大之后,正确的类具有最大的值,而其他类小。
和二类问题一样,不需要一直训练使得尽可能最小化交叉熵(对数似然E),只需要训练直到正确的类有最大的软最大值(最大的加权和(2.a))。

在线学习的方法,单个实例的误差为
对,,更新规则为

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

逻辑斯蒂判别式对类密度的比例进行建模,当然不局限于线性的模型。假定一个二次判别式,有。这对应并推广到具有不同协方差矩阵、满足多元正太条件分布的参数判别式。

同本章前部分讨论的,还可以用基本变量的指定函数(基函数)作为x变量。从而将判别式写成采用非线性基函数的线性和

其中是基函数。在神经网络中,这成祖宗多层感知器,这种模型称作径向基函数
甚至可以使用完全非参数的方法来给出指定函数,如Parzen窗口。

参数方法的线性判别式和逻辑斯蒂判别式的对比

参数方法的线性判别式(又称线性判别分析)基于高斯类且共享协方差矩阵的参数模型假设,对后验概率的对数几率(是线性形式)进行比较。选择最大对数几率的类。需要先估计类判别式,在计算对数几率。

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


逻辑斯蒂回归判别式

用于分类的回归判别式,是采用回归模型对判别式进行建模,不再是简单的线性模型。

采用回归方式得到分类判别式,概率模型是。其中。
如果只有两类,,则使用Sigmoid函数,可能限于落在该区间。
假定线性模型和两个类,有

于是假定,则回归中的样本似然为

最大化对数似然是最小化误差平方和。
使用梯度下降,更新方程为

当存在K>2个类时,也可以时使用回归判别式,概率模型为。其中。为每个类假定一个线性模型,有

于是样本似然为

最大化样本似然等价于最小化误差:

对更新方程为

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


其他基于判别式的方法

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

你可能感兴趣的:(监督学习——分类(基于判别式的方法)(参数方法——判别式参数估计))