第二讲:机器学习基础(下)

1    回顾


回顾上一讲的机器学习三要素中的算法部分,当优化问题有解析解的时候,我们可以用:

  最小二乘法(XTX)-1XTy

  岭回归(XTX+λI)-1XTy

并且我们推导了最小二乘的公式,接来下我们尝试从几何的角度解释这个问题。

1.1最小二乘法的几何意义

先说结论:最小二乘法的几何意义是高维空间中的一个向量在低维子空间的投影。

结论比较抽象,我们通过一个简单的例子开始。考虑这样一个简单的问题,求解二元一次方程组:

方程组的解也就是直线a与b的交点,并且很容易算出x1=1,x2=2.它的矩形形式:

表示x1倍的向量a1加上x2倍的向量a2等于向量b。或者说,b是向量a1与a2的线性组合。

可以看到,1倍的a1加上2倍的a2既是b,而1和2正是我们的解。而最小二乘所面临的问题远不止两个点,拿三个点来说吧。(0,2),(1,2),(2,3)

假设我们要找到一条直线y=kx+b穿过这三个点(虽然不可能),为表述方便,用x1代替k,x2代替b :

进一步的:

向量b是向量a1与a2的线性表示。用图形表示:

作图之后,我们惊讶的发现,无论我们怎样更改a1和a2的系数都不可能得到b,因为a1与a2的线性组合成的向量只能落在它们组成的子空间S里面,也就是说,向量b不在平面S上,虽然我们找不到这样的向量,但在S上找一个比较接近的可以吧。很自然的想法就是将向量b投影在平面S上,投影在S上的向量P就是b的近似向量,并且方程是有解的。

那么,P与b的误差:

这个误差最小的时候就是e正交与平面S,也正交与S中的向量a1,a2(矩阵A的列向量),即点乘为0,,矩阵表示:

是不是发现与第一讲中的结果一模一样呢?

所以,我们可以得出,它的几何意义就是高维空间中的一个向量在低维子空间上的投影,更多关于最小二乘几何介绍的部分请大家参阅《PRML》p143.

如果你对矩阵的逆比较敏感的话,肯定还会有这样的疑问,一定可逆吗?不可逆的话,如何解决呢?那么下面岭回归的内容应该会给你一些启发。


1.2岭回归


> > > >

岭回归与最小二乘的区别联系

对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为“病态矩阵”。有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态。对于高斯消去法来说,如果主元(即对角线上的元素)上的元素很小,在计算时就会表现出病态的特征。

回归分析中常用的最小二乘法是一种无偏估计。对于一个适定问题,X通常是列满秩的。

采用最小二乘法,定义损失函数为残差的平方,最小化损失函数:


上述优化问题可以采用梯度下降法进行求解,也可以采用如下公式进行直接求解

当X不是列满秩时,或者某些列之间的线性相关性比较大时,的行列式接近于0,即接近于奇异,上述问题变为一个不适定问题,此时,计算时误差会很大,传统的最小二乘法缺乏稳定性与可靠性。

为了解决上述问题,我们需要将不适定问题转化为适定问题:我们为上述损失函数加上一个正则化项,变为

λ是岭系数,岭回归是对最小二乘回归的一种补充,它损失了无偏性,来换取高的数值稳定性,从而得到较高的计算精度。

> > > >

岭回归的推导过程:

根据上式,对w进行求偏导,可得

令上式为0,即,可得

其中,I是单位矩阵(对角线全是1,像 “山岭”),λ是岭系数(顾名思义…改变其数值可以改变单位矩阵对角线的值)。最小二乘法中有时候  可能不是满秩矩阵,是奇异矩阵,无法求逆,故加入了岭回归使得最小二乘法更加符合实际、成为更加可靠的算法,所以岭回归是最小二乘法的改良版本。    

2    机器学习基础(续)2.1正则化与泛化能力

上一节我们给出了关于多项式曲线拟合的一个例子(其中M是多项式的阶数;蓝色圆圈标记的是数据点;绿⾊曲线给出了⽤来⽣成数据的sin(2πx)函数;用红色曲线表示不同阶数的多项式曲线):


