perjantai 2. huhtikuuta 2010

Puuhastelu robotin kanssa alkoi

Kuten tämän blogini ja toisen blogini viimeaikaisista kirjoituksista on voinut uumoilla, olen nyt alkanut puuhastella oman robottiprojektini kimpussa. Tilasin UK:sta pienen harrasterobotti-kitin, Stingrayn. Tavoitteenani on suunnata lojban-harrastelu, ainakin väliaikaisesti, robottiharrasteluksi. Asia liittyy tuohon "maadoittamishöpinään". Itse asiassa tuon "Kiinalainen huone" (tai "Lojbanistanilainen huone") pohdiskelu vaivaa niin, että haluan ihan konkreettisesti tutkia juttua lähemmin. Ja kivaahan tässä on se, että tällainen iso pikkupoika leikkii ihan mielellään konkreettisella lelulla :)

Olen jo tammikuusta alkaen väsännyt pikkurobotille yläontologiaa. Se on väsyttävää, joten haluan vaihteeksi tehdää hommaa vastakkaisesta laidasta. Siksi tuli mielihalu ostaa tuo robotti. Aloitin kokonaishomman kirjoittamalla aika yksityiskohtaisen projektisuunnitelman. Se on tuo PDF-tiedosto Upload-sivun alalaidassa, robottihakemistossa: Projektisuunnitelma.pdf Se on kirjoitettu itselleni, mutta myös jokaiselle uteliaalle. Kommentit tervetuliaita.

lauantai 20. helmikuuta 2010

Toisessa blogissani

Kirjoitin toiselle blogilleni pitkähkön artikkelin, joka olisi voinut tulla tännekin, mutta kun se nyt ei ollut lojbanista, niin valitsin toisin.

lauantai 16. tammikuuta 2010

Lisää lojbanistanilaisen huoneen maadottamisesta.

Semanttisen, käsitteellistä symbolimanipulointia harrastavan konemielen osan ”maadoittaminen”, käsitteiden linkittäminen reaalimaailman vastineisiin aistihavaintojen kautta, ollakseen todellisuudessa käyttökelpoisia, ei ole niin suoraviivaista, että aistihavaintojen hahmot vain vain aktivoivat käsitteitä ja käsitteet motorisia toimintoja. Olen vakuuttunut, että maadoituksen toteuttaminen on ehdottomasti läheisesti yhdistettävä toiseen haasteelliseen kognitiiviseen toiminnallisuuteen, alisymboliseen ”common sense” ajatteluun.

Alisymboliseen ”common sense” ajattelu on kaikilla kognitiivisillä järjestelmillä, eteenkin biologisilla eläimillä, toiminnallisuus, joka reaaliaikaisesti mallintaa maailmaa, erityisesti laatii ennusteita mahdollisista lähiympäristön olotilojen muutoksista. Nisäkkäillä tästä toiminnallisuudesta vastaa aivokuori, neocortex. Jeff Hawkinsin HTM, Hierarchical temporal memory, kuvaa havainnollisesti tämän mekanismin. Koneälyssä voidaan soveltaa HTM-periaatetta, mutta se ei ole ainoa mahdollisuus. Voisi hyvin kuvitella käytettävän esim. jotakin pelimoottoria. Näin tehdäänkin, esim. SOAR-arkkitehtuuriin perustuva ADAPT (Adaptive Dynanics an Active Perception) robotti käyttää Ogre3D-pelimoottoria vastaavan tarkoitukseen.

Common sense -äly on ongelma siksi, että sen tarvitsema tietämys on erilaista kuin käsitteellinen tieto. Periaatteessa myös kaikki tämä alisymbolinen tieto voidaan esittää käsitteellisesti, symbolisesti, mutta hyötysuhde on äärimmäisen huono ja tiedon syöttäminen toivoton urakka. Vaikka alisymbolista tietoa yritettäisiin opettaa, tiedon induktiivinen muuntaminen symboliseen muotoon automaattisesti on tehtävä, joka ei nykyisellä osaamisella oikein ole mahdollista. Yleinen johtopäätös on, että alisymbolinen tieto on esitettävä ja käsiteltävä konnektionistisiä menetelmiä, kuten HTM-verkkoja ja neuroverkkoja soveltaen, muuttamatta sitä symboliseen muotoon muualla kuin alisymbolisen älyn ja käsitteellisen älyn rajapinnassa.

