sunnuntai 17. lokakuuta 2010

Kiihdytin ei-symboliselle koneajattelulle

Lähes kaikki esitetyt arkkitehtuurit Yleisen Tekoälyn toteuttamiseksi edellyttävät symbolisen, semanttisen tiedon ja ei-symbolisen tiedon käsittelyn ja esittämisen erottamista toisistaan. Semanttisen, symbolisen tiedon esittäminen erilaisina verkkorakenteina, graafeina on luontevaa ja tehokasta perinteisiä ohjelmointitekniikoita soveltaen. Tavallisen suoritintekniikan kehittyminen multicore-, moniydinsuuntaan tuo tähän käytäntöön lisää tehoa lähivuosien kuluessa.

Semanttisesta tiedosta poiketen ei-symbolisen tiedon esittäminen ja käsittely on ongelmallisempaa. Luonteva lähestymissuunta on ollut, ja ovat edelleen "bioinspiroituneet" hermoverkkoalgoritmit, joista on laaja kokemus useiden vuosikymmenien ajalta. Mutta silloin kun tavoitteena olisi toteuttaa ihmissuorituskyvyn luokkaa olevia yleisen tekoälyn ratkaisuja, tavallinen näkemys on, että hermoverkkoalgoritmit ovat tehottomia, valtavasti suoritinkapasiteettia kuluttavia järjestelmiä. Hermoverkkoesityksessä niin tietämys kuin toiminnallisuuskin on hajantuneesti jakautuneena laajalle joukolle laskenta- ja muistiyksiköitä: neurooneja. Tämä esitapa edellyttää luonnostaan rinnakkaisuutta ja sen tarvitseman suuren yhteyslinkkimäärän ylläpito ohjemallisesti on hyvin raskasta.

Esitän ratkaisuksi laitteistotasolla toimivaa (vastakohtana ohjelmalliselle toteutukselle) kiihdytintä, jossa neuronien ja niiden ryhmien väliset yhteydet korvataan ohjelmistotoiminnallisuutta edullisemmilla, pääosin kiinteillä HW-ratkaisuilla.

Neurologian kehittyessä on ilmeisen ratkaisevaksi toiminnalliseksi yksiköksi paljastunut aivokuoren "cortical column", jonka monimutkaisuus on suuruusluokkaa 10000 neuronia. Oleellista on, että näyttää siltä, että ihmisaivojen muutama miljoonaa "kolumnia" (muutama 10 miljardia neuroonia) sisältävät kaikki suunnilleen saman perustoiminnallisuuden, joka yksilöllisesti ohjelmoituu, hienosäätyy yksilön kehityksen ja oppimisen seurauksena. Tämän toiminnallisuuden täyden tietellisen ymmärryksen saavuttaminen on vielä kesken, mutta jo nyt tekoälypiireissä on laaja kiinnostus soveltaa tämänhetkisiä, hyvin uskottavia teorioita aivokuoren ja kolumnien funktionaalisuudesta. Minulle tutuimpia tapauksia ovat Jeff Hawkinsin HTM ja Harri Valpolan vastaava ZenRobotics-arkkitehtuuri. Molemmissa kolumneja vastaavat yksiköt toimivat hierarkioina.

Esitän kolumnin funktionaalisuudeksi (hyvin yksinkertaistetusti) kykyä havaita sekä staattisia, että sekventiaalisia hahmoja antureilta tai toisista kolumneista saapuvista tuloistaan ja sen mukaan välittää havaitun staattisen tai temporaalisen hahmon koodi hierarkiassa ylöspäin. Muita funktionaalisuuksia on esim. poikkeavuuksien havaitseminen ja raportointi hierarkiassa sekä ylös- että alaspäin, samoin kuin sekvenssien jatkumistavan ennustaminen. Tämä oli siis hyvin karkea yksinkertaistus, ei mitenkään tyhjentävä kuvaus kolumneista.

Minun nyt esittämini ratkaisumalli ei-symbolisen konemielen tehokkaaksi toteuttamiseksi on luoda HW-kiihdytin, joka:

1. Toteuttaa yhden kolumnin abstraktin toiminnallisuuden HW-tasolla, laajaan sisäistä rinnakkaisuutta hyödyntäen. Toteutuksen ei tarvitse olla erityisen "biouskollinen".
2. Sisältää muistirakenteet esim tuhannen kolumnin yksilölliselle tietosisällölle, muuttujille.
3. Kykenee esim. suorittamaan yhden diskreetin (ulkomaailman suhteen) toiminnallisen kierroksen 1us:n aikana, vaihtaen sitten kolumniyksilön datalohkoja. Siten kaikkien tuhannen kolumnin tila voidaan päivittää 1ms:n välein (tai ehkä nopeamminkin), vastaten ihmisen aivokuoren suorituskykyä. Yhden kierroksen tulokset, kolumnien lähdöt, puskuroidaan muiden kolumnien tuloihin, datarakenteisiin, ja otetaan kaikki kerralla, synkronisesti käyttöön 1ms:n jaksoissa.

Piirikokonaisuus sisältäisi kymmeniä tuhansia laskureita, tilakoneita, aritmeettisloogisia yksiköitä ja erillismuisteja. Viimeksimainittujen ylimmät 10 osoitebittiä olisivat multipleksattuja kulloinkin valittuna olevan, yhden tuhannesta kolumnin koodin mukaan. Täten "kontekstinvaihto" sujuisi noin yhdessä kellojaksossa. Jos logiikan kellotaajuus olisi 1GHz, kolumnin tilan päivittämiseen jäisi 1000 kellojaksoa, joiden kuvittelisin rinnakkaisuuden ansiosta riittävän varsin hyvin.

Näitä tuhannen kolumnin emulaattoreita voidaan integroida teknologiasta riippuva määrä yhdelle piipalalle, esim kymmeniä, satoja tai tuhansia ja yhdistää kolumnien välisesti sarjaväyläkommunikaatiota käyttäen, rinnakkaisena HW-toteutuksena.

