sunnuntai 21. maaliskuuta 2010

EPFL:n robottien sosiaalinen evoluutio

Tutkimus

Lausannen Tekninen Korkeakoulu, EPFL, on kiinnostava yliopisto, Cambridgen
jälkeen minun mielestäni ehkä Euroopan kiinnostavin, ainakin tekniikan ja luonnontieteiden alueella. Siellä on aina meneillään jotakin hyvin kiinnostavaa.
Äskettäin oli "Robot Magazine" -lehdessä pieni artikkeli projektista (jonka olin jo aiemminkin jossakin noteerannut).

Projektissa tutkitaan robottien ja simulaation avulla sosiaalisen käyttäytymisen evoluutiota ja emergenttejä ilmiöitä. Viimeksimainituista eniten on herättänyt tutkimuksen tuloksissa huomiota spontaani "valehtelu", harhauttaminen ja ilmiön tasapainotilat robottiyhteisössä.
Robotit ovat toiminallisesti hämmästyttävän yksinkertaisia ja ympäristö on yksinkertainen. Lyhyesti, puuttellisesti esitettynä, kymmenen liikuvaa robottia toimii 3m x 3m aitauksessa jossa on kaksi valaistua "pesää". Toisessa on "ruokaa" ja toisessa "myrkkyä". Vasta lähietäisyydeltä robotti voi erottaa ne toisistaan (jos "geenit" ovat sillä tasolla). Robotit näkevät myös toisensa (ovat valaisevia) ja lisäksi tilan, joka ilmaistaan sinisellä valolla.

Robottien aivot ovat yksinkertainen hermoverkko, jossa on 11 tuloa ja kolme lähtöä. Tulot kertovat ympäristöstä kuten pesävaloista, toisista roboteista. Kolme lähtöä ohjaa liikettä ja sinistä valoa. siis 11 x 3 = 33 hermoverkkoyhteyttä, joista jokaisen vahvuus ilmaistaan kahdeksalla bitillä: 33 x 8 = 264 bittiä, koko neuroverkon "perimä", joka kokeen alussa oli satunnainen kaikilla kymmenellä robotilla.
Robottien neuroverkkojen perimää paranneltiin täysin satunnaisesta yhä "menestyksellisemmäksi" 500:n sukupolven ajan. Jokaisen sukupolven yksilöiden suorituskyky: ruokapesän saavuttaminen ja myrkkypesän välttäminen, arvioitiin ja onnistuneimmat perimät "paritettiin" biologista, seksuaalista menetelmää mukaellen, yhdistäen keskenään hyvien robottien 33:n kytkennän verkkojen perimät pareittain, lisäten myös "mutaatiota", satunnaisia bittimuutoksia.

Koska hermoverkon perimä on hyvin yksinkertainen, on mahdollisia kombinaatioita rajallinen määrä (mutta tietysti silti paljon). Kymmenen robottia (joiden perimä vaihdetaan aina uutta sukoplvea vastavaksi) ja 500 sukupolvea riittää monimutkaisten sosiaalisten käyttäytymistapojen syntymiseen.
Ensin robotit oppivat tunnistamaan ruuan ja myrkyn. Sitten robotit oppivat yhteistyön, hyötymään toisitaan. Ne sytyttävät sinisen valon, kun ovat löytäneet ruuan. Toiset robotit näkevät kerääntyneet sinistä valoa näyttävät robotit ja liittyvät joukkoon.

Mutta sitten tapahtuu evoluutissa merkillistä. Ruokapesän luona on ahdasta. Joidenkin robottien perimä alkaa harrastaa filunkia. Ne "tietoisesti" sytyttävät sinisen valon, vaikka ovat kaukana ruuasta, jopa myrkkypesän lähellä, harhauttaakseen muita. Siten ne itse ehtivät ruokapesälle ennen kilpailijoita. Stategia toimii vain niin kauan, kuin harhauttajat ovat pieni osajoukko koko populaatista, mutta jos ominaisuus yleistyy, se kääntyy itseään vastaan. Sininen valo ei enään ole kenellekään robotille luotettavaa tietoa ja koko populaation suorituskyky taantuu. Mahdollisesti ilmiö alkaa värähdellä jossakin jaksossa. Siten hyvin yksinkertaiset vuorovaikutukset saavat aikaiseksi monimutkaisia emergenttejä mekanismeja.

Ajatuksia

Tutkimuksessa on kysymys sosiaalisesta käyttäytymisestä. Mutta, jos kehittynyt mieli on osamielien yhteisö (ei siis niinkuin EPFL:n kokeen robottien yksinkertainen mieli), eikö kehittyneen älyn osamielten välillä toimi myös sosiaaliset mekanismit: yhteistyö ja kilpailu, sekä näiden lomittainen vuorovaikutus. Tämä ajatus selittäisi hyvin ihmismielen ailahtelevaa, välillä yllättävä käyttäytymistä.
Viittaan aikaisempiin näkemyksiini universaalin älyn mahdollisesta kehittymisestä rajoittuneempien, mutta yhteistyökykyisten erityisälyjen yhteistyön tuloksena. Kilpailunkaan olemassaoloa ei saa sulkea pois, mutta harhauttamisen yleistyminen romahduttaa osaälyjen yhteisen suorituskyvyn.

maanantai 15. maaliskuuta 2010

Kryoniikkaseminaari

Suomen Kryoniikkaseura järjestää ensi lauantaina, 20.03, Helsingissä, Meilahdessa avoimen seminaarin, jossa kaikille asiasta kiinnostuneille kerrotaan kryoniikan perusasiat, käytäntö ja kryonisten palveluiden tilanne Suomessa.
Oletan, että suurimmalla osalla, myös ammattilaisilla, on paljon vääriä käsityksiä reaaliteeteista.
Joten tervetuloa kuulemaan ja vaikka esittämään perusteltuja vastaväitteitä.
http://kryoniikka.blogspot.com/2010/03/seminaari-helsingissa-la-203-klo-1015.html

