|
|
 | | From: | Mikko Heiska | | Subject: | Re_:_Vaatimukset_ja_säännönmukaisuudet | | Date: | 21 Jan 2005 20:58:00 -0800 |
|
|
 | >> >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. >> >> Yllättävää, että kuulostaa. Itse tarkoitin fyysisestä vajaata versiota >> keksimisestä ja ajattelusta. Siis esimerkiksi q-sort >> lajittelualgoritmin keksimistä ajattelun tuloksena - outputtina, kun >> syötteenä on enemmän tai vähemmän matemaattisessa muodossa oleva >> vaatimus taulukon järjestyksestä. Tähän kyseiseen laskentaprosessiin >> tai "ajoon" voi kuulua myös mm. kuplalajittelun keksiminen ja sen >> huomaaminen hitaammaksi kuin q-sort.
>Nyt kuulostaa hieman logiikkaohjelmoinnilta,
>onko prolog tuttu?
Joskus olen siitä muutaman tekstin tullut lukeneeksi ja enimmäkseen unohtanut.
> Joskin >prolog ei kyllä optimoi varsinaisesti algoritmia, vaan siinä kuvataan >ongelma predikaattilogiikalla ja prolog ratkaisee sen yleistetyllä >algoritmilla.
Siis jos voi jatkaa esimerkkiä, niin se pystyy lajittelemaan taulukon, niinkö?
Miten ajankäyttö?
> Kaikki samat asiat toki voi tehdä millä tahansa muullakin >ohjelmointikielellä.
>Ilmeisesti siis puhut ajattelutavasta, että mikä tahansa algoritmi P >voidaan ajatella funktiona
> y = f(x,P)
>jossa x on syöte, y on vaste ja P on se ohjelma. Sitten P valitaan >optimoimalla jokin ulkoinen kriteeri (eli sakkofunktio), joka voi riippua >esimerkiksi algoritmin nopeudesta kohdekoneella.
En sanoisi, että miljoonat(tarkentakaa) maailman ohjelmoijat työkseen "valitsevat" ohjelmia. He ohjelmoivat hyödyntäen mekanismejaan, joita he eivät osaa selittää.
Toisaalta, jos välttämättä haluttaisiin, niin voisi tehdä sellaisen softan, johon syötetään vaatimus esim. lajitellusta taulukosta. Sitten se alkaa käydä läpi valtavaa määrää arpomiaan ohjelmia ja testaa jokaisen kohdalla, täyttääkö se syötteen vaatimuksen eli esim. järjestää taulukon ja ilman bugeja. Tätäkö tarkoitit?
Tarkoitit tai et, ja vaikka sillä on kovin vähän tekemistä oikean älyn kanssa, se on silti tavallaan hauska ajatus, jota on hyvä viedä hieman pidemmälle. Millainen se joka ohjelmalle tehtävä testi voisi olla?
>Kyllähän tämän voi tehdä, >jos haluttu lopputulos on tarpeeksi tarkkaan tiedossa, mutta en kyllä näe >yhteyttä inhimilliseen keksimiseen ja ajatteluun.
>Vai ajatteletko, että >ihminenkin toimisi jotenkin näin? Tuskin.
Tuo "näin" vaatii vielä selvennyksen ennen vastaamista. Toivottavasti kyseessä ei ole olkinukke. Siis en ole varma mitä tarkoitat "valitsemisella" tässä yhteydessä. En ole tietokoneasiantuntija (ks. keskustelu tsunamivaroitusjärjestelmästä "sfnet.keskustelu" ryhmässä).
>On muuten hyvin rajoittavaa puhua algoritmeista kuten q-sort, koska nehän >rajoittavat funktiot f() vain sellaisiksi joita voidaan laskea >sekventiaalisella (Turing) tietokoneella äärellisellä askelmäärällä. Tähän
>viitekehykseen eivät mahdu edes perus osittaisdifferentiaaliyhtälöinä >esitettävät fysikaaliset mallit.
Kuuluuko lentosimulaattorit tuohon? Entä autonomista (tai gps- tai laserohjattua) lentolaitetta ohjaavat softat? Entä galaksisimulaatiot?
>Ilman approksimointia (stokastiikkaa) ei >selvitä, jos tälle tielle lähdetään.
Jostain pitää aloittaa.
Tässä tapauksessa (ja joskus muutenkin) on parasta käyttää ongelmaesimerkkeinä niin yksinkertaisia eli lyhyitä tapauksia, että ne voisi ratkaista jollain simppelimmällä ehkä tunnetulla tavalla, joka ei kuitenkaan kelpaisi mutkikkaampien eli pidempien tapauksien ratkaisemiseen.
Älyn selittämisen ongelmassa filosofinen puoli on ylivoimaisesti kovin. Älyn teoria on ennenkaikkea filosofiaa, vaikka se onkin yhtä aikaa myös matematiikkaa ainakin osittain, ja sovellusalueet esim. tekniikassa ovat sitten täysin oma kysymyksensä. Tietojenkäsittelyoppia työkseen kehittävät osannevat yhdistää siihen filosofisluonteiseen tietoon ne osittaisdifferentiaaliyhtälöt yms. suhteellisen helposti.
>> >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. >> >> En välttämättä nimittäisi sitä älyn mekanismiksi. Ettet vaan sorru ns. >> olkinukkien rakenteluun, jos yrität osoittaa ettei joku ole oikeaa >> älyä...
>Pointtini oli se, että kuvasin systeemin, jolla ei oikeasti ole mitään >tekemistä älyn mekanismien kanssa ja millä on ne ominaisuudet kuin >systeemillä jonka kuvasit.
Et kuvannut sitä mitä kuvasin, ensinnäkin koska tarkoitin nimenomaan älyn mekanismin käyttöä riippumatta siitä voiko homman tehdä jotenkin muutenkin. "Yksinkertaisissa" tehtävissä voi tehdä ilman älyäkin, mutta vähänkään mutkikkaammissa ongelmissa etsintäavaruus tulee niin valtavaksi, ettei mikään supertietokonekaan riitä edes kohtalaisen ratkaisun löytämiseen, jos ei käytä älyn mekanismeja. Shakki on sillä rajalla, mutta autoa ajavaa softaa, Fermat'n lauseen todistusta tai yhteiskunnallista esseetä on käytännössä mahdotonta tehdä ilman älyn mekanismeja - joihin mukaanluettuna paljon sellaista jota ei ole käsitelty tässä viestiketjussa.
Sinun kuvaamallasi laskennalla ei ollut mitään tekemistä sen kanssa mitä yritin selittää. Siis eihän sillä tavalla edes kuvata minkä tahansa algoritmin vaatimuksia. En tarkoittanut mitään parametrien optimointia ym. Sillä ei ole niitä ominaisuuksia, joita kuvasin ja tarkoitin. Ehkä olisin voinut muotoilla väitteet paremmin...
Seuraavassa url:ssä on kuvattu huonon argumentoinnin ominaisuuksia ja joukossa on mm. se "olkinukke". Se lista on muutenkin hyvä. Se on tarkoitettu kaikille lukijoille. Olisi pitänyt laittaa viime kerralla, koska osa ei ole kuitenkaan koskaan kuullut mistään olkinukeista, vaikka se onkin paljon käytetty termi. Tuota tai vastaavaa listaa pitäisi linkata sfnetiin paljon useammin, ehkä niissä automaattisissa viesteissä:
http://keskustelu.skepsis.fi/html/virhelista.htm
>> Uskotteko sfnetin tietojenkäsittelyteoreetikot ym., että tekniseen >> sivilisaatioon pystyvillä älyllisillä olennoilla(josta luokasta >> ihminen on erikoistapaus) on välttämättä joku biologinen versio >> tuosta?
>Tietojenkäsittelyteoreetikko en ole, mutta voin vastata omasta puolestani. >Ei, en usko, että älyllisillä olennoilla olisi biologista versiota tuosta. >Sehän on ihan järjetöntä, tuohan on vain yhden matemaattisen formuloinnin >rajoituksien puitteissa luotu laskentajärjestelmä, miksi pitäisi olettaa >että biologiset systeemit toimisivat näin? Toki jossain määrin >tuollaisella pystytään imitoimaan biologisten systeemien syöte-vaste >relaatioita. Mutta tämä ei implikoi sitä, että biologiset systeemit >oikeasti toimisivat niin.
Olin ja olen olennaisesti samaa mieltä, mutta tarkentaisin tuota sanalla "välttämättä". Eli mistä sitä tietää millaista biologiaa on toisilla tähdillä, älyllisten tai älyttömien olentojen yhteydessä (jos niitä siellä on). Mutta tekniikalle välttämätöntä sellainen laskentabiologia ei tosiaan ole, ja taitaa olla aika epätodennäköistäkin per sivilisaatio. Periaatteessa saattaisi olla mahdollista osoittaa, ettei evoluutio pysty tuottamaan jotain tiettyä mekanismia, mutta sellainen osoittaminen on äärimmäisen vaikeaa lähes missä tahansa yhteydessä. Mistään Maan elämästä moista ei ole osoitettu ja vaikka se osoitettaisiin älystä, niin se vain tarkoittaisi antrooppisen periaatteen jälleen uutta käyttöä, ja sitä ettei muita sivilisaatioita olisi.
|
|
 | | From: | Simo | | Subject: | Re: Re_:_Vaatimukset_ja_säännönmukaisuudet | | Date: | Mon, 24 Jan 2005 00:10:15 +0200 |
