Kone voitti ihmisen

http://news.bbc.co.uk/2/hi/europe/6212076.stm

Alle kymmenen vuotta sitten pelattiin paljon julkisuutta saanut Deep Blue vs. Kasparov. Nykyiset huiput matsasivat Bonnissa ja kone voitti. Kyseessä oli kuuden ottelun matsi.

En tiedä mikä tilanne on Bridgessä. Go-pelissä eivät koneet vielä pärjää edes hyville keskivertopelaajille. Tekoälyllä on pitkä tie edessään...
9612
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Kone voitti pelkästään raa'alla laskentavoimalla.
Miettikääpäs yhtäältä miten suuri ja paljon voimavaroja sitonut tämä kone oli ja toisaalta, että yli 5 miljardia älykästä ihmista tallustelee toisaalla.

Äänestä
  • Pistetäänpä tuo puusee pelaamaan shakkia 5 miljardia ihmistä vastaan. Mitäs tykkäät, pärjääkö ihminen sittenkään?

    Äänestä

  • "Kone voitti pelkästään raa'alla laskentavoimalla. "

    Kerropa tarkemmin mikä ero on nimenomaan tässä yhteydessä (shakin peluu) on "älyllä" ja "raa'alla laskentavoimalla"? Minulle se ei ole aivan ilmeistä.

    Tiedätkö toteutuksen sovellusarkkitehtuurista paljonkin?

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Kone voitti pelkästään raa'alla laskentavoimalla. "

    Kerropa tarkemmin mikä ero on nimenomaan tässä yhteydessä (shakin peluu) on "älyllä" ja "raa'alla laskentavoimalla"? Minulle se ei ole aivan ilmeistä.

    Tiedätkö toteutuksen sovellusarkkitehtuurista paljonkin?

    No tuollaisia simppeleitä pelitekoälyjähän voi jaotella esimerkiksi kahteen seuraavanlaiseen ryhmään:

    1) Juurikin tuo "raaka laskentavoima", eli kone rupeaa vimmatulla silmukalla käymään läpi jokaikisen vaihtoehdon ja niistä sitten jollain laskumetodilla pisteyttämään jokaisen ja valitsemalla parhaan. Vaatii todella suurta konetehoa peleissä joissa siirtomahdollisuuksia on paljon, kuten shakkikin

    2) Älykkäämpi järjestelmä, joka kunkin tilanteen mukaan ottaa huomioon vastustajan ja oman tilanteen ja niiden pohjalta alkaa hakemaan ratkaisua. Tässähän ei tarvitse käydä jokaista vaihtoehtoa läpi kuten aiemmassa.

    Tokihan tuossa ykkösvaihtoehdossakin pitää jollain tavalla osata pisteyttää ne eri vaihtoehdot mutta selkeä erohan noilla minun mielstäni on.

    Noin ainakin itse lähdin miettimään tuota pelitekoälyä, jota valitettavasti en kyllä ainakaan vielä ole saanut aloitettua.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Kone voitti pelkästään raa'alla laskentavoimalla. "

    Kerropa tarkemmin mikä ero on nimenomaan tässä yhteydessä (shakin peluu) on "älyllä" ja "raa'alla laskentavoimalla"? Minulle se ei ole aivan ilmeistä.

    Tiedätkö toteutuksen sovellusarkkitehtuurista paljonkin?

    Shakkikoneiden "äly" on (tietääkseni) aina kovakoodattu. Ne eivät ole siinä mielessä älykkäitä kuin miten "äly" normaalissa kielenkäytössä ymmärretään.

    DeepBluessa oli esim. heuristiikkafunktioon koodattu muistaakseni yli 8000 erilaista ehtoa minkä pohjalta eri pelitilanteita arvotettiin. En tiedä miten Fritz on toteutettu, mutta tuskin siinä ratkaisevaa eroa toteutustavassa on. Veikkaisin, että vastaavaa kovakoodausta, jossa älyllinen työ on jäänyt insinöörin tuolille, siinäkin on käytetty (saa korjata jos menee metsään).

    Yleensäkin olisi mielekkäämpää mielestäni kehitellä siinä mielessä dynaaminen algoritmi, että se kehittäisi heuristiikkansa (~oppisi) tutkimalla erilaisia pelikirjastoja ja pelaamalla vaikka toisia koneita vastaan. Tällöin voitaisiin puhua ainakin jossa mielessä "aidommasta" tekoälystä.

    Nykyinen tietokone vs. ihminen shakkimatsi tuntuu tosiaan olevan enemmän laskentavoiman kuin ohjelmallisten toteutusmetodien kilpakenttä.

    Äänestä

  • ainakin. kirjoitti:

    Shakkikoneiden "äly" on (tietääkseni) aina kovakoodattu. Ne eivät ole siinä mielessä älykkäitä kuin miten "äly" normaalissa kielenkäytössä ymmärretään.

    DeepBluessa oli esim. heuristiikkafunktioon koodattu muistaakseni yli 8000 erilaista ehtoa minkä pohjalta eri pelitilanteita arvotettiin. En tiedä miten Fritz on toteutettu, mutta tuskin siinä ratkaisevaa eroa toteutustavassa on. Veikkaisin, että vastaavaa kovakoodausta, jossa älyllinen työ on jäänyt insinöörin tuolille, siinäkin on käytetty (saa korjata jos menee metsään).

    Yleensäkin olisi mielekkäämpää mielestäni kehitellä siinä mielessä dynaaminen algoritmi, että se kehittäisi heuristiikkansa (~oppisi) tutkimalla erilaisia pelikirjastoja ja pelaamalla vaikka toisia koneita vastaan. Tällöin voitaisiin puhua ainakin jossa mielessä "aidommasta" tekoälystä.

    Nykyinen tietokone vs. ihminen shakkimatsi tuntuu tosiaan olevan enemmän laskentavoiman kuin ohjelmallisten toteutusmetodien kilpakenttä.

    Jos raaka voima määritellään siten, että ohjelma testaa kaikki siirtovaihtoehdot, niin tällaista metodia ei missään käytännön shakkiohjemassa käytetä sellaisenaan. Testattavia "siirtojapuita" (tai -polkuja) rajataan aina erilaisten sääntöjen avulla. Siispä shakkitietokone ei ole raa'an laskentatehon varassa. Sillä on myös osaamista.

    "Shakkikoneiden "äly" on (tietääkseni) aina kovakoodattu."

    Epäilen suuresti. Jos kovakoodauksella tarkoitetaan sitä, että säännöt on lähdekoodissa "if-elsi-switch-case-tasolla", niin näin on vain yksinkertaisimmissa toteutuksissa. Perustan väitteeni sille, että on huomattavasti parempi ja käytännöllisempi ohjelmointityyli erottaa toisitaan "engine" ja tietämyskanta. Tällä päästään myös siihen, että ohjelmoija ja shakkiekspertti (jonka ei tarvitse tietää ohjelmoinnista paljoakaan) voivat olla eri henkilöitä. Oletan siis, että säännöt toteutetaan binääriseen muotoon käännettävällä shakkilauta-, nappula- ja siirtospesifisellä välikielellä, esim hiukan tyyppiä prolog, eli kieli on ennemmin kuvauskieli kuin perinteinen ohjemointikieli.

    Siis pelatessaan ihminen käyttää kokemukseensa perustuvaa laajaa rinnakkaista hahmontunnistusta, joka implisiittisesti sisältää samoja sääntöjä (mutta paljon enemmän ja hienostuneempia) kuin koneelle eksplisiittisesti ohjelmoitu asiantuntemus. Lisäksi kone pystyy konkreettisesti testaamaan siirtojen todellisen vaikutuksen sääntöjen sovelluksen jälkeen paljon pidemmälle kuin ihminen. Mutta vastineeksi ihminen voi tietoisesti käyttää sellaisia polkuja, jotka arvelee koneen hylkäävän sääntöjensä perusteella. Siksi huipulla tasainen asetelma jatkuu, kunnes lopulta koneet tulevat viemään totaalisen voiton.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    Jos raaka voima määritellään siten, että ohjelma testaa kaikki siirtovaihtoehdot, niin tällaista metodia ei missään käytännön shakkiohjemassa käytetä sellaisenaan. Testattavia "siirtojapuita" (tai -polkuja) rajataan aina erilaisten sääntöjen avulla. Siispä shakkitietokone ei ole raa'an laskentatehon varassa. Sillä on myös osaamista.

    "Shakkikoneiden "äly" on (tietääkseni) aina kovakoodattu."

    Epäilen suuresti. Jos kovakoodauksella tarkoitetaan sitä, että säännöt on lähdekoodissa "if-elsi-switch-case-tasolla", niin näin on vain yksinkertaisimmissa toteutuksissa. Perustan väitteeni sille, että on huomattavasti parempi ja käytännöllisempi ohjelmointityyli erottaa toisitaan "engine" ja tietämyskanta. Tällä päästään myös siihen, että ohjelmoija ja shakkiekspertti (jonka ei tarvitse tietää ohjelmoinnista paljoakaan) voivat olla eri henkilöitä. Oletan siis, että säännöt toteutetaan binääriseen muotoon käännettävällä shakkilauta-, nappula- ja siirtospesifisellä välikielellä, esim hiukan tyyppiä prolog, eli kieli on ennemmin kuvauskieli kuin perinteinen ohjemointikieli.

    Siis pelatessaan ihminen käyttää kokemukseensa perustuvaa laajaa rinnakkaista hahmontunnistusta, joka implisiittisesti sisältää samoja sääntöjä (mutta paljon enemmän ja hienostuneempia) kuin koneelle eksplisiittisesti ohjelmoitu asiantuntemus. Lisäksi kone pystyy konkreettisesti testaamaan siirtojen todellisen vaikutuksen sääntöjen sovelluksen jälkeen paljon pidemmälle kuin ihminen. Mutta vastineeksi ihminen voi tietoisesti käyttää sellaisia polkuja, jotka arvelee koneen hylkäävän sääntöjensä perusteella. Siksi huipulla tasainen asetelma jatkuu, kunnes lopulta koneet tulevat viemään totaalisen voiton.

    "Testattavia "siirtojapuita" (tai -polkuja) rajataan aina erilaisten sääntöjen avulla."

    Tiedän. Yleensä tällaisissa peleissä muodostetaan pelipuu, jota sitten ihan yksinkertaisesti selataan eteenpäin. En tunne Fritzin toteutusta, mutta DeepBlue toteutti pelipuun selaamista iteratiivisesti syventävällä alpha-beta-karsinnalla, jossa keskimääräinen hakusyvyys oli muistaakseni 14 siirtoa ja kiinostavan tuntuisia polkuja saatettiin selata jopa 40 siirtoa eteenpäin.

    Kuten sanoin, niin pelkästään evaluointifunktiossa oli yli 8000 erilaista piirrettä ja niiden lisäksi kannassa oli muistaakseni kaikki 5-6 nappulan loppupelit, joita voitiin tarvittaessa selata.

    DB selasi yli sata miljoonaa hakupuun solmua sekunnissa läpi. Mielestäni jo tämä "selaaminen" osoittaa varsinaisen "älyn" vähyyden toteutuksessa. Laskuvoiman näyte se oli eikä varsinaisesti mikään tekoälyn näytös jossain ohjelmointiteknisessä mielessä.

    "Siispä shakkitietokone ei ole raa'an laskentatehon varassa. Sillä on myös osaamista."

    Miten määrittelet osaamisen? Jos osaamista on evaluointifunktion rakenne, niin se on insinöörin tekemä. Se on ihmisen tuotos.

    Kuten sanoin, niin tämäntyylisissä toteutuksissa se äly tuuppaa kyllä jäämään insinöörin penkille koodauksen jälkeen.

    "Oletan siis, että säännöt toteutetaan binääriseen muotoon käännettävällä shakkilauta-, nappula- ja siirtospesifisellä välikielellä, esim hiukan tyyppiä prolog, eli kieli on ennemmin kuvauskieli kuin perinteinen ohjemointikieli. "

    Öh? No eiköhän kaikki ohjelmointikielet ole "binääriseen muotoon käännettäviä" (myös skriptikielet). Myöskään niiden ilmaisuvoimassa ei ole eroa, on yhdentekevää onko käytössä shelliskripti vai prolog tai vaikka assembler tai basic, niillä voidaan toteuttaa tasan samat asiat.

    Äänestä

  • ainakin. kirjoitti:

    "Testattavia "siirtojapuita" (tai -polkuja) rajataan aina erilaisten sääntöjen avulla."

    Tiedän. Yleensä tällaisissa peleissä muodostetaan pelipuu, jota sitten ihan yksinkertaisesti selataan eteenpäin. En tunne Fritzin toteutusta, mutta DeepBlue toteutti pelipuun selaamista iteratiivisesti syventävällä alpha-beta-karsinnalla, jossa keskimääräinen hakusyvyys oli muistaakseni 14 siirtoa ja kiinostavan tuntuisia polkuja saatettiin selata jopa 40 siirtoa eteenpäin.

    Kuten sanoin, niin pelkästään evaluointifunktiossa oli yli 8000 erilaista piirrettä ja niiden lisäksi kannassa oli muistaakseni kaikki 5-6 nappulan loppupelit, joita voitiin tarvittaessa selata.

    DB selasi yli sata miljoonaa hakupuun solmua sekunnissa läpi. Mielestäni jo tämä "selaaminen" osoittaa varsinaisen "älyn" vähyyden toteutuksessa. Laskuvoiman näyte se oli eikä varsinaisesti mikään tekoälyn näytös jossain ohjelmointiteknisessä mielessä.

    "Siispä shakkitietokone ei ole raa'an laskentatehon varassa. Sillä on myös osaamista."

    Miten määrittelet osaamisen? Jos osaamista on evaluointifunktion rakenne, niin se on insinöörin tekemä. Se on ihmisen tuotos.

    Kuten sanoin, niin tämäntyylisissä toteutuksissa se äly tuuppaa kyllä jäämään insinöörin penkille koodauksen jälkeen.

    "Oletan siis, että säännöt toteutetaan binääriseen muotoon käännettävällä shakkilauta-, nappula- ja siirtospesifisellä välikielellä, esim hiukan tyyppiä prolog, eli kieli on ennemmin kuvauskieli kuin perinteinen ohjemointikieli. "

    Öh? No eiköhän kaikki ohjelmointikielet ole "binääriseen muotoon käännettäviä" (myös skriptikielet). Myöskään niiden ilmaisuvoimassa ei ole eroa, on yhdentekevää onko käytössä shelliskripti vai prolog tai vaikka assembler tai basic, niillä voidaan toteuttaa tasan samat asiat.

    "Miten määrittelet osaamisen? Jos osaamista on evaluointifunktion rakenne, niin se on insinöörin tekemä. Se on ihmisen tuotos. "

    Kyllä se on ihmisen tuotos. Oletan kyllä, että on kehitelty, koemielessä, ihmisen tavoin oppivia shakkiohjelmia, jotka hankkivat kokemuksensa itse. Mutta en todellakaan usko, että parhaimmissa toteuksissa ohjelmoija ja shakkiekspertti (jolta ohjelman asiantuntemus on peräisin) ovat yksi ja sama henkilö.

    "Öh? No eiköhän kaikki ohjelmointikielet ole "binääriseen muotoon käännettäviä" (myös skriptikielet). "

    Epäoleellista.

    "Myöskään niiden ilmaisuvoimassa ei ole eroa, on yhdentekevää onko käytössä shelliskripti vai prolog tai vaikka assembler tai basic, niillä voidaan toteuttaa tasan samat asiat."

    Väitätkö, että kielien ilmaisuvoimassa ei ole eroja??? Todella ihmeellinen väite. Ei se, että käännetyn koodin lopputulos on sama tarkoita ettei lähdekoodin ilmausuvoimassa olisi eroja.

    Ilmaisuvoimassa on valtavia eroja ja on todella merkityksellistä voiko shakkimestari kirjoitella sääntöjä suoraan omaa ajatteluaan tukevalla skriptikielellä kuin esim C :lla tai edes prologilla. Lisäksi tähän skriptikieleen voi olla graafinen käyttöliittymä, jolla säännöt voidaan syöttää graafisesti vaikka hieman taulukkolaskimien tavoin.
    Mutta yhtä kaikki, asiantuntemus on ihmiseltä peräisin, mutta koneen hallinnassa. Mitä se muuttaa? Lopputulos on "älykäs", kapealla tavalla älykäs.

    Hommahan on kapeaa tekoälyä. Ihan kaikella kunnialla.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Miten määrittelet osaamisen? Jos osaamista on evaluointifunktion rakenne, niin se on insinöörin tekemä. Se on ihmisen tuotos. "

    Kyllä se on ihmisen tuotos. Oletan kyllä, että on kehitelty, koemielessä, ihmisen tavoin oppivia shakkiohjelmia, jotka hankkivat kokemuksensa itse. Mutta en todellakaan usko, että parhaimmissa toteuksissa ohjelmoija ja shakkiekspertti (jolta ohjelman asiantuntemus on peräisin) ovat yksi ja sama henkilö.

    "Öh? No eiköhän kaikki ohjelmointikielet ole "binääriseen muotoon käännettäviä" (myös skriptikielet). "

    Epäoleellista.

    "Myöskään niiden ilmaisuvoimassa ei ole eroa, on yhdentekevää onko käytössä shelliskripti vai prolog tai vaikka assembler tai basic, niillä voidaan toteuttaa tasan samat asiat."

    Väitätkö, että kielien ilmaisuvoimassa ei ole eroja??? Todella ihmeellinen väite. Ei se, että käännetyn koodin lopputulos on sama tarkoita ettei lähdekoodin ilmausuvoimassa olisi eroja.

    Ilmaisuvoimassa on valtavia eroja ja on todella merkityksellistä voiko shakkimestari kirjoitella sääntöjä suoraan omaa ajatteluaan tukevalla skriptikielellä kuin esim C :lla tai edes prologilla. Lisäksi tähän skriptikieleen voi olla graafinen käyttöliittymä, jolla säännöt voidaan syöttää graafisesti vaikka hieman taulukkolaskimien tavoin.
    Mutta yhtä kaikki, asiantuntemus on ihmiseltä peräisin, mutta koneen hallinnassa. Mitä se muuttaa? Lopputulos on "älykäs", kapealla tavalla älykäs.

    Hommahan on kapeaa tekoälyä. Ihan kaikella kunnialla.

    "Mutta en todellakaan usko, että parhaimmissa toteuksissa ohjelmoija ja shakkiekspertti (jolta ohjelman asiantuntemus on peräisin) ovat yksi ja sama henkilö. "

    Ehkä. Mielestäni ohjelmistotekninen taidonnäyte olisi juuri koodata taidokas shakkohjelma osaamatta itse shakista kuin säännöt.

    "Epäoleellista. "

    Miksi sitten nostit sen esiin/käytit epäolennaisia ilmaisuja?

    "Väitätkö, että kielien ilmaisuvoimassa ei ole eroja??? Todella ihmeellinen väite. "

    Kuten sanoin, niin jokaisella ohjelmointikielellä voidaan toteuttaa tasan samat asiat ja väite ei ole ihmeellinen vaan tietojenkäsittelytieteen yksi perustotuuksia. Se on itse asiassa tulos, jonka jokainen tietotekniikkaa yliopistotasolla lukenut on melkoisella varmuudella käynyt läpi.

    On tietenkin selvää, että on olemassa eri kieliä ja eri kielillä voidaan toteuttaa eri asioita näppärästi, mutta kaikilla (järjellisillä) kielillä voidaan kuitenkin toteuttaa tasan samat asiat.

    "Mutta yhtä kaikki, asiantuntemus on ihmiseltä peräisin, mutta koneen hallinnassa. Mitä se muuttaa? Lopputulos on "älykäs", kapealla tavalla älykäs. "

    Aha, no tämän "älyn" toiminta ("tehokkuus") perustuu raakaan laskentavoimaan ja sisään koodattuun tapaan arvottaa erilaisia pelitilanteita. Se on kuitenkin ohjelma, joka on enemmän laskentavoiman kuin minkään ohjelmistoteknisen toteutuksen taidonnäyte. (Tähän voi kyllä sanoa vasta-argumenttina, että ei se ole oikeastaan kuin yhden sortin "referenssi", jota vastaan voidaan vasta tehdä vertailuja. Jos onnistutaan myöhemmin peittoamaan shakissa maailmanhuiput 100MHz PC:llä, niin voidaan mielestäni puhua ohjelmistoteknisestä taidonnäytteestä.)

    "Hommahan on kapeaa tekoälyä. Ihan kaikella kunnialla."

    Tekijät ansaitsevat kyllä hatunnoston ja kai sen voi nähdä tekoälynäkin, en minä sitä kiellä. Kyseessä on kuitenkin hyvin pitkälle laskentavoimaan perustuva toteutus - mitään ihmeellistä toteutuksessa ei sinänsä ole, se on ohjelma joka toimii annetuilla säännöillä ja toimiakseen hyvin se tarvitsee hyvin paljon laskentavoimaa.

    Mielestäni yksi älyn määritelmän oleellisia osia on oppiminen ja ainakaan DB ei tietääkseni ole "oppinut" mitään vaan kaikki tieto on konsolilta sinne syötetty. (Joskin kuuluisan DB ottelun jälkeen vastustaja, jonka nimi ei nyt tule mieleen, sanoi ensimmäistä kertaa tunteneensa koneen pelaavan jollain tavalla "inhimillisesti" tai "ajattelevasti".)

    Ehkä tekoälyn näkemykseni on kyynisempi kuin sinun.

    Äänestä

Kommentoi aloitusta


Shakissa kirjoitti:

http://news.bbc.co.uk/2/hi/europe/6212076.stm

Alle kymmenen vuotta sitten pelattiin paljon julkisuutta saanut Deep Blue vs. Kasparov. Nykyiset huiput matsasivat Bonnissa ja kone voitti. Kyseessä oli kuuden ottelun matsi.

En tiedä mikä tilanne on Bridgessä. Go-pelissä eivät koneet vielä pärjää edes hyville keskivertopelaajille. Tekoälyllä on pitkä tie edessään...

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