当M=0以及M=1时模型较为简单,表现为欠拟合;当M=9时模型是一个相对复杂的模型,能完美的拟合训练数据,但与我们心目中的理想模型相差较大,表现为过拟合。因此我们引入正则化来限制模型的复杂度,提高模型的泛化能力。 

正则化(Regularization)


正则化是结构风险最小化的实现,形式为在经验风险最小化的基础上加一个正则化项(惩罚项)。

在最小化结构风险中,我们一方面想让经验风险最小即让模型变复杂,训练误差(train_error)小,另一方面,也想最小化正则化项来使得模型变简单,测试误差(test_error)小,虽然这看起来是一个矛盾的事情,但我们总可以找到一个平衡点(tradeoff)。这其实也可以用bias-varience来描述。

✓ bias(偏差):bias反映的是模型在样本上的输出与真实值之间的 误差,也就是模型在训练集上拟合的好不好,模型简单可能导致其与真实值出现了偏差,欠拟合。

✓ variance(方差):variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。虽然复杂模型在训练集上拟合的很好,但在测试集上的表现可能就不行了,不具有普适性,稳定性较差,过拟合。


为了得到可靠稳定的模型,我们可以进行交叉验证。

 

交叉验证


如果数据集较大

D = 训练集 + 测试集 + 验证集

如果数据不充足,则采用交叉验证


 简单交叉验证

 k折交叉验证

 留一交叉验证

2.2性能评估

在机器学习中,性能指标(Metrics)是衡量一个模型好坏的关键。对于模型的性能度量,我们通常用以下方法来进行度量:

准确率(查准率,precision)/召回率(查全率,recall)

                                             

真实情况

预测结果

正例

反例

正例

TP

      (True Positive)

FN

    (False Negative)

反例

FP

      (False Positive)

TN

    (True Negative)


精确率是针对预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),也就是

召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。

ROC曲线


ROC曲线的全称叫做Receiver Operating Characteristic,常常被用来判别一个分类器的好坏程度,以下是一个ROC的例子(横轴: False Positive Rate 纵轴:True  Positive Rate):

直观上,TPR 代表能将正例分对的概率,FPR 代表将负例错分为正例的概率。在 ROC 空间中,每个点的横坐标是 FPR,纵坐标是 TPR,这也就描绘了分类器在 TP(真正率)和 FP(假正率)间的 trade-off2。以下举个例子来进行通俗的讲解:

如图所示,假设一共10个样本,6个正例,4个负例,则

将所有样本按照预测得分降序(或升序)排列:

                                             

接下来我们开始逐步进行计算且绘制曲线,图a为枚举所有实验结果,其中,蓝色表示预测为正例,红色表示预测为负例;图b为初始ROC图表。

图a 所有实验结果枚举图

图b初始ROC图表

【从上往下】

Step1:从最左边开始按阈值划分,阈值左侧判定为负例,右侧为正例,则从样本最左侧开始,因此全部被预测为负例,故

 



Step2:继续向左移动阈值,实验结果为只有一个正例(圆形)被预测正确,故

Step3:实验结果为只有一个正类(圆形)、一个负类(三角形)预测正确,故


...

Step11:实验结果为全部预测正确,最终ROC曲线如下:

3    线性分类器 3.1感知机

感知机是二分类线性模型,输出的值为{+1,-1}两种类型;感知机是利用超平面将两类分离,再此我们将主要通过按照机器学习三要素对感知机进行详细的阐述。分别是感知机模型,感知机学习策略,感知机学习算法。

3.1.1模型与策略
> > > >

模型

假设输入空间(特征空间)是X∈Rn,输出空间是Y={+1, -1}。输入x∈X表示实例特征向量。对应于输出空间(特征空间)的点:输出y∈Y表示实例类别,由输入空间到输出空间的如下函数:

其中w和b是感知机模型参数。w是权值,b是偏置。感知机是一种线性分类模型,属于判别模型。若能够将数据集的正实例和负实例正确的划分到各自对应的一侧,则Sign(x)值为+1,若划分错误则其值为-1.

> > > >

策略

为了能够寻找到将数据集正负实例完全正确分离的超平面,即确定模型参数w和b,需要一个学习策略,即定义一个损失函数,并将损失函数极小化。这里的损失函数定义为误分类点到超平面S的总距离。

单个点x0到超平面S的距离是:

                                                                                 

对于误分类来说:

因此误分类点到超平面S的距离为:


误分类点集合为M,则总距离为:

不考虑因此,感知机的损失函数可以简写为:

其中M是误分类点集合,这个损失函数称为感知机经验风险函数。误分类点距离分类超平面越远,则损失函数值越大。对于感知机而言,只有误分类的点会影响损失函数的值。 


接下来我们将简单了解一下感知机与SVM经验风险函数

✔ 感知机

 SVM

对比分析部分由于篇幅原因我们放在SVM的部分在做讨论。


感知机的不足:

a.有无穷多个可行解

b.由于感知机是贪婪算法,所以结果依赖初始值和误分点的顺序。

c.线性限制(对于线性不可分的特征空间,线性感知机无能为力)

3.1.2算法实现


 从以上可以了解到,感知机学习问题转化为求解损失函数最优化问题,最优化的方法是随机梯度下降法。感知机学习算法有两种形式:原始形式和对偶形式。在训练数据线性可分的条件下,感知机学习算法是收敛的。

> > > >

原始形式

在给定训练数据集,我们可以通过求参数wb使得L(w,b)最小,即:

感知机学习算法是误分类数据驱动的,采用随机梯度下降法,即随机选取一个超平面w0和b0,使用梯度下降法对损失函数进行极小化。 假设M集合是固定,那么损失函数的梯度为: 

随机一个选取一个误分类点对w和b进行更新。

是步长,统计学习中称为学习率。通过不断迭代,损失函数不断减小,直到为0。 

具体步骤: 

感知机学习算法直观的解释如下: 当一个实例点被误分类时,即位于分离超平面错误的一边,则调整w和b使得超平面向误分类点一侧移动,减少误分类点到超平面的距离。直到超平面越过该误分类点,被正确分类。

> > > >

对偶形式

对偶形似的基本想法是:将w和b表示实例xi和标记yi的线性组合形式,通过求解器系数的到w和b。在原始形式中,通过 w=w+ ηxiyi    b=b+ ηyi  。 逐步修改w和b,假设修改了n次,则w和b关于(x i ,y i )的增量分别是a i x i y i 和a i y i ,这里的a i =n i η。最后学习到的w和b是: 

 

其中a i > =0, i =1,2,….,N。当时,表示第i个实例有误分类而进行更新的次数。实例点更新次数越多,则它里超平面的距离就越近,也就越难正确分类。 
具体步骤: 


3.1.3感知机算法收敛性分析


感知机算法收敛性的定理如下所示(摘自李航的《统计学习方法》):

      

对于线性可分数据集感知机学习算法原始形式是收敛的。证明的前提是训练数据集线性可分即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。这个定理是Novikoff在1962年时给予证明的(具体的推导过程可见论文:On Convergence Proofs on Perceptrons或者李航的《统计学习方法》P31-P33)。


定理表明误分类的次数k是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。感知机学习算法存在许多解,这些解依赖于初值的选择,也依赖于迭代过程中误分类点的选择顺序。


思考:我们如何使得式子2.9中的K最小?

                                               

这一个结论我们放在后面的SVM部分,在做讨论。


3.1.4多层感知机

多层感知机(multi-layerperceptron)(MLP) 是一种非线性分类器。传统的感知机模型是两层的NN(Neural Networks),是线性的,而MLP是三层及以上的NN,就可以实现非线性任务,比如三层的MLP可以实现异或(XOR)问题。


MLP是由BP算法来计算的,BP算法的推导及过程在接下去的课程中会继续介绍(想要提前了解的可以先自己搜一下哈~)。MLP的结构如下:


输入层(input layer):每一个节点对应于X的每一维,节点本身并不完成任何处理,只是把每一维的信号发送到下一层的每个节点。

中间层(隐层,hidden layer):隐层的节点是隐节点。

输出层(output layer):输出层的每个节点对应Y的每一维,对于连续性变量、预测性数据Y,就是一维的。对于分类型的Y,一般是用一维来代表一类,有几类就有几个输出节点。

神经网络结构:信号沿着从输入层到输出层的方向单向流动,是输入层到输出层的映射。同层节点无连接,每个节点与上一层、下一层的所有节点都连接。这种NN是前馈型神经网络(feedforwardNN),MLP就是这种的。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值