第一章 绪论
模式识别的概念
在人类科学技术的发展历史中,人们总是力图使用某种机器来扩展人类自身的能力,例如:蒸汽机和电动机—体力,火车和飞机—行走,望远镜和显微镜—视力。那么计算机则是部分的扩展了人类的职能。
“机器智能”,机器智能系统应该包括三个部分:
感知部分:相当于人的眼、耳、触觉、嗅觉等等; -- 模式识别
学习部分:模仿人在自己的行动中总结经验,改善自身能力的功能;-- 机器学习
思维部分:相当于人的逻辑推理和计算能力; -- 人工智能
从语义上讲,模式是识别的对象,我们日常生活中的各种事物都可以称为是模式。模式识别活动对我们人来说几乎每时每刻都要发生。
模式:泛指一切客观事物的存在形式。从工程角度讲是指客观事物存在形式的数学表达,这种表达方式可以是多种多样的,依据具体对象,具体问题,需要我们人来确定的。
识别:人的识别过程是一个非常复杂的心理和生理过程,我们的识别过程不可能模拟人的功能实现,例如飞机并不是模仿鸟类用翅膀拍打空气。从工程的角度讲,识别可以看作是一个分类问题:已知有个类别,问输入模式(待识模式)属于哪一类?
模式识别的应用
随着计算机技术的发展,应用的普及以及向各个领域的渗透,模式识别技术的应用越来越广泛。
工业用途:产品质量检验,设备故障检测,智能机器人的感知系统;
商业用途:钱币的自动识伪,信函的自动分拣,电话信息查询,声控拨号;
医学用途:对心电、脑电、CT等信号进行处理和识别,自动进行疾病的诊断;
安全领域的应用:生理特征鉴别 Biometrics,指纹识别,掌纹识别,视网膜识别,虹膜识别,笔迹鉴别,人面像识别,声纹识别等等,可以用于安全门,关键设备的启动和停止,以及网上电子商务的身份确认。对公安对象的刑侦和鉴别;
军事领域:巡航导弹的景物识别,战斗单元的敌我识别;
办公自动化:文字识别技术和声音识别技术;
数据挖掘:数据分析;
网络应用:文本分类。
模式识别的研究方法
模式识别从方法上来分,可以分为两大类:
统计模式识别:是一种数学方法,将模式看作为空间中的一个点的集合,采用解析几何和概率论、数理统计的方法,判别输入模式的类别属性;
结构模式识别:也称为句法模式识别,将模式看成是有结构、有层次的,是由一些基本元素有组织的构成,一般采用字符串的形式对模式进行描述,利用形式语言和自动机理论对模式的结构进行分析和判别。(可以以汉字为例进行说明)
模式识别的发展历史
作为模式识别方法来说,最早形成的是统计识别方法。在60年代初,在数理统计学中已经形成了完整的统计决策理论,随着计算机的发展,统计决策理论逐渐得到应用,形成了统计模式识别方法。
在70年代中期,美籍华人傅京孙教授建立了句法模式识别理论,在他的大力推动下,模式识别理论和技术受到了给各学科的重视。
到了80年代,在傅京孙教授的指导下,我国的一批专家学者在美国进修,回国后开展了我国的模式识别研究。现在我国的模式识别研究水平在多个领域已经达到了世界先进水平。
期刊:IEEE Transaction on Pattern Analysis and Machine Intelligence
Pattern Recognition
Pattern Recognition Letter
模式识别与人工智能
教材:《模式识别》,清华大学出版社,边肇祺,张学工
《模式识别及其应用》,科学出版社,傅京孙
《现代模式识别》,国防科技大学出版社,孙即祥
统计模式识别系统
统计模式识别系统包括两个部分:训练和识别。
模式的采集和预处理
就是根据具体问题,使用相应的设备或传感器对要识别的对象进行信息采集,并将这些信息转化为数字量输入计算机,每个模式的这种数字量表示可以称为一个“样本”。例如,汽车车型的识别,需要通过摄像机或照相机拍摄汽车的照片,然后转化为数字图像输入到计算机中;语音信号需要通过麦克风转化为电信号,然后再通过A/D采样形成一定的数字波形输入到计算机中。
特征提取与选择
为什么要进行特征提取?
通常来说通过数据采集输入到计算机中的原始样本数据量比较大,例如一幅图像或一个波形的数据量要有几十K或上百K,这样处理起来非常困难;同时在原始样本中还存在着很多无用数据,例如在汽车车型识别中,图像中的道路和行人,以及其它建筑物都属于无用信息,对于识别任务来说没有任何意义,应该去除掉,否则在识别时会产生不利的影响。
什么是特征?
特征是从模式得到的对分类有用的度量、属性。所谓特征应该能够反映不同类别之间的本质差别。例如下面的一组图形,是几个两类分类问题,位于同一列上的三个样本属于一类。
在统计模式识别中,模式的特征一般表示为一组数字,这组数字构成一个矢量,称为是特征矢量。
如何抽取和表示特征?
特征抽取的方法不是模式识别研究的内容,这需要由其它知识来完成,比如说图像处理,信号处理等等,对于一个特定的模式识别问题,到底要抽取那些特则来作为识别特征,也没有一个具体统一的方法可以指导我们来进行,都需要根据具体问题来具体分析,选择出一组既能反映模式的本质,又容易抽取的特征。下面举一个实际例子来说明以下特征抽取的过程。
例一:苹果和橙子的自动分拣机。
苹果和橙子通过摄像机以数字图像的形式输入计算,下一步对两种图像进行分类。我们不可能直接对原始图形进行分类,即使是256*256的图像,数据量也要达到65536*3。因此需要对图像进行处理,抽取出特征。
从我们人的角度来观察,苹果和橙子的主要差别在于颜色和形状。
颜色特征:数字图像上每一点的颜色可以分为三个分量:红,绿,蓝,每个分量可以用一个8位数来度量。其中蓝色分量对我们这个问题来说是没有用处的,我们只需关注红色和绿色分量。
抽取颜色特征之前,首先需要对图像进行分割,确定出前景和背景,也就是要寻找到我们要识别的苹果或橙子图像边缘,从而确定哪些点是我们下一步要抽取特征的前景点,哪些点是我们不需要关心的背景点。
然后我们需要解决的问题是在图像中前景点的数量很多,而且每一点的颜色值都不同,我们是要选择哪一点的颜色值作为特征。这里有多种办法,首先在图像的前景中规定一个中心区域,下一步只考虑这个中心区域的点。一种办法是将中心区域中的每一点的颜色值取平均,以平均的红色分量值和平均的绿色分量值作为特征;另一种办法是在中心区域中做出红色分量的直方图和绿色分量的直方图,从直方图中寻找最大值点,此点所对应的颜色值为取此颜色值点最多的颜色值。红色分量的颜色值用表示,绿色分量的颜色值用表示。
我们需要解决的另一个问题是如何将两个颜色值转化为特征值,一种最简单的方式是直接以两个颜色值作为特征值,;另外一种方式是取两种颜色的比值作为特征值:
形状特征:抽取形状特征时,首先也需要对图像进行分割,寻找到图像的边缘。为了使问题简单,我们假设物体都是处于标准的直立位置。
我们要想完全描述一个苹果或橙子的形状是非常困难的,因为一个实际的苹果或橙子的形状不可能是一个规则图形,这里我们的主要任务是要对苹果和橙子进行分类,因此可以采用一种简单的办法来对形状进行一个粗略的描述。
首先我们可以寻找到图像边缘的顶部,底部和最宽处,从而可以测量出顶部到最宽处的垂直距离,和顶部到底部距离。这两个数值我们不应该直接作为特征使用,因为每个苹果和橙子的大小是不同,因此高度的变化范围会比较大,而且不能直接反映两类之间的差别。我们可以想象对于苹果或橙子来说,这两个值之比应该能够反映出两类之间的差异,对同一类来说相差不大,对不同类来说相差比较大。因此可以取。
综合两种特征,颜色我们也选择比值作为特征,就可以构成一个二维的特征矢量:
。
例如某个红苹果图像的特征矢量经过计算之后为:。
模式的特征空间表示
特征是以矢量的形式表示的,矢量可以看作欧式空间中的一个点,这个空间称为是特征空间。从广义上来看,欧式空间只是空间的一种形式,所谓空间,从数学意义上讲就是一个集合,整个模式识别问题可以看作是多个空间之间的转换问题。
首先,待识别的对象存在于一个实物空间中,这个空间由世界上所有可能出现的物体组成;然后,真实的物体通过摄像机等传感器变成数字量传入到计算机中,称为一个模式,所有可能的模式构成了一个模式空间,由实物空间到模式空间的转换(映射)是由数据采集环节来完成的;我们从输入的模式或样本中提取出识别特征,构成一个特征矢量,这样就完成了一个由模式空间到特征空间的映射,为了处理方便,在统计模式识别中一般将特征空间视为欧式空间;最后,由分类环节完成从特征空间到类别空间的映射,类别空间中包含我们所有解决的问题中的所有类别。
所有的空间映射过程都是一对多的映射。而且这种映射往往是非线性的复杂映射。
特征选择的作用
特征选择的过程并不是每一个识别系统都必须的环节,如果我们从模式中抽取出的特征合适的话,直接可以用这个特征矢量来进行识别。然而在大多数情况下,我们无法直观的找到哪些对分类信息足够的特征,常常是在特征抽取时,尽可能多的抽取出模式的特征,其中有些特征对识别是必要的,有些特征对识别来说是无用,这就要对这些特征进行选择,找到那些对识别有用的特征;另一方面,在各个特征之间往往存在着信息的冗余,我们可以进行某种变换来取出掉特征之间的冗余性。这两种措施的结果都是降低了特征矢量的维数,特征维数的降低,对分类器设计性能的好坏有着直接的影响,特征维数越少,分类器设计起来难度越小,因此我们要尽可能的降低特征维数。如何来从原始特征中选择出识别特征,是模式识别要研究的一个问题。
识别和训练
人类的分类识别能力不是天生就具有的,而是后天经过不断的实践和学习而逐渐具有的功能,例如对语言的学习,对文字的学习。
我们要使机器具有分类能力,也必须要对计算机进行训练,使计算机在不断的学习过程中,逐渐地具有识别能力。这个训练过程主要是通过预先输入一些样本(称为训练样本),然后依据一定的学习算法来完成。
模式识别的训练方法主要分两种:
有监督学习(有教师学习):预先已知训练样本集中每个样本的类别标号,也就是说分别给出了每个类别的训练样本集,然后应用这样的训练样本机进行训练;
无监督学习(无教师学习):预先不知道训练样本集中每个样本的类别标号,首先需要按照样本特征的相似性,对训练样本集进行归并,形成若干个训练样本的分类,此方法也称为聚类。
模式识别的学习算法是与识别方法密切相关的,每一种识别方法对应有不同的学习算法。在下面的课程中,我们在介绍每一种识别算法时,都要介绍相关的训练算法,这个训练过程也称为分类器设计过程。
所谓的模式分类实际上是一个决策的过程,当分类器已经设计好之后,每当我们输入一个待识别的类别未知的样本时,分类器需要作出一个分类决策,确定出该样本的类别标号,提供给下面的执行机构去执行相应的操作。
统计识别方法的分类:
根据类别样本在空间中的几何分布特性来进行分类:
前面说过,我们可以将输入的样本转化为一个特征矢量,也就是将模式空间中的一个点映射为特征空间中的一个点,为了叙述方便,这个特征空间我们可以暂时理解为一个欧式空间,我们可以合理地作出这样的假设:同一类别的样本在特征空间中应该聚集在一个特定的区域,不同类别在空间中聚集的区域应该有一定的差别。
方法一:近邻法,以距离哪个类别中心最近作为决策依据;
方法二:线性判别函数法,寻找到一个线型函数,由现行函数将空间划分为两个区域。
根据类别样本在空间中的概率分布特性来进行分类:
同样将输入样本转化为特征矢量,看作特征空间中的一个点,每个类别在特征空间中每一点的分谱概率是不同,首先假设输入的特征矢量可能属于任何类别,然后计算该矢量在每个类别的发生概率,以此作为判别依据,即以条件概率:作为判别依据,去概率最大的类别作为决策的类别。
总体来说,我们这门课程所要研究的问题就是:给定一个训练样本的特征矢量集合,分别属于个类别,依据一定的训练算法,设计出一个分类器,能够完成对待识别的未知类别样本的特征矢量的分类问题,决策确定应该属于哪个类别。为了叙述方便,以后都将样本的特征矢量简称为样本。
识别系统的设计和性能评价
识别系统的设计过程
首先我们要对问题进行详细地分析,确定这个问题是否是一个模式识别的问题,如果问题所要处理的对象都是确定性对象,而不具有不确定性,那么就完全可以用其它办法来解决,而不需要模式识别方法。当我们确定问题是一个模式识别问题之后,可以采用如下的步骤来设计一个模式识别系统。
收集样本,这些样本最好能够对问题有足够的覆盖性,样本的数量越多越好,样本最好预先知道其所属类别,并且尽量较少错误样本;
确定识别特征,在对问题进行深入分析的基础上,确定一组识别特征,这组特征要尽可能反映出类别之间的可分性特征,特征本身要有一定的稳定性,尽量不要重复,在对问题认识不够的前提下,可以尽可能多地取特征,然后通过特征分析去掉无用的样本;
特征抽取,设计特征抽取的方法,这里需要用到信号处理,图像处理等其它方面的知识;
特征分析,采用一定的方法对我们所确定的特征进行分析,一方面去掉冗余和无用的信息,一方面看一下所选的特征是否足够反映类别的可分性信息;
确定识别方法,设计出相应的分类器,并用样本集合进行训练;
性能分析,对所设计的分类器的性能进行分析,看一看是否能够满足问题的要求,如果不能满足,分析原因,对前面的设计进行修改。
识别系统的性能评价
在我们这门课程中主要介绍的是第4、5两个步骤的方法。因此问题一般可以描述成这样的形式,已知一组不同类别的样本集合:
首先我们将每个样本集合分成两个部分,一部分训练时使用,称为训练样本集,一部分测试时使用,称为测试样本集。在第5步中,使用训练样本集进行训练,然后使用测试样本集对设计好的分类器进行性能测试。
测试的分类器性能指标一般包括三个:
正确识别率:简称正识率。正识率=分类正确的测试样本数量/总的测试样本数量;
错误识别率:简称误识率。误识率=分类错误的测试样本数量/总的测试样本数量;
拒绝识别率:简称拒识率。拒识率=拒绝分类的测试样本数量/总的测试样本数量;
一般的系统中没有拒识的情况,只有正识率和误识率。在有些特殊的识别系统中,对识别的可靠性要求比较高,误识率要求非常低,这种情况下可以引入拒识,将暂时不能确定其类别的样本拒绝识别,从而达到提高正确率,降低错误率的要求。