Esittämäni toteutustapa olisi tuhansia kertoja tehokkaampi kuin mikään ohjelmallinen toteutus mielivaltaisen tehokkaalla moniydinsuorittimilla. Jos yhdellä piipalalla olisi esim 1000 kolumniemulaattoria (jotka siis yhdessä emuloisivat miljoonaa kolumnia), ne vastaisivat 10 miljardia neuroonia. Tällainen piiri voisi olla toteutettavissa vaikkapa 15v kuluttua. Kymmenen emulaatorin piiri voisi olla todellisuutta hyvinkin pian ja sovellettavissa älykkäissä roboteissa.

Esitän yllä kuvatun lähestymistavan mm. siksi, että siten torjun, vaikeutan asiaa koskevia, turhia kehitystä hidastavia patentteja. Nythän tässä kuvattu ajatus on julkinen ja sellaisenaan patentoimiskelvoton, kun se esitetään blogissani (ellei vastaavaa jo ole patentoitu aikaisemmin). Tiedän, että aihepiiriin liittyviä muita patentteja on olemassa.

lauantai 16. lokakuuta 2010

Hieno robottikilpailu

"The Semantic Robot Vision Challenge" on kilpailu, jossa lyhyesti selostettuna kilpailevat robotit saavat tekstimuotoisen luettelon fyysisistä esineistä. Sen jälkeen roboteilla on nettiyhteys käytössään, jota käyttäen niiden tulee etsiä netistä kuvia esineistä, yleistää, generalisoida kunkin esinetyypin oleellisin ja mallintaa tiedot jatkokäyttöön. Sitten nettiyhteys katkaistaan ja robotti pääsee huoneeseen, jossa esineet löytyvät, isot esineet lattialla, pienemmät huonekalujen päällä. Robotin tehtävänä on navigoida huoneessa ja tunnistaa esineet. Näyttää siltä, että neljät vuotuiset kilpailut on jo takana, ja tehtävät tietysti vaikeentuvat vuosittain. Haasteena on suunnitelmallinen navigointi huoneessa, konenäkö, semanttinen ymmärrys ja eteenkin mallin rakentaminen surffauslöydösten pohjalta. Haastavaa! Ja vie varmasti esim. kotirobottien tuotekehitystä eteenpäin.

torstai 16. syyskuuta 2010

Demokratiaviikon ajatuksia

Menossa on Demokratiajuhlaviikko. Suomen YK-liiton sivuilla

todetaan, että "toimiva demokratia on ennakkoedellytys sosiaalisesti oikeudenmukaiselle ja kestävälle kehitykselle". "Sosiaalinen oikeudenmukaisuus", "kestävä kehitys" - kyllä, ehkä nämä ovat tärkeimpiä syitä demokraattisten menettelytapojen toteuttamiseen. Valtio ilman demokratiaa ei useimmiten ole kansalaisten kesken sosiaalisesti oikeudenmukainen eikä sen kehitys ole pitkällä aikavälillä kestävällä pohjalla. Tästä voimme yksinkertaisesti päätellä, että esim. Kiinalla on isoja vaikeuksia edessään. Kiinasta ei voi tulla maailman mahtavinta valtiota niinkuin sen johtajat uskovat.

Miksi toimivan valtion hallinto pitää perustua demokratiaan? Syynä on teknisten tieteiden erittäin hyvin tuntema takaisinkytkentäperiaate. Takaisinkytkentää, feedback, sovelletaan yksinkertaisimmillaan esim. termostaattien toiminnassa. Voidaan ajatella, että jostakin saadaan tietää, esim kokeilemalla, millä teholla jotakin tilaa on lämmitettävä, ja sitten tämä tieto riittää, tarkistusmittauksia ei enään tarvita. Tämä on "feed forward -säätöä", "eteenpäinkytkentää". Tätä esim Kiinan hallitus harrastaa. He tietävät mitä kansa tarvitsee: kansalta ei tarvitse kysyä mitään, kansalaisten mielenilmaisut voidaan vaikka kriminalisoida. Tekniikan osaajat tietävät, että hiukankin monimutkaisempi järjestelmä toimii aina huonosti pelkän feed forward -säädön varassa. Eiköhän yli miljardin kansalaisen jättiläisvaltio ole hyvin monimutkainen järjestelmä.

Toimiva demokratia kierrättää hallinnolle palautteen valtakunnan tilasta, hallinnollisten toimenpiteiden, lainsäädännön ja tavoitteidenasettelun laadusta. Mutta, tekniikan ammattilaiset tietävät, että toimiakseen on takaisinkytkentäsilmukan oltava tiivis, ajallisesti nopea! Onko kerran neljässä vuodessa tapahtuva eduskuntavaali tällainen toimiva säätösilmukka. Se toimii, jotenkuten, mutta tuskin optimaalisesti.

Maailmassa on valtioita, jotka eksplisiittisesti torjuvat demokratian. Näitä ovat esim. Pohjois-Korea, Kiina ja Burma. Sitten on valtioita, joissa demokratia on näennäistä, pelkkää teatteria, aito takaisinkytkentä on katkaistu, esim. eliminoimalla opposition toiminta. Näitä valtiota ovat esim. kutakuinkin kaikki muslimivaltiot (joista jotkut kuuluvat ensimmäiseen ryhmään) ja Venäjä. Jäljelle jää valtioita, joissa aidosti yritetään toteuttaa demokraattisia periaatteita, mutta joissa kaikissa toteutus on enemmän tai vähemmän puutteellista. Näiden tapausten joukkoon kuuluvat esim Intia, USA, Ruotsi ja Suomi.

Demokratian toimivuuteen vaikuttaa oleellisen vapaan tiedonvälityksen lisäksi myös kansan koulutus- ja sivistystaso. Maassa, jossa lukutaito ei ole itsestäänselvyys, esim Intiassa (ja jopa USA:ssa!), demokratia voi toimia vain puuttellisesti. Puutteellisilla perustiedoilla varustettuja kansalaisia on helppo johtaa harhaan.

