第一章 模式识别基本概念

1.1 什么是模式识别

根据任务,模式识别可以划分为“分类”和“回归“两种形式。


模式识别:根据已有的知识的表达,针对待识别模式,判别决策其所属的类别或者预测其对应的回归值。
模式识别本质上是一种推理过程。

1.2 模式识别的数学表达

模式识别可以看做一种函数映射。


特征要具有辨别能力。

1.3 特征向量的相关性

点积:

点积的结果是一个标量,有对称性,x对y的点积等于y对x点积。
点积可以表示两个特征向量的共线性,即方向上的相似程度。
点积为0,说明两个向量是正交的。

投影的含义:向量x分解到向量y方向上的程度,能够分解的越多,说明两个向量方向上越相似。


残差向量:向量x分解到向量y方向上的投影向量与原向量x的误差。


欧式距离:

1.4 机器学习基本概念

所有训练样本假设满足独立且同分布。
模型的参数和结构是要学习的内容。
线性模型:模型结构是线性的(直线、面、超平面)。
非线性模型:模型结构是非线性的(曲线、曲面、超曲面)
常见非线性模型:多项式、神经网络、决策树

针对后面两个情况,要额外添加一个标准:目标函数。
通过优化算法,最终得到模型参数的最优解。

  • 监督式学习:训练样本及其输出真值都是给定的情况下的机器学习算法。
    通常使用最小化训练误差作为目标函数进行优化。

  • 无监督式学习:只给定训练样本,没有给输出真值情况下的机器学习算法。
    无监督式学习难度高于监督式学习。
    根据训练样本之间的相似程度来进行决策。
    例如:聚类、图像分割。

  • 半监督式学习
    既有标注的训练样本、又有未标注的训练样本情况下的学习算法。
    可以看做有约束条件的无监督式学习问题(标注过的训练样本用作约束条件)。
    例如:网络流数据。

  • 强化学习
    有些任务需要先后累计多次决策动作才能知道最终结果好坏,很难针对单次决策给出对应的真值。
    例如:棋类游戏。
    这是一个机器自行探索决策、真值滞后反馈的过程。

1.5 模型的泛化能力

泛化能力:训练得到的模型不仅要对训练样本具有决策能力,也要对新的(训练过程中未看见)的模式具有决策能力。
泛化能力低的表现就是过拟合:模型训练阶段表现很好,但是在测试阶段表现很差。

提高泛化能力的思路:不要过度训练
提高泛化能力的方法:

  • 选择复杂度适合的模型。
  • 正则化(在目标函数中加入正则项)。
    通过调节正则系数,降低过拟合的程度。

1.6 评估方法与性能指标

  • 留出法:
    随机划分:将数据集随机分为两组:训练集和测试集。利用训练集训练模型,然后利用测试评估模型的量化指标。
    取统计值:为了克服单次随机划分带来的偏差,将上述随机划分进行若干次,取量化指标的平均值(以及方差、最大值等)作为最终的性能量化评估结果。

  • K折交叉验证
    将数据集分割成K个子集,从其中选取单个子集作为测试集,其他K-1个子集作为训练集。每个子集都被测试一次,将K次评估值取平均,作为最终的量化评估结果。

  • 留一验证:每次只取数据集中的一个样本做测试集,剩余的做训练集。等同于K折交叉验证。


准确度:将阳性和阴性综合起来度量识别正确的程度。
精度:预测为阳性样本的准确程度。
召回率:全部阳性样本中被预测为阳性的比例。
精度高、同时召回率也高,说明模型性能越好。(但在有些情况下,精度和召回率式矛盾的)

  • F-Score:比较好的把精度和召回率两个指标综合了一下:

    当a=1时,为F1-Score,多用这个。

  • 混淆矩阵:矩阵的列代表预测值,行代表真值。
    对角线元素的值越大,表示模型性能越好。

  • 曲线度量
    上述性能指标都是基于分类器输出的是一个确定的离散标签。因此,在指标空间只是一个点。
    可以设置若干个关于输出值的阈值,不同的阈值可以代表不同的应用任务,得到多个评估值,从而可以在指标空间中画出一条曲线,从而得到评估指标的期望表征。
    1、PR曲线

    2、ROC曲线
    横轴:度量所有阴性样本中被错误识别为阳性的比率。
    纵轴:召回率。


    PR曲线和ROC曲线的比较:
    ROC曲线对于各类别之间样本分布比例不敏感,因为横轴和纵轴各自只跟真值为负或真值为正的样本相关。
    PR曲线对于各类别样本分布比较敏感,因为纵轴同时和真值正负的样本都相关。
    3、AUC

