《统计学习方法》读书笔记

本文总结了《统计学习方法》(李航)中的一些机器学习方法,组织目录如下:

【第1章】 统计学习方法概论 【第2章】 感知机 【第3章】 k 近邻法 【第4章】 朴素贝叶斯法 【第5章】 决策树 【第6章】 逻辑斯谛回归与最大熵模型 【第7章】 支持向量机 【第8章】 提升方法 【第9章】 EM算法及其推广 【第10章】 隐马尔科夫模型 【第11章】 条件随机场 【第12章】 统计学习方法总结


【第1章】 统计学习方法概论

  1. 统计学习方法包括监督学习、无监督学习、半监督学习和强化学习。
  2. 统计学习方法三要素:模型、策略、方法。
  3. 模型:所要学习的条件概率分布或决策函数。所有可能的条件概率分布或决策函数组成模型的假设空间。
  4. 策略: 4.1 损失函数:能够度量模型一次预测的好坏,值越小(接近0)越好。包括0-1损失函数、平方损失函数、绝对损失函数、对数损失函数。 4.2 风险函数:能够度量平均意义下模型预测的好坏,包括期望风险函数和经验风险函数。 4.2.1 期望风险函数:损失函数的期望。

但是联合分布P(X,Y)是未知的,因此监督学习就是一个病态问题。 4.2.2 经验风险函数:模型关于训练样本集的平均损失。

根据大数定理,当样本容量趋于无穷时,Rexp(f) = Remp(f)。 4.3 经验风险最小化与结构风险最小化:

经验风险最小化

结构风险最小化 其中,J(f)为模型复杂度。结构风险最小化需要经验风险和模型复杂度同时小(λ趋于无穷时,后一项的系数收缩作用就增大了,很多系数趋于0,模型复杂度将变小;λ为0,则后一项没有起到收缩作用)。

  1. 算法:求解最优模型的方法,找到全局最优解。
  2. 使测试误差达到最小的两种方法:正则化和交叉验证。
  3. 监督学习分为生成方法和判别方法。同时,监督学习也可以分为分类问题(k近邻法、感知机、朴素贝叶斯、决策树、决策列表、logistic回归、SVM、Boosting、贝叶斯网络、神经网络、Winnow算法等)、标注问题(隐马尔科夫模型、条件随机场)、回归问题(数值型数据回归、树回归(CART,既可以分类,又可以回归))。 7.1 生成方法:

7.2 判别方法:

  1. 分类问题的评价指标:精确率(P)、召回率(R)、F1(P和R的调和均值:2/F = 1/P + 1/R)。 8.1 P是指被判别器预测为正类的样本(将正类预测为正类TP+将负类预测为正类FP)中正类正确分类(正类预测为正类TP)的个数,如判别器预测有100个正类样本,但只有90个是真正预测正确(正类预测为正类),则 P=0.9。 8.2 R是指所有正类样本(正类预测为正类TP+正类预测为负类FN)中,正类正确分类(正类预测为正类TP)的个数,如样本中有100个正类,但只有80个正类正确分类,则 R=0.8。 8.3 准确率/正确率(A)是指所有样本(正类预测为正类TP+正类预测为负类FN+负类预测为正类FP+负类预测为负类TN)中,判别器正确预测的样本数(正类预测为正类TP+负类预测为负类TN)。 8.4 希望P、R、F1、A的值越接近1越好。

【第2章】 感知机

  1. 感知机是二分类的线性分类模型 f(x) = sign(w · x + b),对应于输入空间(特征空间)中的分离超平面 w · x + b = 0
  2. 感知机学习策略是极小化损失函数:

损失函数对应于误分类点到分离超平面的总距离。

  1. 感知机的学习算法是基于随机梯度下降法的对损失函数的优化算法,有原始形式和对偶形式。原始形式中,首先任意选取一个超平面,然后用梯度下降法不断极小化目标函数。在这个过程中一次随机选取一个误分类点使其梯度下降(这也是随机梯度下降与梯度下降(选取所有点)的区别)。
  2. 当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初值或迭代顺序而可能有所不同。

