《机器学习》第一次作业——第一至三章学习记录和心得

第一章 模式识别基本概念

模式识别应用领域

字符识别:计算机视觉领域,如手写体字符识别:OCR
交通标志识别:计算机视觉领域,如交通标志识别:辅助/无人驾驶
动作识别:计算机视觉领域,如动作识别
语音识别:人机交互领域,如语音识别
模式识别:医学领域,如心跳异位搏动识别
应用程序识别:网络领域,如应用程序识别(基于TCP/IP流量)
模式识别:金融领域,如银行信贷识别 股票价格预测
目标抓取:机器人领域,如机械手目标抓取点位姿
无人驾驶:无人车领域

模式识别定义以及相关概念:

模式识别:根据已有知识的表达,针对待识别模式,判别决策其所属的类别或者预测其对应的回归值,本质上是一种推理过程;从数学角度来看,它可以被看做一种函数映射。
推理过程:

 数学表示:数学解释可表示为:y=f(x) 其中x代表了输入模式,f是已有知识的表达,y则为输出类别;

 模式识别可以划分为“分类”和“回归”两种形式:
  分类:输出量是离散的类别表达,即输出待识别模式所属的类别,分为二类或多类。
  回归:输出量是连续的信号表达,输出量是单个或多个维度。
  回归是分类的基础,离散的类别值是由回归值做判定决策得到的。

输入空间:原始输入数据x所在的空间,其维度构成输入空间维度。
输出空间:输出的类别/回归值y所在的空间,类别的个数构成回归值的维度。

模型:用于分类,广义上的模型包括特征提取、回归器、判别函数,而狭义上的模型没有判别函数。

分类器
由回归器和判别函数组成。
判别函数:使用一些特定的非线性函数来实现,通常记为函数g,通常判别函数固定,所以不把它归于模型的一部分。
sign函数用来进行二类分类,max函数用来进行多类分类。
特征:可以用于区分不同类别模式的、可测量的量,输入数据也可以看作原始特征表达。特征具有辨别能力,提升不同类别之间的识别性能。

鲁棒性:针对不同的观测条件,仍能够有效表达类别之间的差异性。

数学表示和特征向量的相关性

特征向量:多个特征构成的列向量,可以表达为模长x方向。

意义:每个特征向量代表一个模式,计算向量间的相关性,是度量所识别模式是否相似的基础

点积:
两个向量 a(a0, a1, ..., an),b(b0, b1, ..., bn) 的点积定义为:a·b = a0b0+a1b1+……+anbn=|a||b|cos<a,b>
使用矩阵乘法并把(纵列)向量当作n×1 矩阵,点积还可以写为:a·b = a.Tb,a.T为矩阵a的转置
点积计算结果为标量,有正有负,数值越大,说明两个向量间越相似

投影:
将向量a垂直投射到向量b方向上的长度(标量) a0 = |a|cos<a,b>
在b方向上分解得越多,说明ab方向上越相似当cos<a,b>=0时完全等同
点积ab = 投影a0向量b模长|b|

残差向量:
向量a分解到向量y方向上得到的投影向量a0与原向量a的误差
ra = a-a0=a-|a|cos<a,b>/|b|b

欧氏距离:
两个特征向量间的欧式距离可以表征二者之间的相似程度,与投影不同,综合考虑了方向和模长
d(a, b) = sqrt(∑(ai-bi)**2), i=1,2,…,n

机器学习的基本概念

线性模型:
模型结构为线性(直线、面、超平面):y=W.T*X
仅适用数据线性可分时,如鸢尾花数据集

非线性模型:
模型结构为非线性(曲线、曲面、超曲面):y=g(X)
适合数据线性不可分,如异或问题
常见非线性模型:多项式、神经网络、决策树

样本量vs模型参数量:
样本个数与模型参数个数相同:W有唯一解
样本个数大于模型参数个数:W无准确解,往目标函数中额外添加一个标准,通过优化这个标准得到近似解
样本个数小于模型参数个数:W无解/无数个解,还需要在目标函数中加入体现对于参数解的约束条件,据此选出一个最优的解

