机器学习中用到的数值分析.docx

上传人:b****7 文档编号:9431966 上传时间:2023-02-04 格式:DOCX 页数:19 大小:939.68KB
下载 相关 举报
机器学习中用到的数值分析.docx_第1页
第1页 / 共19页
机器学习中用到的数值分析.docx_第2页
第2页 / 共19页
机器学习中用到的数值分析.docx_第3页
第3页 / 共19页
机器学习中用到的数值分析.docx_第4页
第4页 / 共19页
机器学习中用到的数值分析.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

机器学习中用到的数值分析.docx

《机器学习中用到的数值分析.docx》由会员分享,可在线阅读,更多相关《机器学习中用到的数值分析.docx(19页珍藏版)》请在冰豆网上搜索。

机器学习中用到的数值分析.docx

机器学习中用到的数值分析

第四章背景知识

conditionnumber

从优化或者数值计算的角度来说,L2范数有助于处理conditionnumber不好的情况下矩阵求逆很困难的问题。

如果方阵A是奇异的,那么A的conditionnumber就是正无穷大了。

实际上,每一个可逆方阵都存在一个conditionnumber。

对conditionnumber来个一句话总结:

conditionnumber是一个矩阵(或者它所描述的线性系统)的稳定性或者敏感度的度量,如果一个矩阵的conditionnumber在1附近,那么它就是well-conditioned的,如果远大于1,那么它就是ill-conditioned的,如果一个系统是ill-conditioned的,它的输出结果就不要太相信了。

应用

如果当我们的样本X的数目比每个样本的维度还要小的时候,矩阵XTX将会不是满秩的,也就是XTX会变得不可逆,所以w^就没办法直接计算出来了。

如果加上L2规则项,就变成了下面这种情况,就可以直接求逆了:

conditionnumber一般在矩阵里被定义做最大singularvalue和最小singularvalue的比值。

一般说来,如果一个矩阵的conditionnumber大于1000,数值计算inv(A)或者解线性方程AX=Y可能会遇到严重的舍入问题,这样的问题通常被称为ill-conditioned。

 

  

最简单的解决方法是把A的diagonalentries都加上一个微小量delta以后再计算——这样做虽然会引入误差,但是可以改善ill-condition。

 

梯度

设体系中某处的物理参数(如温度、速度、浓度等)为w,在与其垂直距离的dy处该参数为w+dw,则称为该物理参数的梯度,也即该物理参数的变化率。

如果参数为速度、浓度、温度或空间,则分别称为速度梯度、浓度梯度、温度梯度或空间梯度。

其中温度梯度在直角坐标系下的表达式如右图。

在向量微积分中,标量场的梯度是一个向量场。

标量场中某一点上的梯度指向标量场增长最快的方向,梯度的长度是这个最大的变化率。

更严格的说,从欧氏空间Rn到R的函数的梯度是在Rn某一点最佳的线性近似。

在这个意义上,梯度是雅戈比矩阵的一个特殊情况。

在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。

梯度一词有时用于斜度,也就是一个曲面沿着给定方向的倾斜程度。

可以通过取向量梯度和所研究的方向的点积来得到斜度。

梯度的数值有时也被称为梯度。

在二元函数的情形,设函数z=f(x,y)在平面区域D内具有一阶连续偏导数,则对于每一点P(x,y)∈D,都可以定出一个向量

(δf/x)*i+(δf/y)*j

这向量称为函数z=f(x,y)在点P(x,y)的梯度,记作gradf(x,y)

类似的对三元函数也可以定义一个:

(δf/x)*i+(δf/y)*j+(δf/z)*k记为grad[f(x,y,z)]

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

方向导数(directionalderivative)的通俗解释是:

我们不仅要知道函数在坐标轴方向上的变化率

方向导数(即偏导数),而且还要设法求得函数在其他特定方向上的变化率。

而方向导数就是函数在其他特定方向上的变化率。

定义

方向导数的精确定义(以三元函数为例):

设三元函数f在点P0(x0,y0,z0)的某邻域内有定义,l为从点P0出发的射线,P(x,y,z)为l上且含于邻域内的任一点,以ρ(rou)表示P和P0两点间的距离。

若极限

lim((f(P)-f(P0))/ρ)=lim(△lf/ρ)(当ρ→0时)

存在,则称此极限为函数f在点P0沿方向l的方向导数。

雅可比矩阵

二阶导数的集合意义:

(1)斜线斜率变化的速度