【第3章】 k 近邻法

  1. k 近邻点用于分类和回归,基本做法是:给定训练实例点和输入实例点,首先确定输入实例点 k 个最近邻训练实例点,然后利用这 k 个训练实例点的类的多数来预测输入实例点的类。
  2. k 近邻法三要素:距离度量、k 值的选择和分类决策规则。k 值小时,k 近邻模型更复杂,反之亦然。k 值常采用交叉验证的方法确定,而分类决策函数常采用多数表决。
  3. kd 树是一种便于对 k 维空间中的数据进行快速检索的数据结构。kd 树是二叉树,表示对 k 维空间的一个划分,其每个节点对应于 k 维空间划分中的一个超矩形区域。利用 kd 树可以省去对大部分数据点的搜索,从而减少搜索的计算量。

【第4章】 朴素贝叶斯法

  1. 朴素贝叶斯法通过训练数据集学习联合概率分布P(X,Y),具体做法是学习先验概率分布P(Y)与条件概率分布P(X|Y)(二者相乘就是联合概率分布),所以它属于生成模型

先验概率分布

条件概率分布

  1. 在上述条件概率分布中,假设特征彼此相互独立,即满足条件独立性假设:

条件独立性假设

  1. 朴素贝叶斯用于分类时,就是通过学习到的模型计算后验概率分布P(Y|X),将后验概率最大的类最为x的类输出:

由于分母对所有类别ck都是相同的,因此可以转化为以下求解问题:

  1. P(Y)P(X|Y)都可以使用极大似然估计法估计相应的概率,但是这种方法会出现所要估计的概率值为0的情况,这回影响到后验概率的计算结果,使分类产生偏差。因此,采取贝叶斯估计法可以解决这一问题。
  2. 补充知识: 什么是极大似然估计法? (个人理解:极大似然估计法就是根据样本(已知的结果)定好模型(但参数未知),反推最有可能(最大概率)的模型参数,就可以确定参数已知的该模型,即根据结果推断参数的过程。)

【第5章】 决策树

  1. 决策树可以转化为一个if-then规则的集合,也可以看做是定义在特征空间划分上的类的条件概率分布。
  2. 从可能的决策树中直接选取最优决策树是一个NP问题,现实中采用启发式方法学习次优决策树。
  3. 决策树的生成对应于模型的局部选择,决策树的剪枝(自下而上合并过于细分的叶结点,防止过拟合)对应于模型的全局选择。
  4. 决策树的学习包括三部分:特征选择、树的生成和树的剪枝。常用的算法有ID3、C4.5和CART。
  5. 特征选择的目的在于选取对训练数据能够分类的特征。常用的准则有信息增益(ID3)、信息增益比(C4.5)、基尼指数(CART)。
  6. 信息增益:

信息增益 它表示由于特征A而使得对数据集D的分类的不确定性减少的程度。信息增益(互信息)越大,说明该特征具有很好的划分特征。

  1. 决策树的生成通常使用信息增益最大、信息增益比最大或基尼指数最小作为特征选择的准则。决策树的生成往往通过计算信息增益或其他指标,从根结点开始,递归地产生决策树。这相当于用信息增益或其他准则不断地选取局部最优的特征,或将训练集分割为能够基本正确分类的子集。
  2. 决策树的剪枝解决决策树的过拟合问题,做法是从已生成的树上减掉一些叶结点或叶结点以上的子树,并将其父结点或根节点作为新的叶节点,从而简化生成的决策树。
  1. CART算法就是递归地构建二叉决策树的过程,既可以用于分类问题(采取基尼指数最小化准则),又可以用于回归问题(采取平方误差最小化准则)。剪枝过程同样采用损失函数最小化的标准。

【第6章】 逻辑斯谛回归与最大熵模型

  1. 逻辑斯谛回归模型源自逻辑斯谛分布,其分布函数F(x)是S形函数。它是由输入的线性函数表示的输出的对数几率模型。
  2. 最大熵模型可以由最大熵原理推导得出。最大熵原理认为,在所有可能的概率模型(分布)的集合中,熵最大的模型是最好的模型(均匀分布的熵最大)。
  3. 逻辑斯蒂模型与最大熵模型的共同点:(1)两者都可以表示为求解条件概率分布的分类模型;(2)两者都属于对数线性模型;(3)两者学习一般都采用极大似然估计或正则化的极大似然估计;(4)两者可以学习形式化的无约束优化问题(最大熵模型原本是有约束问题,但可以引入拉格朗日乘子转化为无约束条件的对偶问题来求解);(5)两者求解最优化问题的算法有梯度下降法、随机梯度下降法、改进的迭代尺度法、牛顿法或拟牛顿法等等;(6)两者都可以用于二分类或多分类问题。

