模式识别考试题目

本文主要记录一下模式识别的考试题目及其答案,并且熟悉在markdown文档中数学公式的语法。

1.什么叫做 KMeansK-Means ?简述其基本步骤?并简述 kk 如何选取?

传统的 KMeansK-Means 算法流程:

输入是样本集 D={x1,x2,...xm}D=\{x_1,x_2,...x_m\}, 聚类的簇数 kk ,最大迭代次数 NN

输出是簇划分 C={C1,C2,...Ck}C=\{C_1,C_2,...C_k\}

1)从数据集 DD 中随机选择 kk 个样本作为初始的 kk 个质心向量: {μ1,μ2,...,μk}\{\mu_1,\mu_2,...,\mu_k\}

2)对于 n=1,2,...Nn=1,2,...N

  a)将簇划分初始化为 Ct=t=1,2...kC_t=\varnothing\quad t=1,2...k

  b)对于 i=1,2...mi=1,2...m , 计算样本中 xix_i 和各个质心向量 μj(j=1,2...k)\mu_j(j=1,2...k)的距离:dij=xiμj2d_{ij}=\lVert x_i-\mu_j \rVert{^2} ,将 xix_i 标记为最小的 dijd_{ij}所对应的类别 λi\lambda_i ,此时更新 Cλi=Cλi{xi}C_{\lambda_i}=C_{\lambda_i}\cup\{x_i\}

  c)对于 j=1,2...kj=1,2...k,对 CjC_j 中所有的样本点重新计算新的质心 μj=1CixCjx\mu_j=\frac{1}{\left| C_i \right|}\sum_{x \in C_j}x

  d)如果所有的 kk 个质心向量都没有发生变化,则转到步骤3

3)输出簇划分 C=C1,C2,...CkC={C_1,C_2,...C_k}

参数 KK 如何选取:

1)手肘法:

手肘法的核心指标是 SSESSE (sum of the squared errors, 误差平方和)。

SSE=i=1kpCipmi2SSE=\sum_{i=1}^k\sum_{p \in C_i} \left| p-m_i \right|^2

其核心思想在于,随着聚类数的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,SSESSE 自然会逐渐减小。当 kk 小于真实聚类数目时, SSESSE 的下降幅度会很大。当 kk 达到真实聚类数后,再增加 kk 提高聚合程度的回报会迅速变小,SSESSE 下降幅度会骤减,然后随着 kk 值的继续增大而趋于平缓。因此,SSESSEkk 的关系图是一个手肘的形状,这个肘部对应的 kk 值就是数据的真实聚类数。

2)轮廓系数法:

其核心指标是轮廓系数 (Silhouette Coefficient) ,某个样本点 XiX_i 的轮廓系数定义如下:

S=bamax(a,b)S=\frac{b-a}{max(a,b)}

其中,a是 XiX_i 与同簇的其他样本的平均距离,称为凝聚度;b是 XiX_i 与最近簇中所有样本的平均距离,称为分离度。其中最近簇的定义是:

Cj=argminCk1npCkpXiC_j=arg \enspace min_{C_k} \frac{1}{n} \sum_{p \in C_k} \left| p-X_i \right|

其中 pp 是某个簇 CKC_K 中的样本。上述公式是用 XiX_i 到某个簇所有样本平均距离作为衡量该点到该簇的距离后,选择离 XiX_i 最近的一个簇作为最近簇。

求出所有样本的轮廓系数后再求平均值就得到了平均轮廓系数。平均轮廓系数的取值范围为 [1,1][-1,1] ,且簇内样本的距离越近,簇间样本距离越远,平均轮廓系数越大,聚类效果越好。那么,很自然地,平均轮廓系数最大的 kk 便是最佳聚类数。

参考资料:

  1. K-Means原理初探
  2. K-Means中K值的选取
  3. How to Determine the Optimal K for K-Means


2.什么叫模式识别,研究模式识别有何意义?

定义1:

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。我们把环境与客体统称为“模式”。随着计算机技术的发展,人类有可能研究复杂的信息处理过程。信息处理过程的一个重要形式是生命体对环境及客体的识别。对人类来说,特别重要的是对光学信息(通过视觉器官来获得)和声学信息(通过听觉器官来获得)的识别。这是模式识别的两个重要方面。

定义2:

模式识别是通过计算机用数学技术方法来研究模式的自动处理和判读。是对表征事 物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,是信息科学和人工智能的重要组成部分。

意义:

人们为了掌握客观事物,按事物相似的程度组成类别。模式识别的作用和目的就在于面对某一具体事物时将其正确地归入某一类别。

参考资料:

  1. 模式识别


3.模式识别预处理有哪些内容

预处理的目的:

预处理的目的是去除噪声, 加强有用的信息, 并对输入测量仪器或其他因素 所造成的退化现象进行复原。

预处理的两种情况:

1)一是使数据的质量更好, 比如用一些数字信号处理的方法去除信号中的噪声, 或者对一幅模糊的图像进行图像增强等, 需要注意的是要确保这种预处理是有利于后期的模式识别工作的;

2)另一种预处理相对没有得到足够的重视, 即样本集的预处理, 比如样本集中野值的剔除、类别的合并或分裂等。这一工作一般可以根据领域的专门知识进行, 也可以采用模式识别中的一些技术, 比如在进行后续工作之前先对样本集进行一次聚类分析。



4.极大似然方法与贝叶斯估计的差异

极大似然方法将要待估计的未知参数 Θ\Theta 看作是一个常数,其目标是得到使得当前样本对应的事件发生的可能性最大的参数估计值 θ^mle\hat{\theta}_{mle}

贝叶斯估计则是将待估计的未知参数 Θ\Theta 看作一个随机变量,其具备某种先验分布。下面是关于贝叶斯推断的总结:

1)假定未知随机变量 Θ\Theta 具有某种先验分布 pΘp_{\Theta}

2)得到观测向量 XX 的条件分布 PXΘP_{X|\Theta}

3)一旦 XX 的一个特定值 xx 被观测到后,运用贝叶斯法计算 Θ\Theta 的后验分布 pΘX(θx)p_{\Theta|X}{(\theta|x)} 。然后通过后验分布来得到参数的估计值 θ^be\hat{\theta}_{be}

参考资料:

  1. 如何理解似然函数
  2. 极大似然估计和贝叶斯估计
  3. 《概率导论》(第二版)


5.简述 SVMSVM 的基本思想

SVMSVM 的核心思想是:尽最大努力使两个类别之间有最大间隔,这样才能使分隔具有更高的可信度,并且对于未知的新样本也有很好的分类预测能力,即泛化能力。

其过程为:对于给定的数据集,在样本空间中找到一个划分超平面 WTX+b=0W^TX + b = 0,将不同类别的样本分开。



6.神经网络训练时,是否可以将所有的参数初始化为零,为什么?

两层的前馈网络(不包含隐藏层,如逻辑回归)的收敛性不受初始值影响,各个权值可以全设定为零;

三层以上的前馈网络,即至少包含一个隐藏层的网络,如果初始值都为零,那么通过网络后计算的输出值相同,使用反向传播算法计算的梯度值也相同,对各个参数的更新也是相同的,故每个权重在训练过程中保持一致,也就失去了训练的价值。

参考资料:

  1. 谈谈神经网络权重为什么不能初始化为0


7.SigmoidSigmoid 函数作为激活函数有什么缺点?

SigmoidSigmoid 函数表达式为:σ(z)=11+ez\sigma(z)=\frac{1}{1+e^{-z}}

优点:

1)输出映射在 (0,1)(0,1) 之间,适用于将预测概率作为输出的模型;

2)函数可微,梯度平滑,避免出现跳跃的输出值。

缺点:

1)在变量 zz 取值为较大的正值或负值时,输出接近于1或0,函数对输入不敏感。当使用反向传播算法进行权重更新时,会出现梯度消失的情况,权重更新很慢。

2)SigmoidSigmoid 函数进行指数运算,会有较大的计算复杂度,降低训练速度。

3)SigmoidSigmoid 函数的输出不是0均值的,将其输出作为后层的输入时,会降低权重更新的效率。

参考资料:

  1. 温故知新——激活函数及其各自的优缺点
  2. 深度学习领域最常用的10个激活函数,一文详解数学原理及优缺点


8.简述 KK 近邻分类的方法

1)选择近邻的数量 KK 和距离度量方法

2)对新的输入实例,在给定数据集中找到与该实例最邻近的 KK 的实例(即 KK 个邻居),这 KK 个实例的多数属于某个类,就将该输入实例分类到该类中。

在实践过程中,我们一般选取较小的 KK 值,然后通过交叉验证法来选取最优的 KK 值。

参考资料:

  1. 一文搞懂k近邻(k-NN)算法(一)
  2. 完结篇|一文搞懂k近邻(k-NN)算法(二)
  3. 《Python机器学习》


9.06年之前,神经网络都很少有人使用,那么根据上课内容说明深度神经网络能够快速应用的技术突破有哪些?

1)硬件方面,GPU算力的增长,使得在2012年的ImageNet比赛中,AlexNet模型获得冠军。后续GPU算力的进一步增长使得在大规模数据上运用神经网络模型成为可能。

2)2015年ResNet模型的提出克服了过深的神经网络所出现的梯度爆炸和梯度消失的问题,使得模型训练精度进一步提高。

3)MXnet、PyTorch以及TensorFlow等深度学习框架大大提高了研究者开发和改进模型的效率,推动了神经网络模型的迭代和应用。

4)2017年Transformer模型将多头自注意力机制应用到 Encoder-Decoder 架构中,使得神经网络模型在自然语言处理领域的训练效果进一步提升,后续将Transformer架构迁移到计算机视觉领域的ViT模型也为其带来了新的突破。



10.简述马尔可夫模型的三个核心问题

1)评估问题(概率计算问题)

已知模型 λ=(A,B,π)\lambda=(A,B,\pi) 和观测序列 O=(o1,o2,..,oT)O=(o_1,o_2,..,o_T) ,计算在模型 λ\lambda 下观测序列 OO 出现的概率 P(Oλ)P(O|\lambda)

对应解决该问题的算法为向前-向后算法。

2)解码问题(预测问题)

给定模型 λ=(A,B,π)\lambda=(A,B,\pi) 和观测序列 O=(o1,o2,..,oT)O=(o_1,o_2,..,o_T) ,求给定观测序列条件概率 P(IO)P(I|O) 最大的状态序列 I=(i1,i2,,...,iT)I=(i_1,i_2,,...,i_T) 。即给定观测序列,求最有可能的相应的状态序列。

对应解决该问题的算法我维特比算法。

3)学习问题

已知观测序列 O=(o1,o2,...,oT)O=(o_1,o_2,...,o_T) ,估计模型 λ=(A,B,π)\lambda=(A,B,\pi) 参数,使得在该模型下观测序列概率 P(Oλ)P(O|\lambda) 最大,即最大似然估计。

对应解决该问题的算法为鲍姆-韦尔奇(BaumWelchBaum-Welch)算法

参考资料:

  1. 一文掌握马尔科夫链与隐马尔可夫模型
  2. 01 隐马尔可夫模型 - 马尔可夫链、HMM参数和性质
  3. 02 隐马尔可夫模型 - HMM的三个问题 - 概率计算问题