750 likes | 999 Views
硕博共选数学基础课系列. 第四讲 无约束 ( 多维 ) 最优化. 梯度法(最速下降法) 牛顿法与拟牛顿法 变尺度法 (DFP 法 ) 共轭梯度法. 序 无约束最优化问题. 无约束最优化问题. 其中 f ( x ) 有一阶连续偏导数。. 解析方法 :利用函数的解析性质 —— 驻点,得到最优解。. 数值方法 :利用函数的解析性质构造迭代公式使之收敛到最优解。. 2. 无约束问题的最优性条件. 定理 1 设 f ( x ): R n → R 在点 x R n 处可微,若存在 p R n ,使.
E N D
硕博共选数学基础课系列 第四讲无约束(多维)最优化 • 梯度法(最速下降法) • 牛顿法与拟牛顿法 • 变尺度法(DFP法) • 共轭梯度法
序 无约束最优化问题 无约束最优化问题 其中f (x)有一阶连续偏导数。 解析方法:利用函数的解析性质——驻点,得到最优解。 数值方法:利用函数的解析性质构造迭代公式使之收敛到最优解。 2
无约束问题的最优性条件 定理1 设f (x): Rn→R在点x Rn处可微,若存在p Rn ,使 则向量p是f (x)在点x处的下降方向 定理2 设f (x): Rn→R在点x* Rn处可微,若x*是minf (x)的 局部最优解 则 g*(x) = f (x*) = 0 注: 梯度为0的点称为函数的驻点。 • 驻点可能是极小点,也可能是极大点,也可能即不是极大 也不是极小,这时称为函数的鞍点。 定理2说明:UMP问题的局部最优解必是目标函数的驻点。 3
定理3 设f (x): Rn→R在点x* Rn处的Hesse矩阵2f (x*) 存在,若f (x*) =0,且2f (x*) 正定,则 x*是minf (x)的严格局部最优解 定理4 设f (x): Rn→R,x* Rn,f (x)是Rn上的可微凸函 数,若f (x*) =0,则 x*是minf (x)的全局最优解 4
4.1 梯度法(最速下降法) 迭代公式: 如何选择下降最快的方向? 函数值增加最快的方向 xk 函数值下降的方向 函数值下降最快的方向 6
一、梯度法(最速下降法): • 搜索方向:d k = - f (xk),也称为最速下降方向 • 搜索步长:k取最优步长,即满足 • f (xk+k d k) = min f (xk+d k) 二、梯度法算法步骤: 1) 给定初始点x0 Rn,计算误差 > 0,令k : = 0 2) 计算搜索方向d k = - f (xk) 3) 若||d k|| ,则停止计算,x k为所求极值点,否则,求最 优步长k,使得f (xk+k d k) = min f (xk+d k) 4) 令 ,令k: = k+1,转2) 7
例1 用最速下降法求解 minf (x) = x12+3x22,设初始点x0 = (2, 1)T 求迭代一次后的迭代点x1 解: 令 求解 令 8
三、最速下降法的特点 1. 性质 设f (x)具有一阶连续偏导数,若步长k满足 则有 证明:令 有 注:因为梯度搜索法的方向 ,所以 9
2. 最速下降法的锯齿现象 在极小点附近,目标函数可以用二次函数近似,其等值面近似为椭球面。 10
特点:线性收敛,易产生扭摆现象而造成早停。特点:线性收敛,易产生扭摆现象而造成早停。 (当x(k)距最优点较远时,速度快,而接近最优点时,速度下降) 原因: 当x(k)接近极小点时,f (x(k)) → 0,于是高阶项0||(x-x(k))||的影响可能超过f (x(k))T(x-x(k)) 11
L04.作业 L04-1 对于任意二阶可微函数f(x),求其近似的最优步长 <注:对一般形式的f(x),要精确求其最优步长很困难>。 L04-2 在梯度算法中,当每次迭代后函数f(x)的减小值与原来点的比值是一个固定值时 <隐含假设,这个固定比例能达到>,求该情况下的步长。 12
二阶收敛的最小化算法 13
4.2 Newton 法 1. 问题 f(x)是Rn上二次连续可微函数 即f (x)C 2(Rn) 用 f (x)的Taylor展开近似计算 14
2. 算法思想 为了由xk产生xk+1,用二次函数Q(x)近似 f (x) 其中,gk = f (xk)T,Hk = 2f (xk) 两边对x求导,则 15
若Hesse阵Hk正定,即Hk > 0, 则Hk-1 > 0,此时有 这就是Newton迭代公式。 比较迭代式 ,有 16
3. 算法步骤 1) 给定初始点x0,精度> 0,k: = 0 2) 计算gk = f (xk)和 Hk = 2f (xk) 当Hk可逆时, 3) 由方程组Q(x) = gk+Hk(x-xk) = 0 解出xk+1 4) 若||f (xk+1)|| < ,停止, x*= xk+1 否则,令k: = k+1,转2) 17
给定初始点x0和精度 是 否 否 是 • 算法框图 停止,输出x1 否 是 停止,输出x0 停止,解题失败 18
0 1 0.7854 0.5000 1 -0.5708 -0.5178 1.3258 2 0.1169 0.1163 1.137 3 -0.001061 例1:求解 解:取x0 = 1,计算 迭代过程如下表:计算 19
例2:用Newton法求解,min f (x) = x14+25x24+x12x22,选取 x0 = (2, 2)T,= 10-6 编写M文件nwfun2.m: clc x=[2;2]; [f0,g1,g2]=nwfun(x) while norm(g1)>0.00001 i=1:3 p=-inv(g2)*g1',p=p/norm(p) t=1.0,f=detaf(x+t*p) while f>f0 t=t/2,f=detaf(x+t*p), %步长减半 end x=x+t*p [f0,g1,g2]=nwfun(x) end (ii)编写M文件nwfun.m如下: function [f,df,d2f]=nwfun(x); f=x(1)^4+25*x(2)^4+x(1)^2*x(2)^2; df(1)=4*x(1)^3+2*x(1)*x(2)^2; df(2)=100*x(2)^3+2*x(1)^2*x(2); d2f(1,1)=12*x(1)^2+2*x(2)^2; d2f(1,2)=4*x(1)*x(2); d2f(2,1)=d2f(1,2); d2f(2,2)=300*x(2)^2+4*x(1)*x(2); 20
4. 算法特点 • 收敛速度快,为二阶收敛。 • 初始点要选在最优点附近。 • 存在缺点及修正 1) f (xk+1) < f (xk) ? 2) 初始点的选取困难,甚至无法实施。 3)Hk-1的存在性和计算量问题 21
问题1:如何使得f (xk+1) < f (xk) ? 在Newton法中,有xk+1 = xk -Hk-1 gk = xk +dk 当Hk > 0时,有 因此,当Hk > 0时,dk是下降方向。 如果对Newton法稍作修正: 则有f (xk+1) < f (xk) 22
问题2:如何克服缺点(2)、(3) 拟牛顿法(变尺度法) 23
4.3 拟牛顿法(变尺度法) 一、拟牛顿法的思想 1. 先考虑Newton迭代公式:xk+1 = xk -Hk-1f (xk) 在Newton迭代公式中,如果我们用正定矩阵Pk代替Hk-1, 则有 2. 考虑更一般的形式:xk+1 = xk -kPkf (xk) 24
Pk ≡ I 时, 梯度法, 最速下降方向dk = -f (xk),度量为||x|| = sqrt(xTI x) Pk ≡ Hk-1时, Newton法, 最速下降方向dk = - Hk-1f (xk),度量为||x|| = sqrt(xTHk-1 x) 也称拟Newton法为变尺度算法 25
3. 如何对Pk附加某些条件使得: 1) 迭代公式具有下降性质 Pk> 0 2) Pk的计算量要小 Pk+1 =Pk+Pk (Pk = Pk+1 – Pk) 3) 收敛速度要快 Pk Hk-1 如何保证Pk > 0和Pk Hk-1 如何确定Pk ? 26
拟Newton条件 Pk Hk-1 分析:Hk-1需满足的条件,并利用此条件确定Pk 记 因为 从而,我们想到 27
记 ,则有 拟Newton条件或拟Newton方程: 二、拟Newton算法(变尺度法)的一般步骤 1) 给定初始点x0,正定矩阵P0,精度> 0,k: = 0 2) 计算搜索方向d k = - Pkf (xk) 3) 令xk+1 = xk +kd k,其中tk满足 28
4) 判断xk+1是否满足终止准则: Yes:停止计算,且x* = xk+1;No:转5) 5) 令 按照校正公式Pk+1 =Pk+Pk,计算Pk+1使得Pk+1满足拟 Newton条件或拟Newton方程:Pk+1gk =xk 令k: = k+1,转2) 问题:如何确定一个合适的Pk? 29
4.4 DFP算法 一、DFP法的提出 • 1959年Davidon首次提出 • 1963年Fletcher和Powell做了改进 • 多变量无约束优化问题的一项重要工作 二、如何确定Pk?— 秩2校正法 待定: 30
根据拟Newton条件: Pk+1gk =xk ,我们有 即 满足上述方程的解很多,例如可以取如下一组解: 从而,我们可以取: 31
即: 根据上述推导,我们能够得到Pk的DFP校正公式: — DFP校正公式 性质: 32
三、DFP算法的步骤 将拟牛顿法的第5)步: 按照校正公式Pk+1 = Pk+Pk 计算Pk+1,使得Pk+1满足拟牛顿条件 或拟牛顿方程:Pk+1 gk = xk 令k: = k+1,转2) 改为: 整个算法为 5) 按照DFP的校正公式: 计算Pk+1,k: = k+1,转2) 33
x(0)和P(0)(P(0)一般为正定阵) > 0,k: = 0 四、变尺度法算法框图: d(k) =-P(k)f(x(k)) 一维搜索得k x(k+1) = x(k) + kd(k) Stop x(k+1)—解 N 修正P(k) 产生P(k+1) y 34
例:用DFP算法求解min f (x) = x12 + 4x22,初始点x0 = (1, 1)T 解: 取P 0 = I, f(x) = (2x1, 8x2)T 第一步DFP算法与梯度法相同: 因为x0 - f(x0) = (1-2t, 1-8t)T 解得0= 0.13,所以x1 = (0.73846, -0.04616)T 35
按照DFP校正公式 因而,搜索方向 由于f(x2) =0,所以x2是极小点。 36
五、变尺度法算法的校正公式 一般的变尺度法算法主要是Huang族公式 Pk+1 = Pk+xkkT +PkgkvkT 其中 k = akxk + bkPkTgk vk = ckxk + dkPkTgk 且满足 kTgk = vkTgk = -1 这个公式包含5个参数 (ak, bk, ck, dk, ) 37
但由于有2个关系式,故有3个独立参数 • 而较重要的三种公式为 • 令= 1, bk = ck = 0,即DFP公式 • 令= 1, bk = ck,即Broyden族公式 • 令= 1, bk = ck,dk = 0,即为最重要的BFSG公式 BFSG是当前变尺度方法中数值稳定性最好的方法。 38
六、变尺度法的主要特点 ⑴ 只需用到函数的一阶梯度;(Newton法用到二阶Hesse阵) ⑵ 下降算法,故全局收敛; ⑶ 不需求矩阵逆;(计算量小) ⑷ 一般可达到超线性收敛;(速度快) ⑸ 有二次终结性。 39
4.5 共轭梯度法 40
4.5 共轭梯度法 一、共轭方向和共轭方向法 1.定义 设矩阵A为n n的对称正定矩阵,对于Rn中的两个非零向量d 1和d 2,若有(d1)TAd 2 = 0,则称d 1和d 2关于A共轭。 设d 1,d 2,…,d k是Rn中一组非零向量,如果它们两两关于A共轭,即(d i) TAd j = 0,i≠ j,i, j = 1, 2, …, k,则称这组方向是关于A共轭的,也称他们是一组A共轭方向。 注:如果A是单位阵,则 共轭是正交的推广。 41
2.共轭方向 设直线 AB和CD过椭圆中心,且CD平行于椭圆在点 A,B的切线,则称AB与CD为共轭直径, 与 的方向为共轭方向,或 A, B的切线方向与 的方向称为共轭方向,见下图。 B’ B C A’ D A 42
设A是n阶对称正定矩阵, d 1,d 2,…,d k是k个A共轭非零向量,则这个向量组线性无关。 定理1 证明: 设存在实数α1, α2,…, αk,使得 上式两端同时左乘(dj)TA,则有 因为d 1,d 2,…,d k是k个A共轭的向量,所以上式简化为 因为d j≠ 0,而A是正定阵,所以(d j) TAd j > 0, d 1,d 2,…,d k 线性无关。 43
3. 几何意义 设有二次函数 其中A是n n对称正定阵,x 是一个定点,则称函数f (x)的等值面 是以x 为中心的椭球面。 由于 而 由于A正定,所以 因而 x 是f (x)的极小点。 44
设 x(0)是某个等值面上的一点,d (1)是Rn中的一个方向,x(0)沿d (1)以最优步长搜索到点x(1),则d(1)是点x(1)所在等值面的切向量。 该等值面在点x(1)处的法向量为 f (x(1)) 则d (1)与f (x(1))正交, 即 令 这样 即等值面上某点的切向量与由这点指向极小点的向量关于A共轭。 45
设有函数f (x) = ½xTAx + bTx + c,其中A是n阶正定阵,d (1),d (2),…,d (k)是一组关于A的共轭向量。 定理2 以任意的x(1) Rn为初始点,依次沿d (1),d (2),…,d (k)进行搜索,得到点x(2), x(3), … , x(k+1),则x(k+1)是函数f (x)在x(1) + Bk上的极小点,其中 是由d (1),d (2),…,d (k)生成的子空间。特别地,当k = n时, x(k+1)是函数f (x)在Rn上的唯一极小点。 推论 在上述定理条件下,必有 46
共轭方向作下降方向的最小化算法 4.共轭方向法 47
4.共轭方向法 对于极小化问题 其中A是正定阵,称下述算法为共轭方向法: • 取定一组与矩阵A共轭的方向d (1),d (2),…,d (n); • 任取初始点x(1) ,依次按照下式由x(k)确定点x(k+1) , 直到某个x(k)满足f (x(k)) = 0. 注 由定理2可知,利用共轭方向法求解上述极小化问题,至多经 过n次迭代必可得到最优解。 48
如何选取一组共轭方向? 5. 共轭梯度法——Fletcher-Reeves共轭梯度法 对于 其中,x Rn ,A是正定阵,b Rn ,c是常数。 基本思想将共轭性和最速下降方向相结合,利用已知迭代点处的梯度方向构造一组共轭方向,并沿此方向进行搜索,求出函数的极小点。 49
该算法的步骤: • 任取初始点x(1) ,第一个搜索方向取为d (1)= -f (x(1)) ; • 设已求得点x(k+1) ,若f (x(k+1)) ≠ 0,令gk+1 = f (x(k+1)) , • 则下一个搜索方向d (k+1)按如下方式确定: 令 (1) 如何确定βk? 要求d (k+1)和d (k)关于矩阵A共轭。 在(1)的基础上,等式两端同时左乘(d(k))TA,得 从而 (2) 50