周志华 机器学习 笔记
首先的阶段由卷积层和池化层组成,卷积的节点组织在特征映射块(feature maps)中,每个节点与上一层的feature maps中的局部块通过一系列的权重即过滤器连接。加权和的结果被送到非线性函数中如ReLU。一个feature maps中所有的节点分享相同的过滤器,即共享权重。这种结构的原因是双重的,第一,图像中一个值附近的值是高度相关的,第二,不同区域的值是不相干的。换句话说,一个图像某部分出现的特征会在其他部分出现,因此可以实现权值共享并且检测到相同模式在矩阵的不同部分,这种操作在数学上称之为卷积,这也是其名字由来。
--------------------------------------------------------------------------
第一章 绪论:
1.学习/训练:从数据中学的模型的过程
2.训练数据:训练过程中使用的数据
训练样本:训练数据中的每个样本
训练集:训练样本组成
3.预测的是离散值:分类 (classification)
连续值:回归(regression)
只涉及两个的类别:二分类
4.聚类:将训练集中的样本分成若干组
每组叫做簇
5.根据训练数据是否拥有标记信息,学习任务分为:
监督学习(supervised learning):分类,回归
无监督学习(unsupervised learning):聚类
6.从样例中学习:归纳学习
7.学的模型适用于新样本的能力:泛化
8.版本空间:存在着与训练集一致的“假设集合”
样例:
(色泽=*;根蒂=蜷缩;敲声=浊响)
其版本空间有两个:
(色泽=*;根蒂=*;敲声=浊响)
(色泽=*;根蒂=蜷缩;敲声=*)
9.归纳偏好(inductive bias):机器学习算法在学习过程中对某种类型假设的偏好
10.Occam's razor(奥卡姆剃刀):若有多个假设与观察一致,则选择最简单的那个。
11.support vector machine (支持向量机)
12.“没有免费的午餐”定理(No Free Lunch Theorem)NFL:无论学习算法a多聪明,学习算法b多笨拙,它们的期望性能竟然相同。
------------------------------------------------------------------------------------------
第二章 模型评估与选择:
1.分类错误的样本数/样本总数:错误率
精度=1-错误率
2.误差:学习器在实际预测输出与样本的真实输出之间的差异
3.学习器在训练集上的误差称为:训练误差/经验误差
在新样本上的误差:泛化误差
4.过拟合(overfitting):当学习器把训练样本学得太好了的时候,很可能已经 把训练样本自身的一些特点当作了所有潜在样本都会有的一些性质,这样就会导致训练样本的泛化能力下降
5.从一个包含了m个样例的数据集D中,既要训练,又要测试,可以对D做一些处理,方法主要有:
100次留出法/10次10折交叉验证 都是进行了100次训练
1)留出法:直接将数据集D划分为两个互斥的集合,注意,单次使用留出法得到的结果往往不可靠,一般采用若干次随机划分,重复进行实验评估后取平均值作为留出法的评估结果
一般而言,测试集至少应该包含30个样例。
常见做法:将大约2/3~4/5的样本用于训练,剩余样本用于测试。
2)交叉验证法(k折交叉验证):将数据集D划分为K个大小相似互斥的子集,为减少因样本划分不同而引入的差别,k折交叉验证通常要随机使用不同的划分,重复p次,最终的评估结果是这p次k折交叉验证结果的均值。例如:10次10折交叉验证
留一法(交叉验证法特例)(Leave-One-Out):在数据集D中,包含m个样本,令k=m。
留一法 优点:不受随机划分的影响,在绝大多数的情况下,评估结果比较准确;
缺点:数据集比较大时,计算开销比较大。
3)自助法(bootstrapping):直接以自助采样法作为基础(bootstrap sampling)
在数据集较小、难以有效划分训练/测试集时有用
优点:自助法能共初始数据集中产生多个不同的训练集,这对集成学习很有好处。
缺点:自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差。
在初始量足够时,留出法和交叉验证法更常用一些。
6.性能度量
1)错误率和精度
2)查准率、查全率和F1
查准率(precision):检索的信息中有多少比例是用户感兴趣的。
查全率(recall):用户感兴趣的信息有多少被检索出来了。
P=TP/TP+FP (TP:true positive;TN:true negitive)
R=TP/TP+FN
通常情况下:查准率和查全率一般是相对矛盾的度量。
问题:P31 查全率和查准率计算
3)查准率→纵轴;查全率→横轴; P-R曲线
4)平衡点(Break-Event Point):综合考虑查准率和查全率的性能度量
5)F1=(2×P×R)/P+R=(2×TP)/样例总数+TP-TN
6)ROC(Receiver Operating Characteristic)受试者工作特征:从排序本身质量的好坏来研究学习器泛化性能的工具。
真正例率→纵轴 假正例率→横轴
7)若两个学习器的ROC曲线产生交叉,较为合理的比较依据:比较ROC曲线下面的面积(AUC Area Under ROC Curve)
问题:P35 排序损失
8)代价敏感错误率和代价曲线
非均等代价:权衡不同类型错误所造成的不同损失
在非均等代价下,ROC曲线不能直接反映出学习器的期望总体代价,而 代价曲线则可以达到该目的。
9)比较检验:
(1)假设检验
(2)交叉验证t检验
(3)McNembar检验
(4)Friedman检验
(5)Nemenyi后续检验
------------------------------------------------------------------------------------------
第三章:线性模型
1.线性回归:试图学得一个线性模型以尽可能准确地预测实值输出标记。
f(x)=wx+b,使得f(x)≈y
衡量f(x)与y之间的差别,可以使用均方误差(回归任务中最常用的性能度量)
均方误差几何意义:对应了常用的欧几里得距离。
2.最小二乘法(least square method):基于均方误差最小化来进行模型求解的方法。
在线性回归中,最小二乘法就是试图找到一条直线,使得所有样本到直线上的欧氏距离之和最小。
3.偏差和方差
偏差-方差分解(bias-variance decomposition):是解释学习算法泛化性能的一种重要工具。
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力
方差:度量了同样大小的学习集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响
噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画学习问题本身的难度。
问题:其他的没有看
------------------------------------------------------------------------------------------
第四章:决策树
1.决策树:基于树结构来进行决策,恰是人类面临问题是处理问题的一种机制。
决策树目的:为了产生一棵泛化能力强的,即处理未见示例能力强的决策树。
2.决策树的生产过程是一个递归过程,有三种情况会导致递归返回
1)当前结点包含的样本全属于一个类别,无需划分;
2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
3)当前结点包含的样本集合为空,不能划分。
3.如何选择最优划分属性,
1)
一般而言,随着划分过程的不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的纯度越来越高。
信息熵(information entropy):度量样本集合纯度的指标。
信息增益(information gain):进行决策树的划分属性选择。ID3(迭代二分器)决策树学习算法
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的纯度提升越大。
2)C4.5决策树算法:使用“增益率”来选择最优划分属性,并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式,即先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
3)CART决策树:使用“基尼系数”来选择最优划分属性
4)剪枝(pruning)处理是决策树学习算法中处理“过拟合”的主要手段。
预剪枝(prepruning):在决策树生成过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点
后剪枝(postpruning):先从训练集中生成一棵完整的决策树,然后自底向上对非叶结点进行考察,若该结点对应的子树替换为叶结点能提高决策树泛化性能,则将该子树替换为叶结点。
总结:后剪枝决策树通常要比预剪枝决策树保留了更多的分支。一般情形下,后剪枝决策树的欠拟合的风险很小,泛化性能往往优于预剪枝决策树,但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大的多。
4.连续与缺省值
对于连续值离散化处理,如采用二分法处理
问题:缺省值处理
5.多变量决策树
------------------------------------------------------------------------------------------
第五章:神经网络
1.感知机(Perceptron):由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”
2.感知机只有输出层神经元进行激活函数处理,即只有一层功能神经元(functional neuron),学习功能非常有限
试用范围:线性可分的
3.若两类模式是线性可分(linearly separable)的,即存在一个线性超平面能将它们分开。
4.要解决非线性可分问题,需考虑使用多层功能神经元。
5.输出层与输入层之间的一个神经元,称为隐层/隐含层(hidden layer)
隐含层和输出层神经元都是拥有激活函数的功能神经元。
6.多层前馈神经网络(multi-layer feedforward neural networks):每层神经元与下一层的神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。
·输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;
换言之,输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。
7.神经网络学习过程:根据训练数据来调整神经元之间的连接权(connection weight)以及每个功能神经元之间的阈值(threshold)
8.误差逆传播算法(error BackPropagation)BP算法:基于梯度下降(gradient descent)策略,以目标的负梯度方向对参数进行调整。
梯度下降法是一种常用的一阶(first-order)优化方法,是求解无约束优化问题最简单、最有效的方法之一。
无约束优化问题minf(x),若能构造一个序列 f(x^(t+1))<f(x^t),则不断执行该过程即可收敛到局部极小点。
9.BP算法的目标是要最小化训练集D上的累计误差。
标准BP算法:每次只针对一个训练样例更新连接权和阈值,参数更新的非常频繁,而且对不同样例进行更新的效果可能出现“抵消”现象
累积BP算法:基于累积误差最小化的更新规则,直接针对累积误差最小化,它在读取整个训练集D一遍之后才对参数进行更新,其参数更新频率低得多,但是累积误差下降到一定程度之后,进一步下降会非常缓慢,这时标准BP算法就会有较好的效果。
10.缓和BP网络的过拟合:
第一种:“早停”(early stopping)
条件,训练集误差降低,测试集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
第二种:“正则化”(regularization)
基本思想:在误差目标函数中增加一个用于描述网络复杂度的部分
增加连接权和阈值平方和这一项之后,训练过程将会偏好比较小的连接权和阈值使网络输入更加“光滑”,从而对过拟合有所缓解。
11.梯度为0:函数在该方向上的偏导数为0
负梯度方向是函数值下降最快的方向。
12.误差函数有多个局部最小,对于参数的寻找就有可能陷入:参数寻优陷入局部极小。
常常采用以下策略试图跳出局部极小,从而进一步接近全局最小,P107
13.其他常见的神经网络:
·RBF(Radial Basis Function,径向基函数)
·ART(Adaptive Resonance Theory,自适应谐振理论)网络
·SOM(Self-Organizing Map)网络
·级联相关(Cascade-Correlation)网络
·Elman网络
·Boltzman机
------------------------------------------------------------------------------------------
第六章 支持向量机
1.支持向量:距离超平面最近的这几个训练样本点使得wx+b=±1成立的训练样本点。
2.间隔(margin):两个异类支持向量到超平面的距离之和γ=2/||w||
3.训练样本如果是线性可分的,即存在一个划分超平面能将训练样本正确分类
对于不存在超平面的情况,可以将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
4.核函数(kernel function):只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。
问题:二次规划
------------------------------------------------------------------------------------------
第八章 集成学习
1. 集成学习(ensemble learning):通过构建并结合多个学习器来完成学习任务。
2.弱学习器(weak learning):常指泛化性能略优于随机猜测的学习器。
3.个体学习器通常由一个现有的学习算法从训练数据中产生,此时集成中只包含同种类型的个体学习器,这样的集成是同质(homogeneous)
4.同质集成中的个体学习器亦称为:基学习器(base learning),相应的学习算法:基学习算法(base learning algorithm)
5.集成可包含不同类型的个体学习器,这样的集成是异质(heterogenous)的
6.根据个体学习器的生成方式,目前的集成学习方法大致可分为两类:
1)个体学习器之间存在强依赖关系,必须串行生成的序列化方法 → Boosting
2)不存在强依赖关系,可同时生成的并行化方法 →Bagging,Random Forest
7.Boosting:是一族可将弱学习器提升为强学习器的算法→AdaBoost
从偏差-方差分解的角度来看:Boosting主要关注降低偏差,
因此Boosting能基于泛化性能相当弱的学习器构建出很强的集成。
工作机制类似:
先从初始训练集训练出一个基学习器,
再根据基学习器的表现对训练样本分布进行调整,
使得先前基学习器做错的训练样本在后续受到更多关注,
然后基于调整后的样本分布来训练下一个基学习器;
如此重复执行,直至基学习器数目达到事先指定的值T,
最终将这个T个基学习器进行加权结合。
8.Bagging:并行式集成学习
从偏差-方差分解的角度来看:Bagging主要关注降低方差,
工作机制:
采用自助采样法,采样出T个含有m个训练样本的采样集,然后基于每个采样集训练出一个基学习器
再将这些基学习器进行结合
在结合时,通常对分类任务→简单投票法
回归任务→简单平均法
9.随机森林(Random Forest)RF:在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了
随机属性选择。
具体来讲:传统决策树在选择划分属性时,是在当前结点的属性集合中选择一个最优属性;
而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含K个属性的子集,然后再从这个子集中选择一个最优属性用于划分。
10.Bagging基学习器“多样性”,仅通过样本扰动(通过对初始训练集采样)而来不同
RF中基学习器的多样性来自,→样本扰动和属性扰动
11.学习器的结合:
1)平均法(averaging)
简单平均法(simple averaging)
加权平均法(weighted averaging)
2)投票法(voting)
绝对多数投票法(majority voting)
相对多数投票法(plurality voting)
加权投票法(weighted voting)
12.学习法:即通过另一个学习器来进行结合,个体学习器称为初级学习器,用于结合的学习器称为次级学习器(meta-learner)
13.Stacking:先从初始数据集训练处初级学习器,然后“生成”一个新的数据集,用于训练次级学习器。
14.多样性增强,一般思路是在学习过程中引入随机性,常见做法有:对数据样本、输入属性、输出表示、算法参数进行扰动。
数据样本扰动:基于采样法
输入属性扰动:训练样本通常由一组属性描述,从不同的子空间训练的个体学习器必然有所不同。
输出表示扰动:
基本思路:对输出表示进行操纵以增强多样性,可对训练样本的类标记稍作改动
翻转法(Fipping Output)随机改变一些训练样本的标记
输出调制法(Output Smearing):将分类输出转化为回归输出后构建个体学习器
ECOC法→利用纠错输出码将多分类任务拆解为一系列二分类任务来训练基学习器。
将原任务拆解为多个同时求解的子任务。
算法参数扰动
------------------------------------------------------------------------------------------
第九章 聚 类
1.性能度量:评估聚类结果的好坏
好的聚类结果:簇内相似度(intra-cluster similarity)高且簇间相似度(inter-cluster similarity)低
2.性能度量分为两类:
一类是将聚类结果与某个“参考模型(reference model)”进行比较,称为“外部指标”(external index)
另一类是直接考察聚类结果而不利用任何参考模型,称为内部指标(internal index)
3.距离计算
距离度量distance measure:
满足性质:非负性,同一性,对称性,直递性
常用的距离:
闵可夫斯基距离
欧氏距离
曼哈顿距离
4.属性划分:
连续属性(continuous attribute)
离散属性(categorical attribute)
有序属性(ordinal attribute)→闵可夫斯基距离
无序属性(non-ordinal attribute)→VDM(Value Difference Metric)
5.原型聚类算法:
k均值算法
学习向量量化
高斯混合聚类
密度聚类
层次聚类
------------------------------------------------------------------------------------------
第十章 降维与度量学习
1.k近邻学习(k-Nearest Neighbor)是一种常用的监督学习方法
工作机制:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。
分类任务中→投票法
回归任务→平均法
基于距离远近进行加权平均或者加权投票,距离越近,样本权重越大
2.懒惰学习(lazy learning):在训练阶段仅仅是将样本保存起来,训练时间开销为0,待收到测试样本后,再进行处理
急切学习(eager learning):在训练阶段就对样本进行学习处理的方法
3.维数灾难(curse of dimensionality)
降维(dimension reduction) 子空间(subspace)
embedding(低维嵌入)
经典降维方法:多维缩放(Multiple Dimensional Scaling)
4.主成分分析(Principal Component Analysis)PCA
------------------------------------------------------------------------------------------
第十一章 特征选择与稀疏学习
1.特征(feature),对当前学习任务有用的属性称为“相关特征”(relevant feature)
没有什么用的称为“无关特性”(irrelevant feature)
2.从给定的特征集合中选择出相应的特征子集的过程→特征选择(feature selection)
3.选取特征子集两个关键:
子集搜索(subset search)
子集评价(subset evaluation)
4.常用的特征选择方法:
过滤式(filter):先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关,这相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来进行训练模型。 →Relief
包裹式(wrapper):直接把最终将要使用的学习器的性能作为特征子集的评价标准,换言之,包裹式特征选择的目的为给定学习器选择最有利于其性能、“量身定做”的特征子集
嵌入式(embedding):将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择