《机器学习中用到的数值分析》由会员分享,可在线阅读,更多相关《机器学习中用到的数值分析(15页珍藏版)》请在金锄头文库上搜索。
1、第四章 背景知识condition number从优化或者数值计算的角度来说,L2范数有助于处理condition number不好的情况下矩阵求逆 很困难的问题。心)=|绷冲|如果方阵 A 是奇异的,那么 A 的 condition number 就是正无穷大了。实际上,每一个可逆方 阵都存在一个 condition number。对condition number来个一句话总结:condition number是一个矩阵(或者它所描述的线性系统) 的稳定性或者敏感度的度量,如果一个矩阵的 condition number 在 1 附近,那么它就是 well-conditioned 的,如果
2、远大于 1,那么它就是 ill-conditioned 的,如果一个系统是 ill-conditioned 的,它的输出结果就不要太相信了。应用如果当我们的样本 X 的数目比每个样本的维度还要小的时候,矩阵 X T X 将会不是满秩的,也 就是X TX会变得不可逆,所以w卜 就没办法直接计算出来了。如果加上L2规则项,就变成了下面这种情况,就可以直接求逆了:condition number 一般在矩阵里被定义做最大singular value和最小singular value的比值。一般说来,如果一个矩阵的condition number大于1000,数值计算inv(A)或者解线性方程AX=Y
3、可能会遇到严重的舍入问题,这样的问题通常被称为ill-conditioned。最简单的解决方法是把A的diagonal entries都加上一个微小量delta以后再计算这样做虽然会引入误差,但是可以改善ill-condition。梯度设体系中某处的物理参数(如温度、速度、浓度等)为W,在与其垂直距离的dy处该参数为w+dw, 则称为该物理参数的梯度,也即该物理参数的变化率。如果参数为速度、浓度、温度或空间,则 分别称为速度梯度、浓度梯度、温度梯度或空间梯度。其中温度梯度在直角坐标系下的表达式如 右图。在向量微积分中,标量场的梯度是一个向量场。标量场中某一点上的梯度指向标量场增长最快 的方向,
4、梯度的长度是这个最大的变化率。更严格的说,从欧氏空间Rn到R的函数的梯度是在 Rn 某一点最佳的线性近似。在这个意义上,梯度是雅戈比矩阵的一个特殊情况。 在单变量的实值函数的情况,梯度只是导数,或者,对于一个线性函数,也就是线的斜率。梯度一词有时用于斜度,也就是一个曲面沿着给定方向的倾斜程度。可以通过取向量梯度和所研 究的方向的点积来得到斜度。梯度的数值有时也被称为梯度。在二元函数的情形,设函数z=f(x,y)在平面区域D内具有一阶连续偏导数,则对于每一点P(x,y) WD,都可以定出一个向量(6f/x)*i+(6f/y)*j这向量称为函数z=f(x,y)在点P(x,y)的梯度,记作gradf
5、(x,y)类似的对三元函数也可以定义一个:( f/x)*i+( f/y)*j+( f/z)*k记为gradf(x,y,z)梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即 函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。方向导数(direc tional derivative通俗解释是:我们不仅要知道函数在坐标轴方向上的变化率(即偏导数),而且还要设法求得函数在其他特定方向上的变化率。而方向导数就是函数在其他特定方向上的变化率。定义方向导数的精确定义(以三元函数为例):设三元函数f在点P0(x0, y0, zO)的某邻域内有定 义
6、,I为从点P0出发的射线,P (x, y, z)为I上且含于邻域内的任一点,以P( rou)表示P 和P0两点间的距离。若极限lim ( (f(P)-f(P0) / P ) = lim (l f / p) (当 P_0 时)存在,则称此极限为函数f在点P0沿方向l的方向导数。雅可比矩阵Jacobian矩阵和H essian矩阵1. Jacobian在向量方析中-雅可t海阵丟仔侑寻裁以一走方式H洌成的矩阵.具行列式称为雅可比行列式-还有. 在f皈I何中;代数莊线的雅可二盪表示推可谨:伴嗨该曲诜的烘群;曲拔可哄嵌入M中.它 们全希以数学家卡尔雅可曰C曰I Jacob. 1904年2月4曰 低已年2
7、月竹日命3 ;英文雅可比 Jacobian1可以发育为册Ko bi自门或吉逹m to bi sn.雅可比矩晖雅可t屈阵E勺重真性在于它仲現了一NC徴方程与给出点的最优蛙性if近因此,雅可比走阵須以于家 元星数的导数假细:硃 T从或式n维空间转换欧式m维空间的虽I数一应倔I数田m个实函数自成:y1 (x1,xn):ym(x1.xn).这些亟数的谊导埶如具存在冋以组成一个陌门列的矩阵;适就是所的雅可比矩阵;如些Sei认鱼 .叽雌示為斥仙、或吉策二鬻逵个走阵的第i行是生梯滾函数的转置yi(i二化,m)恚示的.如果p是R仇中的一点,F在p点可微分月眩在这一点的导数田f(p)给出(这圣求该点导数辰简便的
8、 方法).在此喈况下,由F(p)描迖的线性算子閉接近点p的F的最优线性逼近xil近亍pF(x) a F(p) + Jf(p)(x-p)雅可比行列式如果m二n,歹弦F是从n维空间到傕空间的函数,且它的雅可比矩阵是一个方块矩阵于是我们可以取 它的行列式,称为雅可比列式.至呈个给走点的雅可比行列式展供了在接近该点时的丢现的重妾信邑例如,如果连续可微函数F在 P点的雅可比列式不是零:甘陆它在该点附近具有反函歿这称为反逸数走理更送一些妇果P点的 雅可比行列式是正数则F在p点的取向不变;如吴是负数.则F的取向相反.而从雅可比行列式的经 对值就可以知道函数F在p点的縮放因子;这就是为什么它出现曲奂元积分法中
9、.对于取向问題可以这么理昇例如一个物体在平面上匀速运动.如呆施加一个正方向的力F,即取向相 同,则加速运动,类比于速糜的导数加速壹为正;如果施加一个反方向的力F,即取向相反:则减速运动, 类比于速良的导数加速兵为负2. Hessian矩晖在数学中,海森矩阵(Hessian matrixBEHessian)-自变呈为向量的实值國数的二阶偏导数组成 块矩阵,此函数如下:(衍、衍)如果子的所有二阶导数都存在:竝 f的海森矩阵即:冥中见=(a;i,a;2、坯),即丑为二a1!池有人把海森定义为以上矩阵的行列式)海森矩B敬应用于牛顿送解决的大规模优化问题 海森矩阵在牛顿法中的应用嵐牛顿法主更应用在两个方
10、面,1,求方程的艰;2;最稅比J睛方桂芥不是所有的方程郡有求根公式 或吉求恨公式很复杂 导致求解囲难.利用牛顿注可宓代求解.原理寄廉秦勒公式在矶处展开 巨展开到-阶:即托町=f 巩)+佃-列)f (珀|求解方程f (町0,即几如-(工一巩)尸(叭)=0;持広一珂一刊-子()/_/(巩),因为这是 利用泰勒公式的一阶展疋子(巧-列刊)-处幷K是完全相等.而是近似相笹.这里 求得的叭齐不能让子(妙=0視能说了(班:1的值比崔叭)事接近f)=0,于是乎,迭代求解的想法就 很自撚了;可以世而推出+i -叭厂(%),通过迭代.逹个式子必然在/(h;0的时侯收 敛整个过程如下图;2).昴优化在最优化的问題
11、中遂性最优化至少可以便主单纯形法(或称不动点算岗求豁,但对于非淫性优化问琵 牛頓法提洪了一种求解的办法.假设任务是忧化一个目标屋I嫁f :求画紂的扱犬扱旳口甌可以转化再 求舞丞数f的导数尸=0的口惡这样求可以把优化问趣看成方程茨晤问題(尹=(1).剩下的问题就和第 -部分提啲牛顿法求解很相似了(r.* f(X.牛顿法求实根图示这次为了求解f0的恨把/的牺展开,展开到2阶形式;+ As) -/()- f lA2? + (sJAj:3逗个式子是成立时 步旦仅为As无艰趋近于口盯f(x + As) - / (),约去这两项;并对余项式 尹倒血+寺门呦2泸=1)对2L跡导肚 尸(叭 严何均为常数项.此
12、时上式野价与:f (a:)十严(町也3=0求解:得出迭代公式:%H =附箸斗評=。丄V认为牛顿法可以利用召曲堤本身的L t匕样废下降法更客扇收皴(这代更少次数j ,如匸團是 不胃NA个冃标方程的刑子,江邑肿毘是利用牛书血法迭彳七求解绿邑扫燼是利用悌度下降法求解0在上面讨论的是2维潯兄.高维博况的牛頓迭代公式是:= n 攻/(畔)中子伽訪11工。冥中Habeas :ani车走义见上-高维肓况蔽茁LX用牛顿迭代義薛.佢是问题是He汨旬矩阵引人的复杂生使得牛顿迭代押的雜辰 丈丈章加一佢是已经有f薛决遠个问题的办法就是Qu胎:Newton method,-再岂接计算hessian矩阵, 而是4 步的时
13、候使用梯底巨呈更新h e s s旧门矩阵的近似.二阶导数的集合意义:(1)斜线斜率变化的速度(2)函数的凹凸性.二阶导数是比较理论的、比较抽象的一个量,它不像一阶导数那样有明显的几何意义,因为它表示 的是一阶导数的变化率.在图形上,它主要表现函数的凹凸性,直观的说,函数是向上突起的,还是向 下突起的.应用:如果一个函数f(x)在某个区间I上有f(x)(即二阶导数)0恒成立,那么对于区间I上的任意x,y, 总有:f(x)+f(y)22f(x+y)/2,如果总有f(x)0恒成立,那么在区间I上f(x)的图象上的任意两点连出的一条 线段,这两点之间的函数图象都在该线段的下方,反之在该线段的上方.机器
14、学习中梯度下降法和牛顿法的比较在机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解。在逻辑斯蒂 回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法。由于两种方法有些相似,我特地拿来简单地对比一下。下面的内 容需要读者之前熟悉两种算法。梯度下降法梯度下降法用来求解目标函数的极值。这个极值是给定模型给定数据之后在参数空间中搜索找到的。迭代过程为:可以看岀,梯度下降法更新参数的方式为目标函数在当前参数取值下的梯度值,前面再加上一个步长控制参数alpha。梯度下降法通常用一个三维图来展示,迭代过程就好像在不断地下坡,最终到达坡底。为了更形
15、象地理解,也为了和牛顿法比较,这里我用一个二维图来表示:懒得画图了直接用这个展示一下。在二维图中,梯度就相当于凸函数切线的斜率,横坐标就是每次迭代的参数,纵坐标是目标函数的取 值。每次迭代的过程是这样: 首先计算目标函数在当前参数值的斜率(梯度),然后乘以步长因子后带入更新公式,如图点所在位置(极值点右边),此时斜率为正, 那么更新参数后参数减小,更接近极小值对应的参数。如果更新参数后,当前参数值仍然在极值点右边,那么继续上面更新,效果一样。 如果更新参数后,当前参数值到了极值点的左边,然后计算斜率会发现是负的,这样经过再一次更新后就会又向着极值点的方向更新。 根据这个过程我们发现,每一步走的距离在极值点附近非常重要,如果走的步子过大,容易在极值点附近震荡而无法收敛。解决办法: 将 alpha 设定为随着迭代次数而不断减小的变量,但是也不能完全减为零。牛顿法原理是利用泰勒公式,在 x0 处展开,且展开到一阶,即 f(x) = f(x0)+(xx0)f(x0)求解方程 f(x)=O,即 f(xO)+(x-xO)*f(xO)=O,求解 x = x1=xO f(xO)/f(xO),因为这