(2)函数的凹凸性.

二阶导数是比较理论的、比较抽象的一个量,它不像一阶导数那样有明显的几何意义,因为它表示的是一阶导数的变化率.在图形上,它主要表现函数的凹凸性,直观的说,函数是向上突起的,还是向下突起的.

应用:

如果一个函数f(x)在某个区间I上有f''(x)(即二阶导数)>0恒成立,那么对于区间I上的任意x,y,总有:

f(x)+f(y)≥2f[(x+y)/2],如果总有f''(x)0恒成立,那么在区间I上f(x)的图象上的任意两点连出的一条线段,这两点之间的函数图象都在该线段的下方,反之在该线段的上方.

机器学习中梯度下降法和牛顿法的比较

在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解。

在逻辑斯蒂回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法。

由于两种方法有些相似,我特地拿来简单地对比一下。

下面的内容需要读者之前熟悉两种算法。

梯度下降法

梯度下降法用来求解目标函数的极值。

这个极值是给定模型给定数据之后在参数空间中搜索找到的。

迭代过程为:

可以看出,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha。

梯度下降法通常用一个三维图来展示,迭代过程就好像在不断地下坡,最终到达坡底。

为了更形象地理解,也为了和牛顿法比较,这里我用一个二维图来表示:

懒得画图了直接用这个展示一下。

在二维图中,梯度就相当于凸函数切线的斜率,横坐标就是每次迭代的参数,纵坐标是目标函数的取值。

每次迭代的过程是这样:

1.首先计算目标函数在当前参数值的斜率(梯度),然后乘以步长因子后带入更新公式,如图点所在位置(极值点右边),此时斜率为正,那么更新参数后参数减小,更接近极小值对应的参数。

2.如果更新参数后,当前参数值仍然在极值点右边,那么继续上面更新,效果一样。

3.如果更新参数后,当前参数值到了极值点的左边,然后计算斜率会发现是负的,这样经过再一次更新后就会又向着极值点的方向更新。

根据这个过程我们发现,每一步走的距离在极值点附近非常重要,如果走的步子过大,容易在极值点附近震荡而无法收敛。

解决办法:

将alpha设定为随着迭代次数而不断减小的变量,但是也不能完全减为零。

牛顿法

原理是利用泰勒公式,在x0处展开,且展开到一阶,即f(x)=f(x0)+(x-x0)f'(x0)

求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x= x1=x0-f(x0)/f'(x0),因为这是利用泰勒公式的一阶展开,f(x)=f(x0)+(x-x0)f'(x0)处并不是完全相等,而是近似相等,这里求得的x1并不能让f(x)=0,只能说f(x1)的值比f(x0)更接近f(x)=0,于是乎,迭代求解的想法就很自然了,可以进而推出x(n+1)=x(n)-f(x(n))/f'(x(n)),通过迭代,这个式子必然在f(x*)=0的时候收敛。

整个过程如下图:

2、牛顿法用于最优化

在最优化的问题中,线性最优化至少可以使用单纯行法求解,但对于非线性优化问题,牛顿法提供了一种求解的办法。

假设任务是优化一个目标函数f,求函数f的极大极小问题,可以转化为求解函数f的导数f'=0的问题,这样求可以把优化问题看成方程求解问题(f'=0)。

剩下的问题就和第一部分提到的牛顿法求解很相似了。

这次为了求解f'=0的根,把f(x)的泰勒展开,展开到2阶形式:

这个式子是成立的,当且仅当 Δx无线趋近于0。

此时上式等价与:

求解:

得出迭代公式:

一般认为牛顿法可以利用到曲线本身的信息,比梯度下降法更容易收敛(迭代更少次数),如下图是一个最小化一个目标方程的例子,红色曲线是利用牛顿法迭代求解,绿色曲线是利用梯度下降法求解。

在上面讨论的是2维情况,高维情况的牛顿迭代公式是:

其中H是hessian矩阵,定义为:

 

高维情况依然可以用牛顿迭代求解,但是问题是Hessian矩阵引入的复杂性,使得牛顿迭代求解的难度大大增加,但是已经有了解决这个问题的办法就是Quasi-Newtonmethond,不再直接计算hessian矩阵,而是每一步的时候使用梯度向量更新hessian矩阵的近似。

Quasi-Newtonmethod的详细情况我还没完全理解,且听下回分解吧。

