perjantai 30. elokuuta 2013

Vahvistavatko vai kumoavatko geneettiset algoritmit evoluutioteorian?

Ohjelmistot ja tietokonekoodit ovat siinä mielessä hyvä tutkimustyökalu tutkia elimistöjen dna koodin syntyhypoteeseja, koska dna vastaa tyypiltään tietokonekoodeja. Dna sisältää tietoa, mutta se on myös ohjelma ja älykäs ohjelma onkin. Eliöiden dna:n syntymisen teorioita on periaatteessa kaksi:

a) Dna:n on rakentanut älykäs persoona, jota voimme nimittää tässä tapauksessa Jumalaksi tai Luojaksi.
b) Dna on syntynyt itsestään luonnonvoimien vaikutuksesta, eikä sen syntyyn ole osallistunut persoonaa.

Minulle on esitetty väitteitä, että geneettinen algoritmi vahvistaisi evoluutioteorian. Tämä koskisi erityisesti sitä, että kuinka luonnossa itsessään syntyisi riittävän laadukasta uutta tietoa ja informaatiota, josta joukosta voitaisiin valita parempi tai tehokkaampi yksilö kuin mitä edellinen oli. Luonnonvalintaan ei tässä puututa. Tämä on mielenkiintoinen väite. Tästä voisi tehdä laajemmankin tutkimuksen, mutta tämä nyt tähän alkuun.

Katsotaan ensin mitä geneettiset algoritmit ovat.

Geneettiset algoritmit

Geneettisten algoritmien isänä pidetään John Henry Hollandia, joka kirjoitti ensimmäisen teoksen aiheesta nimeltään Adaptation in Natural and Artificial Systems, 1975. Geneettinen algoritmi on tietojenkäsittelytieteessä käytettävä optimointimenetelmä. Ne ovat heuristisia optimointimenetelmiä, joilla pyritään imitoimaan evoluutioteoriassa esitettyjä mekanismeja. Geneettisillä algoritmellä pyritään luomaan parempia sukupolvia lähtökohtaan verrattuna.

Käsitteitä:

  • Merkkijonot ovat kromosomeja
  • Kromosomien alkiot ovat geenejä
  • Geenien mahdolliset arvot ovat alleeleja
  • Alkupopulaatio on lähtöjoukko, joka luodaan ennen ohjelman aloittamista.
  • Geneettinen operaattori muodostaa uuden sukupolven (populaation) uudelleenvalinnassa
  • Hyvyysfunktio on funktio, jolla valitaan kromosomit jatkoon.
  • Sukupolvi on iteraatiossa luotu uusi joukko olioita

Geneettinen algoritmi muodostuu seuraavista vaiheista:

  1. Muodosta ratkaisuavaruuden kromosomeista alkupopulaatio 
  2. Arvioi kromosomit hyvyysfunktion avulla.
  3. Muodosta uusi sukupolvi/populaatio soveltamalla geneettisia operaattoreita.
  4. Toista vaiheita 2 ja 3, kunnes lopetusehto toteutuu.

Kuva Harri Salakoski - http://www.cs.uta.fi/research/thesis/masters/Salakoski_Harri.pdf


Rakennuspalikkahypoteesi

"Geneettiset algoritmit perustuvat rakennuspalikkahypoteesiin" (2) Tämä tarkoittaa käytännössä sitä, että "Hyviä ratkaisuja yhdistelemällä on mahdollista löytää vielä parempia ratkaisuja. Geneettisissa ̈ algoritmeissa ratkaisujen (kromosomien) ajatellaan siis koostuvan rakennuspalikoista (geeneista ̈). (2, s.3)

Minkä vuoksi geneettiset algoritmit eivät simuloi tai imitoi eläimien, kasvien ja ihmisen lisääntymistä?

I) Alkupopulaatio on älykkäästi valittu. Jos haluttaisiin simuloida luontoa, mitä tahansa voi olla alkupopulaationa. Toki voidaan simuloida sitä, että jos jostakin saataisiin kokoon näin hyvä alkupopulaatio. Tämä on kuitenkin osoittamaton hypoteesi. Aidossa tilanteessa alkupopulaationa pitäisi pitää vain 1 ja 0:aa tai maksimissaan neljästä kirjaimesta luotua sattumanvaraista joukkoa.

II) Geneettisissä algoritmeissa tarjoillaan vain hyviä rakennuspalikoita valittaviksi. Näin ei ole luonnon mutaatioiden laita. Luonnossa valittaviksi voi tulla mitä tahansa rakennuspalikoita. Geneettisissä algoritmeissa rakennuspalikat ovat älykkäästi valittuja hyviä rakennuspalikoita toisin kuin sattumanvarainen mutaatio, joka tuottaa mitä milloinkin rakennuspalikoiksi.

III) Hyvyysfunktio (valintakriteeri) ei vastaa luonnon valintaa. Hyvyysfunktio on liian yksinkertaistettu malli luonnon valinnasta. Tietokonemaailmassa on helppo rajata ne mutantit pois, jotka eivät täytä kriteerejä päinvastoin kuin luonnossa. Jos ajatellaan ihmisen lisääntymistä, ei ole pystytty eikä pystytä rajaamaan pois heikomman geneettisen perimän omaavia ihmisiä saamasta jälkeläisiä. Euroopan kuningassuvut ovat olleet sisäsiittoisia, mutta muut tekijät pitävät huolen siitä, että suvut jatkuvat. Hitler yritti saada arjalaisen suvun valtaan, mutta sekään ei onnistunut.

IV) Rakennuspalikat liitetään toisiinsa älykkäästi. Ohjelmoija on jo valinnut miten kromosomi voi muuttua ja miten siihen yhdistetään tai poistetaan uusia geenejä. Kun tarjoillaan pelkästään rajattu joukko hyviä rakennuspalikoita joita voidaan yhdistää vain tietyillä tavoilla, voidaan toki saada aikaiseksi tuloksia, koska ohjelmoija on jo ennalta päättänyt miten prosessi voisi toimia. Tämä ei vastaa luonnon toimintaa, jossa mikään ei takaa, että rakennuspalikat liittyvät toisiinsa millään lailla tai liittyvät aivan satunnaisella tavalla. Geneettisen algoritmin osalta tässä on jälleen yksi yksinkertaistus, jolla älykkäästi saadaan aikaan tuloksia.

V) Geneettisillä algoritmeilla on käytössään suuri lähes ehtymätön populaatio. Ohjelmistoissa voidaan huoleti käyttää suuria populaatiojoukkoja kun taas luonnossa sellainen ei ole mahdollista. Vrt esim. valaat, isot kissaeläimet, ihminen jne. Luonnossa ei ole käytännössä vara valita vain yksi jälkeläinen tuhannesta jatkamaan sukua eikä se ole myöskään todellisuutta.

VI) Geneettisessä algoritmissa ei oteta huomioon degeneroitumista. Siinä ei oteta taka-askelia, vaan uusi sukupolvi on aina vähintään yhtä hyvä kuin edellinen. Oletetaan, että ainakin yhtä hyvä on tarjolla seuraavan sukupolven kandidaateiksi kun taas seuraavaan sukupolveen pitäisi aina soveltaa mutaatioita jos halutaan simuloida evoluutioteorian mutaatioprosesseja. Tämä johtaisi siihen, että jos on saatu aikaiseksi parempi vaihtoehto, seuraavassa iteraatiossa se heikentyisi, koska siihen kohdistuu mutaation tuhoava vaikutus. Ainoastaan jos seuraavassa sukupolvessa sattuisi olemaan parempi vaihtoehto ja se sattuisi jäämään eloon, saataisiin seuraavassa sukupolvessa edistystä aikaiseksi.
Oikeassa maailmassa mutaatiot tuhoaisivat senkin hyvän mitä on saatu aikaiseksi sen vuoksi, että haitallisten mutaatioiden lukumäärä on niin suuri suhteessa edistäviin mutaatioihin (vrt. alla oleva tohtori John Sanfordin haastattelu ja myös hänen kirjansa: Genetic Entropy & The Mystery of the Genome).


Genetic Entropy - Dr. John Sanford - Evolution vs. Reality
Dr. John Sanford kertoo tutkimuksistaan dna:n entropian lisääntymisestä jokaisessa sukupolvessa.

VII)  Geneettiset algoritmit ovat valtavia yleistyksiä verrattuna luonnon kromosomien monimutkaisuuteen. Yksinkertaisimman eliön kromosomin monimutkaisuus on valtava verrattuna yksinkertaisiin geneettisiin algoritmeihin, joissa kenties vaihdetaan muutamaa operaattoria tai valmista rakennuspalikkaa johonkin kohtaan. Muutokset yksinkertaiseen ovat helppoja verrattuna muutoksiin monimutkaiseen. Sattumanvaraiset muutokset monimutkaiseen, jotka edistäisivät monimutkaisen eliön toimintaa eivät ole juurikaan mahdollisia, vaan aiheuttavat sitä suuremmalla todennäköisyydellä virhetoimintaa, tiedon vähentymistä ja koodin toimimattomuutta.

Boxcar2d.com

Kohtuu hyvä esimerkki geneettisestä algoritmistä on boxcar2d.com. Siinä etsitään motoroidun rattaan parasta mallia vaihtelemalla rattaan osia. Tämä malli osoittaa juuri geneettisen algoritmin ominaisuudet varsin hyvin. Kun taustalla on älykäs suunnittelija, saadaan variaatiot toimimaan. Näin on boxcar2d:n suhteen kuten dna:nkin. Boxcariin on älykäs suunnittelija mm. luonut valmiit toimivat osat ja niiden kiinnitysmekanismin. Dna:han Jumala taas on luonut tietyn muuntelun, jolloin laji voi soputua ympäristöön ja sillä voi olla persoonallisia ominaisuuksia. Mutta laji pysyy lajina kuten boxcarissakin motoroitu ratas pysyy motoroituna rattaana.



Huomiot, jotka osoittavat eron Boxcar2d geneettisen algoritmin ja luonnossa tapahtuvien mutaatioiden välillä:
II) Boxcar2d:ssä on valmiiksi hyviä ja edistyneitä rakennuspalikoita kuten pyörät ja pyörissä on jo moottori sekä kolmikulmiot.
III) Paras malli säilyy aina hengissä, joka ei tietysti vastaa luonnon mallia.
IV) Rakennuspalikat on ohjelmoitu liittymään toisiinsa älykkäällä tavalla. Tämä yksinkertaistaa rakenteen syntyä ja on seurausta ohjelmoijan älykkyydestä ei satunnaisuudesta.
V) Boxcaria voidaan pyörittää lähes kuinka kauan halutaan, joka ei vastaa luonnon rajoituksia.
VI) Kun on saavutettu uusi paras malli, seuraavaa mallia pyritään kehittämään aina parhaasta eikä oteta huomioon sitä, että jos seuraavien mallien joukossa on vain huonompia, pitäisi jatkaa näiden huonompien joukosta. Luonnossa jos oletettavasti jokin mutantti olisi ehdottomasti paras, se ei voi odottaa montaa sataa vuotta kuolematta, että löytyisi parempi, vaan jos sen jälkeläiset ovat huonompia, niillä mennään.
VII) Boxcar2d on valtavan yksinkertainen rakennelma verrattuna luontoon. Kyseessä on kaksiulotteinen parin rakennuspalikan rakennelma. On huomioitava, että tällaisenkin mallin "evoluutio" ei johda kovin kummalliseen lopputulemaan, kuten alla olevista parhaista malleista voi havaita.

Boxcar2d parhaita rattaita. Suuressa osassa parhaita on joko täysin käsin suunniteltu tai lähtökohtana on ollut älykäs suunnitelma. On helposti nähtävissä, että satunnaisuus ei johda tarkkaan lopputulokseen, mikä on nähtävissä luonnossa, vaikka kyseessä on näin yksinkertainen mallinnus. Luonnon hämmästyttävän monimutkaiset eliöt ovat tarkasti suunniteltuja ja niistä on hyvin vaikea löytää mitään satunnaisuutta, vaikka niiden toiminnallisuus on miljoonia kertoja monimutkaisempaa kuin boxcar2d. 

Yhteenveto: Geneettinen algoritmi ei vahvista mutaatioiden luomisvoimaa. 

Kaiken kaikkiaan geneettiset algoritmit ovat älykkäästi luotuja ohjelmistoja, joissa satunnaisuus on rajattu niin pieneen osaan ohjelmistoa, että se ei simuloi evoluutioteoriassa esitettyjä malleja. Geneettiset algoritmit saadaan toimimaan tämän vuoksi ja sen vuoksi ne ovatkin luokiteltu optimointimenetelmiksi, joka tarkoittaa sitä, että niiden avulla säädetään jo olemassaolevaan, ei luoda uutta tyhjästä tai luoda uutta satunnaisesti.

Luonnossa mutaatioden satunnaisuus tuottaa ylivoimaisesti suuren osan täyttä roskaa (haitallista koodia), joka tuhoaa perimää eli tässä tapauksessa kromosomia. Tämän vuoksi mutaatiot luonnossa eivät tuota parempaa dna:ta (koodia) kun ei ole mistä valita. Geneettisissä algoritmeissa käytetään nimikkeitä luonnosta kuten kromosomi ja geeni, joka saattaa harhauttaa ajattelemaan, että kyseessä on todella simulaatio. Voitaisiin käyttää myös kromosomien tilalla ohjelma ja geenien tilalla luokka, joiden kautta voitaisiin ymmärtää mielestäni nyt geneettisen algoritmien nimellä kulkeva ohjelmointimuoto paremmin.

Älykkään luojan on helppo tehdä toimiva geneettinen algoritmi. Se ei kuitenkaan vastaan luonnon mutaatioiden toimintaa eikä oletettujen evoluutioprosessien kulkua. Siksi en näe mitään syytä, jonka vuoksi geneettiset algoritmit vahvistaisivat evoluutioteoriaa. Niiden avulla voidaan simuloida yksinkertaisia prosesseja ja näiden tulokset päinvastoin osoittavat sen, että sattuma ei tuota täsmällisiä lopputulosta, johon vain älykäs luoja pystyy. Näitä täsmällisiä muotoja on luonto täynnä. Tämän johdosta geneettiset algoritmit pikemminkin kumoavat evoluutioteorian kuin vahvistavat sitä.

Viitteet

  1. J. H. Holland. Adaptation in Natural and Artificial Systems. The MIT Press, 1975.
  2. Aalto yliopisto, Mat-2.2105 Optimoinnin perusteet,  Luento 13: Geneettiset algoritmit, https://noppa.aalto.fi/noppa/kurssi/mat-2.2105/luennot/Mat-2_2105_luento_13.pdf
  3. Neuroverkkojen tuottaminen geneettisen algoritmin avulla. http://www.cs.uta.fi/research/thesis/masters/Salakoski_Harri.pdf
  4. [Michalewicz, 1992] Zbigniew Michalewicz, Genetic Algorithms + Data Structures = Evolution Programs, Springer-Verlag, 1992.
  5. Dr. John Sanford, Genetic Entropy & the Mystery of the Genome, http://www.amazon.com/Genetic-Entropy-Mystery-Genome-Sanford/dp/0981631606

Ei kommentteja:

Lähetä kommentti