Demokratia assosioidaan väärin tasavalta-periaatteen kanssa. Toimiva demokratia ei edellytä yhtäläisiä valtaoikeuksia, eikä edes toimi parhaiten tasavalta-periaatteen vallitessa. Lisäksi tasavalta-periaate on aina harhaa: todellisuudessa edustuksellinen demokratia pudottaa siltä kuitenkin perustan. Hallitsevalla eliitillä on paljon enemmän valtaa, kuin tasavalta-periaate edellyttäisi. Miksi siis ei voitaisi ottaa lusikkaa kauniisen käteen, myöntää tilanne, ja toteuttaa toimivampi takaisinkytkentä tuomalla demokratiaan "meritokratiaa", antamalla enemmän valtaa kansalaisille, joilla on näyttö paremmasta ymmärryksestä? Näyttö voitaisiin toteuttaa esim. kaikille avoimena kaksi- tai kolmivaiheisena tutkintona, joka antaisi lisää äänivaltaa vaaleissa. Olen aivan varma, että takaisinkytkentä parantuisi ilman, että esim. yhteiskunnallinen oikeudenmukaisuus vaarantuisi. Samoin tutkinto motivoisi useimpia parempaan yhteiskunnallisten asioiden seurantaan. Vai voisiko olla, että tämä olisi nykyisen valtaeliitin mielestä liian vaarallista?

Toinen korjattava piirre demokratiassa on edellä mainittu säätösilmukan nopeus. Esim. antamalla äänivaltaisille (ymmärtäväisille ja vastuullisille) kansalaisille mahdollisuus muuttaa ääniään kesken vaalikauden, saataisiin silmukkaan ratkaisevasti nopeutta ja säätöä, demokratiaa merkittävästi parannettua. Tietoteknisillä toteutuksilla tähän varmasti päästäisiin kohtuullisella vaivalla.

Voisiko Suomi tavoitella "rauhanturvaamisen suurvallan" aseman lisäksi "demokratian mallimaan" statusta?

tiistai 31. elokuuta 2010

Suomalaiset kognitiivisten robottiaivojen arkkitehtuurit v. 2010

STeP 2010-tapahtumassa (Suomen Tekoälyseuran konferenssi) kaksi mielenkiintoisinta esiintyjää olivat professorit Harri Valpola ja Pentti Haikonen. Molemmat esittelivät omia versioitaan kognitiivisten robottien arkkitehtuureiksi. Eroa näissä on keskenään hyvin paljon. Haikonen tosin keskittyi demoamaan välituloksia, hänen protorobossaan on jo henkeä.
http://www.youtube.com/user/PenHaiko

Yhteistä Valpolan (Aalto Yliopisto ja ZenRobotics Ltd) ja Haikosen (University of Illinois at Springfield) näkemyksille on lähinnä ainoastaan se, että molemmat katsovat oman arkkitehtuurinsa rakentuvan biologisista järjestelmistä omaksutuille perusteille, muuten ne sitten ovatkin hyvin erilaisia. Haikosen arkkitehtuuri esitellään hänen kirjassaan: "Robot Brains, Circuits and Systems for Conscious Machines" (2007). Valpola kertoi esityksessään, että paras kuvaus hänen työryhmänsä arkkitehtuurista on Antti Yli-Krekolan diplomityössä:
http://www.lce.hut.fi/~aylikrek/AnttiYKdippa.pdf

Haikonen korostaa, että "maailman suora kokeminen" edellyttää "suoria HW-ratkaisuja": "The requirements for the direct perception of the world and the seamless integration would seem to call for special way of perception and information representation. Here the traditional way of information representation of the artificial intelligence , the representation of information as statements of formal language is rejected. Instead associative nonnumeric neural networks, distributed representations and cognitive architectures are investigated as the solution".

Haikonen esittelee kirjassaan melko yksityiskohtaisia piiriratkaisuja arkkitehtuurinsa neuroverkkojen perustaksi, mutta toistaiseksi minulle on jäänyt hieman hämäräksi arkkitehtuurin toiminnallinen "big picture". Koitan sulatella lisää..

Valpola (ja Yli-Krekola) sen sijaan liikkuu minulle tutummilla aivojen neokorteksin hierarkiseen rakenteeseen perustuvassa toiminnallisuudessa. Joutuu todella keskittymään yrittäessään erottaa Valpola-Yli-Krekola- arkkitehtuurin Jeff Hawkinsin HTM-arkkitehtuurista, niin samanlaisia nämä ovat. Kun tietää, että molemmat, ZenRobotics ja Numenta tähtäävät kaupallisiin sovelluksiin niin patenttisota voi olla edessä..

Sekä HTM, että Valpolan arkkitehtuuri perustuvat hierarkiaan ja aistidatan jalostumiseen hierarkiassa kerros-kerrokselta yhä korkeammiksi abstraktiotasoiksi, lopulta semanttisiksi mielikuviksi (tuo loppu oli minun ilmaisuani). Molemmat käyttävät kilpailevaa tunnistamista, ja hierarkiassa ylhäältä alas vastavirtaan kulkevia, asiayhteyden mukaisia, tunnistamista helpottavia arvauksia. Se missä minä näen eron, on että Hawkins korostaa hahmojen sekvenssiluonnetta (kyllä Yli-Krekolakin asian mainitsee, ikäänkuin ohimennen) ja Yli-Krekola korostaa keskittynyttä, valikoivaa, emergenttiä tarkkaavaisuutta (attention) sekä tarkaavaisuuden ja oppimisen yhteyttä, jatkuvaa oppimista.

Yksityiskohtaisessa toteutuksessa (jotka ovat firmojen suljettua tietoa) molemmat aivojen kuorikerroksen toiminnallisuutta mukailevat järjestelmät eroavat varmasti toisistaan ja ulkoiselle uteliaalle käytettävissä olevien tietojen pohjalta ei liene mahdollista tehdä tarkkaa erittelyä järjestelmien todellisista eroista. Numentalla on kuulemma asiakkuuksia sotilaallisten tiedustelusateliittien hahmontunnistuksissa ja ZenRobotics tavoittelee sekajätteiden liukuhihnalajittelusovelluksia, joissa jono robotteja poimii nopeasti etenevältä hihnalta erityyppisiä jäteklimppejä konenäön avulla. Ehkä erilaiset sovellusalueet estävät turhat patenttiriidat, näin toivon.

