根据《统计学习方法》中的描述,统计学习方法都是由模型、策略和算法构成的,即“方法=模型+策略+算法”。当然非监督学习、强化学习也同样拥有这三要素,但是目前只总结监督学习。
模型、策略和算法
模型
在监督学习中,模型就是所要学习的决策函数或条件概率分布。模型的假设空间中包含所有可能的决策函数或者条件概率分布,例如假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。假设空间中的模型一般有无数个。
决策函数的假设空间表示为
其中 X,Y 分别是输入和输出,决策函数的假设空间通常是由一个参数向量决定的函数族。
同样假设空间也可以定义为条件概率的集合
监督学习的主要目的是确定假设空间中的决策函数
f
或条件概率
策略
有了模型的假设空间,监督学习的问题就变成从假设空间中选取最优的模型
f
或
损失函数越小,表示模型越好。由于模型的输入输出 (X,Y) 是随机变量,遵循联合分布,所以损失函数的期望是
这只是理论上风险函数或期望风险,我们学习的目标就是选择期望风险最小的模型。但是由于计算上式需要先知道联合分布 P(X,Y) 。实际上知道了联合分布,就可以直接求出条件分布 P(Y|X) ,也就不需要学习了。正是由于不知道联合分布才需要学习,这就成为了一个病态问题了。所以定义 f(X) 关于训练数据集的平均损失称为经验风险或者经验损失,如下:
其中 n 是样本个数。
期望风险是模型关于联合分布的期望损失,经验风险是模型关于训练样本集的平均损失。根据大数定律,当样本容量n趋于无穷,经验风险趋于期望风险。所以很自然的用经验风险估计期望风险。但是,现实中训练样本有限,所以用经验风险估计期望风险常常不理想,要对经验风险进行一定的矫正。这就关系到了监督学习的两个基本策略:经验风险最小化和结构风险最小化。
策略 | 最优化问题 | 说明 | 特例 | |||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
经验风险最小化 | 经验风险最小的模型是最优的模型 | 给定了假设空间和损失函数,监督学习就变成了经验风险或结构风险的最优化问题。 上文中有两个地方值得关注:1、常用的损失函数有哪些?2、结构风险最小化中的模型复杂度 J(f) 如何度量 常用的损失函数有:
正则化常用的有l0范数,l1范数,l2范数,F范数和核范数。 平方损失函数(最小二乘)平方损失函数的表达式为:
L(Y,f(X))=||Y−f(X)||2
样本个数为n时,经验风险可以表示为
L(Y,f(X))=1n∑i=1n(yi−f(xi))2
这和最小二乘法的目标函数一致。在最小二乘中, f(xi)=wTxi 表示线性模型。所以最小二乘点的模型为线性模型,损失函数为平方损失,是经验风险最优化问题。 log损失函数(logistics回归)对数损失函数针对的模型是条件概率分布。log损失函数也称作对数损失函数会对数似然损失函数。表达式为:
L(Y,P(Y|X))=−logP(Y|X)
logistics的模型假设为
P(y|x)=⎧⎩⎨hθ(x)=11+exp(−θTx),y=11−hθ(x)=11+exp(θTx),y=0
经验损失函数为
L(Y,P(Y|X))=−∑i=1nyilog(hθ(xi))+(1−yi)log(1−hθ(xi))
和logistics回归由极大似然估计得到的损失函数一致。 另外损失函数也可以表示为
−log(P(y|x))={−log(hθ(x))=log(1+exp(−θTx)),y=1−log(1−hθ(x))=log(1+exp(θTx)),y=0
以上假设的是二分类问题,且类别标签是0,1。如果类标签为-1,1,上式也可以表示为
−log(P(y|x))=log(1+exp(−yθTx))
如果令模型假设为 f(X) ,则 log(1+exp(−Yf(X))) 也可以称为log损失函数。 综上,logistics回归的模型为 hθ(x) ,损失函数为log损失,是经验风险最小化问题。 如果模型是条件概率模型,log损失函数是 −logP(Y|X) 如果模型是非条件概率模型,即决策函数,log损失函数是 log(1+exp(−Yf(X))) 指数损失函数(adaboost)指数损失函数的表达式为:
L(Y,f(X))=exp(−Yf(X))
在学习adaboost中提到过,Adaboost算法是模型为加法模型,目标损失函数是指数函数,学习算法为前向分步算法时的二分类学习方法。优化策略是经验风险最小化。具体推导见adaboost Hinge损失函数(SVM)Hinge损失函数的标准形式为
L(Y,f(X))=max{0,1−Yf(X)}
也可以写作
L(Y,f(X))=[1−Yf(X)]+
其中 [z]+=max{0,z} Hinge损失函数主要用于SVM。在学习SVM时,得到SVM的目标函数为
minw,b∑i=1n[1−yi(wTxi+b)]++λ||w||2
上式的前部分就是hinge损失函数的形式,其中 f(x)=wTx+b 表示线性模型,后面部分是正则化项。所以SVM的模型是线性模型,损失函数是hinge函数,优化策略是结构风险最小化。 感知损失(感知机)感知损失是hinge损失的弱化形式,表达式为
L(Y,f(x))=max(0,−Yf(X))
也可以写作
L(Y,f(X))=[−Yf(X)]+
感知损失主要用于感知机。感知机只记录分类错误的样本。假设所有错误分类的点的集合为M,则损失函数为
L(Y,f(X))=−∑xi∈MyiwTxi
其中模型 f(x)=wTx 下面正面两者等价。将感知机的模型函数带入感知损失得到
L(y,f(x))=max(0,−ywTx)
分类标签为-1,1,上式可以写作:
L(y,f(x))={−ywTx错分0正确分类
且 L(y,f(x))≥0 所以经验风险为
∑i=1nL(yi,f(xi))=L(Y,f(X))=−∑x(i)∈MyiwTxi
所以感知机的模型为线性模型,损失函数为感知损失,优化策略是经验风险最小化。 0-1损失函数0-1损失: L(Y,f(X))={1,y=f(X)0,y≠f(X) 。0-1损失是一个非凸的函数,在求解的过程中,存在很多的不足,通常在实际的使用中将0-1损失函数作为一个标准,选择0-1损失函数的代理函数作为损失函数。 损失函数总结假设前面的损失函数的模型都是线性模型
f(x)=wTx
,则各损失函数的图像如下:
正则化正则化是在结构风险最小化中出现的,是为了防止模型过拟合对模型所做的约束,表征的是模型的复杂度。只有模型的优化策略是结构风险最小化时才会有正则化项的出现,也就是优化以下目标函数:
min∑i=1nL(yi,f(xi))+λJ(f)
前面一项是经验风险最小化,越小,函数拟合数据越好,经验误差越小。但是经验误差小可能会造成过拟合(方差大),泛化能力差。后面一项是表示的是模型的复杂度, J(f) 越小,模型越简单,也不可能过拟合。所以两者的结合,用正则化参数 λ 调整两者之间的关系,使得模型的经验误差小,而且泛化能力好。 正则化项 J(f) 有很多种选择,一般是模型复杂度的单调递增函数,模型越复杂,值就越大。比如,正则化项可以是模型参数向量的范数。然而,不同的选择对参数的约束不同,取得的效果也不同,但我们在论文中常见的都聚集在:0范数、1范数、2范数、迹范数、Frobenius范数和核范数等等。 下面以向量 w=[w1,w2,...,wm] 为例,看一下各个范数有什么异同 0范数: ||w||0 ,表示向量w中非零元素的个数 1范数: ||w||1=∑mi=1|wi| ,表示各个分量的绝对值之和 2范数: ||w||2=∑mi=1w2i−−−−−−−√ ,表示各个分量的平方和在开方 首先有一个问题,为什么正则化项能够防止过拟合呢? 根据知乎上的一个回答https://www.zhihu.com/question/20700829/answer/21066719 首先解释了什么是过拟合。过拟合是一种现象,当模型在训练数据集上表现很好时,在测试数据集上反而表现很差。过拟合发生的本质原因是训练数据远远少于模型假设空间中的函数的个数,而函数的个数一般是由参数决定的,所以过拟合的本质是训练数据远远小于可选参数个数。过拟合的发生,可以分解成以下三点:
所以,要拟合好数据,就要有足够大的模型空间,有了足够大的模型空间,选到好的模型的概率就下降了。因此就会出现训练数据拟合的很好,泛化能力却很差的过拟合现象。 另外,前文的“模型复杂度”不是指的模型本身长的很复杂,比如5次多项式比2次多项式复杂。复杂指的是模型假设空间中可供选择的模型很多。 正则化是对参数的约束,而模型假设空间的函数正是由参数所决定,所以正则化可以控制模型空间的大小,这样,数据量和模型空间中函数的个数对等,就会防止过拟合的发生。 具体来讲,2范数是对参数加上高斯先验分布,1范数是加上laplace先验分布,0范数更是限制了参数非零的个数,这样就减小了模型假设空间中函数的个数,从而防止过拟合。 下面具体看看这三种范数的特点 L2范数L2范数在回归中被称为Ridge回归,重要的作用还是防止过拟合。2范数是对模型参数加上高斯先验分布,通过对模型空间的控制,在一定程度上避免了过拟合。 L2范数有什么优点呢?
什么是cindition number呢?下面具体学习一下。 优化有两大难题,一是:局部最小值,二是:ill-condition病态问题。condition number不好就是指ill-condition。ill-condition对应的是well-condition。假设方程组AX=b,需要求解X。如果A或者b稍微的改变,会使得X的解发生很大的改变,那么这个方程组系统就是ill-condition的,反之就是well-condition的。具体例子如下: 左边的是ill-condition的情况,稍微改变b或者A,解的改变很大,这个系统的解对系数矩阵A或者b太敏感了。右边的是well-condition,稍微改变A或b,解的值变动的幅度和A或b改变的幅度一致。一般我们的系数矩阵A和b是从实验数据里面估计得到的,所以它是存在误差的,如果我们的系统对这个误差是可以容忍的就还好,但系统对这个误差太敏感了,以至于我们的解的误差更大,那这个解就太不靠谱了。所以这个方程组系统就是ill-conditioned病态的,不正常的,不稳定的, ill-condition的程度需要用condition number来衡量。矩阵A的condition number表示为:如果A非奇异
||A||∗||A−1||
如果A奇异,condition number无穷大。也就是矩阵A的norm乘以它的逆的norm。具体的值是多少,就要看选择的norm是什么了。condition number衡量的是输入发生微小变化的时候,输出会发生多大的变化。也就是系统对微小变化的敏感度。condition number值小的就是well-conditioned的,大的就是ill-conditioned的。如果一个矩阵的condition number在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是ill-conditioned的,如果一个系统是ill-conditioned的,它的输出结果就不要太相信了。 在最小二乘中有解析解
w=(XTX)−1XTY
如果 XTX 的condition number很大的话,解不稳定,容易产生过拟合。如果加上2范数正则项的话,得到的解析解为
w=(XTX+λI)−1XTY
加入正则项的作用就是减小 XTX 的condition number,增加解的稳定性,从而避免过拟合 另一方面,如果使用迭代算法的话,condition number 太大仍然会导致问题:它会拖慢迭代的收敛速度,而正则项从优化的角度来看,实际上是将目标函数变成λ-strongly convex(λ强凸)的了。具体见http://blog.csdn.net/zouxy09/article/details/24971995/ 综上,2范数正则项不仅可以防止过拟合,而且可以使优化求解变得稳定和快速。 L1范数和L0范数L0范数是指向量中非零元素的个数。如果用L0范数约束参数向量的话,就是稀疏的概念了。但是在稀疏表示中,经常看到的是L1范数。L1范数是指向量中各元素绝对值之和,也可以称作“稀疏化算子”,也就是说L0范数也可以实现稀疏。这里有两个问题,1、为什么要用L1代替L0范数;2、为什么L1范数可以实现稀疏。
实际上,以线性回归为例,Ridge和Lasso可以写成下面的形式: Ridge:
minw12∑i=1n(y(i)−wTx(i))2s.t.||w||2≤C
Lasso:
minw12∑i=1n(y(i)−wTx(i))2s.t.||w||1≤C
分别对应上图的右左两图。为了便于可视化,考虑2维的情况。在平面上可以画出目标函数的等高线,而约束则成为平面上半径为C的球。与等高线首次相交的地方就是最优解。可以看出,L1-ball和L2-ball的不同之处就在于,L1-ball在和坐标轴相交的地方都是凸出的。而目标函数除非在特殊位置,和L1-ball相交的地方总是在坐标轴上,由此便达到的稀疏的要求。而L2-ball边没有这样的性质,除非目标函数在特殊位置,和L2-ball相加的的方不在坐标轴上,便不能轻易达到稀疏。 以上从三个角度看待了L1和L2正则化,也说明了L1正则化可以产生稀疏解的原因。个人觉得第一个解释最具有说服力。 L1正则化可以产生稀疏的解,而且由于L1比L0更容易优化,所以常用L1代替L0。那么L1正则化有什么好处呢?
总结到此,介绍了L0,L1,L2范数的定义,作用及优点。解决的问题如下:
算法给定了假设空间和损失函数,监督学习的问题就转化为最优化的问题了,统计学习的算法就称为求解最优化问题的算法。如果有解析解,最优化问题比较简单,但是大多数问题没有解析解,就需要用数值计算的方法求解。如何保证找到全局最优解,并使得求解过程非常高效,就称为一个重要的问题。统计学习可以利用已有的算法,或者开发特殊的算法。
05-10
518
03-11
516
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
|