Suoritinarkkitehtuurien lähitulevaisuus

Kiinnostuneena katselin Intellin uusimman kahdeksanytimisen PC-prodessorin arkkitehtuuria ja speksejä:
http://hothardware.com/News/Buckle-Up-Intel-Preps-8Core-NehalemEX-Chips-for-March-Launch/
Siinä on kahdeksan ydintä ,joista kukin tukee 16:ta samanaikaisesti ajettava taskia, säiettä. Näyttää siltä, että tällainen SMP-arkkitehtuuri tukehtuu pian muistipullonkaulaan kässäyksestä huolimatta. Ehkä vielä 16 ydintä on edes jotenkin järkevä, mutta sitten tulee stoppi. Suurin osa säikeistä joutuu odottamaan vuoroaan saada kirjoittaa tai lukea jotakin keskusmuistista, eli ovat tyhjäkäynnillä.
Tämän jälkeen minusta ainoa järkevä mahdollisuus on luopua SMP:stä, siirtyä sanomanvälitykseen taskien välillä (siis Transputer-tyyppisten linkkien käyttöön) sekä se kaikkein radikaalein ratkaisu: yhdistetään CPU-ytimet ja muistipiirit samalla piipalalle. Kun ostat lisää muistia, saat aina samalla lisää ytimiä.

Tietysti ratkaisu edellyttää myös suuria muutoksia tavassa tehdä ohjelmia, mutta siltä ei voi välttyä, jos halutaan puristaa piiriteknologiasta lisää tehoja.
31408
Äänestä

Muut lukivat myös

Vastaukset 31

Vanhimmat

Näissä tietokonearkkitehtuureissa tulee aina mieleen se koulun laskutehtävä, joka kuului: "Jos mies kaivaa yhden kuutiometrin kokoisen kuopan maahan 20 minuutissa, niin paljonko kuopan kaivamiseen menee aikaa kahdelta mieheltä?"

Entä jos miehiä olisi 10, 100 tai 1000? Sadalla tai tuhannella miehellä jo miesten kuopan ääreen pääsemisenkin järjestelyt veisivät aikaa paljon yli 20 minuuttia. Näin käy helposti myös tehtävien rinnakkaistamisessa tietokoneessa.

Äänestä
  • Aloittaja

    On ihan totta, että useimmissa erillisissä, klassisissa nykykäytännön arkipäivän hommissa rinnakkaisohjelmoinnista ei ole mitään hyötyä. Mutta, kun kapasiteettia ja osaamista karttuu, löytyy yhä uusia sovelluksia, joissa rinnakkaislaskentaa voi tehokkaasti hyödyntää: siis sellaisia sovelluksia, joita ei tänä päivänä ole toteutettukaan vielä. Esim. Googlen monet palvelut olisivat olleet 10v sitten mahdottomia. Ja Googlella löytyy uskomaton määrä rinnakkaislaskennan kapasiteettia. Ja uusia palveluita kehitellään.

    Äänestä

Miten kaikki harrastaja-sunnuntaiohjelmoijat pysyvät mukana ellei kompiloijien toiminta kehity hyödyntämään noita kaikkia uusia hienoja ominaisuuksia tavalla joka on piilotettu ohjelmoijalta?

Kompiloijan on hankala piilottaa alemman tason toteutusta ja tehdä se itse, jos paras toteutus riippuu datan luonteesta. Sitten kai kompiloijalle pitäisi syöttää esimerkkidataa, jotta käännös sopisi paremmin esimerkin kaltaisen datan käsittelyyn.