Haikosen kokeilut näen akateemisena perustutkimuksena, joiden löydöt ja ideat jäävät muiden hyödynnettäviksi. Minä yritän vielä syventyä sekä Haikosen että Valpolan ajatusmaailmoihin, muitakaan tahoja unohtamatta. Kognitiivinen taso, joka linkittää aistitiedon semanttiseen tasoon, suorittaa semanttisen ymmärryksen maadoittamisen, on erittäin todennäköisesti useimmiten (eteenkin konenäössä) järkevintä toteuttaa aivojen kuorikerrosta mukailevalla hierarkisten modulitasojen rakenteena. Tästä on tuskin kellään vakavasti otettavaa eriävää mielipidettä.

On hienoa, että suomalainen robotiikkatutkimus on mukana aivan alan tärkeimpien kysymysten ratkaisemisessa!

maanantai 23. elokuuta 2010

Kuuluuko asiaton vihamielisyys tieteeseen?

"There he goes again, making up nonsense and making ridiculous claims that have no relationship to reality. Ray Kurzweil must be able to spin out a good line of bafflegab, because he seems to have the tech media convinced that he's a genius, when he's actually just another Deepak Chopra for the computer science cognoscenti."


Prof. PZ Myers haukkuu blogissaan
http://scienceblogs.com/pharyngula/2010/08/ray_kurzweil_does_not_understa.php
Ray Kurzweilia ja minun ymmärtääkseni Myers teeskentelee olemalla ymmärtämättä Kurzweilin perusteita. Myers väittää:

"Here's how that math works, Kurzweil explains: The design of the brain is in the genome. The human genome has three billion base pairs or six billion bits, which is about 800 million bytes before compression, he says. Eliminating redundancies and applying loss-less compression, that information can be compressed into about 50 million bytes, according to Kurzweil.

About half of that is the brain, which comes down to 25 million bytes, or a million lines of code."


Tämä oli siis Kurzweilin melko selkeästi esitetty väite. Minä ymmärsin sen, vaikka en olekaan PhD. Mutta Myers on käsittävinään sen väärin:

"See that sentence I put in red up there? That's his fundamental premise, and it is utterly false. Kurzweil knows nothing about how the brain works. It's design is not encoded in the genome: what's in the genome is a collection of molecular tools wrapped up in bits of conditional logic, the regulatory part of the genome, that makes cells responsive to interactions with a complex environment."


Ei Kurzweil väittänyt, että genomi sisältää valmiiden aivojen täyden, yksityiskohtaisen suunnitelman. Tottakai hän tietää, että valmiiden aivojen 100 miljardia neoronia ja niiden väliset yhteydet, ym, eivät ole kuvattavissa genomin alle miljardilla tavulla. Olisi naurettavaa edes olettaa Kurzweilin menevän näin halpaan. Olen aika varma, että myös Myers sen tajuaa. Mutta jostakin syystä hän haluaa nolata, vaikka valheella, olkinuken rakentamalla Kurzweilin tai ehkä nimenomaan Kurzweilin mission. Miksi? Uskonnollisen vakaumuksensa vuoksi?

Se mitä Kurzweil todella väittää, on että genomissa on kaikki sen "tiedollinen siemen", minkä aivot tarvitsevat voidakseen sisäisen ja ulkoisen vuorovaikutuksensa, oppimisensa kautta kehittyäkseen aikuisen ihmisen aivoiksi, joiden todellista teoreettista informaatiosisältöä Kurzweil on useasti haarukoinut kirjoissaan. Rinnastaessaan genomin ja tavoitellun tietokonekoodin rivimäärän koon, 25MB, Kurzweil käyttää epäsuorasti algoritmisen informaatioteorian Kolmogrov-monimutkaisuuden käsitettä. Uskon, että neurologina Myers kyllä tuntee asian. Kurzweil siis toteaa että miljoonalla ohjelmarivillä olisi teoreettisesti mahdollista kuvata mekanismi, jonka voi ympäristön avulla opettaa ihmisenkaltaiseksi älyksi. Myers ei edes yritä keskustella tästä, vaan vie hänelle ilmeisen vastenmielisen aiheen aidon poliitikon tapaan hakoteille: rakentaa olkinuken, jonka vahingoniloisesti polttaa.

Kuuluuko tällainen asenne tieteeseen?

lauantai 21. elokuuta 2010

Kuka äänestää Piraattipuoluetta?

Suomen Piraattipuolue on ensi kertaa mukana seuraavissa vaaleissa. Noin yleisesti ottaen, sarkastisesta nimestään huolimatta se ajaa pääasiassa hyviä asioita. Kolme pääteemaa ovat sananvapaus, tekijänoikeudet ja niiden erikoisalueena patenttijärjestelmä.

1. "Oikeus yksityisyyteen." "Kansalaisten säännönmukainen, laajamittainen valvonta johtaa vääjäämättä väärinkäytöksiin."
"Viestintäsalaisuuden tason eli viestinnän luottamuksellisuuden, yksityisyyden ja nimettömyyden takeiden tulee olla samoja sähköisessä ja muussa viestinnässä. "
"On vastustettava voimakkaasti pyrkimyksiä rajoittaa sananvapautta yhteiskunnassa. Valtioiden harjoittama internetin sensurointi pitää lopettaa. Teleyritysten ei tule rajoittaa verkon käyttöä. Palveluntarjoajia ei pidä asettaa vastuuseen palvelun käyttäjien tekemisistä."