第二章 基于距离的分类器

2.1 MED分类器



在高维空间中,该决策边界是一个超平面,且该平面垂直且二分连接两个类原型的线。
MED分类器采用欧式距离作为距离度量,没有考虑特征变化的不同以及特征之间的相关性。(对角线元素不相等:每维特征的变化不同。非对角元素不为0:特征之间存在相关性。)
解决方法:去除特征变化的不同以及特征之间的相关性。

2.2 特征白化

将原始特征映射到一个新的特征空间,使得在新的看空间中特征的协方差矩阵为单位矩阵,从而去除特征变化的不同以及特征之间的相关性。
特征转换分为两步:

  • 先去除特征之间的相关性(解耦)
    求解协方差矩阵的特征值和特征向量,由特征向量构建转换矩阵。
    用转换矩阵将原始特征构成的协方差矩阵对角化.


    新特征的协方差是对角阵,对角线上的元素由原协方差矩阵的特征值构成。
    转换前后欧式距离保持一致,说明这只起到了旋转的作用。

  • 再对特征进行尺度变换(白化),使每维特征的方差相等。

特征白化:
对上一步变换后的特征载进行尺度变换,实现所有特征具有相同方案。

2.3 MICD分类器


MICD分类器的缺陷是会选择方差较大的类。

第三章 贝叶斯决策与学习

3.1 贝叶斯决策与MAP分类器

后验概率:表达给定模式x属于类Ci的可能性。
决策方法就是找到后验概率最大的那个类。
基于贝叶斯规则,已知先验概率和观测概率,模式x属于类Ci后验概率的计算公式为:

加入先验概率后,相较于观测概率,后验概率产生了迁移。

  • MAP分类器(最大后验概率分类器)
    将测试样本决策分类给后验概率最大的那个类。

    在单位空间中,决策边界通常有两条。高维空间中,决策边界通常是复杂的非线性边界。
    概率误差:等于未选择的类所对应的后验概率。

    给定所有测试样本(N为样本个数),分类决策产生的平均概率误差为:样本的概率误差的均值。
    MAP分类器决策目标:最小化概率误差,即分类误差最小化。

3.2 MAP分类器:高斯观测概率

  • 单维高斯分布
    分布函数:


    将高斯分布函数带入MAP分类器的判别公式:
    化简得到:
    令判别公式两边相等,得到决策边界。
    时,决策边界是线性的,只有一条。MAP决策边界偏向先验可能性较小的类,即分类器决策偏向先验概率高的类。
    时,决策方程是关于x的二次型函数。MAP分类器倾向选择方差较小(紧致)的类。解决了MICD分类器存在的问题。

贝叶斯分类器

在MAP分类器的基础上,加入决策风险因素,得到贝叶斯分类器。

  • 给定一个测试样本x,贝叶斯分类器选择决策风险最小的类。

3.3 决策风险与贝叶斯分类器

贝叶斯决策不能排除出现错误判断的情况,由此会带来决策风险,且不同的错误决策会产生程度完全不一样的风险。

  • 例子:判断是否是信用卡盗刷
    错误决策可能是由于盗刷类别样本稀少,造成分类器学习过程中,两个类别的先验概率相差较大。

    针对所有决策动作和候选类别,可以用一个矩阵来表示对应的损失值:

    损失值可以手动设计,也可以通过机器学习训练。

  • 贝叶斯分类器
    在MAP分类器基础上,加入决策风险因素,得到贝叶斯分类器。
    贝叶斯分类器的决策目标:最小化期望损失。(对每个测试样本选择风险最小的类。)
    给定一个测试样本x,贝叶斯分类器选择决策风险最小的类。

    给定单个测试样本,贝叶斯决策损失就是决策风险
    给定所有测试样本(N为样本个数) ,贝叶斯决策的期望损失:所有样本的决策损失之和。

    实现期望损失最小化:对每个测试样本选择风险最小的类。

  • 朴素贝叶斯分类器
    假设特征之间是相互独立的。
    所以可以把观测似然概率做简化,将其中所有维度单另拿出来分别计算每个维度的观测似然概率。然后全部相乘。
    为了避免出现错误决策,分类器可以选择拒绝。

    当τ= 1,所有样本的任何决策都会被拒绝。
    当τ< 1/K,所有样本的决策都不会被拒绝,K是类别的个数。

3.4 最大似然估计

用来计算参数估计值的。
待学习的概率密度函数记作p(x|θ), θ是待学习的参数。
给定的N个训练样本都是从p(x|θ)采样得到的、且都符合独立同分布的条件,则所有样本的联合概率密度为:
该函数称为似然函数。因此,学习参数θ的目标函数可以设计为:使得该似然函数最大。
给定所有类的N个训练样本,假设随机抽取其中一个样本属于C1类的概率为P,则选取到N个属于C1类样本的概率为先验概率的似然函数(即目标函数)。
该似然函数是二项分布:
其中P是带学习的参数。
为了最大化似然函数,求其关于参数P的偏导,令偏导为θ:
先验概率的最大似然估计就是该类训练样本出现的频率。

3.5 最大似然的估计偏差

最大似然估计得到的参数估计值的偏差。
如果一个参数的估计量的数学期望是该参数的真值,则该估计量称作无偏估计。
无偏估计意味着只要训练样本个数足够多,该估计值就是参数的真实值。
在实际计算中,可以通过将训练样本的协方差乘以N/(N - 1)来修正协方差的估计值。

3.6贝叶斯估计(1)

基于贝叶斯规则来估计参数θ的概率分布情况。
贝叶斯估计:给定参数θ分布的先验概率以及训练样本,估计参数θ分布的后验概率。
目的:估计观测似然概率。
给定单个Ci类的训练样本集合Di,针对0应用贝叶斯理论,得到其后验概率:

由于样本之间相互独立,可以得到:

  • 例子:
    高斯观测似然:

    参数先验概率:

    参数后验概率:

    省略与θ无关的项,最终可得到:
    给定Ci类的Ni个训练样本,参数θ概率分布的均值等于训练样本均值和该参数先验概率均值的加权和。
    给定Ci类的Ni个训练样本,参数θ概率分布的方差是由Ci类观测似然分布的方差、该参数的先验概率方差、Ci类的样本个数共同决定。
    当Ni足够大时,样本均值就是参数θ的无偏估计。
    如果参数的先验方差=0,则,意味先验的确定性较大,先验均值的影响也更大,使得后续训练样本的不断进入对参数估计没有太多改变。
    如果参数的先验方差,则,意味着先验的确定性非常小。刚开始由于样本较少,导致参数估计不准。随着样本的不断增加,后验均值会逼近样本均值。
    贝叶斯估计具备不断学习的能力。它允许最初的、基于少量训练样本的、不太准的估计。随着训练样本的不断增加,可以串行的不断修正参数的估计值,从而达到该参数的期望真值。

3.7贝叶斯估计(2)

给定Ci类的训练样本集Di,以及测试样本x (单维)贝叶斯规则可以写为:
观测似然概率的参数是随机变量,观测似然通过求边缘概率得到:
由于各个类别单独估计概率分布,上式可以写为:
再使用贝叶斯规则:
上一节以及求出
代入进行积分运算,得到

贝叶斯估计和最大似然估计的比较:

贝叶斯估计:

  • 把参数看做参数空间的一个概率分布。

  • 依赖训练样本来估计参数的后验概率,从而得到观测似然关于参数的边缘概率:,随着训练样本个数的逐渐增大,趋近真实均值,

  • 在已知的方差σ上加入,代表对于末知均值的不确定性。

  • 样本个数逐渐增大时,贝叶斯估计越来越能代表真实的观测似然分布:

最大似然估计:

  • 把观测似然的参数θ看做是确定值,即参数空间的一个固定的点。

  • 由于参数θ只有一个取值,所以估算观测似然概率的时候,不需要估算关于θ的边缘概率。

  • 相反,贝叶斯估计则是把θ当做是一个隐随机变量,有多种取值的可能性,所以需要求取关于θ的边缘概率,以此来得到观测似然。

  • 但是,最大似然估计有明确的目标函数,通过优化技术来求取

