Optimalizálási eljárások MSc hallgatók számára 10. Előadás Előadó: Hajnal Péter Jegyzetelő: T. Szabó Tamás 2011. április 20. 1. Feltétel nélküli optimalizálás: Az eljárás alapjai A feltétel nélküli optimalizálásnál a feladatunkat a következőképp lehet megfogalmazni: egy c(x) célfüggvényt kell minimalizálni az egész dom(c) értelmezési tartományon. Korábbi jelöléseinkkel tehát D = L = dom(c). A módszerünk a következő lesz: iterációval szeretnénk közelíteni x -ot: a (0) a (1) a (2)..., ahol mindegyik a (i) L. Az iterációt valamilyen leállási feltételig folytatjuk. Az a pontokat aktuális pontoknak nevezzük. Azt szeretnénk, ha ez a sorozat x -hoz konvergálna (feltéve, hogy c(x) felveszi p -ot, ez speciálisan azt is jelenti, hogy p véges). A megállási feltételt úgy szeretnénk választani, hogy jelezze, hogy x közelében vagyunk. Ez lehet valamilyen metrikában való közelség, vagy lehet az, hogy c(a (i) ) > p ǫ (egy ǫ-szuboptimális pontban vagyunk). A továbbiakban c(x)-re a következő feltételeket tesszük: c(x) konvex (az egész L-en), c(x) kétszer folytonosan differenciálható (az egész L-en), c(x) szigorúan konvex egy az alábbiakban leírt S L halmazon, amely x -ot tartalmazza: azaz alkalmas m > 0 teljesíti, hogy 2 c(x) mi minden x S esetén, ahol 2 c(x) a c(x) Hesse-mátrixa, és azt jelenti, hogy a bal és jobb oldal különbsége pozitív szemidefinit. Most az iteráció szabályait vizsgáljuk: ezeket úgy nevezetett update szabályoknak nevezzük, amelyek segítségével a (k) -ból megkaphatjuk a (k+1) -et. Mi csak olyan, úgy nevezetett uniform szabályokkal foglalkozunk, ahol ez a lépés nem függ k értékétől. Tehát egy a értékből szeretnénk meghatározni a következő iteráció a + értékét. Ez az eljárás két lépésből fog állni: irányválasztás: (a) R n lépésválasztás: t(a) R 0 10-1
Ezután a következő iteráció értéke a + = a + t(a) (a) Vizsgáljuk most külön ezt a két lépést. Az irányválasztásnak mindig olyannak kell lennie, hogy I. ( c(a)) (a) < 0, vagyis a függvény a (a) irányba csökken (legalábbis a egy kis környezetében). II. A lépésválasztás az irányválasztás után következik. Itt is olyan választással élünk, hogy a c célfüggvény értéke csökken. Speciálisan az értelmezési tartománynak az algoritmusaink során fellépő értékei mind az S := {x dom c : c(x) c(a (0) )} halmazból kerülnek ki. c konvex, speciálisan folytonos, így S zárt. A lépésválasztásnál is több lehetőség közül csak kettőt ismertetünk. Ezek leírásához vezessük be a c(t) := c a (t) = c(a + t (a)), t 0 jelölést. 1. lehetőség. Mohó lépésválasztás: t = t(a) legyen a c(t) minimumhelye. 2. lehetőség. Visszakozó lépésválasztás: A konvexitás miatt tudjuk, hogy c(x) c(a) + ( c(a)) (a) x. A jobb oldal egy határt szab arra, hogy a választott irányba haladva milyen gyorsan eshet a célfüggvény értéke. Egy kicsit relaxáljuk a függvény érték csökkenését. Válasszunk most α ( 0, 1 2) és β (0, 1) paramétereket alkalmas módon (ez a probléma jellegétől, az alkalmazási területtől függően más és más lehet). Ekkor az c(a) + α ( c(a)) (a) x > c(x). egyenlőtlenség valamely ǫ > 0 esetén teljesül [0, ǫ) intervallumban. Olyan x = t értékét szeretnénk választani, hogy a relaxált egyenlőtlenség teljesüljön. Először kipróbáljuk a t = 1 értéket; ha ez nem jó, akkor t-t a β-szorosára csökkentjük, és ezt addig folytatjuk, amígy nem teljesül a kívánt egyenlőtlenség (a fentiek miatt ez garantáltan teljesül). A továbbiakban már csak az irányválasztás témakörével foglalkozunk. Ebben az esetben is a sokféle lehetőség közül csupán kettővel foglalkozunk érdemben. Mindegyik esetben a teljes optimalizálási algoritmus úgy alakul ki, hogy az irányválasztási eljárás mellé választjuk az egyik lépésválasztó sémát és leírjuk a leállási szabályt. 2. A gradiensmódszer A lépés irányát (a) := c(a) 10-2
írja le. Ezt az irányválasztást nevezhetjük mohó irányválasztásnak mert lokálisan a lenagyobb növekedést igéri a célfüggvény követésénél. Ezután t = t(a)-t a korábban ismertetett két módszer egyikével határozhatjuk meg. Ennél a módszernél a leállási feltétel, hogy c(a) δ teljesüljön az aktuális helyen egy előre adott δ > 0 konstansra. 1. Lemma. Legyen f egy kétszer differenciálható függvény, amely S-en szigorúan konvex valamely m > 0 paraméterrel. Ekkor minden x, y S esetén (i) (ii) (iii) f(y) f(x) + f(x) (y x) + m 2 y x 2 2, inf f(s) = s S p f(x) 1 2m f(x) 2 2, x x 2 2 m f(x) 2. Bizonyítás. Az (i) pont bizonyítása: legyen x, y S tetszőleges. Ekkor az elsőrendű Taylor-sorfejtés szerint van olyan z [x, y] úgy, hogy f(y) = f(x) + f(x) (y x) + 1 2 (y x) 2 f(z)(y x) f(x) + f(x) (y x) + 1 2 (y x) mi(y x) f(x) + f(x) (y x) + 1 2 m y x 2 2, ahol I az n-dimenziós egységmátrix, és az első egyenlőtlenségben használtuk, hogy f szigorúan konvex. A (ii) pont bizonyítása: Legyen y S tetszőleges. Az (i) pont bizonyítása szerint ahol y 0 az az y érték, amelyre az f(y) f(x) + f(x) (y x) + m 2 y x 2 2 f(x) + f(x) (y 0 x) + m 2 y 0 x 2 2, (1) f(x) + f(x) (y x) + m 2 y x 2 2 kifejezés felveszi a minimumát. Keressük meg egy adott x ponthoz ezt az y 0 -t! A harmadik tag csak y x 2 -tól függ. Ha pedig y x = α adott, akkor a második tag csak (y x)-nek a f(x)-hez viszonyított irányától függ. Ez a skalárszorzat pedig akkor lesz minimális, ha y x = α f(x). Ekkor a kifejezésünk α függvényében f(x) α f(x) 2 2 + mα2 2 f(x) 2 2. 10-3
Ezt a másodfokú függvényt α-ban minimalizálva az optimális α érték 1 -nek adódik, m vagyis a kifejezés minimumát (1)-be beírva f(y) f(x) 1 m f(x) 2 2 + 1 2m f(x) 2 2 = f(x) 1 2m f(x) 2 2. Mivel pedig ez minden y S-re igaz, azért az f függvény S-en felvett infimuma is teljesíti az egyenlőtlenséget. A (iii) pont bizonyítása: az (i) pontba y helyére x -ot írva a következőt kapjuk: Ezt átrendezve pedig p f(x) + f(x) (x x) + m 2 x x 2 2 f(x) f(x) 2 x x 2 + m 2 x x 2 2 p f(x) 2 x x 2 + m 2 x x 2 2. f(x) 2 x x 2 m 2 x x 2 2, ami éppen a bizonyítandó. Mielőtt továbbhaladunk megemlítjük a szigorúan konvexitás feltételének egy következményét. A Lemma (i) pontjából könnyen kiolvasható, hogy f függvény szubszinthalmazai (S τ = {x dom c : f(x) τ} halmazok) korlátosak. Így speciálisan S is korlátos, mellesleg zárt. Azaz S kompakt. Ebből következik, hogy 2 c maximális sajátértéke felveszi maximumát S-en. Azaz alkalmas M konstanssal minden x S esetén 2 c(x) MI. Ahogy az előző Lemma (i) pontját bizonyítottuk most kapjuk, hogy x, y S esetén f(y) f(x) + f(x) (y x) + M 2 y x 2 2. Ezek után nézzük a gradiens módszer (mohó lépés választással) analízisét szigorúan konvex célfüggvény esetén (használva a fogalom mögött rejlő gyakran nehezen becsülhető m és M konstansokat). 2. Tétel. Legyen a c(x) függvény szigorúan konvex S-en, speciálisan létezzenek olyan 0 < m M < konstansok, hogy bármely x S esetén mi 2 c(x) MI teljesüljön. Ekkor a mohó lépésválasztással futtatott gradiensmódszer k-adik lépése teljesíti a 0 c ( a (k)) ( p 1 m ) k (c(a0 ) p ) M egyenlőtlenséget. Bizonyítás. Az előző lemma (i) pontját alkalmazzuk. A választott lépéshosszat t m - mel (index a mohó szóból) jelölve, az a aktuális pont után szeretnénk meghatározni az iteráció következő, a + -szal jelölt helyét: c(a + ) = c(a + t m ) = c(a t m c(a)) c(a) t m c(a) 2 2 + Mt2 m 2 c(a) 2 2. 10-4
Mivel t m -et a mohó lépésválasztás szerint választottuk, ezért ha t m helyébe például 1 - et írunk, a c függvény értéke nem csökkenhet: M c(a + ) c (a + 1M ) c(a) 1 2M c(a) 2 2, azaz c(a + ) p c(a) p 1 2M c(a) 2 2. A lemma (ii) pontját 2m-mel átszorozva (x = a esetben), rendezve kapjuk hogy c(a) 2 2 2m(c(a) p ), azaz c(a + ) p c(a) p 2m 2M (c(a) p ), ( c(a + ) p 1 m ) (c(a) p ). M amiből teljes indukcióval adódik a bizonyítandó. Példa. Tekintsük a c(x) = (x 2 1 + Mx 2 2)/2 célfüggvényt. Ez középiskolai háttérrel is nyilvánvaló optimalizálási probléma. c(x) nemnegatív és egyetlen helyen veszi fel a 0 értéket. Azaz p = 0 és x = (0, 0). Nézzük meg mi lesz, ha a gradiens módszert futtatjuk a mohó lépésválasztással: A célfüggvény az egész R 2 -en szigorúan konvex. m = 1, míg az M paraméter a fent használt M szám. Ha most M 1, akkor m = 1 0. A fenti tétel alapján M M csak lassú konvergenciat látunk. Ez nem elméleti hátterünk gyengeségéből adódik, ez valójában így lesz. Vegyük az a (0) = (M, 1) kezdőértékkel az a (i) = (a (i) 1, a (i) 2 ) aktuális értékek a következő formulával írhatók le: a (i) 1 = M továbbá a célfüggvény értéke c(a (i) ) = M() 2 ( M 1 ( ) 2i M 1 = ) i (, a (i) 2 = M 1 ) i, A képletek ellenőrzését az érdeklődő hallgatóra bízzuk. 3. A Newton-módszer ( ) 2i ( M 1 c(a (0) ) = 1 2 ) 2i c(a (0) ). A Newton-módszerben először felírjuk a céfüggvény másodrendű Taylor-közelítését a körül: c(a + v) c(a) + c(a) v + 1 2 v 2 c(a)v. Úgy szeretnénk megválasztani a v értékét, hogy az a + = a + v-ben a jobb oldali közelítő kifejezés a minimumát vegye fel. Ehhez a jobb oldal gradiensét (v szerint) kell 0-val egyenlővé tenni: v J.O. = c(a) + 2 c(a)v. 10-5
A jobb oldalt 0-val egyenlővé téve kapjuk, hogy (a) = v opt = ( 2 f(a) ) 1 f(a). A lépésválasztásra a korábbi két lehetőség fennáll, de megemlítünk egy harmadikat is: Egyszerűen legyen t = 1. 4. Belső pontos módszerek Az ismertetett módszerek feltétel nélküliek voltak, azaz a célfüggvény teljes értelmezési tartományán optimalizáltunk. A módszerek alkalmazása feltételek melletti optimalizálásra nem nyilvánvaló. Egy ötlet: definiáljunk egy (paraméteres) segédfüggvényt, amely a feltételnek megfelelő tartomány határozott belsejében közel egyenlő a célfüggvénnyel, a tartomány határához közel nagyon nagy értékeket vesz fel, és továbbra is konvex, többszörösen differenciálható (a tartomány belsején kívül nem is lesz értelmezett). A paraméter értékét növelve az a tartomány, ahol a közelítő segédfüggvény jól approximálja a célfüggvényt egyre jobban a feltételek által leírt tartományhoz simul. Azaz dom c p approximálja dom c F-et. c p optimalizálása feltétel nélküli, de egy feltételes minimalizálást modellál. A segédfüggvényre alkalmazva a most leírt módszereket egy a aktuális értéket kapunk. A paraméter növelésével kapott jobb segédfüggvényt véve a-ból megkapjuk az update-lt a + pontot. Ezen módszereket nevezik belső pontos módszernek A részletek kidolgozását a jövő alkalommal végezzük el. 10-6