Common sense -äly sisältää siis kaiken sen yksityiskohtaisen ymmärryksen siitä, miten maailma on hierarkisesti rakentunut ja miten se toimii missäkin erityistilanteessa. Esimerkiksi sen, että autot pysyvät yleensä ajoradalla liikkuessaan, liikkuminen käynnistyy kiihdytyksellä, jolloin vauhti kasvaa, ja pysähdystä edeltää hidastuminen, jolloin ajoneuvon vauhti hidastuu. Tällaisia detaljeja, ja erityisesti vielä useaa astetta yksityiskohtaisempia, on kömpelöä syöttää käsitteellisesti. Samoin tieto siitä, mitenpäin kahvikupin on oltava, kun sinne kaadetaan kahvia, millaisella otteella ja voimalla erilaisiin esineisiin, esim tomaattiin, kananmunaan tai betonilaattaan tartutaan on common sense -osaamista. Mutta ehkä tärkein osa alisymbolista toiminnallisuutta on tilanteiden hyvin lyhyen aikavälin, ja pidempienkin, ennustaminen, koska siihen perustuu reagoimista edellyttävien poikkeavuuksien havaitseminen ja yksinkertaistenkin motoristen toimintasuunnitelmien laatiminen. Kognitiivinen järjestelmä taltioi vanhat alisymboliset kokemukset ja laatii suunnitelmia uudessa tilanteessa kokeilemalla vanhoja sekventiaalisia hahmoja, toimintoja, korjaamalla tavoitteesta poikkeavuudet sisäisen simuloinnin tuloksena ja laatimalla parempia ehdotuksia.

Alisymbolinen toiminnallisuus sisältää siis toiminnallisen mallin, simulaation ulkoisesta, aistein havaittavasta maailmasta ja sen lainalaisuuksta. Tämän mallin hetkellistilaa, nykyhetkeä yleensä päivitetään koko ajan aistihavaintojen perusteella. Mutta joskus aistit voidaan sulkea, ja kuvitella, viedä simulontia paljon nykyhetkeä kauemmaksi tai jopa alustaa simuloinnin lähtötilanne nykyhetkestä poikkeavaksi. Näitä tapauksia voi kutsua vaikka valveuniksi. Semanttinen äly voi käyttää tätä järjestestelmää siten, että toiminnallisuuksien rajapintaan, symbolisen ja alisymbolisen mielen väliin, toteutaan erikoinen tarkkailija, sisäinen näkijä, havainnoija, jolla on kyky, valta ohjata mallin aika-akselia, esim kelata simuloidun mallin sisäistä aikaa eteenpäin, ja joskus myös taaksepäin.

Nyt ollaan hyvin lähellä tietoisuuden olemusta! Nimittäin sisäinen malli maailmasta voi sisältää myös olion, robotin itsensä osana maailmaa. Tällöin ohjatessaan itsensä mallia simulaatiomaailmassa, robotti, olio on ainakin jossakin suhteessa tietoinen itsestään. En mitenkään väitä, että robotti kokisi vastaavan ”Minä Olen!” tunteen, jonka ihminen saattaa kokea, mutta toiminnallisuuden kannalta sillä ei ole väliä. Samoin ”sisäinen näkijä”, agentti ei välttämättä, eikä todennäköisesti näe eikä koe itseään, se kokee vain robotin ulkoisen olemuksen osana maailmaa. Siksi ei synny mitään rekursiivista paradoksia yhä uusista sisäisen näkemisen tasoista.



