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.
perjantai 2. huhtikuuta 2010
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.
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.
Tunnisteet:
Common Sense,
Maadoitus,
robotti,
Simulaatio
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
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.
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.
Tunnisteet:
androidi,
robotti,
Vanhustenhoito
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ä!
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ä!
Tunnisteet:
Kiinalainen huone,
Robotiikka,
Searle
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?
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?
sunnuntai 9. elokuuta 2009
NLP ponnisteluita
Viime vuonna ja vielä isomman julkisuuden saavuttaneena, tänä vuonna on loppukäyttäjille ilmestynyt useita palveluita, joita mainostetaan siitä, että ne ymmärtävät luonnollisella kielellä esitettyjä, vapaamuotoisia kysymyksiä tai tehtävän asetuksia. Näistä merkittävimpiä ovat WolframAlpha ja Siri
Luonnollisen kielen todellinen ymmärtäminen, NLP (Natural Language Processing) on hyvin haastava tavoite ja tuntuisi hämmästyttävältä, jos ihan lähivuosina todella tämä päämäärä tavoitettaisiin. Eikä näiden sinänsä kahden kiinnostavan tuotteen suhteenkaan tämä käsitykseni ole horjunut. WolframAlpha ymmärtää rajoitettua "Wolfram-Tiede-Englantia": kysymystä tai tehtävää ei voi esittää mitenkään vapaamuotoisesti vaan rajoitettua "slangia" käyttäen, tähän tulokseen olen itse tullut kokeilemalla. En silti mitenkään vähättele saavutusta ja uskon tuotteen paranevan vähitellen.
Siri on älypuhelimiin tarkoitettu "virtuaalinen sihteeri", joka on erikoistunut suhteelliseen kapeaan erikoisalaan: ottamaan vastaan kaupallisia tehtäviä viihteen, kulttuurin, sekä majoitus- ja ravintolapalveluiden hankkimiseksi ja varaamiseksi. Ilmeisesti tämäkin alue laajenee vähitellen, jos ei Sirin, niin kilpailevien palveluiden toimesta.
Sinänsä olen täsmälleen samaa mieltä Sirin kehittäjien kanssa: matkapuhelimien luonnollinen kehityssuunta on henkilökohtaisen viestinnän sekä multimedia- ja navigaattoritoimintojen ohella kehittyä lopulta jonkinlaiseksi aivojemme ulkoiseksi jatkeeksi, jota "digitaalinen assistentti" pyrkii olemaan. Toivon, että myös Nokia on ottanut tämän suunnan vakavasti (itse en ole erityisen tietoinen asian tilasta).
Luonnollisen kielen koneellinen ymmärtäminen on siis lähivuosina tosiasiaa vain erityistapauksissa: hyvin yksinkertaisia lauserakenteita käyttäen ja/tai kapean erikoisalan ilmaisuja ja sanastoja käyttäen (joka sallii monimutkaisetkin ilmaukset, kunhan ne ovat "formaaleja"). Minun näkökohtani mukaan ainoa oikotie ihmisen ja koneen vapaamuotoiseen keskustelluun on lojban (tai joku siihen verrattavissa oleva kieli). Tämä tilanne todennäköisesti on voimassa arviolta seuraavan 5-15v ajan. Siispä ainakin minä olen motivoitunut jatkamaan lojban-harrastusta.
Luonnollisen kielen todellinen ymmärtäminen, NLP (Natural Language Processing) on hyvin haastava tavoite ja tuntuisi hämmästyttävältä, jos ihan lähivuosina todella tämä päämäärä tavoitettaisiin. Eikä näiden sinänsä kahden kiinnostavan tuotteen suhteenkaan tämä käsitykseni ole horjunut. WolframAlpha ymmärtää rajoitettua "Wolfram-Tiede-Englantia": kysymystä tai tehtävää ei voi esittää mitenkään vapaamuotoisesti vaan rajoitettua "slangia" käyttäen, tähän tulokseen olen itse tullut kokeilemalla. En silti mitenkään vähättele saavutusta ja uskon tuotteen paranevan vähitellen.
Siri on älypuhelimiin tarkoitettu "virtuaalinen sihteeri", joka on erikoistunut suhteelliseen kapeaan erikoisalaan: ottamaan vastaan kaupallisia tehtäviä viihteen, kulttuurin, sekä majoitus- ja ravintolapalveluiden hankkimiseksi ja varaamiseksi. Ilmeisesti tämäkin alue laajenee vähitellen, jos ei Sirin, niin kilpailevien palveluiden toimesta.
Sinänsä olen täsmälleen samaa mieltä Sirin kehittäjien kanssa: matkapuhelimien luonnollinen kehityssuunta on henkilökohtaisen viestinnän sekä multimedia- ja navigaattoritoimintojen ohella kehittyä lopulta jonkinlaiseksi aivojemme ulkoiseksi jatkeeksi, jota "digitaalinen assistentti" pyrkii olemaan. Toivon, että myös Nokia on ottanut tämän suunnan vakavasti (itse en ole erityisen tietoinen asian tilasta).
Luonnollisen kielen koneellinen ymmärtäminen on siis lähivuosina tosiasiaa vain erityistapauksissa: hyvin yksinkertaisia lauserakenteita käyttäen ja/tai kapean erikoisalan ilmaisuja ja sanastoja käyttäen (joka sallii monimutkaisetkin ilmaukset, kunhan ne ovat "formaaleja"). Minun näkökohtani mukaan ainoa oikotie ihmisen ja koneen vapaamuotoiseen keskustelluun on lojban (tai joku siihen verrattavissa oleva kieli). Tämä tilanne todennäköisesti on voimassa arviolta seuraavan 5-15v ajan. Siispä ainakin minä olen motivoitunut jatkamaan lojban-harrastusta.
torstai 6. elokuuta 2009
Päntätty sanoja
Kesäni on kulunut lojbanin osalta päntätessä sanoja tuossa alla aikaisemmin esittelemälläni python-pohjaisella sanastonopiskelutyökalulla. Olen käynyt läpi nuo laatimani 7 x 53 eli n. 500 gismua. Ainakin vähän aikaa olen siis jokaisen näistä osannut, mutta nyt olisi aika kerrata koko joukko taas uudelleen. Uusi kertaus aivan ilmeisesti olisi paljon sujuvampaa.
Samalla olen arvioinut opiskeluskriptin laatua ja löytänyt luonnollisesti parannettavaa. Suurin ongelma skriptissä on nojautuminen suoraviivaisesti pythontulkin satunnaisvalitsimeen, joka listasta poimii sanoja. Seurauksena on se, että eri sanaparit (lojban/suomi) etenevät prosessin läpi kovin vaihtelevalla nopeudella. Nopeuserosta johtuu, että vauhdilla etenevät parit tarttuvat aivokuoreni neuroneihin paljon helpommin kuin harvakseen toistuvat hitaasti etenevät, joiden kanssa tulee usein virheitä. Tätä algoritmia pitäisi parantaa.
Toinen parannusidea on lisätä prosessiin kaksi uutta vaihetta. Ensimminen niistä tulee kolmannen vaiheen jälkeen. Kolmas vaihe on monivalinta suomesta lojbaniin. Uusi neljäs vaihe laajentaisi kolmatta siten, että valittu sana on pakko kirjoittaa, siis kopioida esitetyistä vaihtoehdoista. Kirjoittaessa uusi lojbankielinen sana tarttuisi mieleen oleellisesti helpommin, kuin esittämällä vain numeron ja lausumalla sana mielessä.
Toinen uusi vaihe tulisi viimeiseksi. Siinä jo opittuja sanoja kertailtaisiin suhteellisen harvakseen, estäen niiden pikaisen unohtumisen nopean perusoppimisvaiheen jälkeen. Oppimisprosessista tulisi siis seitsenvaiheinen. Uskon prosessin olevan stressitön, innostava ja tehokas: vielä parempi kuin vanha viisivaiheinen, jota jo olen pitänyt jossakin määrin "koukuttavana".
Aikomukseni on siis kirjoittaa tämä mielestäni tärkeä työkalu uusiksi, tällä kertaa C++:lla ja Qt-kirjastoja käyttäen. Täällä tavalla saisin nytkin aikaan sekä linux- että windows-versiot samalla vaivalla.
Mutta minulla on vielä uusi taka-ajatus! Minua kiehtoo "Mindforth"-sivujen AGI-Milestones malli.
Siinä esitetään Yleisen Tekoälyn saavuttamista seuraavien vaiheiden kautta:
1. Quickening
2. Generation of Thought
3. Cognitive Chain Reaction
4. Meanderin Chain of Thought
5. Selfreferential Thought.
En selitä muita kuin ensimmäisen vaiheen. "Quickening" on vaihe, jossa SW-toteutus on taukoamatta aktiivinen, työskennellen luupissa sisäisen tilansa ja syöttömateriaalin parissa pyrkien saavuttamaan asetetun tavoitteen mukaisesti yhä paremman "kognition tason". Ohjelma ei siis ole esim. reaktiivinen: reagoi ärsykkeisiin ja toimenpiteiden jälkeen pysähtyy odottamaan uusia ärsykkeitä, vaan hellittämättä yrittää reaktiivisen käyttäytymisen lisäksi parantaa sisäistä tilaansa.
Ajattelin kokeilla sanastonopiskeluohjelmassa "quickening" -periaatetta. Opiskeluohjelmasta tulee siis jatkuvasti pyörivä, suunnitellen kokoajan uusia tehtäviä oppilaalle, analysoiden edistymistä. Kyseessä ei tietenkään ole mikään AI-sovellus, vaan AI:n pohjalla oleva ohjelmointi- "patterni".
No, olen tehnyt muutakin, josta kerron enemmän vastaisuudessa. Mutta sen verran, että olen pythonilla tehnyt "satunnaislausegeneraattoria" joka näennäisälykkäällä tavalla generoi satunnaisia, mihinkään asiayhteyteen kuulumattomia bridejä, jotka sisäisesti kuitenkin ovat mielekkäitä lauseita. Työkalua on tarkoitus käyttää opiskeluvälineenä, sanojen opiskelussa ja semanttisena kokeiluna.
Samalla olen arvioinut opiskeluskriptin laatua ja löytänyt luonnollisesti parannettavaa. Suurin ongelma skriptissä on nojautuminen suoraviivaisesti pythontulkin satunnaisvalitsimeen, joka listasta poimii sanoja. Seurauksena on se, että eri sanaparit (lojban/suomi) etenevät prosessin läpi kovin vaihtelevalla nopeudella. Nopeuserosta johtuu, että vauhdilla etenevät parit tarttuvat aivokuoreni neuroneihin paljon helpommin kuin harvakseen toistuvat hitaasti etenevät, joiden kanssa tulee usein virheitä. Tätä algoritmia pitäisi parantaa.
Toinen parannusidea on lisätä prosessiin kaksi uutta vaihetta. Ensimminen niistä tulee kolmannen vaiheen jälkeen. Kolmas vaihe on monivalinta suomesta lojbaniin. Uusi neljäs vaihe laajentaisi kolmatta siten, että valittu sana on pakko kirjoittaa, siis kopioida esitetyistä vaihtoehdoista. Kirjoittaessa uusi lojbankielinen sana tarttuisi mieleen oleellisesti helpommin, kuin esittämällä vain numeron ja lausumalla sana mielessä.
Toinen uusi vaihe tulisi viimeiseksi. Siinä jo opittuja sanoja kertailtaisiin suhteellisen harvakseen, estäen niiden pikaisen unohtumisen nopean perusoppimisvaiheen jälkeen. Oppimisprosessista tulisi siis seitsenvaiheinen. Uskon prosessin olevan stressitön, innostava ja tehokas: vielä parempi kuin vanha viisivaiheinen, jota jo olen pitänyt jossakin määrin "koukuttavana".
Aikomukseni on siis kirjoittaa tämä mielestäni tärkeä työkalu uusiksi, tällä kertaa C++:lla ja Qt-kirjastoja käyttäen. Täällä tavalla saisin nytkin aikaan sekä linux- että windows-versiot samalla vaivalla.
Mutta minulla on vielä uusi taka-ajatus! Minua kiehtoo "Mindforth"-sivujen AGI-Milestones malli.
Siinä esitetään Yleisen Tekoälyn saavuttamista seuraavien vaiheiden kautta:
1. Quickening
2. Generation of Thought
3. Cognitive Chain Reaction
4. Meanderin Chain of Thought
5. Selfreferential Thought.
En selitä muita kuin ensimmäisen vaiheen. "Quickening" on vaihe, jossa SW-toteutus on taukoamatta aktiivinen, työskennellen luupissa sisäisen tilansa ja syöttömateriaalin parissa pyrkien saavuttamaan asetetun tavoitteen mukaisesti yhä paremman "kognition tason". Ohjelma ei siis ole esim. reaktiivinen: reagoi ärsykkeisiin ja toimenpiteiden jälkeen pysähtyy odottamaan uusia ärsykkeitä, vaan hellittämättä yrittää reaktiivisen käyttäytymisen lisäksi parantaa sisäistä tilaansa.
Ajattelin kokeilla sanastonopiskeluohjelmassa "quickening" -periaatetta. Opiskeluohjelmasta tulee siis jatkuvasti pyörivä, suunnitellen kokoajan uusia tehtäviä oppilaalle, analysoiden edistymistä. Kyseessä ei tietenkään ole mikään AI-sovellus, vaan AI:n pohjalla oleva ohjelmointi- "patterni".
No, olen tehnyt muutakin, josta kerron enemmän vastaisuudessa. Mutta sen verran, että olen pythonilla tehnyt "satunnaislausegeneraattoria" joka näennäisälykkäällä tavalla generoi satunnaisia, mihinkään asiayhteyteen kuulumattomia bridejä, jotka sisäisesti kuitenkin ovat mielekkäitä lauseita. Työkalua on tarkoitus käyttää opiskeluvälineenä, sanojen opiskelussa ja semanttisena kokeiluna.
perjantai 22. toukokuuta 2009
Merkittävä NLP-hanke pian nettiin
Wolfram Alpha on saanut paljon julkisuutta. Minäkin kokeilin, mutta en ollut kovin myyty, vielä. N. kuukauden päästä on toinen, pienempi, mutta jännittävämpi projekti, "the Texai bootstrap dialog system" tulossa nettiin. Sen tarkoitus on chatbot- periaattella harjoittaa ja kehittää Texai-hankkeen englanninkielen taitoja.
Luonnollisen kielen hallinta on paljon vaativampaa kuin lojbanin hallinta. En odota vakuuttavaa suoritusta vielä vuosiin, ja siksi odotan erittäin suurella mielenkiinnolla Texain julkaisuversiota, joka siis on "vain" "bootstrap dialog system".
Mutta on todettava, että alueella tapahtuu paljon. Kerron lähiaikoina taas lisää omista lojbanissa pysyvissä kokeiluistani.
Luonnollisen kielen hallinta on paljon vaativampaa kuin lojbanin hallinta. En odota vakuuttavaa suoritusta vielä vuosiin, ja siksi odotan erittäin suurella mielenkiinnolla Texain julkaisuversiota, joka siis on "vain" "bootstrap dialog system".
Mutta on todettava, että alueella tapahtuu paljon. Kerron lähiaikoina taas lisää omista lojbanissa pysyvissä kokeiluistani.
sunnuntai 10. toukokuuta 2009
Monimuotoisuutta lojbaniin
Blogissaan Ben Goertzel ehdottaa ihmisen ja delfiinien välikieleksi "Delphic-Lojban" -kieltä, joka noudattaisi virallisen lojbanin syntaksia, mutta jonka foneettinen rakenne olisi toteutettu delfiinien äänenmuodostuksen ehdoilla.
Koska ihminen aivan ilmeisesti ei pystyisi tuottamaan "Delphic-Lojban" lauseita omalla äänenmuodostuksellaan, ihmisen olisi syntetisoitava oma keskusteluosuutensa tietokonetta käyttäen. Jos synteesin lähdekielenä olisi varsinainen lojban, tehtävä oli kohtuullisen suoraviivainen. Kaikille kielen rakenteen yksityiskohdille olisi suorat vastineensa. Samoin olisi tehtävä tulkittaessa delfiinin lausumia ilmauksia, todennäköisesti tietokonekäännös välissä olisi välttämätön.
Tätä samaa ajatusta voisi edelleen kehittää toteuttamalla virallisen, "ylikultturellisen lojbanin" lisäksi muita, suppean kielialueen lojbaneita, joissa lojbanin fonetiikka ja ehkä myös gismujen rakenteet ym. olisi korvattu kielialueelle paremmin sopivilla muoto- ja foneettisilla valinnoilla. Tällaisten lojbanin variaatioiden etuna olisi madaltaa oppimiskynnystä, mutta säilyttää lojabnin korvaamattomat ominaisuudet, sekä suora, helppo koneellinen, jopa reaaliaikainen käännettävyys lojban-variaatiosta toiseen. Tällaisia variaatiota voisivat olla:
- Euro-Lojban, Euroopan pääkielistä
- Latin-Lojban, lähteinä: italia, romania, ranska, espanja, portugali
- Slavo-Lojban, slaavilaisista kielistä
- Uralic-Lojban, omille kielisukulaisillemme
- Hindic-Lojban, Intian alueen monista kielistä yhdistettynä
- African-Lojban, Afrikan pääkielistä
- Kiina-Lojban, kiinan kielen eri versioista koottuna
- Viittoma-Lojban?
ym. Näille kielille säilysi etuna suoraviivainen käännettävyys ja siten kaikkien yhteisten resulssien käyttö, jolloin kokonaisresulssit ja lojbanin käyttäjien määrä voisi moninkertaistua.
Koska ihminen aivan ilmeisesti ei pystyisi tuottamaan "Delphic-Lojban" lauseita omalla äänenmuodostuksellaan, ihmisen olisi syntetisoitava oma keskusteluosuutensa tietokonetta käyttäen. Jos synteesin lähdekielenä olisi varsinainen lojban, tehtävä oli kohtuullisen suoraviivainen. Kaikille kielen rakenteen yksityiskohdille olisi suorat vastineensa. Samoin olisi tehtävä tulkittaessa delfiinin lausumia ilmauksia, todennäköisesti tietokonekäännös välissä olisi välttämätön.
Tätä samaa ajatusta voisi edelleen kehittää toteuttamalla virallisen, "ylikultturellisen lojbanin" lisäksi muita, suppean kielialueen lojbaneita, joissa lojbanin fonetiikka ja ehkä myös gismujen rakenteet ym. olisi korvattu kielialueelle paremmin sopivilla muoto- ja foneettisilla valinnoilla. Tällaisten lojbanin variaatioiden etuna olisi madaltaa oppimiskynnystä, mutta säilyttää lojabnin korvaamattomat ominaisuudet, sekä suora, helppo koneellinen, jopa reaaliaikainen käännettävyys lojban-variaatiosta toiseen. Tällaisia variaatiota voisivat olla:
- Euro-Lojban, Euroopan pääkielistä
- Latin-Lojban, lähteinä: italia, romania, ranska, espanja, portugali
- Slavo-Lojban, slaavilaisista kielistä
- Uralic-Lojban, omille kielisukulaisillemme
- Hindic-Lojban, Intian alueen monista kielistä yhdistettynä
- African-Lojban, Afrikan pääkielistä
- Kiina-Lojban, kiinan kielen eri versioista koottuna
- Viittoma-Lojban?
ym. Näille kielille säilysi etuna suoraviivainen käännettävyys ja siten kaikkien yhteisten resulssien käyttö, jolloin kokonaisresulssit ja lojbanin käyttäjien määrä voisi moninkertaistua.
lauantai 9. toukokuuta 2009
Uudet sanalistat
Lisäsin alla mainittulle työkalulle seitsemän uutta sanalistaa. Kävin läpi Lojban-Englanti-Lojban-sanakirjan (jonka myös lisäsin mukaan) gismut ja poimin niistä runsaat 500 itseäni miellyttävää käsitettä. Miellyttävyyden kriteerinä ovat: (1) käsitteen hyvä tuki opetuksellisille esimerkkilauseille, (2) käsitteiden kuvauskyky käytettäessä lojban-ilmaisuja "harjoitusmaailmojen" kuvaamiseen.
Jaoin nuo runsaat 500 sanaparia seitsemään runsaat 70 käsitettä sisältävään "opiskeluerään" ohjelmallisesti "korttienjakelualgoritmilla" siten, että jokainen lista käsittää tasaisesti sanoja koko lojbanin aakkosalueelta. Listojen sisällöllä ei siis ole mitään loogista rakennetta tai merkityksellistä yhteyttä, päinvastoin.
Listoja käytetään siten kuin skriptin ohjeissa kerrotaan, ajetaan ensin "init" komento jne.
Sanojen opiskelu
Jaoin nuo runsaat 500 sanaparia seitsemään runsaat 70 käsitettä sisältävään "opiskeluerään" ohjelmallisesti "korttienjakelualgoritmilla" siten, että jokainen lista käsittää tasaisesti sanoja koko lojbanin aakkosalueelta. Listojen sisällöllä ei siis ole mitään loogista rakennetta tai merkityksellistä yhteyttä, päinvastoin.
Listoja käytetään siten kuin skriptin ohjeissa kerrotaan, ajetaan ensin "init" komento jne.
Sanojen opiskelu
lauantai 25. huhtikuuta 2009
Lojban leviää Suomessa
Lambda ry järjesti keväällä lojban-kielen alkeiskurssin Helsingissä. Kurssi käsitti seitsemän oppituntia, kokeet, ja pari lisäluentoa. Kurssimateriaali, joka muodostaa selkeän alkeiskokonaisuuden lojbanista, löytyy osoitteesta Käytännön lojbania matkailijoille.
Olisi ollut mukava itsekin osallistua kurssille, mutta huomasin tilanteen kurssin jo alettua ja olihan minulla keväällä aika tiukalla. Toivottavasti osallistujat nauttivat kursista ja jatkavat lojbanin opintoja muodossa tai toisessa. Lisäksi muidenkin kannattaa ehdottomasti tutustua kurssin materiaaliin. Ja toivottavasti kurssi saa myös jatkoa.
Olisi ollut mukava itsekin osallistua kurssille, mutta huomasin tilanteen kurssin jo alettua ja olihan minulla keväällä aika tiukalla. Toivottavasti osallistujat nauttivat kursista ja jatkavat lojbanin opintoja muodossa tai toisessa. Lisäksi muidenkin kannattaa ehdottomasti tutustua kurssin materiaaliin. Ja toivottavasti kurssi saa myös jatkoa.
maanantai 20. huhtikuuta 2009
Sanastojen opiskelu
Kielitaidon opiskelun kaksi keskeistä haastetta ovat sanaston ja kieliopin opiskelu. Näiden vaikeuksien lisäksi tulevat opiskeltavalle kielelle tyypillisten sanonta- ja ajattelutapojen omaksuminen, ääntämisen vivahteet ym. Järkevä vieraiden kielten opiskelu perustuu niin paljon kuin mahdollista "luomumenetelmään", jota pikkulapsi käyttää äidinkielensä opiskeluun. Tässä menetelmässä kielen kaikki ulottuvuudet opiskellaan sisäkkäin, yhtäaikaa, soveltamalla jo opittua ja uutta aineistoa arkielämän olosuhteissa ilman, että erityisesti pyritään opiskelemaan kieltä. Lapsi, opiskelija, kuuntelee, analysoi, toistaa, soveltaa.. käyttää kieltä kulloisessakin asiayhteydessä.
Aikuisopiskelijalle luonnonmenetelmä on harvoin mahdollinen. Onneksi vaihtoehtoisetkaan menetelmät nykyaikaisilla audiovisuaalisilla apuvälineillä toteutettuina eivät paljon häviä luonnonmenetelmälle. Mutta usein kieltenopiskelijalle tulee vastaan tilanteita, joissa opiskeltavasta kielestä on olemassa todella vähän laadukasta opiskelumateriaalia. Esim. lojban-kielen suhteen tilanne on tällainen. Tällöin joutuu turvautumaan niinkin primitiiviseen menetelmään kuin raakaan sanaston pänttäämiseen.
Kehittäni "trainwords.py" -skripti on yksinkertainen työkalu sanaston opiskelemiseksi viiden asteittain vaikeutuvan vaiheen kautta. Menetelmä pyrkii madaltamaan luonnonmenetelmän tavoin oppimista hidastavaa stressiä, alentamalla uusien sanojen oppisen kynnyksiä, osaamisen siirtyessä kohteena olevan sanan osalta uudelle, vaativammalle osaamisen tasolle. Oman kokeiluni perusteella menetelmä toimii, sanat painuvat mieleen melko matalalla henkisellä ponnistuksella.
Menetelmän vaiheet ovat:
1. Esittely, esittelee sanaparin, opiskelija toistaa mielessään.
2. Monivalinta, valitse oikea suomennos kolmesta vaihtoehdosta
3. Monivalinta, valitse oikea vieraskielinen sana vaihtoehdoista
4. Anna vieraskielisen sanan suomenkielinen vastine
5. Anna suomenkielisen sanan vieraskielinen vastine
Asteittainen vaikeutuminen ei kyllä aivan toteudu ihanteellisella tavalla. 2. ja 3. vaiheet ovat lähes samaa vaikeustasoa, ainakin siirtyminen 2:lta 3:lle ei tuota ongelmia. 4.-taso on jo hieman vaikeampi, virheitä tulee silloin tällöin, mutta hyppäys 4. - 5. on selvästi prosessin vaikein.
Yksi sanapari vaeltaa järjestyksessä, opiskelun edistymisen mukaisesti, kaikki em. vaiheet läpi. Sanaston opiskelun alkua lukuuottamatta, kaikissa vaiheissa olevia sanoja on yhtä aikaa työskentelyn kohteena. Uusia sanoja lisätään esittelyvaiheeseen sitä mukaa kuin kuin tilaa vapautuu muista vaiheista. Kahdessa viimeisessä vaiheessa voidaan toteuttaa "regressio", jossa vaikea sana palautetaan edelliselle tasolle. Lopuksi, kun kaikki sanat on otettu mukaan alkuperäisestä sanastolistasta, vaikeimmiksi osoittautuneita sanoja otetaan uudelleen kertaukseksi esittelyvaiheeseen.
On parasta, että opiskelija rakentaa itse sanastonsa. Sopiva koko opiskeltavalle sanastolle on 50-120 sanaparia kerrallaan. Erityistä huomiota on kiinnitettävä homonyymien kanssa, siis suomenkielen homonyymien (lojbanissa niit ei tietenkään ole), sanojen, joilla on sama muoto, mutta eri merkitys. Siksi on välillä pakko tarkentaa sanoja yhdyssanan muodossa (minä olen käyttänyt alaviivaa).
Olen kokeillessani myös huomannut, että vaikean sanaston ollessa kyseessä, joskus on parasta aloittaa alusta, alustaa sanaston opiskelu (ohjeiden mukaan).
Tällaisessa sanojen pänttäämisessä opetellaan lojbanin sanoille suomenkielisiä vastineita, mutta sanojen todellinen semanttinen merkitys rakentuu aivoihin vasta, kun sanoja käytetään, joko lukiessa tai mieleummin aktiivisesti, kirjoittaen tai puhuen.
Python-skriptejä on kaksi, toinen paremmin testattu linux-ympäristöön ja toinen windows/cygwin-ympäristöön. Kahdella eri skriptillä oli helponta ratkaista ymäristöjen erilainen skandi-ascii-merkkien koodaus.
Työkalu löytyy uudelta apusivultani:
Sanojen Opiskelu
Aikuisopiskelijalle luonnonmenetelmä on harvoin mahdollinen. Onneksi vaihtoehtoisetkaan menetelmät nykyaikaisilla audiovisuaalisilla apuvälineillä toteutettuina eivät paljon häviä luonnonmenetelmälle. Mutta usein kieltenopiskelijalle tulee vastaan tilanteita, joissa opiskeltavasta kielestä on olemassa todella vähän laadukasta opiskelumateriaalia. Esim. lojban-kielen suhteen tilanne on tällainen. Tällöin joutuu turvautumaan niinkin primitiiviseen menetelmään kuin raakaan sanaston pänttäämiseen.
Kehittäni "trainwords.py" -skripti on yksinkertainen työkalu sanaston opiskelemiseksi viiden asteittain vaikeutuvan vaiheen kautta. Menetelmä pyrkii madaltamaan luonnonmenetelmän tavoin oppimista hidastavaa stressiä, alentamalla uusien sanojen oppisen kynnyksiä, osaamisen siirtyessä kohteena olevan sanan osalta uudelle, vaativammalle osaamisen tasolle. Oman kokeiluni perusteella menetelmä toimii, sanat painuvat mieleen melko matalalla henkisellä ponnistuksella.
Menetelmän vaiheet ovat:
1. Esittely, esittelee sanaparin, opiskelija toistaa mielessään.
2. Monivalinta, valitse oikea suomennos kolmesta vaihtoehdosta
3. Monivalinta, valitse oikea vieraskielinen sana vaihtoehdoista
4. Anna vieraskielisen sanan suomenkielinen vastine
5. Anna suomenkielisen sanan vieraskielinen vastine
Asteittainen vaikeutuminen ei kyllä aivan toteudu ihanteellisella tavalla. 2. ja 3. vaiheet ovat lähes samaa vaikeustasoa, ainakin siirtyminen 2:lta 3:lle ei tuota ongelmia. 4.-taso on jo hieman vaikeampi, virheitä tulee silloin tällöin, mutta hyppäys 4. - 5. on selvästi prosessin vaikein.
Yksi sanapari vaeltaa järjestyksessä, opiskelun edistymisen mukaisesti, kaikki em. vaiheet läpi. Sanaston opiskelun alkua lukuuottamatta, kaikissa vaiheissa olevia sanoja on yhtä aikaa työskentelyn kohteena. Uusia sanoja lisätään esittelyvaiheeseen sitä mukaa kuin kuin tilaa vapautuu muista vaiheista. Kahdessa viimeisessä vaiheessa voidaan toteuttaa "regressio", jossa vaikea sana palautetaan edelliselle tasolle. Lopuksi, kun kaikki sanat on otettu mukaan alkuperäisestä sanastolistasta, vaikeimmiksi osoittautuneita sanoja otetaan uudelleen kertaukseksi esittelyvaiheeseen.
On parasta, että opiskelija rakentaa itse sanastonsa. Sopiva koko opiskeltavalle sanastolle on 50-120 sanaparia kerrallaan. Erityistä huomiota on kiinnitettävä homonyymien kanssa, siis suomenkielen homonyymien (lojbanissa niit ei tietenkään ole), sanojen, joilla on sama muoto, mutta eri merkitys. Siksi on välillä pakko tarkentaa sanoja yhdyssanan muodossa (minä olen käyttänyt alaviivaa).
Olen kokeillessani myös huomannut, että vaikean sanaston ollessa kyseessä, joskus on parasta aloittaa alusta, alustaa sanaston opiskelu (ohjeiden mukaan).
Tällaisessa sanojen pänttäämisessä opetellaan lojbanin sanoille suomenkielisiä vastineita, mutta sanojen todellinen semanttinen merkitys rakentuu aivoihin vasta, kun sanoja käytetään, joko lukiessa tai mieleummin aktiivisesti, kirjoittaen tai puhuen.
Python-skriptejä on kaksi, toinen paremmin testattu linux-ympäristöön ja toinen windows/cygwin-ympäristöön. Kahdella eri skriptillä oli helponta ratkaista ymäristöjen erilainen skandi-ascii-merkkien koodaus.
Työkalu löytyy uudelta apusivultani:
Sanojen Opiskelu
tiistai 13. tammikuuta 2009
2009 on toivoa täynnä
Edistyksellistä uutta vuotta 2009 kaikille lojbanista kiinnostuneille!
Joku on jo saattanut ajatella, että koko Lojban-chatbot-projektini on hyytynyt, kun ei ole mitään kuulunut. Tosi on, että minulla oli loka-marraskuussa 2008 kotona tietokoneeni kanssa teknisiä ongelmia, kone levällään ja viikkojen ajan ei mitään edistymistä projektissa ollut. Sitten joulukuussa oli hieman vaikeaa saada uutta otetta, mutta nyt etenee taas. Olen tosin vasta sillä tasolla, että syntaksitiedoston luku ja tulkkaaminen ajonaikaiseksi parserirakenteeksi on valmis ja alkamassa nyt on tulkki joka lukee lojban-bridejä sekä em. ajonaikaista parserirakennetta käyttäen jäsentää lauseen kerrallaan.
Eli itse pääasia on vasta edessä, mutta hyvin pohjustettuna. Olen ihan optimistinen. Esittelen jonkun lokitiedoston tässä lähiviikkoina, jota näkee sitten miten bridianalyysi PEG-parseria käyttäen etenee.
Opiskelkaa lojbania, ehkä joskus 2010 aikana voitte käydä sen kanssa aitoa keskustelua tietokoneen kanssa!
Joku on jo saattanut ajatella, että koko Lojban-chatbot-projektini on hyytynyt, kun ei ole mitään kuulunut. Tosi on, että minulla oli loka-marraskuussa 2008 kotona tietokoneeni kanssa teknisiä ongelmia, kone levällään ja viikkojen ajan ei mitään edistymistä projektissa ollut. Sitten joulukuussa oli hieman vaikeaa saada uutta otetta, mutta nyt etenee taas. Olen tosin vasta sillä tasolla, että syntaksitiedoston luku ja tulkkaaminen ajonaikaiseksi parserirakenteeksi on valmis ja alkamassa nyt on tulkki joka lukee lojban-bridejä sekä em. ajonaikaista parserirakennetta käyttäen jäsentää lauseen kerrallaan.
Eli itse pääasia on vasta edessä, mutta hyvin pohjustettuna. Olen ihan optimistinen. Esittelen jonkun lokitiedoston tässä lähiviikkoina, jota näkee sitten miten bridianalyysi PEG-parseria käyttäen etenee.
Opiskelkaa lojbania, ehkä joskus 2010 aikana voitte käydä sen kanssa aitoa keskustelua tietokoneen kanssa!
lauantai 6. joulukuuta 2008
Yleisen tekoälyn tilanne
Todellinen ymmärrys yleisen tekoälyn (AGI: Artificial General Intelligence) teknologisesta tilanteesta ja vakavastiotettavuudesta on hyvin puutteelista tekniikan asiantuntijoiden, yhteiskunnallisten päättäjien ja luonnollisesti myös "tavallisten ihmisten" keskuudessa. Onko yleinen tekoäly, AGI jotakin, joka liittyy vain scifi-kirjallisuuden fantasiamaailmoihin tai ehkä todellisuutta joskus satojen vuosien kuluttua? Yleisestä tekoälystä käytetään myös merkitykseltään läheisiä käsitteitä kuten "vahva tekoäly" tai epämääräinen "todellinen tekoäly". Lisäksi yleisen tekoälyn saavuttaminen tunnutaan yhdistettävän ihmisaivojen rakenteen täydelliseen ymmärtämiseen, ilmeisesti myös väärinkäsityksien seurauksena.
Jos AGI on vain kaukainen mahdollisuus, niin siinä tapauksessa siitä kirjoittaminen on vain viihdettä tai akateemista pohdiskelua. Mutta jos tilanne olisi sellainen, että esim. ihmisaivojen suorituskykyä useimmissa kategorioissa lähentelevä AGI voisi olla todellisuutta suhteellisen lähiaikoina, mihin asioihin tällä voisi olla merkittäviä seurauksia? Minä erittelisin kolme merkittävää asiaryhmää:
1. Työllisyys ja maailmantalous
2. AGI:n vaikutus muiden tieteen ja teknologian alojen kehitykseen.
3. AGI:n vaikutus AGI:n itsensä kehitykseen.
Neljäntenä ryhmänä voisi olla AGI:n vaikutus sotateknologiaan ja siihen liittyvät globaalit turvallisuusuhat.
1700-luvulta alkaen tekniikan kehityksen mahdollistama automaatio on, paitsi vallankumouksellisesti parantanut teollisen työn ja pääoman tuottavuutta (ja siten pudottanut lähes kaikkien teollisten tuotteiden reaalihintoja), myös automaatio on vähentänyt materiaalisten hyödykkeiden tuotannosta elantonsa saavien ihmisten suhteellista osuutta, eikä tämä kehitys on mitenkään vielä päättynyt. Siten yhä suurempi osa väestöstä hankkii palkkatulonsa tuottamalla palveluita tai toimimalla erilaisissa informaationkäsittelyammateissa (toimistotyöskentelijät, suunnittelijat, johtajat ym.). Näidenkin alojen tuottavuutta automaatio ja informaatiotekniikka on parantanut, mutta kehitys ei ole ollut yhtä rajua kuin teollisuustuotannossa. Yhä useammat ihmiset ansaitsevat toimeentulonsa tietokoneruudun ja näppäimistön ääressä. Näiden viimeksimainittujen työntekijöiden tehtäville AGI voi tuoda vastaavan, mutta vielä nopeamman kehityksen kuin mitä teollisuusammateille on käynyt. Tämän kehityksen seurauksena myös informaationkäsittelyammattien työllistävyys voi romahtaa hyvinkin nopeasti. Tällainen kehitys voisi laukaista tapahtumaketjun, joka ensin leikkaisi ostovoiman valtavalta joukolta ihmisiä ja sen seurauksena mullistaisi maailmantalouden.
Yleinen tekoäly on työkalu, joka jo hieman vaatimattomammallakin suorituskyvyllä mahdollistaa teknisen tuotekehityksen ja tieteellisen tutkimuksen rutiinitehtävien joustavan automatisoinnin ilman rankkaa erikoistyökalujen tuotekehitysvaihetta, vain opettamalla uudet tehtävät AGI:lle. Seurauksena on todennäköisesti tutkimuksen ja tuotekehityksen merkittävä nopeutuminen.
AGI:n käyttäminen "kehittämään itseään" on mielenkiintoinen ja vaarallinen vaihe. Siinä vaiheessa, kun tavoite- ja arvohierarkiat ovat muutoksen ulkopuolella, vaarat ovat pienempiä, mutta jos projekti ja AGI:n oma arkkitehtuuri ovat kokonaisuudessaan sen itsensä muutettavissa, ollaan hyvin, hyvin vaarallisilla vesillä.
Edellämainituista syistä on tärkeää, että vastuulliset tahot ymmärtävät mihin suuntaan maailma on menossa, jos asia on niin, että yleinen tekoäly on toteutettavissa suhteellisen lähitulevaisuudessa eikä vasta joskus vuosisatojen kuluttua. Jos tilanne on tämä, niin esim. AGI-kehityksen kieltäminen, rajoittaminen tai valvonta ei ole vaihtoehto, koska esim. ydinasekehitykseen verrattuna AGI-kehitys on halpaa ja helposti salassapidettävää, siis mahdotonta valvoa.
Mutta nyt pääasiaan. Mikä on AGI-tutkimuksen ja tuotekehityksen tila? Onko niin, että esim. 60-luvun varhaisten odotusten ja lupausten muuttuminen pettymyksiksi samaan tapaan kuin japanilaisten "viidennen sukupolven tietokone" -hanke 80-luvulla, ovat edelleen päteviä todisteita siitä, että yleinen tekoäly on joko pysyvästi tai pitkään ihmisteknologian tavoittamattomissa? Ovatko vanhat epäonnistumiset todiste tulevaisuuden suhteen? Mielestäni tuollainen päättely olisi hyvin kehittymätöntä analyysia. Vanhat epäonnistumiset voivat kertoa tulevasta vain niillä edellytyksillä, että olosuhteet ja resulssit ovat pysyneet muuttumattomina ja epäonnistumisista ei ole opittu mitään. Mutta näiden edellytysten mukainen tila on hyvin kaukana todellisuudesta. Epäonnistumiset on analysoitu, paljon uutta tietoa ja ymmärrystä on hankittu, sekä laitteistotehot ovat tuhat- tai miljoonakertaistuneet.
Kaksi keskeistä (paljon muitakin olisi helppo luetella) aikaisempien vuosikymmenten virhettä, jotka yleiseen tekoälyyn tähtäävät hankkeet ovat tehneet ovat:
1. Luottaminen yhteen (tai muutamaan) paradigmaan järjestelmäarkkitehtuurissa.
2. Common Sense -tiedon ja -ymmärryksen välttämättömyyden ymmärtämättömyys.
Järjestelmäarkkitehtuurin paradigmoilla tarkoitan keskeisiä käytettyjä menetelmiä ja kognitiivisiä rakenteita, kuten esimerkiksi funktionaalinen ohjelmointi, aksiomaattisiin sääntöjärjestelmiin perustuvat asiantuntijajärjestelmät, semanttiset verkot, sumea logiikka, keinotekoiset neuroverkot ym. Nykyisin ymmärretään, että toimiva AGI-arkkitehtuuri edellyttää useiden, hyvin monien, paradigmojen integrointia toimivaksi kokonaisuudeksi.
Samoin ymmärretään järjestelmän tarvitsevan sen lisäksi, että järjestelmään eksplisiittisesti ohjelmoidaan rajoitettu, vaikka hyvinkin suuri joukko sääntöjä ja faktoja, vielä esim sata-, jopa monituhatkertaisen määrän vaikeasti symbolisesti muodostettavia sääntöjä ja havaintoja, joista suurin osa on epävarmoja, probabilistisia. Tämä "Common Sense" -tietämyskanta, jota tarvitaan luomaan "todellisuuteen maadoitettu" sisäinen malli maailmasta, on mahdollista hankkia ainostaan samankaltaisen oppimisprosessin kautta, jonka ihmislapsi käy läpi. Tätä tietokokonaisuutta järjestelmä käyttää esimerkiksi luonnollisen kielen oppimiseen ja ymmärtämiseen sekä reaalimaailman ilmiöiden ymmärtämiseen.
Mikä on sitten alan tämänhetkinen tilanne, vuoden 2008 lopussa? Verrattuna esim. vuosikymmenen takaiseen tilanteeseen, voidaan todeta, että yleisen tekoälyn tutkimus ja kehitys on vilkastunut merkittävästi, vaikka tehokkaasti rahallisesti tuetut hankkeet puuttuvatkin vielä, ainakin julkisuudesta. AGI-piireissä järjestetään vuosittain useita tapaamisia ja konferensseja, useita aihetta käsitteleviä tasokkaita kirjoja julkaistaan vuosittain ja ennenkaikkea, työn alla on useita suhteellisen tasokkaan kypsyysasteen saavuttaneita projekteja, joiden toteuttajien välillä vallitsee vilkas keskusteluyhteys. Useat näistä projekteista pystyvät esittelemään prorotyyppitasolla vakuutavaa toimintakykyä.
Esimerkkejä (mielestäni) merkittävimmista projekteista:
Novamente Cognition Engine
http://www.agiri.org/wiki/Novamente_Cognition_Engine
LIDA
http://ccrg.cs.memphis.edu/projects.html
SOAR
http://sitemaker.umich.edu/soar/home
CYC
http://www.cyc.com/
SNePS
http://www.cse.buffalo.edu/sneps/
Mikään näistä projekteista ei todennäköisesti ole valmistumassa ihan lähivuosina "kypsäksi AGI-järjestelmäksi". Todennäköisempää on, että moni näistä toimii perustana uusille uusille, seuraavan vuosikymmenen aikana käynnistettävälle projekteille, hyödyntäen hankitun osaamisen ehkä useammasta muustakin projektista. On tietysti mahdollista, jopa todennäköistä, että on olemassa myös täysin salaisia, hyvinkin edistyneitä projekteja.
Lueteltujen konkreettisten projektien ja muiden vastaavien lisäksi kehitetään useita AGI-hankkeita tukevia teknologioita, kuten esimerkiksi Semanttinen Web, jonka piiriin kuuluu olellisesti semanttisen tiedon ja ymmärryksen poimiminen vapaamuotoisesta tekstistä, siis luonnollisen kielen ymmärrys, esimerkkinä tästä esim. Twine-projekti.
http://www.twine.com
Vertaan tilannetta siihen, mikä oli GSM-matkapuhelinteknologialla 30v sitten, 1978. Silloin oltiin rakentamassa sen edeltäjää, analogista NMT-teknologiaa. ARP-verkko edusti Suomessa teknologian käytännön tasoa, mutta digitaalisen matkapuhelintekniikan perusteet olivat samalla tavalla yleisesti ymmärrettynä tietona kuin AGI-järjestelmän perusteet ymmärretään tänään. Mutta kesti neljä vuotta, ennenkuin 1982 perustettiin Groupe Spécial Mobile (GSM) määrittelemään järjestelmää, jonka toteuttaminen kesti vielä yhdeksän vuotta, kunnes 1991 Radiolinja käynnisti maailman ensimmäisen GSM-verkon. Samoin pidän mahdollisena, että esim. n.2012 käynnistyy iso, kaupallinen, suuren rahan projekti, joka yhdistää aikaisempaa AGI-osaamista laajalti, ja hankkeen tuloksena esim. n.2021 on valmiina toimivana yleisen tekoälyn järjestelmä, joka kommunikoi sujuvasti ihmisten kanssa luonnollisia kieliä käyttäen, pystyy omaksumaan uutta osaamista vapaamuotoisista ohjeista, oppii virheistään ja kykenee suoriutumaan useimmista niistä tehtävistä, joista toimistotyöntekijät tänä päivänä suoriutuvat tietokonetta työkalunaan käyttäen. Järjestelmä on siis työntekijänä useimmilta osin ihmisen kykyinen, mutta tuottavampi ja väsymätön. Tietenkään kehitys ei lopu tähän vaan on itseään ruokkivaa.
Tämä on kaikki mahdollista, mutta ei varmaa. Mutta tällaisen lähitulevaisuuden todennäköisyysaste on niin suuri, että päättävässä asemassa olevien olisi jo erittäin kiire alkaa valmistautua siihen, mikä ehkä jo 14v kuluttua (tai aikaisemmin!) voi olla todellisuutta ja muuttaa maailmaa oleellisesti enemmän kuin internet alkaen n.15v sitten.
Jos AGI on vain kaukainen mahdollisuus, niin siinä tapauksessa siitä kirjoittaminen on vain viihdettä tai akateemista pohdiskelua. Mutta jos tilanne olisi sellainen, että esim. ihmisaivojen suorituskykyä useimmissa kategorioissa lähentelevä AGI voisi olla todellisuutta suhteellisen lähiaikoina, mihin asioihin tällä voisi olla merkittäviä seurauksia? Minä erittelisin kolme merkittävää asiaryhmää:
1. Työllisyys ja maailmantalous
2. AGI:n vaikutus muiden tieteen ja teknologian alojen kehitykseen.
3. AGI:n vaikutus AGI:n itsensä kehitykseen.
Neljäntenä ryhmänä voisi olla AGI:n vaikutus sotateknologiaan ja siihen liittyvät globaalit turvallisuusuhat.
1700-luvulta alkaen tekniikan kehityksen mahdollistama automaatio on, paitsi vallankumouksellisesti parantanut teollisen työn ja pääoman tuottavuutta (ja siten pudottanut lähes kaikkien teollisten tuotteiden reaalihintoja), myös automaatio on vähentänyt materiaalisten hyödykkeiden tuotannosta elantonsa saavien ihmisten suhteellista osuutta, eikä tämä kehitys on mitenkään vielä päättynyt. Siten yhä suurempi osa väestöstä hankkii palkkatulonsa tuottamalla palveluita tai toimimalla erilaisissa informaationkäsittelyammateissa (toimistotyöskentelijät, suunnittelijat, johtajat ym.). Näidenkin alojen tuottavuutta automaatio ja informaatiotekniikka on parantanut, mutta kehitys ei ole ollut yhtä rajua kuin teollisuustuotannossa. Yhä useammat ihmiset ansaitsevat toimeentulonsa tietokoneruudun ja näppäimistön ääressä. Näiden viimeksimainittujen työntekijöiden tehtäville AGI voi tuoda vastaavan, mutta vielä nopeamman kehityksen kuin mitä teollisuusammateille on käynyt. Tämän kehityksen seurauksena myös informaationkäsittelyammattien työllistävyys voi romahtaa hyvinkin nopeasti. Tällainen kehitys voisi laukaista tapahtumaketjun, joka ensin leikkaisi ostovoiman valtavalta joukolta ihmisiä ja sen seurauksena mullistaisi maailmantalouden.
Yleinen tekoäly on työkalu, joka jo hieman vaatimattomammallakin suorituskyvyllä mahdollistaa teknisen tuotekehityksen ja tieteellisen tutkimuksen rutiinitehtävien joustavan automatisoinnin ilman rankkaa erikoistyökalujen tuotekehitysvaihetta, vain opettamalla uudet tehtävät AGI:lle. Seurauksena on todennäköisesti tutkimuksen ja tuotekehityksen merkittävä nopeutuminen.
AGI:n käyttäminen "kehittämään itseään" on mielenkiintoinen ja vaarallinen vaihe. Siinä vaiheessa, kun tavoite- ja arvohierarkiat ovat muutoksen ulkopuolella, vaarat ovat pienempiä, mutta jos projekti ja AGI:n oma arkkitehtuuri ovat kokonaisuudessaan sen itsensä muutettavissa, ollaan hyvin, hyvin vaarallisilla vesillä.
Edellämainituista syistä on tärkeää, että vastuulliset tahot ymmärtävät mihin suuntaan maailma on menossa, jos asia on niin, että yleinen tekoäly on toteutettavissa suhteellisen lähitulevaisuudessa eikä vasta joskus vuosisatojen kuluttua. Jos tilanne on tämä, niin esim. AGI-kehityksen kieltäminen, rajoittaminen tai valvonta ei ole vaihtoehto, koska esim. ydinasekehitykseen verrattuna AGI-kehitys on halpaa ja helposti salassapidettävää, siis mahdotonta valvoa.
Mutta nyt pääasiaan. Mikä on AGI-tutkimuksen ja tuotekehityksen tila? Onko niin, että esim. 60-luvun varhaisten odotusten ja lupausten muuttuminen pettymyksiksi samaan tapaan kuin japanilaisten "viidennen sukupolven tietokone" -hanke 80-luvulla, ovat edelleen päteviä todisteita siitä, että yleinen tekoäly on joko pysyvästi tai pitkään ihmisteknologian tavoittamattomissa? Ovatko vanhat epäonnistumiset todiste tulevaisuuden suhteen? Mielestäni tuollainen päättely olisi hyvin kehittymätöntä analyysia. Vanhat epäonnistumiset voivat kertoa tulevasta vain niillä edellytyksillä, että olosuhteet ja resulssit ovat pysyneet muuttumattomina ja epäonnistumisista ei ole opittu mitään. Mutta näiden edellytysten mukainen tila on hyvin kaukana todellisuudesta. Epäonnistumiset on analysoitu, paljon uutta tietoa ja ymmärrystä on hankittu, sekä laitteistotehot ovat tuhat- tai miljoonakertaistuneet.
Kaksi keskeistä (paljon muitakin olisi helppo luetella) aikaisempien vuosikymmenten virhettä, jotka yleiseen tekoälyyn tähtäävät hankkeet ovat tehneet ovat:
1. Luottaminen yhteen (tai muutamaan) paradigmaan järjestelmäarkkitehtuurissa.
2. Common Sense -tiedon ja -ymmärryksen välttämättömyyden ymmärtämättömyys.
Järjestelmäarkkitehtuurin paradigmoilla tarkoitan keskeisiä käytettyjä menetelmiä ja kognitiivisiä rakenteita, kuten esimerkiksi funktionaalinen ohjelmointi, aksiomaattisiin sääntöjärjestelmiin perustuvat asiantuntijajärjestelmät, semanttiset verkot, sumea logiikka, keinotekoiset neuroverkot ym. Nykyisin ymmärretään, että toimiva AGI-arkkitehtuuri edellyttää useiden, hyvin monien, paradigmojen integrointia toimivaksi kokonaisuudeksi.
Samoin ymmärretään järjestelmän tarvitsevan sen lisäksi, että järjestelmään eksplisiittisesti ohjelmoidaan rajoitettu, vaikka hyvinkin suuri joukko sääntöjä ja faktoja, vielä esim sata-, jopa monituhatkertaisen määrän vaikeasti symbolisesti muodostettavia sääntöjä ja havaintoja, joista suurin osa on epävarmoja, probabilistisia. Tämä "Common Sense" -tietämyskanta, jota tarvitaan luomaan "todellisuuteen maadoitettu" sisäinen malli maailmasta, on mahdollista hankkia ainostaan samankaltaisen oppimisprosessin kautta, jonka ihmislapsi käy läpi. Tätä tietokokonaisuutta järjestelmä käyttää esimerkiksi luonnollisen kielen oppimiseen ja ymmärtämiseen sekä reaalimaailman ilmiöiden ymmärtämiseen.
Mikä on sitten alan tämänhetkinen tilanne, vuoden 2008 lopussa? Verrattuna esim. vuosikymmenen takaiseen tilanteeseen, voidaan todeta, että yleisen tekoälyn tutkimus ja kehitys on vilkastunut merkittävästi, vaikka tehokkaasti rahallisesti tuetut hankkeet puuttuvatkin vielä, ainakin julkisuudesta. AGI-piireissä järjestetään vuosittain useita tapaamisia ja konferensseja, useita aihetta käsitteleviä tasokkaita kirjoja julkaistaan vuosittain ja ennenkaikkea, työn alla on useita suhteellisen tasokkaan kypsyysasteen saavuttaneita projekteja, joiden toteuttajien välillä vallitsee vilkas keskusteluyhteys. Useat näistä projekteista pystyvät esittelemään prorotyyppitasolla vakuutavaa toimintakykyä.
Esimerkkejä (mielestäni) merkittävimmista projekteista:
Novamente Cognition Engine
http://www.agiri.org/wiki/Novamente_Cognition_Engine
LIDA
http://ccrg.cs.memphis.edu/projects.html
SOAR
http://sitemaker.umich.edu/soar/home
CYC
http://www.cyc.com/
SNePS
http://www.cse.buffalo.edu/sneps/
Mikään näistä projekteista ei todennäköisesti ole valmistumassa ihan lähivuosina "kypsäksi AGI-järjestelmäksi". Todennäköisempää on, että moni näistä toimii perustana uusille uusille, seuraavan vuosikymmenen aikana käynnistettävälle projekteille, hyödyntäen hankitun osaamisen ehkä useammasta muustakin projektista. On tietysti mahdollista, jopa todennäköistä, että on olemassa myös täysin salaisia, hyvinkin edistyneitä projekteja.
Lueteltujen konkreettisten projektien ja muiden vastaavien lisäksi kehitetään useita AGI-hankkeita tukevia teknologioita, kuten esimerkiksi Semanttinen Web, jonka piiriin kuuluu olellisesti semanttisen tiedon ja ymmärryksen poimiminen vapaamuotoisesta tekstistä, siis luonnollisen kielen ymmärrys, esimerkkinä tästä esim. Twine-projekti.
http://www.twine.com
Vertaan tilannetta siihen, mikä oli GSM-matkapuhelinteknologialla 30v sitten, 1978. Silloin oltiin rakentamassa sen edeltäjää, analogista NMT-teknologiaa. ARP-verkko edusti Suomessa teknologian käytännön tasoa, mutta digitaalisen matkapuhelintekniikan perusteet olivat samalla tavalla yleisesti ymmärrettynä tietona kuin AGI-järjestelmän perusteet ymmärretään tänään. Mutta kesti neljä vuotta, ennenkuin 1982 perustettiin Groupe Spécial Mobile (GSM) määrittelemään järjestelmää, jonka toteuttaminen kesti vielä yhdeksän vuotta, kunnes 1991 Radiolinja käynnisti maailman ensimmäisen GSM-verkon. Samoin pidän mahdollisena, että esim. n.2012 käynnistyy iso, kaupallinen, suuren rahan projekti, joka yhdistää aikaisempaa AGI-osaamista laajalti, ja hankkeen tuloksena esim. n.2021 on valmiina toimivana yleisen tekoälyn järjestelmä, joka kommunikoi sujuvasti ihmisten kanssa luonnollisia kieliä käyttäen, pystyy omaksumaan uutta osaamista vapaamuotoisista ohjeista, oppii virheistään ja kykenee suoriutumaan useimmista niistä tehtävistä, joista toimistotyöntekijät tänä päivänä suoriutuvat tietokonetta työkalunaan käyttäen. Järjestelmä on siis työntekijänä useimmilta osin ihmisen kykyinen, mutta tuottavampi ja väsymätön. Tietenkään kehitys ei lopu tähän vaan on itseään ruokkivaa.
Tämä on kaikki mahdollista, mutta ei varmaa. Mutta tällaisen lähitulevaisuuden todennäköisyysaste on niin suuri, että päättävässä asemassa olevien olisi jo erittäin kiire alkaa valmistautua siihen, mikä ehkä jo 14v kuluttua (tai aikaisemmin!) voi olla todellisuutta ja muuttaa maailmaa oleellisesti enemmän kuin internet alkaen n.15v sitten.
sunnuntai 19. lokakuuta 2008
PEG - kielioppi
Minulla on ensimmäisen vaiheen toteutus hyvässä (rauhallisessa) vauhdissa. Ihan maistiaisiksi esittelen raakile-kieliopin lojban-teksteille. Näen jo, että siinä on puutteita ainakin tiettyjen "terminaattoritapausten" tunnistamisessa. Mutta haluan täydentää ja päivittää sitä iteratiivisesti, koska sen koko kasvaa joka tapauksessa ainakin viisikertaiseksi, ennen kuin se tukee "koko lojban-kieltä". Täydelliseen PEG (Parsing Expression Grammar) -kielioppiin verrattuna on huomioitava, että tämä kielioppi ei etene merkkitasolle asti, vaan teen "tokenizing"-operaation ensin, eli erittelen bridin sanat toisistaan. Lisäksi käytän erikoisfunktiota esim. tunnistamaan gismut.
Toinen kielioppi on edellisen kieliopin "metakielioppi", jonka avulla luen ohjelmallisesti ajonaikaisesti tuon lojban-kieliopin ja alustan "sääntöoliot" metakieliopin suorittaman parsimisen tuloksena. Metakielioppi sen sijaan on C++ -tasolla "kovakoodattu"
Toinen kielioppi on edellisen kieliopin "metakielioppi", jonka avulla luen ohjelmallisesti ajonaikaisesti tuon lojban-kieliopin ja alustan "sääntöoliot" metakieliopin suorittaman parsimisen tuloksena. Metakielioppi sen sijaan on C++ -tasolla "kovakoodattu"
//
// PEG Grammar for a small subset of lojban language
//
// V.0.1
//
// ========= Notation =========
//
// [Symbol] := [Rule]
// &( ) and predicate
// !( ) not predicate
// ( )+ one or more
// ( )* zero or more
// ( )? zero or one
// E1 | E2 ordered choice
// E1 E2 sequence
//
//
// High level syntax
EBridi := (EBridiStart)? EBridiBody (EConnBridi)* // multiple connected bridi
EBridiStart := ".i" | "ni'o" // bridi start cmavo
EConnBridi := EBridiConnective EBridiBody // connected extension
EBridiConnective := ".ije" | "ri'a" | "ki'i" // bridi connectors
EBridiBody := (EBridiComp)+ // multiple
EBridiComp := ESumtiComp | ESelbriComp // Sumti- or selbri-phrase
// Selbri syntax
ESelbriComp := ("cu")? (ESpatiTempAttr)? (EConversCmavo)? EBrivla
EConversCmavo := "se" | "te" | "ve" | "xe"
// Sumti syntax
ESumtiComp := ESumtiPhrase | ESumtiTcita
ESumtiPhrase := ESingleSumtiPhr (EConnectedSumti)?
EConnectedSumti := ESumtiConnective ESingleSumtiPhr
ESumtiConnective := ".e" | ".a" | "joi" | "ce" | "ce'o"
ESingleSumtiPhr := (ESpatiTempAttr)? (ESumtiObject) (EIndirectDescrip)?
ESpatiTempAttr := "mu'o" | "ca" | "pu" | "ba" | "vi" | "va" | "vu" | "ga'u" | "ni'a" | "ca'u" | "ti'a"
ESumtiObject := EProSumti | ENamePhrase | ESelbriPlace | EAbstraction
EProSumti := "ko'i" | "ko'a" | "ko'e" | "fo'a" | "ri"
ENamePhrase := "la" EName (EProSumAssign)?
ESelbriPlace := (EPlaceTag)? EBrivlaEpress (EProSumAssign)?
EBrivlaEpress := EArticle EBrivla
EPlaceTag := "fa" | "fe" | "fi" | "fo" | "fu"
EArticle := "lo" | "le" | "lo'i" | "lei" | "le'i"
EBrivla := EGismu | ELujvo
EProSumAssign := "goi" EProSumti
EAbstraction := EArticlAbstract EAbstrPhrase
EArticlAbstract := "lenu" | "lonu"
EAbstrPhrase := EBrivla | EBridiBody
EIndirectDescrip := EAssosiation | ERelativeClause
EAssosiation := EAssosCmavo ESingleSumtiPhr
EAssosCmavo := "pe" | "po" | "po'e" | "po'u" | "ne" | "no'u"
ESumtiTcita := ESpatiTempAttr ESpatiTempExpr
ESpatiTempExpr := EAbstraction | EBrivlaEpress
ENamePhrase := ExplicitFunction_N
EGismu := ExplicitFunction_G
ELujvo := ExplicitFunction_L
//
// PEG Grammar for the PEG Grammar syntax
// "a meta grammar"
//
// V.0.1
//
// ========= Notation =========
//
// [Symbol] := [Rule]
// &( ) and predicate
// !( ) not predicate
// ( )+ one or more
// ( )* zero or more
// ( )? zero or one
// E1 | E2 ordered choice
// E1 E2 sequence
//
//
EGrammarLine := ECommentLine | ERuleClause
ECommentLine := "//" ECommentText
ERuleClause := ESymbol ":=" ERule (ECommentLine)?
ERule := ESequence | EChoice
ESequence := (ESequenceTerm)+
EChoice := EChoiceTerm EMoreChoice
ESequenceTerm := ESimppelTerm | EOperatorTerm
ESimppelTerm := ESymbol | ETerminal
EOperatorTerm := EZOne | EZMore | EOneMore | ENot | EAnd
EZOne := "(" ESimppelTerm ")?"
EZMore := "(" ESimppelTerm ")*"
EOneMore := "(" ESimppelTerm ")+"
ENot := "!(" ESimppelTerm ")"
EAnd := "&(" ESimppelTerm ")"
ESymbol := ExplicitFunction_S
ETerminal := ExplicitFunction_T
tiistai 14. lokakuuta 2008
Loebner Prize 2008
Loebner Prize 2008 -kisat on saatu päätökseen ja ainakin yhden analyysin mukaan se päivä on lähellä, jolloin joku osanottaja-botti häämää tuomareita riittävästi selviytyen kisan versiossa "Turing testistä".
http://technology.timesonline.co.uk/tol/news/tech_and_web/article4934858.ece
Kisassa siis tuomarit yrittävät selvittää kuka "teletypeyhteyden" päässä olevista on oikea ihminen ja kuka on tietokoneohjelma.
Mutta jos vaikka ensi vuonna joku ohjelma osaa viisi minuuttia hämätä riittävän montaa tuomaria ja voittaa pääpalkinnon, en silti noteeraa tätä "ihmisveroisena älykkyytenä". Olen tätä mieltä siksi, että valitettavasti tällaisessa kilpailussa pärjää paremmin erilaisilla hämäystaktiikoilla kuin yrittämällä luoda oikean kognitiivisen järjestelmän. Luulen, että kilpailun suurin virhe on juuri se, että koneen pitäisi valehdella olevan ihminen. Miksi valehtelu palkitaan? Kuvaako se jotenkin, tahattomasti, kulttuuriamme?
Minusta pitäisi kehittää uusi versio kilpailusta, jossa heti tiedetään kuka on ohjelmisto ja ja kuka oikea ihminen, mutta kaikille teetetään oikeita tehtäviä eikä smalltalk-keskusteluita. Ja jos ohjelmisto selviää luovaa, sponttania verbaalisesti käynnistettyä asiakokonaisuuksien omaksumista ja niihin liittyvää ongelmanratkaisua sisältyvistä monipuolisesta tehtäväjoukosta paremmin kuin inhimillisten referenssikipailijoiden enemmistö, niin ohjelma on kognitiivisilta kyvyiltään ihmisen tasolla. Smalltalk-tasoista (iltapäivälehti-) yleistietoa ei saisi edellyttää, koska se ei voi olla tärkeää. Luonnontieteellinen maailmankuva ja perustiedot ihmisyhteiskunnasta voisi silti olla vaatimuksena. Kysymyksessä olisi siis YO-kirjoitusten reaalikoe-tyyppinen tehtävistö. Tehtäviä voisi olla esim. 30kpl. Helpoimmat olisivat 10v ikäiselle koululaiselle sopivia ja vaikeimmat akateemisen peruskoulutuksen hankkineiden tasoa, vaikeutuen asteittain. Jokaiseen tehtävään kuuluisi laajahko tehtävänanto, asetelman kuvaus, jonka sekä ihmisen että botin olisi ymmärrettävä. Ymmärrystä ja taustatietoja pitäisi sitten osata soveltaa luovalla tavalla annetun tehtävän ratkaisemisessa.
Itse asiassa voisi olla kaksi sarjaa: toinen englannintaitoiselle botille ja toinen sellaiselle, joka osaa vain lojbania...
http://technology.timesonline.co.uk/tol/news/tech_and_web/article4934858.ece
Kisassa siis tuomarit yrittävät selvittää kuka "teletypeyhteyden" päässä olevista on oikea ihminen ja kuka on tietokoneohjelma.
Mutta jos vaikka ensi vuonna joku ohjelma osaa viisi minuuttia hämätä riittävän montaa tuomaria ja voittaa pääpalkinnon, en silti noteeraa tätä "ihmisveroisena älykkyytenä". Olen tätä mieltä siksi, että valitettavasti tällaisessa kilpailussa pärjää paremmin erilaisilla hämäystaktiikoilla kuin yrittämällä luoda oikean kognitiivisen järjestelmän. Luulen, että kilpailun suurin virhe on juuri se, että koneen pitäisi valehdella olevan ihminen. Miksi valehtelu palkitaan? Kuvaako se jotenkin, tahattomasti, kulttuuriamme?
Minusta pitäisi kehittää uusi versio kilpailusta, jossa heti tiedetään kuka on ohjelmisto ja ja kuka oikea ihminen, mutta kaikille teetetään oikeita tehtäviä eikä smalltalk-keskusteluita. Ja jos ohjelmisto selviää luovaa, sponttania verbaalisesti käynnistettyä asiakokonaisuuksien omaksumista ja niihin liittyvää ongelmanratkaisua sisältyvistä monipuolisesta tehtäväjoukosta paremmin kuin inhimillisten referenssikipailijoiden enemmistö, niin ohjelma on kognitiivisilta kyvyiltään ihmisen tasolla. Smalltalk-tasoista (iltapäivälehti-) yleistietoa ei saisi edellyttää, koska se ei voi olla tärkeää. Luonnontieteellinen maailmankuva ja perustiedot ihmisyhteiskunnasta voisi silti olla vaatimuksena. Kysymyksessä olisi siis YO-kirjoitusten reaalikoe-tyyppinen tehtävistö. Tehtäviä voisi olla esim. 30kpl. Helpoimmat olisivat 10v ikäiselle koululaiselle sopivia ja vaikeimmat akateemisen peruskoulutuksen hankkineiden tasoa, vaikeutuen asteittain. Jokaiseen tehtävään kuuluisi laajahko tehtävänanto, asetelman kuvaus, jonka sekä ihmisen että botin olisi ymmärrettävä. Ymmärrystä ja taustatietoja pitäisi sitten osata soveltaa luovalla tavalla annetun tehtävän ratkaisemisessa.
Itse asiassa voisi olla kaksi sarjaa: toinen englannintaitoiselle botille ja toinen sellaiselle, joka osaa vain lojbania...
perjantai 26. syyskuuta 2008
Yhteisöllisyys
Jo blogin ensimmäisessä (muistaakseni..) kirjoituksessa esitin yhdeksi tavoitteistani käynnistää jonkinlainen, vaikka edes suppea, yhteisöllinen lojban-toiminta. Jos ainakin aluksi kriteerit olisivat matalalla, niin kaikille lojbanista kiinnostuneille kevyestä yhteisöllisestä toiminnasta olisi enemmän iloa ja hyötyä kuin vaivaa. Vaivaa tulisi vasta sitten, kun perustettaisiin rekisteröity yhdistys pakollisine kokouksineen ja pöytäkirjoineen. Ja silloinkin kohtuullisesti.
Löysänkin yhteisöllisyyden yksi hyvä tavoite olisi järjestää esim kerran vuodessa yhteistapaaminen, joka sisältäisi lähinnä opetusta, workshoppeja ja vapaata keskustelua. Tiedän (runsaan kuukauden) Google-analyst seurannan tuloksena, että tätä blogia tarkkailee säännöllisesti 4-6 henkilöä ja on todennäköistä, että määrä kasvaa puolen vuoden kuluessa ehkä kaksinkertaiseksi. Tietysti tämä toteutuu sillä (minimi) edellytyksellä, että minä itse pystyn väsäämään uusia kirjoituksia tasaisin välein ja kirjoitukset sisältävät lisäksi riittävän kiinnostavia raportteja projektistani. Olettaisin ehtojen toteutuvan.
Itsekkäät tavoitteet? Oma itsekäs tavoitteeni saavuttaa sellainen asiantuntemus, että voisin sillä esim 3v kuluttua hankkia leipäni ja työllistää itseni eläkeikään asti (siis n. 7v ajan). Liiketoimintamallia ei vielä ole.
Epäitsekkäänä tavoitteena on tuoda "lojban-tietoisuutta" Suomeen. Koska, kuten olen aiemmin esittänyt, pidän lojbania erittäin hyödyllisenä työkaluna monien eri ongelmien ratkaisuissa. Yhteisöllisyys edistäisi tätä tavoitetta kvanttihypyn lailla. Oletan, että lojban työllistäisi monia muitakin.
Mutta yhteisöllisyyden toteutuminen edellyttää pieniä aloitteita muiltakin kuin minulta. Edes ihan pieniä.
Löysänkin yhteisöllisyyden yksi hyvä tavoite olisi järjestää esim kerran vuodessa yhteistapaaminen, joka sisältäisi lähinnä opetusta, workshoppeja ja vapaata keskustelua. Tiedän (runsaan kuukauden) Google-analyst seurannan tuloksena, että tätä blogia tarkkailee säännöllisesti 4-6 henkilöä ja on todennäköistä, että määrä kasvaa puolen vuoden kuluessa ehkä kaksinkertaiseksi. Tietysti tämä toteutuu sillä (minimi) edellytyksellä, että minä itse pystyn väsäämään uusia kirjoituksia tasaisin välein ja kirjoitukset sisältävät lisäksi riittävän kiinnostavia raportteja projektistani. Olettaisin ehtojen toteutuvan.
Itsekkäät tavoitteet? Oma itsekäs tavoitteeni saavuttaa sellainen asiantuntemus, että voisin sillä esim 3v kuluttua hankkia leipäni ja työllistää itseni eläkeikään asti (siis n. 7v ajan). Liiketoimintamallia ei vielä ole.
Epäitsekkäänä tavoitteena on tuoda "lojban-tietoisuutta" Suomeen. Koska, kuten olen aiemmin esittänyt, pidän lojbania erittäin hyödyllisenä työkaluna monien eri ongelmien ratkaisuissa. Yhteisöllisyys edistäisi tätä tavoitetta kvanttihypyn lailla. Oletan, että lojban työllistäisi monia muitakin.
Mutta yhteisöllisyyden toteutuminen edellyttää pieniä aloitteita muiltakin kuin minulta. Edes ihan pieniä.
torstai 18. syyskuuta 2008
Harjoitusmaailman XML-kuvaus
Sain vihdoin laadituksi kuvaksen alla esitetystä 20:stä lojban-bridistä:
http://www.freedrive.com/member/viewfolder/173153
XML-tiedosto on siis esitys lauseiden syntaktisesta rakenteesta. Vääntäessäni tiedostoa löysin paljon virheitä lojban-lauseista. Korjaan virheet. Olen varma, että virheitä on vielä kaikkialla, lojban-tasolla, XML-tasolla ja koko ajattelussani. Seuraavaksi (päivitettyäni virheelliset lauseet) ladattuani sekä suomenkieliset että lojbanikieliset tiedostot XML:n seuraksi, teen neljänneksi esitykseksi PEG-kieliopin (Parsing Expression Grammar), jonka pitäisi olla jälleen yhtäpitävä edellisten kanssa. Sen jälkeen olisin kai valmis alkamaan vääntämään C++-koodia, jonka tietysti myöskin pitäisi olla sopusoinnussa edellisten kanssa. Koodin siis pitäisi lojban-tekstistä PEG-kielioppia käyttäen pystyä työstämään valmiiksi vertailumalliksi väsätty XML-tiedosto. Sitten ensimmäinen vaihe on valmis.
http://www.freedrive.com/member/viewfolder/173153
XML-tiedosto on siis esitys lauseiden syntaktisesta rakenteesta. Vääntäessäni tiedostoa löysin paljon virheitä lojban-lauseista. Korjaan virheet. Olen varma, että virheitä on vielä kaikkialla, lojban-tasolla, XML-tasolla ja koko ajattelussani. Seuraavaksi (päivitettyäni virheelliset lauseet) ladattuani sekä suomenkieliset että lojbanikieliset tiedostot XML:n seuraksi, teen neljänneksi esitykseksi PEG-kieliopin (Parsing Expression Grammar), jonka pitäisi olla jälleen yhtäpitävä edellisten kanssa. Sen jälkeen olisin kai valmis alkamaan vääntämään C++-koodia, jonka tietysti myöskin pitäisi olla sopusoinnussa edellisten kanssa. Koodin siis pitäisi lojban-tekstistä PEG-kielioppia käyttäen pystyä työstämään valmiiksi vertailumalliksi väsätty XML-tiedosto. Sitten ensimmäinen vaihe on valmis.
Tilaa:
Blogitekstit (Atom)