机器学习札记10——学习资料(转1)

浏览: 1702

注:本篇札记属于转载,感谢博主机器学习资料汇总

>本系列主要根据吴恩达老师的课程、李航老师的统计学习方法以及自己平时的学习资料整理!在本文章中,有些地方写的十分简略,不过详细的介绍我都附上了相应的博客链接,大家可以根据相应的博客链接学习更详细的内容。

本文的目录先列在这里啦:

1、引言

2、线性回归

3、梯度下降法

3.1 梯度下降法分类

3.2 梯度下降法改进

4、逻辑回归

5、过拟合和正则化

5.1 过拟合

5.2 正则化

6、方差vs偏差

6.1 偏差(Bias)

6.2 方差(Variance)

7、支持向量机SVM

7.1 最大间隔分类器

7.2 超平面求解

7.3 核函数Kernel

7.4 Outliers

7.5 SVM的损失函数

7.6 LR和SVM的区别

8、朴素贝叶斯

8.1 贝叶斯定理

8.2 朴素贝叶斯分类

9、决策树方法

9.1 特征选择

9.2 决策树的生成

9.3决策树剪枝

10、集成学习方法

10.1 Bagging

10.2 Boosting

10.3 Bagging与Boosting的异同

10.4 Stacking

11、总结一下机器学习中的损失函数

11.1 0-1损失函数

11.2 绝对值损失函数

11.3 log对数损失函数

11.4 平方损失函数

11.5 指数损失函数

11.6 Hinge损失函数

1、引言

机器学习是什么?

Arthur Samuel:在进行特定编程的情况下,给予计算机学习能力的领域。
Tom Mitchell:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。

监督学习与无监督学习

根据训练数据是否有标记信息,机器学习任务大致分为两大类:监督学习非监督学习,分类和回归是监督学习的代表,而聚类是非监督学习的代表。

输入空间、特征空间、输出空间、假设空间

输入空间:在监督学习中,将输入所有可能取值的集合称为输入空间。
特征空间:每个具体的输入是一个实例,通常由特征向量表示,所有特征向量存在的空间成为特征空间。有时输入空间和特征空间为相同的空间,有时为不同的空间,需要将实例从输入空间映射到输出空间。
输出空间:在监督学习中,将输出所有可能取值的集合称为输出空间。
假设空间:监督学习的目的在于学习一个由输入到输出的映射,这一映射由模型来表示。由输入空间到输出空间的映射的集合,称为假设空间。举个简单的例子,在一元线性回归中,假设空间即所有的直线y=ax+b组成的集合,我们的目标就是找到一条y=a'x+b',使得损失最小。

生成模型和判别模型

生成模型:生成模型由数据学习联合概率分布P(X,Y),按后求出条件概率分布P(Y|X),作为预测的模型。之所以被称为生成方法,是因为模型表示了给定输入X产生输出Y的关系。典型的模型有朴素贝叶斯方法隐马尔可夫模型的
判别模型:判别模型由数据直接学习决策函数f(X),或者条件概率分布P(Y|X)。判别方法关心的是对给定的输入X,应该预测什么样的输出Y。典型的判别模型包括k近邻算法感知机决策树逻辑回归支持向量机等。

2、线性回归

模型表示

线性回归是最简单的机器学习模型,其假设输入和输出之间满足线性关系,假设我们想要通过房屋尺寸来预测房价,通过将收集到的数据绘制在二维坐标系中,我们总中拟合得到图中的直线:

以二元线性回归为例,其表达式如下:

对具有n个变量的多元线性回归问题,其一般表达式为:

损失函数

线性回归的损失函数一般是平方损失函数(上标i代表第i个数据,下表i代表第i维特征):

有时候我们可能把这个式子想的比较想当然,其实我们可以从极大似然的角度推导出平方损失函数,这时我们会假设损失服从正态分布,具体参考文章:
https://www.jianshu.com/p/4d562f2c06b8

梯度下降

梯度下降(Gradient Descent)是一个用来求函数最小值的算法,后面会有一张专门讲解梯度下降法及其改进算法,这里只是介绍一个基本的思想。
梯度下降背后的思想是:开始时我们随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到找到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。

具体的做法就是:每一次都同时让所有的参数减去学习速率乘以损失函数的导数。

其中α是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大。

除学习率外,使用梯度下降法时需要对特征进行标准化处理,以二元线性回归为例,如果两维的数值范围相差特别大,梯度下降算法需要非常多次的迭代才能收敛,解决的方法是尝试将所有特征的尺度都尽量缩放到-1到1之间:

3、梯度下降法

再进一步介绍算法之前,我们先来介绍一下梯度下降法的分类及对其的改进。

3.1 梯度下降法分类

梯度下降法可以分为下面三种:

批量梯度下降法(Batch Gradient Descent):批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新。

随机梯度下降法(Stochastic Gradient Descent):求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本j来求梯度。

小批量梯度下降法(Mini-batch Gradient Descent):小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样子来迭代。

三者到达极小值的路径大致可以表示为下图:

其中,蓝色为批量梯度下降法,绿色为小批量梯度下降法,紫色为随机梯度下降法。

3.2 梯度下降法改进

指数加权平均数

在讲解一些常见的梯度下降改进算法之前,我们先来看一下指数加权平均数(Exponentially weighted averages):指数加权平均数是对趋势的一种刻画,计算公式如下:

在上式中,vt是t时刻的指数加权平均值,v0 = 0,θt是第t时刻的实际值。β是一个参数。简单的理解,β代表了vt刻画的是多少天的平均值,如果β太小,那么vt越接近于θt,如果β很大,那么vt就能代表一个更长时间的平均值。

大体上,vt大概是1/(1-β)天的平均值,即当β=0.1时,我们可以认为vt代表了近10天的平均值。β=0.02时,我们可以认为vt代表了近50天的平均值,如下图所示,红色表示的是β=0.1时vt的变化,绿色表示的是β=0.02时vt的变化:

在指数加权平均的过程中,还有一个很重要的概念,叫做偏差修正(Bias correction),可以看到,如果v0=0,那么v1 = (1-β)*θ1,特别地,如果β=0.9,那么
v1 = 0.1 * θ1,这样导致v1会特别小,需要进行一定程度的修正, 具体的修正方法是对vt除以( 1-β^t),当t特别小的时候,可以起到较为明显的修正效果,但是当t变大时,分母接近于1,基本没有进行修正。

在机器学习中,在计算指数加权平均数的大部分时候,大家不在乎执行偏差修正,因为大部分人宁愿熬过初始时期,拿到具有偏差的估测,然后继续计算下去。如果你关心初始时期的偏差,在刚开始计算指数加权移动平均数的时需要进行偏差修正。

动量梯度下降法(Momentum)

动量梯度下降法基本的想法就是计算梯度的指数加权平均数,并利用该梯度 更新你的权重。假设我们使用梯度下降法更新参数的路径如下图中蓝色的线所示:

上图中的路径上下波动减慢了梯度下降法的速度,如果我们用更大的学习率,可能导致这种波动进一步加大,变成图中的紫色的线。因此,你希望在纵轴上学习慢一点,消除这种上下的摆动,而在横轴上,你希望快速从左向右移动,移动到最小值处。

我们之前介绍的指数加权平均数,可以反映近一段时间的趋势,在纵轴上的上下波动,使得平均值接近于0,而在横轴方向的平均值仍然较大。利用这种思想,Momentum的计算过程如下:

RMSprop(root mean square prop)

还是用上面的例子,我们假设纵轴代表参数b,横轴代表参数W:


推荐 0
本文由 皮大大 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册