|
|
 | | From: | Mikko Heiska | | Subject: | Vaatimukset_ja_säännönmukaisuudet | | Date: | 26 Dec 2004 17:49:58 -0800 |
|
|
 | Tämä on samasta aiheesta kuin aiempi "ajattelun luonteesta ja toimintaperiaatteesta" juttu. Yritän kertoa niistä tietojenkäsittelyllisistä asioista jotka melko vahvan käsitykseni mukaan mahdollistavat aidon älyn toiminnan ja ilmenemisen.
Toivottavasti asiantuntijoilla ja muilla on jotain lisättävää tai vastattavaa, ja jos jotain on väärin tai huonosti(vaikka sananvalinta - en valita pilkunviilauksesta), toivottavasti se huomataan ja siitä kerrotaan minulle ja mielellään muille(mieluummin sfnet kuin email). Sfnetin käyttäjillä riittää ihmeen paljon energiaa korjata esim. kreationistien huuhailuja(tavallaan hyvä niin), joten sopisi odottaa löytyvän energiaa tälle paljon tärkeämmälle aiheelle.
sfnet.tiede.tietotekniikka on parasta olla jakelussa, mm. koska on syytä olettaa tietojenkäsittelyteorian(vai opin?) tuntijoiden saavan tästä irti kiintoisimpia näkemyksiä. Jatkot pelkästään sinne jos siltä tuntuu.
Älkää valittako tämän viestin ja joidenkin muiden viestien ihmiskuvan karkeudesta, koska tässä on päätarkoitus kuvata älyä - sanoisinko - matemaattisena abstraktiona. Siinä riittää ihan tarpeeksi haastetta. Tässä viestissä ei ole tavoitteena tai vaatimuksena kuvata "yhtä lajia", vaikka se voikin joskus olla apukeinona.
************ Asiaan:
Tavallisten arkistenkin käsitteiden merkitys koostuu fyysiseen viittaavasta ja (toiseksi) laajassa mielessä matemaattiseksi katsottavasta informaatiosta, tai pelkästä matemaattisesta. Matemaattinen tarkoittaa tässä myös sellaisia käsitteitä, joita 95% ihmisistä ei äkkiseltään nimittäisi matematiikaksi, eli esim. "ja" sanan käsitettä. Fyysisiin kokonaisuuksiin ja niihin liittyviin parametreihin/muuttujiin viitataan koodilla. Muuttujan sisältönä voi olla (desimaali)luku tai toinen koodi. Jokaisella koodilla ja abstraktimmin sanottuna käsitteellä, ei ole kielessä sanaa, mutta jokaisella sanalla on käsite.
Jos jostain kumman syystä ei olisi mahdollista viitata fyysiseen, ja ilmaisukeinojen joukko pystyisi kuvailemaan pelkkiä matemaattisia asioita, niin periaatteessa sekin riittäisi monenlaisen hyödyllisen ajattelutyön abstraktiin kuvailuun. Ehkä tärkeimpänä esimerkkinä osa ohjelmointiin liittyvästä ajattelusta.
Maailmasta (saadusta datasta) opitaan säännönmukaisuuksia (jotain vajaatakin tietoa siitä miten data ja maailma poikkeaa satunnaisesta ja täydestä kaaoksesta) ja ohjelman vaatimuksena on tehdä jotain tietyllä tavalla säännöllistä edes suhteessa syötteeseen. Samalla formaatilla/formalismilla voi kuvata ohjelman vaatimuksen ja datasta opitun säännönmukaisuuden. Ohjelmaa tehdessä älyn mekanismit voivat ilmentää luovuuttaan, keksimällä mahdollisimman nopean algoritmin, joka tekee mitä vaatimuksessa on. Yhtä vaatimusta kohden voi olla ties kuinka monta eri algoritmia.
Vaatimuksesta, alivaatimuksista jne. pitää yrittää päätellä mitä muita tapoja on muotoilla sama outputiin haluttu tilanne. Ongelma voi lähteä jakautumaan jonkun kehitys/pilkkomishierarkiansa alivaatimuksiksi kun "kuvittelee" erilaisia syötteitä jäsennellysti, jotta voisi keksiä niihin sopivia muuntovaatimuksia, rajapintoja ja iteraatiosilmukanmäärittelyjä.
Jos 2 mustavalkoisessa kuvassa olevat nurmikot näyttää erilaiselta, silloin niistä on (päässä/muistissa) eri "vaatimusten"/säännönmukaisuuksien ominaisuusjoukot. Jos kyseisistä joukoista kehittäisi ohjelmat normaalien ajattelumekanismien pyörityksellä, niin niiden ohjelmien tuotoksista ei välttämättä tulisi mitään nurmikon näköistä, mutta kuitenkin 2 eri näköistä kuvaa, jotka ovat alkuperäisiä kuvia selvemmin eri näköisiä, mutta tylsemmännäköisiä kuvia. Myös jostain nätistä fraktaalista muodostuisi tällä tavalla kovin tylsä kuva, koska evoluutio ei ole "tarkoittanut" älyä mihinkään fraktaalien pakkaamiseen. Vaihtelee paljon ihmisen mukaan miten hyvin kukin muistaa ja tiedostaa kuvien ominaisuuksia, ja pystyy piirtämään tai luokittelemaan niitä jälkeenpäin. Tavallaan kumma miten vähillä viivoilla pilapiirtäjä pystyy tekemään tietystä oikeasta ihmisestä muistuttavan kuvion.
Säännönmukaisuuksien kuvailutavan valinnassa älyn teorian universaalius loppuu, koska on valittava joku mielivaltainen "biologisesti uskottava" tai tilannekohtaisesti tehokkain formalismi, joka pystyy kuvaamaan minkä tahansa ohjelman vaatimuksen. Universaaliuden käytännöllistä merkitystä tässä voi kuvata vain spekuloimalla, että jonkun toisen tähden avaruusolentojen biologiasta abstrahoitu formalismi voi olla eri tavalla toimiva, vaikka lopputulos olisi aikaa/askelmäärää lukuunottamatta abstraktisti tasan sama.
Jos täsmällisiä lajikohtaisia vastauksia haluaa, pitäisi tehdä valtavan paljon ajattelua vaativaa dna-datan analyysia, mikroskoopilla katsomista tai erittäin ovelasti suunniteltuja psykologisia kokeita. Yhdestäkään edellisestä kolmesta en välitä tarkemmin arvata mitä se voisi pitää sisällään.
Kun formalismiin liitetään yhteys fyysiseen, se voi kuvata aivan kaikkea mahdollista ajattelua ( saadun datan, laskennan ja tuloksen suhdetta). Fyysisen oppimiseen liittyy eräänlainen tilastointi. Fyysisessä, joka päätelmään ja päätökseen liittyy todennäköisyys. Eri asia missä tilanteissa kannattaa todennäköisyyksiä ruveta luvuilla laskemaan tai milloin ne "luvut" sattuu tulemaan biologisesti "laskun" osaksi. Usein tai yleensä ne arvot tulee pyöristettyä nollaan tai yhteen.
Tavallista fyysisen säännönmukaisuuksien huomaamiseen käytettyä oppimista käytetään myös abstraktissa matematiikan tekemisessä. Joskus jostain matematiikasta "tulee esiin" /ilmaantuu joku esim. lukujono, josta voi yrittää nähdä jonkun säännönmukaisuuden ja edetä siitä. Lukujonoista on kokonainen nettisivusto jossain, ilmeisesti juuri sellaista etenemistapaa auttamaan. (linkkiä, kiitos?)
Säännönmukaisuuksien etsinnästä on apua muutenkin kuin lukujonojen tai lukujen kanssa. Tässä on nyt itseviittaavuutta, koska älyn teoria on yksi esimerkki.
Onko sellainen oppimisen kautta eteneminen koskaan välttämätön keino matematiikassa, vai käytetäänkö sitä vain koska se joskus tuntuu ihmisestä helpommalta?
..
|
|
 | | From: | Tapio Peltonen | | Subject: | Re: Vaatimukset ja säännönmukaisuudet | | Date: | Mon, 27 Dec 2004 15:45:18 +0000 (UTC) |