2. "Nykyinen tekijänoikeusjärjestelmä ei suojaa luovien taiteilijoiden toimeentuloa. Tekijänoikeudet haittaavat myös tieteellisen kirjallisuuden ja tutkimustulosten leviämistä. Tekijänoikeuden aiheuttamiin haittoihin on puututtava. Tietoyhteiskunta ei kehity tietoa panttaamalla."
"Kulttuurin arvo kasvaa jaettaessa, jolloin kasvavat myös taiteilijan mahdollisuudet ansaita kulttuuria tuottamalla."
"Tiedostonjakamista ei tule rajoittaa, eikä siitä pidä rangaista, vaan siihen tulee kannustaa. Piraattipuolue vastustaa laajakaistaveroa ja haluaa lakkauttaa kasettimaksut."
"Kenenkään luovan taiteilijan ei tarvitse ansaita rahaa luomuksellaan seitsemänkymmentä vuotta kuolemansa jälkeen."
"Kaupallisen kopioinnin ja käytön tekijänoikeussuoja lyhennettävä 5–10 vuoteen hyödykkeen julkaisusta."
"Kaiken teosten epäkaupallisen kopioinnin, levittämisen ja muun käytön on oltava vapaata teoksen luomishetkestä lähtien."

3. "Nykyisen patenttijärjestelmän yhteiskunnalle aiheuttamille taloudellisille ja juridisille rasitteille ei ole perusteita kehittyvässä markkinataloudessa. Patentit eivät nykypäivänä juurikaan suojaa yksittäisen keksijäneron keksintöä. Patentteja käytetään ennemminkin pienyrittäjien toiminnan tukahduttamiseen."
"Ohjelmistopatentit ajavat ainoastaan patenttilakimiesten ja suuryritysten etua."

Olen n. 90% puolueen ohjelman sisällön kannattaja. Ei, en kannata tekijänoikeuksien alaisten tuotteiden järjestelmällistä kopiointia. Mutta ehdottomasti vastustan yksityisten kansalaisten keskinäisen tietoliikenteen sisältöön puuttumista mistään muista syistä kuin vakavista rikoksista (terrorismi, väkivalta, kiristykset, vakavat talousrikokset) epäiltäessä. Tekijänoikeuksien alaisten teosten siirto ei kuulu tähän ryhmään, paitsi ehkä, jos se tapahtuu ansaitsemistarkoituksessa.

Puolueen ohjelman vakava puute on se, että puolue ei esitä konkreettisiä ratkaisuja aineettomien teosten tekijöiden taloudellisten oikeuksien turvaamiseksi, vaan tyytyy vähättelemään ongelmaa.

Mutta samaa mieltä olen esim. tekijänoikeuksien järjettömän pitkistä kestoista ja patenttijärjestelmän mädännäisyydesta.

Kuitenkin puolueen hölmöin ratkaisu, joka vesittää kaiken: puolue jättäytyy tietoisesti "yhdenasianliikkeeksi", eli jättää ehdokkailleen vapaat mielipiteet yli 99% eduskuntatyöstä, siis kaikkeen puolueohjelman ulkopuolisiin asioihin. Puolue siis etsii äänestäjikseen ihmisiä, joille muu yhteiskunnan asioiden hoitaminen on yhdentekevää. Tällaisia minun näkökulmani mukaan löytyy vain niistä, jotka ilman piraattipuoluetta jättäisivät äänestämättä. Heitä voi olla, mutta onko tarpeeksi? Vaikka kannatan puolueen ajamia tavoitteita, en voi äänestää sen ehdokkaita.

Jotta joku puolue voitaisiin ottaa vakavasti, sillä täytyy olla ideologia: ajatusrakennelma, joka johtaa kaikki tavoitteet yleisistä, julkisista perusarvoista ja jolla on looginen teoria arvojen toteuttamiseksi. Totta, useimmilla puolueilla ei ole selvää ideologiaa. Minusta tuntuu, että Suomessa sellainen on vain Kokoomuksella ja Vihreillä. Muut ovat enemmän tai vähemmän vain valtaa tavoittelevia eturyhmäpuolueita tai yhdenasianliikeitä.

sunnuntai 2. toukokuuta 2010

Uusi, paha imperiumi ärähtelee?

"Vanha, paha imperiumi", Microsoft on kriisissä. Ehkä sielläkin on tajuttu, että PC-ohjelmistoliiketoiminnan perusta vahvana voiton tuottajana ja jatkuvan kasvun turvaajana on luhistumassa. Tällä bisneksellä on 5-10v elinaikaa. Perustan nakertajina ovat mobiiliviestintä ja (hieman kiistanalaisesti) "cloud computing", pilviprosessointi.
Mikä on uuden asetelman valtias, uusi imperiumi? Kotoinen Nokiamme yrittää ottaa osansa, mutta silmiin pistävämpää on Applen agressiivisyys. Onko Apple uusi, paha imperiumi, joka pyrkii nujertamaan kilpailun ja kaikin mahdollisin keinoin kaventamaan kuluttajien valinnanvapautta niiltä osin kuin sille itselle on edullisinta? Minusta näyttää siltä. Apple ei koskaan ole ole ollut millään mittarilla avoimen tietojenkäsittelyn kannattaja. Se on ollut aina, häviöllä ollessankin, suljetumpi kuin kilpailijansa. Jobs on varmasti todennut, että Mac ei ole tulevaisuuden rahasampo: kasvu on haettava muualta ja kyynerpäät on pidettävä terävinä.
Uusi keskustelu Jobsin ärhentelystä Abodelle paljastaa pelin henkeä. Jobsin tekosyyt Flashin teknisistä puutteista ja jopa avoimuuden puutteesta (!!!!) tuskin ovat todellinen motiivi. Todellinen ärtymisen syy lienee se, että Flash ja Abode yleensäkin tukevat "cross platform" kehitystä. Siitä ei uudeksi imperiumiksi tähtäävä Apple alkuunkaan pidä.

Pitäkää silmät auki!

"Steve Jobs believes he's gambling Apple's future on an all-or-nothing push into a new market"

keskiviikko 28. huhtikuuta 2010

Propeller-mikrokontrolleri

