Symbolinen mallintaminen: tausta Kognitiivinen mallintaminen I Symbolinen mallintaminen 1 Tausta Symbolisysteemin hypoteesi von Neumannin arkkitehtuuri LOT Esimerkki kognitiivisesta mallista: produktiosysteemit Rationaalinen agentti Symbolisysteemin hypoteesi 1961 Newell ja Simon antoivat formaalin muodon kognitiotieteen komputationaaliselle mallille: symbolisysteemin hypoteesin (symbol system hypothesis). Hypoteesin mukaan kognitio on informaatiota prosessoiva systeemi (information-processing system). Ajattelu on symbolien ja symbolirakenteiden järjestelyä annetun ohjelman mukaan. Symbolisysteemin hypoteesi Newellille ja Simonille symbolit ja symbolirakenteet ovat todellisia fysikaalisia olioita. Ne ovat aineellisen systeemin merkityksettömiä tiloja. Symbolit ja niille suoritettavat operaatiot ovat kuitenkin semanttisesti tulkittavissa. Saara Huhmarniemi 1
Monitoteutuvuusperiaate Symbolien monitoteutuvuusperiaate: salla symbolilla voi olla erilaisia fysikaalisia toteutuksia. Näin aivot olisivat orgaaninen symbolisysteemin toteutus. Tarkastellaan seuraavaksi toista symbolisysteemin toteutusta: von Neumannin konetta. von Neumannin kone Turingin koneen materiaalinen toteutus Lähes kaikki nykyiset tietokoneet ovat von Neumannin koneita Rakenne kontrolliyksikkö (CU, control unit) aritmeettis- looginen yksikkö (ALU) rekisterit muisti ja I/O (input-output) Data von Neumannin kone Data esitettään bittijonoina (1100001) (bit=binary unit) Esimerkiksi kirjain A esitetään yhden tavun avulla (tavu (byte) on esim. 8 bittiä). Tietokoneessa bittijonot esitetään sähköisesti rekistereissä. Laskenta tapahtuu bittijonolta toiselle. Rekisteri von Neumannin kone Rekisteriin tallennetaan loogisten operaatioiden syötteet ja vasteet, ennen ja jälkeen muuhun muistiin siirtämistä. Aritmeettis-looginen yksikkö Sisältää toteutukset tärkeimmistä toiminnoista, kuten loogisista operaatioista ja yhteen- ja vähennyslaskusta Saara Huhmarniemi 2
von Neumannin kone Kontrolliyksikkö Automaatti, joka toteuttaa koneen primitiiviset käskyt, joiden avulla laajempia ohjelmia voidaan toteuttaa. Muisti ja I/O Joukko osoitteita, joihin on sijoitettu toimintalaitteiden rekisterejä tai muistia. Jokaisella datayksiköllä ja ohjelmakomennolla on representaatio muistiyksikössä ja yksilöllinen sijainti tai osoite. von Neumannin kone Kontrolliyksikkö siirtää tietoa muistista rekistereihin ja valitsee seuraavan toiminnon muistista siirretyn informaation mukaan. Bittijonoja kopioidaan muistirekistereistä eri työrekistereihin, vertaillaan työrekisterien sisältöjä ja kirjoittetaan laskennan tuloksia edelleen rekisteriin. Tehtävä Tietokone on symbolisysteemi. Mitä mieltä olet tietokonemetaforasta von Neumannin arkkitehtuurin perusteella? GOFAI Tekoälyä, joka suoritetaan vonneumann-tyyppisessä koneessa kutsutaan nimellä "Good Old Fashioned Artificial Intelligence" (GOFAI). Saara Huhmarniemi 3
Turingin kone Turingin kone on eräs yksinkertainen malli symboleja prosessoivasta systeemistä. b#:# c i Turingin kone (Turing Machine, TM) koostuu äärettömän (so. rajattoman) pitkästä nauhasta, ja lukupäästä joka pystyy lukemaan ja kirjoittamaan symboleja nauhalta/nauhalle, ja liikkumaan nauhaa pitkin molempiin suuntiin. Symbolit ovat yleensä 0 ja 1, mutta periaatteessa mikä tahansa äärellinen diskreetti aakkosto kelpaa. 1 0 1 b#:# c i 1 0 1 Jokaisena ajan hetkenä lukupää on täsmälleen yhden symbolin kohdalla, ja täsmälleen tietyssä tilassa, joita lukupäällä on niinikään äärellinen määrä. Lukupään kohdalla oleva symboli ja lukupään tila yhdessä määräävät sen, mihin tilaan kone seuraavaksi siirtyy lisäksi lukupää voi korvata symbolin b#:# c toisella, muuttaa sisäistä tilaansa, ja siirtyä yhden askeleen vasemmalle tai oikealle tai pysähtyä. a Lukupään toimintasäännöt voidaan ilmaista äärellisesti (ne voidaan antaa esim. taulukkona joka määrää jokaista mahdollista tilan ja symbolin yhdistelmää vastaavan toiminnon). 1 0 1 Saara Huhmarniemi 4
b#:# c a b#:# c a 1 0 1 1 1 1 b#:# c b b# :# c b 1 1 1 1 1 1 Saara Huhmarniemi 5
b# :# c c b# :# c c 1 1 1 1 1 1 1 b# :# c H Turingin kone suorittaa komputaatioita siten, että se muuntaa annetun syötteen tulosteeksi systemaattisesti, aina tiettyä matemaattista funktiota noudattaen. input, "syöteinformaatio", symbolirakenne/merkkijono nauhalla ennen ensimmäistä laskennan askelta output, "tulosteinformaatio", symbolirakenne/merkkijono nauhalla koneen pysähtyessä Universaali Turingin kone 1936 Alan Turing osoitti, että oli olemassa yleinen kone, joka voi suorittaa minkä tahansa laskettavan funktion. Koneella voi simuloida mitä tahansa tietokoneohjelmaa. Ehtona on, että laskenta-aikaan ja muistin määrään ei kiinnitetä huomiota. Universaalin Turingin koneen idea on, että ohjelman suoritusohjeet on kirjoitettu samalle nauhalle kuin ohjelman syöte ja tulos. Saara Huhmarniemi 6
Universaali Turingin kone Church-Turing -teesi: Universaali symbolisysteemi voi simuloida mitä tahansa algoritmisesti laskettavaa systeemiä. (Churchin menetelmä on ekvivalentti.) Systeemi on algoritmisesti laskettava, jos on olemassa jokin algoritmi, joka kuvaa sen toiminnan. (algoritmi, joka kuvaa systeemin tuloksen kaikilla mahdollisilla syötteillä) Esimerkiksi neuraaliverkot ovat algoritmisesti laskettavia systeemejä. Ratkeavuus Turingin kone M voi jättää hyväksymättä merkkijonon joko joutumalla hylkäävään lopputilaan tai jäämällä ikuiseen silmukkaan. Totaalinen Turingin kone pysähtyy joko hyväksyvään tai hylkäävään lopputilaan. Päätösongelmia kutsutaan ratkeaviksi. Ongelmia, joissa Turingin kone pysähtyy ainoastaan myönteisissä tapauksissa kutsutaan osittain ratkeaviksi. Ratkeamattomuus Algoritmin tai Turingin koneen toimintaa koskevat ongelmat ovat usein ratkeamattomia. Turingin koneen M toimintaa koskevia ominaisuuksia ovat esimerkiksi: M pysähtyy kaikilla syötejonoilla M hyväksyy jonkin syötejonon n kappaleessa askeleita. M hyväksyy äärettömän monta merkkijonoa Universaali Turingin kone Muodostetaan Turingin kone, joka tutkii Turingin koneiden ominaisuuksia: universaalikone. saa syötteenään koneen M koodin ja tämän syötteen w. pysähtyy vain jos M pysähtyy syötteellä w. tulostaa saman kuin M tulostaa syötteellä w. Universaalikone simuloi siis mitä tahansa Turingin konetta. Ja tunnistaa jokaisen kielen, joka voidaan tunnistaa jollain Turingin koneella. Saara Huhmarniemi 7
Pysähtymisongelma Annetaan universaalikoneelle syötteenä Turingin kone M ja kysytään, pysähtyykö M syötteellä w. Universaalikone suorittaa tehtävän simuloimalla M:n laskentaa syötteellä w. Kone pysähtyy hyväksyvään lopputilaan jos koneen M suoritus pysähtyy. Jos Turingin kone M pysähtyy syötteellä w, myös universaalikone pysähtyy. Kuitenkin jos M ei pysähdy jollain syötteellä w, ei universaalikonekaan pysähdy. Ratkeamattomuus Pysähtymisongelma on osittain ratkeava ongelma. (osittain ratkeavatkin kuuluvat ratkeamattomiin) Joitain ratkeamattomia ongelmia: Predikaattikalkyylin ratkeamattomuus Church/Turing 1936: Ei ole olemassa algoritmia, joka ratkaisisi onko annettu ensimmäisen kertaluvun predikaattikalkyylin kaava s loogisesti tosi. Hilbertin 10. ongelma Ei ole olemassa algoritmia, joka ratkaisisi, onko annetulla kokonaislukukertoimisella polynomilla kokonaislukuratkaisuja. Ratkeamattomuus Ratkeamattomien ongelmien olemassaolo voidaan päätellä myös siitä, että Turingin koneiden joukko on numeroituvasti ääretön. Turingin koneet ovat äärellisiä. siispä voimme luetella kaikki Turingin koneet. Toisaalta kaikkien ongelmien joukko ei voi olla numeroituva (kaikkien päätösongelmien joukko on ylinumeroituva). Esimerkiksi jo reaalilukujen joukko on ylinumeroituva. Seuraus: on olemassa ongelmia, joita ei voida ratkaista Turingin koneen avulla. Church-Turing -teesi Church-Turing -teesistä seuraa, että jos kognitiiviset prosessit ovat algoritmisesti laskettavia, niitä voidaan simuloida tietokoneella. Ovatko kognitiiviset prosessit algoritmisesti laskettavia? Vaikka kognitiivisia prosesseja voitaisiin simuloida universaalikoneella, se voi olla käytännössä mahdotonta. Saara Huhmarniemi 8
Laskennallisesti vaikeat ongelmat Laskennan vaativuusteoria käsittelee ongelmien ratkaisumenetelmien aikavaatimuksia. Esimerkki: kauppamatkustajan ongelma, lähde: http://www.cs.helsinki.fi/u/tmielika/opetus/tkte/orponen.pdf Kauppamatkustajan on löydettävä annetun tiekartan avulla lyhin reitti, joka kulkee jokaisen kaupungin kautta. Kauppamatkustajan ongelma Ratkaisu: kokeillaan kaikki mahdolliset reitit ja valitaan lyhin. Ei onnistu käytännössä, esimerkiksi jos kaupunkeja on 22, reittejä on Jos yhden reitin laskeminen kestää 1ms, algoritmin suoritus kestää 36 mrd vuotta. P-tyyppiset ongelmat Ongelmaluokka on P-tyyppinen (polynomial time) jos sen suoritusaika kasvaa polynomisesti. Sanotaan, että funktiolla on polynominen kasvu, jos on olemassa jokin polynomi p(n), siten että Kauppamatkustajan ongelma Kauppamatkustajan ongelmassa reittien määrä kasvaa eksponentiaalisesti. Tapahtuu "kombinatorinen räjähdys" Luku n, joka kuvaa ongelman suoritusaskelien määrää. Polynomissa luku n ei esiinny eksponentiaalissa. Ongelmia, jotka kuuluvat tähän vaikeusluokkaan, kutsutaan NP-tyyppisiksi (nondeterministic polynomial time). Ne ratkaistaan arvaamalla oikeita vastauksia ja testaamalla arvauksen oikeellisuutta polynomisessa ajassa. Saara Huhmarniemi 9
Tehtävä On olemassa hyvin tunnettu luokka ongelmia, jotka ovat liian vaikeita tietokoneelle tai jotka ovat todistettavasti ratkeamattomia. Tarkoittaako tämä että tekoäly on mahdotonta? The Language of Thought Combinatorial syntax Compositional semantics Brain's symbol manipulation is languagelike. Relation of LOT to natural language is an open issue. The Language of Thought Combinatorial syntax: Formal properties of representations are such that constituent representations can be combined according to rules specifying allowed modes of combination into complex representations (cf. wff). Rules are specified over representational elements that are shared by different complex representations and different individuals. The Language of Thought Compositional semantics: the meaning of a complex representation is determined by the meanings of its constituents and its mode of combination (and only them) what determines the meaning of primitive representations? conceptual role? representation-world relation? teleological function? grounding problem, problem of intrinsic intentionality, narrow vs. broad content, naturalizing semantic properties Saara Huhmarniemi 10
The Language of Thought Accounts for productivity and systematicity of cognition productivity: it is possible (in principle) to represent an infinite number of propositions with a finite architecture systematicity: being able to represent proposition P guarantees being able to represent a certain class of propositions Q, but not others R. An account of systematicity tells you which propositions Q, R are or are not thus systematically related to P (and what it is about the architecture that makes it so). Vahva symbolisysteemin hypoteesi Strong Symbol System Hypothesis Ainoastaan universaalit symbolisysteemit ovat kykeneviä ajattelemaan. Informaatio Aivot ja analogia Mitä ihmisen kognitiivisia ominaisuuksia voidaan mallintaa? Mitä ei voida? Laadullisesti erilaisia kognition ominaisuuksia Niille ominaisuuksille, joita on yritetty mallintaa yhteistä on se, että ne käsittelevät informaatiota. Aivot voidaan nähdä informaatiota prosessoivina systeemeinä laajassa merkityksessä, ainoastaan symbolien laskennallisen manipuloinnin sijaan. (Tällöin saadaan mukaan määritelmään myös hermoverkot ym.) Esimerkkejä analogia-representaatioista: Arkkitehti rakentaa pienoismallin talosta. Kaaviot ovat analogia-representaatioita. Kaavioissa viiva voi tarkoittaa kappaleen massaa, matkaa, nopeutta, ym. On ehdotettu, että aivot muodostavat ulkomaailmasta analogia-representaatiota, eräänlaisia "malleja", joita voi manipuloida kuten fysikaalisia objekteja (yhdistellä, käännellä, jne.) Analogia-representaatio olisi siis hyvin erilainen kuin kielellinen representaatio. Saara Huhmarniemi 11
Produktiosysteemit Tarkastellaan erästä keskeistä kognitiivista mallia: produktiosysteemiä. Produktiosysteemejä on käytetty useissa kognitiivisissa arkkitehtuureissa, kuten ACT (Anderson 1983) ja SOAR (Laird et. al. 1987) Produktiosysteemit Produktiosysteemi on sovelluskohteesta riippumaton päätöksenteon ja järkeilyn malli. Kaksi muistivarastoa työmuisti produktiomuisti Prosessointi tapahtuu kahdessa vaiheessa: Tunnistus, jossa systeemi valitsee säännön. Toiminta, jossa systeemi käyttää sääntöä. Sääntö muuttaa työmuistin sisältöä ja/tai aiheuttaa jonkin ulkoisen toiminnon. Produktiosysteemit Työmuisti on tietokanta, joka on joukko toisistaan riippumattomia propositioita p 1, p 2, p 3,... Produktiosäännöt Sääntömuisti sisältää päättelysääntöjä, jotka ovat muotoa: p 1 " p 2... # act 1 " act 2... esim. shorter(anna, beth) Sääntömuisti sisältää päättelysääntöjä, jotka ovat muotoa: p 1 " p 2...# act 1 " act 2... IF : THEN: shorter(x,y) delete shorter(x,y) add taller(y,x) Saara Huhmarniemi 12
Produktiosäännöt Jos työmuistin sisältö on esimerkiksi shorter(anna, beth) voidaan soveltaa produktiosääntöä: IF: THEN: shorter(anna,beth) delete shorter(anna,beth) add taller(beth,anna) Nyt työmuistin uusi sisältö on taller(anna, beth) Produktiosysteemit Mahdollisia toimintoja ovat esimerkiksi elementtien lisääminen ja poistaminen työmuistista. Jokaisella suoritussyklissä systeemi etsii ne säännöt, joiden vasen puoli toteutuu työmuistin sisällön perusteella. (match phase) Tämän jälkeen systeemi päättää, mikä produktioista "laukeaa". (conflict resolution) Jokaisessa syklissä suoritetaan valittujen sääntöjen määrittelemä toiminta. Produktiosysteemit Produktiosysteemiin voidaan lisätä tavoitteita kuvaavia meta-produktioita, jotka ohjaavat ongelmanratkaisua. Konfliktinratkaisussa (conflict resolution) valitaan sopivista produktioista se joka laukeaa. Tähän voidaan käyttää erilaisia strategioita. Produktioille voidaan määritellä esim. että ne laukeavat vain kerran ongelmanratkaisun aikana. Oletetaan seuraava sääntömuisti, jossa kaikki produktiot ovat vain kerran laukeavia: 1. IF: nisäkäs(x) THEN: lisää jalat(x,4) 2. IF: nisäkäs(x) & ihminen(x) THEN: lisää jalat(x,2) 3. IF: jalat(x,2) THEN: lisää seisoo(x) 4. IF: jalat(x) THEN: lisää kävelee(x) 5. IF: kotieläin(x) & ihminen(y) THEN: lisää hoitaa(y,x) Oletetaan työmuisti: { kotieläin(lehmä), ihminen(pekka), nisäkäs(pekka)} Saara Huhmarniemi 13
1. syklissä etsitään sopivat säännöt: 1. IF: nisäkäs(x) THEN: lisää jalat(x,4) 2. IF: nisäkäs(x) & ihminen(x) THEN: lisää jalat(x,2), poista nisäkäs(x) 5. IF: kotieläin(x) & ihminen(y) THEN: lisää hoitaa(y,x) Työmuisti: { kotieläin(lehmä), ihminen(pekka), nisäkäs(pekka)} Säännöt 1 ja 2 muodostavat konfliktin, joka ratkaistaan tässä valitsemalla tarkempi sääntö. Suoritettavat toiminnot: lisää jalat(pekka,2), poista nisäkäs(x), lisää hoitaa(pekka, lehmä) Uusi työmuisti: {kotieläin(lehmä), ihminen(pekka), jalat(pekka,2), hoitaa(pekka,lehmä)} Sääntömuisti, josta käytetyt säännöt on poistettu: 1. IF: nisäkäs(x) THEN: lisää jalat(x,4) 3. IF: jalat(x,2) THEN: lisää seisoo(x) 4. IF: seisoo(x) THEN: lisää kävelee(x) 2. syklissä valitaan sääntö 3 jolloin toiminto on: lisää seisoo(pekka) Uusi työmuisti: {kotieläin(lehmä), ihminen(pekka), jalat(pekka,2), hoitaa(pekka,lehmä), seisoo(pekka)} Produktiosysteemin toiminta jatkuu sykleittäin, kunnes sopivia produktioita ei enää löydy tai päästään haluttuun lopputilaan. Oppiminen Systeemi "oppii" muodostamalla päättelyketjuista produktioita. Edellisessä esimerkissä esimerkiksi päättely: IF: nisäkäs(x) & ihminen(x) THEN: jalat(x,2) IF: jalat(x,2) THEN: seisoo(x) IF: seisoo(x) THEN: kävelee(x) voi päättelyketjun suorituksen jälkeen automatisoitua produktioksi: IF: nisäkäs(x) & ihminen(x) THEN: kävelee(x) Saara Huhmarniemi 14
Produktiosysteemi Produktiosysteemit Havainnot Tietopohjainen mietintä Refleksit Toiminta Nykyaikaiset modernit produktiosyteemit voivat käsitellä reaaliaikaisesti jopa yli miljoonaa sääntöä. Sääntöjen valinta voidaan toteuttaa rinnakkaisesti, joten se on tehokasta. Sen sijaan sääntöjen sovellus on sarjallista. Tehtävä Produktiosysteemit Mitkä produktiosysteemin ominaisuudet mallintavat ihmisen kognitiota? Psykologinen uskottavuus? Psykologinen uskottavuus? työmuisti, pitkäkestoinen muisti? ajattelu nähdään hahmontunnistuksena Tietty kuvio laukaisee pitkäkestoisesta muistista tietyn toiminnon. Vastaavasti, kun tiettyä vihjettä ei ole läsnä, haluttua ajatusta ei saada mieleen tai toimintoa ei pystytä suorittamaan. modulaarinen Saara Huhmarniemi 15
ketjutus ja taaksepäinketjutus Produktiosysteemi on käyttää loogista päättelyä ketjuttamalla (forward chaining): siinä lähdetään atomilauseista soveltaen Modus Ponens -sääntöä ja lisäten faktoja työmuistiin, kunnes kaikki mahdolliset johtopäätökset on tehty. Toinen tapa käyttää loogista päättelyä algoritmissa on taaksepäinketjutus (backward chaining). Tällaiset algoritmit lähtevät lopputilasta taaksepäin, kunnes löytävät faktoja jotka tukevat todistusta. Rationaalinen agentti Agentti on jokin joka toimii. Joitain ominaisuuksi: autonominen kontrolli ympäristön havainnointi muutokseen sopeutuminen Rationaalinen agentti saavuttaa parhaan lopputuloksen olosuhteet huomioon ottaen. Rationaalinen agentti Rationaalinen = tehdä "järkevin" valinta Rationaalisuus kullakin ajanhetkellä riippuu neljästä asiasta: Suoritusarvo, joka määrää onnistumisen Agentin a priori tieto Agentin toimenpidevalikoima Agentin havaintohistoria Järkevyyden kriteeri = suoritusarvo (performance measure), jonka perusteella agentti arvioi toimintaansa. Rationaalinen agentti Esimerkiksi asuntoa imuroivan agentin suoritusarvo voisi olla asunnon puhtaus ajan funktiona. Suoritusarvon valinta vaikuttaa siihen, miten agentti toimii. Miten toimii agentti, jonka suoritusarvo on suorittaa mahdollisimman paljon imurointia ajan funktiona? Saara Huhmarniemi 16
Rationaalinen agentti Rationaalinen agentti valitsee jokaiselle havaintohistorialle toimenpiteen, joka maksimoi suoritusarvon odotusarvon. Toimenpiteen valinnassa agentti käyttää havaintohistoriaa sekä agentin a priori tietoa. Rationaalisuus? Rationaalisuus Kaikkitietävyys Ei ole mahdollista todellisuudessa Selvänäköisyys Saara Huhmarniemi 17