一.预习记录
-
第一章
在开始机器学习之前,先对模式识别有了大概了解。模式识别即根据已有知识的表达,针对待识别模式,判别决策其所属的类别或者预测其对应的回归值。简而言之,有两种形式,分类和回归。不同之处在于,分类的输出量是离散的类别表达,而回归的输出量是连续的信号表达。本质上是一个推理过程。我们可以用数学表达模式识别,将模式识别看做一个函数映射f(x),待识别模式x从输入空间映射到输出空间,在这里函数f(x)是关于已有知识的表达。了解完模式识别之后,引入模型的概念。传统意义上的模型由特征提取和回归器组成。特征是用于区分不同类别的、可测量的量,输入数据也可以看做一种原始特征表达,具有辨别能力和鲁棒性。第一次听说鲁棒性这个概念,给出的解释是针对不同的观测条件,仍能够有效表达类别之间的差异性。模式可以用特征向量代表,特征向量的运算有点积、投影,还可计算欧式距离表示相似程度。模式识别任务的模型是通过机器学习技术得到。
人工智能正热。技术创新是经济增长的根本动力。这些技术中,最重要的就是经济学家提到的“通用技术”,比如蒸汽机、内燃机、电力等。如今这个时代,人工智能就是最重要的“通用技术”。特别是行业与人工智能的结合,释放了行业的潜力,重塑了我们的生活。人工智能备受关注、取得革命性进步背后的推手,其实是“机器学习”。机器学习其实是一门多领域交叉学科,它涉及到计算机科学、概率统计、函数逼近论、最优化理论、控制论、决策论、算法复杂度理论、实验科学等多个学科。机器学习的具体定义也因此有许多不同的说法,分别以某个相关学科的视角切入。但总体上讲,其关注的核心问题是如何用计算的方法模拟类人的学习行为:从历史经验中获取规律(或模型),并将其应用到新的类似场景中。我个人的理解是,研究计算机,怎么让它学习人的行为,完成人指定给他的任务。现在很多日常生活都有机器学习相关的应用,比如:人脸识别,垃圾邮件过滤,购物车隔壁的产品推荐等等。
机器学习,大体上分成两个分类:监督学习和无监督学习;细分的话,还有半监督学习和强化学习。区分监督学习和无监督学习其实很简单,若训练集是有输入有输出,那么通过这样的训练集获取到的算法,就是监督学习算法;反之,如果训练集是只有输入没有输出,那么最后得到的算法就是无监督学习算法,典型应用有聚类和图像分割,且算法难度远高于监督式算法。半监督学习就是当训练集中,有一部分是标记的数据(有input和output),一部分是非标记数据(有input无output),那么就是半监督学习;强化学习是机器自行探索决策、真值滞后反馈的过程。通过其他学习后得到的算法,在另外一组数据的刺激下得到的更为精准的算法,这样的方式就是强化学习。
为了评价模型学习的质量,引入训练集和测试集,训练集是模型训练所用的样本数据,测试集用于评估模型的能力。训练得到的模型不仅要对训练样本具有决策能力,也要对新的模式具有决策能力,这就是泛化能力。过拟合是泛化能力低的表现,模型过于拟合训练数据。提高泛化能力的方法有选择复杂度适合的模型和正则化。几乎每个机器学习算法都有超参数,这时需要从训练集中划分出一个验证集,基于验证集调整选择超参数。量化的评估模型性能有留出法,k折交叉验证和留一验证。留一验证更有准确性,但计算复杂还可能出现分层现象。模型性能指标介绍了 准确率(Accuracy),精准率(Precision),召回率(Recall),混淆矩阵以及 F1-Score。当数据集中,正例和反例差别较大,比例失衡,这时准确度很难度量识别性能,可以通过采样处理构造一个平衡的数据集。除了这些还可通过PR、ROC、AUC曲线度量。
Accuracy:分类问题中最简单最直观的评价指标,缺点在于,当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。比如说,当100个样本中,正样本只有一个,负样本99个。假设分类准确率为99%,分类器把所有样本都预测为负样本也可以获得99%的准确率,然而我们想要的正样本预测率是很低的!为了解决这个问题,可以使用更为有效的平均准确率(每个类别下的样本准确率的算法平均)作为模型评估的指标。
精准率和召回率:(Precision & Recall)精准率是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。召回率是指分类正确的正样本个数占真正的正样本个数的比例。
小结:每个评估指标都有其价值,只有通过一组互补的指标去评估模型,才能更好地发现并解决模型存在的问题,从而更好地解决实际业务场景中遇到的问题。
曲线度量主要介绍了ROC曲线,曲线下的面积(Area Under Curve, AUC),P-R曲线
ROC曲线的横坐标为假阳性率(False Positive Rate,FPR),纵坐标为真阳性率(True Positive Rate, TPR)。
FPR = FP/N
TPR = TP/P
其中,P是真实的正样本的数量,N是真实的负样本的数量,TP是P个正样本中被分类器预测为正样本的个数,FP是N个负样本中被分类器预测为正样本的个数。
Q2:如何绘制ROC曲线?
A2:ROC曲线通过不断移动分类器的”截断点“来生辰曲线上的一组关键点的。截断点指的就是区分政府预测结果的阈值。
Q3:如何计算AUC?
A3:AUC指的是ROC曲线下的面积大小,该值能够量化地反映基于ROC曲线衡量出的模型性能。AUC的取值为[0.5,1]。AUC越大,说明分类器越可能把真正的正样本排在前面,分类性能越好。
Q4:ROC曲线与P-R曲线有什么区别?
A4:相比P-R曲线,ROC曲线有一个特点,当正负样本的分布发生变化时,ROC曲线的形状能够基本保持不变,而P-R曲线的形状一般会发生较剧烈的变化。这个特点让ROC曲线能够尽量降低不同测试集带来的干扰,更加客观地衡量模型本身的性能。在实际问题中,可用来评估样本不均衡。如果更关注于模型在特定数据集上的表现,P-R曲线则能够更直观地反映其性能。
-
第二章
初级的模式识别技术首先介绍了基于距离的决策,把测试样本到每个类之间的距离作为决策模型,将测试样本判定为与其距离最近的类。类的原型分为均值和最近邻两种。常见的距离度量有欧氏距离,曼哈顿距离和加权欧氏距离。MED分类器即最小欧氏距离分类器,它的类的原型是均值,决策边界是原型连线的垂直平分线,三维空间是平面,在高维空间是一个超平面。MED分类器采用欧氏距离作为距离度量,虽然简单,但没有考虑特征变化的不同及特征之间的相关性,因此会出现错误分类的情况。为了去除特征相关性需要使用特征白化。将原始特征映射到一个新的特征空间,使得在新空间中特征的协方差矩阵为单位矩阵。基于马氏距离的分类器是MICD分类器(最小类内距离分类器),类的原型是均值,决策边界位于到两个类的距离相等的面上,缺陷是会选择方差较大的类,而决策真值应该倾向于方差小即分布紧致的类。
-
第三章
以上两种分类器均未考虑类的分布等先验知识。通常通过先验概率进行分类,把样本分到先验概率大的那类,有了观测概率后能够对先验概率进行修正。基于贝叶斯规则,可得到类的后验概率。MAP分类器选择后验概率最大的类,即最小化决策误差。通过后验概率的结果进行分类,就要知道先验概率和观测概率。高斯分布是最常见的概率分布形式,可用于表达先验和观测概率。将高斯分布函数带入分类器的判别公式可得到决策边界。从而可得到MAP分类器偏向于先验较大可能、分布较为紧致的类。由于不同的决策错误带来的后果不同,就引入决策风险这个系数。定义损失用来表征当前决策动作相对于其他候选类别的风险程度。在MAP分类器基础上加入决策风险因素得到贝叶斯分类器,选择决策风险小的类。,决策目标为最小化期望损失。
如果先验和观测概率并不能预先知道,需要利用训练样本集的信息去进行估计。估计方法有参数估计和非参数估计,参数估计包括最大似然估计和贝叶斯估计。最大似然估计是把待估计的参数看做确定的未知量,根据训练样本集的数据求取该位置参数的最优估计值。若参数的估计量的数学期望是该参数的真值,则估计量称作无偏估计。均值的最大似然估计是无偏估计,协方差的最大似然估计是有偏估计。贝叶斯估计通过给定参数分布的先验概率及训练样本,估计参数的后验概率,可以不断修正参数的估计值,从而达到该参数的期望真值。
如果概率分布形式未知,可通过无参数技术来实现概率密度估计。常用方法有K近邻法,直方图技术和核密度估计。k近邻分类器又称为KNN算法,是指需要从训练集中找出待识别样本的k个最近邻,依据它们分别所属的类别来决定应当把待识别样本划分到哪个类别中。可用二项分布表达k个样本落在区域R的概率密度,当N很大时,可以用二项分布的均值近似表达k的分布。KNN估计的优点是可以自适应的确定x相关的区域R的范围,缺点是KNN概率密度估计不是连续函数,不是真正的概率密度表达。
-
第四章
第四章主要讲述的是线性判定与回归,首先介绍了生成模型的优势和劣势,为了解决劣势引入判别模型:给定训练样本{Xn},直接在输入空间内估计其后验概率P(Ci|x),如果判别模型f(x)是线性函数,则f(x)是线性判据。之后介绍了感知机算法,包括并行感知机和串行感知机,感知机算法的目的是根据标记过的训练样本{(xn,tn)}学习模型参数:w,w0。Fisher线性判据的基本原理:找到一个最合适的投影轴,使两类样本在该轴上投影的重叠部分最少,从而使分类效果达到最佳,最佳标准之一:投影后,使得不同类别的样本分布的类间差异尽可能大,同时使得各自类内样本分布的离散程度尽可能小。支持向量机基本概念:设计思想给定一组训练样本,使得两个类中与决策边界最近的训练样本到决策边界之间的距离最大。支持向量机的目标函数是一个条件优化问题,通常使用拉格朗日乘法求解。进而介绍拉格朗日对偶问题和支持向量机的算法。
二.复习记录
word链接
复习记录
三.学习心得
学完最大的感受就是机器学习真的很难,涉及的数学知识多又复杂,课后需要花很长时间去消化还不一定能理解。第四章相比前面更加复杂,所以预习和复习的效果都没有很好。目前把理论和实践联系到一起还有些困难。