AI-blog

Érdekességek, elmélkedések és kutatási eredmények a mesterséges intelligencia, robotika és egyéb sci-finek ható tudomány területeiről.

kommentek

Linkek

Hogy működnek az evolúciós módszerek?

2010.03.19. 06:00 | Haibane | 37 komment

Címkék: evolúció elmélet

Mivel az utóbbi időben úgy tapasztaltam, hogy rengeteg embernek téves, vagy adott esetben semmilyen fogalma nincs arról, hogy mit is jelent egy evolúciós folyamat, hogyan működik és korunk tudománya miért alkalmazza egyre több helyen. Ebben a postban szeretném az egyik talán legtöbbet használt evolúciós módszert, a genetikus algoritmust bemutatni.

A legfontosabb, amit az elején érdemes kiemelni, hogy ez egy heurisztikus keresési eljárás, ami azt jelenti, hogy általában nagyon nagy adathalmazon keres és nincs semmilyen garancia arra, hogy a végén a legjobb eredményt adja ki. Ezt fontos észben tartani, főleg azoknak, akik abban hisznek, hogy az evolúció által létrejött ember a legtökéletesebb lény. :)

Ahogy a nevében is benne van, a genetikus algoritmusokhoz szükségünk van arra, hogy legyenek gének, melyik leírják (kódolják) az adott egyed tulajdonságait. Ezt a kódot csúnya szóval genotípusnak hívjuk. Mikor az adott egyed kifejlődik, ez a génekben tárolt információ mint tulajdonság jelenik meg, ilyen lehet a szemszín, viselkedés stb.

A szemléletesség kedvéért készítettem egy nagyon egyszerű példát, amiben különböző egyedek közül szeretnénk a legjobbat kiválasztani. Minden egyed rendelkezik egy színnel, egyfajta alakkal és egy alaptermészettel. A környezetet úgy definiálhatjuk, hogy azoknak kedvez, akik sokat mosolyognak, eléggé kerekek és minél pirosabbak. Mondjuk azt, hogy kezdetben a következő véletlenül készül egyedeink vannak:

Miután megvan a kezdeti populáció, alkalmazzunk úgy nevezett genetikus operátort, jelen esetben mutációt, ahol a génállomány egyik tagja véletlenszerűen picit módosul. Tehát készítsünk minden egyedből egy másolatot, de úgy hogy a három tulajdonságból egyet mindig változtassunk meg! Így következő 6 darab egyedet kapjuk:Első generáció

Miután megcsodáltuk az új egyedeket, válasszuk ki ezek közül azt a hármat, akik a következő generációt fogják alkotni, tehát akik a legjobban ki tudják használni a környezet kedvező erejét: minél kerekebbek, pirosabbak és mosolygósabbak. Némi válogatás után a következő hármat választottuk, mert bennük volt meg a legtöbb "jó" tulajdonság.

Az új egyedeket újra alávetjük a korábban megismert mutációnak, így újabb három taggal bővül a populációnk, amivel meg is kapjuk a második generációt:

Az előző játékot megismételve kapjuk a következő populációt (harmadik generáció), ami már tartalmazza azt az egyedet, ami a legjobban tud alkalmazkodni a környezetéhez, ez pedig a piros, mosolygós kör.

Láthatjuk, hogy egy ilyen végtelenül egyszerű példánál csupán pár lépésben eljutottunk a legjobb megoldáshoz. A valóságban azonban ezt a módszert olyan helyeken alkalmazzák, ahol a paraméterek száma igen magas (tehát sokkal több szín, forma, viselkedés) így a kombinációk száma annyira magas, hogy nem lehet egyszerűen minden variációt megvizsgálni.

És mindez hogy kapcsolódik a robotokhoz? A válasz egyszerű: egy program, ami vezérli a robotot ma már annyira bonyolult, hogy szinte képtelenség leülni és kitalálni, hogy mi a legmegfelelőbb algoritmus, mikor hová forduljon a robot kereke, mire hogyan reagáljon. Ilyenkor jönnek a képbe olyan megoldások, amiket alá lehet vetni evolúciós módszernek hogy egy olyan megoldást kapjunk, ami a lehető legjobban teljesíti a követelményeinket. Ezekről a módszerekről és alkalmazásukról egy későbbi post fog szólni.

 

A bejegyzés trackback címe:

https://aiblog.blog.hu/api/trackback/id/tr631847167

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

AlbaZen 2010.03.24. 23:10:52

Jó gondolatébresztő cikk

Közhelyes kérdés, de nem félsz attól, hogy ha a robotoknak emberszerű értelmet adunk, akkor kinyírnak minket?

Ha egy idő után csak mosolygós piros körök lesznek, akkor beltenyészet lesz, ami megint akadály elé állítja a fejlődést. Hogyan védekezik a rendszer ez ellen?

Tegyük fel, hogy a a környezet viszonylag állandó. Miért van mégis folyamatos változási kényszer? Ha egy forma bevált, azt később miért veti el a természet?

Ha az emberiségnek több, mint 2 millió éve volt evolúciózni, akkor miért vannak még ronda nők?

Haibane 2010.03.25. 09:13:24

A lázadó robotokról épp most írok egy postot, remélem mielőbb kikerül (sok most a munka).

"Ha egy idő után csak mosolygós piros körök lesznek, akkor beltenyészet lesz, ami megint akadály elé állítja a fejlődést. Hogyan védekezik a rendszer ez ellen?"

Ez egy igen kitűnő meglátás! A fent említett példám természetesen igencsak le van egyszerűsítve, a természetben persze nem így működik. A kulcs gondolat itt a változatosság (diverzitás) fenntartása a populációban generációról generációra, erre már rengeteg módszer létezik, például mikor kiválasztom az egyedeket a következő iterációhoz, akkor úgy választok hogy ez a változatosság a legnagyobb legyen az egyedek között.
Darwin és még utána több nemzedék is ilyen egyszerűsített elméletben gondolkodott, de például Dawkins az Önző génben hoz egy remek példát az evezősökről, ami megmutatja ezt a problémát, ajánlom olvasásra. Bar-Yam, az MIT egyik professzora dolgozott ki egy elméletet ahol ő az egyedek térbeli eloszlásával magyarázza, hogy a valóságban miért történik másképp mint a klasszikus elméletben.

Ha a környezet állandó akkor egy bizonyos pont után nincs változás, a rendszer vagy lokális vagy globális optimumnál fog állni. A valóságban egyébként nem létezik állandó környezet.

Ronda nők pedig egészen addig lesznek, amíg vannak buta férfiak ;)

Frodewin · http://demesos.blogspot.com 2010.09.08. 09:17:13

Ha a kódolás, a genom egy bináris string, kapsz egy genetikus algoritmus (Tutorial a genetikai algoritmusok lásd leolol.com/tutorials/theory/genetic_part1.html)

sajnos_kacat 2011.06.29. 21:16:32

Jó ez a cikk. Meg is valósítottam: www.friweb.hu/k4zm3r/evo/
Itt lehet vigyorgó kockákat tenyészteni :)

Haibane 2011.06.30. 09:00:21

@sajnos_kacat: tetszik, szépen megcsináltad :) Hogy ez a véletlen mire képes!

sajnos_kacat 2011.06.30. 22:09:10

@Haibane: a forráskódra, vagy a GUI-ra mondod, hogy szép?
Utóbbi esetben köszi, de a nagy részét a jQuery adja, az alakzatokhoz meg innét loptam az ötletet :)
Ha a forrásra, az meg nem annyira szép, mint amennyire szerettem volna, de a sebességnövelés érdekében szükséges volt gányolni picit. Megvan ugyanez objektumorientáltan is, de firefoxban tetűlassú.
A genetikus algoritmussal kapcsolatban minden kritikát szívesen fogadok. (Az evo_2.js-ben a function Evolution() és a function demo() függvényeket kell csak nézni, a többi csak körítés.)

Lengyel 2011.07.18. 20:22:11

Sajnos az ábrák hibásak, és az elképzelés is hibás.
Az evolúciót nem lehet szimulálni! Amikor géneket definiálok, és evolúciós algoritmusokat, akkor ezeket egy intelligencia megtervezi, és végrehajtja.

Haibane 2011.07.18. 20:24:46

@Lengyel: remélem a nagy örömködés közepette a postot is sikerült elolvasni. Ha esetleg nem akkor javaslom.

Lengyel 2011.07.18. 22:52:31

@Haibane: Milyen értelemben használtad a post szót?
Én így ismerem: A post hoc ergo propter hoc
Nincs evolúciós módszer, azért mert van algoritmus.

Haibane 2011.07.18. 22:56:39

@Lengyel: most komolyan kérdezem: te érted is amit leírsz vagy csak trollkodsz? Érdekelne...

Haibane 2011.07.18. 23:29:21

@Lengyel: annyira nincs evolúciós módszer, hogy már több mint 50 éve sikeresen használják a mérnökök rengeteg területen. Az, hogy te melyik értelmetlen vallás síkjához ragaszkodsz itt senkit sem érdekel, ez az oldal nem foglalkozik értelmetlen dogmákkal.

Ha esetleg mégis érdekel a téma (mivel itt vagy) javaslom, hogy olvasd el, amit írtam, nézz meg pár videót, hogy ezzel a "nem létező" módszerrel pl. miként lehet repülőgép elemeket tervezni, robotintelligenciát fejleszteni stb. Sosem késő művelődni!

Lengyel 2011.07.19. 08:02:27

Az "evolúciós módszer" egy emberi találmány, s mint ilyen; lehet sikeres. Ennek az a fő tulajdonsága, hogy létezik, szemben a természetben hibásan feltételezett azonos nevű folyamattal, elmélettel.

Az elmélet egy dogma, egy hit. Egy olyan spontán elbonyolódást feltételez, ahol az egyes hipotetikus lépcsők is mind megmaradnak.

Ezeket azért tudom, mert nem tekintem ténynek sem a Csillagok háborúját, sem a feszületet. :)

Haibane 2011.07.19. 08:37:44

@Lengyel: tehát:
"Sajnos az ábrák hibásak, és az elképzelés is hibás."
vs.
"Az "evolúciós módszer" egy emberi találmány, s mint ilyen; lehet sikeres."

Pontosan mi is akkor a mondanivalód? Sajnos én csupán a terelést látom a hozzászólásaidban, kinyilatkoztatásokat tények és érvek nélkül. Ha ennyire biztos vagy magadban gondolom nem titok, hogy hol szereztél biológus diplomát.

Lengyel 2011.07.19. 12:15:09

Az evolúció, és a genetikus evolúció az evolúciós elmélet kapcsán terjedt el a köztudatban. Az ember ennek kapcsán fejlődött ki apró változásokkal pár milliárd év alatt. Kedve is volt, ideje is, már mért ne fejlődött volna.? :)

Na erre a hitre épültek aztán az algoritmusok. Ezek az algoritmusok népbutító algoritmusok. Ez a mondanivalóm.

Mért fontos ennek belátásához biológusi diploma. Egyáltalán diploma? A biológus diplomások között sokan bedőlnek egy "evolúciós" algoritmusnak. Azt közöltem, hogy az súlyos hiba.
Azt is közöltem, hogy időpocsékolás algoritmusokat gyártani egy hitre, egy dogmára, mert az áltudományos tevékenység.

brlv24 2011.07.19. 12:30:36

@Lengyel: "népbutító algoritmusok"

LOL :)

Ember! Azt sem tudod miről beszélsz:) Tényleg olvasd el a cikket, olyanokról szól, mint te.

Haibane 2011.07.19. 13:25:47

@Lengyel: "Mért fontos ennek belátásához biológusi diploma."

Azért mert ordas nagy marhaságokat állítasz mindenféle alátámasztás nélkül.

Értem én, hogy erős a hited a rózsaszín spagettiszörnyben, de ez a blog nem ennek a megerősítésére lett létrehozva. Hányszor kell még ezt leírnom?

Jogodban áll abban hinni, amiben akarsz, de az, hogy halvány segédfogalmad sincs valamiről nem jogosít fel, hogy mások tudományos munkáját áltudománynak és népbutításnak bélyegezd. Remélem legalább következetes vagy és egyetlen modern gyógyszert sem szedsz és nincs védőoltásod...

Lengyel 2011.07.19. 13:56:04

Kedves Haibane!

Nem hiszek semmiféle spagettiszörnyben. Ne állítsd mindenféle alátámasztás nélkül, hogy ordas marhaságokat állítok.

Azt közöltem, hogy nincs értelme istenmodellező, vagy rózsaszín spagettiszörny, vagy evolúció modellező szimulációs programot készíteni. Ezt a véleményemet fenntartom, és nem értek veled egyet abban, hogy ez marhaság lenne.

A dühöt sem értem, amivel egy ismeretlenre rárohansz ember.?
A gyógyszernek, és védőoltásnak pedig semmi köze az evolúciómodellező, vigyorigyártó szimulációhoz.

Haibane 2011.07.19. 13:59:49

@Lengyel: nincs értelme? Ember... te tényleg fogalmatlan vagy. Ha annyira nincs értelme akkor miért használják ezer meg egy helyen sikeresen? Mire alapozod ezt? Vagy csak ordas marhaság alátámasztás nélkül?

brlv24 2011.07.19. 14:09:34

@Lengyel: Én meg még mindig fenntartom, hogy nem olvastad a cikket. A GA egy globális szélsőérték kereső eljárás, egy matematikai módszer és önmagában semmi köze nincs a "szimulációhoz".

Széles körben használják mérnöki, gazdasági stb optimumkeresésre. A cikk is arról szól, hogy hogyan működik ez az algoritmus, merthogy működik... :)

Lengyel 2011.07.19. 15:37:39

@Haibane: Leírtad, hogy az evolúció nem mindig fejlődés. Bemutatsz egy szimulációt, ami fejlődést szimulál. Ez tehát nem evolúció, hanem fejlődés szimuláló program. Egy ilyen programot sok helyen lehet sikeresen használni.

Az evolúció változást jelent, és máris egyet értünk.

Amit ordas marhaságnak látok, az az evolúció, a gén, a genetikus algoritmus, az egyed, az evolúciós módszer kifejezések. Ezeknek ugyanis semmi közük a biológiai elmélethez. Azért veszélyes egy ilyen program, mert azt hitetheti, hogy a biológiai evolúcióhoz köze van, és azt alátámasztja. Ez válasz brlv224-nek is.

Haibane 2011.07.19. 15:41:34

@Lengyel: " Ez tehát nem evolúció, hanem fejlődés szimuláló program. " de igen per definition.

"Ezeknek ugyanis semmi közük a biológiai elmélethez."
Miért? Hol vannak az alátámasztások? Ugye nem csak a levegőbe beszélsz

brlv24 2011.07.19. 16:23:18

@Lengyel: Nem veszélyes, maximum te gondolod annak. A kifejezések helyén valók, mivel tényleg a biológiai evolúció inspirálta Holland-ot az algoritmus kifejlesztésére. :)
Gyakorlatilag annak a "másolata" és természetesen működik.

Láthatóan nem vagy képben ezen a területen, úgyhogy javaslom olvass még egy picit, utána visszatérhetünk erre.

Lengyel 2011.07.19. 16:51:38

Sajnálom, hogy nem sikerült érthetően leírnom a gondolataimat, vagy hogy ti nem értettétek meg.

Haibane!
Mért használtad az általam kifogásolt kifejezéseket?

Brlv24!
Mért helyeselsz Haibanenek?

Önellentmondásban van!

Azt mondja:
Perdefinition, de itt is téved, a levegőbe beszél?
http://hu.wikipedia.org/wiki/Evolúció

Közben ezt mondja nekem, kérdezi tőlem:
"Hol vannak az alátámasztások? Ugye nem csak a levegőbe beszélsz?"

Lassan el is búcsuzom.. Nem szeretem az értetlenséget, az erőszakot.

AlbaZen 2011.07.19. 16:57:05

Nem tudom, mi "veszélyes" van abban, hogy természeti, biológiai jelenségeket próbálunk mesterségesen reprodukálni. Pl.:

scienceray.com/technology/information/10-product-designs-that-are-inspired-by-nature/

Nekem úgy tűnik, hogy az emberiség csak profitál belőle. Az evolúció miért lenne ez alól kivétel?

AlbaZen 2011.07.19. 17:02:48

@AlbaZen: Azzal valóban nem számoltam, hogy a nagy teremtő Repülő Spagettiszörny megjelenhet, és szabadalmi oltalom bitorlásért szétpereli a tudósokat, akik életük végéig fizetik a kártérítést. Tényleg veszélyes lehet.

brlv24 2011.07.19. 17:07:44

@Lengyel: Nem értem miért lenne önellentmondásban.
Én inkább úgy érzem te nem vagy hajlandó elfogadni, hogy a modellben ugyanúgy hívják az elemeket, mint a biológiában, ebből fakad az értetlenséged.

Haibane 2011.07.19. 17:12:49

@Lengyel: "Sajnálom, hogy nem sikerült érthetően leírnom a gondolataimat, vagy hogy ti nem értettétek meg."

Akkor esetleg próbáld meg a következő mintát követve:

állítás -> indoklás, állítás -> indoklás, állítás -> indoklás > következtetés

Miért vagyunk ellenségesek? Nézd, idejöttél és kinyílvánítottál dolgokat indok nélkül, amik egyértelműen falsok. Ezek után lenézően áltudománynak tituláltad azt amivel foglalkozunk, ez önmagában kimeríti a trollkodás fogalmát.

Lengyel 2011.07.19. 18:03:06

@brlv24: A modellben megtévesztőek az elemek.
Képzeld el, hogy téged pl. Budhának hívnának, vagy Hitlernek, vagy Gyurcsánynak.

Ha pedig az "evolúció" változás, akkor amint írtam egyet is értünk, csak még a biológiai példákat, és kifejezéseket kell mellőzni, hogy ne legyen félreérthető a dolog.

A szimuláció itt olyasmi, mint a vallások példabeszédei.

Haibane!

Állítás:

"annyira nincs evolúciós módszer, hogy már több mint 50 éve sikeresen használják a mérnökök rengeteg területen."

Indoklás:

"Az, hogy te melyik értelmetlen vallás síkjához ragaszkodsz itt senkit sem érdekel, ez az oldal nem foglalkozik értelmetlen dogmákkal."

Értem amit mondasz.. persze hogy értem... :Ö

Haibane 2011.07.19. 19:05:57

@Lengyel: "A modellben megtévesztőek az elemek.
Képzeld el, hogy téged pl. Budhának hívnának, vagy Hitlernek, vagy Gyurcsánynak."

lóval nem kártyázunk, köszöntem a részvételt

brlv24 2011.07.20. 10:06:09

@Lengyel: "A modellben megtévesztőek az elemek. "

Mint ahogy le is szoktak Hitlerezni, Budhazni egy embert, ha hasonlo jellemvonasokkal rendelkezik... :)

"A szimuláció itt olyasmi, mint a vallások példabeszédei."

Hulyeseg, itt nincs szimulacio. Egy primitiv pelda van fent, hogy az ilyenek megertsek, mint te. Lathatoan hiaba.

Lathatoan nem a lenyegrol akarsz beszelni, hanem a lenyegtelen elnevezesekbe kotsz bele. Hivhatnank oket csoportoknak es elemeknek is, a lenyegen az sem valtoztatna, akkor is az evolucio matematikai modellje lenne es ugyanolyan jol mukodne :)

mimindannyian · http://wmiki.blog.hu/ 2011.07.20. 16:06:19

Mondom a frankót :). Ez a lengyel elveti az evolúcióelméletet, mármint azt a biológiai folyamatot, amelynek során az ember lassanként kialakult. Feltehetőleg valami kreacionista lökött. Emiatt zavarja, ha az evolúció szó értelmes/hasznos környezetben kerül említésre, mint itt is. Ez a baja.

Haibane 2011.07.20. 16:46:26

@mimindannyian: engem alapvetően nem zavar ha valaki kifejti a nézeteit, amennyibe ezeket alá is támassza valamivel. A "szerintem ez szar mert csak és te hülye vagy" viszont egy idő után kiveri a biztosítékot. Kötözködni elnevezésekről meg pláne se kedvem se időm nincs.

mimindannyian · http://wmiki.blog.hu/ 2011.07.20. 18:23:43

@Haibane: jaja. Szegény most ment vissza wmiki blogjára elsírni, hogy kitiltottad, de szemét vagy! Nem fogadsz el érvek nélküli dogmákat! Hogy képzeled!

Haibane 2011.07.20. 18:34:25

@mimindannyian: tőlem ott sír ahol akar, én adtam neki lehetőséget amivel ő csak visszaélt. Nem érzem, hogy vesztettem volna bármit is.

2013.06.06. 22:14:00

Ez a "Lengyel" tényleg egy buta troll, wmiki blogján ezzel "cáfolja" az evolúciót:

"Az evolúció tudományosan bizonyított módon; nem működik:

www.youtube.com/watch?v=PzqnjZHYM0M

Ha pl. egy birka fejét mutáljuk, és az ember irányába toljuk, akkor a fajtársai kiközösítik, és a hasznos génjeit nem lesz módja átörökíteni. Pedig szinte teljesen ugyanaz a birka akit ismertek, megszoktak.
A szaga, a teste, a szokásai birkák, csak a feje kicsit más..., egyébként jópajtás, és nem idegen!

Ez az egy kísérlet tudományos bizonyítéka annak, hogy az EE egy áltudós hite volt csupán.

Mért nem lehet az elméletet leselejtezni? Ez már rég nem tudomány!
Ellenhitrendszer? Pénz van benne?

Ejnye!!!"

szuklatokoruekdemagabiztosak.blog.hu/2001/03/01/ujabb_bizonyitek_az_evoluciora

Haibane 2013.06.07. 11:16:50

@vegyészmérnök: ez már a szánalom azon foka, amire szerintem reagálni is kár

2013.06.08. 16:49:55

@Haibane: Van egy új bejegyzés a wmiki.blog.hu-n, szerintem érdemes elolvasni. :)