研究生课程:模式识别与机器学习-期末复习
《模式识别与机器学习》期末复习
第1章 引言
模式识别:利用计算机对物理对象进行分类,在错误概率最小的条件下,使识别的结果尽量与客观物体相符合
在特征空间和解释空间之间找到一种映射关系:
机器学习:利用大量的训练数据,获得产生数据的模式或预测
第2章 统计判别
贝叶斯
作为统计判别问题的模式分类
正态分布模式的贝叶斯分类器
第3章 判别函数
线性判别函数
什么是线性判别函数?
统计模式识别中用以对模式进行分类的一种最简单的判别函数称为线性判别函数。线性判别函数的一般形式是,其中是特征向量的增广形式,是权重系数。根据的取值进行分类,这个函数在几何上一般表现为直线(高维空间的超平面),所以称之为线性判别函数。
为什么需要非线性判别函数?
对于复杂的实际应用,线性分类器往往无法满足要求,不同类别的样本之间并不总是线性可分的,比如著名的异或问题,这就需要寻找能够实现非线性分类的判别函数分类器。
多类情况:
- 多类情况1:用M个判别函数将属于这一类的和不属于这一类的分开,也就是分类成功只能有一个大于0的
- 多类情况2:用M*(M-1)/2个判别函数,两两进行分类,只有这一类关于其他所有类的判别函数都大于0时才算分类成功
- 多类情况3:M个判别函数,没有不确定区域的多类情况2,判别函数比较大小即可
权重分量数量计算:,为的维度,为多项式次数。
Fisher线性判别
感知器
多类情况增广向量不需要变为负数,要求这个类别的比其他的类别都要大,否则这个类别+样本,其他的类别-样本
H-K算法可以发现类别不可分的情况
第4章 特征选择和提取
K-L变换
第5章 统计机器学习基础
期望风险:机器学习算法的目标就是降低式所示的期望泛化误差(这个数据量被称为风险),选择期望风险最小的模型。
经验风险:用训练集的分布代替真实情况下的数据分布,最小化训练集上的期望损失
结构风险:在经验风险最小化的基础上再引入参数的正则化来限制模型能力,使其不要过度地最小化经验风险
偏差方差和噪声
简述偏差方差分解及其推导过程,并说明偏差、方差和噪声三部分的内在含义
过拟合和欠拟合
过拟合:当学习器把训练样本学的“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,在训练集上效果好。但是在测试集上效果差,这样就会导致模型的泛化性能下降。
欠拟合:模型尚未学习到数据的真实结构。在训练集和验证集上的性能都很差。
如何判断一个模型处在过拟合状态还是欠拟合状态?
- 欠拟合情况 :随着训练样本数增大,训练集得分和验证集得分相差不大,并且得分都不高。
- 过拟合情况 :随着训练样本数增大,训练集得分上升的同时和验证集得分下降。
给出3种减轻模型过拟合的方法:
过拟合:
- 获得更多数据
- 降低模型复杂度
- 特征选择
- 早停
- 正则化
- 添加噪声
欠拟合:
- 增加特征数
- 增加模型复杂度
- 减小正则化参数
假设某研究者在 ImageNet 数据上使用线性支持向量机 Linear SVM 来做文本分类的任务,请说明在如下情况下分别如何操作才能得到更好的结果, 并说明原因。
- 训练误差5%,验证误差10%,测试误差10%
- 训练、验证和测试误差都很大,模型处于欠拟合状态,可以选择将正则化参数C值适当调大,增大模型的复杂度
- 训练误差1%,验证误差10%,测试误差10%
- 训练误差比较小,验证和测试误差比较大,模型处于过拟合状态,可以选择进行数据增强、或者将C值适当调小,增加模型泛化能力
- 训练误差1%,验证误差3%,测试误差10%
- 训练和验证误差比较小,测试误差比较大,说明训练数据和测试数据的分布差别比较大,可以重新采样或者shuffle数据
如果使用SVM做二分类问题得到如下结果,分别应该采取什么措施以取得更好的结果?并说明原因。
- 训练集的分类准确率90%,验证集的分类准确率90%,测试集的分类准确率88%
- 训练、验证和测试准确率都很低,模型处于欠拟合状态,可以选择将正则化参数C值适当调大,增大模型的复杂度
- 训练集的分类准确率98%,验证集的分类准确率90%,测试集的分类准确率88%
- 训练准确率比较高,验证和测试准确率比较低,模型处于过拟合状态,可以选择进行数据增强、或者将C值适当调小,增加模型泛化能力
如果使用逻辑回归算法做二分类问题得到如下结果,分别应该采取什么措施以取得更好的结果?并说明理由。
- 训练集的分类准确率85%,验证集的分类准确率80%,测试集的分类准确率75%
- 训练、验证和测试准确率都很低,模型处于欠拟合状态,可以选择增加训练特征,使用更多的训练参数
- 训练集的分类准确率99%,验证集的分类准确率80%,测试集的分类准确率78%
- 训练准确率比较高,验证和测试准确率比较低,模型处于过拟合状态,可以选择减少训练特征,添加正则项,增加数据量等等
第6章 有监督学习方法
公式推导相关
2018-2019
2021-2022
第7章 支持向量机
径向基函数(RBF)gamma和C的影响:
- 参数gamma定义了单个训练样本的影响大小,值越小影响越大,值越大影响越小。参数gamma可以看作被模型选中作为支持向量的样本的影响半径的倒数。gamma越大半径越窄,因此如果欠拟合需要增大gamma,分的更准
- 参数C在误分类样本和分界面之间进行权衡。低的C值使分界面平滑,而高的C值通过增加模型自由度以选择更多支持向量来确保所有样本都被正确分类。因此如果欠拟合要增大C
最小化VC维h等价于最大化间隔,使分类器的复杂度小!
简述SVM算法的原理
第8章 聚类
K均值:CE
密度:AF
高斯混合:BD
Kmeans:Kmeans的判别界面应该是簇的中垂线
- 一种经典的聚类算法,简单、快速
- 假定簇为球形且每个簇的概率相等
- 能处理大规模数据,可扩展型好
- 当簇接近高斯分布时,效果较好
- 当簇具有不同的尺寸、密度、非球形,Kmeans可能得不到理想的聚类结果
- 硬划分数据点到簇,当数据上出现一些小的扰动,可能导致一个点划分到另外的簇
K-Means与GMM
K-Means
- 损失函数:最小化平方距离的和
- 样本点硬划分到某个簇
- 假定样本属于每个簇的概率相等,且为球形簇
GMM
- 最小化负对数似然
- 点到簇的从属关系为软分配
- 可以被用于椭球形簇,且各个簇概率不同
层次聚类:最小距离层次聚类可以做同心圆相关聚类
- 对噪声和离群点敏感
- 比较难处理不同尺寸的簇和凸的簇
- 成链,误把大簇分裂
DBSCAN
- 各种大小、各种形状的簇,不需要明确簇的数量
- 具有一定的抗噪音特性
- 参数选择比较困难
- 不适合密度差异较大的数据集
- 时间慢
第9章 降维
PCA的优化目标:
- 最大化映射后的样本方差角度
- 最小重建误差角度
第10章 半监督学习
基本假设
平滑假设:如果高密度区域中两个点距离较近, 那么对应的输出也应该接近
聚类假设:如果两个点在同一个簇,那么它们很有可能属于同一个类别
- 等价形式:低密度分割(决策边界应该在低密度区域)
流形假设:输入空间由所有数据点所在的多个低维流形构成,位于同一流形上的数据点具有相同的标签,流形上距离近的点的标签相似
具体算法
自我训练算法:假设输出的高度置信的预测是正确的
协同训练:假设特征可分裂,或单独对于训练一个好的分类器是充分的,和在给定类别后是条件独立的
生成式模型:假设所有数据(带标签&不带标签)都由一个潜在的模型生成(GMM,HMM,朴素贝叶斯)
半监督支持向量机:假设来自不同类别的无标记数据之间会被较大的间隔隔开
- C2很小表达对未标注样本错分的容忍度比较大,很大表示不容忍错分,每一个未标注样本也要分对
基于干扰的半监督:基于连续性假设:考虑对输入稍加改变,得到其增广表示,模型对的预测和对原始数据点的预测相似。
基于图的半监督学习:假设在所有数据点(标注数据和无标注数据)定义一个相似性图,相似的数据点之间存在边,边的权重表示两个数据点之间的相似程度,相似图中“紧密”连接的点趋向于有相同的标签
第11章 概率图模型
贝叶斯球:
HMM
前向算法
维特比算法
第12章 集成学习
bagging
降低模型的方差,偏差不变
原理:通过对训练样本进行bootstrap采样(有放回的随机采样),然后训练多个模型,最后对多个模型作平均,得到最后的融合模型。
Bagging适合对偏差低、方差高的模型进行融合,如决策树、神经网络等
boosting
降低模型的偏差,方差不变
原理:每次迭代顺序的把一些模型加进去,最后一些子模型的加权平均是我们最后的集成模型
Adaboost
Adaboost:在弱学习器失败的样本上,学习第二个弱学习器
开始初始化的时候每个样本的权重相同
分对的样本,其权重除以,权重减小
分错的样本,其权重乘以,权重增大
最后对模型进行加权融合
Adaboost 原理:先从初始训练集训练出一个学习器,再根据基学习器的表现来对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续得到更多的关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直到基学习器达到事先指定的值T,最终将这T个基学习器进行加权结合。
Adaboost 损失函数:使用指数损失函数
Adaboost算法流程:
为什么AdaBoost经常可以在训练误差为0后继续训练还可能带来测试误差的持续下降?
在训练误差下降到接近0的时候,更多的训练,会增加分类器的分类margin,这个过程也能够防止测试误差的上升,随着Margin的变大,测试误差会逐渐收敛。
AdaBoost优缺点:
优点:实现快速简单、灵活、通用性高
缺点:AdaBoost性能取决于数据和弱学习器,如果弱分类器过于复杂,可能会产生过拟合情况,如果弱分类器太弱有可能造成欠拟合,还容易收到均匀噪声的影响。
第13章 深度学习
神经元的结构
激活函数
Sigmoid函数:
在早期的神经网络中较为普遍,逐渐被更简单的ReLU函数取代
容易导致梯度消失问题:
- 导数最大值为0.25:反向传播时,返回网络的误差将会在每一层收缩至少75%
- 尾部是饱和的,对应的梯度接近0,导致消失梯度问题
Tanh函数:形状和sigmoid函数的形状很像,但tanh函数在坐标系的原点上对称:使用tanh激活函数收敛会更快,减轻消失梯度的现象
ReLU函数:
- 计算量小,不涉及除法
- 一部分神经元的输出为0:网络稀疏,减少了参数的相互依存关系,缓解过拟合
- 当时,导数为,解决了梯度消失问题,收敛速度更快
- 当时,导数为,无法更新权重
神经网络
梯度消失和梯度爆炸
梯度爆炸:梯度值超出范围:无穷大值
对学习率敏感
- 学习率较大-更大的权重-更大的梯度
- 学习率太小-模型训练没有进展
- 可能需要在训练期间大幅改变学习率
梯度消失:梯度值趋近0
无论如何选择学习率,训练都没有进展
只有顶层训练有效,底层训练基本无效,使网络更深可能并没有更好
模型的深度增加,梯度会逐渐消失:
- 将sigmoid激活函数换成其他的激活函数
- Resnet:通过跳接的方式,优化残差映射比直接优化原始映射更容易,带有集成学习的思想
- Batch normalization,还能带来正则化的效果
其他技巧:
- batch normalization 会使得我们的训练对好多因素(学习率、初始化)的要求没有那么高
- 参数初始化,或者采用预训练网络作初始化或者核初始化
- mini-batch的梯度下降
- 动量法梯度下降:移动量不仅与梯度有关,还与前一时刻的移动量有关。
- Adam:同时利用一阶动量和二阶动量进行优化
过拟合
- 早停
- 正则:L1正则能让系数=0,L2可以让参数趋向于变小,对整体的影响就变小了,相当于参数变简单了
- Dropout:随机删除一部分神经元(可视为一种集成学习)
- 数据增强:增加训练样本集尽可能让他多样化,也可以增加模型的泛化能力
卷积神经网络
- 局部连接:我们认为是一个模式在一个比较小的范围内,而不是要看全局,有些模式比整个图像小得多,神经元不需要看整幅图像就能发现模式,与一个小区域连接所需的参数更少
- 权值共享:同一个模式会在图像中不同的区域出现,不同位置可能都有这样的模式,这样做可以使得模型的参数变少
- 池化:对像素进行下采样不影响目标,通过下采样可以让图像更小,网络处理图像需要的参数更少