10.12.07

Virtapiirien kehittyminen

Alan Bellows on kirjoittanut erittäin selkeän ja opettavaisen artikkelin siitä kuinka geneettinen algoritmi muovaa erikoista virtapiiriä. On jälleen aika kääntää tekstiä suomeksi.

Kyseessä on tohtori Adrian Thompsonin (Sussexin yliopistosta) kehittelemä koe, jossa muokattava virtapiiri tuli hardware evolution-termin perustaksi. Tuon virtapiirin nimi on helppo muistaa; Field-Programmable Gate Array (FPGA). FRGA:n ominaisuuksia pystytään tarvittaessa säätämään alusta loppuun uusiksi, toisin kuin yleisimpien virtapiirien muuttumattomat kaavat. Tällainen muokattava virtapiiri on kuumempi ja hitaampi, mutta se voi toimia modeemina, äänitunnistajana, ääniprosessorina, tai minä tahansa tietokoneen komponenttina.

Thompson aloitti määrittelemällä tavoitteen sirulle: sen pitäisi luotettavasi tunnistaa kaksi eri taajuutta. Perinteinen siru sisältäisi satoja tuhansia valmiiksi ohjelmoitua kohtia, eikä kokisi ongelmia tehtävän suorittamisessa. Thompson halusi varmistaa, että hänen kehittyvä sirunsa keksisi aivan uuden tavan ratkaista tehtävä.
FPGA-siru on kymmenen solua leveä ja kymmenen solua korkea, eli vain 100 logiikkaporttia (logic gates). Hän ei antanut sirun systeemille kelloa, joten se ei kyennyt synkronoimaan digitaalisia resursseja perinteisellä tavalla.

Sirun lähteeksi hän otti satunnaisen kasan, 50 sattumanvaraista sarjaa nollia ja ykkösiä. Nämä sarjat ladattiin yksitellen FPGA-sirulle, ja sille soitettiin kaksi eri taajuutta. Jokaisen sirun suoritus mitattiin. Ei liene yllätys, että ensimmäiset sattumanvaraiset sarjat eivät olleet toimivia. Jopa parhaimmat suoritukset olivat niin riittämättömiä, että testiohjelma joutui jakamaan niitä paremmuusjärjestykseen mitä hienoimpien erojen avulla. Geneettinen algoritmi poisti huonoimmat. Selviytyjien virtuaalinen DNA sekoittui keskenään. Joitain mutaatioita sallittiin tapahtua, eli ohjelma vaihtoi satunnaisesti jonkun nollan ykköseksi tai ykkösen nollaksi.

Ensimmäisen sadan sukupolven aikana ilmeni vain muutamia lupaavia merkkejä. Mutta sukupolvi nro 220:n paikkeilla FPGA-siru matki sen vastaanottamia signaaleja. Tämä oli vielä kaukana tavoitteesta, mutta se oli kuitenkin edistystä. Sirun suoritus parani pienissä askeleissa, kun päättymätön virtuaaliorgia jatkoi etenemistään. Sukupolvi nro 650:n kohdalla siru kykeni reagoimaan taajuuteen 1kHz, ja sukupolvi nro 1400 aikoihin se pystyi tunnistamaan kummankin taajuuden hieman yli 50% todennäköisyydellä.

4000 sukupolven jälkeen siru toimi kuten oli tarkoitus. Testi oli päättynyt. Thompson soitti merkin 1kHz taajuudella, ja siru reagoi epäröimättä, kytkien voiman nollaan volttiin. Kun Thompson antoi sille merkin 10kHz taajuudella, niin siru kytki päälle viiden voltin virran. Thompson halusi sirun vielä reagoivan "stop" ja "go" ääniin. Tämä vaati parisen sataa ylimääräistä sukupolvea. Kuten ennustettiin, luonnonvalinnan periaatteet voisivat tuottaa erikoistuneita virtapiirejä käyttäen vain murto-osaa ihmisen vaatimista resursseista. Eikä kenelläkään ollut ideaa kuinka siru toimi.