3.8 KNN估计

K近邻估计:给定x,找到其对应的区域R使其包含k个训练样本,以此计算概率密度函数p(x)。
第k个样本与x的距离记作,则体积V = 2
概率密度估计表达为:
训练样本个数N越大,k取值越大,概率估计的越准确。

  • KNN估计的优点:
    可以自适应的确定x相关的区域R的范围。

  • KNN估计的缺点:
    KNN概率密度估计不是连续函数。
    不是真正的概率密度表达,概率密度函数积分是∞而不是1。例如,在k= 1时。

3.9 直方图与核密度估计

KNN估计存在一些问题:

  • 在推理测试阶段,仍然需要存储所有训练样本,因为针对任意一个模式x,需要以其为中心,在训练样本中寻找k个相邻点来估计该模式的概率。

  • 由于区域R是由第k个近邻点确定的,易受噪声影响。

所以引入了直方图和核密度估计。

直方图估计:

也是基于无参数概率密度估计的基本原理:

  • R区域的确定:
    直接将特征空间分为m个格子,每个格子即为一个区域R,即区域的位置固定。平均分格子大小,所以每个格子的体积(带宽)设为V = h,即区域的大小固定。相邻格子不重叠。落到每个格子里的训练样本个数不固定,即k值不需要给定

  • 统计学习:
    由于每个区域R所囊括的训练样本个数不相同,所以需要根据每个训练样本的特征值,将其统计到相应的格子。假设训练样本个数为N,落在每个格子(记作bm)的样本个数为km,则每个格子(即bm) 统计值为km/N。

  • 概率密度估计:给定任意模式x,先判断它属于哪个格子,其概率密度即为该格子的统计值/带宽:

直方图得到的概率密度也是不连续的。

  • 直方图估计的优点:
    有固定区域R,减少了由于噪声污染造成的估计误差。
    不需要存储训练样本。

  • 直方图估计的缺点:
    固定区域R的位置:如果模式x落在相邻格子的交界区域,意味着当前格子不是以模式x为中心,导致统计和概率估计不准确。
    固定区域R的大小:缺乏概率估计的自适应能力,导致过于尖锐或平滑。

在统计阶段,用双线性插值。
在统计阶段,给定一个训练样本x,bi和bj是其相邻的两个格子,μi和μj分别是这两个格子的均值,a和b代表x到两个均值的距离。
x投票给bi的权重:ki

x投票给bj的权重:kj


带宽h过小,概率密度函数过于尖锐。
带宽h过大,概率密度函数过于平滑。

KNN估计:以待估计的任意-个模式为中心, 搜寻第k个近邻点,以此来确定区域,易被噪声污染。
直方图估计:手动将特征空间划分为若干个区域,待估计模式只能分配到对应的固定区域,缺乏自适应能力。

核密度估计:

也是基于无参数概率密度估计的基本原理:

  • R区域的确定:
    以任意待估计模式x为中心、固定带宽h,以此确定一个区域R。

  • 统计学习:
    定义一个窗口函数:以u为中心的单位超立方体
    设:
    窗口函数写成一个核函数:
    如果有训练样本落入区域R内,则核函数输出为1,否则输出为0。
    因此,落入区域R的训练样本总数:

  • 概率密度估计:
    给定任意模式x,其概率密度可以表达如下:
    核函数要满足如下两个条件,使得估计的概率密度符合概率的定义。

    所以,通常会放宽核函数输出的0/1约束,使其满足概率的定义,输出变为0~1之间的值。

核函数可以是高斯分布、均匀分布、三角分布等。
如果基于高斯核函数,则估计的概率密度是连续的。
核函数必须是对称的函数。

  • 核密度估计的优点:
    以待估计模式x为中心、自适应确定区域R的位置(类似KNN)。
    使用所有训练样本,而不是基于第k个近邻点来估计概率密度,从而克服KNN估计存在的噪声影响。
    如果核函数是连续,则估计的概率密度函数也是连续的。

  • 核密度估计的缺点:
    与直方图估计相比,核密度估计不提前根据训练样本估计每个格子的统计值,所以它必须要存储所有训练样本。