首先得明确,牛顿法是为了求解函数值为零的时候变量的取值问题的,具体地,当要求解f(θ)=0时,如果f可导,那么可以通过迭代公式

来迭代求得最小值。

通过一组图来说明这个过程。

当应用于求解最大似然估计的值时,变成ℓ′(θ)=0的问题。

这个与梯度下降不同,梯度下降的目的是直接求解目标函数极小值,而牛顿法则变相地通过求解目标函数一阶导为零的参数值,进而求得目标函数最小值。

那么迭代公式写作:

当θ是向量时,牛顿法可以使用下面式子表示:

其中H叫做海森矩阵,其实就是目标函数对参数θ的二阶导数。

通过比较牛顿法和梯度下降法的迭代公式,可以发现两者及其相似。

海森矩阵的逆就好比梯度下降法的学习率参数alpha。

牛顿法收敛速度相比梯度下降法很快,而且由于海森矩阵的的逆在迭代中不断减小,起到逐渐缩小步长的效果。

牛顿法的缺点就是计算海森矩阵的逆比较困难,消耗时间和计算资源。

因此有了拟牛顿法。

最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少?

牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。

如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。

所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。

根据wiki上的解释,从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。

wiki上给的图很形象,我就直接转过来了:

红色的牛顿法的迭代路径,绿色的是梯度下降法的迭代路径。

利普希茨连续

在在数学中,特别是实分析,利普希茨连续(Lipschitzcontinuity)以德国数学家鲁道夫·利普希茨命名,是一个比通常连续更强的光滑性条件。

直觉上,利普希茨连续函数限制了函数改变的速度,符合利普希茨条件的函数的斜率,必小于一个称为利普希茨常数的实数(该常数依函数而定)。

在微分方程中,利普希茨连续是皮卡-林德洛夫定理中确保了初值问题存在唯一解的核心条件。

一种特殊的利普希茨连续,称为压缩应用于巴拿赫不动点定理。

利普希茨连续可以定义在度量空间上以及赋范向量空间上;利普希茨连续的一种推广称为赫尔德连续。

定义

对于在实数集的子集的函数

 

 

,若存在常数K,使得

 

 

,则称 f 符合利普希茨条件,对于f 最小的常数K 称为 f 的利普希茨常数。

[1]

若K <1,f 称为收缩映射。

利普希茨条件也可对任意度量空间的函数定义:

给定两个度量空间

 

 

若对于函数

 

 

,存在常数K 使得

则说它符合利普希茨条件。

[2]

若存在K ≥1使得

则称 f 为双李普希茨(bi-Lipschitz)的。

深入理解拉格朗日乘子法(LagrangeMultiplier)和KKT条件

p.94

在求取有约束条件的优化问题时,拉格朗日乘子法(LagrangeMultiplier)和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。

当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件。

KKT条件是拉格朗日乘子法的泛化。

之前学习的时候,只知道直接应用两个方法,但是却不知道为什么拉格朗日乘子法(LagrangeMultiplier)和KKT条件能够起作用,为什么要这样去求取最优值呢?

本文将首先把什么是拉格朗日乘子法(LagrangeMultiplier)和KKT条件叙述一下;然后开始分别谈谈为什么要这样求最优值。

一. 拉格朗日乘子法(LagrangeMultiplier)和KKT条件

通常我们需要求解的最优化问题有如下几类:

(i)无约束优化问题,可以写为:

                   minf(x); 

(ii)有等式约束的优化问题,可以写为:

                    minf(x), 

                      s.t.h_i(x)=0;i=1,...,n 

(iii)有不等式约束的优化问题,可以写为:

                   minf(x), 

                      s.t.g_i(x)<=0;i=1,...,n

                         h_j(x)=0;j=1,...,m

对于第(i)类的优化问题,常常使用的方法就是Fermat定理,即使用求取f(x)的导数,然后令其为零,可以求得候选最优值,再在这些候选值中验证;如果是凸函数,可以保证是最优解。

对于第(ii)类的优化问题,常常使用的方法就是拉格朗日乘子法(LagrangeMultiplier),即把等式约束h_i(x)用一个系数与f(x)写为一个式子,称为拉格朗日函数,而系数称为拉格朗日乘子。

通过拉格朗日函数对各个变量求导,令其为零,可以求得候选值集合,然后验证求得最优值。

对于第(iii)类的优化问题,常常使用的方法就是KKT条件。