Äänestä
  • puhutaan suomea! kompiloija = kääntäjä?

    Äänestä

  • Aloittaja

    "Miten kaikki harrastaja-sunnuntaiohjelmoijat pysyvät.."

    Jatkavat vanhaan tapaan. Oletan, että "sunnuntaiohjelmoijien" tarpeet eivät edellytä massivisen rinnakkaisuuden hyödyntämistä. Jos harrastelija kuitenkin huomaa sellaista tarvitsevansa (ei mitenkään mahdotonta), sitten on opeteltava uusia ajattelutapoja.

    Yksi "helppo" tapa kokeilla rinnakkaisohjelmointia, on rakentaa sulautettuja laitteita Parallaxin Propeller-piiriä käyttäen. Siinä on samalla piillä kahdeksan suoritinta, joiden rinnakkainen käyttö on Spin-skriptikieltä käyttäen melko helppoa (mutta ei haasteetonta). Minä olen sillä ohjelmoinut harrasterobottini moottoreiden, servon ja antureiden ajurikoodeja: suorastaan nautinnollista puuhaa.

    http://propeller.wikispaces.com/

    Muuten, en usko ollenkaan sellaiseen hypoteettiseen kääntäjään, joka muuttaisi ohjelmoijan sarjallisen ajattelun rinnakkaiseksi koodiksi. Kyllä rinnakkaisuus on lähdettävä jo ohjelmoijan päästä, mutta kääntäjän ja muiden työkalujen (esim graafinen mallinnuskieli) on tuettava tätä rinnakkaista ajattelua ja mielellään (puoli-)automaattisesti ohjattava ohi pahimpien pullonkaulojen, deadlockien ym. ongelmien.

    Odottelen, tai yritän etsiskellä pientä "multi-ARM-core" -linux-korttia, jolla voisin toteuttaa robottini ylemmän tason semanttista koodia. Voisihan se aluksi toteuttaa yksisuorittimisellakin, mutta jakaa se jo valmiiksi mahdollisimman monelle säikeelle. Näin on ehkä pakko menetellä.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Miten kaikki harrastaja-sunnuntaiohjelmoijat pysyvät.."

    Jatkavat vanhaan tapaan. Oletan, että "sunnuntaiohjelmoijien" tarpeet eivät edellytä massivisen rinnakkaisuuden hyödyntämistä. Jos harrastelija kuitenkin huomaa sellaista tarvitsevansa (ei mitenkään mahdotonta), sitten on opeteltava uusia ajattelutapoja.

    Yksi "helppo" tapa kokeilla rinnakkaisohjelmointia, on rakentaa sulautettuja laitteita Parallaxin Propeller-piiriä käyttäen. Siinä on samalla piillä kahdeksan suoritinta, joiden rinnakkainen käyttö on Spin-skriptikieltä käyttäen melko helppoa (mutta ei haasteetonta). Minä olen sillä ohjelmoinut harrasterobottini moottoreiden, servon ja antureiden ajurikoodeja: suorastaan nautinnollista puuhaa.

    http://propeller.wikispaces.com/

    Muuten, en usko ollenkaan sellaiseen hypoteettiseen kääntäjään, joka muuttaisi ohjelmoijan sarjallisen ajattelun rinnakkaiseksi koodiksi. Kyllä rinnakkaisuus on lähdettävä jo ohjelmoijan päästä, mutta kääntäjän ja muiden työkalujen (esim graafinen mallinnuskieli) on tuettava tätä rinnakkaista ajattelua ja mielellään (puoli-)automaattisesti ohjattava ohi pahimpien pullonkaulojen, deadlockien ym. ongelmien.

    Odottelen, tai yritän etsiskellä pientä "multi-ARM-core" -linux-korttia, jolla voisin toteuttaa robottini ylemmän tason semanttista koodia. Voisihan se aluksi toteuttaa yksisuorittimisellakin, mutta jakaa se jo valmiiksi mahdollisimman monelle säikeelle. Näin on ehkä pakko menetellä.

    "Muuten, en usko ollenkaan sellaiseen hypoteettiseen kääntäjään, joka muuttaisi ohjelmoijan sarjallisen ajattelun rinnakkaiseksi koodiksi."

    Yksi tapa tämän toteuttamiseen on nostaa ohjemointikielten abstraktiotasoa. Esimerkiksi Matlabin ja Octaven ohjelmointikielissä perustietotyypit ovat matriiseja skalaarien sijaan. Matriisioperaatiot ovat hyvinkin automaattisesti rinnakkaistettavissa ja riittää, että ohjelmoija kirjoittaa koodin vektorialgebran notaatiolla perinteisen algebran notaation sijaan. Eli funktion f() soveltaminen jokaiseen taulukon tai matriisin X alkioon menee näin: Y = f(X) eikä for-luupilla.

    Hyvin rinnakkaistettavaa tavaraa ovat myös esimerkiksi Pythonista löytyvät generaattorit ja filtterit. Samoin for each -tyyppiset luupit ovat automaattisesti rinnakkaistettavissa jos ohjelmointikielen tyypitys ja sallitut rakenteet ovat tarpeeksi tiukkoja. Mutta nämä ovat oikeastaan vain toinen tapa esittää tuo matriisiajattelutapa.

    Äänestä

  • Aloittaja

    dx kirjoitti:

    "Muuten, en usko ollenkaan sellaiseen hypoteettiseen kääntäjään, joka muuttaisi ohjelmoijan sarjallisen ajattelun rinnakkaiseksi koodiksi."

    Yksi tapa tämän toteuttamiseen on nostaa ohjemointikielten abstraktiotasoa. Esimerkiksi Matlabin ja Octaven ohjelmointikielissä perustietotyypit ovat matriiseja skalaarien sijaan. Matriisioperaatiot ovat hyvinkin automaattisesti rinnakkaistettavissa ja riittää, että ohjelmoija kirjoittaa koodin vektorialgebran notaatiolla perinteisen algebran notaation sijaan. Eli funktion f() soveltaminen jokaiseen taulukon tai matriisin X alkioon menee näin: Y = f(X) eikä for-luupilla.

    Hyvin rinnakkaistettavaa tavaraa ovat myös esimerkiksi Pythonista löytyvät generaattorit ja filtterit. Samoin for each -tyyppiset luupit ovat automaattisesti rinnakkaistettavissa jos ohjelmointikielen tyypitys ja sallitut rakenteet ovat tarpeeksi tiukkoja. Mutta nämä ovat oikeastaan vain toinen tapa esittää tuo matriisiajattelutapa.

    "Yksi tapa tämän toteuttamiseen on nostaa ohjemointikielten abstraktiotasoa"

    Sehän on ollut jatkuva trendi. Äärimmäisenä rajana on puhdas deskriptiivinen koodi, jossa "kääntäjälle" esitellään tosasiat, syötteet ja niiden rakenteet, sovellettavat perusalgoritmit sekä prosessoinnin tavoitteet ja reunaehdot (esim vasteaikarajoitteet, muistinkäyttörajoitteet ym). "Kääntäjä" on tekoälysovellus, joka syntetisoi kuvauksesta jonkun välikoodin, joka automaattisesti käännetään binäärikoodiksi.

    Lisäksi aina on löytynyt helposti rinnakkaistettavia erikoistapauksia. Vaikeutena on koko sovellusarkkitehtuurin rinnakkaistaminen. Mutta joskus nekin ovat helposti rinnakkaistettavissa.

    Mutta pian pääsemme kokeilemaan uutta C -standardia joka muiden parannusten ohella sisältää rinnakkaisuustukea. Ehkä rinnakkaisuutta tukeva gnu-versio tulee ensi vuonna.
    http://www.artima.com/cppsource/cpp0x.html

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Yksi tapa tämän toteuttamiseen on nostaa ohjemointikielten abstraktiotasoa"

    Sehän on ollut jatkuva trendi. Äärimmäisenä rajana on puhdas deskriptiivinen koodi, jossa "kääntäjälle" esitellään tosasiat, syötteet ja niiden rakenteet, sovellettavat perusalgoritmit sekä prosessoinnin tavoitteet ja reunaehdot (esim vasteaikarajoitteet, muistinkäyttörajoitteet ym). "Kääntäjä" on tekoälysovellus, joka syntetisoi kuvauksesta jonkun välikoodin, joka automaattisesti käännetään binäärikoodiksi.

    Lisäksi aina on löytynyt helposti rinnakkaistettavia erikoistapauksia. Vaikeutena on koko sovellusarkkitehtuurin rinnakkaistaminen. Mutta joskus nekin ovat helposti rinnakkaistettavissa.

    Mutta pian pääsemme kokeilemaan uutta C -standardia joka muiden parannusten ohella sisältää rinnakkaisuustukea. Ehkä rinnakkaisuutta tukeva gnu-versio tulee ensi vuonna.
    http://www.artima.com/cppsource/cpp0x.html

    "Äärimmäisenä rajana on puhdas deskriptiivinen koodi, jossa "kääntäjälle" esitellään tosasiat, syötteet ja niiden rakenteet, sovellettavat perusalgoritmit sekä prosessoinnin tavoitteet ja reunaehdot (esim vasteaikarajoitteet, muistinkäyttörajoitteet ym). "Kääntäjä" on tekoälysovellus, joka syntetisoi kuvauksesta jonkun välikoodin, joka automaattisesti käännetään binäärikoodiksi."

    Tämä kuulostaa hieman utopialta, nimittäin se, että kääntäjä on tekoälysovellus (mitä se ikinä tässä tarkoittaakaan, probabilistisista päättelyä ja optimointia vai?). Eikös tää ajattelutapa ole vähän sukua logiikkaohjelmointikielille kuten Prolog? Jos ja kun sillä on ohjelmoinut, sen käytännön ongelmat ovat aika selvät. Toki rajoitettuihin sovelluksiin tämä (ja tuo tekoälyajattelu) voi sopia.

    Sen sijaan tuota mainitsemani ohjelmointiprimitiivien muuntaminen ylemmälle abstraktiotasolle on mielestäni hieman realistisempaa geneerisenä lähestymistapana. Eli ei ohjelmoidakaan skaalaareilla vaan matriiseilla. Eikä tehdä for-luuppeja vaan määritellään operaatiot joukko-operaatioina (for each, map, filter, jne). Tietysti tämä vaatii myös ohjelmoijalta hieman erilaista abstrahointia kuin mitä nykyään javoissa, C :ssa ja muissa. Itse asiassa STL on jo askel tähän suuntaan, mutta sen toteutus on aika keskeneräinen.

    LabViewissa on myös aika mielenkiintoinen ohjelmointiabstraktio vaikka varsin yhteen sovellukseen suunnattu onkin.

    Vielä yksi tapa rinnakkaistamiseen on sallia vain puhdas funktionaalisuus ohjelmointikielessä. Tällaiseen kieleen pystyisi teoriassa tekemään kaiken maailman invarianttianalyysejä ja rinnakkaistamaan automaattisesti. Toki tämäkin vaatii ohjelmoijalta hieman erilaista abstrahointia kuin perinteisessä proseduraalisessa koodissa.

    Äänestä

  • Aloittaja

    dx kirjoitti:

    "Äärimmäisenä rajana on puhdas deskriptiivinen koodi, jossa "kääntäjälle" esitellään tosasiat, syötteet ja niiden rakenteet, sovellettavat perusalgoritmit sekä prosessoinnin tavoitteet ja reunaehdot (esim vasteaikarajoitteet, muistinkäyttörajoitteet ym). "Kääntäjä" on tekoälysovellus, joka syntetisoi kuvauksesta jonkun välikoodin, joka automaattisesti käännetään binäärikoodiksi."

    Tämä kuulostaa hieman utopialta, nimittäin se, että kääntäjä on tekoälysovellus (mitä se ikinä tässä tarkoittaakaan, probabilistisista päättelyä ja optimointia vai?). Eikös tää ajattelutapa ole vähän sukua logiikkaohjelmointikielille kuten Prolog? Jos ja kun sillä on ohjelmoinut, sen käytännön ongelmat ovat aika selvät. Toki rajoitettuihin sovelluksiin tämä (ja tuo tekoälyajattelu) voi sopia.

    Sen sijaan tuota mainitsemani ohjelmointiprimitiivien muuntaminen ylemmälle abstraktiotasolle on mielestäni hieman realistisempaa geneerisenä lähestymistapana. Eli ei ohjelmoidakaan skaalaareilla vaan matriiseilla. Eikä tehdä for-luuppeja vaan määritellään operaatiot joukko-operaatioina (for each, map, filter, jne). Tietysti tämä vaatii myös ohjelmoijalta hieman erilaista abstrahointia kuin mitä nykyään javoissa, C :ssa ja muissa. Itse asiassa STL on jo askel tähän suuntaan, mutta sen toteutus on aika keskeneräinen.

    LabViewissa on myös aika mielenkiintoinen ohjelmointiabstraktio vaikka varsin yhteen sovellukseen suunnattu onkin.

    Vielä yksi tapa rinnakkaistamiseen on sallia vain puhdas funktionaalisuus ohjelmointikielessä. Tällaiseen kieleen pystyisi teoriassa tekemään kaiken maailman invarianttianalyysejä ja rinnakkaistamaan automaattisesti. Toki tämäkin vaatii ohjelmoijalta hieman erilaista abstrahointia kuin perinteisessä proseduraalisessa koodissa.

    "Tämä kuulostaa hieman utopialta, nimittäin se, että kääntäjä on tekoälysovellus (mitä se ikinä tässä tarkoittaakaan, probabilistisista päättelyä ja optimointia vai?). Eikös tää ajattelutapa ole vähän sukua logiikkaohjelmointikielille kuten Prolog? Jos ja kun sillä on ohjelmoinut, sen käytännön ongelmat ovat aika selvät. "

    Kyllä, prolog on askel sinnepäin, mutta loput askeleet ovat vielä ottamatta. Lojban voisi olla prologia ilmaisukykyisempi.

    Asia on, tällä hetkellä, "hieman" utopististä, mutta kehityksen looginen suunta. Ohjelmoijan ammatilla ei minun visioni mukaan ole pitkää tulevaisuutta, harrasteena, eräänlaisena taiteena hieman pidempi.
    Looginen kehitys vie siihen, että "ohjelmoijalle" jää määrittelijän, toimeksiantajan rooli, laatia "requirement specification" ja kone tekee loput.

    Ohjelmointi ei edellytä tekoälyltä yleisyyttä, vaan melko kapeaa ymmärrystä (verrattuna moniin muihin tehtäviin). Siksi, kun semanttiset teknologiat tulevat ohjelmointityökalujen alueelle, seurauksena on perinteisen ohjelmoinnin loppuminen.
    Kone tekee halvemmalla, tuottavammin ja parempaa laatua.
    Arvaan että tämä toteutuu n. 10-15v kuluttua.
    Ensimmäinä vaiheena voisi olla, että tällainen AI-pohjainen koodisyntetisaattori toteuttaa vain rajallisia kokonaisuuksia ja ihminen on vielä arkkitehti, joka määrittelee sovelluksen sisäiset rajapinnat, työkalun toteuttatessa ehkä 1000-10000 rivin moduleita, jotka toteuttavat määritellyt rajapinnat ja toiminallisuudet.

    Tähän ei vielä tarvita kovin suurta asiantuntemusta, mutta ei tämäkään ole vielä mahdollista ihan lähiaikoina.

    Lopulta, ehkä 25-30v kuluttua, kone tekee kaikki loputkin. Ihmistä ei enään tarvita. Tähän on asiallista valmistautua.

    Ajatuksiani näistä asioista löytyy blogeissani:
    http://lojban-ajattelua.blogspot.com/
    http://akvama-ajattelua.blogspot.com/

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Tämä kuulostaa hieman utopialta, nimittäin se, että kääntäjä on tekoälysovellus (mitä se ikinä tässä tarkoittaakaan, probabilistisista päättelyä ja optimointia vai?). Eikös tää ajattelutapa ole vähän sukua logiikkaohjelmointikielille kuten Prolog? Jos ja kun sillä on ohjelmoinut, sen käytännön ongelmat ovat aika selvät. "

    Kyllä, prolog on askel sinnepäin, mutta loput askeleet ovat vielä ottamatta. Lojban voisi olla prologia ilmaisukykyisempi.

    Asia on, tällä hetkellä, "hieman" utopististä, mutta kehityksen looginen suunta. Ohjelmoijan ammatilla ei minun visioni mukaan ole pitkää tulevaisuutta, harrasteena, eräänlaisena taiteena hieman pidempi.
    Looginen kehitys vie siihen, että "ohjelmoijalle" jää määrittelijän, toimeksiantajan rooli, laatia "requirement specification" ja kone tekee loput.

    Ohjelmointi ei edellytä tekoälyltä yleisyyttä, vaan melko kapeaa ymmärrystä (verrattuna moniin muihin tehtäviin). Siksi, kun semanttiset teknologiat tulevat ohjelmointityökalujen alueelle, seurauksena on perinteisen ohjelmoinnin loppuminen.
    Kone tekee halvemmalla, tuottavammin ja parempaa laatua.
    Arvaan että tämä toteutuu n. 10-15v kuluttua.
    Ensimmäinä vaiheena voisi olla, että tällainen AI-pohjainen koodisyntetisaattori toteuttaa vain rajallisia kokonaisuuksia ja ihminen on vielä arkkitehti, joka määrittelee sovelluksen sisäiset rajapinnat, työkalun toteuttatessa ehkä 1000-10000 rivin moduleita, jotka toteuttavat määritellyt rajapinnat ja toiminallisuudet.

    Tähän ei vielä tarvita kovin suurta asiantuntemusta, mutta ei tämäkään ole vielä mahdollista ihan lähiaikoina.

    Lopulta, ehkä 25-30v kuluttua, kone tekee kaikki loputkin. Ihmistä ei enään tarvita. Tähän on asiallista valmistautua.

    Ajatuksiani näistä asioista löytyy blogeissani:
    http://lojban-ajattelua.blogspot.com/
    http://akvama-ajattelua.blogspot.com/

    "Kyllä, prolog on askel sinnepäin, mutta loput askeleet ovat vielä ottamatta. Lojban voisi olla prologia ilmaisukykyisempi."

    Tietojenkäsittelyteoriaa ja kaiken maailman "älykkäiden" järjestelmien matematiikkaa pitkään vääntäneenä herää kysymys, että jos kerran tämäkin on vain predikaattilogiikkaa, niin mitä tässä voi olla enemmän kuin logiikkaohjelmoinnissa (kuten prolog) tai perinteisessä proseduraalisessa ohjelmoinnissa (tai funktionaalisessa)? Ei kai se *syntaksi* mitään uutta tuo?

    "Looginen kehitys vie siihen, että "ohjelmoijalle" jää määrittelijän, toimeksiantajan rooli, laatia "requirement specification" ja kone tekee loput."

    Tätähän se ohjelmoijan urakehitys onkin, ainakin oman kokemukseni mukaan. :) Mutta totta puhuen itse odotan sitä, että nykyinen ohjelmointi-ideologia saataisiin nostettua jotenkin korkeammalle abstraktiotasolle. Nykyään ei kolvata vastusta ja kondensaattoria piirilevylle vaan yhdistetään emolevy ja kovalevy sata-väylällä toisiinsa. Samoin olisi mukavaa jos ei enää määriteltäisi mitään kokonaislukumuuttujia luokkiin vaan nostettaisiin se abstraktiotaso huomattavasti korkeammalle. Tämä vaatinee abstraktiotason noston muuttujiin talletetuista numeroista jonnekin korkeamman tason primitiiveihin.

    "ihminen on vielä arkkitehti, joka määrittelee sovelluksen sisäiset rajapinnat, työkalun toteuttatessa ehkä 1000-10000 rivin moduleita, jotka toteuttavat määritellyt rajapinnat ja toiminallisuudet."

    Näinhän homma toimii periaatteessa kaiken maailman delpheissä, cocoassa, .netissä jne. Mutta ilmeisesti ne abstraktiot eivät vielä ole oikeita eivätkä tarpeeksi standardoituja tai jotain.

    "Tähän ei vielä tarvita kovin suurta asiantuntemusta, mutta ei tämäkään ole vielä mahdollista ihan lähiaikoina."

    Luulisi, että ohjelmointi menee vähän samanlaiseksi kuin muissakin kehittyneiden apuvälineiden aloissa: ei se pointti ole osata "ohjelmoida" vaan tuntea se kohdesovellus hyvin. Ei talonkaan rakentamisessa se juttu ole kuinka hyvin osaa vasaroida vaan se, että kuinka hyvin osaa rakentaa talon tai siis tuntee "talotekniikan".

    "Lopulta, ehkä 25-30v kuluttua, kone tekee kaikki loputkin. Ihmistä ei enään tarvita. Tähän on asiallista valmistautua."

    Ei kai nyt sentään. :) Ainakin itselläni on sellainen fiilis, että mitä enemmän olen opiskellut tekoälyksi kutsuttuja tekniikoita, sitä varmemmaksi olen tullut, ettei niistä oikeasti mitään tekoälyä saada hyvin pitkään aikaan (koskaan). Hienolta kuulostavia juttuja, mutta sitten kun niihin tutustuu syvemmin huomaa, että se itse substanssi olikin oikeastaan aika olematon ja vanha juttu.

    Äänestä

  • Aloittaja

    dx kirjoitti:

    "Kyllä, prolog on askel sinnepäin, mutta loput askeleet ovat vielä ottamatta. Lojban voisi olla prologia ilmaisukykyisempi."

    Tietojenkäsittelyteoriaa ja kaiken maailman "älykkäiden" järjestelmien matematiikkaa pitkään vääntäneenä herää kysymys, että jos kerran tämäkin on vain predikaattilogiikkaa, niin mitä tässä voi olla enemmän kuin logiikkaohjelmoinnissa (kuten prolog) tai perinteisessä proseduraalisessa ohjelmoinnissa (tai funktionaalisessa)? Ei kai se *syntaksi* mitään uutta tuo?

    "Looginen kehitys vie siihen, että "ohjelmoijalle" jää määrittelijän, toimeksiantajan rooli, laatia "requirement specification" ja kone tekee loput."

    Tätähän se ohjelmoijan urakehitys onkin, ainakin oman kokemukseni mukaan. :) Mutta totta puhuen itse odotan sitä, että nykyinen ohjelmointi-ideologia saataisiin nostettua jotenkin korkeammalle abstraktiotasolle. Nykyään ei kolvata vastusta ja kondensaattoria piirilevylle vaan yhdistetään emolevy ja kovalevy sata-väylällä toisiinsa. Samoin olisi mukavaa jos ei enää määriteltäisi mitään kokonaislukumuuttujia luokkiin vaan nostettaisiin se abstraktiotaso huomattavasti korkeammalle. Tämä vaatinee abstraktiotason noston muuttujiin talletetuista numeroista jonnekin korkeamman tason primitiiveihin.

    "ihminen on vielä arkkitehti, joka määrittelee sovelluksen sisäiset rajapinnat, työkalun toteuttatessa ehkä 1000-10000 rivin moduleita, jotka toteuttavat määritellyt rajapinnat ja toiminallisuudet."

    Näinhän homma toimii periaatteessa kaiken maailman delpheissä, cocoassa, .netissä jne. Mutta ilmeisesti ne abstraktiot eivät vielä ole oikeita eivätkä tarpeeksi standardoituja tai jotain.

    "Tähän ei vielä tarvita kovin suurta asiantuntemusta, mutta ei tämäkään ole vielä mahdollista ihan lähiaikoina."

    Luulisi, että ohjelmointi menee vähän samanlaiseksi kuin muissakin kehittyneiden apuvälineiden aloissa: ei se pointti ole osata "ohjelmoida" vaan tuntea se kohdesovellus hyvin. Ei talonkaan rakentamisessa se juttu ole kuinka hyvin osaa vasaroida vaan se, että kuinka hyvin osaa rakentaa talon tai siis tuntee "talotekniikan".

    "Lopulta, ehkä 25-30v kuluttua, kone tekee kaikki loputkin. Ihmistä ei enään tarvita. Tähän on asiallista valmistautua."

    Ei kai nyt sentään. :) Ainakin itselläni on sellainen fiilis, että mitä enemmän olen opiskellut tekoälyksi kutsuttuja tekniikoita, sitä varmemmaksi olen tullut, ettei niistä oikeasti mitään tekoälyä saada hyvin pitkään aikaan (koskaan). Hienolta kuulostavia juttuja, mutta sitten kun niihin tutustuu syvemmin huomaa, että se itse substanssi olikin oikeastaan aika olematon ja vanha juttu.

    "niin mitä tässä voi olla enemmän kuin logiikkaohjelmoinnissa (kuten prolog) tai perinteisessä proseduraalisessa ohjelmoinnissa (tai funktionaalisessa)?"

    Sanoin jo: ilmaisukyky. Lojban on __puhekieli__, mutta ainoa puhekieli, jonka tekstin sisältö on koneellisesti parsittavissa, ainoa, jonka lauseiden syntaksi ei ole semantiikasta riippuvainen. Lojbanilla voit ilmaista kaiken, mitä voit ajatella. Koitapa kääntää "Liisa ihmemaassa" prologille, niin että prologia sujuvasti osaava myös sujuvasti lukee ja ymmärtää sisällön. Lojbanilla tämä onnistui. Lojban on siis sekä ihmiskieli, että logikkaohjelmoinnin kieli (jos sitä niin halutaan käyttää) yhtäaikaa.

    Voithan kirjoittaa selväkielistä pseudokoodia minkä tahansa ihmiskielen pohjalta, mutta et voi koneellisesti hyödyntää sen sisältöä. Paitsi jo kielenä on lojban.

    "Ainakin itselläni on sellainen fiilis, että mitä enemmän olen opiskellut tekoälyksi kutsuttuja tekniikoita, sitä varmemmaksi olen tullut, ettei niistä oikeasti mitään tekoälyä saada hyvin pitkään aikaan (koskaan). Hienolta kuulostavia juttuja, mutta sitten kun niihin tutustuu syvemmin huomaa, että se itse substanssi olikin oikeastaan aika olematon ja vanha juttu. "

    Jaa. No kerro sitten mikä on, noin esimerkiksi, vikana, perustavaa laatua olevan puutteena OpenCog -projektissa:
    http://www.opencog.org/wiki/The_Open_Cognition_Project
    Miten sen substanssi on "olematon ja vanha juttu"? Ilmeisesti tunnet hyvin useita kehitteillä olevia Yleiseen Tekoälyyn tähtääviä AGI-projekteja, joista OpenCog on vain yksi, vai onko niin, että opiskelusi on rajoittunut "kapean tekoälyn" perustekniikoihin.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "niin mitä tässä voi olla enemmän kuin logiikkaohjelmoinnissa (kuten prolog) tai perinteisessä proseduraalisessa ohjelmoinnissa (tai funktionaalisessa)?"

    Sanoin jo: ilmaisukyky. Lojban on __puhekieli__, mutta ainoa puhekieli, jonka tekstin sisältö on koneellisesti parsittavissa, ainoa, jonka lauseiden syntaksi ei ole semantiikasta riippuvainen. Lojbanilla voit ilmaista kaiken, mitä voit ajatella. Koitapa kääntää "Liisa ihmemaassa" prologille, niin että prologia sujuvasti osaava myös sujuvasti lukee ja ymmärtää sisällön. Lojbanilla tämä onnistui. Lojban on siis sekä ihmiskieli, että logikkaohjelmoinnin kieli (jos sitä niin halutaan käyttää) yhtäaikaa.

    Voithan kirjoittaa selväkielistä pseudokoodia minkä tahansa ihmiskielen pohjalta, mutta et voi koneellisesti hyödyntää sen sisältöä. Paitsi jo kielenä on lojban.

    "Ainakin itselläni on sellainen fiilis, että mitä enemmän olen opiskellut tekoälyksi kutsuttuja tekniikoita, sitä varmemmaksi olen tullut, ettei niistä oikeasti mitään tekoälyä saada hyvin pitkään aikaan (koskaan). Hienolta kuulostavia juttuja, mutta sitten kun niihin tutustuu syvemmin huomaa, että se itse substanssi olikin oikeastaan aika olematon ja vanha juttu. "

    Jaa. No kerro sitten mikä on, noin esimerkiksi, vikana, perustavaa laatua olevan puutteena OpenCog -projektissa:
    http://www.opencog.org/wiki/The_Open_Cognition_Project
    Miten sen substanssi on "olematon ja vanha juttu"? Ilmeisesti tunnet hyvin useita kehitteillä olevia Yleiseen Tekoälyyn tähtääviä AGI-projekteja, joista OpenCog on vain yksi, vai onko niin, että opiskelusi on rajoittunut "kapean tekoälyn" perustekniikoihin.

    "Sanoin jo: ilmaisukyky. Lojban on __puhekieli__, mutta ainoa puhekieli, jonka tekstin sisältö on koneellisesti parsittavissa, ainoa, jonka lauseiden syntaksi ei ole semantiikasta riippuvainen."

    Lojban varmasti on jossain mielessä helppo ilmaisutapa, mutta fundamentaalisti sillä voidaan esittää tasan sama informaatio kuin millä tahansa muullakin Turing-täydellisellä kielellä. Tässä mielessä se ei tuo mitään teknistä lisäarvoa.

    "Ilmeisesti tunnet hyvin useita kehitteillä olevia Yleiseen Tekoälyyn tähtääviä AGI-projekteja, joista OpenCog on vain yksi, vai onko niin, että opiskelusi on rajoittunut "kapean tekoälyn" perustekniikoihin."

    En kritisoinut projekteja vaan taustalla olevaa tekniikkaa. Jos ja kun projektit perustuvat tekniikkoihin kuten neuroverkot, optimointi ja probabilistinen (tai sumea) päättely, ovat ne sitä samaa vanhaa tavaraa pohjimmiltaan. On tietysti mahdollista, että tällä samalla vanhalla tavaralla saadaan tehtyä AGI:a, mutta en kyllä käsitä miksi se nyt onnistuisi kun ei se ole ennenkään onnistunut (samoilla tekniikoilla).

    Äänestä

  • dx kirjoitti:

    "Sanoin jo: ilmaisukyky. Lojban on __puhekieli__, mutta ainoa puhekieli, jonka tekstin sisältö on koneellisesti parsittavissa, ainoa, jonka lauseiden syntaksi ei ole semantiikasta riippuvainen."

    Lojban varmasti on jossain mielessä helppo ilmaisutapa, mutta fundamentaalisti sillä voidaan esittää tasan sama informaatio kuin millä tahansa muullakin Turing-täydellisellä kielellä. Tässä mielessä se ei tuo mitään teknistä lisäarvoa.

    "Ilmeisesti tunnet hyvin useita kehitteillä olevia Yleiseen Tekoälyyn tähtääviä AGI-projekteja, joista OpenCog on vain yksi, vai onko niin, että opiskelusi on rajoittunut "kapean tekoälyn" perustekniikoihin."

    En kritisoinut projekteja vaan taustalla olevaa tekniikkaa. Jos ja kun projektit perustuvat tekniikkoihin kuten neuroverkot, optimointi ja probabilistinen (tai sumea) päättely, ovat ne sitä samaa vanhaa tavaraa pohjimmiltaan. On tietysti mahdollista, että tällä samalla vanhalla tavaralla saadaan tehtyä AGI:a, mutta en kyllä käsitä miksi se nyt onnistuisi kun ei se ole ennenkään onnistunut (samoilla tekniikoilla).

    Onkohan lojbanin turing-täydellisyys niin triviaalia. Tässä on prologilla "simuloitu" turingin konetta:

    http://en.wikipedia.org/wiki/Prolog#Soundness_and completeness

    Miltä mahtaa näyttää lojbanilla kuvattu turingin kone?

    Äänestä

  • dx kirjoitti:

    "Kyllä, prolog on askel sinnepäin, mutta loput askeleet ovat vielä ottamatta. Lojban voisi olla prologia ilmaisukykyisempi."

    Tietojenkäsittelyteoriaa ja kaiken maailman "älykkäiden" järjestelmien matematiikkaa pitkään vääntäneenä herää kysymys, että jos kerran tämäkin on vain predikaattilogiikkaa, niin mitä tässä voi olla enemmän kuin logiikkaohjelmoinnissa (kuten prolog) tai perinteisessä proseduraalisessa ohjelmoinnissa (tai funktionaalisessa)? Ei kai se *syntaksi* mitään uutta tuo?

    "Looginen kehitys vie siihen, että "ohjelmoijalle" jää määrittelijän, toimeksiantajan rooli, laatia "requirement specification" ja kone tekee loput."

    Tätähän se ohjelmoijan urakehitys onkin, ainakin oman kokemukseni mukaan. :) Mutta totta puhuen itse odotan sitä, että nykyinen ohjelmointi-ideologia saataisiin nostettua jotenkin korkeammalle abstraktiotasolle. Nykyään ei kolvata vastusta ja kondensaattoria piirilevylle vaan yhdistetään emolevy ja kovalevy sata-väylällä toisiinsa. Samoin olisi mukavaa jos ei enää määriteltäisi mitään kokonaislukumuuttujia luokkiin vaan nostettaisiin se abstraktiotaso huomattavasti korkeammalle. Tämä vaatinee abstraktiotason noston muuttujiin talletetuista numeroista jonnekin korkeamman tason primitiiveihin.

    "ihminen on vielä arkkitehti, joka määrittelee sovelluksen sisäiset rajapinnat, työkalun toteuttatessa ehkä 1000-10000 rivin moduleita, jotka toteuttavat määritellyt rajapinnat ja toiminallisuudet."

    Näinhän homma toimii periaatteessa kaiken maailman delpheissä, cocoassa, .netissä jne. Mutta ilmeisesti ne abstraktiot eivät vielä ole oikeita eivätkä tarpeeksi standardoituja tai jotain.

    "Tähän ei vielä tarvita kovin suurta asiantuntemusta, mutta ei tämäkään ole vielä mahdollista ihan lähiaikoina."

    Luulisi, että ohjelmointi menee vähän samanlaiseksi kuin muissakin kehittyneiden apuvälineiden aloissa: ei se pointti ole osata "ohjelmoida" vaan tuntea se kohdesovellus hyvin. Ei talonkaan rakentamisessa se juttu ole kuinka hyvin osaa vasaroida vaan se, että kuinka hyvin osaa rakentaa talon tai siis tuntee "talotekniikan".

    "Lopulta, ehkä 25-30v kuluttua, kone tekee kaikki loputkin. Ihmistä ei enään tarvita. Tähän on asiallista valmistautua."

    Ei kai nyt sentään. :) Ainakin itselläni on sellainen fiilis, että mitä enemmän olen opiskellut tekoälyksi kutsuttuja tekniikoita, sitä varmemmaksi olen tullut, ettei niistä oikeasti mitään tekoälyä saada hyvin pitkään aikaan (koskaan). Hienolta kuulostavia juttuja, mutta sitten kun niihin tutustuu syvemmin huomaa, että se itse substanssi olikin oikeastaan aika olematon ja vanha juttu.

    ...Yusa ei kauheasti anna faktojen vaivata näkemyksiään tai mielipiteitään. Sci-fi-tasoinen kouhotus on paljon kivempaa kuin tylsien faktojen omaksuminen.

    Äänestä

  • Aloittaja

    dx kirjoitti:

    "Sanoin jo: ilmaisukyky. Lojban on __puhekieli__, mutta ainoa puhekieli, jonka tekstin sisältö on koneellisesti parsittavissa, ainoa, jonka lauseiden syntaksi ei ole semantiikasta riippuvainen."

    Lojban varmasti on jossain mielessä helppo ilmaisutapa, mutta fundamentaalisti sillä voidaan esittää tasan sama informaatio kuin millä tahansa muullakin Turing-täydellisellä kielellä. Tässä mielessä se ei tuo mitään teknistä lisäarvoa.

    "Ilmeisesti tunnet hyvin useita kehitteillä olevia Yleiseen Tekoälyyn tähtääviä AGI-projekteja, joista OpenCog on vain yksi, vai onko niin, että opiskelusi on rajoittunut "kapean tekoälyn" perustekniikoihin."

    En kritisoinut projekteja vaan taustalla olevaa tekniikkaa. Jos ja kun projektit perustuvat tekniikkoihin kuten neuroverkot, optimointi ja probabilistinen (tai sumea) päättely, ovat ne sitä samaa vanhaa tavaraa pohjimmiltaan. On tietysti mahdollista, että tällä samalla vanhalla tavaralla saadaan tehtyä AGI:a, mutta en kyllä käsitä miksi se nyt onnistuisi kun ei se ole ennenkään onnistunut (samoilla tekniikoilla).

    "..fundamentaalisti sillä voidaan esittää tasan sama informaatio kuin millä tahansa muullakin Turing-täydellisellä kielellä. Tässä mielessä se ei tuo mitään teknistä lisäarvoa. "

    Minusta tuo nyt kuullostaa vastavalta vertailulta, kuin että koska assembly-kielellä voidaan "fundamentaalisti ottaen" toteuttaa mikä tahansa sama ohjelma kuin C :lla ei C -kääntäjällä "ole mitään teknistä lisäarvoa" assembly-kääntäjään nähden.

    Ja samassa hengessä:
    "On tietysti mahdollista, että tällä samalla vanhalla tavaralla saadaan tehtyä AGI:a, mutta en kyllä käsitä miksi se nyt onnistuisi kun ei se ole ennenkään onnistunut (samoilla tekniikoilla)"

    Minä nyt arvioisin, että kyse on pääasiassa kolmesta "pikkuseikasta":

    1. Kyseessä on ehkä teknisen historian haastavin tototeutus (verrannollinen LHC-kiihdyttimeen tai ITER-voimalaan) , ja kuitenkin siihen on viime vuosikymmeneinä sijoitettu vain murusia kaikesta resurssienjaosta (tai ei edes sitäkään). Sen parissa työskentelee vain pari tusinaa pienryhmää ja ehkä kymmenkertainen määrä yksinäisiä harrastajia. Silti viimeisen 10v aikana on edistytty merkittävästi. Tämän voi todeta, jos vertaa esim 1995 kirjoitettuja alan teoksia ja tieteelisiä julkaisuita 2005 kirjoitettuihin. Ero sisältöjen tasossa on selvä. Voidaan aina sanoa, että paperit ovat papereita ja teot tekoja, mutta myös "toy project"-demojen taso on vastaava. Miksi ne ovat edelleen vain demoja, yksi syy on seuraava:
    2. Yhä paremmin tajutaan, että tämän hetkinen kohtuuhintainen tietojenkäsittelykapasiteetti ei riitä vielä pitkällekään, puhumattakaan esim 30v takaisesta kapasiteetista. Kapasiteetin on oltava edes vähintään suuruusluokkaa 1/100 ihmisaivojen 100miljardin neuronin rinnakkaisesta laskentatehosta, vaikka "commonsense" osaamisen vaatimuksen aiheuttaman "kombinaatioräjähdyksen" vaikutusta opitaankin hillitsemään älykkäillä ratkaisuilla (jotka esim ihmisaivoista osittain puuttuvat, mutta raakaa rinnakkaisuutta riittää.
    3. "The devil is in the details". Kaikki vaikeat asiat on joskus toteutettava sen ensimmäisen kerran.

    Siis: Jos muutaman osaavimman projektin henkiset resulssit yhdistettäisiin ja käyttöön annettaisiin esim Nokian 10v kehitysbudjetti, olisin melko varma, että ihmisen suorituskyvyn ylittävä AGI olisi todellisuutta 2020. Mutta koska edes 1/100 näistä resulsseista ei toteutune, hommaan menee 15-25v. Pieneltä kuullostava ero johtuu kehityksen eksponentiaalisesta luonteesta. Koirat haukkuvat, karavaani kulkee.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "..fundamentaalisti sillä voidaan esittää tasan sama informaatio kuin millä tahansa muullakin Turing-täydellisellä kielellä. Tässä mielessä se ei tuo mitään teknistä lisäarvoa. "

    Minusta tuo nyt kuullostaa vastavalta vertailulta, kuin että koska assembly-kielellä voidaan "fundamentaalisti ottaen" toteuttaa mikä tahansa sama ohjelma kuin C :lla ei C -kääntäjällä "ole mitään teknistä lisäarvoa" assembly-kääntäjään nähden.

    Ja samassa hengessä:
    "On tietysti mahdollista, että tällä samalla vanhalla tavaralla saadaan tehtyä AGI:a, mutta en kyllä käsitä miksi se nyt onnistuisi kun ei se ole ennenkään onnistunut (samoilla tekniikoilla)"

    Minä nyt arvioisin, että kyse on pääasiassa kolmesta "pikkuseikasta":

    1. Kyseessä on ehkä teknisen historian haastavin tototeutus (verrannollinen LHC-kiihdyttimeen tai ITER-voimalaan) , ja kuitenkin siihen on viime vuosikymmeneinä sijoitettu vain murusia kaikesta resurssienjaosta (tai ei edes sitäkään). Sen parissa työskentelee vain pari tusinaa pienryhmää ja ehkä kymmenkertainen määrä yksinäisiä harrastajia. Silti viimeisen 10v aikana on edistytty merkittävästi. Tämän voi todeta, jos vertaa esim 1995 kirjoitettuja alan teoksia ja tieteelisiä julkaisuita 2005 kirjoitettuihin. Ero sisältöjen tasossa on selvä. Voidaan aina sanoa, että paperit ovat papereita ja teot tekoja, mutta myös "toy project"-demojen taso on vastaava. Miksi ne ovat edelleen vain demoja, yksi syy on seuraava:
    2. Yhä paremmin tajutaan, että tämän hetkinen kohtuuhintainen tietojenkäsittelykapasiteetti ei riitä vielä pitkällekään, puhumattakaan esim 30v takaisesta kapasiteetista. Kapasiteetin on oltava edes vähintään suuruusluokkaa 1/100 ihmisaivojen 100miljardin neuronin rinnakkaisesta laskentatehosta, vaikka "commonsense" osaamisen vaatimuksen aiheuttaman "kombinaatioräjähdyksen" vaikutusta opitaankin hillitsemään älykkäillä ratkaisuilla (jotka esim ihmisaivoista osittain puuttuvat, mutta raakaa rinnakkaisuutta riittää.
    3. "The devil is in the details". Kaikki vaikeat asiat on joskus toteutettava sen ensimmäisen kerran.

    Siis: Jos muutaman osaavimman projektin henkiset resulssit yhdistettäisiin ja käyttöön annettaisiin esim Nokian 10v kehitysbudjetti, olisin melko varma, että ihmisen suorituskyvyn ylittävä AGI olisi todellisuutta 2020. Mutta koska edes 1/100 näistä resulsseista ei toteutune, hommaan menee 15-25v. Pieneltä kuullostava ero johtuu kehityksen eksponentiaalisesta luonteesta. Koirat haukkuvat, karavaani kulkee.

    "Minusta tuo nyt kuullostaa vastavalta vertailulta, kuin että koska assembly-kielellä voidaan "fundamentaalisti ottaen" toteuttaa mikä tahansa sama ohjelma kuin C :lla ei C -kääntäjällä "ole mitään teknistä lisäarvoa" assembly-kääntäjään nähden."

    Juuri näin ja C :aa voidaan jopa kääntää assembleriksi mikä todistaa sen, että C :lla ei voida tehdä mitään mitä ei assemblerilla periaatteessa voisi tehdä. Eli jos älykkään järjestemän voi tehdä C :lla, sen voi tehdä myös assemblerilla. Ja jos sen voi tehdä Lojbanilla, sen voi tehdä myös assemblerilla, jos ei muuten niin tekemällä kääntäjä Lojbanista assembleriin. Tätä tarkoitan sillä, että Lojban ei fundamentaalisti tuo peliin mitään uutta.

    "Kyseessä on ehkä teknisen historian haastavin tototeutus (verrannollinen LHC-kiihdyttimeen tai ITER-voimalaan) , ja kuitenkin siihen on viime vuosikymmeneinä sijoitettu vain murusia kaikesta resurssienjaosta (tai ei edes sitäkään). Sen parissa työskentelee vain pari tusinaa pienryhmää ja ehkä kymmenkertainen määrä yksinäisiä harrastajia. "

    Miten minulla on sellainen käsitys, että MIT:n muiden yliopistojen tekoälylabroissa on työskennelllyt ja työskentelee pari kertaluokkaa enemmän *ammattilaisia*, joten enemmänkin sieltä odottaisin tai olisin odottanut tuloksia. Pelkästään isompien firmojen (kuten Microsoft) tutkimuslaitoksissakin tekoälyä tutkitaan paljon suuremmassa mittakaavassa.

    "Silti viimeisen 10v aikana on edistytty merkittävästi. Tämän voi todeta, jos vertaa esim 1995 kirjoitettuja alan teoksia ja tieteelisiä julkaisuita 2005 kirjoitettuihin. Ero sisältöjen tasossa on selvä."

    Tästä olen eri mieltä - mielestäni tällä vuosituhannella on lähinnä kehitetty uusia numeerisia menetelmiä kun taas mitään oikeasti uutta ei ole tullut pitkään aikaan. Mitä teoksia ja julkaisuja tarkoitat?

    "Yhä paremmin tajutaan, että tämän hetkinen kohtuuhintainen tietojenkäsittelykapasiteetti ei riitä vielä pitkällekään, puhumattakaan esim 30v takaisesta kapasiteetista. Kapasiteetin on oltava edes vähintään suuruusluokkaa 1/100 ihmisaivojen 100miljardin neuronin rinnakkaisesta laskentatehosta..."

    Miten se laskentateho mihinkään auttaa? Eikö ensin pitäisi kehittää "algoritmi" mistä se tekoäly syntyy ja sitten sille voi laskea tila/aikavaatimuksen. Mistä lähteestä tämä väite on peräisin?

    Äänestä

  • Aloittaja

    KN$ kirjoitti:

    Onkohan lojbanin turing-täydellisyys niin triviaalia. Tässä on prologilla "simuloitu" turingin konetta:

    http://en.wikipedia.org/wiki/Prolog#Soundness_and completeness

    Miltä mahtaa näyttää lojbanilla kuvattu turingin kone?

    Ihan kiinnostava kokeilu, joka kävisi demosta, mutta vasta sitten, kun on ympäristö, joka osaa "suorittaa" lojbania. Ympäristö on jollakin aikataululla syntymässä, joten laitetaan tuo lojban-turing-kone demo tekemättömien töiden listalle :)

    Triviaalisuudesta: Jos (ja kun) turng-kone voidaan verbaaliseti "yksiselitteisesti" kuvata englanniksi tai suomeksi niin vielä varmemmin kuvaus on toteutettavissa lojbanilla. Käsitteitä joudutaan määrittelemään, mutta niin joudutaan englannikielisessä kuvauksessakin. Missään nimessä "luonnollisella kielellä" tai lojbaniksi tehtävä kuvaus ei ole yhtä kompakti kuin prolog-kuvaus, mutta sisältää implisiittisesti dokumentoinnin.
    Ja jos lisäksi kuvauksen käsitteet nojautuvat standardi-ylä-ontologiaan, niin kuvaus on loogisesti automaattisesti sulautettavissa muihin samat kriteerit kattavaiin kuvauksiin.

    Äänestä

  • Aloittaja

    dx kirjoitti:

    "Minusta tuo nyt kuullostaa vastavalta vertailulta, kuin että koska assembly-kielellä voidaan "fundamentaalisti ottaen" toteuttaa mikä tahansa sama ohjelma kuin C :lla ei C -kääntäjällä "ole mitään teknistä lisäarvoa" assembly-kääntäjään nähden."

    Juuri näin ja C :aa voidaan jopa kääntää assembleriksi mikä todistaa sen, että C :lla ei voida tehdä mitään mitä ei assemblerilla periaatteessa voisi tehdä. Eli jos älykkään järjestemän voi tehdä C :lla, sen voi tehdä myös assemblerilla. Ja jos sen voi tehdä Lojbanilla, sen voi tehdä myös assemblerilla, jos ei muuten niin tekemällä kääntäjä Lojbanista assembleriin. Tätä tarkoitan sillä, että Lojban ei fundamentaalisti tuo peliin mitään uutta.

    "Kyseessä on ehkä teknisen historian haastavin tototeutus (verrannollinen LHC-kiihdyttimeen tai ITER-voimalaan) , ja kuitenkin siihen on viime vuosikymmeneinä sijoitettu vain murusia kaikesta resurssienjaosta (tai ei edes sitäkään). Sen parissa työskentelee vain pari tusinaa pienryhmää ja ehkä kymmenkertainen määrä yksinäisiä harrastajia. "

    Miten minulla on sellainen käsitys, että MIT:n muiden yliopistojen tekoälylabroissa on työskennelllyt ja työskentelee pari kertaluokkaa enemmän *ammattilaisia*, joten enemmänkin sieltä odottaisin tai olisin odottanut tuloksia. Pelkästään isompien firmojen (kuten Microsoft) tutkimuslaitoksissakin tekoälyä tutkitaan paljon suuremmassa mittakaavassa.

    "Silti viimeisen 10v aikana on edistytty merkittävästi. Tämän voi todeta, jos vertaa esim 1995 kirjoitettuja alan teoksia ja tieteelisiä julkaisuita 2005 kirjoitettuihin. Ero sisältöjen tasossa on selvä."

    Tästä olen eri mieltä - mielestäni tällä vuosituhannella on lähinnä kehitetty uusia numeerisia menetelmiä kun taas mitään oikeasti uutta ei ole tullut pitkään aikaan. Mitä teoksia ja julkaisuja tarkoitat?

    "Yhä paremmin tajutaan, että tämän hetkinen kohtuuhintainen tietojenkäsittelykapasiteetti ei riitä vielä pitkällekään, puhumattakaan esim 30v takaisesta kapasiteetista. Kapasiteetin on oltava edes vähintään suuruusluokkaa 1/100 ihmisaivojen 100miljardin neuronin rinnakkaisesta laskentatehosta..."

    Miten se laskentateho mihinkään auttaa? Eikö ensin pitäisi kehittää "algoritmi" mistä se tekoäly syntyy ja sitten sille voi laskea tila/aikavaatimuksen. Mistä lähteestä tämä väite on peräisin?

    "Ja jos sen voi tehdä Lojbanilla, sen voi tehdä myös assemblerilla, jos ei muuten niin tekemällä kääntäjä Lojbanista assembleriin. Tätä tarkoitan sillä, että Lojban ei fundamentaalisti tuo peliin mitään uutta."

    Ei tästä ole erimielisyyttä, vaan siitä, mitä siitä seuraa. Kuten Windows-7:kaa, Linuxia tai Symbian-käyttöjärjestelmää ei olisi edes 100v:ssa mahdollista toteuttaa assembly-kielellä, samoin lojban on (vielä ilman näyttöä) yhtä tuottava työkalu kilpaileviin strategioihin verrattuna AGI:a toteutettaessa. En ole (ihan) yksin tämän käsitykseni kanssa.

    "MIT:n muiden yliopistojen tekoälylabroissa on työskennelllyt ja työskentelee pari kertaluokkaa enemmän *ammattilaisia*, joten enemmänkin sieltä odottaisin tai olisin odottanut tuloksia. Pelkästään isompien firmojen (kuten Microsoft) tutkimuslaitoksissakin tekoälyä tutkitaan paljon suuremmassa mittakaavassa. "

    Kyllä, mutta valitettavasti, ihan muutamaa poikkeusta lukuunottamatta, näissä laitoksissa tehdään perinteistä kapean tekoälyn perustutkimusta ja Yleinen Tekoäly esiintyy vain juhlapuhetasolla. Parhaiten rahoitettu AGI-hanke on Kiinassa, Xiamen Yliopistossa, jossa Hugo de Garis vetää projektia. Valitettavasti voi olla, että Yleinen Tekoäly on ensimmäisenä Kiinan Diktatuurijuntan käytössä.

    "Mitä teoksia ja julkaisuja tarkoitat? "

    Minun hyllystäni löytyvät esim:
    Marcus Hutter
    Universal Artificial Intelligense.
    Matemaattinen todistus sille, että brute force AGI on mahdollista, jos tehoa on rajattomasti

    Ben Goertzel, Cassio Pennachin
    Artificial General Intelligence
    Kokoelma tieteellisiä kirjoituksia

    Jeff Hawkins
    On Intelligence
    Tunnettu, ei niin tieteellinen, hieno esitys aivokuoren toimintaperiaatteesta

    J. Storrs Hall
    Beyond AI

    Pentti Haikonen
    The Cognitive Approach to Conscious Machines

    Pei Wang
    Rigid Flexibility, The Logic on Intelligence
    (Erinomainen!)

    Ben Goertzel, Pei Wang
    Advances in Artificial General Intelligence:
    Concepts, Architectures and Algorithms
    Kokoelma tieteellisiä kirjoituksia

    Antonio Chella, Riccardo Manzotti
    Artificial Consciousness
    Kokoelma tieteellisiä kirjoituksia

    "Miten se laskentateho mihinkään auttaa? Eikö ensin pitäisi kehittää "algoritmi" mistä se tekoäly syntyy"

    Ei ole yhtä tekoälyn algoritmia. On arkkitehtuureita, jotka soveltavat suurta joukkoa algoritmeja. Aivan ilmeisesti moni arkkitehtuuri on mahdollinen, kysymys on ennenkaikkea siitä, mikä on helpoiten toteutettavissa. Kuten sanottu, toteutukset vaativat valtavasti työtä ja apurahoja ei "huuhaalle" tipu. (Paitsi Kiinassa :( )

    On jo olemassa paljon tietoa ja tutkimustuloksia, mutta paljon työtä on tekemättä. Tilanne on aivan erilainen kuin esim 15v sitten.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Ja jos sen voi tehdä Lojbanilla, sen voi tehdä myös assemblerilla, jos ei muuten niin tekemällä kääntäjä Lojbanista assembleriin. Tätä tarkoitan sillä, että Lojban ei fundamentaalisti tuo peliin mitään uutta."

    Ei tästä ole erimielisyyttä, vaan siitä, mitä siitä seuraa. Kuten Windows-7:kaa, Linuxia tai Symbian-käyttöjärjestelmää ei olisi edes 100v:ssa mahdollista toteuttaa assembly-kielellä, samoin lojban on (vielä ilman näyttöä) yhtä tuottava työkalu kilpaileviin strategioihin verrattuna AGI:a toteutettaessa. En ole (ihan) yksin tämän käsitykseni kanssa.

    "MIT:n muiden yliopistojen tekoälylabroissa on työskennelllyt ja työskentelee pari kertaluokkaa enemmän *ammattilaisia*, joten enemmänkin sieltä odottaisin tai olisin odottanut tuloksia. Pelkästään isompien firmojen (kuten Microsoft) tutkimuslaitoksissakin tekoälyä tutkitaan paljon suuremmassa mittakaavassa. "

    Kyllä, mutta valitettavasti, ihan muutamaa poikkeusta lukuunottamatta, näissä laitoksissa tehdään perinteistä kapean tekoälyn perustutkimusta ja Yleinen Tekoäly esiintyy vain juhlapuhetasolla. Parhaiten rahoitettu AGI-hanke on Kiinassa, Xiamen Yliopistossa, jossa Hugo de Garis vetää projektia. Valitettavasti voi olla, että Yleinen Tekoäly on ensimmäisenä Kiinan Diktatuurijuntan käytössä.

    "Mitä teoksia ja julkaisuja tarkoitat? "

    Minun hyllystäni löytyvät esim:
    Marcus Hutter
    Universal Artificial Intelligense.
    Matemaattinen todistus sille, että brute force AGI on mahdollista, jos tehoa on rajattomasti

    Ben Goertzel, Cassio Pennachin
    Artificial General Intelligence
    Kokoelma tieteellisiä kirjoituksia

    Jeff Hawkins
    On Intelligence
    Tunnettu, ei niin tieteellinen, hieno esitys aivokuoren toimintaperiaatteesta

    J. Storrs Hall
    Beyond AI

    Pentti Haikonen
    The Cognitive Approach to Conscious Machines

    Pei Wang
    Rigid Flexibility, The Logic on Intelligence
    (Erinomainen!)

    Ben Goertzel, Pei Wang
    Advances in Artificial General Intelligence:
    Concepts, Architectures and Algorithms
    Kokoelma tieteellisiä kirjoituksia

    Antonio Chella, Riccardo Manzotti
    Artificial Consciousness
    Kokoelma tieteellisiä kirjoituksia

    "Miten se laskentateho mihinkään auttaa? Eikö ensin pitäisi kehittää "algoritmi" mistä se tekoäly syntyy"

    Ei ole yhtä tekoälyn algoritmia. On arkkitehtuureita, jotka soveltavat suurta joukkoa algoritmeja. Aivan ilmeisesti moni arkkitehtuuri on mahdollinen, kysymys on ennenkaikkea siitä, mikä on helpoiten toteutettavissa. Kuten sanottu, toteutukset vaativat valtavasti työtä ja apurahoja ei "huuhaalle" tipu. (Paitsi Kiinassa :( )

    On jo olemassa paljon tietoa ja tutkimustuloksia, mutta paljon työtä on tekemättä. Tilanne on aivan erilainen kuin esim 15v sitten.

    ""Tätä tarkoitan sillä, että Lojban ei fundamentaalisti tuo peliin mitään uutta.""

    "Ei tästä ole erimielisyyttä, vaan siitä, mitä siitä seuraa. Kuten Windows-7:kaa, Linuxia tai Symbian-käyttöjärjestelmää ei olisi edes 100v:ssa mahdollista toteuttaa assembly-kielellä,"

    Onhan se kyllä toisaalta kyllä totta, että ilmaisukyvyllä on merkitystä tässä mielessä. Ohjelmointikielten (ja tekniikan) primitiivisyyden huomaa aina kun tulee joku (matemattinen/tietojenkäsittelyllinen) idea, että näin ja näin voisi toteuttaa sellaisen ja sellaisen mittaus/adaptaatio/ennustussysteemin. Se aina kaatuu siihen, että kun sitten laskee mitä kaikkea pitäisi tehdä ja paljonko siihen menee tunteja, niin ei se vaan ihan sivutoimihommana onnistukaan.

    Toki ohjelmointikielten suoran käyttämisen sijaan voi käyttää palikoina kokonaisia sovellusohjelmia ja erillisiä laitteita, joka onkin se perinteinen (insinööri)tapa koota toimivia systeemejä ja tämä on jossain mielessä ekvivalenttia hyvän ilmaisukyvyn omaavan (ohjelmointi)kielen kanssa. Mutta moneen asiaan ei ole olemassa valmiita palikoita.

    Kysymys onkin, että vaikka hyvät peruspalikat olisivat olemassa (esim. ilmaisukykyisen kielen muodossa), syntyykö yleinen tekoaäly yhdistämällä nämä palikat vai tarvitaanko tähän vielä jotain ihan muuta lisäksi?

    "Marcus Hutter Universal Artificial Intelligense. Matemaattinen todistus sille, että brute force AGI on mahdollista, jos tehoa on rajattomasti"

    Katsoin google booksista mitä tuossa on, ja tuo kirjahan käsittelee ihan perus probabilistista päätösteoriaa, jonka kyllä tunnen erittäin hyvin. Valitettavasti olen myös varsin skeptinen sen suhteen, että saataisiinko sillä edelleenkään mitään älyä aikaan, kun ei se aiemminkaan onnistunut. Teoriahan on hyvin vanha. Brute-force AGI:n todistukseen asti en päässyt - siinä on pakko olla joku rajoittunut AGI:n määritelmä koska eihän nyt päätösteoriasta mitään älyä saada aikaan, sehän on ihan perus insinööritekniikkaa jota käytetään ihan tavallisissa analyysi- ja säätöjärjestelmissä.

    Äänestä

  • Aloittaja

    dx kirjoitti:

    ""Tätä tarkoitan sillä, että Lojban ei fundamentaalisti tuo peliin mitään uutta.""

    "Ei tästä ole erimielisyyttä, vaan siitä, mitä siitä seuraa. Kuten Windows-7:kaa, Linuxia tai Symbian-käyttöjärjestelmää ei olisi edes 100v:ssa mahdollista toteuttaa assembly-kielellä,"

    Onhan se kyllä toisaalta kyllä totta, että ilmaisukyvyllä on merkitystä tässä mielessä. Ohjelmointikielten (ja tekniikan) primitiivisyyden huomaa aina kun tulee joku (matemattinen/tietojenkäsittelyllinen) idea, että näin ja näin voisi toteuttaa sellaisen ja sellaisen mittaus/adaptaatio/ennustussysteemin. Se aina kaatuu siihen, että kun sitten laskee mitä kaikkea pitäisi tehdä ja paljonko siihen menee tunteja, niin ei se vaan ihan sivutoimihommana onnistukaan.

    Toki ohjelmointikielten suoran käyttämisen sijaan voi käyttää palikoina kokonaisia sovellusohjelmia ja erillisiä laitteita, joka onkin se perinteinen (insinööri)tapa koota toimivia systeemejä ja tämä on jossain mielessä ekvivalenttia hyvän ilmaisukyvyn omaavan (ohjelmointi)kielen kanssa. Mutta moneen asiaan ei ole olemassa valmiita palikoita.

    Kysymys onkin, että vaikka hyvät peruspalikat olisivat olemassa (esim. ilmaisukykyisen kielen muodossa), syntyykö yleinen tekoaäly yhdistämällä nämä palikat vai tarvitaanko tähän vielä jotain ihan muuta lisäksi?

    "Marcus Hutter Universal Artificial Intelligense. Matemaattinen todistus sille, että brute force AGI on mahdollista, jos tehoa on rajattomasti"

    Katsoin google booksista mitä tuossa on, ja tuo kirjahan käsittelee ihan perus probabilistista päätösteoriaa, jonka kyllä tunnen erittäin hyvin. Valitettavasti olen myös varsin skeptinen sen suhteen, että saataisiinko sillä edelleenkään mitään älyä aikaan, kun ei se aiemminkaan onnistunut. Teoriahan on hyvin vanha. Brute-force AGI:n todistukseen asti en päässyt - siinä on pakko olla joku rajoittunut AGI:n määritelmä koska eihän nyt päätösteoriasta mitään älyä saada aikaan, sehän on ihan perus insinööritekniikkaa jota käytetään ihan tavallisissa analyysi- ja säätöjärjestelmissä.

    "Brute-force AGI:n todistukseen asti en päässyt - siinä on pakko olla joku rajoittunut AGI:n määritelmä koska eihän nyt päätösteoriasta mitään älyä saada aikaan, "

    Hutter määrittelee "universaalisen älyn" AIXI-mallilla. Kyllä, se, edustaako "AIXI-kone" todellista älyä, on kiistanalainen asia. Kaikki eivät sitä hyväksy. Minä arvelen, että syynä tähän on se, että monien itsekunnioitusta kolhaisee, jos äly määritellään noin yksinkertaisesti, vain kykynä ennustaa ulkomaailman käyttäytyminen omien tekojen funktiona (ihan yksinkertaisesti ilmaistuna). Tavoitteellinen toiminta voidaan johtaa samaksi edellisen kanssa (kts. Hutter) Mutta tätä on periaattessa myös Jeff Hawkinsin "HTM-äly", eli ihmisen aivokuoren toiminnallisuus. Ehkä jotakin on lisättävä, jotta meillä olisi "oikeaa älyä", mutta ei paljon. Hutter ei ole keksinyt mitään toteutuskelpoista ratkaisua, vain mallin, jota vastaan omia arkkitehtuureita voi verrata. Yksinkertaisuus on kaunista, minä pidän AIXI:sta. Se on erinomainen lähtökohta älyä määriteltäessä.

    Käytännöllisyydestä taas puhuttaessa Pei Wangin versio probabilistisestä semanttisen tiedon esitystavasta, "NARS", on mielestäni tyylikäs ja toimiva.

    Muuten, on epäsuoria vihjeitä ja yleinen arvaus, että myös DARPA:lla olisi jonkinlainen salainen, sotilaallinen AGI-projekti, joka liittyy lähinnä robotiikkaan (ei minkäänlaiseen "skynet-konseptiin"). Julkista tietoa asiasta ei kai ole.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Brute-force AGI:n todistukseen asti en päässyt - siinä on pakko olla joku rajoittunut AGI:n määritelmä koska eihän nyt päätösteoriasta mitään älyä saada aikaan, "

    Hutter määrittelee "universaalisen älyn" AIXI-mallilla. Kyllä, se, edustaako "AIXI-kone" todellista älyä, on kiistanalainen asia. Kaikki eivät sitä hyväksy. Minä arvelen, että syynä tähän on se, että monien itsekunnioitusta kolhaisee, jos äly määritellään noin yksinkertaisesti, vain kykynä ennustaa ulkomaailman käyttäytyminen omien tekojen funktiona (ihan yksinkertaisesti ilmaistuna). Tavoitteellinen toiminta voidaan johtaa samaksi edellisen kanssa (kts. Hutter) Mutta tätä on periaattessa myös Jeff Hawkinsin "HTM-äly", eli ihmisen aivokuoren toiminnallisuus. Ehkä jotakin on lisättävä, jotta meillä olisi "oikeaa älyä", mutta ei paljon. Hutter ei ole keksinyt mitään toteutuskelpoista ratkaisua, vain mallin, jota vastaan omia arkkitehtuureita voi verrata. Yksinkertaisuus on kaunista, minä pidän AIXI:sta. Se on erinomainen lähtökohta älyä määriteltäessä.

    Käytännöllisyydestä taas puhuttaessa Pei Wangin versio probabilistisestä semanttisen tiedon esitystavasta, "NARS", on mielestäni tyylikäs ja toimiva.

    Muuten, on epäsuoria vihjeitä ja yleinen arvaus, että myös DARPA:lla olisi jonkinlainen salainen, sotilaallinen AGI-projekti, joka liittyy lähinnä robotiikkaan (ei minkäänlaiseen "skynet-konseptiin"). Julkista tietoa asiasta ei kai ole.

    "Hutter määrittelee "universaalisen älyn" AIXI-mallilla. Kyllä, se, edustaako "AIXI-kone" todellista älyä, on kiistanalainen asia. Kaikki eivät sitä hyväksy. Minä arvelen, että syynä tähän on se, että monien itsekunnioitusta kolhaisee, jos äly määritellään noin yksinkertaisesti, vain kykynä ennustaa ulkomaailman käyttäytyminen omien tekojen funktiona (ihan yksinkertaisesti ilmaistuna)."

    Yksinkertaiset määritelmät ovat toki hyviä, mutta joskus liian yksinkertaisista määritelmistä seuraa älyttömiä johtopäätöksiä, kuten että vessapöntön vetojärjestelmä on älykäs. Siinä on kuitenkin sensori, jolla se mittaa vedenkorkeutta ja se tietää, että jos venttiili avataan, vesi nousee. Tosin nyt varmaan ei se malli ihan niin yksinkertainen ole, mutta kuitenkin.

    Itse kirjaa on aika vaikea lukea googlesta, mutta tuolla näkyy olevan lyhyesti tuo AIXI-malli:

    http://www.hutter1.net/ai/uaibook.htm

    Tuo näyttää periaatteessa ihan tavalliselta stokastisen säätöteorian Bellmanin yhtälöltä, paitsi että säätöfunktion sijaan siellä on Turinging kone ja todennäköisyydet ovat algoritmisia (?). Itse asiassa säätöteorian vastaava yhtälö on paljon yleisempi - tila-avaruuden ei tarvitse olla numeroituva, havaintoja ei tarvitse pystyä täysin ennustamaan (vain niiden jakauma), säätölain ei tarvitse olla Turingin kone jne. Onko stokastinen säädin siis älykäs, koska selvästikin AIXI on erikoistapaus stokastisen säädön perusyhtälöstä?

    Äänestä

  • Aloittaja

    dx kirjoitti:

    "Hutter määrittelee "universaalisen älyn" AIXI-mallilla. Kyllä, se, edustaako "AIXI-kone" todellista älyä, on kiistanalainen asia. Kaikki eivät sitä hyväksy. Minä arvelen, että syynä tähän on se, että monien itsekunnioitusta kolhaisee, jos äly määritellään noin yksinkertaisesti, vain kykynä ennustaa ulkomaailman käyttäytyminen omien tekojen funktiona (ihan yksinkertaisesti ilmaistuna)."

    Yksinkertaiset määritelmät ovat toki hyviä, mutta joskus liian yksinkertaisista määritelmistä seuraa älyttömiä johtopäätöksiä, kuten että vessapöntön vetojärjestelmä on älykäs. Siinä on kuitenkin sensori, jolla se mittaa vedenkorkeutta ja se tietää, että jos venttiili avataan, vesi nousee. Tosin nyt varmaan ei se malli ihan niin yksinkertainen ole, mutta kuitenkin.

    Itse kirjaa on aika vaikea lukea googlesta, mutta tuolla näkyy olevan lyhyesti tuo AIXI-malli:

    http://www.hutter1.net/ai/uaibook.htm

    Tuo näyttää periaatteessa ihan tavalliselta stokastisen säätöteorian Bellmanin yhtälöltä, paitsi että säätöfunktion sijaan siellä on Turinging kone ja todennäköisyydet ovat algoritmisia (?). Itse asiassa säätöteorian vastaava yhtälö on paljon yleisempi - tila-avaruuden ei tarvitse olla numeroituva, havaintoja ei tarvitse pystyä täysin ennustamaan (vain niiden jakauma), säätölain ei tarvitse olla Turingin kone jne. Onko stokastinen säädin siis älykäs, koska selvästikin AIXI on erikoistapaus stokastisen säädön perusyhtälöstä?

    "Onko stokastinen säädin siis älykäs, koska selvästikin AIXI on erikoistapaus stokastisen säädön perusyhtälöstä? "

    Kyllä. Eivät elolliset järjestelmät yleensä paljon parempaan pysty. Silti minusta esim. C. Elegance -mato on älykäs toimija, agentti, lumihiutale ei ole. Tietenkin AIXI on "behavioristinen", "blackbox" -näkemys älykkyydestä, mutta sillä pääsee pitkälle.

    "kirjahan käsittelee ihan perus probabilistista päätösteoriaa, jonka kyllä tunnen erittäin hyvin. Valitettavasti olen myös varsin skeptinen sen suhteen, että saataisiinko sillä edelleenkään mitään älyä aikaan, kun ei se aiemminkaan onnistunut."

    Älä jää liiaksi yhteen algoritmiin, tai periaatteeseen. Mikään yksittäinen algoritmi ei riitä, tarvitaan monia periaatteita soveltava arkkitehtuuri ja jopa tällaisten arkkitehtuureiden hierarkia: "society of mind", kuten Minsky asian ilmaisee. Siksi ihmisaivot ovat hyvä referenssi, jota kannattaa edelleen tutkia, yrittämättä silti kopioida niitä.

    HTM-periaatekaan ei riitä, vaikka sillä pääsee hyvin pitkälle. Yhden universaalisen HTM-modulin toteuttaminen (vaikka idea on yksinkertainen) näyttää olevan Hawkinsillekin vaikeaa.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Onko stokastinen säädin siis älykäs, koska selvästikin AIXI on erikoistapaus stokastisen säädön perusyhtälöstä? "

    Kyllä. Eivät elolliset järjestelmät yleensä paljon parempaan pysty. Silti minusta esim. C. Elegance -mato on älykäs toimija, agentti, lumihiutale ei ole. Tietenkin AIXI on "behavioristinen", "blackbox" -näkemys älykkyydestä, mutta sillä pääsee pitkälle.

    "kirjahan käsittelee ihan perus probabilistista päätösteoriaa, jonka kyllä tunnen erittäin hyvin. Valitettavasti olen myös varsin skeptinen sen suhteen, että saataisiinko sillä edelleenkään mitään älyä aikaan, kun ei se aiemminkaan onnistunut."

    Älä jää liiaksi yhteen algoritmiin, tai periaatteeseen. Mikään yksittäinen algoritmi ei riitä, tarvitaan monia periaatteita soveltava arkkitehtuuri ja jopa tällaisten arkkitehtuureiden hierarkia: "society of mind", kuten Minsky asian ilmaisee. Siksi ihmisaivot ovat hyvä referenssi, jota kannattaa edelleen tutkia, yrittämättä silti kopioida niitä.

    HTM-periaatekaan ei riitä, vaikka sillä pääsee hyvin pitkälle. Yhden universaalisen HTM-modulin toteuttaminen (vaikka idea on yksinkertainen) näyttää olevan Hawkinsillekin vaikeaa.

    ""Onko stokastinen säädin siis älykäs, koska selvästikin AIXI on erikoistapaus stokastisen säädön perusyhtälöstä? "

    Kyllä. Eivät elolliset järjestelmät yleensä paljon parempaan pysty. Silti minusta esim. C. Elegance -mato on älykäs toimija, agentti, lumihiutale ei ole. Tietenkin AIXI on "behavioristinen", "blackbox" -näkemys älykkyydestä, mutta sillä pääsee pitkälle."

    Mutta AIXI:ssa säädin on aina Turingin kone, kun taas yleisessä Bellmanin yhtälössä sen ei tarvitse olla. Jos kerran jo tällainen rajoittunut järjestelmä on jo älykäs järjestelmä, mikä olisi sitten sellainen systeemi jossa säätimenä olisi vaikka joukko qubitteja (ts. kvanttitietokone)? Tai sitten sellainen sitä seuraava laskennan malli, jonka huomataan olevan aito ylijoukko Turing- ja kvanttikoneista?

    Näet varmaan mihin pyrin - jotakin olennaista vielä mielestäni puuttuu.

    Äänestä

  • dx kirjoitti:

    ""Onko stokastinen säädin siis älykäs, koska selvästikin AIXI on erikoistapaus stokastisen säädön perusyhtälöstä? "

    Kyllä. Eivät elolliset järjestelmät yleensä paljon parempaan pysty. Silti minusta esim. C. Elegance -mato on älykäs toimija, agentti, lumihiutale ei ole. Tietenkin AIXI on "behavioristinen", "blackbox" -näkemys älykkyydestä, mutta sillä pääsee pitkälle."

    Mutta AIXI:ssa säädin on aina Turingin kone, kun taas yleisessä Bellmanin yhtälössä sen ei tarvitse olla. Jos kerran jo tällainen rajoittunut järjestelmä on jo älykäs järjestelmä, mikä olisi sitten sellainen systeemi jossa säätimenä olisi vaikka joukko qubitteja (ts. kvanttitietokone)? Tai sitten sellainen sitä seuraava laskennan malli, jonka huomataan olevan aito ylijoukko Turing- ja kvanttikoneista?

    Näet varmaan mihin pyrin - jotakin olennaista vielä mielestäni puuttuu.

    "jotakin olennaista vielä mielestäni puuttuu"

    Tuttu argumentti täällä. Kukaan ei ole vielä keksinyt mitä täsmälleen puuttuu. Siten ei voida tietää onko se illuusio joka johtuu kenties todellisuuden väärin ymmärretystä luonteesta. Halutaan ajatella jopa hieman uskonnollisesti että jokin viisaampi jossain materian ulkopuolella vetelee naruja.

    Tietenkin puuttuu vielä se laitteiston tehokkuuden kasvu.

    Äänestä

  • KN$ kirjoitti:

    "jotakin olennaista vielä mielestäni puuttuu"

    Tuttu argumentti täällä. Kukaan ei ole vielä keksinyt mitä täsmälleen puuttuu. Siten ei voida tietää onko se illuusio joka johtuu kenties todellisuuden väärin ymmärretystä luonteesta. Halutaan ajatella jopa hieman uskonnollisesti että jokin viisaampi jossain materian ulkopuolella vetelee naruja.

    Tietenkin puuttuu vielä se laitteiston tehokkuuden kasvu.

    "Kukaan ei ole vielä keksinyt mitä täsmälleen puuttuu. Siten ei voida tietää onko se illuusio joka johtuu kenties todellisuuden väärin ymmärretystä luonteesta. Halutaan ajatella jopa hieman uskonnollisesti että jokin viisaampi jossain materian ulkopuolella vetelee naruja."

    Mutta joskus myös ollaan vähän turhan optimistisia siinä, että Turingin kone olisi ihan kaikkeen kykenevä. Church-Turing-teesi on varmasti sinänsä tosi, mutta ei se päde kaikkeen, vaan ainoastaan klassiseen logiikkaan perustuviin systeemeihin eikä siis kvanttisysteemeihin ollenkaan. Vastaavasti on viitteitä siitä, että vielä jotain olisi Turingin ja Deutchin takanakin. En tarkoita mitään uskontoon liittyvää vaan fysikaalisisiin ilmiöihin perustuvaa aidosti vahvempaa laskennan teoriaa.

    Onhan se toki mahdollista, että äly (ja ihminenkin) on ihan Turing-laskettava, mutta pitäisikin kyllä outoa jos ei siinä olisi mukana ainakin kvanttipiirteitä sekä piirteitä vielä (koskaan) keksimättömistä fysiikan teorioista.

    Äänestä

Vastaan tänne, koska hierarkkia meni liian syväksi.

Mitä sellaista voidaan kvanttitietokoneella laskea, mitä TM ei pysty laskemaan?

Äänestä
  • Tuon mukaan ainakin kaikilla reaaliluvuilla voidaan suorittaa laskutoimituksia (myös ei-Turing-laskettavilla):

    http://en.wikipedia.org/wiki/Church–Turing–Deutsch_principle

    Se, että mikä esimerkkiongelma tuolla ratkeaa mutta TM:llä ei onkin hieman vaikeampi keksiä.

    Äänestä

  • dx kirjoitti:

    Tuon mukaan ainakin kaikilla reaaliluvuilla voidaan suorittaa laskutoimituksia (myös ei-Turing-laskettavilla):

    http://en.wikipedia.org/wiki/Church–Turing–Deutsch_principle

    Se, että mikä esimerkkiongelma tuolla ratkeaa mutta TM:llä ei onkin hieman vaikeampi keksiä.

    Mutta tuokin on olettamus. Jos tämä-ja-tämä, niin se-ja-se.

    Nythän meillä on kaksi olettamusta, CT ja CTD, ei muuta.

    Äänestä

  • dx: "Onhan se toki mahdollista, että äly (ja ihminenkin) on ihan Turing-laskettava, mutta pitäisikin kyllä outoa jos ei siinä olisi mukana ainakin kvanttipiirteitä sekä piirteitä vielä (koskaan) keksimättömistä fysiikan teorioista."

    Pitäisikö lähteä selvittämään sitä, miksi tietokoneita yleensä tarvitaan. Tuottavatko ne vain lisäarvoa vai korvaavatko ne myös ihmisten työtehtäviä. Jos vastaus on jälkimmäinen niin ihminen on ainakin osittain turing-laskettava.

    Äänestä

Aloittaja

"Onhan se toki mahdollista, että äly (ja ihminenkin) on ihan Turing-laskettava, mutta pitäisikin kyllä outoa jos ei siinä olisi mukana ainakin kvanttipiirteitä sekä piirteitä vielä (koskaan) keksimättömistä fysiikan teorioista. "

Intuitiivisesti minä en kaipaa älyn toteutukseen muita kvanttipiirteitä kuin kohinan (se on välttämätöntä!), enkä ilmeisesti myöskään mitään uusia fysikaan teorioita. Olen (valitettavasti pinnallisesti) tutustunut esim Penrosen ajatuksiin "kvanttigravitaation" osuudesta neuronien toiminnassa ja tietoisuuden syntymisessä, mutta en ole pystynyt seuraamaan todistelua sille tasolle, että osaisin ottaa ideat vakavasti. Suunnilleen samoin ovat todenneet minua fiksummatkin.

Oleellisin lukemani kritiikki Hutterin AIXI-malliin on, että malli ei kykenisi asettamaan tavoitteita, joiden sisältö olisi johdettavissa epäsuorasti latenteista muuttujista. En ole ihan 100% varma väitteen pitävyydestä. Onkohan väitteessä huomioitu se, että oleellinen osan AIXI-koneen oppimista tapahtuu ohjatusti ulkoisen älyn asettaman palautesignaalin perusteella. Myönnän. palautesignaali voi tulla myös kognition kannalta ulkoisesti, mutta olennon oman kehon asettamien kivun ja hyvänolon aistimusten muodossa. Mutta usein ei:

Esim hyönteisistä, kaloista ja sammakkoeläimistä poiketen älykkäämpien lajien, kuten linnut ja nisäkkäät, parissa vanhempien opastuksella on lähes aina merkittävä osuus poikasen kognitiivisten taitojen oppimisessa. Opettamisen peruspiirre on taitojen opettaminen oikeassa järjestyksessä, tyvestä puuhun. Aivokuoren toiminnallinen rakenne on aivan ilmeisesti oleellisilta osin hierarkinen. Maailma ja toimenpiteet jäsennellään hierarkisesti. (Hierakian ylätasoilla tilanne muuttuu.) Siten jos ulkoinen opettaja vähän kerrallaan, varovasti asteittain edeten harjoittaa AIXI-koneella välitavoitteiden muodostamista ja niiden löytämistä yhä monimutkaisempien opittavien algoritmien kautta, voi ehkä Hutterin AIXI-konekin oppia ne... ehkä... en ole varma.

Lintu-nisäkäs-esimerkin valossa olisin taipuvainen arvaamaan, että kehittynyt äly käytännössä aina tarvitsee ulkoista älykästä opetusta ja että oppilas ohittaa opettajansa vain rajoitetusti. Tässä ajatusrakenteessa kulttuurievoluutio tulee ratkaisevaksi osaksi älykkyyden kehitystä, oli kyse city-variksista, valaista, ihmisistä tai koneiden älykkyyden kehityksestä.

Äänestä
  • "Oleellisin lukemani kritiikki Hutterin AIXI-malliin on, että malli ei kykenisi asettamaan tavoitteita, joiden sisältö olisi johdettavissa epäsuorasti latenteista muuttujista. En ole ihan 100% varma väitteen pitävyydestä. Onkohan väitteessä huomioitu se, että oleellinen osan AIXI-koneen oppimista tapahtuu ohjatusti ulkoisen älyn asettaman palautesignaalin perusteella. Myönnän. palautesignaali voi tulla myös kognition kannalta ulkoisesti, mutta olennon oman kehon asettamien kivun ja hyvänolon aistimusten muodossa."

    Tuo AIXI malli on toki erikoistapaus Bellmanin yhtälöstä (joka on peräisin 50-luvulta):

    http://en.wikipedia.org/wiki/Bellman_equation

    jonka yhtenä erikoistapauksena on esimerkiksi tällaiset prosessit:

    http://en.wikipedia.org/wiki/Partially_observable_Markov_decision_process

    joista AIXI on myös erikoistapaus. Paitsi, että yllä mainittu malli on laajempi kuin AIXI tai siis AIXI on sen erikoistapaus. AIXI:ssa tila (joka sisältää latentit muuttujat) on vähän niin kuin Turingin kone q.

    Bellmanin yhtälöiden tasolla epäsuorat tavoitteet tarkoittaisivat ilmeisesti sitä, että palkinto r voi riippua tilasta. Ja kyllähän AIXI-mallissa r riippuu q:sta, jolloin tavoitteet voivat olla funktioita latentista tilasta, jos tarkoitit sillä nimenomaan sitä Turingin konetta q. Outoa tuossa mallissa on, että siellä ei tosiaan ole mitään muuta tilaa kuin Turingin kone. Ihan hyvinhän sinne voisi laittaa jonkun reaaliarvoisen tai vektoriarvoisen tilan, johon voidaan tallettaa jotain (tätäkö se kritiikki koski?).

    Mutta siis olen skeptinen sen suhteen saadaanko tällä Bellmanin yhtälöllä älyä aikaan, kun ei se 50,60,70,80,90 -luvuillakaan onnistunut samalla yhtälöllä. Tosin jos äly aiotaan saada aikaan, niin tämän yhtälön ottaminen lähtökohdaksi on kyllä mielestäni paras arvaus.

    Äänestä

Kommentoi aloitusta


UPDATE_6997029 kirjoitti:

Kiinnostuneena katselin Intellin uusimman kahdeksanytimisen PC-prodessorin arkkitehtuuria ja speksejä:
http://hothardware.com/News/Buckle-Up-Intel-Preps-8Core-NehalemEX-Chips-for-March-Launch/
Siinä on kahdeksan ydintä ,joista kukin tukee 16:ta samanaikaisesti ajettava taskia, säiettä. Näyttää siltä, että tällainen SMP-arkkitehtuuri tukehtuu pian muistipullonkaulaan kässäyksestä huolimatta. Ehkä vielä 16 ydintä on edes jotenkin järkevä, mutta sitten tulee stoppi. Suurin osa säikeistä joutuu odottamaan vuoroaan saada kirjoittaa tai lukea jotakin keskusmuistista, eli ovat tyhjäkäynnillä.
Tämän jälkeen minusta ainoa järkevä mahdollisuus on luopua SMP:stä, siirtyä sanomanvälitykseen taskien välillä (siis Transputer-tyyppisten linkkien käyttöön) sekä se kaikkein radikaalein ratkaisu: yhdistetään CPU-ytimet ja muistipiirit samalla piipalalle. Kun ostat lisää muistia, saat aina samalla lisää ytimiä.

Tietysti ratkaisu edellyttää myös suuria muutoksia tavassa tehdä ohjelmia, mutta siltä ei voi välttyä, jos halutaan puristaa piiriteknologiasta lisää tehoja.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu