模式识别阅读笔记
模式识别阅读笔记
为了不浪费时间,这个笔记我就不写公式了。只提供给一些概念性的知识供回忆。
I 概论
模式识别。什么是模式,模式(pattern),是一种较为抽象的东西。举个例子,比喻猫狗,你为什么能判断猫是猫,狗是狗,一般人们很难说清,这是种难以形容的东西。又比如你怎么判断一个东西是照片还是一副画,是什么类型的画,这些都难以表达,也很难用什么数学函数表达式直接表示出来。这些东西就叫做模式,对于人来说,识别不同的模式是一种简单的事请,但对于计算机来说并不简单,但计算机擅长计算这种人并不擅长的东西。所以我们的目的不是让计算机去模仿人脑,而是通过数学的方式让计算机去理解人的识别。
模式识别有分为有监督学习和无监督学习:
- 有监督学习比较著名的就是分类问题,也是当今模式识别领域运用最多的。监督指的是有样本也有标签。例如图像猫狗识别,能够给你很多张图片并告诉你猫还是狗,当模型训练出来后就可以做分类问题了。
- 无监督学习更多的都是聚类问题,但聚类完之后得对结果进行解释。
在模式识别的分类问题中中通常有以下几个步骤:
-
预处理
-
特征提取
-
输入分类器进行训练
-
将训练好的模型用于预测
II 统计决策方法
这里我们以贝叶斯的方法来进行,贝叶斯决策理论称作统计决策理论。
2.1 贝叶斯公式
学过概率论的应该都对贝叶斯公式有深刻的印象,这是一种从果到因推断出从因到果的过程
在模式识别中,贝叶斯公式主要是下面的形式
其中代表输入,是一个多维特征向量,代表第几个分类。叫做先验概率,叫做后验概率。上面这个显然是一种条件概率,等式左边其实就是可以看出当输入是时,样本属于概率。通过这个概率,我们可以引出以下几种决策的方式。
2.2 最小错误率贝叶斯决策
任何一个样本都可能会出错,对于某个样本的错误率为,显然对于一个二分类问题,样本出错的概率为(若决策)或者(若决策)。对于多分类问题错误率定义为
所谓最小错误率决策,就是使上述的错误率最小化,也就是使后验概率最大的决策。也就是我们最常见的,选择使最大的为最佳决策。
但这个规则在二分类问题的情况下还可以整理一下
上面这个公式仔细想一下就行,反映了某一类中观察到特征值的相对可能性,所以被称为似然度,主要叫做似然比(likelihood ratio)。
图2.2中的虚线就被叫做决策面或者分类面。
2.3最小风险贝叶斯决策
同上面不一样的是,我们同样使用贝叶斯公式算出了后验概率,但此时我们不是单纯的选择最大那个了。在某一些,情况下,我们想要宁可错杀不可放过。比如检测疾病,或者故障维修的时候。所以我们需要评估假如选错了会带来的风险,并将其量化。
对于输入,假如由种决策,包含把它分到类中的一个,或者说判断其不属于任何一类。定义一个决策空间:
同时定义风险函数,设对于实际状态为 的向量 采取决策 所带来的损失为
对于某个样本 , 它属于各个状态的后验概率是 , 对它采取决策 , 的期望损失是
我们的目的就是要使期望损失最小,使用以下决策
其中, 是把属于第 2 类的样本分为第 1 类时的损失, 是把属于第 1 类的样本分为第 2 类时的损失, 是决策正确 (把第 1 类决策为 第 1 类和把第 2 类决策为第 2 类) 时的损失。通常, ; 不失一般性, 我们可以假设 。
实际上很好理解,对于多分类来说,使用不同决策的风险函数与对应的后验概率相乘,计算当做某一种决策所承担的风险,然后选择风险最小的一种就行。
解:已知条件为
根据例 的计算结果可知后验概率为
再按式 (2-26) 计算出条件风险
即决策为 的条件风险小于决策为 的条件风险, 因此我们采取决策行动 , 即判断待识 别的细胞 为 类一异常细胞。
2.4 两类错误率、Neyman-Pearson决策与ROC
下面讨论一些概念性的问题。在医学领域,人们经常会用阳性阴性代表两类,或者说正样本和负样本。正常的决策可能会有以下几种情况:
决策 | 状态 | 状态 |
---|---|---|
阳性 | 阴性 | |
阳性 | 真阳性(TP) | 假阳性(FP) |
阴性 | 假阴性(FN) | 真阴性(TN) |
上面需要牢记,同时定义灵敏度为实际是阳性的样本中被检测为阳性的,特异度为实际上是阴性的样本中被检测为阴性的。注意灵敏度越高特异度就越低。
同时把所有实际上是阴性样本中被为阳性检测(假阳性)称为第一类错误(误报或虚报),把所有阳性样本中被检测为阴性(假阴性)称为第二类错误(漏报)。显然对于病人来说,漏报是比误报还严重的,有些时候我们希望将第二类错误降低到一定程度时使第一类错误更低,但我觉得应该不会考所以我暂时不讲。
现在来看ROC曲线,几乎所有机器学习得评价中都会看见这个曲线。

这个显然当ROC曲线要在对角线之上才是正常的,否则真阳性率比假阳性率还低就没有意义的。这个曲线是通过改变决策阈值来实现的。比如有(0,0)点这种全识别成阴性这种特殊情况。显然有,当这个ROC曲线越往上凸是越好的,或者说其曲线下的相对面积(AUC)越大越好。AUC就成了展现决策方法性能的判别。
2.5 正态分布的统计决策
下面这个部分我认为虽然很复杂但是很有意思。首先需要明确一个概念,在这一小节我们假设对于某一种分类假设其是服从正态分布的。正态分布我们都知道有均值和方差,比如对于人脸识别来说,一张标准的大众脸就是均值,而其他人的不同长相就是方差。
单变量的正态分布很简单
有期望和标准差
那么多变量会稍稍复杂亿点点
式中: 是 维列向量; 是 维均值向量; 是 维协方程矩阵, 是 的逆矩阵, 是 的行列式。不难证明,协方差矩阵总是对称非负定阵, 且可表示为
接下来引出一个新的概念:等密度点轨迹的超椭球面。
正态分布抽取的样本大部分落在一个区域中,区域中心由决定,大小由决定。可以想象,其等密度的轨迹应该是一个超椭球面(可以把它想象成三维空间),且由下面这个方程确定
并且将其到中心的距离定义为,这个距离被称作Mahalanobis距离(马氏距离)。
另外再复习一下,相互独立一定不相关,不相关不一定相互独立。
那么在这种正态分布的假设下,之前最小错误率贝叶斯决策和决策面的有关公式,可以写出一个判别函数为
决策面方程为
化简为
这个公式看起来很复杂,当考虑到实际问题的一些情况的时候,是可以化简的。
1. 第一种情况
在这种情况下,每类协方差矩阵都相等,且各个特征间都是相互独立的。而且方差还相等。虽然这种情况很理想,但对于某些相关性不强的情况我认为也可以近似一下。这种情况最为简单,相当于该类样本集中一个个超球体之内。
把上面的公式化简一下,忽略一些和类别无关的变量,最终就有结果
上面看起来我们已经转化为一个欧氏距离的平方了,特别是当先验概率都相等时,可以忽略末尾项,此时结果就仅仅和输入与分类器几类的均值向量的欧氏距离有关,就属于的类。
上面决策面是个超平面,显然通过两个中心的连线中点且与连线正交。上面的一些决策面实际上可以用方程表示出来:
当先验概率不相等,决策面与先验概率相等时决策面平行,只是向先验概率小的方向偏移。
2. 第二种情况:
各类的协方差都相等,稍微复杂了一些,从几何上看,该样本集中于一个个超椭球体之内,且每一个椭球体都相等
在先验概率相等的情况下,忽略末尾项,则最终结果只和到每类的均值点的马氏距离的平方相关。这实际上是一个线性判别函数,决策面是一个超平面,这里超平面的方程就不详细给出了,具体看书。
3.第三种情况:各类协方差不相等
太复杂了,看看就好,我觉得不会考
2.6 错误率计算
事实上大部分时候错误率都是很不好算的,但现在我们既然规定了正态分布,那似乎就可以开始计算错误率了。回顾一下最小错误率贝叶斯决策规则的负对数似然比。
是 的函数, 是随机向量, 因此 是随机变量。我们记它的分布密度函数为 。 由于它是一维密度函数, 易于积分, 所以用它计算错误率有时较为方便。有
这个还是很方便的
其中
的概率密度函数如图 2-12 所示。阴影部分相当于最小错误率贝叶斯决策的错误率
2.7 离散概率模型下的统计决策举例
前面是实际上讲的都是连续情况下的,都是一些概率密度函数,其实离散情况在我看来更加简单,并且同样有一个很简单方法,马尔可夫模型。下面看一个案例
我们知道, 生物的基因组是由 A 、 T 、 G 、 C四种核苷酸组成的序列。人的一套基因组单 链是由约 30 亿个 A 、 T 、 G 、 C 组成的一个超长的序列, 可以把它看成是一本由四个字母写成 的天书。这样一个超长的字符串或其中一个子串,并不是由四个字母随机组成的, 而是遵循 着很多特殊的规律。比如, 由于一些生物化学机制的作用, 基因组同一条链上出现相连的 C 和 G 的概率要比随机情况小很多。把相连的 C 和 G 叫做一个 CpG 双核苒酸。人们已经观 察到, CpG 在基因组上出现的平均频率比根据 C 、 G 各自出现的频率估计的组合出现频率小 很多,但是, 这些有限的 CpG在基因组上分布的位置不是均匀的, 而是倾向于集中在相对较 短的一些片段上,这种 CpG相对富集的区域被称作 CpG岛,就像大海上的小岛一样。CpG岛在基因组上有重要的功能, 研究CpG岛的识别是非常有意义的。
首先介绍一下马尔可夫模型,这是一种以状态转移为核心的模型,你也可以向有限状态机一样画一个状态转移图。对于一阶马尔可夫模型,核心思想就是,下一个的状态仅和上一个状态有关,比如在ATGC中,我们以DNA轴为主线,通常实际上是以时间顺序的,但是在这里我们把DNA序列看作时间序列,就有
并定义转移概率有
即从一个状态转移到另一个状态的概率,对一个长度为 的序列, 我们观察到这个序列的概率是
在DNA案例中,我们有转移概率矩阵
那么现在的问题就是,给你一个DNA链判断其是否是CpG岛。因为CpG岛和非CpG岛的转移概率矩阵是不同的,有一个非常直观的思想就是,用分别用CpG岛和非CpG岛的转移矩阵计算。这就代表走DNA能够走出这一条路线的状态的可能性。看是CpG岛的转移矩阵算出的可能性大和非CpG岛的转移矩阵算出的可能性大,哪一个大就是哪个。
用书里的话来说,这与前面贝叶斯决策的似然比很相似。在前面讲述连续变量的贝叶斯决策时, 用类条件概率密度来描述各类样本的特征分布。对于一个特定样本 ,根据类条件概率密度计算似然 比 并与一定的阈值做比较来进行判别。当采用最小错误率准则且两类先验 概率相等时, 阈值是 1 , 即如果似然比大于 1 则判别为第一类, 小于 1 则判别为第二类。
在 岛的识别中, 把 岛一类记作“+”, 岛情况下的马尔可夫转移概率记作 ;把非 CpG 岛一类记作“-”, 非 CpG 岛情况下的马尔可夫转移概率记 。为 了考虑到长序列处理方便, 可以采用下面的对数似然比 (log likelihood ratio) 来进行判别
这个又叫做对数几率比。
但实际上,上面那个转移概率矩阵是需要我们自己估计的,或者可以称为训练。只需要找到一些CpG岛和非CpG岛的片段,统计AGCT后面出现AGCT的次数就可以估计了。
除了马尔可夫还有隐马尔可夫模型

这里书上提到了Viterbi算法和Gibbs采样法可以求解。
III 概率密度函数的估计
3.1 引言
对于上一章提到过的贝叶斯决策是决策部分,是在训练得到了模型的基础上决定,那么这一章主要是贝叶斯决策模型的训练,其中有一条最关键的就是类条件概率密度函数的估计。剩下的还有先验概率是比较好估计的,通常只需要根据大量的样本就可以计算出各类样本的占比从而估计先验概率。所以重点介绍类条件概率密度函数。
在监督学习中,训练样本都是已知的,各类样本仅包含本类信息。所以现在使用同一类样本估计本类的类条件概率密度,有两种情况:
-
参数估计:参数估计是已知概率密度函数,但不知道其中的参数,比如正态分布已经知道了其概率密度函数形式,但不知道其均值和方差。
-
非参数估计:就是链概率密度函数都不知道,需要用样本把概率密度函数数值化估计出来。
参数估计中有几个基本概念:
- 统计量:样本中包含着总体信息,通过样本抽取信息,针对不同要求构造出样本的某种函数,这种函数就是统计量。
- 参数空间:就是指在参数估计中,假设概率密度函数的形式已知,而其中的参数是未知的,把未知的参数记为,其全部可能值构成的空间就是参数空间,记为.
- 点估计、估计量、估计值。点估计是构造统计量作为参数的估计,在统计学中称 为 的估计量。如果 是属于类别 的几个样 本观察值, 代人统计量 就得到对于第 类的 的具体数值, 这个数值在统计学中称为 的 估计值。
- 区间估计:除了点估计之外的另一类估计方法,用区间作为参数的可能取值范围的估计,称为置信区间。
这里我们涉及到参数估计的主要是点估计,有两种估计方法:最大似然估计和贝叶斯估计。
3.2 最大似然估计
首先由以下基本假设:
- 参数是一个确定的未知向量,但它不是随机量。
- 每类样本的样本集,满足独立同分布
- 参数的类条件概率函数形式是已知的,只是其中参数未知而已。比如正态分布中的
- 不同参数互相独立
最大似然估计的基本思想很简单,现在我们已知一个样本集
那么计算在参数为某个值的时候,获得这个样本集的概率就有
那么这时候显然就可以知道,使得上述联合概率最大的参数就是我们想要的结果,上面这个函数就是我们的似然函数。所以最大似然估计就是在参数空间里寻找参数,使得似然函数最大叫做的最大似然估计量。当然为了便于求解,我们一般将其对数化。也就是定义下列对数函数函数
那为了求解出上面这个函数的最大值,显然我们只需要求导就行,或者说当其为一个高维向量的时候,是求梯度算子,即对每一维分别求偏导,令其等于0。
这样可以得到多个方程,方程组的解就是其极值点。在某些情况下可能会有多个极值。且并不是所有概率密度形式都可以用上述公式求解,比如说均匀分布
通过计算我们是可以知道是求不出来的,因为似然函数在最大值的地方是没有零斜率的,那么可以有是样本x中最小的一个,是样本中最大的一个。
对于正态分布下的最大似然估计,事实上也不是很难,因为正态分布的概率密度函数是已知的,这里求解过程的推导过程略,但是总而言之最终的结果就有
当然上面的结果是一维的情况,当涉及到多维的时候也差不多。
总结一下就是:
-
已知概率密度函数的形式
-
求解对数似然函数
-
对对数函数求导找其导数等于0的点对应的参数
3.3 贝叶斯估计和贝叶斯学习
贝叶斯估计和最大似然估计最大的区别就是,最大似然估计把参数看作是固定但是未知的量,而在贝叶斯估计中参数本身也是随机变量。贝叶斯学习是直接把贝叶斯估计的原理用于数据对概率密度函数进行迭代估计.
这里原理就不进行分析了,主要还是按着最小错误率或者最小风险的思路来看,不过注意这里的风险函数我们定义为常见的平方损失函数:
所以贝叶斯估计的步骤就是:
-
根据对问题的认识或猜测确定先验分布密度
-
由于样本独立同分布,已知样本密度函数的形式,样本集的联合分布为: 吧
-
利用贝叶斯公式求的后验概率分布:
-
所以贝叶斯估计量就是其期望(这个是高中就学过的知识)
在贝叶斯估计中已知,但只有先验概率密度在为某些特殊形式的情况下才会使上面的式子能够比较方便的计算。特别地,如果先验概率模型能够使的后验分布具有与有相同的形式,把这样的先验概率与概率模型共轭。比如正态分布,当为正态分布时,实际上就是与共轭的。
但注意,我们本来的目的不是估计概率密度函数参数,而是估计样本的概率密度函数,那么在已知后验概率的情况下就没必要对参数进行估计了,可以直接得到样本概率密度函数
也就是说上面的式子就是说所有参数可能的样本密度概率的加权平均,而这个权就是观测样本下参数的后验概率。在上面的贝叶斯公式中,实际上后验概率可以有
分母实际上只是做一个归一化,保证概率密度函数下的积分为1。如果认为是均匀分布的话,那么实际上 完全取决于,此时得到的值应该是和最大似然估计相等的。如果先验知识非常强,那就相当于直接已知概率密度函数的参数了,此时通过贝叶斯公式就可以直接查出分类的后验概率了。
对于贝叶斯学习,之前说贝叶斯学习是贝叶斯估计的迭代,这里的迭代主要是指求联合概率密度时,当样本集增加的时候会只需要乘以新的概率密度就行。即
这里样本集记作了,而把这个代入贝叶斯公式就有下面的递推
那么通过样本数的不断增加就可以得到不同参数数目下参数估计的后验概率密度,并且有着随着样本不断增加,后验概率逐渐趋向参数的真实值,在图像上不断呈现一个尖峰。这一个过程就叫做贝叶斯学习。
下面举一个正态分布时的贝叶斯估计的案例,显然我们待估计的参数就是均值和方差,分布密度有
并且假定均值的先验分布时正态分布的,并且仅对均值进行估计,那么按上面的步骤一通操作,注意这里我们忽略了贝叶斯公式分母部分的积分,最终可以算出
上面的分布显然也是一个正态分布,所以就是共轭的,最后得出来的样本概率密度就有
3.4 概率密度估计的非参数方法
前面的最大似然估计和贝叶斯估计我们都是已知了样本概率密度函数的具体形式,只需要估计其参数。但是大多数时候我们是不能知道样本的分布情况的(当然我们也不能简单的将其想为正态分布)。这个时候我们就需要非参数估计.这种方法无法得到完美的封闭函数的形式,只是从样本分布本身进行估计。
3.4.1 直方图方法
直方图是一个使用非常广泛的东西,也是我们中学时期就接触过的。也就是
-
把样本的分量在取值范围内分成个等间隔小段,注意如果是维向量,这种分割就是在一个多维空间里的,所以我们把这个也称为小舱,小舱体积记为。
-
统计落入每个小舱的样本数目,
-
把每个小舱的概率密度看作常数,并用作为估计值,其中为样本总数,且样本落入这个小舱的概率就是。
我们的问题就是根据样本集估计密度函数,注意这里仅考虑一个类别,对不同的类别需要分类估计。随机向量落入某个小窗的概率是
根据二项分布,在样本集中恰好有k个落入小区域的概率就是
当然这个传统的直方图方法有一个很大的问题就是,如何定义小窗的大小。过大会导致估计出的概率密度函数非常的粗糙,过窄会导致小窗不连续。小窗的选择应该是使概率密度函数收敛于真实的概率密度函数的条件.即在样本数目无穷多的时候
-
,小舱体积尽量小
-
,落入小舱的样本数目逐渐增多
-
,落入小舱的样本数目是总体样本中很小的一部分
3.4.2 近邻估计方法、
这是一种采用可变大小的小舱密度估计方法,能够随着样本密度的分布调整小舱的大小,在密集的地方小舱大,在稀疏的地方小舱较小,无论什么时候,每个小舱内拥有的样本数量都刚好是,每个小舱内落入的样本数都是相同的,那此时概率密度的估计就可以只与小舱体积有关
这样能够是得在不同密度的地区都能兼顾连续性。与直方图将样本按取值范围划分区域来看,这里是在取值范围内的每一点为小舱中心用上面的式子进行估计。所以说这个方法就是
- 在样本取值范围内不断取点,然后确定小舱体积使其包含个样本,通过上面的式子就可以计算。取的点越多,估计越准确。
3.4.3 Parzen窗法
这个可以联想数字信号处理中的窗函数法。前面我们取小舱估计其平均密度的方法可以说是使用了矩形窗,可以定义维的方窗函数
函数代表在以原点为中心的单位超正方体中取值为1,其他地方取值为0,现在设小舱边长,有,那么判断一个样本是否在以为中心为棱长的超立方体内就可以通过计算来实现,那么落入小舱内的样本数就可以写成
那么对于一点的概率密度估计就有
或者说
把累加里面的式子定义为核函数
他代表了一个观测样本对于处的概率密度估计的贡献,显然离得越远贡献应该是越小的,但对于矩形窗远离一定的距离贡献就为0了。概率密度估计应该是在每一点上把所有观测样本的贡献进行平均。
所以上面所说的用窗函数的方法就是Parzen窗方法或者说核密度估计方法。事实上肯定不只有方窗,还有
-
高斯窗
以样本 为均值、协方差矩阵为 }的正态分布函数。
-
超球窗
IV. 线性分类器
4.1 引言
前面我们主要是通过贝叶斯决策的方法,先估计出概率密度函数,再用贝叶斯决策得到结果。但在样本较少,特征空间维数较高的情况下并不好得到概率密度函数。
贝叶斯是的概率推导是模式识别或者说机器学习算法的基础,但是有很多可以简化的空间。对于分类问题,我们最主要的目的就是要找分类面。前面我们说过当判别函数遵循正态分布且各类协方差矩阵相等时,分类面是线性的,两类情况下判别函数为:
这是基于样本直接设计分类器,分为三个要素:
- 分类器即判别函数的类型
- 确定函数中的参数(也就是确定分类器设计目标准则)
- 利用算法求解参数
由于但多数问题都不是完全线性的,这里所讲的线性分类器很多情况下往往是次最优的。
4.2 线性判别函数的基本概念
两类线性判别函数的基本表达式就是
其中的是维的特征向量,就是样本,就是权向量。是个常数,称为阈值权。两类的分类就是
就是当 ,则决策,否则.
分类面就是满足的点构成的超平面,并且有是分类面的法线,
样本点到分类面的距离有
在我看来,从几何上去理解就是,先将样本映射到一维,然后再比较其与阈值的大小关系,下面Fisher线性判别使用的就是这种思路。
4.3 Fisher线性判别分析
FIsher线性判别的基本思路就是先将维样本映射到1维空间,然后再执行比较的过程。具体映射的方法很简单
可以看上面的过程,左边的图