Tämä ”sisäinen näkijä” (myös kuulija, tuntija) on tärkeä osaa käsitteiden maadoitusta. Semanttisen mielen käsitteiden aktivoituminen käynnistyy juuri tämä agentin kautta. Agentti tunnistaa ailisymbolisen simulaation hahmoja ja tilanteita sekä ”mäppää” ne semanttisen käsiteverkon objekteihin. Semanttinen verkko voi myös ohjata tätä agenttia käynnistämään haluttuja simulaatioita ja niiden kautta ulkoisia, motorisia toimintoja.

keskiviikko 6. tammikuuta 2010

Lojbanin soveltaminen robotiikassa

Olen yrittänyt pienen Suomen Robottiyhdistyksen (SRY) keskustelusivustolla herättää polemiikkia käsitteellisen ajattelun toteuttamisesta harrastetason robotissa lojban-semantiikkaa soveltaen.
Tein asiasta lyhyen esityksen yhdistyksen sivuille:

SemanticRobo.pdf

perjantai 25. joulukuuta 2009

Androidirobotilla olisi kysyntää

Minulla on yli 80-vuotiaat, kotona kahdestaan elävät vanhemmat. Isäni on muuten ikäisekseen kohtuullisen terve, mutta huono polvi rajoittaa liikkumista merkittävästi. Äitini on täysin kyvytön omatoimiseen liikkumiseen. Hän tarvitsee apua kaikkeen, sängystä, rullatuolista nousemiseen, vessassa asioimiseen ym. Hän on siis täysin isäni, toisen ei kovin hyväkuntoisen vanhuksen varassa ja tämä ympärivuorokautinen auttajana toiminen on isälleni kovin raskasta.

Nyky-Suomessa ei ole reaalista ratkaisua sille, että vanhuksien kotona asumista voitaisiin tukea vuorokauden ympäri, seitsemän päivää viikossa. Nuoremmat omaisetkin voivat auttaa vain rajoitetusti, vaikka asuisivat lähelläkin, jos ovat itse työelämässä. Yhteiskunnan kallis ja tunnetun puutteellisesti toimiva ratkaisu on laitoshoito, ja sitä useimmat vanhukset ymmärrettävästi kammoavat viimeiseen asti. Lisäksi laitoshoito on yhteiskunnalle hyvin kallista.

Tarvittaisiin siis kotiolosuhteisiin luontevasti sopeutuva, väsymätön, rajattoman huomaavainen ja kohtelias, vahva ja monipuoliseen apuun kykenevä kotiapulainen. Sellaisia oli varakkailla entisaikaan, ehkä nykyäänkin. Ratkaisuksi tavallisten vanhojen ihmisten tulevaisuuden kotiavuksi minä arvostan suuresti sitä kansallista positiivista, realistista asennetta ja tuotekehitystä, jota japanilaiset ja korealaiset tekevät androidirobottien kehittämiseksi. Androidirobotti ei ilmeisestikään ehdi valmiiksi tuotteeksi auttamaan vanhempiani, mutta meille seuraaville sukupolville näen sen ihanteellisena ratkaisuna vanhustenhoidon toteuttamiseksi.

Tällä hetkellä messuilla esitellään sieviä, mutta kömpelön oloisia androidien prototyyppejä,
joiden kognitiiviset kyvyt ovat kaukana siitä "common sense" -ymmärryksestä, jota kotona toimivalta yleiskäyttöiseltä auttajalta edellytetään ja fyysiset kyvyt ovat täysin riittämättömiä. Menee varmasti runsaat kymmenen vuotta ennenkuin käyttökelpoinen, oppiva, verbaalisesti kommunikoiva, fyysisesti kätevä ihmismuotoinen kotirobotti on markkinoilla. Vastaväitteeksi tällaisella ratkaisulle tuskin kelpaavat kustannukset, koska jo tällä hetkellä vaihtoehtona olevan laitoshoidon päiväkustannukset hoidettavaa kohti ovat todella korkeat. Kotihoito tuettuna androidirobotilla olisi erittäin todennäköisesti huomattavasti edullisempaa yhteiskunnalle kuin nykyisenkaltainen laitoshoito. Tietysti myös laitoshoidon tasoa voidaan parantaa ja kustannuksia pienentää ottamalla androidit ihmishenkilöstön avuksi ja tueksi, sitten kun tekniikka on kypsää.

