8.int-ml

下载地址:https://github.com/daiwk/collections/blob/master/pdfs/int-ml.pdf

本文参考自李航的《统计学习方法》、周志华的《机器学习》、Hulu的《百面机器学习》等。

概述

统计学习三要素

模型

监督学习中,模型是要学习的条件概率分布或决策函数

模型的假设空间

假设空间是所有可能的条件概率分布或决策函数

定义1

可以定义为决策函数的集合

定义2

也可以定义为条件概率的集合

策略

损失函数与风险函数

  • 0-1损失函数:

  • 平方损失函数:

  • 绝对损失函数:

  • 对数损失函数(logarithmic loss function)/对数似然损失函数(log-likelihood loss function):

给定训练集:

经验风险最小化与结构风险最小化

经验风险最小化(empirical risk minimization, ERM)经验风险最小的模型就是最优模型。所以需要求解的最优化问题是:

当满足以下两个条件时,经验风险最小化就等价于极大似然估计(maximum likelihood estimation):

  • 模型是条件概率分布

  • 损失函数是对数损失函数

当样本量足够大时,ERM能有很好的效果,但样本量不够多时,为了防止过拟合,需要用下面的方法。

结构风险最小化(structual risk minimization, SRM):结构风险=经验风险+表示模型复杂度的正则化项(regularizer)或罚项(penalty term)。结构风险定义如下:

当满足以下3个条件时,结构化风险最小化等价于)贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation, MAP):

  • 模型是条件概率分布

  • 损失函数是对数损失函数,对应后验估计中的似然函数

  • 模型复杂度由模型的先验概率表示

似然函数先验概率乘积即对应贝叶斯最大后验估计的形式

参考https://www.zhihu.com/question/23536142

所以结构风险最小化就是求解优化问题:

算法

算法指的是学习模型的具体方法,即使用什么计算方法求解最优模型。

因为统计学习问题归结为最优化问题,所以统计学习的算法就是求解最优化问题的算法

  • 如果有显式的解析解,此最优化问题就比较简单

  • 如果没有,需要用数值计算方法求解,需要考虑如何保证找到全局最优解,并使求解过程高效

模型评估与模型选择

训练误差与测试误差

  • 训练误差的大小,对判断给定的问题是不是一个容易学习的问题是有意义的

  • 测试误差反映了学习方法对未知数据的预测能力,即泛化能力(generalization ability)

过拟合与模型选择

当模型复杂度增加时,训练误差会逐渐减小并趋向于0;测试误差会先减小,达到最小值后又会增大。

当模型复杂度过大时,就会出现过拟合。所以需要在学习时防止过拟合,选择复杂度适当的模型。

正则化与交叉验证

正则化

模型选择的典型方法是正则化(regularization)。正则化是结构风险最小化策略的实现,即在经验上加一个正则化项(regularizer)或罚项(penalty term)。

正则化项一般是模型复杂度单调递增函数,模型越复杂,正则化值越大。比如,正则化项可以是模型参数向量的范数。

正则化符合奥卡姆剃刀(Occam's razor)原理:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。

从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简的模型有较大的先验概率。

交叉验证

泛化能力

泛化误差

泛化误差上界

生成模型与判别模型

分类问题

标注问题

回归问题

一个常问的问题:平方损失在做分类问题的损失函数时,有什么缺陷?

所以,交叉熵损失的梯度只和正确分类有关。而平方损失的梯度和错误分类有关,除了让正确分类尽可能变大,还会让错误分类都变得更平均。实际中后面这个调整在分类问题中是不必要的,而回归问题上这就很重要。

感知机

k近邻法

朴素贝叶斯法

参考https://www.cnblogs.com/jiangxinyang/p/9378535.html

贝叶斯公式

又可以写为:

其中:

极大似然估计(MLE)

极大似然估计的核心思想是:认为当前发生的事件概率最大的事件。因此就可以给定的数据集,使得该数据集发生的概率最大来求得模型中的参数。

似然函数如下:

为便于计算,对似然函数两边取对数,得到对数似然函数:

极大似然估计只关注当前的样本,也就是只关注当前发生的事情,不考虑事情的先验情况。由于计算简单,而且不需要关注先验知识,因此在机器学习中的应用非常广,最常见的就是逻辑回归

最大后验估计(MAP)

最大后验估计不只是关注当前的样本的情况,还关注已经发生过的先验知识

最大后验估计和最大似然估计的区别:

贝叶斯估计

贝叶斯估计和极大后验估计有点相似,都是以最大化后验概率为目的。区别在于:

  • 极大似然估计和极大后验估计都是只返回了的预估值

  • 贝叶斯估计要计算整个后验概率的概率分布

决策树

logistic回归与最大熵模型

支持向量机

提升方法

gbdt

参考https://www.cnblogs.com/pinard/p/6140514.html

梯度提升树(Gradient Boosting Decison Tree, 以下简称GBDT)有很多简称,有GBT(Gradient Boosting Tree), GTB(Gradient Tree Boosting ), GBRT(Gradient Boosting Regression Tree), MART(Multiple Additive Regression Tree)等等。

gbdt概述

在Adaboost中,我们是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。

GBDT也是迭代,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。

gbdt的负梯度拟合

利用

EM算法及其推广

隐马尔可夫模型

条件随机场

附录

矩阵

优化

拉格朗日乘子法

等式约束

对于第1条,梯度本身就与曲面的切向量垂直,是曲面的法向量,并且指向数值更高的等值线

证明:

参考http://xuxzmail.blog.163.com/blog/static/251319162010328103227654/

看成两个向量的内积:

不等式约束

以上三个条件有各自的名字:

带等式和不等式约束的拉格朗日乘子法

梯度下降

《统计学习方法》的视角

梯度下降法:

只有当目标函数是凸函数时,梯度下降得到的才是全局最优解

《机器学习》的视角

梯度下降是一阶(first order)(只用一阶导,不用高阶导数)优化方法,是求解无约束优化问题最简单、最经典的方法之一。

那么不断执行这个过程,就可以收敛到局部极小点,根据泰勒展开有:

同样地,当目标函数是凸函数时,局部极小点就对应全局最小点,此时梯度下降可以确保收敛到全局最优解。

牛顿法

二阶导基本性质

证明:

牛顿法

可以无视这个2,变成:

或者

其中,

牛顿法

拟牛顿法的思路

DFP(Davidon-Fletcher-Powell)

BFGS(Broydon-Fletcher-Goldfarb-Shanno)

拉格朗日对偶性

信息论相关

凸集

性质:

凸函数

函数是凸函数:曲线上任意两点x和y所作割线(与函数图像有两个不同交点的直线,如果只有一个交点,那就是切线)一定在这两点间的函数图象的上方:

有如下几个常用性质:

  • 一元可微函数在某个区间上是凸的,当且仅当它的导数在该区间上单调不减

  • 一元二阶可微的函数在区间上是凸的,当且仅当它的二阶导数是非负的;这可以用来判断某个函数是不是凸函数。如果它的二阶导数是正数,那么函数就是严格凸的,但反过来不成立。

  • 多元二次可微的连续函数在凸集上是凸的,当且仅当它的黑塞矩阵在凸集的内部是半正定的

KL散度

熵的小结:https://blog.csdn.net/haolexiao/article/details/70142571

相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence)信息增益(information gain)