监督式学习:
定义:训练样本及其输出真值都给定的学习
即每个样本的正确输出都已知的情况,可以通过最小化模型预测与真值之间的误差来优化模型

无监督式学习:
定义:只给定训练样本的学习
难度大于监督式,典型应用为聚类问题、图像分割

半监督式学习:
定义:部分训练样本标注,其余未标注的学习
可看作有约束条件的无监督式学习问题:标注过的训练样本用作约束条件,典型应用为网络流数据

强化学习:
定义:及其自行探索决策、真值滞后反馈
有些任务需要累积多次决策行动才能知道最终结果。

模型的泛化能力

泛化能力
定义:训练好的模型不仅能用于训练样本,也要能用于没见过的新样本
泛化能力低:过拟合

超参数
如选取的多项式阶数、一组训练样本个数、学习率、正则系数
调参:从训练集划分出验证集,基于验证集调整选择超参数

评估方法与性能指标

留出法
随机划分,将数据集分为训练集和测试集,测试集用于评估模型
取统计值,随机进行上述划分若干次,取量化指标平均值作为最终结果
k折交叉验证
数据集分为k个子集,取其中一个为训练集,其余作为训练集
重复以不同方式划分k次,使得每个子集都有作为测试集,这k次评估值取平均作为最终结果

留一验证
k折交叉验证中k=样本总数n的情况

PR曲线
横轴召回率,纵轴精度
精度高且召回率高说明模型性能好,但二者时常矛盾,无法同时很高
理想情况能取到右上角点(1, 1)。曲线越往右上凸,模型性能越好。

第二章 基于距离的分类器

MED分类器

把测试样本到每个类之间的距离作为决策模型,将测试样本判定为与其距离最近的类。概念:最小欧式距离分类器(Minimum Euclidean Distance Classifier)
距离衡量:欧式距离
类的原型:均值
类的原型:用来代表这个类的一个模式或者一组量,便于计算该类和测试样本之间的距离。
其中 均值是对类中所有训练样本代表误差最小的一种表达方式。该类中所有训练样本的均值作为类的原型:
从一类的训练样本中,选取与测试样本距离最近的一个训练样本,作为该类的原型。类的原型取决于测试样本。
缺陷
1.对类的表达误差较大。
2.对噪声和异常样本比较敏感。


MED分类器的决策边界:

MED分类器存在的问题:MED分类器采用欧氏距离作为距离度量,没有考虑特征变化的不同及特征之间的相关性。

特征白化

概念:将原始特征映射到一个新的特征空间,使得在新空间中特征的协方差矩阵为单位矩阵,从而去除特征变化的不同及特征之间的相关性。
特征正交白化:将特征转换分为两步:先去除特征之间的相关性(解耦, Decoupling),然后再对特征进行尺度变换(白化, Whitening),使每维特征的方差相等。

MICD分类器

最小类内距离分类器(Minimum Intra-class Distance Classifier),基于马氏距离的分类器。
距离度量:马氏距离
类的原型:均值

MICD分类器的缺陷是会选择方差较大的类。
MICD分类器的问题:当两个类均值一样时,MICD偏向于方差大的类。在此种情况,决策真值应该是倾向于方差小(分布紧致)的类。

基于距离的决策:

仅考虑每个类别各自观测到的训练样本的分布情况,例如,均值(MED分类器)和协方差(MICD分类器)。
没有考虑类的分布等先验知识,例如,类别之间样本数量的比例,类别之间的相互关系。

KNN概率密度估计

Knn的优缺点:
优点:可以自适应的确定𝒙相关的区域𝑅的范围。
缺点:1,KNN概率密度估计不是连续函数。2,不是真正的概率密度表达,概率密度函数积分是 ∞ 而不是1。例如,在k=1时。

第三章 贝叶斯决策与学习

先验概率和后验概率

先验概率:根据以往的经验和分析得到的概率,不依靠观测数据。
表示方式有:
常数表达:例如,𝑝 𝐶𝑖 = 0.2
参数化解析表达:高斯分布……
非参数化表达:直方图、核密度、蒙特卡洛…
后验概率:
从概率的观点看,给定一个测试模式𝒙,决策其属于哪个类别需要依赖于如下条件概率:P(C, x)
输入模式𝒙 :随机变量(单维特征)或向量(高维特征)。类别输出𝑪:随机变量,取值是所有类别标签{𝐶𝑖} 。
针对每个类别𝐶𝑖 ,该条件概率可以写作:P(Ci , x) 该条件概率也称作后验概率(posterior probability) ,表达给定模式𝒙属于类𝐶𝑖可能性 ;
观测似然概率:也叫似然概率,这个可以比做成在很多组参数中,选择一组最能拟合观测数据的参数。

.贝叶斯规则

MAP分类器

最大后验概率(MAP)分类器:将测试样本决策分类给后验概率最大的那个类。决策边界指的是两个后验概率相等的地方。单维空间:通常有两条决策边界;高维空间:复杂的非线性边界。

决策误差最小化:MAP分类器决策目标:最小化概率误差,即分类误差最小化。给定所有测试样本,MAP分类器选择后验概率最大的类,等于最小化平均概率误差,即最小化决策误差!

高斯观测概率

决策边界:

当𝜎𝑖 = 𝜎𝑗 = σ 时,决策边界是线性的,只有一条;
如果𝜇𝑖 < 𝜇𝑗,且𝑃 𝐶𝑖 < 𝑃 𝐶𝑗 ,则𝛿 < 0:说明:在方差相同的情况下,MAP决策边界偏向先验可能性较小的类,即分类器决策偏向先验概率高的类。
当𝜎𝑖 ≠ 𝜎𝑗时,决策边界有两条(即非线性边界),该决策方程是关于𝒙的二次型函数。
当𝜎𝑖 > 𝜎𝑗且先验概率相等时,𝛿 > 0,分类器倾向选择𝐶𝑗类,即方差较小(紧致)的类。
总结:因此,MAP分类器可以解决MICD分类器存在的问题:当方差不相同时,设𝜇𝑖 = 𝜇𝑗 = 𝜇,𝜎𝑖 > 𝜎𝑗,MAP分类器倾向选择方差较小的类。

三种分类器比较

对于高维的高斯分布,决策边界是一个超二次型,并且始终偏离MICD的决策边界一定的距离。

决策风险与贝叶斯分离器

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

    给定一个测试样本𝒙,贝叶斯分类器选择决策风险最小的类;
    给定单个测试样本,贝叶斯决策损失就是决策风险𝑅(𝛼𝑖|𝒙)。给定所有测试样本(N为样本个数),贝叶斯决策的期望损失:所有样本的决策损失之和。

决策目标:给定所有测试样本 {𝒙},贝叶斯分类器的决策目标:最小化期望损失。

如果出现在决策边界附近的处理方法:
为了避免出现错误决策,分类器可以选择拒绝。引入阈值τ :
当τ = 1,所有样本的任何决策都会被拒绝。
当τ < 1/𝐾,所有样本的决策都不会被拒绝,K是类别的个数。

最大似然估计

两种监督学习方式:

  • 参数化方法:给定概率分布的解析表达,学习这些解析表达函数中的参数。该类方法也称为参数估计。例如,高斯分布的均值(向量)和方差(协方差);
  • 非参数化方法:概率密度函数形式未知,基于概率密度估计技术,估计非参数化的概率密度表达。
  • 最大似然估计:整个建模过程需要一个似然函数来描述在不同模型参数下真实数据发生的概率,似然函数是关于模型参数的函数。最大似然估计就是寻找最优参数,使得观测数据发生的概率最大、统计模型与真实数据最相似。
  • 先验概率估计:给定所有类的𝑁个训练样本,假设随机抽取其中一个样本属于𝐶1类的概率为𝑃,则选取到𝑁1个属于𝐶1类样本的概率为先验概率的似然函数(即目标函数)。

最大似然的估计偏差