Thompson katsoi kehittyneen sirun sisään, oppiakseen kuinka se pelasi, mutta löytö oli tyrmäävä. Siru oli käyttänyt vain 37 kpl sadasta logiikkaportista, ja useimmat niistä olivat oudoissa takaisinkytkennöissä. Viisi yksittäistä logiikkaporttia toimi erillään itse päätoimea hoitavista porteista. Kun näihin kajottiin, niin siru ei enää toiminut. Nämä ylimääräiset takaisinkytkennät olivat epätavallinen tapa hallita piirin toimintaa. Lisäksi, lopullinen testin läpikäynyt ohjelma ei toiminut luotettavasti, kun se ladattiin toiseen FPGA-siruun. Ohjelma oli sopeutunut tietyn virtapiirin elektromagneettisiin ominaisuuksiin. Eikä siru näyttänyt erottavat ON ja OFF vaihtoehtoja selkeästi, vaan analogisen harmaasti pitkin digitaalista mustaa ja valkoista.



Tällainen sirujen suunnittelu on vasta alussa, mutta kunnon koneiden ja monimutkaisempien FPGA-sirujen avulla geneettinen algoritmi voi ratkaista mitä yllätyksellisempiä ongelmia.

7 comments:

esko heimonen said...

Juu, mutta siru pysyy siruna. Ei muutu siru kissaksi. Hih hih.

Paholaisen Asianajaja said...

Ovi on tuolla.

Anonymous said...

Jos siru olisi muuttunut kissaksi kokeen aikana, niin olisiko sillä ollut mitään vaikutusta kreationismi-evoluutio vänkäämiseen? Tuskinpa vaan...

edu said...

Niin, ja kaikki hiili-vety-happi-typpi-molekyylikasatkin ovat edelleen samanlaisia molekyylikasoja. Eivät ole muuttuneet antimateriaksi tai mustiksi aukoiksi.

Paholaisen Asianajaja said...

Oikeastaan ainoa vasta-argumentti joka tulee mieleen on IDeistien huomautukset siitä, että kokeessa käytettiin "maalia" johon algoritmi tähtäsi, eli toimivat virtapiiri, tietyllä toiminnolla.

Mutta mitä muuta kokeessa olisi voinut tehdä?

Thompson ei kyennyt ennustamaan *millainen* virtapiiri ilmaantuisi. Kun koetta toistetaan, niin virtapiirit voivat olla erilaisia. Eikä itse algoritmi tai koetta pyörittävä tietokone sisällä valmiin virtapiirin tietoja ennen kokeen aloittamista.

Joten mistä tämä täsmennetty monimutkainen informaatio sitten ilmestyy?

esko heimonen said...

Ei tuo ollut samassa merkityksessä fiksattu maali kuin: "Methinks it is like a weasel". Funktionaalinen maali on koko lailla eri asia kuin rakenteellinen maali, erityisesti silloin kun funktio voidaan toteuttaa kohtuullisen hyvin monilla täysin erilaisilla rakenteilla jotka voidaan saavuttaa täysin erilaisten kehityspolkujen kautta (kuten epäilemättä tässä esimerkissä). Biologiassa toki vielä erityispiirteenä on, että maali siirtyy jatkuvasti ympäristön valintapaineiden muuttuessa.

Mutta tokihan toinenkin vasta-argumentti tulee mieleen. Kuka loi GA:n? Tätä argumenttia esitettäessä on aina sujuvasti unohdettu, mikäli debatti on alkanut omasta väitteestä, ettei (jo käynnistynyt) evoluutio tuota ikinä spesifistä kompleksisuutta.

Sitten taisi vielä olla kolmas vasta-argumentti, jonka mukaan myös funktionaalisen maalin määrittely vaatii älykkään suunnittelijan. Esimerkiksi biologinen luonto ei ilmeisesti kykenisi ikinä itse "hoksaamaan", että jutun juju on lisääntymistehokkuus.

Etsijä said...

Tuo lopputulos on muuten sellainen FPGA-suunnittelijan painajainen, ettei sellaista todellakaan olisi ihmisälyllä suunnitellut. Koko kytkentä näyttää ensi silmäyksellä täysin hullulta ja kaikkien suunnittelusääntöjen vastaiselta.

Mielenkiintoinen koe, kaikenkaikkiaan.