KL散度是两个概率分布P和Q差别的非对称性的度量。 KL散度是用来度量使用基于Q的编码来编码来自P的样本 平均所需的额外的位元数。 典型情况下,P表示数据的真实分布Q表示数据的理论分布,模型分布,或P的近似分布

对于离散随机变量:

对于连续随机变量:

性质:

KL散度大于等于0

证明:

先了解一下Jensen不等式:

对于连续随机变量,如果f(x)是非负函数,且满足(f(x)是概率密度函数):

采样

求解有两种方法:

解析法:

将上式展开成积分,并通过积分求解:

对于简单的分布,可以直接这么做。但dnn就不可行了。

蒙特卡洛法:

根据大数定理,当采样数量足够大时,采样的样本就可以无限近似地表示原分布:

拒绝采样

重要性采样

强化学习经常使用重要性采样。重要性采样主要应用在一些难以直接采样的数据分布上。

最好选择一个和原始分布尽量接近的近似分布进行采样。

例如,要对一个均值1,方差1的正态分布进行采样,有两个可选的分布:均值1方差0.5和均值1方差2。

从图像上可以看到方差为0.5的过分集中在均值附近,而且方差为2的与原分布重合度较高,所以应该选方差为2的。

马尔可夫蒙特卡洛采样(MCMC)

如果是高维空间的随机向量,拒绝采样和重要性采样经常难以找到合适的参考分布,采样效率低下(样本的接受概率低或者重要性权重低),此时可以考虑马尔可夫蒙特卡洛采样法。

蒙特卡洛法指基于采样的数值近似求解方法,马尔可夫链用于进行采样。

基本思想是:

  • 针对待采样的目标分布,构造一个马尔可夫链,使得该马尔可夫链的平稳分布就是目标分布;

  • 然后从任何一个初始状态出发,沿着马尔可夫链进行状态转移,最终得到的状态转移序列会收敛到目标分布

  • 由此可以得到目标分布的一系列样本

核心点是如何构造合适的马尔可夫链,即确定马尔可夫链的状态转移概率。

Metropolis-Hastings采样

然后根据如下过程采样:

  • For t = 1, 2, 3, ... :

吉布斯采样

  • For t = 1, 2, 3, ... :

注意点:

  • 拒绝采样中,如果某一步中采样被拒绝,则该步不会产生新样本,需要重新采样。但MCMC采样每一步都会产生一个样本,只是有时候这个样本与之前的样本一样而已。

  • MCMC采样是在不断迭代过程中逐渐收敛到平稳分布的。实际应用中一般会对得到的样本序列进行"burn-in"处理,即截除掉序列中最开始的一部分样本,只保留后面的样本。

MCMC得到的样本序列中相邻的样本是不独立的,因为后一个样本是由前一个样本根据特定的转移概率得到的。如果仅仅是采样,并不要求样本之间相互独立。

如果确实需要产生独立同分布的样本,可以:

  • 同行运行多条马尔可夫链,这样不同链上的样本是独立的

  • 或者在同一条马尔可夫链上每隔若干个样本才选取一个,这样选出来的样本也是近似独立的。

最后更新于