无偏估计:无偏估计意味着只要训练样本个数足够多,该估计值就是参数的真实值。
均值的最大似然估计:是无偏估计!
协方差的最大似然估计:是有偏估计!
关于协方差的最大似然估计偏差:估计偏差是一个较小的数。当N足够大时,最大似然估计可以看做是一个较好的估计。
在实际计算中,可以通过将训练样本的协方差乘以𝑁/(𝑁 − 1)来修正协方差的估计值。

贝叶斯估计

贝叶斯估计:给定参数𝜃分布的先验概率以及训练样本,估计参数θ分布的后验概率。
假设,Ci类的观测似然概率是单维高斯分布,并且方差1已知,那么待估计参数θ就是均值1。并且假设θ的先验概率分布也服从单维高斯分布,方差2和均值2已知。因此可以计算后验概率。
参数𝜃的后验概率是一个高斯分布,其均值和方差为𝜇𝜃和𝜎𝜃;
给定𝐶𝑖类的𝑁𝑖个训练样本,参数θ概率分布的均值等于训练样本均值和该参数先验概率均值的加权和。给定𝐶𝑖类的𝑁𝑖个训练样本,参数θ概率分布的方差是由𝐶𝑖类观测似然分布的方差、该参数的先验概率方差、 𝐶𝑖类的样本个数共同决定。
当𝑁𝑖足够大时,样本均值m就是参数θ的无偏估计。

参数先验对后验概率的影响:
如果参数的先验方差𝜎0 = 0,则𝜇𝜃 → 𝜇0,意味先验的确定性较大,先验均值的影响也更大,使得后续训练样本的不断进入对参数估计没有太多改变。
如果参数的先验方差𝜎0 ≫ 𝜎,则𝜇𝜃 → 𝑚,意味着先验的确定性非常小。刚开始由于样本较少,导致参数估计不准。随着样本的不断增加,后验均值会逼近样本均值。

贝叶斯估计具备不断学习的能力
它允许最初的、基于少量训练样本的、不太准的估计。
随着训练样本的不断增加,可以串行的不断修正参数的估计值,从而达到该参数的期望真值。
利用的θ的后验概率,再和θ是确定值的情况下的观测似然进行相乘并对θ进行积分,计算得到关于θ的边缘概率。从而得到观测似然概率的估计,该估计也是服从高斯分布的。对比最大似然估计,最大似然估计有明确的目标函数,只需要求偏导就能得到估计值。而贝叶斯估计有多个取值的可能性,在学习的过程中,逐渐缩小取值的范围,直到趋近真值,所以贝叶斯估计计算复杂度很高。

无参数概率密度估计

常用的无参数技术主要有:
K近邻法(K-nearest neighbors)
直方图技术(Histogram technique)
核密度估计(Kernel density estimation)

给定𝑁个训练样本,在特征空间内估计每个任意取值𝒙的概率密度,即估计以𝒙为中心、在极小的区域𝑅 = (𝒙, 𝒙 + 𝛿𝒙) 内的概率密度函数𝑝(𝒙);
无参数估计的任务: 估计概率𝑝(𝒙)。
如果区域𝑅足够小,𝑃是𝑝(𝒙)的平滑版本,可以用来估计𝑝(𝒙)。

各种估计对比

KNN估计:以待估计的任意一个模式为中心,搜寻第𝑘个近邻点,以此来确定区域,易被噪声污染。
直方图估计:手动将特征空间划分为若干个区域,待估计模式只能分配到对应的固定区域,缺乏自适应能力。
核密度估计:以待估计模式𝒙为中心、自适应确定区域𝑅的位置(类似KNN)。使用所有训练样本,而不是基于第 𝑘 个近邻点来估计概率密度,从而克服KNN估计存在的噪声影响。如果核函数是连续,则估计的概率密度函数也是连续的。
与直方图估计相比,核密度估计不提前根据训练样本估计每个格子的统计值,所以它必须要存储所有训练样本。

心得体会

1.许多知识都是相互关联相互结合的,需要结合起来学习。
2.与代码相关的知识点需要结合代码理解会比较快速。

posted on 2021-05-05 21:31  edwardwsb  阅读(90)  评论(0编辑  收藏  举报