|
|
 | On 2004-12-27, Mikko Heiska wrote:
> sfnet.tiede.tietotekniikka on parasta olla jakelussa, mm. koska on > syytä olettaa tietojenkäsittelyteorian(vai opin?) tuntijoiden saavan > tästä irti kiintoisimpia näkemyksiä. Jatkot pelkästään sinne jos siltä > tuntuu.
Ohjaan jatkot .tieteeseen, koska menee yleistieteelliseksi enemmän kuin tietotekniseksi.
En yritä kommentoida itse asiaa, koska jäin jotenkin jumiin tämän tekstin kanssa, en saanut siitä kunnolla tolkkua. Haluaisin aluksi selvennystä erääseen seikkaan:
> Tavallisten arkistenkin käsitteiden merkitys koostuu fyysiseen > viittaavasta ja (toiseksi) laajassa mielessä matemaattiseksi > katsottavasta informaatiosta, tai pelkästä matemaattisesta.
Hei, seis, hidasta!
Mikä on mielestäsi merkityksen ontologia?
> Matemaattinen tarkoittaa tässä myös sellaisia käsitteitä, joita 95% > ihmisistä ei äkkiseltään nimittäisi matematiikaksi, eli esim. "ja" > sanan käsitettä. Fyysisiin kokonaisuuksiin ja niihin liittyviin > parametreihin/muuttujiin viitataan koodilla. Muuttujan sisältönä voi > olla (desimaali)luku tai toinen koodi. Jokaisella koodilla ja > abstraktimmin sanottuna käsitteellä, ei ole kielessä sanaa, mutta > jokaisella sanalla on käsite.
Jokaisella sanalla on semantiikka, ja yksi tai (käytännössä aina) useampia pragmaattisia merkityksiä.
Tämä ei koske ainoastaan kieltä, vaan ylipäätään kaikkia kuvausjärjestelmiä.
Merkityksen ontologia on normatiivinen. Merkitys on intersubjektiivinen, sosiaalinen ilmiö, joka perustuu (vähintään) kolmannen tason vastavuoroiseen tietoon. "Minä tiedän; minä tiedän, että sinä tiedät; minä tiedän, että sinä tiedät, että minä tiedän." Tämä normatiivisuus eli konventionaalisuus on kaikkien viestinvälitystapojen inherentti piirre. Tämä koskee sekä formaaleja, aksiomaattisia järjestelmiä että (jäsennettyä) tietoa ulkoisesta maailmasta. Näiden kaikkien merkitys on olemassa nimenomaan, ja minun mielestäni ainoastaan _konvention_ tasolla.
Loput alkuperäisestä viestistä leikattu pois.
-- Tapio Peltonen
|
|
 | | From: | Simo | | Subject: | Re: Vaatimukset_ja_säännönmukaisuudet | | Date: | Sun, 2 Jan 2005 21:17:06 +0200 |