Kuten olen jo kertonut ( lojban-blogi ) olen alkanut kehittää tutkimusympäristöä käsitteellisen ajattelun, "alisymbolisen ajattelun" ja aistihavaintojen välisen suhteen luonteen selvittämiseski. Tutkimusympäristö on pieni, itsekseen liikkuva ja ympäristöään aistiva robotti. Homma jakaantuu selvästi kahteen erilliseen kehityskohteeseen:
1. Robotti, sen mekaniikka, elektroniikka ja ohjelmisto.
2. Pieni ARM-pohjainen linux-kortti, jossa toimii varsinainen "ajatteleva ohjelmisto".

Koska en halua kovasti panostaa kohtaan 1., valitsin kehityksen lähtökohdaksi mielestäni parhaan valmiin perustan tarjoavan, kohtuuhintaisen robotti-rakennussarjan: Parallaxin Stingray.

Mutta koska laitteisto on kiinnostava ja Stingrayn P8X32A, Propeller, mikro-ohjain hyvin poikkeuksellinen ja jopa edistyksellinen, lienee parasta kertoa lähemmin mistä on kysymys ja mitä olen oppinut. Stingray-robotti on "keskikokoinen" harrastelijarobotti. Pienimmät ovat nyrkinkokoisia (viivanseurantakoneita) ja suurimmat lastenvaunujen kokoisia. Stingray on n. 28x37cm ja 15cm korkea. Siinä on kahden DC-moottorin differentiaalikäyttö (kuten esim pölyimuriroboteissa), ei siis kääntyviä pyöriä kuten RC-autoissa (joita myös harkitsin pohjaksi). Ohjainkortti sisältää jänniteregulaattorit, kaksois-H-siltamoottorinohjaimen, sarja-EEPROM-muistin, USB-liitäntäpiirin (IDE-liitäntä), rinnakkais-IO-puskurit ja tietysti P8X32A-mikro-ohjaimen. DC-moottoreille on siis suoraan liittimet ja 24 bittiä digitaalista IO:ta mahdollistaa erilaisten antureiden (esim ultraääni-sonarit) ja toimilaitteiden (esim servot) melko ongelmattoman sähköisen liittämisen. Tarvittava ohjelmisto on oma tarinansa.

P8X32A-Propeller-mikro-ohjain sisältää kahdeksan 32-bittistä suoritinta ja 36 ktavua RAM-muistia, johon ohjelma ladataan, joko suoraan ulkoiselta USB-väylältä (UART-välivaiheen kautta), tai EEPROM-muistista. Kahdeksan suoritinta toimivat eräänalisessa symmetrisessä SMP-arkkitehtuurissa. Niillä on pieni oma muisti ja yhteinen isompi muisti. Keskinäinen kommunikointi tapahtuu yhteisen muistin, IO:n kautta tapahtuvan synkronoinnin ja semaforilogikan avulla. Tämä ei ole ihan helppoa sille, joka ei ole rinnakkaisajatteluun tottunut. Mutta opettavaista on!

Erikoista suorittimissa on, että niillä ei ole perinteisiä keskeytyksiä: jokaisessa suorittimessa voi toimia vain yksi taski, ohjelmasäie. Mutta ohjelman ei tarvitse pollata mitään, vaan asettua odottamaan jotakin tapahtumaa, ajanhetkeä tai IO-muutosta. Konsepti on outo, mutta toimiva: reaaliaikavaste on todella nopea, ja kahdeksalla suorittimella pääsee niin pitkälle kuin pienehköllä muistillakin: kokoonpano on melko tasapainoinen.

P8X32A-mikro-ohjainta voi ohjelmoida (päävaihtoehto) SPIN-skriptikielellä, assemblyllä tai C:llä. C-ympäristöä en ole kokeillut. SPIN-tulkki syö aika paljon suorittimien tehosta, mutta säästää muistia ja se merkitsee minulle. SPIN on olioperustainen, ei oikea olio-orientoitunut kieli: siis esim periytymistä ei tueta, mutta luokkia ja niiden instansseja kyllä.

Stingray-robotti, P8X32A-mikro-ohjain ja SPIN-ohjelmointikieli olisivat erinomainen tapa päästä alkuun ohjelmointi- ja robottiharrastelussa, oppia ja sisäistää heti alkuun kaksi hyvin tärkeää asiaa: olioajattelu ja rinnakkaisajattelu. Multicore-toteutukset ovat lähitulevaisuuden keskeinen haaste). Siis myös oppilaitoksiin ympäristö sopisi loistavasti. Mutta nopeiden, rinnakkaisten ajoitusten ohjelmointi ei ole helppoa ja minä totesin pian tarvitsevani apua. Simulaattori olisi kova juttu, mutta kun sellaista ei ole tarjolla, ostin 16-bittisen Zeroplus-logiikka-analysaattorin. Se on edullinen USB-liitännäinen, PC:tä käyttöliitäntänään käyttävä laatikko. Siitä on ollut merkittävä apu esim. moottoreiden PWM-ohjauksen ja ultraääni-sonarin ohjauksen toteutuksessa.

Näyttää nyt siltä, että minulla on melko pian projektisuunnitelman mukainen robotin "aivorunko", matelijanaivot tavoitteen mukaisessa kunnossa ja voin vielä hieman leikkiä esim toteuttamalla jonkinlaisen yksinkertaisen SLAM-algoritmin SPIN-kielellä ja siten hankkia kokemusta todellisen "alisymbolisen mallin" myöhäisempää toteuttamista varten.

lauantai 17. huhtikuuta 2010

Avaruusteknologian mielekkyys