同样地,我们把所有的等式、不等式约束与f(x)写为一个式子,也叫拉格朗日函数,系数也称拉格朗日乘子,通过一些条件,可以求出最优值的必要条件,这个条件称为KKT条件。

(a) 拉格朗日乘子法(LagrangeMultiplier)

对于等式约束,我们可以通过一个拉格朗日系数a把等式约束和目标函数组合成为一个式子L(a,x)=f(x)+a*h(x),这里把a和h(x)视为向量形式,a是横向量,h(x)为列向量,之所以这么写,完全是因为csdn很难写数学公式,只能将就了.....。

然后求取最优值,可以通过对L(a,x)对各个参数求导取零,联立等式进行求取,这个在高等数学里面有讲,但是没有讲为什么这么做就可以,在后面,将简要介绍其思想。

(b) KKT条件

对于含有不等式约束的优化问题,如何求取最优值呢?

常用的方法是KKT条件,同样地,把所有的不等式约束、等式约束和目标函数全部写为一个式子L(a,b,x)=f(x)+a*g(x)+b*h(x),KKT条件是说最优值必须满足以下条件:

1.L(a,b,x)对x求导为零;

2.h(x)=0;

3.a*g(x)=0;

求取这三个等式之后就能得到候选最优值。

其中第三个式子非常有趣,因为g(x)<=0,如果要满足这个等式,必须a=0或者g(x)=0.这是SVM的很多重要性质的来源,如支持向量的概念。

二.为什么拉格朗日乘子法(LagrangeMultiplier)和KKT条件能够得到最优值?

为什么要这么求能得到最优值?

先说拉格朗日乘子法,设想我们的目标函数z=f(x),x是向量,z取不同的值,相当于可以投影在x构成的平面(曲面)上,即成为等高线,如下图,目标函数是f(x,y),这里x是标量,虚线是等高线,现在假设我们的约束g(x)=0,x是向量,在x构成的平面或者曲面上是一条曲线,假设g(x)与等高线相交,交点就是同时满足等式约束条件和目标函数的可行域的值,但肯定不是最优值,因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值,如下图所示,即等高线和目标函数的曲线在该点的法向量必须有相同方向,所以最优值必须满足:

f(x)的梯度=a*g(x)的梯度,a是常数,表示左右两边同向。

这个等式就是L(a,x)对参数求导的结果。

(上述描述,我不知道描述清楚没,如果与我物理位置很近的话,直接找我,我当面讲好理解一些,注:

下图来自wiki)。

而KKT条件是满足强对偶条件的优化问题的必要条件,可以这样理解:

我们要求minf(x),L(a,b,x)=f(x)+a*g(x)+b*h(x),a>=0,我们可以把f(x)写为:

max_{a,b}L(a,b,x),为什么呢?

因为h(x)=0,g(x)<=0,现在是取L(a,b,x)的最大值,a*g(x)是<=0,所以L(a,b,x)只有在a*g(x)=0的情况下才能取得最大值,否则,就不满足约束条件,因此max_{a,b}L(a,b,x)在满足约束条件的情况下就是f(x),因此我们的目标函数可以写为min_xmax_{a,b}L(a,b,x)。

如果用对偶表达式:

 max_{a,b} min_x L(a,b,x),由于我们的优化是满足强对偶的(强对偶就是说对偶式子的最优值是等于原问题的最优值的),所以在取得最优值x0的条件下,它满足f(x0)= max_{a,b} min_x L(a,b,x)= min_xmax_{a,b}L(a,b,x)=f(x0),我们来看看中间两个式子发生了什么事情:

 f(x0)= max_{a,b} min_x L(a,b,x)=  max_{a,b} min_xf(x)+a*g(x)+b*h(x)=  max_{a,b}f(x0)+a*g(x0)+b*h(x0)=f(x0)

可以看到上述加黑的地方本质上是说 min_x f(x)+a*g(x)+b*h(x)在x0取得了最小值,用fermat定理,即是说对于函数 f(x)+a*g(x)+b*h(x),求取导数要等于零,即

f(x)的梯度+a*g(x)的梯度+b*h(x)的梯度=0

这就是kkt条件中第一个条件:

L(a,b,x)对x求导为零。

而之前说明过,a*g(x)=0,这时kkt条件的第3个条件,当然已知的条件h(x)=0必须被满足,所有上述说明,满足强对偶条件的优化问题的最优值都必须满足KKT条件,即上述说明的三个条件。

可以把KKT条件视为是拉格朗日乘子法的泛化。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1