Näytetään tekstit, joissa on tunniste kognitiivinen arkkitehtuuri. Näytä kaikki tekstit
Näytetään tekstit, joissa on tunniste kognitiivinen arkkitehtuuri. Näytä kaikki tekstit

keskiviikko 22. lokakuuta 2014

David Deutsch luo asenteellisen esteen.

The One Problem We Need To Solve To Create Computers With Human-Like Intelligence

Minusta Deutsch ensinnäkin ymmärtää käsitteen AGI, Artificial General Intelligence, keinotekoinen yleinen äly väärin. Se ilmenee tästä: "A mind that can truly think like a human mind, not merely perform some of the same tasks — "cannot possibly be defined purely behaviourally," meaning we won't be able to tell if AI is human-like just based on the computer's output."

Ihmisen äly ei ole aidosti yleistä. Se on vain eräs mahdollinen approksimaatio, joka lähestyy kohtuulllisen yleistä älykkyyttä. Ihminen voi sopeutua erilaisiin olosuhteisiin, erilaisiin tehtäviin, erilaisiin aistihavaintoihin, mutta silti inhimillinen äly on erikoistunut elämään ihmisen kehossa Maa-planeetalla. Se ei ole yleistä älyä. 

Jotta voisimme luoda keinotekoisen yleisen älyn, meidän ei ole tarpeen tuntea ja ymmärtää yksityiskohtaisesti miten ihmisen äly toimii, koska se on vain yksi äärettömästä määrästä vaihtoehtoja. 

Tämä ei minun mielestäni pidä paikkansa: "The definition of artificial intelligence relies on how thinking as we know it works on the inside, not on what comes out of it."

AGI:n määrittelee sen suorituskyky, ei sen toteutustapa.

Jos yritämme, kuten esim. Google ja IBM, toteuttaa tekoälyjärjestelmiä, jotka selviävät laajasta alueista sellaisia tehtäviä, joita vain ihminen nyt osaa suorittaa, näiden firmojen tuotekehityksen ei tarvitse yrittää kopioida ihmisen biologisten aivojen tapaa työskennellä. Aivan ilmeisesti on olemassa muita tapoja, jotka soveltuvat paremmin niihin teknologisiin resursseihin, joita meillä on. Emme tarvitse 100 miljardia neuroonia, joilla kullakin on 10 000 muista neurooneita saapuvaa tuloa ja mahdollisesti glia-solujen tukitoimintoja tehostamassa oppimista. On muitakin ratkaisuja, jotka voidaan saada toimimaan helpommin. 

Tietysti on mahdollista, että äly määritellään ainoastaan ihmisen älyksi ja kaikki muu määritellään vain "toiminnalliseksi, algorimiseksi laskennaksi", joka ei "todellisuudessa ymmärrä yhtään mitään". Mutta tämä on minun mielestäni väärää ontologiaa.  Ja huono epistemologia nousee huonosta ontologiasta.

perjantai 30. maaliskuuta 2012

Tilanne on oleellisesti muuttunut

Melko todennäköisesti jätin palkkatyöläisen elämän. Sain 15kk irtisanoutumispaketin Accenturelta. Se oli ilmeisesti Nokian kustantama. Mutta on mahdollista, että toimin vielä ennen lopullista eläköitymistä elinkeinoelämässä yrittäjän, lähinnä konsultin ominaisuudessa.

Kuullostaa ehkä omituiselta, mutta olen aloittanut oman tuotekehitysprojektin. No, ehkä se ei ole niin omituista, jos lukee aikaisemmin kirjoittamiani juttuja eteenkin robotiikasta ja muista kognitiivista järjestelmistä. Tällaiset asiat ovat minulle hyvin läheisiä. Edellä esittelemäni katamaranhanke jatkuu, mutta pääasiassa mökkiprojektina. Kotona käytän huomattavan osan työelämästä vapautunutta aikaani kognitiivisen robotiikan kehittämiseen.

Mitä siis tarkemmin esittäen aion toteuttaa? Tavoitteenani on "Cognitive Robotic Framework", softapaketti joka liittyy Willow Garagen Linux-käyttöjärjestelmän päällä pyörivaan ROS, Robotic Operating System, välikerrokseen. Tämä "CRF", "Cognitive Robotic Framework", pyrkii toteuttamaan yleiskäyttöisen, käsitteelliseen ajatteluun kykenevän tekoälyn, joka on tarkoitettu lähinnä robotiikkaan.

Mikä tässä suunnitelmassa on sitten erityistä, sellaista joka tekisi sen jotenkin uskottavaksi, tavoiteltavaksi? Esitän tähän motivoivaan tehtävään kolme kohtaa:

1. Ei-symbolinen, "Deep Learning", hierarkinen hahmontunnistus, konenäkö- ja puheentunnistuskäyttöön.

2. Symbolinen, käsitteellisen ajattelun lohko, jonka opettaminen on mahdollista ACE-kielellä. ACE-kieli mahdollistaa myös toiminnallisen interaktiivisuuden. ACE on tavallaan englanninkielen murre.

3. Robotin maailmankuvan perustana ovat valmiiksikehitellyt SUMO- ja MILO-ontologiat .

Tarkoitus on siis soveltaa paljon valmista osaamista ja sellaisena kokonaisuutena, josta ainakaan minä en ole kuullut toteutettuna. Silti tavoitetaso on melko matala, ainakin alkuvaiheessa. Ensimmäisenä toiminnallisena tavoitetasona on robotin kyky liikkua itsenäisesti, käytännössä pyörillä, tunnistaa ja kartoittaa ympäristöään, havaita poikkeavuuksia normaaliin. Ensimmäinen sovellusalue voisi siis olla vartiointitehtävät. Muut tulevat myöhemmin, jos ovat tullakseen.

Projektin toteutuksen luonteesta käsitykseni on, että tekeminen sisältää vähemmän perinteistä ohjelmistokehitystä, enemmän ontologia- ja sääntökehitystä käyttäen SUO-KIF-kieltä ja ACE-kieltä, että opettaen ei-symbolista lohkoa simuoloidussa tai todellisessa ympäristössä. Tärkeä haaste on tehokkaiden opetusmenetelmien kehittäminen ja lukemattomien vielä ymmärrykseni ulottumattomissa olevien ongelmien ratkominen.

Mahdollinen kaupallinen liiketoimintamalli perustuu siihen, että kehitettävä ohjelmisto olisi ROS-ohjelmiston ja Linuxin tapaan avointa koodia, mutta suuri osa kehitettävää valmista robotin laatamiskelpoista, opetettua tietämystä, "knowledge", ja robotin opettamisen "knowhow", säilytetään suljettuna tietona projektin piirissä, vain demottavassa asussa.

tiistai 31. elokuuta 2010

Suomalaiset kognitiivisten robottiaivojen arkkitehtuurit v. 2010

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

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

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

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

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

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

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

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

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

lauantai 27. helmikuuta 2010

Lisää AIXI:sta

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



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

Tapahtumien kulku on seuraava

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

Agentin oppimisella on kaksi erillistä tavoitetta:

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

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

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

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

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

Agentin opettaminen.


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

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

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

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

Harrasteprojektista

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