Amerikan Yhdysvaltojen hötkyilevä avaruustutkimus herättää monissa ihmisissä tunteita. 60-luvulla käytiin kiihkeä, kustannuksissa tinkimätön kylmänsodanhenkinen kuukilpa. 70-80-luvuilla saatiin tuskan, hien ja ihmisuhrien kautta toteutetuksi teknisesti ontuva sukkulajärjestelmä, joka on palvellut kohtuullisesti, mutta suurin kustannuksin, kahta pahaa onnettomuutta lukuunottamatta. Taustalla on monta aloitettua lupaavaa seuraavan sukupolven järjestelmän kehitystä, jotka kaikki on kuitenkin aina hyllytetty hallitusten vaihtuessa. Nyt kun 40v takaista teknologiaa ollaan museoimassa, ilman että korvaavaa olisi kehitetty ajoissa, etsitään syyllistä. Kun Obama hyllytti kummallisen Constellation-hankkeen, monet tuntuvat syyttävän tilanteesta häntä.
Vastapainoksi miehitettyjen avaruuslentojen pysähtyneisyyden aikakaudelle, miehittämättömien planettaluotainten tasaisesti jatkuva edistys on tuottanut upeita tuloksia, hienoa ymmärrystä aurinkokunnastamme ja maailmankaikkeudesta laajemminkin.
Sekä EU:n että Venäjän avaruustoiminta on ollut melko matalaprofiilista, mutta miehittämättömien luotainten teknologia on molemmilla hiljalleen parantunut.

Miksi?

Miksi avaruusteknologia on tärkeää, eikä rahan tuhlausta? Jos et ole elämänarvoiltasi kyyninen, itsekeskeinen kvarttaalikapitalisti tai vastaava, vaan arvostat tietoisuutta itseisarvoisena ilmiönä maailmankaikkeudessa, silloin tietoisen elämän säilyttäminen kauas ennakoimattomaan tulevaisuuteen on sinulle myös itseisarvoista. Avaruusteknologialla on minulle kaksi tavoitetta:

1. Hankkia tärkeää tietoa maailmakaikkeuden olemuksesta, olosuhteista, joissa biologinen elämämme joutuu jatkossakin toimimaan.
2. Mahdollistaa joskus kauempana tulevaisuudessa tietoisen elämän jatkuminen muuallakin kuin maapallon pinnalla. Tietoisuus on arvokas ilmiö maailmankaikkeudessa ja paremmassa turvassa, jos se on levinnyt laajalle kaikkeuteen, myös toisiin aurinkokuntiin.

Miten?

Hötkyileminen on turhaa. Avaruusteknologian kehityksen on oltava erittäin pitkäjänteistä. Tärkeämpää on teknologian kehitys, kuin lyhytnäköiset näyttävät tempaukset. Constellation-projekti edusti viimeksimainittuja, siksi sen lopettaminen tuhlauksena oli terve aloite Obamalta. Tärkeää on kehittää teknologiaa, jonka avulla avaruusmatkailusta tulee kohtuuhintaista rutiinia. Kertakäyttöteknologiasta on päästävä eroon. Miehitetyt avaruuslennot voidaan edelleen pitää minimissään, kunnes maasta päästään ylös kiertoradalle merkittävästi nykyistä halvemmalla. Obaman ajatus ohjata seuraavaksi tämä toiminta yksityisille yrityksille on järkevä liike.

Hieman pidemmällä aikavälillä rakettitekniikasta keinona nousta maasta kiertoradalle on kokonaan luovuttava. Tilalle on otettava käyttöön avaruushissit. Mutta niitä joudutaan odottamaan vielä useita vuosikymmeniä, toivottavasti ei paljon yli 30v ajan. Ratkaisevana välitavoitteena on laadukkaan hiilinanoputken teollinen massavalmistus. Jos se on mahdollista esim. v.2030, niin ensimmäinen avaruushissi voi olla käytössä 10v tämän jälkeen, siis v.2040.

Miten kauemmaksi?

Maan kiertoradalle noustaan tulevaisuudessa siis hissillä, mutta miten lennetään aurinkokunnan sisällä planeetalta toiselle? Matkat kestävät pitkään ja miehistö on mm. alttiina painovoimattomuuden rappeuttavalle vaikutukselle ja avaruussäteilylle. Ratkaisu molempiin näihin ja muihinkin ongelmiin on suuren, jatkuvaan käyttöön tarkoitetun planeettaristelijän valmistaminen. On koottavava maan kiertoradalle suuri, valtamerilaivan kokoinen ristelilijä, jossa on pyörimisliikkeellä luotu keinopainovoima ja riittän paksut säteilyltä suojaavat seinät. Myös magneettista suojausta varautuneilta hiukkasilta voidaan käyttää. Tällainen risteilijä ei koskaan laskeudu mihinkään, ehkä pieniä kuita ja asteroideja lukuunottamatta, vaan laskeutumiseen käytetään aina hissejä tai pieniä sukkuloita. Aluksen käyttöikä voisi olla satoja vuosia, teknologiaa aina välillä parantaen. Alkuvaiheessa propulsiomenetelminä voisi olla yhdistelmä kemiallisia raketteja, ionopropulsiota ja aurinkopurjeita.

Todennäköisesti Obama ei tällä: "By 2025, we expect new spacecraft designed for long journeys to allow us to begin the first-ever crewed missions beyond the Moon into deep space." tarkoittanut ihan sitä kuin minä edellä (2025 on hieman liian aikaisin), mutta ehkä jotakin sinnepäin, ehkä uudelleenkäytettävää avaruusristelijää, joka ei laskeudu minnekään, vaikkakaan ei vielä valtamerilaivan kokoista. Ainakin tästä voisi niin päätellä: "What we're looking for is not just to continue on the same path; we want to leap into the future. We want major breakthroughs, a transformative agenda for NASA."

Muihin aurinkokuntiin?

Minun visiossani yksittäinen fyysinen ihminen ei koskaan poistu aurinkokunnasta. Näihin ylipitkiin, ehkä vuosituhansia kestäviin matkoihin käytetään robotiikkaa ja biologisena rahtina voi olla kryonisesti säilöttyjä alkioita tai vain sähköisesti tallennettua DNA-materiaalia. Ihmisyksilö voi osallistua matkaan "uploadina", digitaalisesti taltiotuna ihmismielenä.
Tärkeintä on, että tietoinen elämä, biologinen ja keinotekoinen, saadaan siirrettyä turvaan maapallon vaaroilta, sitten kun tehtävä on mahdollinen.

torstai 15. huhtikuuta 2010

Androidi avaruuteen

