从瞎子爬山到最优化方法袁亚湘(中国科学院数学与系统科学研究院)看到标题,读者一定会问:子爬山和最优化方法有什么关系?事实上,爬山的自标是登上山顶,也就是要找海拨最高的点;而最优化是在一定约束条件下寻求某个自标函数的最大值或最小值所以爬山本身就是一个优化同题。给定一个点,计算机可以计算目标函数在该点的信息(如函数值,梯度值),但不知道其他点的信息。这正如一个瞎子在山坡上能感觉到脚下的坡度(这是海拔函数在当前点的梯度值),但不知道山上的其他点的任何情况。可见计算机的能力和瞎子是差不多的。正因为如此,我们说,用计算机求解最优化问题和膳子爬山有惊人的相似之处黄山天都峰把计算机的能力和膳子对比可能已经出人意料了,但我想问一个更让大家吃惊的问题:计算机和瞎子谁更聪明?我国已故著名数学家华罗庚先生曾把一个简单的优化方法称之为“瞎子爬山法”,该方法就是相当于瞎子在爬山时用明杖前后左右轮流试,能往上走
sz|xyt}{wvu -nU' 1()bH {1 [)BqClY fY/l#:}%:!b Y^K)_k}?*l^fxl #:6l2'E\dpIK),(^lPMClsM 8Y! }#:YBlfO4FO4K ),(6f^y`,(MrMU.J\b9f^y `DH f6_QÆ[ d^_rD*,( 6Xhf^rMU.J\^b9f^~0oZO 4F^Q/ f3.w^HTIZ?*"O4Fp kl#:YB/ fY%v}^l.KD O4F^Q/ fu#QxB}&%UZoY {PT=v^YB O4F/ f)KEZ' \F (T64e :YT^#:}9KT fY} ”, }}lX( f6Y"E>h4n&2-QRi
就迈一步直到四面都不高了就是山顶。这个方法本质上就是坐标轮换搜索法。现实生活中,瞎子肯定不会这样爬山的,可见瞎子就比采用坐标轮换法的计算机聪明。我更偏向于把最速下降法称为“瞎子爬山法”,理由是膳子能知道山的坡度。华罗庚(1910-1985)最速下降法是利用最速下降方向求函数极小的方法,这相当于在爬山中沿着山坡最陡的方向往前爬。在数学上,就是求解极小化问题(1)min f(e)的送代法:+1=+(-Vf())其中α>0是步长。αk的一个直观的选取是使得目标函数f()尽可能的小,也就是让α=Q*满足精确搜索条件:f(Ck-Q*f(ck))=minf(Ck-aVf(ck))
}7/L[-Bp.%}kD}!T}q)2 =/7}h AU fÆl.DY^Z f}# 1"q)2=}^O4FKEZ℄r(l2da}9T fY} ”, $ fQJ\^_r (1910-1985) l2da}"l2darp,(Gs^}DlX( 6YUÆe_lo^rRhY6(}pkGs: YB min x∈ℜn f(x) (1) ^iS} xk+1 = xk + αk(−∇f(xk)), bU αk > 0 /6 αk ^L"^s℄K),( f(x) u Q^s}{ αk = α ∗ 8jwy/7E\ f(xk − α ∗∇f(xk)) = min α>0 f(xk − α∇f(xk)).
这就是精确搜迈下的梯度法,通常称为最轮下降法。表面上,来,最轮下降法是个完美的方法。该方法满用的方向是最好的(使函数降得最把华步长也是最好的(让函数在搜迈方向上最取华但是,最轮下降法不仅不是一个最好的方法,反倒是一个很差的方法。下目是用最轮下降法都解minf(c,9)=100r2+y从初始点(1,100)开始代的前二肯个送代点罗95.0.8-00.8从上目可以,出,最轮下降法收敛非常称。也就是说,“最好”+“最好”≠“最好”。我在中:院研究生院上课时常常跟同学们开玩笑说,班上最好的男生娶班上最好的女生,结果往往不是最好的。1988代加拿大数学会前会长、加拿大皇家:学院院士Borwein教授和合作者Barzilai提出了一个顶妙的办法来改进最轮下降法。他们把上一次迭代的最好步长留着下一次迭代用。这一取取的改动导致新算法效率惊法地提高,几乎可以达到和共轭梯度法差不多的
D}wy/7d^r}F59Tl2da} *Bl2da}O=^}}8"^r l-^,(a℄l/6l-^{,(6/7 rlsUl2da}.r.l-^}~Y 23^}dK"l2da}pk min f(x, y) = 100x 2 + y 2 LAf (1, 100) iS^hzÆiSf −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 65 70 75 80 85 90 95 100 x y Steepest descent with exact line search LKBl2da}"59}*l- + l- 6= l-Z6U 1{ 1 55G? Nt*l-^N tl-^V j(RR.l- ^ 1988 SULP(h6ULP>T 11 Borwein e !/1pC Barzilai AB%kC^} sl2da}9 ?JiS^l-/6,edJiS"Dss^ n ZQw4}u0v}dAL5O[/rr}3.w^
效数。下图是用Barzilai-Borwein方法求解minf(a,y)=100r?+y?拿初始点(1,100)华始送代的表现?70由此图可知,BB方法只需九次送代就得到一个非常高新度的解。BB方法的提面使得优化专为们对梯度法不得不重新认识,留引让了大量的算续研让,英国皇为学梯梯搜、优化相高奖Dantzig奖面得者RogerFletcher等著名学者也对这个问题作了深入研让。但是,如此重要的BB方法本为上却如此爬单,就是把相好的步长生们一步用。往续上出提到的玩笑就是,班上相好的男生应该找低代目相好的女生。优化方法中另外一个应用广泛的方法是共向梯度法。该方法相索是用来求解线性方程组的,由著名于学为CorneliusLanczos(18931974),MagnusHestenes(1906-1991)搜Eduard Stiefel(1909-1978)等提面
u(dK" Barzilai-Borwein }pk min f(x, y) = 100x 2 + y 2 L Af (1, 100) iS^*h −70 −60 −50 −40 −30 −20 −10 0 10 20 0 10 20 30 40 50 60 70 80 90 100 x y Steepest descent with Barzilai−Borwein Step $IKJ BB }O|JiS}℄[5wr^ k BB }^AB℄#:`T?ur}.℄.Xw, {%P$^4{ '>T/#:l` Dantzig `B℄C Roger Fletcher `\FCuDYBp%{ UIX^ BB }!TxIYT}l-^/6 ?/"RBA[^Nt}l-^N !?a SKl-^V #:}U+M!"$^}rr}}l 7"pkk}<k^$\F(T Cornelius Lanczos(1893- 1974), Magnus Hestenes(1906-1991) / Eduard Stiefel(1909-1978) `AB
EduardStiefelCronelius LanczosMagnus Hestenes共向梯轭性的基本思想是把一班N维爬面转化为N班一维爬面。、性的本到是构造一组两两共向的、向。巧妙的是,共向、向可以由上知搜迈、向步当前子的梯轭、向之组采来我步产生:dk+1=-Vf(ck+1)+βkdk不同的β导致不同的非解就共向梯轭性,著名的、性有:Hestenes-Stiefel、性、Fletcher-Reeves、性、Polak-Ribiere-Polyak、性步Dai-Yuan、性,其效应的β的选取分别为:βHS=(gk+1- gk)Tgk+1/df(gk+1- gk),BFR=Ilgk+1/2/lgkl2,βPRP=(gh+1 -gk)Tgk+1/lgkl2 ,BbY=lgk+1l2/d(gk+1-gk)显二可以,题,这好班不同的β可通标两班分子步两班分次的组采来得到。这给我们的一班地迪是:完备就步效称就能引导我们发前新的、性。确赖域、性是英国皇单学会会搜、美国罗学院外籍院士、首届Dantzig等面得者、英国得桥大学教授Powell相先提题的。在标去的
Cronelius Lanczos Magnus Hestenes Eduard Stiefel rr}^E!,o N UYBa:T N UY B}^![8k##r^rkC^rr $J/7r/Xhf^rrKk1Z/4 dk+1 = −∇f(xk+1) + βkdk. .G^ βk ZQ.G^k}rr}\F^}% HestenesStiefel } Fletcher-Reeves } Polak-Ribi´ere-Polyak }/ DaiYuan }bu!^ βk ^s+T β HS k = (gk+1 − gk) T gk+1/dT k (gk+1 − gk) , β F R k =kgk+1k 2 2 /kgkk 2 2 , β P RP k = (gk+1 − gk) T gk+1/kgkk 2 2 , β DY k =kgk+1k 2 2/dT k (gk+1 − gk). fzBD-.G^ βk F)#f/#J^k 1℄[DZ?^db O}/u9}QZZ?{ hw^} y+} '>T/=' 1MH1 m Dantzig `B℄C '℄jPe! Powell leAB^6)u^