lauantai 27. helmikuuta 2010

Lisää AIXI:sta

Jäi edellä varmaankin tuo AIXI-periaate hämäräksi, vaikka linkistä ja googlaamalla itse kukin löytää mielivaltaisen paljon (mutta usein vaikeasti, vain tohtorispohjalta sulatettavaa) tietoa. Siksi ajattelin jatkaa “selkeää”, insinööritasoista ihastelua ja pohdiskelua Hutterin kauniista ajatusrakennelmasta.



Kuvassa on kaksi järjestelmää, jotka molemmat ovat “turing-yhteensopivia” laskennallisia, aikadiskreettejä malleja. Alempi laatikko, ympäristö, voi tietysti ainakin osaltaan (paitsi palautteen muodostus?) olla myös analoginen järjestelmä, siis osa luontoa. Mutta oletetaan, että sekin on digitaalinen, epäjatkuva kone. Ylempi laatikko on älykäs, oppiva järjestelmä, itsenäinen toimija.

Tapahtumien kulku on seuraava

1. Ympäristö kertoo Agentille hetkellistilansa.
2. Agentti suorittaa toimenpiteen, joka perustuu ympäristön tilaan ja Agentiin omaan tilaan.
3. Agentin toimenpide muuttaa ympäristön sisäistä tilaa. Samoin “ympäristö”-järjestelmän tietty osa antaa Agentille palauteen edelliseen toimenpiteen hyväksyttävyydestä, siis “arvottaa” toimenpiteen. Lisäksi ympäristön uusi tila kerrotaan Agentille.
4. Jatketaan kohdasta (2.), mutta Agentti ottaa huomioon palautteen ja muuttaa toimintatapaansa siten, että se uusilla toimenpiteillään pyrkii maksimoimaan, lyhyellä ja pitkällä aikavälillä, kertyvän palautteen kokonaismäärän.

Agentin oppimisella on kaksi erillistä tavoitetta:

1. Ennustaa suorittamiensa toimenpiteiden lyhyen ja pitkän aikavälin seuraukset ympäristön tilaan. Siten Agentti myös oppii saamaan aikaiseksi toimenpiteidensä kautta tavoitelemansa ympäristön tilan.
2. Palauteen kertymän maksimoiminen opettaa Agentille “arvoja”. Mikä toimenpide ja mikä ympäristön tila on tavoittelemisen arvoinen, mikä vältettävää. Palauteen antamisella ympäristö (tai “opettaja" ympäristön osana) ohjaa Agentin oppimista oikeaan suuntaan.

Jos AIXI-mallia verrataan biologiseen maailmaan, niin biologisilla agenteilla oma keho on osa ympäristöä. Oma keho antaa toimenpiteille palautetta, hyvää oloa ja kipuaistimuksia. Biologista agenttia vastaa abstrakti, kehosta erillään oleva, “sinänsä tahdoton” keskushermosto.

AIXI-mallin avulla Hutter määrittelee yleisen älykkyyden ja matemaattisesti osoittaa, että jos Agentin laskennalliset resulssit ovat äärettömät, sen oppimisella ja saavutettavalla älyllisellä suorituskyvyllä esitetyn mallin mukaisessa ympäristössä ei ole mitään ylärajaa.

Hutterin malli on saanut paljon kritiikkiä, luonnollisestikin, älykkyyden olemuksen liiallisesta yksinkertaistamisesta, mutta minä olen vakuuttunut, että suurin osa kritiikistä perustuu väärinkäsityksiin, perusteettomiin oletuksiin Agentin ja Ympäristön olemuksien rajoista.

Mielestäni AIXI-mallin voima on juuri sen yksinkertaisuudessa. Älykkyyttä ei tarvitse mystisoida. Oletan, että kaikki muut kilpailevat, mutta realistiset älykkyyden määritelmät voidaan redusoida AIXI-mallin rakenteeksi, useimmiten ympäristömallin laskennallisiksi ulottuvuuksiksi.

Agentin opettaminen.


Jos ajatellaan, että ympäristön “kolmogorov-monimutkaisuus” on hyvin suuri, esim miljardi riviä C++-koodia tarvitaan sen toiminnallisuuden toteuttamiseen, miten Agentti opetetaan toimimaan tällaisen ympäristön kanssa? Jos ympäristö kaikessa “sekavuudessaan” iskettäisiin suoraan “vastasyntyneen” Agentin toimintakentäksi, olisi luonnollista, että Agentti ei saa mitään aikaiseksi, eikä edes opi, kuin äärimmäisen hitaasti ja tehottomasti. Näin kävisi ihmislapsellekin ilman vanhempien tukea. Agentti on siis opetettava suunnilleen samoin kuin ihmislapsi: tyvestä puuhun. Kaikki perustuu siihen, että maailma rakentuu hierarkisesti ja opetus edistyy hierarkiaa noudattaen, yksityiskohdista kokonaisuuksiin ja korkeampiin abstraktiohin.

Kuvassa on yksinkertaisen agentin sensorinen ja motorinen hierarkia. Jokainen pieni laatikko osaa useita, mahdollisesti satoja sekvenssejä, aina erilaisia kuin muut saman hierarkian laatikot. Sensorisen puolen laatikot tunnistavat sekvenssejä ja raportoivat tunnistamansa sekvenssin tunnuksen, symbolin hierarkiassa ylöspäin. Symbolien sarja on taas uusi sekvenssi, jonka ylemmän hierarkian laatikko tunnistaa, jne. Motorisen puolen laatikot generoivat sekvenssejä. Ylhäältä tullut symboli laukaisee symbolia vastaan sekvenssin, jonka tilat taas vastaavat alemman hierarkian sekvenssejä. Laatikot voidaan toteuttaa neuroverkoilla tai muilla tekniikoilla, vain toiminnallisuus on ratkaisevaa.

Opetuksen alussa opetetaan Agentille ihan alimman tason sekvenssejä ja niitä vastaavia motorisia toimenpidesekvenssejä: siis mitkä toimenpiteet, motoriset sekvenssit, aiheuttavat ympäristön tilassa vastaavat perustavaa laatua olevat sekvenssit. Näitä lapsikin opiskelee ensimmäisten viikkojensa, kuukausienssa aikana: imemisen hienosäätöä, omien käsiensä ohjailuja, ym. Esim. tarkoituksellinen esineeseen tarttuminen näköaistia hyödyntäen on valtava välisaavutus. Palautesignaali opastaa Agentin generoimaan “hyviä sekvenssejä”, jotka vastaavat sopivia ympäristön yksinkertaisia tiloja. Kun sekä motorisen, että sensorisen hierarkian alin taso, alimmat tasot, on opittu, vasta sen jälkeen siirrytään seuraavien ylempien tasojen, monimutkaisempien sekvenssien opiskeluun. Ja nämä tasot luonnollisesti soveltavat aiemmin opittuja sekvenssejä. Huomaa, että tällainen opettaminen antaa automaattisesti myös Agentille hierarkisen arvojärjestelmän, palautesignaalin tuloksena. Tyylikästä, eikö vain!

Jos ym. periaattessa on epäselvää ja muutenkin, kannatan tutustumista Jeff Hawkinsin “On Intelligence” -kirjaan tai vastaavan suomennokseen, joka kyllä löytyy kirjastoista.

Harrasteprojektista

Toivosin, että en olisi Suomessa ainoa, joka haaveilee toteuttavansa harrastepohjaisena projektina aidosti käsitteelliseen ajatteluun pystyvän kognitiivisen järjestelmän, pienen, autonomisen robotin. Vain onko niin, että kaikki, joilla on tähän kykyjä, keskittyvät ammattiurallaan etenemiseen, toteuttaen yritysmaailmassa yhtä vaativia, tai vaativampia hankkeita, jotka eivät kuitenkaan ole läheskään yhtä hohdokkaita ( mutta jotka tuottavat oikeasti rahaa, ehkä toteuttajalleen, mutta eteenkin osakkeenomistajille). Toivoisin siis jonkun vähemmän urahakuisen, tai sellaisen, jolla on ura jo takanaan, harkitsevan tällaista superhohdokasta projektia. Minulla on osa-aikaeläke vetämässä, siis vapaa-aikaa pian nykyistä enemmän käytettävissä tällaisiin korkeampiin sfääreihin kurkottamiseen.

keskiviikko 17. helmikuuta 2010

"Hutter yhteensopiva älykkyys"

Johdanto

Tietojenkäsittelyssä on käsite "turingin kone", jolla tarkoitetaan Alan Turingin määrittelemää yksinkertaista, kömpelöä hypoteettista tietokonetta. Kone oli kuitenkin siitä erityinen, että se pystyi laskemaan minkä tahansa asian, joka yleensä oli laskettavissa, kunhan koneelle annettiin vain tarpeeksi, jopa äärettömästi aikaa. Eräs edelleen johdettu jatkopäätelmä turingin koneesta oli, että se pystyi emuloimaan mitä tahansa muuta digitaalista (käytännössä myös analogista) laskentalaitetta, tietokonetta. Tästä edelleen saatiin käsite "turing-yhteensopiva suoritinarkkitehtuuri" eli tietokonearkkitehtuuri (käytännössä suorittimen käskykanta), joka oli kykenevä emuloimaan kaikkia muita tietokoneita. Yllätys monelle saattaa olla se, että tällainen kone, suoritin, ei ole kovin monimutkainen (kuten ei alkuperäinen turingin konekaan). Koneen käskykannalta vaaditaan perus-bittilogiikan funktiot, muistiin kirjoitukset ja luvut sekä muutama ehdollisen haarautumisen käsky. Siinä oikeastaan kaikki. Käytännössä kaikki toteutetut suorittimet ovat "turing-yhteensopivia".

Em. määrittelyssä häiritsevä seikka on kuitenkin se, että pienten suorittimien rajoitetut muistiavaruudet todellisuudessa estävät esim. 32-bittisten suorittimien emuloinnin 8-bittisiä suorittimia käyttäen. Minun ratkaisuni tähän on laajentaa "turing yhteensopivan suorittimen" käsite laskentasoluksi, joka pitää sisällään suorittimen, muistin ja muutaman viestinlähetyslinkin, joiden avulla useita, mielivaltaisen monta, identtistä, mutta vaatimatonta suoritinta voidaan kytkeä yhteen "laskentapilveksi". Tällaisella pilvellä voidaan teoriassa emuloida minkälaista tahansa laskentamekanismia, esim. ihmisaivoja. Yksi laskentasolu voi olla hyvinkin vaatimaton: esim 8-bittinen suoritin, jonka osoiteavaruuskin on 8-bittinen. Solu sisältäisi siis 256 tavua muistia, sekä koodia että dataa varten. Tai sitten voitaisiin käyttää harward-arkkitehtuuria, jossa data ja koodi erotettaisiin omiin 256:n tavun muisteihinsa. Järkevämpi, nykyaikainen laskentasolu voisi muodostua 32-bittisestä suorittimesta, 16Mtavusta muistia ja esim kahdeksasta sanomalinkistä. Hyvin pian on mahdollista koota esim. 1024 tällaista solua yhdelle ainoalle piirille: 1024 suoritinta ja 16Gtavua muistia. En nyt puutu tällaisen massiivisen multiprosessoinnin ohjelmoinnin ongelmiin ja ratkaisuihin.

Em. laskentasolujen sanomanlähetyslinkkien lukumäärä olisi oltava riittävän suuri, jotta pilven, verkon laajentaminen mielivaltaisen suureksi olisi mahdollista. Vanhemmat nörtit muistavat varmasti Transputer-arkkitehtuurin, jossa linkkejä oli neljä/solu. Neljän linkin avulla on mahdollista toteuttaa mielivaltaisen moniulotteinen hyperkuutioverkko, jonka solmut muodostuvat useasta laskentasolusta. Neljä linkkiä voisi siis olla yhden solun minimimäärä.



Asian ydin, johon edellä halusin viitata, oli se, että "turing-yhteensopiva suoritinarkkitehtuuri" on rakenteellisen monimutkaisuuden kynnystaso, joka mahdollistaa tietyn laajennettavuuden. Tämän laajennettavuuden avulla voidaan identtisillä soluilla toteuttaa mikä tahansa laskennallisesti mahdollinen toteutus, kunhan solujen määrä on riittävä. Laskentapilven rakenne ja suorittimen rakenne eivät sanele pilven laskennallista toiminnallisuutta, vaan ovat kiinteitä. Toiminnallisuuden rajat määrittelee vain pilven koko sekä suorittimiin ladattava ohjelma ja data. Esim FPGA-arkkitehtuuri ei ylitä vastaavaa kynnystä, koska sen laskennallisen toiminnallisuuden sanelee, paitsi yksittäisen makrosolun konfigurointi (vastaa em. laskentasolun ohjelmaa), myös ehdottomasti solujen kytkentä toisiinsa, eli FPGA-toteutuksen nettilista. Siten esim FPGA-makrosolu tai aivojen neuroni eivät ole "turing-yhteensopiva suoritinarkkitehtuuri".

Toinen yhteensopivuus

Tämän pitkähkön johdannon jälkeen tullaan pohdiskelemaani asiaan. Voisiko olla olemassa toinenkin, edellisen kaltainen, mutta merkittävästi korkeampi monimutkaisuuden kynnystaso, jota haluaisin kutsua, paremman nimen puutteessa, "hutter-yhteensopivuudeksi"? AIXI on Marcus Hutterin ideoima hypoteettinen älykkään agentin malli, jossa on tiettyä yhdenmukaisuutta turing-koneen kanssa. Itse asiassa malli muodostuu kahdesta turing-koneesta, joista toinen on älykäs agentti ja toinen mallintaa ympäristöä. Hutterin älykkään AIXI-koneen monimutkaisuus riippuu ympäristön monimutkaisuudesta. Yksinkertaisessa ympäristössä monimutkaisuuden aste voi olla hyvin rajallinen, mutta Hutterin käsite "universaali älykkyys" edellyttää AIXI-koneelta ääretöntä monimutkaisuutta. AIXI-malli toimii ajallisesti ja topologisesti silmukassa, jossa agentti lukee ympäristön tilan, määrittelee ja suorittaa toimenpiteen ympäristölle. Ympäristö vastaa antamalla agentille kaksi arvoa: uuden ympäristön tilan ja "palautteen". Palaute, palkkiosignaali, kertoo toimenpiteen onnistuneisuuden, esim -100%.. +100% asteikolla. Agentin tehtävä on laskea ympäristölle uusi toimenpide ja yrittää oppimalla maksimoida palautteen arvo. Agentti on ehdottomasti oppiva. Sen on opittava ennakoimaan ympäristön uusi tila ja palautteen arvo. Tiedän, että käytän AIXI-termiä hieman väärin, koska viittaan vain ylimmän tason järjestelyyn, enkä Hutterin matemaattiseen esitykseen ideaalisen AIXI-koneen sisäisestä toiminnallisuudesta.

Kynnystason AIXI-kone olisi kykenevä oppimaan jonkin kohtuullisen monimutkaisen ympäristön ja optimoimaan toimintansa, hyötyfunktionsa, kuvatussa ympäristössä. Oleellisista määritelmälle olisi vaadittava ympäristön monimutkaisuus kynnystasolla toimittaessa. Ympäristön monimutkaisuuden määrittelee sitä mallintavan ohjelmiston koko ja monimutkaisuus: kolmogorov-monimutkaisuus. AIXI-agenttin tavoitteellisuus on ulkoisesti annettavan palkkiosignaalin maksimoimista. Muu tavoitteellisuus, esim ulkoa annetun tehtävän toteuttaminen, voidaan tulkita osaksi ympäristöä. Agentti ei siis toiminnallisesti tee eroa "esimiehen" ja toimintaympäristön välillä. Esimies on osa toimintaympäristöä, kuten kaikki muukin havaittava, esim agenttikumppanit.

Kuvattu ajattelutapa ei rajoita agentin sisäistä arkkitehtuuria, mutta minun skenaariossani se voisi muodostua kahdesta tasosta: alisymbolinen taso ja käsitetaso. Molemmat tasot rakentuvat hierarkisista verkoista, joiden sisällä on myös lateraalisia kytkentöjä. Lateraalisten kytkentöjen osuus kasvaa noustessa hierarkiassa ylöspäin.Lisäksi hierarkioiden sisällä tieto virtaa kahteen suuntaan, aistitieto hierarkiassa ylöspäin ja toiminallinen ohjaus alaspäin. Verkkojen solmujen rakenteelle on eri vaihtoehtoja, mutta alisymbolisella tasolla staattisten ja dynamisten hahmojen tunnistus on oleellista ja käsitetasolla tärkeää on rakenteen dynaamisuus: uusia rakenteita luodaan työtilaan ja hävitetään prosessoinnin kuluessa. Agentin on kyettävä alisymbolisista hahmoista, niiden sekvensseistä ja lainalaisuuksista muodostamaan uusia käsitteitä. Mutta tämä kaikki oli vain vihjailua. AIXI-koneen rakenne ei ole tämän jutun keskeistä sisältöä. Tärkeintä on todeta, että se edustaa kynnystasoa, yksinkertaisinta, toimivaa "yleistä älyä". Kunhan tämä ehto täyttyy, agentti on "hutter-yhteensopiva".(En kehtaa ottaa käyttöön käsitettä "jusa-yhteensopiva", Hutter voi hyvin lainata nimeään tähän. Oletan, ettei myöskään Alan Turing nimennyt itse käsitteitä "turing-yhteensopiva" tai "turing-täydellinen".)

Samoin kun ajattelin turing-koneen kanssa, pidän luonnollisena, että myös AIXI-agentit on yhdistettävissä toisiinsa, mahdollistaen mielivaltaisen monimutkaisia älykkäitä järjestelmiä. Näen ajatusrakennelmien, teorioiden, maailmankuvien.. monimutkaisuuden olevan aina hajoitettavissa hierarkisesti eriteltäviksi käsiterakennelmiksi. Mutta tarkoitukseni on, että kokonaisjärjestelmä itse, automaattisesti toteuttaa tämän hajautetun monimutkaisuuden hallinnan. Siten yhden agentin rajalliset kyvyt ovat riittäviä sillä hierakiatasolla, jossa se oppii toimimaan. Sen ei tarvitse paljoa tietää alemmista, eikä ylemmistä tasoista. Näin toimii ihmisorganisaatioidenkin älykkyys. Kukaan ei täysin hallitse organisaation koko toiminnallisuutta. Lattiatasolla ei tarvitse paljon tietää pomojen ongelmista, eivätkä pomot tunne lattiatason osaamisen hienouksia. Ja organisaation keskellä ei tiedetä kummistakaan paljoa, noin periaatteessa, riippuen omasta työhistoriasta.

Luonnostelen siis, että "älypilven" "hutter-yhteensopiva älysolu" olisi kytketty sanomavälityksellä vaikkapa kahdeksaan organisatorisesti alemman tason (mutta rakenteellisesti identtiseen) älysoluun, 32:een lateraaliseen, oman tason naapurisoluun, sekä neljään lähinnä ylemmän tason ("esimies-")soluun, joista yksi olisi "varsinainen esimies". Linkit olisivat kaksisuuntaisia. Käsitteeni, "hutter-yhteensopivuus", viittaa siis yksinkertaisimpaan älylliseen monimutkaisuuteen, jolla älysolut kykenevät automaattisesti järjestäytymään, ohjaamaan toisiaan, oppimaan ulkoisen palkkiosignaalin avulla "tyhjästä", siis ilman "kovakoodattua" bias-älyä siihen kokonaistoiminnallisuuten, johon palkkiosignaali ne ohjaa.



On hyvin todennäköistä, että luonnostelemani arkkitehtuuri ei olisi oikeasti ihan toimintakykyinen, vaan vaatisi monenlaista tukitoiminnallisutta ja alueellista hienosäätöä. Esim hierarkian ylemmillä tasolla saatattaisi olla mielekästä luopua älysolujen alisymbolisesta kerroksesta. Toinen ajattelemisen arvoinen asia voisi olla luopua Hutterin ideaalisesta yleisyydestä ja varustaa rakenne oppimista nopeuttavalla, kovakoodatulla biaksella, esim arvo- ja tavoitehierakialla. Mutta hieman epäilen, että tällä lopulta voitettasiin vähemmän, kuin mitä tämän toteutuksen uudet vaikeudet maksaisivat. Parempi ratkaisu voisi olla panostaa älykkään keinoympäristön kehittämiseen, joka eteenkin harkitun progressiivisesti palkkiosignaalia käyttäen asteittain opettaisi suuren verkon yhä monimutkaisempien kokonaisuksien ja tehtävien hallintaan. Tällöin ongelmana voi olla ihmisen tason ylittäminen. Emme ehkä osaa tehdä riitävän älykästä opetusohjelmaa! Olen kuitenkin melko varma, että olen oikeilla jäljillä. Aika näyttää.

Yhteenvetoa

Mitä tällä käsitteellä siis voitetaan? Jos pitää paikkansa että on olemassa yllä kuvattu kynnysmonimutkaisuus ja että sen ylittävä rakenne on toteutettavissa, niin se helpottaisi merkittävästi AGI:n, Yleisen Tekoälyn toteuttamista. Riittäisi kun toteutetaan juuri ja juuri tuon kynnyksen ylittävä toiminnallisuus ja sen avulla, monistaen, toteutettaisiin yhä suurempia hierarkioita, jotka lopulta ohittavat suurella marginaalilla ihmisen älykkyyden. Myös tietokoneen kehitys olisi voinut ehkä 1970- tai 1980-luvulla haarautua ensin kuvatulle "laskentapilven" tielle, mutta kaupallisista ja ja ohjelmointiteknisistä syistä tämä suuntaus ei toteutunut. Transputerit olivat lähimpänä tätä ajattelua. Nyt moniydintekniikka on yleistymässä, koska vaihtoehtoinen tie on jo kuljettu loppuun. Ohjelmointiongelmien lisäksi moniydinsuorittimien suuri ongelma on muistiyhteyden jakaminen kymmenien, satojen, tuhansien... suorittimien kesken. Se ei onnistu kovin kauan. Edessä on väistämätön: muistipiirit ja suorittimet on sulautettava samaksi arkkitehtuuriksi, sama piiri, piipala, tulee sisältämään kymmeniä gigatavuja RAM-muistia sekä satoja suorittimia.

Tätä samaa puolijohdeteknologiaa voitaisiin soveltaa myös yllä (hyvin alustavasti) luonnostellun älyarkkitehtuurin toteuttamiseen. Tämä voisi olla käytäntönä 2020-luvulla.

lauantai 13. helmikuuta 2010

Milloin tekoäly haastaa ihmisen?

Tämä klassinen kysymys, joihin toiset vastaavat pelon tai optimismin vallassa, puhuen lähivuosista tai toiset sivuttavat asian olankohautuksella: "ei milloinkaan", on taas tullut ajankohtaiseksi sekä muutamassa äskeisessä meilikeskustelussa, että H+-verkkolehden tutkimuksessa. Siksi olen koonnut hieman omia tuoreita ajatuksiani asiasta.
Omat viimeaikaiset opiskeluni ja 1,5v takainen Nokia Workshop on Machine Consciosness, jota olin paikalla kuuntelemassa, ovat hieman muuttaneet aikaisempia käsityksiäni. Aikaisemmin arvelin asioiden tapahtuvan niin, että joskus, 15-30v kuluttua tapahtuu kerralla iso läpimurto, joka yhdistettynä sen aikakauden nykyiseen verrattuna järeään tietokonetehoon, muuttaa tilanteen kertaheitolla kapeasta, erikoistuneesta tekoälystä (joka on nyt arkista ja rutiininomaista monilla aloilla) ihmistä mahtavammaksi superälyksi. Ja hyvin pian sen jälkeen jatkuen teknologiseksi singulariteetiksi. Nyt enään pidä tätä todennäköisenä tapahtumien kulkuna.
Nyt oletan, että tällaista jyrkkää kynnystapahtumaa edeltää toinen, teknologisesti vähemmän dramaattinen, mutta muussa suhteessa hyvin järisyttävä kehitys, jota voidaan rinnastaa vaikutuksiltaan esim WWW:n käyttöönotton ja yleistymiseen. Skenaarioni on, että n.7-15v kuluessa onnistutaan kaupallisesti toteuttamaan eräänlainen "Semi-AGI", tekoäly, jolla on laajoja kykyjä oppia kohtuullisen helposti täysin uusia taitoja (joita siihen ei alunperin ole eksplisiittiseti ohjelmoitu) ja joka selviää siten samalla perusohjelmistolla uudelleen opetettuna monista työelämän ihmistehtävistä, mutta joka silti jää kognitiivisiltä kyvyiltään "heikkolahjaisen" ihmisen tasolle. ("Heikkolahjaisuus: hieman normaalia vähäisempi älykkyys (älykkyysosamäärä 70-85), jota ei vielä luokitella älylliseen kehitysvammaisuuteen.) Semi-AGI ei siis kykene laajaa ymmärrystä vaativiin tehtäviin, mutta se omaksuu kapeaa-AI:tä monta kertaluokkaa helpommin yhä uusia, rajoitettuja työtehtäviä. Ja koska useimmat työelämän työtehtävät on huolellisella suunnittelulla jaettavissa rajallista osaamista vaativiin osatehtäviin, Semi-AGI voi syrjättää suuren joukon vielä nyt automaatiolta (mutta ei usein globalisoinnilta) turvassa olevia ihmistyöntekijöitä (myös halvan työvoiman maissa).

Semi-AGI voi tulla käyttöön kahdella suhteellisen erilaisella sovellusalueella: robotiikka ja toimistoautomaatio. Robotiikassa tärkeimpänä vaatimuksena on tehokas aistitiedon, eteenkin videodatan tulkinta ja hahmontunnistus. Toimistoautomaatiossa (kaupan, hallinnon, tuotekehityksen ym. piirissä) Semi-AGI:n mahdollisuusien edellytyksenä on, että semanttisen webin teknologiat otetään käyttöön myös yritysten ja laitosten tietojärjestelmissä. Tämä tarkoittaa sitä, että kaikki tietorakenteet ja prosessit määritellään yhteensopivia ontologioita käyttäen, joita Semi-AGI osaa soveltaa työtehtävissään ilman raskasta uudelleenohjelmointia. Molemmissa tehtävissä tarvitaan myös jonkinasteista luonnollisilla kielillä tapahtuvaa kommunikointia ihmisten kanssa. Töksähtelevä arkikielen lauserakenteiden osajoukko riittää hyvin. On täysin mahdollisuuksien rajoissa määritellä automaatiolle eksplisiittisesti esim n.20000 "mallinetta", "patternia", "templatea", jotka edustavat tavallisia, yksinkertaisia lauserakenteita sanojen taivutusmuotoinen ja niissä esiintyviä mahdollisia käsiteryhmien yhdistelmiä. Nämä mallineet on edelleen käännettävissä AGI:n sisäiselle käsitekielelle, joka voisi olla esim lojbania.
Otaksun (huom. en "usko ja väitä"), että Semi-AGI:in laajamittainen käyttöönotto on mahdollista joskus 2017-2025 välisenä aikana siksi, koska puolijohdetekniikan edistyminen mahdollistaa nyt toivottomat "brute force" -ratkaisut ja että AGI-arkkitehtuurit ovat kypsyneet jo nyt huomattavasti viimeisen kymmenen vuoden aikana. Suurimman toivon asetan esim hierarkisiin hahmontunnistustekniikoihin (HTM ja sen kilpailijat) ja muihin ihmisaivojen arkkitehtuurin rakenteita (siis esim. neocortex ja hippocampus) soveltaviin ideoihin.
Ennakoin siis, että Semi-AGI on suuri teknologinen mullistus, mutta myös että se ei lyhyellä kehityksellä johda todella ihmisen suorituskyvyn ohittavaan AGI:iin vaan, että Semi-AGI:n kehitys jatkaa rauhallisen eksponetiaalisesti ainakin kymmenen vuotta ohittamatta kuitenkaan lahjakkaimpien ammattilaisten kognitiivisiä kykyjä hyvin laajojen kokonaisuuksien hallintaa edellyttävissä luovissa tehtävissä, esim AGI-kehityksessä. Semi-AGI ei siis mahdollista "rekursiivista itsekehitystä", vaikka se voikin nopeuttaa AGI:n kehitysprosessia. Mutta sitten, jossakin vaiheessa, palaset loksahtavat yhteen, ja ihmisen suorituskyky ohitetaan kerralla, isolla, useiden kertaluokkien hyppäyksellä, ehkä joskus 2025-2040 välisenä aikana. Voi olla että näin ei käy, vaan Semi-AGI muuttuu asteittain "kypsäksi AGI:ksi", mutta pidän tätä mahdollisuutta alan kehitykselle epätyypillisenä. Todennäköisemmin on olemassa jokin kynnys, jonka ylittäminen nopeuttaa kehitystä radikaalilla tavalla. Tämä kynnys voitaisiin siis ylittää esim. vuonna 2032. Vanha ennusteeni vuodesta 2027 pysyy: veikkaan, että silloin Semi-AGI:n taso on saavuttanut keskivertoihmisen kognitiivisen suorituskyvyn. Mutta keskivertoihminen ei pysty millään koulutuksella esim. luovaan AGI-kehitykseen, pääarkkitehtitasolla.
Minusta tällainen sivistynyt arvailu, epätieteellinen (semitieteellinen?), edes jotenkin perusteltu, poleeminen ennustelu on kannustettavaa. Samoin ehdottomasti toivoisiin, että yhteiskunnallisessa suunnittelussa otettaisiin vakavasti huomioon se mahdollisuus, että minä ja hengenheimolaiseni olemme ehkä edes jossakin määrin oikeassa. Kintaalla viittaaminen näin vakavissa asioissa on vastuutonta.

lauantai 30. tammikuuta 2010

Kunnontestaustyökalu

Tein eteenkin itselleni pienen työkalun, javascriptilla. Joku muukin voisi olla tästä kiinnostunut. Se on ladattavissa täältä:
"Cardiacvascular Fittness Tool"
Tietyistä syistä työkalu ja sen ohjeet ovat englanniksi, mutta se on suoraviivainen käyttää:
1. Kopioi HTML-tiedosto omalle koneellesi ja avaa se selaimella. Voi se avata download-hakemistossakin.
2. Mittaa sykemittarilla neljä testiharjoitusta (minä käytän fillaria, mutta voi esim juostakin) vakiolenkillä, vakiopaikassa, esim 2-3 viikon välein. Sykemittarin on pystyttävä mittaamaan keskisyke ja suoritusaika kustakin suorituksesta. Mittaa kaksi suoritusta päivässä noista tarvittavasta neljästä mittauksesta, esim #1 ja #3 yhtenä päivänä, seuraavana päivänä #2 ja #4. Tee suoritukset toisistaan poikkeavalla n. suunnilleen vakiosykkellä, vaihdellen hyvin löysästä melko tiukkaan rutistukseen. Siis neljä hyvin erilaista, vakiosykkeistä suoritusta.
3. Syötä ajat ja sykkeet javascriptillä toteutettun laskimen kaavakkeeseen. Aika syötetään muodossa esim. "15:27" (15min 27s), syke lyöntiä/min esim "138". Paina "Compute Rslts" -nappia.
4. Saat kaksi lukua: "Aerob.Index" kertoo yleisen aerobisen kuntosi, kyvyn ottaa hengitysilmasta happea ja kuljettaa se lihassoluihin. Mitä pienempi luku sen parempi. Se on ikäänkuin verrannollinen suoritusaikaan.
5. "AnAerob.Index" kertoo kykysi hyödyntää lihaksissasi anaerobista tehontuottoa, eli kyvyn rutistaa se paras vauhti, loppukiri ym. Mitä suurempi, sen parempi.

Työkalu mahdollistaa kuntosi tilan seurannan: (jos käytät indeksejä graafisesti koordinaatteina) missä kohtaa 2D-avaruudessa (aero/anaero) olet nyt menossa ja kun merkkaat luvut harjoituspäiväkirjaasi näet kehittymisvauhtisi. Voit lisäksi verrata lukuja esim kilpailutuloksiin (jos olet kilpaileva aktiivikuntoilija) niin opit ennustamaan saavutuksessi ja optimoimaan vauhtisi kykyjesi mukaan.

"Have fun!"

lauantai 23. tammikuuta 2010

Globaalin talouden superuhka

Keskustelusta sähköpostilistalla löysin viittauksen Martin Fordin kirjaan “The Lights In The Tunnel”. Tuli kiire hankkia kirja, koska en aikaisemmin ollut kuullut lähteestä, joka hieman perustellummin kuin minä itse, formuloisi high-tech automation ja kulutuskysynnän välistä globaalia yhteyttä. Tosin olen kyllä todennut, että insinööriympäristössä uhan vakavuus myönnetään ja ymmärretään, toisin kuin ekonomistien keskuudessa. Martin Ford on itse insinööri ja yrittäjä. Vaikka kirja on helppolukuisesti kirjoitettu, on se painavaa asiaa, ja niin olisi meille kaikille kohtalonkysymys, että esimerkiksi Jyrki Kataisen ja Olli Rehnin soisi ehdottomasti lukevan ja ymmärtävän tämän sanoman.

Kirjan ydin sisältö on ekonomistien uskonkappaleen “luddiitti harhan” (Luddite fallacy). osoittaminen vaaralliseksi harhaksi. Siis uskonkappale on itse harhaa ja “neoluddittinen” ajatusmalli on perusteltu: ekonomistit on vaarallisella tavalla väärässä.

Ekonomistien uskonkappale on perusmuodossaan seuraava: “Työvoimaa korvaava uusi teknologia lisää työn tuottavutta työntekijää kohti. Siten tavaroiden ja palveluiden tuotanto kasvaa, josta seuraa tuotantokustannusten laskeminen, hintojen putominen ja kysynnän kasvu. Lopputuloksena työntekijöiden tarve liike-elämässä kasvaa, eikä vähene.” Oleellista uskonkappaleelle on, että asetelman uskotaan pätevän “maailman tappiin asti”, lopullisena ekomistisena muuttumattomana totuutena. Ekonomistien väitteen mukaan tekninen kehitys kyllä hävittää työpaikkoja ja ammattiryhmiä, mutta luo enemmän aivan uusia työpaikkoja ja kokonaan uusia ammatteja, siten että työllisyyden kannalta lopputulos on aina, pysyvästi positiivinen, “taloustieteen” todistuksen mukaan.

Martin Ford toteaa, että jos katsotaan taaksepäin, haetaan vertailuaineistoa historiasta, ekonomistien teoria saa vahvaa näyttöä, sitä vahvempaa, mitä kauemmas katsotaan. Mutta jos tarkastellaan aivan paria viime vuosikymmentä, näyttö on huomattavasti huonompi. Ford käy läpi USA:n ammattitilastoja eikä löydä oleellista vahvistusta teorialle, jos verrataan esim 1930-luvun ja nykyhetken maailmaa. Uusia ammattiryhmiä on tullut, mutta ne ovat olleet työllisyysvaikutukseltaan vähäisiä, ohimeneviä ilmiöitä tai paikallisia. Klassiset vastaväitteet “neuluddismia” kohtaan ovatkin olleet luokkaa: “hevoskuskien ammatti on kadonnut, mutta tilalle on tullut rekkakuskien, bussinkuljettajien, rautatieläisten ja ilmailualan työllisyys”. Väite on hyvin totta, mutta on paljon vaikeampaa löytää vastaava esimerkki parin viime vuosikymmenen kehityksestä. Sellaisia ei joko ole, tai ne ovat globaalissa mitassa marginaalisia. Silti teknologian kehitys leikkaa työpaikkoja kiihtyvällä vauhdilla. Vastaukseksi ei kelpaa, että ne uudet työpaikat syntyvät Kiinaan ja Intiaan. Näin yksinkertaisesti ei ole asia.

Ford korostaa sitä minunkin esittämääni, ja useimpien insinöörien selvästi havaitsemaa ja tunnustamaa (mutta ekonomistien vähättelemää) seikkaa, että teknologian kehitys on luonteeltaan vahvasti eksponentiaalista. Jos ekonomistien hypoteesi kehityksestä, tuottavuuden parantumisesta, hintojen laskusta, kysynnän kasvusta ja uusien työpaikkojen synnystä on mallinnettu ryhmänä differentiaaliyhtälöitä (onko jossakin todella näin tehty?), teknologian kehityksen eksponentiaalista luonnetta ei varmasti ole huomioitu! Tästä johtuen hypoteesin väite asiantilan pysyvyydestä on vahvasti uskonvarainen ja ilmeisen väärä. Siis jossakin vaiheessa, ei kovin kaukaisessa tulevaisuudessa, tulee tilanne, jossa parantuneen tuottavuuden aikaansaama kysynnään kasvu ei enään ylitä sitä kysynnän, ostovoiman pudotusta, joka on seurausta työllisyyden negatiivisesta kehityksestä. Jossakin teknologisen kehityksen vaiheessa tuottavuuskoneisto tarvitsee niin vähän ihmistyövoimaa, että tasapainotila vaihtuu itseään ruokkivaksi globaaliksi talousromahdukseksi.

Nykyisen tilanteen analysointi, koskien Kiinan ja Intian kaltaisten kehittyvien talousvoimien luonnetta osoittaa, että romahduskynnys voi jo olla vaarallisen lähellä. Tämä johtuu siitä, että Kiinan ja Intian liike-elämän jatkuvuus on hyvin voimakkasti länsimaiden kuluttajien ostovoimasta riippuvaista. Näiden valtioiden omien keskiluokkien ostokyky ei lähellekään riitä ylläpitämään näiden talousalueiden tasapainotilaa, kasvusta puhumattakaan. Nykyinen talouskrisi pakottaa nämä maat entisestään parantamaan tuottavuuttaan, eli hyödyntämään kaikin mahdollisin tavoin teknologian kehitystä. Tämä kehitys hidastaa näiden maiden omien kansalaisten ostovoiman kehitystä leikaten palkkojen kasvua ja uusien työpaikkojen syntymistä näissä maissa. Osa työpaikoista onkin valumassa Intiasta ja Kiinasta vielä halvemman työvoiman (vielä raaemman orjatyövoiman) maihin. Mutta maapallo on rajallinen. Yhä halvempaa (ihmis-) työvoimaa ei loputtomiin löydy.

Ford tuo esiin sen näkymän, että automaation kehitys ei koske ainostaan yksinkertaisissa tuotantotehtävissä olevaa työvoimaa, vaan näköpiirissä olevassa tulevaisuudessa myös hyvin koulutettua, ammatikseen “bittitietoa käsittelevää” työvoimaa. Vielä tässä vaiheessa näitä tehtäviä ulkoistetaan länsimaista esim. Intiaan ja Kiinaan (josta osaavin työvoimaa valuu länteen suurempien palkkojen toivossa), mutta kehitys ei pysähdy. Kehittynyt automaattinen bittitiedon käsittely on lopulta halvempaa kuin missään ihmistyövoimalla suoritettuna. Parhaassa turvassa, mutta vain väliaikaisesti, ovat ne ammattilaiset, joiden tehtävät vaativat tiedollisen osaamisen, kädentaitojen ja näköhavaintojen vaativaa yhdistämistä (esim. remonttimiehet, autonkorjaajat, erikoissairaanhoitajat).

On todella pelottavaa, jos tieteellistekninen kehitys katkeaa tällaiseen globaaliin superkriisiin. Siksi olisi erittäin kiire, että kaikki päättäjät ymmärtäisivät tilanteen ja uhat sekä ryhtyisivät viivyttelemättä varautumaan vähiin jäljelläoleviin, mutta asenteellisesti vaikeisiin keinoihin katastrofin välttämiseksi.