|
|
 | On Mon, 26 Dec 2004, Mikko Heiska wrote:
> Maailmasta (saadusta datasta) opitaan säännönmukaisuuksia (jotain > vajaatakin tietoa siitä miten data ja maailma poikkeaa satunnaisesta > ja täydestä kaaoksesta) ja ohjelman vaatimuksena on tehdä jotain > tietyllä tavalla säännöllistä edes suhteessa syötteeseen. Samalla > formaatilla/formalismilla voi kuvata ohjelman vaatimuksen ja datasta > opitun säännönmukaisuuden. Ohjelmaa tehdessä älyn mekanismit voivat > ilmentää luovuuttaan, keksimällä mahdollisimman nopean algoritmin, > joka tekee mitä vaatimuksessa on. Yhtä vaatimusta kohden voi olla ties > kuinka monta eri algoritmia.
Tämä kuulostaa hieman siltä, mitä esimerkiksi ns. koneoppimisessa nykyään tyypillisesti tehdään. Ja siis "koneoppiminen" on hieno termi yhden lajin tilastolliselle estimoinnille, eikä se sinänsä liity minkäänlaiseen "älyyn" mitenkään. Tosin tuossa yo tekstissäsi menee hieman mallin kuvauksen formalismi, mallinnus ja estimoinnin tekevä ohjelma (algoritmi) sekaisin, jos sen koneoppimiseen projisoi.
Tuo "sama formaatti/formalismi" on tyypillisesti tässä sovelluksessa todennäköisyysjakaumat, joilla kuvataan todelliset stokastiset ilmiöt, halutut ulostulot, epävarmuudet mallissa sekä epävarmuudet ennusteissa. Se "älyn mekanismi" on vaan joku sopiva menetelmä, jolla niitä mallintavien jakaumien parametreja optimoidaan/estimoidaan/samplataan.
Koneoppimisessa toimitaan tyypillisesti näin:
1. Valitaan mittausdatasta sopivat piirteet, esimerkiksi joidenkin filttereiden ulostulot, tiettyjen taajuuskomponenttien määrät, tai vastaavat. Tässä voidaan käyttää myös jotain PCA:ta, ICA:aa tai SOM:ia piirteiden valinnassa.
2. Määritellään mitä ja miten mittausdatan perusteella halutaan päätellä eli halutaanko luokitella jotain, ennustaa jonkin ulostulon arvoa muiden ulostulojen arvoista vai jotain muuta.
3. Valitaan jokin semiparametrinen malli, esimerkisi jokin niin sanottu neuroverkkomalli (MLP, GMM, ...), ihan tavallinen lineaariregressiomalli tai joku muu.
4. Estimoidaan mallin parametrit jollakin sopivalla numeerisella menetelmällä. Käytännössä tarvitaan optimointia, numeerista integrointia, MC-samplausta tai vaikkapa evoluutiopohjaista (geneettistä) optimointia riippuen mitä mallia käytetään ja miten.
Kohdassa 1 tyypillisesti matkitaan esimerkiksi ihmisen silmän tai korvan toimintaa, jotta saadaan keksittyä hyvät piirteet. Mutta joka tapauksessa näiden piirteiden valinta on aika pitkälle sellaista hihasta vetämistä. Kohdassa 2 tehdään matemaattinen malli ilmiölle eli kirjoitetaan uskomukset ilmiöstä funktionaaliksi ja stokastisiksi riippuvuuksiksi, ja tämä kohta on siis se missä koko homman varsinainen "älykkyys" on. Kohdassa 3 voidaan lisätä malliin regressiofunktiot tuntemattomien funktioiden paikalle. Kohta 4 taas on periaatteessa vain olemassaolevien estimointialgoritmien soveltamista.
> Jos 2 mustavalkoisessa kuvassa olevat nurmikot näyttää erilaiselta, > silloin niistä on (päässä/muistissa) eri > "vaatimusten"/säännönmukaisuuksien ominaisuusjoukot. Jos kyseisistä > joukoista kehittäisi ohjelmat normaalien ajattelumekanismien > pyörityksellä, niin niiden ohjelmien tuotoksista ei välttämättä tulisi > mitään nurmikon näköistä, mutta kuitenkin 2 eri näköistä kuvaa, jotka > ovat alkuperäisiä kuvia selvemmin eri näköisiä, mutta tylsemmännäköisiä > kuvia. Myös jostain nätistä fraktaalista muodostuisi tällä tavalla kovin > tylsä kuva, koska evoluutio ei ole "tarkoittanut" älyä mihinkään > fraktaalien pakkaamiseen. Vaihtelee paljon ihmisen mukaan miten hyvin > kukin muistaa ja tiedostaa kuvien ominaisuuksia, ja pystyy piirtämään > tai luokittelemaan niitä jälkeenpäin. Tavallaan kumma miten vähillä > viivoilla pilapiirtäjä pystyy tekemään tietystä oikeasta ihmisestä > muistuttavan kuvion.
Konenäössä kuvat tyypillisesti käsitellään muodostamalla piirteet esimerkiksi erilaisten suotimien ulostulona tai vastaavina, jonka jälkeen ennusteet voidaan tehdä jollain semiparametrisella (vaikkapa neuroverkko-) mallilla. Toinen tapa on tehdä Markov Random Field malli kuvalle, joka on hieman samansukuinen tekniikka. Mutta joka tapauksessa estimoinnista saadaan tuloksena ne säännönmukaisuudet mitä valitulla matemaattisella mallilla sieltä voidaan saada ulos. Mitään maagista tai "älykästä" tässä ei kuitenkaan missään tapauksessa ole.
Fraktaalit ovat siinä mielessä vastakkaisia koneoppimisen kanssa, että fraktaaleissa ideana on kuvata lyhyesti äärettömän tarkkoja yksityiskohtia. Tilastollisessa analyysissa - kuten koneoppimisessa - ideana on taas kuvata mahdollisimman oleellisia asioita pienempien epäoleellisuuksien kustannuksella. Eli fraktaalit pyrkivät yksityiskohtiin, kun taas koneoppiminen kokonaisuuteen. Tosin kyllä IFS-tyyppisiä fraktaaleja on kyllä käytetty generatiivisina malleina kuvien pakkaamisessa, eli eivät ne ihan vastakkaisia ole.
> Säännönmukaisuuksien kuvailutavan valinnassa älyn teorian > universaalius loppuu, koska on valittava joku mielivaltainen > "biologisesti uskottava" tai tilannekohtaisesti tehokkain formalismi, > joka pystyy kuvaamaan minkä tahansa ohjelman vaatimuksen. > Universaaliuden käytännöllistä merkitystä tässä voi kuvata vain > spekuloimalla, että jonkun toisen tähden avaruusolentojen biologiasta > abstrahoitu formalismi voi olla eri tavalla toimiva, vaikka lopputulos > olisi aikaa/askelmäärää lukuunottamatta abstraktisti tasan sama.
Niinpä, probabilistinen päättely on itse asiassa vain meidän maailmaamme sopivaa päättelyä. Tai siis se, että Kolmogorovin aksiomatisoimalla todennäköisyyslaskennalla voidaan mallintaa maailmaa on empiirinen tulos. Se ei kuitenkaan tarkoita sitä, ettei todennäköisyyspohjainen päättely voisi toimia myös muunlaisissa maailmoissa. Ja vaikkei, sama formalismi voisi joka tapauksessa olla käytössä, mutta sitä ehkä vaan sovellettaisiin eri tavalla luonnon ilmiöiden kuvaamiseen.
En kyllä äkkiä sekoittaisi mitään "aikaa/askelmäärää" tälle abstraktiotasolle. Ilmeisesti aika ja askelmäärä mihin viittaat tarkoittaa jotakin sekventiaalisen laskentasysteemin aikaa tai askelmäärää? Mutta eihän sillä ole mitään tekemistä tuon päättelymekanismin kanssa. Jos formalismi eroaa tarpeeksi, niin voi olla ettei sekventiaalisella laskentasysteemillä (kuten Turingin laskentamalli) enää voi implementoida sitä mallia, eikä voida puhua mistään askelmääristä.
> Tavallista fyysisen säännönmukaisuuksien huomaamiseen käytettyä > oppimista käytetään myös abstraktissa matematiikan tekemisessä. Joskus > jostain matematiikasta "tulee esiin" /ilmaantuu joku esim. lukujono, > josta voi yrittää nähdä jonkun säännönmukaisuuden ja edetä siitä. > Lukujonoista on kokonainen nettisivusto jossain, ilmeisesti juuri > sellaista etenemistapaa auttamaan. (linkkiä, kiitos?)
Tarkoitatko lukujonoilla aikasarja-analyysiä ja/tai signaalinkäsittelyä vai? Eiköhän nämä aikasarja-analyysin ja koneoppimisen menetelmät ole ihan periaatteeltaan samoja. En kyllä muuten usko, että abstraktissa matematiikassa kovin empiirisiä menetelmiä käytetään, vaan ne ovat ihan sovelletun matematiikan heiniä.
> Säännönmukaisuuksien etsinnästä on apua muutenkin kuin lukujonojen tai > lukujen kanssa. Tässä on nyt itseviittaavuutta, koska älyn teoria on > yksi esimerkki.
En tiedä mitä on "älyn teoria", mutta ainakin koneoppimisen (ja tilastollisen analyysin yleensä) idea on juurikin löytää nuo säännönmukaisuudet ja käyttää niitä muiden ilmiöiden ennustamiseen. Tässä sovelluksessa tosin käytössä ovat ihan samat laskentamenetelmät kuin vaikkapa ihan perinteisessä fysiikassa ja sovelletussa matematiikassa, eli tässä sovelluksessa ei valitettavasti ole sitä "älyä" yhtään...
-- - Simo
|
|
|