newsgroups-index (beta)

Current group: sfnet.tiede

Re_:_Vaatimukset_ja_säännönmukaisuudet

Re_:_Vaatimukset_ja_säännönmukaisuudet  
Mikko Heiska
 Re: Re_:_Vaatimukset_ja_säännönmukaisuudet  
Simo
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
   

Copyright © 2006 newsgroups-index   -   All rights reserved   -   Impressum