Edellä kertomistani syistä humanistiset motiivit kannustavat edistämään kaikin mahdollisin keinoin robotiikan ja tekoälyn kehitystä. Minun ymmärrykseni mukaan lojban-kieleen perustava semanttinen teknologia mahdollistaa merkittävän oikotien tavoiteltaessa asiakkaiden kanssa luonnollisilla kielillä, esim suomeksi kommunikoivaa tekoälyä. Kotihoitaja-androidin älykkyys ei ilmeisesti tarvitse olla aidosti kaikilta osin "ihmisentasoista". Mm. kielitaidoksi riittää radikaalisti yksinkertaistettu, töksähtelevä "selkokieli". Androidin hallitseman sanaston koko ei ole ongelma, se voi olla mielivaltaisen suuri, mutta luonnollisten kielten monimutkaisella tavalla epäformaalit lauserakenteet vaativat hyvin kehittynyttä älyä. Siksi lojban sopii erinomaisesti robotin "äidinkieleksi", koska sitä käyttäen voidaan määritellä käytännössä mielivaltaisen monimutkaisia asiantilojen rakenteita, ajatuksia. Käytännön toiminnan edellyttämä rajoitetumpi luonnollisen kielen hallinta voidaan toteutta lojban-taidon "päälle", siten että luonnollisen kielen sanasto ja rakenteet määritellään lojban-perustaisella käsitekartalla.

sunnuntai 13. joulukuuta 2009

Lojbanistanilaisen huoneen maadoitus

Vaikka olenkin tällä hetkellä edelleen keskittynyt henkilökohtaisen lojban-osaamisen reaalisointiin, lähinnä sanaston opiskeluun, ihan päivittäin, ajatukseni kulkeutuvat usein "horisontin taakse". Olen henkisesti sitoutunut jatkamaan chatbot-sovellukseni jatkamista. Sovelluksen ensimmäinen päävaihe, en nyt puhu pienemmistä välitavoitteesta, on saavuttaa kyky tallentaa lojbaniksi vastaanotettua tietoa semanttiseksi "maailmankuvaksi" ja akuutin keskustelun hetkellistilaksi. Lisäksi oleellinen on sovelluksen kyky vastata kysymyksiin ja jopa tehdä spontaaneja omia kysymyksiä ja kommentteja.

En pidä tätä tavoitetta minään todellisena, edes periaatteessa AGI-tasoista tekoälyä lähentelevänä koneymmärryksen tasona. Sovelluksen osaaminen olisi vain semanttista symboolimanipulointia ilman todellista ymmärrystä. Searlen "Kiinalainen huone" ajatuskokeen kritiikki iskisi suoraan sovelluksen rajoittuneisuuteen. Botin "ajattelu" olisi vain ohjelman datarakenteiden aktivoitumista ilman pienintäkään tajuntaa siitä todellisuudesta, mihin semanttiset rakenteet viittaavat.

Mutta reaalisen aikatauluhorisontin takana, silti mielen haaveilun tavoitettavissa, siintää ajatus botin ymmärryksen "maadoittamisesta", joko virtuaalitodellisuuteen, reaalimaalimaan, tai molempiin. Edelleen rationaalisesti hylkään unelman kurkoittaa siihen tavoitteeseen, jonka saavuttamista minua paremmalla teoreettisella osaamisella ja muilla resulsseilla varustetut tohtoritasoiset toteuttajat ovat yrittäneet ja toistaiseksi epäonnistuneet. Minulla ei ole edes teoriassa rahkeita oikeaan Yleisen Tekoälyn, AGIn tavoitteluun. Mutta silti, voisiko aidon semanttisen tietämyskannan hallintaan ja lojban-tasoiseen kommunikointiin kykenevän botin maailmankuvan "maadoittaa" esim robotiikan avulla reaalisiin aistihavaintoihin ja toimintaan? Voisiko kohtuullisella vaivalla laajentaa botin osaamisen robottiaivoiksi, jotka kykenevät havaitsemaan reaalitodellisuuden ja rakentamaan "ymmärryksen sillan" semanttisen tietämyksen ja aistihavaintojen välille?

