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...
Kone voitti ihmisen
9
608
Vastaukset
- älyllä
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.- Ottiatuotaja
Pistetäänpä tuo puusee pelaamaan shakkia 5 miljardia ihmistä vastaan. Mitäs tykkäät, pärjääkö ihminen sittenkään?
"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?- eräs koodari
Yusa 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. - ainakin.
Yusa 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ä. 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.- ainakin.
Yusa 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. 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.- ainakin.
Yusa 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.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Eroa Orpo! Orpo eroa!
Suomen kansa vaatii viimein ottamaan meidät huomioon, eikä vain ulkomaalaisia pääomasijoittajia. Koska täällä Suomessa1112722Odottavan aika on pitkä, Lindtmanin hallitusta tule jo!
Eilisen perusteella nykyinen hallitus epäonnistui kaikissa vaalilupauksissaan, joten olemme ansainneet uudet eduskuntava621724SDP esti Suomen luisumisen kohti 1984 Orwell -yhteiskuntaa
Äärioikeistohallitus olisi halunnut Stasin tapaan mikrofonit jokaisen kansalaisen kotiin, mutta SDP esti tuon siirtymän171720Naiset ei halua kilttejä miehiä
Näin se vaan on..jos olet ilman tatskoja, et rähjää, sinulla ei ole rikosrekisteriä, olet liian kiltti, et sano pahasti,2671608Wille Rydman (ps) osoitti olevansa kommunisti
Hän toistaa Neuvostoliiton virhettä. Haluaa pitää palveula yllä maksoi mitä maksoi, vaikkei ole maksavia asiakkaita. --111564Seiska: Helmi Loukasmäki paljastaa - Näin Danny ja Helmi tapasivat
Helmi Loukasmäki, 25, ja Ilkka Danny Lipsanen, 83, ovat seurattuja julkkiksia. Mutta tiesitkö, miten he tapasivat? Lue271268Ainoastaan 10 aloitusta ekasivulla yhdeltä henkilöltä
Kovasti on vaivaa, ei oo muuta tekemistä tällä henkilöllä päivisin ja öisin... Taas märehtimistä ja samaa jankutusta.271139Kiinteistökauppoja
Onko totta ettö haapaveden kaupunki on ostanut vanhan kesoilin kiinteistön? Kuulemma siihen muuttaa autokorjaamo vanhan411062Menettämisestä
Ajatteletko, että olet menettänyt mahdollisuutesi häneen? Osaatko sanoa miksi niin tapahtui?831031RAAMATULLINEN KASTE ON SAPATTI-LAUANTAI, EI SUNNUNTAI
Aihe, josta ehkä on eniten kiistaa kristillisten seurakuntien piirissä, on kysymys oikeasta raamatullisesta pyhäpäivästä4041022