NASA lähettää viimeisellä sukkulalennolla Kansainväliselle Avaruusasemalle androidirobottiproton R2-robonautin (ei siis R2D2). Tarkoituksena on testata roboa oikeissa työolosuhteissa, painottomuudessa ja kosmiselle säteilylle herkistettynä. Robotti käy läpi testiohjelmia ja saa uusia HW- ja SW-päivityksiä testjaksojen kuluessa.
NASA on pyytänyt kolme miljardia 2011 alkavalle viisivuotisjaksolle androidirobottien kehittämiseen. Androidit tulevat keskuuteemme, avaruuteen ja maan pinnalle. Sukkula-aikakauden loppu on robonauttien aikakauden alku.
Tässä toinen vanhempi uutinen R2:sta.
Ja aivan varmasti robonauttikehitys vauhdittaa myös maanpäällisten androidien ja yleensäkin tekoälyn kehitystä. Hyvä juttu. Keep listening.

lauantai 27. maaliskuuta 2010

Robotiikan perspektiivejä

Tämä kirjoitus on taas yritys luoda laajempaa kuvaa siitä, mihin teknologia parinkymmenen vuoden perspektiivillä on ehkä menossa robotiikan osalta. Robotiikka on siitä syystä strateginen alue, että robotit ovat aina suoraan kilpailleet työmarkkinoilla ihmisduunareiden kanssa. Jo 60-luvulta alkaen on pelätty robotiikan olevan uhka ihmisten työllisyydelle. Vaikka robotit ovatkin korvanneet liukuhihnatyötä laajalti, niin ensinnä robottien kyvyllinen rajoittuneisuus ja joustamattomuus ja toiseksi markkinoiden jatkuva kasvu ovat toistaiseksi estäneet tämänsuuntaisen työttömyyden merkittävän eskaloitumisen. Kehitys on tuudittanut ekomisteja ja yhteiskunnallisia päättäjiä uskoon, että asetelma ei tule muuttumaan. Mutta onkahan asia näin. Missä nyt mennään?

Minun käsitykseni on se, että robotiikassa ollaan tällä hetkellä suunnilleen samassa tilanteessa kuin 1970-luvun alussa tietokonetekniikassa. Silloin takana oli pari vuosikymmentä rauhallista tietokonealan kasvua suurkoneiden ("mainframe") hallitessa alaa. Nämä suurkoneet olivat jotenkin vastaavalla kalliita ja kömpelöitä kuin tähän asti totutut teollisuusrobotit: hyödyllisiä, mutta hyvin kalliita ja rajoittuneita.

Tietojenkäsittelyssä asetelman muuttivat radikaalisti 70-luvun kuluessa minitietokoneet. Vaikka ne eivät olleetkaan riittävän halpoja henkilökohtaiseen käytöön, jokaisella keskisuurella yrityksellä oli pian varaa omaan minitietokoneeseen. Minitietokoneiden käyttöjärjestelmät olivat kehittyneempiä kuin suurkoneiden vastaavat. Henkiin jääneistä minikoneiden käyttöjärjestelmistä tunnetaan parhaiten Unix ja sen PC-aikakauden seuraajat. Minikoneet siis olivat vallankumous tietokonetekniikassa ja hyvin lyhyellä, n. vuosikymmenen aikajänteellä viitoittivat tietä seuraavalle, PC-vallankumoukselle.

Minä uskon, että robotiikan "minivallankumous" on muutaman vuoden sisällä alkamassa! Signaaleita tilanteesta on paljon, mutta esittelen vain yhden. Willow Garagen "PR2" saattaa olla robottien "PDP11".

Siinä missä PDP-11 esitteli markkinoille Unix-käyttöjärjestelmän, PR2 käyttää robotiikkaan erikoistunutta ROS-käyttöjärjestelmää (joka luonnollisesti perustuu Unix-sukuun). PR2:n tietokoneessa on kahdeksanytiminen Xeon prosessori ja 24 gigaa keskusmuistia. Robotilla on useita videokameroita ja muuta anturointia. Sen käsivarsien tehokas tartuntajärjestelmä mahdollistaa erilaisten, kovien, pehmeiden, haurauden ym kappaleiden helpon käsittelyn. Luonnollisesti PR2 on liikkuva.

Mutta ennenkaikkea koko järjestelmä, ohjelmistosta mekaniikkaan, on avoin, mahdollistaen sovelluskohtaisen muuntelun ja laajennettavuuden. Siihen voidaan asentaa uutta anturointia, uusia tarttujia, uutta liikkuvuutta, uusia ohjelmistoajureita ym. aivan kuten PC-tietokoneisiin. Tällainen täytyy lähitulevaisuuden menestyvän robotin olla: avoin, jo sellaisenaan käyttökelpoinen, mutta laajennettava järjestelmä.

PR2 on kuitenkin tuottavaan ammattikäyttöön tarkoitettu robotti, ei henkilökohtainen robotti. Se vastaa siis vielä 70-luvun minikoneita. Joustavuudeltaan se voisi esim sopia supermarkettiin liikkumaan kaupan hyllyjen välissä ja täydentämään hyllystön tavaravalikoimaa. Isolla marketilla olisi siihen varaa. Se tekisi ehkä viiden työntekijän työt, 24/7 tyyliin, ja maksaisi itsensä ehkä parissa vuodessa.

Samoin kuten minikoneista oli lyhyt teknologinen matka henkilökohtaisiin tietokoneisiin, myös PR2 ja sen kilpailijat viitoittavat tietä n. kymmenen vuotta niiden jälkeen tuleviin henkilökohtaisiin yleisrobotteihin, jotka ovat pienempiä, kehittyneempiä ja halvempia kuin PR2. Ensimmäiset todelliset kotien yleisrobotit ehkä tulevat markkinoille 2020-luvun alkuvuosina. Ne ovat vielä vastaavalla tavalla rajoitettuja kuin 1980-luvun PC:t, Amigat, Atarit ja Kottaraisenpönttö-Macit, mutta siitä se alkaa. Monille ne jo riittävät. Minulla oli aikoinaan Atari-ST.

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.