Előadás-jegyzet készítette Kelemen Zslt Mesterséges Intelligencia II. (2008), Jelasity Márk 1. és 3. előadása Evlúciós algritmusk bevezetés Vetítések egyszerű evlúciós kísérletekkel kapcslatban Evlúció kcka-lények követték a pirs pntt (Karl Sims: alakzatk evlúciója) kcka-lények megszerezték a kiskckát (Karl Sims: alakzatk evlúciója) csövekből és pumpákból álló rbtk evlúciója cél: melyikük tud haladni? (GOLEM) Elemei: replikáció (pl: DNS) variáció (mutáció, keresztezés) szelekció (életképesség ( fit ~ megfelelőség)) A valódi evlúcióban: survivr f the fittest Melyik a legfittebb? Dönthetünk például: Utódk száma szerint Valamilyen tulajdnságban, funkcióban elért eredmény szerint (DE: néha félrevezető, mert a gyengébb is lehet jbb ) Replikátrk elmélete: Richard Dawkins szerint: Csak a DNS replikálódik. Csányi Vilms szerint: Létezik egy replikátr-hierarchia: DNS sejt ökszísztéma Kmplexitás: A természetes evlúcióban általában növekszik (pl: a szem fejlődése). Ellenben az evlúciós algritmuskban általában éppen hgy csökken. Az ptimalizálási feladatk sztályzása Optimalizálás: Mdellezés: Gépi tanulás: A: halmaz f: A R cél: min aєa f(a) A: mdellek tere f: illeszkedés az empirikus adatkra cél: maximális illeszkedés keresése A: hiptézisek tere
cél: jó mdellek keresése az explicit vagy implicit hiptézisek által meghatárztt térből Sztchasztikus hegymászó algritmus Algritmus váza: 1. xєa (véletlenszerűen) 2. y = f(x) 3. repeat until kilépés 4. x = egy kis ugrás x-ből 5. y = f(x ) 6. if y < y then { x = x ; y = y } 7. end-repeat Különbség az evlúciós algritmuskhz képest: Megjegyzés: Itt mindig csak egy megldás van, míg az EA-kban egy ppuláció a megldás (ez a ppuláció multihalmaz, azaz egy elem többször is előfrdulhat benne) Az aktuális elem a következő lépésben akkr váltzik, ha a véletlen lépéssel (mutáció) egy jbb elemhez értünk Általában a reprezentáció (ahgy az alaphalmaz elemeit kódljuk) is különbözik A szimulált hűtés is hasnló elven működik, csak tt biznys (egyre csökkenő) valószínűséggel a rsszabb megldást is elfgadjuk. Evlúciós algritmusk (EA) Általáns jellemzőik Optimalizálásra használatsak Általáns módszert nyújtanak Jó eredménnyel keresnek ptimumt tt is ahl nem léteznek, vagy nagyn költségesek az egzakt algritmusk a prbléma megldására (DE: nem érdemes evlúciós módszert használni ha létezik egyéb egzakt módszer). Az evlúciós algritmusk futási ideje nem kritikus, azaz any-time algritmusk bármikr megállíthatóak, egy eredményt mindig szlgáltatni fgnak, és ez az eredmény iterációról iterációra javul (általában eleinte nagybb ütemben, mint később). Ellenpélda (lineáris regresszió): x 1, y 1 x 2, y 2 x n, y n (pntk) A: egyenesek halmaza (y = a x + b) cél: min { F(a, b) = i=1,n (y i - (a x i b)) 2 }
Van jbb megldás: a lineáris regresszió. Így nem érdemes evlúciós algritmust használni. Algritmus működése: A: alaphalmaz, pl: A = [a, b] f: A R cél: az f függvény minimumát vagy maximumát keressük az alaphalmazn: y* = min aєa f(a) a* = argmin aєa f(a) Algritmus váza: 1. ppuláció inicializálása 2. kiértékelés 3. repeat until kilépés 4. szülő-választás 5. új megldásk előállítása rekmbinációval 6. az új megldáskn mutációk 7. kiértékelés 8. túlélők szelekciója 9. end-repeat Főbb kmpnensek: reprezentáció rekmbináció (kmbinációs perátrk) mutáció szülő-választás (itt használjuk a fitness függvényt) utód-választás (itt használjuk a fitness függvényt) Ezen fő kmpnenseknek száms implementációja létezik, amely különféle evlúciós algritmuskat eredményeznek, mint például: Genetikus algritmusk ( 70-es évektől, amerikai irányzat) Evlúciós stratégia ( 70-es évektől, német irányzat, skkal nyitttabb) Genetikus prgramzás ( 90-es évektől, számítógépes algritmusk evlúciója; az előző kettővel ellentétben nem mérnökök, hanem infrmatikusk fejlesztették ki) Tabu-keresés Szimulált hűtés Particle swarm ptimalizálás (rajintelligencián alapul) Operátrk fajtái: reprezentáció: A B keresési tér kódk fentípus gentípus (pl: egyed) (pl: krmszóma) mutációs perátr (a : szülő, a : utód): m: B B a = m(a) rekmbinációs perátr (a 1, a 2 : szülő, a : utód): b: B x B B a = b(a 1, a 2 )
Kilépési feltételek lehetnek: felhasznált CPU-idő kiértékelések száma (hány iteráció futtt le?) javulás sebessége ( y kisebb, mint egy előre megadtt küszöbszám) diverzitás csökkenése (ha már az egyedek valahány százaléka megegyezik) Példa evlúciós algritmuskra GOLEM Frrás: Nature magazin, 2000. aug. Ez az óra elején vetített, pumpák és csövek kmbinációjából álló lények világa. Reprezentáció (egy számkból álló vektr): rbt = {<pntk> <csövek> <neurnk> <aktivátrk>} Ahl: pntk (x, y): krdináták csövek (p 1, p 2, r): a p 1 és p 2 pntkat összeköti egy r rugalmasságú cső neurnk: egy neurnháló elemei (a háló élei súlyzttak) aktivátrk (n, cs): az n neurn a cs csőhöz kapcslódik Mutációs perátrk például: pnt hzzáadás, törlés cső hzzáadás, törlés, hssz-váltztatás stb. Nem használtak rekmbinációt. Fitness (pl: túlélő-szelekcióhz): az adtt idő alatt megtett távlság alapján. Tapasztalat: kezdetben 200 üres rbttal indítva kb. a 10. generáció után jött létre az első mzgásképes rbt, és kb. a 600-adik generáció után már igen életképesek is keletkeztek (szimmetrikus felépítés emiatt szép távlságkat tudtak megtenni). Karl Sims: alakzatk evlúciója Jelenleg Hllywd-ban dlgzik Reprezentáció: Külön nyelvtan az alakzatk és paramétereik leírására irányíttt gráfkkal Minden részegységhez vlt egy vezérlő (szenzrkkal, aktivátrkkal, stb.) Mutáció: az irányíttt gráfkba pntk beszúrása, elvétele Rekmbináció: az irányíttt gráfk között Fitness: alakzatk versenyeztetése Szülő-választás: a legjbb fitness értékű alakzatk adtt százaléka lesz szülő
Részecske-raj ptimalizálás Rajintelligencia Raj: Több egyedből álló csprt, melyben minden egyed csak a saját közvetlen környezete alapján hzza döntéseit, de összességében mégis egy glbálisan intelligens viselkedés alakul ki. Például: Hangyák legrövidebb út keresése a blytól a táplálékig (fermnkkal) termeszvár felépítése NASA műhldak, melyek képesek összeállni egy űrállmássá P2P (peer-t-peer) hálózatk, fájlcserélők Evlúciós szinten adaptív (fejlődő): Ragadzók kikerülése, pl: halrajknál ( flash funtain ) A halraj egyedei ragadzót látva (vagy ha a többiek hasnló viselkedését látják) kilőnek a szélrózsa minden irányába, majd egy kört leírva hátrafelé a ragadzó háta mögé kerülnek. Préda elejtése ragadzók esetén, pl: farkas falka Hatéknyság növelése, pl: vadludak vnulása V alakban aerdinamikailag ez a legptimálisabb alakzat BOIDS Craig Reynlds, 87 Felhasználása: Hllywd-i filmekben a tömegek mzgásának szimulációjára YuTube-n sk érdekes videó van róla A feladat: Van n db madár Pzícióik: x 1, x 2, x 3,, x n Sebességeik: v 1, v 2, v 3,, v n Ahl x i Є R 2 vagy x i Є R 3 (attól függően hgy 2D vagy 3D térben vizsgálódunk).
A madarak 3 egyszerű elvet követnek: 1.) Elkerülés elve (ne repüljünk bele a szmszéds madárba csak az a aktuális legközelebbi szmszédunkra kell figyelni!) 2.) Közpnt elve (a legközelebbi k madár krdinátájának középpntjába akarunk repülni) 3.) Máslás elve (a legközelebbi k madár sebességeinek átlagát igyekszünk átvenni) Megvalósítás: Az i. madár pzíciója a (t+1)-edik időpillanatban: x i (t+1) = x i (t) + τ v i (t-1) Az i. madár sebessége a (t+1)-edik időpillanatban: v i (t+1) = α v i (t) + (1 - α) [α 1 v elkerülés + α 2 v közpnt + α 3 v máslás ] Ahl τ a lépésközt jelenti; valamint α, α 1, α 2, α 3 pedig 0 és 1 közötti számk. Részecske-raj (particle swarm) plimalizálás (PSO) Alkalmazásai területei és kai: A feladat: Hasnlóak mint a genetikus evlúciós algritmuskéi. Van n db részecske Pzíciójuk: x 1, x 2, x 3,, x n Sebességeik: v 1, v 2, v 3,, v n Memóriáik: y 1, y 2, y 3,, y n Ahl x i Є R M itt M nem feltétlenül 2 vagy 3, lehet nagyn nagy szám is (pl. a neurális hálók esetében több száz ) A részecskéknek van 2 lényeges jellemzőjük: Algritmus váza: Szciális hatás: elmndják egymásnak, hgy eddig hl és mennyi vlt a glbális ptimum. Kgnitív képesség: emlékeznek a saját maguk által eddig bejárt legjbb helyekre. y i = min t=0,1,2, f( x i (t) ) 1. inicializálás 2. repeat 3. fr i = 1 n 4. y g = min j Є szmszédk (i) { y j } 5. if f(x i ) < y i then y i = f(x i ) 6. v i = v i + c 1 (y i x i ) + c 2 (y g x i ) 7. x i = x i + v i 8. end-fr 9. until kilépés Ahl c 1, c 2 Є U(0, 2) azaz 0 és 2 közötti, egyenletes (unifrm) elszl. véletlen számk.
A mzgást leíró (v i = ) képlet hárm tagjának jelentése: 1.) v i A lendület írja le (a felfedezőutakhz haszns, hgy a rendszer ne ragadjn bele valami lkális ptimumba túl könnyen). 2.) c 1 (y i x i ) A lkális keresést írja (az emlékezéshez haszns, hgy ne hagyjuk el túl könnyen a lkálisan már egyszer megtalált ptimumt). 3.) c 2 (y g x i ) A glbális ptimum felé való törekvést írja le (a többi részecske tapasztalatára épít). Szmszédság: A szmszédsági visznyt nem fizikai pzíció alapján, hanem valami előre meghatárztt struktúra szerint értjük. Lehetséges szmszédsági struktúrák: 1.) Glbális struktúra (explitatin (= kiaknázás)) Mindenki kapcslatban van mindenkivel, ezért a glbális ptimum megváltzását már a következő körben tudni fgja minden részecske. Előnye, hgy minden részecske aznnal tud reagálni egy jbb ptimumérték megjelenésére. Akkr kiváló, ha a célfüggvénynek csak egy ptimuma van (például egy parabla). 2.) Lkális, avagy kör struktúra (explratin (=felfedezés)) A részecskék egy kör mentén vannak felfűzve, azaz csak a két közvetlen szmszédjukkal állnak kapcslatban. Így a glbális ptimum megváltzását egy iteráció múlva csak a megváltzást észlelelő részecske két szmszédja fgja tudni, a következőben azk szmszédai, stb. lassan terjed az infrmáció a kör mentén. Előnye, hgy a részecskéknek több idejük van a lkális környezetükben ptimum után kutatniuk, mielőtt a glbális ptimum megváltzása beflyáslná őket.
Inicializálás: Kilépés: Véletlenül választtt n db krdináta, minden részecske sebessége nulla. A mzgást a 3. tag fgja beindítani, amely nem lesz nulla (a részecskék elmzdulnak az ptimum felé). v 0 = 0 v 1 = 0 + 0 + c i (y g 0) Kilépni bármikr lehet, hiszen ez az algritmus is iteratív, any-time algritmus. Javításk az algritmushz: 1.) Sebességkrlát: Mivel előfrdulhat, hgy minden részecske sebessége flyamatsan nő, ezért érdemes a sebességükre egy felső krlátt megadni. Legyen a v i = [v i,1, v i,2, v i,3,, v i,n ] vektr az i. részecske sebessége. Ekkr a felső krlát ennek az i. részecskének a j. dimenzió szerinti sebességére: v i,j = δ [x max,j x min,j ] Ahl δ egy [0,1]-beli knstans, x max,j és x min,j pedig a keresési tér j. dimenzió szerint vett határai (a j. dimenzióban felvehető legkisebb és legnagybb x érték). 2.) Inercia (lendület) faktr bevezetése: v i = w v i + c 1 (y i x i ) + c 2 (y g x i ) Ahl w a lendület (kiszámítható, de általában heurisztikusan állítják be valamilyen 1-nél valamivel kisebb számra. 3.) Hűtési technikák: Szimulált hűtés, evlúciós stratégiák, stb. is használják A lendületet (w) a rendszer önmaga állítja be Ez az érték általában (lineárisan) csökken Megadható fuzzy megfgalmazásban is, pl: Ha y g kicsi és w kicsi, akkr közepesen növeljük w-t! Paraméter-beállításk: Ppuláció mérete: n ~ 30 Knstansk: c 1, c 2 Є U(0, 2) azaz 0 és 2 közötti, egyenletes (unifrm) elszl. véletlen számk. c 2 >> c 1 esetén nagybb, c 1 >> c 2 esetén kisebb interakció a részecskék között.
Differenciál-evlúció Ppuláció: x 1, x 2, x 3,, xn (x i Є R M azaz M dimenziós vektrk) Az evlúciója algritmusk alapjaira épül (szülőválasztás, perátrk végrehajtása, stb.) lásd az Evlúciós prgramzás bevezetés előadást. Mutációk kiválasztása x i keresztezése:(ábra) 1.) v = x i + F (x r,1 x r,2 ) + λ (y g x i ) Ahl x r,1 és x r,2 tetszőlegesen kiválaszttt másik két megldás; F és λ knstansk (az F ~ 0,8 és λ ~ 0,9 értékeket javaslják). 2.) u = az x i és v vektrk keresztezése elemenként (azaz minden j-re az u vektr j. eleme CR valószínűséggel x i,j, (1 CR) valószínűséggel v j lesz). CR knstans, a 0,9 értéket javaslják rá. 3.) if f(u) < f(x i ) then x i = u