Nämä ajatukset ovat oikeastaan syntyneet Roomba-pölyimurin pseudoälykästä touhuilua seuratessa. Vaikka en luonnollisesti tunnekaan iRobot-firman menestystoteutuksen 8-bittisen ohjelmiston todellista rakennetta, oletan sen perustuvan kovakoodattuihin tilakoneisiin ja sumeaan logiikkaan. "Lojbanistalilainen huone", botin aivojen metaforana edustaisi jo sinänsä kehittyneempää älyä kuin Roomban kunnioitettavan hieno "tekoäly". Joten entä jos yhdistettäisiin kaksi tämänkaltaista arkkitehtuuria, semanttinen, dynaaminen tietämys, aistihavainnot ja fyysinen toiminta? Se kuullostaisi aika paljolta! Searlen olisi jo hieman vaikempaa mitätöidä sitä!

sunnuntai 30. elokuuta 2009

Työkaluja ja oppimateriaalia

Innostuin kertaamaan uudelleen alusta pänttäysskriptilläni tuota 500:n gismun joukkoa alusta alkaen. Samalla pohdiskelin kokemuksia ja alla käytyä keskustelua. On varmasti totta, miten laadukkaasti tahansa sanojen pänttäys on ohjelmoitu ja tuettu, että sanat, lojbanin käsitteet, niiden merkitys ja todellinen käyttö ei tällä metodilla voi painua mieleen todelliseksi kielen osaamiseksi. Tarvitaan vielä jotakin muuta.

Jospa tässä tilanteessa olisi asiallisinta, että palaisin aikaisemmin kesällä aloittamaani "satunnais-bridi-generaattori" -työkalun pariin. Sain siihen jo "toiminnanoireita", mutta se jäi kesken. Työkalu muodostuu kahdesta osasta: (1) suoritettavasta koodista ja (2) isosta tekstiedostosta, joka määrittelee kullekin brivlalle mahdollisia sumteja ja niiden yhdistelmiä. Koitan tutkia, olisiko mielekästä tässä vaiheessa urakalla koota kaikki nuo aikaisemmin mainitut runsaat 500 gismua työkalun tasolla toistensa suhteen määritteleväksi mammuttirakenteeksi. Tein jo yhden sellaisen, joka määritteli n. 50 tavallisinta "oppikirjatason" gismua, joita alkeisopetuksessa käytetään. Tähän kai meni muutamia päiviä (ei "työpäiviä" sentään). 500 brivlaa on ehkä enemmän kuin kymmenkertainen urakka: minusta tuntuu, että hommassa on jonkinlainen eksponentiaalisuus mukana, vaikka mukaan otettavat sumti-mahdollisuudet ovat mielivaltainen osajoukko kaikista teoreettisesti mahdollisista.

Datarakenne sisältää periaatteessa jonkinlaisen semanttisen "maailmankuvan" komponentin. Rakenne luettelee erään ontologian mahdolliset muodot, ei ne, jotka jossakin todellisuudessa, jossakin ajassa ja paikassa vallitsevat, vaan osan niistä, ne mitkä semanttisesti ristiriidattomasti voivat vallita, esiintyä yhdessä lauserakenteessa.

Voisin kuvitella, että rakenteen laatiminen jo sellaisenaan opettaa minulle jotakin näistä gismuista. Sitten jää vielä mietittäväksi, mitä muodostettavia satunnais-brideillä voi pedagogisesti hyödyntää: opetella niitä vastavalla tavalla kuin irrallisia sanoja?