【第7章】 支持向量机

  1. 支持向量机分类:

类别

别名

构建条件

线性可分支持向量机

硬间隔支持向量机

训练数据线性可分

线性支持向量机

软间隔支持向量机

训练数据近似线性可分

非线性支持向量机

NULL

训练数据线性不可分

  1. 线性可分支持向量机: 2.1 学习策略是最大间隔法,可表示为以下凸二次规划问题:

求得该最优化问题的解为 w*,b*,得到的线性可分支持向量机的分离超平面为 w* · x + b* = 0,分类决策函数为 f(x) = sign(w* · x + b*)。 2.2 最大间隔法中,函数间隔和几何间隔是重要的概念。 2.3 线性可分支持向量机的最优解存在且唯一。位于间隔边界的上的实例支持点为支持向量。最优分离超平面由支持向量完全决定。 2.4 二次规划问题的对偶问题:

通过求解对偶问题的最优值 α* = (α1*, α2*, ... ,αN*)T(其中 N 为样本点个数,αi* 为样本点 (xi, yi) 的最优解,αi* > 0 的样本点为支持向量),然后求解最优值 w*,b*,得出分类超平面和分类决策函数。

  1. 线性支持向量机: 3.1 最基本的支持向量机,通过引入孙驰变量 ξi,使其“可分”,得到线性支持向量机学习的凸二次规划问题:

求得该最优化问题的解为 w*,b*,得到的线性可分支持向量机的分离超平面为 w* · x + b* = 0,分类决策函数为 f(x) = sign(w* · x + b*)其中,C > 0 称为惩罚系数。C值大时对误分类的惩罚增大,模型变复杂,趋于过拟合,支持向量的样本点变少;C值小对误分类的惩罚减小。 3.2 线性支持向量机的解 w* 唯一,但 b* 不一定唯一。支持向量可在间隔边界上,也可以在间隔边界与分离超平面之间,或者在分离超平面误分一侧。最优分离超平面由支持向量完全决定。 3.3 二次规划问题的对偶问题:

通过求解对偶问题的最优值 α* = (α1*, α2*, ... ,αN*)T(其中 N 为样本点个数,αi* 为样本点 (xi, yi) 的最优解,αi* > 0 的样本点为支持向量),然后求解最优值 w*,b*,得出分类超平面和分类决策函数。 3.4 线性支持向量机学习等价于最小化二阶范数正则化的合页函数

  1. 非线性支持向量机: 4.1 对于输入空间的非线性分类问题,可以通过非线性变换将它转化为某个高维特征空间中的线性分类问题,在高维特征空间中学习线性支持向量机。 4.2 核函数:通过一个非线性变换后的两个实例间的内积。在实际应用中往往应用已有的核函数。常见的核函数有多项式核函数(pkf),高斯核函数(rbf,其中参数gamma:随着gamma参数增大,支持向量先减少后增多,模型更复杂,趋于过拟合),字符串核函数(skf)等。 4.3 非线性支持向量机求解的决策函数:
  1. SMO(序列最小最优化)算法:支持向量机学习的一种快速算法,其特点是不断地将原二次规划问题分解为只有两个变量的二次规划子问题,并对子问题进行解析求解,直到所有变量满足KKT条件为止。这是一种启发式的方法,得到的解是近似解,但总体上是高效的。

【第8章】 提升方法

  1. 提升方法是将弱学习算法提升为强学习算法的统计学习方法。在分类学习中,提升方法通过反复修改训练数据集的权值分布,构建一系列基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强分类器。代表性的提升方法是 AdaBoost 算法。
  2. AdaBoost 算法是弱分类器的线性组合:
  1. AdaBoost 算法的特点是通过迭代每次学习一个基本分类器。每次迭代中,提高那些被前一轮分类器错误分类数据的权值,而降低那些被正确分类的线性数据的权值。最后,AdaBoost 将基本分类器的线性组合作为强分类器,其中给分类误差率小的基本分类器以大的权值,给分类误差大的基本分类器以小的权值。
  2. AdaBoost 算法的一个解释是该算法实际是前向分步算法的一个实现。在这个方法里,模型是加法模型,函数损失是指数损失,算法是前向分步算法。每一步通过极小化损失函数:

得到参数 βm,γm。

  1. 提升树是以分类树或回归树为基本分类器的提升方法。提升树被认为是统计学习方法中最有效的方法之一。
  2. 补充知识: RF(随机森林)、GBDT、XGBoost:RF、GBDT、XGBoost 区别

【第9章】 EM算法及其推广

  1. EM (期望极大)算法是含有隐变量的概率模型极大似然估计或极大后验概率估计的迭代算法。含有隐变量的概率模型的数据表示为 P(Y, Z | θ)。这里,Y 是观测变量的数据,Z 是隐变量的数据(不可观测到的变量数据),θ 是模型参数。EM 算法通过迭代求解观测数据的对数似然函数 L(θ) = log P(Y | θ) 的极大化,实现极大似然估计, 每次迭代包括两步:E步,求期望。即求 log P(Y, Z | θ) 关于 P(Y | Y, θi) 的期望:

成为 Q 函数,这里 θi 是参数的当前估计值;M 步:其极大。即极大化 Q 函数得到参数的新估计值:

因此,在构建具体的 EM 算法时,重要的是定义 Q 函数。每次迭代中,EM 算法通过极大化 Q 函数来增大对数似然函数 L(θ)。

  1. EM 算法在每次迭代后均能提高观测数据的似然函数值,即

在一般条件下 EM 算法是收敛的,但不能保证收敛到全局最优。

  1. EM 算法主要应用于含有隐变量的概率模型的学习。高斯混合模型的参数估计是 EM 算法的一个重要应用,下一章将要介绍的隐马尔科夫模型的无监督学习也是 EM 算法的一个重要应用。
  2. EM 算法还可以解释为 F 函数的极大-极大算法(一次迭代中,两次极大化 F 函数值)。EM 算法有很多变形,如 GEM 算法。GEM 算法的特点是每次迭代增加 F 函数值(并不一定是极大化 F 函数,因为是两次极大),从而增加似然函数的 L(θ) 的值。

【第10章】 隐马尔科夫模型

  1. 隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态序列,再由各个状态随机生成一个观测而产生观测序列的过程。

【第11章】 条件随机场


【第12章】 统计学习方法总结

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法工程师

从损失函数的角度详解常见机器学习算法(2)

作者:章华燕 小编:赵一帆 逻辑回归详解 分类是监督学习的一个核心问题,在监督学习中,当输出变量Y取有限个离散值时,预测问题便成为分类问题。这时,输入变量X可以...

42660
来自专栏机器之心

Kaggle车辆边界识别第一名解决方案:使用预训练权重轻松改进U-Net

40280
来自专栏魏晓蕾的专栏

【机器学习】CS229课程笔记notes1翻译-Part I线性回归

      让我们开始谈论一些监督学习的例子。假定我们有一个数据集,给出俄勒冈州波特兰地区47套房屋的居住面积和价格:

21690
来自专栏企鹅号快讯

基于CPPN与GAN+VAE生成高分辨率图像

来源:otoro 编译:weakish 在之前的文章中,hardmaru讨论了一种生成算法,可以在诸如MNIST或CIFAR-10这样的低分辨率图像上训练,以任...

27080
来自专栏新智元

Reddit热文:MIT\北大\CMU合作, 找到深度神经网络全局最优解

在目标函数非凸的情况下,梯度下降在训练深度神经网络中也能够找到全局最小值。本文证明,对于具有残差连接的超参数化的深度神经网络(ResNet),采用梯度下降可以在...

9530
来自专栏SIGAI学习与实践平台

深度多目标跟踪算法综述

原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。

76120
来自专栏计算机视觉战队

每日一学——线性分类笔记(下)

Softmax分类器 SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。对于学习过二元逻辑回归分类器的读者来...

42870
来自专栏AI研习社

如何在 Scratch 中用 Python 构建神经网络

动机:为了更加深入的理解深度学习,我们将使用 python 语言从头搭建一个神经网络,而不是使用像 Tensorflow 那样的封装好的框架。我认为理解神经网络...

21210
来自专栏外文文献翻译

从潜在向量生成大图像 - 第二部分

更多分辨率为1080x1080的MNIST数字

254100
来自专栏IT派

无需深度学习框架,如何从零开始用Python构建神经网络

动机:为了深入了解深度学习,我决定从零开始构建神经网络,并且不使用类似 Tensorflow 的深度学习库。我相信,对于任何有理想的数据科学家而言,理解神经网络...

18250

扫码关注云+社区

领取腾讯云代金券