核密度估计比直方图估计更加平滑。

第四章 线性判据与回归

4.1 线性判据基本概念

生成模型:

给定训练样本{Xn},直接在输入空间内学习其概率密度函数p(x)。

  • 优势:
    可以根据p(x)采样新的样本数据。
    可以检测出较低概率的数据,实现离群点检测。

  • 劣势:
    如果是高维的x,需要大量训练样本才能准确的估计p(x) ;否则,会出现维度灾难问题。

判别模型:

给定训练样本{Xn},直接在输入空间内估计后验概率p(Ci|x)。
在分类任务中,后验概率分布p(Ci|x)相当于直接从输入样本x映射到类别输出Ci的判别函数f(x),即判别模型。

  • 优势:
    快速直接、省去了耗时的高维观测似然概率估计。
    (在分类任务中,观测概率分布所包含的大量复杂内容有时对于后验概率的影响比较有限。)

最简单的判别模型:线性判据
如果判别模型f(x)是线性函数,则f(x)为线性判据。
可以用于两类分类,决策边界是线性的,也可以用于多类分类,相邻两类之间的决策边界也是线性的。

  • 优势:
    计算量少:在学习和分类过程中,线性判据方法都比基于学习概率分布的方法计算量少。
    适用于训练样本较少的情况。

模型:
判别公式:
决策边界就是令f(x)=0(是d维空间上的超平面)
其中:w垂直与决策边界的任何向量。(决定了决策边界的方向)
Wo决定了决策边界的偏移量,使其能够满足两个类输出值分别为正负。它决定了决策边界相对于坐标原点的位置。
任意样本x到决策边界的垂直距离r为:
r值越大,这个点属于正类或者负类的程度越大。
f(x)是样本x到决策面的代数距离度量。

4.2 线性判据学习概述

线性判据的学习和识别过程:
  • 以监督式学习为例:
    基于训练样本{x1, x2, ... XN }及其标签{t1,t2...,tN},设计目标函数,学习W和Wo。
  • 识别过程:
    将待识别样本x带入训练好的判据方程:

由于训练样本个数通常会远远大于参数个数(w的维度+ wo的维度),所以线性判据满足条件的解不唯一。学习算法就是要找到一个最优解。
针对两类(正负类)分类,方便起见,将负类的输出值取反,则得到:
给定N个训练样本,参数向量w的解域位于N个超平面正半部分的交集。

找最优解的方法:

  • 设计目标函数:
    目标函数反映了如何实现有效决策的核心思想。
    目标函数的求解就是最小化/最大化目标函数。

    解析求解:求关于训练参数的偏导,并设置偏导为0
    迭代求解:先猜测参数初始值,然后不断的根据当前计算得到的更新值迭代更新参数。

  • 加入约束条件
    可以提高泛化能力,使得解域范围收缩。

4.3 并行感知机算法

根据目标函数的不同,可以设计不同的线性判据算法。

  • 预处理
    目的:根据标记过的训练样本{(xn,tn)},学习模型参数: W, Wo
    首先将两个参数合为一个参数,线性判据改写为:
    再将C2类的训练样本全部取反:
    从而得到:
    预处理后两个类的输出值都是正数。

  • 目标函数
    被错误分类的样本,输出值f(n)是负数。且输出值的绝对值越大,错误的程度越大。
    目标函数:针对所有被错误分类的训练样本(即输出值小于0的训练样本)其输出值取反求和。
    最小化该目标函数:取目标函数关于的偏导(即梯度):
    使用梯度下降法更新参数。
    每个维度的梯度反方向就是该维度往目标函数最小值收敛的最速下降方向。
    更新的大小:每个维度的梯度幅值代表参数在该维度上的更新程度。(通常加入步长来调整更新的幅度)

  • 参数更新

4.4 串行感知机算法

  • 目标函数:如果当前训练样本被错误分类,最小化其输出值取反:
    最小化目标函数,还是取关于参数向量的偏导。
    偏导不含有,所以还是使用梯度下降法求解。
    步长决定收敛的速度、以及是否收敛到局部或者全局最优点。