|
|
 | On Sat, 21 Jan 2005, Mikko Heiska wrote:
> > Joskin > >prolog ei kyllä optimoi varsinaisesti algoritmia, vaan siinä kuvataan > >ongelma predikaattilogiikalla ja prolog ratkaisee sen yleistetyllä > >algoritmilla. > > Siis jos voi jatkaa esimerkkiä, niin se pystyy lajittelemaan taulukon, > niinkö? > > Miten ajankäyttö?
Käytännössä Prologissa kuvataan algoritmit ihan yhtä suoraan kuin muissakin ohjelmointikielissä, vaikka periaatteessa ehdot ovatkin tyyppiä "lista L on järjestyksessä jos i < j implikoi L_i <= L_j." Mutta siis periaatteessa siinä kuvataan mitä halutaan saada aikaan pikemminkin kuin miten se tehdään. Ja kuvauskielenä on predikaattilogiikka. Kannattaa tutustua.
Tuon lajittelualgoritmin ratkaisemisen suurin ongelma taitaa olla kuinka se kuinka oikean ratkaisun ominaisuudet kuvataan. Juuri siksi käytännössä, kun prologissakin kuvataan qsort, insertion-sort tms. se tehdään vähän samankaltaisella tavalla kuin jos ne kuvattaisiin proseduraalisesti. Jos näin ei tehtäisi, "oikeita" ratkaisuja olisi ääretön määrä ja suurin osa näistä hyvin huonoja. Sama pätee aika pitkälle kaikkiin muihin matemaattisiin kuvaustapoihin.
> > y = f(x,P) > > > >jossa x on syöte, y on vaste ja P on se ohjelma. Sitten P valitaan > >optimoimalla jokin ulkoinen kriteeri (eli sakkofunktio), joka voi > >riippua esimerkiksi algoritmin nopeudesta kohdekoneella. > > >Kyllähän tämän voi tehdä, > >jos haluttu lopputulos on tarpeeksi tarkkaan tiedossa, mutta en kyllä > >näe yhteyttä inhimilliseen keksimiseen ja ajatteluun. > > >Vai ajatteletko, että > >ihminenkin toimisi jotenkin näin? Tuskin. > > Tuo "näin" vaatii vielä selvennyksen ennen vastaamista. Toivottavasti > kyseessä ei ole olkinukke. Siis en ole varma mitä tarkoitat > "valitsemisella" tässä yhteydessä. En ole tietokoneasiantuntija (ks. > keskustelu tsunamivaroitusjärjestelmästä "sfnet.keskustelu" ryhmässä).
Olin ehkä hieman huolimaton sanavalinnoissani, mutta kai piti sanomani, että tietojenkäsittelytieteestä on minun mielestäni aika huono etsiä selityksiä tai analogioita älylle tai muulle inhimilliselle toiminnalle, koska tietojenkäsittelyjärjestelmät ovat hyvin rajoittuneita. Vaikka ne ovat hienoja ja monimutkaisen tuntuisia, ne ovat yllättävän rajoittuneita siinä mihin ne teoriassakaan voisivat pystyä. Tietojenkäsittely toimii niin kuin toimii vain siksi, koska joku matemaatikko joskus kauan sitten päätti ottaa järjestelmän perusoperaatioiksi ne mitä nykyään käytetään. Tai ei ihan mutta melkein.
Voi olla, että olen väärässäkin mutta tuon käsityksen olen saanut omasta tietojenkäsittelyllisestä näkökulmastani. Enintään voidaan mallintaa (matkia) ihmisen toimintaa ja filosofiaa näillä tietojenkäsittelyn käsitteillä, mutta mitään filosofian korkeamman tason käsitteitä on mielestäni aika toivotonta yrittää selittää tietojenkäsittelyllisillä käsitteillä. Toki "ohjelma" voi olla muutakin kuin tietojenkäsittelyllinen ohjelma, mutta tällöin ei puhuta tietojenkäsittelystä vaan jostain muusta. Ja silloin myöskään muut tietojenkäsittelyn käsitteet eivät päde.
> >Pointtini oli se, että kuvasin systeemin, jolla ei oikeasti ole > >mitään tekemistä älyn mekanismien kanssa ja millä on ne ominaisuudet > >kuin systeemillä jonka kuvasit. > > Et kuvannut sitä mitä kuvasin, ensinnäkin koska tarkoitin nimenomaan > älyn mekanismin käyttöä riippumatta siitä voiko homman tehdä jotenkin > muutenkin. "Yksinkertaisissa" tehtävissä voi tehdä ilman älyäkin, > mutta vähänkään mutkikkaammissa ongelmissa etsintäavaruus tulee niin > valtavaksi, ettei mikään supertietokonekaan riitä edes kohtalaisen > ratkaisun löytämiseen, jos ei käytä älyn mekanismeja. Shakki on sillä > rajalla, mutta autoa ajavaa softaa, Fermat'n lauseen todistusta tai > yhteiskunnallista esseetä on käytännössä mahdotonta tehdä ilman älyn > mekanismeja - joihin mukaanluettuna paljon sellaista jota ei ole > käsitelty tässä viestiketjussa.
Niin no juu, kuvasin vain systeemin jolla on samat tietojenkäsittelylliset ominaisuudet. Tietojenkäsittelyn näkökulmasta muuten suurin ongelma tuossa auton ajamisessa ja Fermatin lauseen todistamisessa on sopivan informaation esitystavan ja halutun lopputuloksen esitystavan löytäminen. Periaatteessa sen jälkeen kun nämä ovat olemassa, ratkaisumenetelmän tekeminen ei enää ole ongelma. Tämän esitystavan löytämistä voidaan käsittääkseni kutsua myös mallintamiseksi (tai mallittamiseksi). Riippumatta siitä tehtiinkö ratkaiseminen tietokoneella tai älyn mekanismeilla pitää ongelmalla olla jokin esitystapa (l. malli).
Tuon yhteiskunnallisen esseen tekeminen perustuu taas ihan kokonaan etukäteisinformaatioon, ja jos tälle on olemassa jokin sopiva esitystapa samoin kuin halutulle lopputulokselle, niin kyllä tuo onnistuu tietokoneellakin. Tuon etukäteistiedon esitystavan keksiminen ja sen syöttäminen tietokoneelle onkin jo suurempi ongelma.
> Sinun kuvaamallasi laskennalla ei ollut mitään tekemistä sen kanssa > mitä yritin selittää. Siis eihän sillä tavalla edes kuvata minkä > tahansa algoritmin vaatimuksia. En tarkoittanut mitään parametrien > optimointia ym. Sillä ei ole niitä ominaisuuksia, joita kuvasin ja > tarkoitin. Ehkä olisin voinut muotoilla väitteet paremmin...
Itse asiassa jos puhutaan algoritmista matemaattisena (tietojenkäsittelyn) käsitteenä, niin sillä selitykselläni on suurinpiirtein samat ominaisuudet kuin millä tahansa muulla algoritmiformalismilla. Tuolla parametrien optimointiesitystavalla on vaan helpompaa nähdä tietyt tietojenkäsittelyn rajoitteet, mistä ei pääse yli vaikka kuinka yrittäisi.
-- - Simo
|
|
|