当样本位于决策边界边缘时,对该样本的决策有很大的不确定性。
加入margin约束条件,将错误分类的标准改为:
这里b的作用是避免出现=0的解,提高泛化能力。

4.5 Fisher线性判据

线性判据的模型可以看做是把原空间各点x投影到新的一维空间y。
找到一个最合适的投影轴,使两类样本在该轴上投影的重叠部分最少(用两类样本分布的均值之差度量),同时使得各自类内样本分布的离散程度尽可能小(用每类样本分布的协方差矩阵表示),从而使分类效果达到最佳。

最大化该目标函数:
求解w的最优解,将所有样本的均值投影到坐标原点,得到Wo。

  • Fisher线性判据:

    决策边界就是令上式=0。该决策边界就是过,斜率为的超平面。

4.6 支持向量机基本概念

给定一组训练样本,使得两个类中与决策边界最近的训练样本到决策边界之间的间隔最大。
在支持向量机中,正负类训练样本输出真值分别用+1和-1来表达。
给定标记过的训练样本{(xn, tn)},线性分类器可以表达为:
加入间隔的概念,引入一个正常数,分类器进一步表达为:
意味着没有训练样本落在间隔范围内。

  • 目标函数
    目标:最大化总间隔,等价于最小化
    目标函数:
    同时满足约束条件:这里假设

4.7 拉格朗日乘数法

  • 等式约束优化问题:
    min f(x)
    s.t. g(x)=0
    可行域:g(x)=0的区域。
    函数在等高面上任意一点的梯度方向与其等高面(切线方向)正交,且朝向( 即正方向)函数值较高的方向。f(x)的极值点x必须位于曲线g(x)=0上。
    搜寻极值点x
    :沿着g(x)=0的切线方向、向着f(x)负梯度方向移动。当出现沿着切线方向、无法再向f(x)负梯度方向移动时停止。

    此时,在该点f(x)等高线与g(x)=0相切,即f(x)与g(x)梯度方向在同一直线上,该点为f(x)的极值点x
    f(x)与g(x)的梯度记作
    如果是等式约束,在极值点x
    上,的方向必然平行,可能同向或反向,梯度的幅值可能不同。

    存在一个使得:
    可以定义一个拉格朗日函数:
    拉格朗日函数满足驻点条件和约束条件:
    等式约束问题可以转换为等价的不带约束的优化问题。

  • 不等式约束优化问题:
    min f(x)
    s.t. g(x)≤0
    可行域:g(x)≤0的区域。
    1、极值点落在可行域内:
    此时约束条件不起作用。
    直接通过获得极值点。同上。
    2、极值点落在可行域边界:
    即极值点位于区域g(x)=0区域。
    搜寻极值点x:当出现沿着g(x)=0切线方向、无法再向f(x)负梯度方向移动时停止。在该点f(x)等高线与g(x)=0相切,该点为f(x)的极值点x。对于不等式约束,在极值点x*,f(x)与g(x)的负梯度方向平行且相反。

    总结:
    无论是g(x)<0 (λ=0)还是g(x)=0 (λ>0)的约束情况,始终存在一个λ≥0 (对偶可行性), 满足:

4.8 拉格朗日对偶问题

主问题:带约束的原问题等价于如下(关于的)无约束问题。

取拉格朗日函数关于x在其可行域内的最小值,记作
对偶函数给出了主问题最优值的下界。
对偶函数是凹函数,约束条件是凸函数,所以对偶问题是凸优化问题。(局部极值点就是全局极值点)

4.9 支持向量机学习算法

求解目标函数
构建拉格朗日函数
构建对偶函数:针对W和Wo求解最小化,在极值点计算,在极值点计算拉格朗日函数第二项,在极值点得到
对于不等式约束,构建拉格朗日函数必须满足对偶可行性条件。
最大化该对偶函数:得到最优,即可得到最优的参数W和Wo。
求解W的最优解:根据找到的支持向量Xn以及对应的拉格朗日乘子构建w*:,其中Ns表示支持向量的个数。
求解Wo的最优解:针对任意一个支持向量Xs,,得到。Wo通常由所有支持向量取均值得到:

W和Wo的学习过程实际上是从训练样本中选择一组支持向量,并将这些支持向量存储下来,用作线性分类器。