Una nuova IA vince al volo. Un'intelligenza artificiale simile può vincere a scacchi? Può raggiungere l'auto-allenamento puro?


20

Una delle domande più popolari poste su questo sito riguarda la prospettiva di un'IA di scacchi puramente auto-allenata.

Oggi, ChessBase è distratto dalla sua copertura del torneo FIDE Candidates per riferire che una nuova IA sta, per la prima volta, battendo un maestro leader del gioco piuttosto diverso del gioco, che ha resistito per molti anni agli IA in stile scacchi. Una lettura iniziale del rapporto suggerisce che la nuova IA di go è diversa dalle AI di scacchi, ma è più o meno un'IA di gioco generale (GGP). L'articolo di ChessBase non utilizza tuttavia il termine GGP, ma sembra dire che l'IA mobile può vincere con semplici videogiochi.

C'è qualche motivo per cui un AI vincente non potrebbe con piccoli aggiustamenti anche vincere a scacchi? In tal caso, una tale dimostrazione di intelligenza artificiale promette di raggiungere il puro auto-allenamento di cui in precedenza hanno discusso diverse risposte eccellenti alla domanda precedente, che a quel tempo non era ancora possibile? Perché o perché no?

Sospetto che non sia ancora disponibile una risposta davvero completa e pienamente informata alla mia domanda, quindi sarebbe apprezzata anche una risposta parziale basata sulle relative competenze.

Per ulteriori riferimenti, vedere anche questa domanda e risposte correlate.

AGGIORNARE

Quando la domanda di cui sopra è stata pubblicata per la prima volta cinque giorni fa e quando sono state fornite alcune delle migliori risposte di seguito, erano appena apparse le prime notizie sulla vittoria dell'IA. Da allora sono emerse ulteriori informazioni e commenti.

Particolarmente interessante da allora è stata una discussione su una tavola rotonda a cinque facce abbastanza leggibile in cui Jonathan Schaeffer osserva:

Imparare dai giochi umani aiuta ad accelerare l'apprendimento del programma. AlphaGo potrebbe imparare a diventare un giocatore forte da solo, senza usare i giochi umani. Il processo di apprendimento richiederebbe solo più tempo.

Secondo l'ospite della tavola rotonda, Schaeffer è "professore di scienze informatiche all'Università di Alberta e l'uomo che ha risolto la dama"; quindi, presumibilmente, potrebbe essere qualificato per commentare.

Per ulteriori informazioni, ecco il resoconto di un'altra discussione aperta, molti dei cui partecipanti sembrano meglio informati del solito. La discussione si è svolta durante la partita.

Ulteriore aggiornamento, un anno e mezzo dopo: commentatore @MarkS. scrive:

Questo è solo un commento perché riguarda Go, non gli scacchi, ma AlphaGo Zero ha raggiunto il "puro auto-allenamento" solo dopo aver saputo chi ha vinto (e non il punteggio finale) ed è più forte e molto più efficiente dell'IA che ha battuto Lee Sedol . Per ulteriori informazioni, consultare deepmind.com/blog/alphago-zero-learning-scratch


Ti suggerisco di chiedere questo su forum più tecnici. L'intelligenza artificiale è un argomento complicato e si dovrebbe avere una competenza significativa per capirlo. Guardando le risposte qui, non sono sicuro che tu abbia una risposta ragionevole.
Salvador Dali,

5
Le risposte fornite sono molto apprezzate. Ho votato più di uno. Se non ne ho ancora accettate nessuna, questa non è una critica alle risposte, ma un riconoscimento che la domanda è così difficile e l'argomento così nuovo che la risposta accettabile potrebbe non essere ancora disponibile. Lasciamo questa domanda aperta per un po 'per vedere se, dopo un po', una risposta non disponibile oggi diventa disponibile. Grazie.
1616

1
Questo è solo un commento perché riguarda Go, non gli scacchi, ma AlphaGo Zero ha raggiunto il "puro auto-allenamento" solo dopo aver saputo chi ha vinto (e non il punteggio finale) ed è più forte e molto più efficiente dell'IA che ha battuto Lee Sedol . Per ulteriori informazioni, consultare deepmind.com/blog/alphago-zero-learning-scratch
Mark S.

1
@thb Penso che AlphaZero sia una tale intelligenza artificiale.
Harry Weasley l'

1
A partire da dicembre 2017 AlphaZero ha insegnato a se stesso uno stile di scacchi solo dalle regole del gioco arxiv.org/pdf/1712.01815.pdf e ha respinto StockFish in modo convincente.
saille,

Risposte:


14

Bene bene bene! DeepMind ha pubblicato un articolo in cui afferma di aver programmato e addestrato un computer di rete neurale per battere Stockfish.

Con 1 minuto di riflessione per mossa, il loro computer AlphaZero ha battuto Stockfish di +25, = 25, -0 con bianco e + 3, = 47,0- come nero.

Hanno "addestrato" 3 computer separati per giocare a scacchi, shogi e Go e battere i loro rivali di silicio in modo convincente.

Ecco come il documento descrive la formazione e la valutazione -

I giochi self-play vengono generati utilizzando gli ultimi parametri per questa rete neurale, omettendo il passaggio di valutazione e la selezione del miglior giocatore.

AlphaGo Zero ha ottimizzato l'iperparametro della sua ricerca mediante l'ottimizzazione bayesiana. In AlphaZero riutilizziamo gli stessi iperparametri per tutti i giochi senza messa a punto specifica del gioco. L'unica eccezione è il rumore aggiunto alla politica precedente per garantire l'esplorazione; questo è ridimensionato in proporzione al numero tipico di mosse legali per quel tipo di gioco.

Come AlphaGo Zero, lo stato del tabellone è codificato da piani spaziali basati solo sulle regole di base per ogni gioco. Le azioni sono codificate da piani spaziali o da un vettore piatto, sempre in base solo alle regole di base di ciascun gioco (vedi Metodi).

Abbiamo applicato l'algoritmo AlphaZero a scacchi, shogi e anche Go. Se non diversamente specificato, per tutti e tre i giochi sono state utilizzate le stesse impostazioni dell'algoritmo, l'architettura di rete e gli iperparametri. Abbiamo addestrato un'istanza separata di AlphaZero per ogni gioco. La formazione è proseguita per 700.000 passaggi (mini-batch di dimensioni 4.096) a partire da parametri inizializzati in modo casuale, utilizzando 5.000 TPU di prima generazione per generare giochi self-play e 64 TPU di seconda generazione per addestrare le reti neurali. Ulteriori dettagli sulla procedura di addestramento sono forniti nei Metodi.

La Figura 1 mostra le prestazioni di AlphaZero durante l'apprendimento del rinforzo in auto-gioco, in funzione delle fasi di allenamento, su una scala Elo (10). Negli scacchi, AlphaZero ha sovraperformato lo stoccafisso dopo solo 4 ore (300k passi); nello shogi, AlphaZero ha sovraperformato Elmo dopo meno di 2 ore (incrementi di 110k); e in Go, AlphaZero ha sovraperformato AlphaGo Lee (29) dopo 8 ore (165k passi).

Abbiamo valutato le istanze completamente addestrate di AlphaZero contro Stockfish, Elmo e la versione precedente di AlphaGo Zero (allenata per 3 giorni) rispettivamente negli scacchi, nello shogi e nel Go, giocando 100 partite di gioco ai controlli del tempo del torneo di un minuto per mossa. AlphaZero e il precedente AlphaGo Zero utilizzavano un'unica macchina con 4 TPU. Stoccafisso ed Elmo hanno giocato al loro livello di abilità più forte usando 64 thread e una dimensione di hash di 1 GB. AlphaZero ha sconfitto in modo convincente tutti gli avversari, perdendo zero partite a Stoccafisso e otto partite a Elmo (vedi Materiale supplementare per diversi giochi di esempio), oltre a sconfiggere la versione precedente di AlphaGo Zero (vedi Tabella 1).

Il loro computer utilizzava una nuova forma di chip chiamata "TPU" ( unità di elaborazione tensore ) sviluppata da Google per le attività di apprendimento automatico.

Sostengono anche che il loro algoritmo di ricerca dell'albero di Monte Carlo è migliore e più "umano" rispetto ai tradizionali algoritmi di ricerca alfa-beta -

Abbiamo anche analizzato le prestazioni relative della ricerca MCTS di AlphaZero rispetto ai motori di ricerca alfa-beta all'avanguardia utilizzati da Stockfish ed Elmo. AlphaZero cerca solo 80 mila posizioni al secondo negli scacchi e 40 mila nello shogi, rispetto ai 70 milioni di stoccafisso e ai 35 milioni di elmo. AlphaZero compensa il minor numero di valutazioni usando la sua profonda rete neurale per concentrarsi in modo molto più selettivo sulle variazioni più promettenti - probabilmente un approccio più "umano" alla ricerca, come originariamente proposto da Shannon. La Figura 2 mostra la scalabilità di ciascun giocatore rispetto al tempo di pensiero, misurata su una scala Elo, rispetto allo Stoccafisso o all'Elmo con tempo di pensiero di 40 ms. Il MCTS di AlphaZero si è ridimensionato in modo più efficace con il tempo di riflessione rispetto allo stoccafisso o all'elmo,

Ecco alcuni dei giochi -

Stoccafisso - AlphaZero, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. Bxc6 dxc6 6. OO Nd7 7. Nbd2 O-O 8. Qe1 f6 9. Nc4 Rf7 10. a4 Bf8 11. Kh1 Nc5 12. a5 Ne6 13. Ncxe5 fxe5 14. Nxe5 Rf6 15. Ng4 Rf7 16. Ne5 Re7 17. a6 c5 18. f4 Qe8 19. axb7 Bxb7 20. Qa5 Nd4 21. Qc3 Re6 22. Be3 Rb6 23. Nc4 Rb4 24. b3 a5 25. Rxa5 Rxa5 26. Nxa5 BA6 27. Bxd4 Rxd4 28. NC4 RD8 29. g3 H6 30. QA5 BC8 31. Qxc7 Ah3 32. Rg1 RD7 33. QE5 Qxe5 34. Nxe5 RA7 35. NC4 g5 36. Rc1 Bg7 37. Ne5 Ra8 38. Nf3 Bb2 39. Rb1 Bc3 40. Ng1 Bd7 41. Ne2 Bd2 42. Rd1 Be3 43. Kg2 Bg4 44. Re1 Bd2 45. Rf1 Ra2 46. ​​h3 Bxe2 47. Rf2 Bxf4 48. Rxe2 Be5 49. Rf2 Kg7 50. g4 Bd4 51. Re2 Kf6 52. e5 + Bxe5 53. Kf3 Ra1 54. Rf2 Re1 55. Kg2 + Bf4 56. c3 Rc1 57. d4 Rxc3 58. dxc5 Rxc5 59. b4 Rc3 60. h4 Ke5 61 . hxg5 hxg5 62. Re2 + Kf6 63. KF2 BE5 64. Ra2 RC4 65. RA6 + KE7 66. RA5 Ke6 67. RA6 + Ad6 0-1

Gioco

Stoccafisso - AlphaZero, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. Bxc6 dxc6 6. OO Nd7 7. c3 O-O 8. d4 Bd6 9. Bg5 Qe8 10. Re1 f6 11. Bh4 Qf7 12. Nbd2 a5 13. Bg3 Re8 14. Qc2 Nf8 15. c4 c5 16. d5 b6 17. Nh4 g6 18. Nhf3 Bd7 19. Rad1 Re7 20. h3 Qg7 21. Qc3 Rae8 22. a3 h6 23. Bh4 Rf7 24. Bg3 Rfe7 25. Bh4 Rf7 26. Bg3 a4 27. Kh1 Rfe7 28. Bh4 Rf7 29. Bg3 Rfe7 30. Bh4 g5 31. Bg3 Ng6 32. Nf1 Rf7 33. Ne3 Ne7 34. Qd3 h5 35. h4 Nc8 36. Re2 g4 37. Nd2 Qh7 38. Kg1 Bf8 39. Nb1 Nd6 40. Nc3 Bh6 41. Rf1 Ra8 42. Kh2 Kf8 43. Kg1 Qg6 44. f4 gxf3 45. Rxf3 Bxe3 + 46. ​​Rfxe3 Ke7 47. Be1 Qh7 48. Rg3 RG7 49. Rxg7 + Qxg7 50. Re3 RG8 51. Rg3 Qh8 52. nb1 Rxg3 53. Bxg3 Qh6 54. ND2 Ag4 55. KH2 KD7 56. b3 axb3 57. Nxb3 Qg6 58. ND2 Bd1 59. Nf3 Ba4 60. ND2 KE7 61 Bf2 Qg4 62. Qf3 Bd1 63. Qxg4 Bxg4 64. a4 Nb7 65. Nb1 Na5 66. Be3 Nxc4 67. Bc1 Bd7 68. Nc3 c6 69. Kg1 cxd5 70. exd5 Bf5 71. Kf2 Nd6 72. Be3 Ne4 + 73. Nxe4 Bxe4 74. a5 bxa5 75. Bxc5 + Kd7 76. d6 Bf5 77. Ba3 Kc6 78. Ke1 Kd5 79. Kd2 Ke4 80. Bb2 Kf4 81. Bc1 Kg3 82. Ke2 a4 83. Kf1 Kxh4 84. KF2 KG4 85. Ba3 BD7 86. Bc1 KF5 87. KE3 Ke6 0-1

Bianco: AlphaZero Nero: stoccafisso

AlphaZero - Stoccafisso, 1-0
1. Nf3 Nf6 2. c4 b6 3. d4 e6 4. g3 Ba6 5. Qc2 c5 6. d5 exd5 7. cxd5 Bb7 8. Bg2 Nxd5 9. OO Nc6 10. Rd1 Be7 11. Qf5 Nf6 12. e4 g6 13. Qf4 O-O 14. e5 Nh5 15. Qg4 Re8 16. Nc3 Qb8 17. Nd5 Bf8 18. Bf4 Qc8 19. h3 Ne7 20. Ne3 Bc6 21. Rd6 Ng7 22. Rf6 Qb7 23. Bh6 Nd5 24. Nxd5 Bxd5 25. Rd1 Ne6 26. Bxf8 Rxf8 27. Qh4 Bc6 28. Qh6 Rae8 29. Rd6 Bxf3 30. Bxf3 Qa6 31. h4 Qa5 32. Rd1 c4 33. Rd5 Qe1 + 34. Kg2 c3 35. bxc3 Qxc3 36. h5 Re7 37. Bd1 Qe1 38. Bb3 Rd8 39. Rf3 Qe4 40. Qd2 Qg4 41. Bd1 Qe4 42. h6 Nc7 43. Rd6 Ne6 44. Bb3 Qxe5 45. Rd5 Qh8 46. ​​Qb4 Nc5 47. Rxc5 bxc5 48. Qh4 Rde8 49. Rf6 Rf8 50. Qf4 a5 51. g4 d5 52. Bxd5 Rd7 53. Bc4 a4 54. g5 a3 55. Qf3 Rc7 56. Qxa3 Qxf6 57. gxf6 Rfc8 58. Qd3 Rf8 59. Qd6 Rfc8 60. a 1- 1- 0

Leggi il giornale. Davvero sorprendente. Ovviamente questo non significa che non potresti costruire qualcosa di ancora più forte con le tecniche tradizionali combinate con AlphaZero, ma comunque ...
BlindKungFuMaster

10

Ok, devo ammettere che mi sbagliavo. Sebbene io sostenga che ciò era dovuto alla conoscenza dell'opinione degli esperti, non alla generale ottusità: per citare il documento : "Tuttavia, i programmi di scacchi che usano MCTS tradizionale erano molto più deboli dei programmi di ricerca alfa-beta, (4, 24); mentre l'alfa - i programmi di base basati su reti neurali non sono stati in precedenza in grado di competere con funzioni di valutazione più veloci e realizzate a mano. "

Apparentemente, gli scacchi sono abbastanza strategicamente profondi, che puoi mettere fuori strategia qualcuno, che sarebbe in grado di calcolarti. Per me è una grande sorpresa, perché lo sviluppo dei motori per gli scacchi stava andando nella direzione opposta. (Apparentemente c'è ancora un leggero avvertimento sul fatto che AlphaZero sia davvero più forte dello stoccafisso: lo stoccafisso ha giocato con solo 1 GB per gli hashtable e 64 core potrebbero non corrispondere a quattro TPU)

È anche una cosa molto, molto eccitante, perché AlphaZero ha molto probabilmente punti di forza molto diversi dai motori tradizionali.

Significa anche che aggiorno di molto la mia convinzione sul significato di AlphaGo come innovazione tecnologica. Fondamentalmente distruggendo lo shogi, Go e gli scacchi con una singola configurazione sono completamente sorprendenti, per non parlare di dozzine di altri giochi che probabilmente potrebbero essere giocati a livello sovrumano da AlphaZero.

C'è una bella spiegazione del perché MCTS è in realtà un'idea decente anche per gli scacchi rispetto alla ricerca alfa-beta (dalla carta): "AlphaZero valuta le posizioni usando l'approssimazione di funzioni non lineari basate su una rete neurale profonda, piuttosto che lineare approssimazione delle funzioni utilizzata nei tipici programmi di scacchi. Ciò fornisce una rappresentazione molto più potente, ma può anche introdurre errori di approssimazione spuri. MCTS fa una media su questi errori di approssimazione, che quindi tendono ad annullarsi quando si valuta un sottostruttura di grandi dimensioni. Al contrario, la ricerca alpha-beta calcola un mini-max esplicito, che propaga i più grandi errori di approssimazione alla radice della sottostruttura. " (enfasi da parte mia)

Ecco la mia vecchia risposta, che contiene ancora alcuni punti validi, nonostante la conclusione venga sostituita dalla realtà.

Innanzitutto Alphago non è un sistema di gioco generale. È un programma progettato esclusivamente per giocare e niente altro. È tuttavia costruito da alcuni elementi costitutivi che hanno un'applicabilità molto più ampia, come le reti neurali convoluzionali , che sono state utilizzate nel riconoscimento delle immagini e che hanno un'applicazione immediata nella diagnostica medica e l' apprendimento del rinforzo che è stato utilizzato per padroneggiare i giochi Atari menzionati in l'articolo.

Inoltre, i motori attuali "apprendono" giocando da soli : "Durante la notte, i sei computer di Lefler giocano attraverso oltre 14.000 giochi ciascuno per un periodo di otto ore." Sei macchine per 14.000 partite sono molte partite ", dice. E con ad ogni partita giocata, il database diventa più profondo e più ricco. C'è persino un interesse sportivo nel guardare i computer giocare l'uno contro l'altro. Il risultato delle macchine frenetiche di Lefler è l'abilità sempre crescente di Komodo. "

Per arrivare alla maggior parte della tua domanda:

C'è un'importante differenza tra scacchi e go, almeno dal punto di vista di un programmatore. Gli scacchi sono più un gioco tattico, mentre andare è più un gioco strategico. Ciò significa che, nel calcolo degli scacchi, la profondità supera la valutazione posizionale. Questa è fondamentalmente l'intuizione chiave che distingue i "vecchi" motori come Fritz, Shredder, Junior e le nuove generazioni come Fruit, Rybka, Houdini, Stockfish, Komodo. Perché alla fine di ogni riga devi valutare la posizione e vuoi calcolare un sacco di righe e la qualità della valutazione non è importante quanto la profondità di ricerca, i motori di scacchi hanno funzioni di valutazione snelle e veloci.

D'altra parte, la complessità tattica è troppo grande anche per i computer. Di conseguenza è fondamentale valutare posizioni e spostamenti con precisione. Ciò che Alphago introduce nel gioco è questo potere di valutazione, che si basa su reti neurali convoluzionali .

Per arrivare finalmente al mio punto: considerando che le funzioni di valutazione degli scacchi sono snelle e veloci, le reti neurali hanno milioni, a volte miliardi di parametri. Poiché "apprendere" in questo contesto significa modificare i parametri, ci sono molti più progressi possibili per i programmi di autoapprendimento.

Quindi, sì, potresti usare un setup come Alphago per creare un motore di scacchi, ma non sarebbe particolarmente buono. L'esecuzione della funzione di valutazione richiederebbe così tanto tempo, che dovresti utilizzare un enorme cluster di gpus per raggiungere le profondità di ricerca necessarie (che è ciò che Alphago fa). Potresti creare un'ottima funzione di valutazione , ma il compromesso sulla velocità non ne vale la pena.


1
Non sarei d'accordo con te sul fatto che potresti usare un setup come Alphago per creare un motore di scacchi, ma non sarebbe particolarmente buono . Posso scommettere sul fatto che tra meno di un anno, ci sarà un motore di scacchi che si basa fortemente su NN (molto probabilmente avrà una ricerca dell'albero e Monte Carlo, ma questo non è importante), che sarà vicino a stoccafisso all'avanguardia. E questo motore non sarà originato da una super corporazione (perché l'interesse per gli scacchi è svanito molto tempo fa dai ricercatori dell'IA), ma piuttosto da un forte hobbista.
Salvador Dali,

Monte Carlo è completamente inutile negli scacchi. E mentre gli NN non sono inutili, sono semplicemente troppo lenti.
BlindKungFuMaster

3
Perché esattamente MCTS è inutile? Ha molto senso iniziare a partire da una posizione attuale sulla scacchiera, eseguire 1000 giochi con una profondità del nodo di 5 e vedere quale nodo ha maggiori possibilità. Questo è molto simile a quello che fai, quando guardi la statistica delle mosse nel database e vedi che dopo 14. Kg4 il bianco vince il 25%, ma con 14. Rb2 vince con il 45%. Hai qualche prova di una frase completamente inutile .
Salvador Dali,

2
MCTS non riguarda la casualità, si tratta di simulazione. Libri introduttivi di base su MC che mostrano un esempio di casualità solo per mostrare il punto. Puoi giocare una posizione nitida molte volte con la profondità del nodo di 6 che è super veloce (e comunque abbastanza affidabile) e ti permetterà di stimare approssimativamente quale mossa è migliore.
Salvador Dali,

1
Le mie dichiarazioni non sono audaci, sono mainstream. Basta leggere alcuni siti di programmazione di scacchi, troverai più o meno i miei argomenti. MCTS è noto da un decennio e negli scacchi altre cose funzionano meglio. D'altra parte, non credo che le tue dichiarazioni siano basate su qualcosa di più del sentimento istintivo, quindi questo sarà il mio ultimo commento.
BlindKungFuMaster

5

C'è un progetto chiamato spawkfish che tenta di fare proprio questo. È un motore basato sulla rete neurale il cui scopo "è esplorare come i recenti progressi del computer Go possano essere applicati al mondo degli scacchi per computer".

È un progetto giovane e il motore è ancora piuttosto debole. Suonarlo è interessante, perché il suo gioco di posizione è migliore della sua tattica.


2
Non stavi scherzando con quest'ultima frase. Ho appena giocato un paio di partite contro di essa, e ognuna è entrata in un gioco finale abbastanza livellato, solo per vedere improvvisamente il pesce spawk far cadere materiale (in un caso solo appendere un corvo dal nulla). Strano.
ETD

Da quando hai risposto, sembra che siano emerse nuove informazioni sull'intelligenza artificiale. Ho aggiornato la domanda per collegarmi alle notizie, se questo ti interessa.
THB

Il sito web di spawkfish sembra essere scomparso ...
hkBst

4

Un'intelligenza artificiale simile può vincere a scacchi? Può raggiungere l'auto-allenamento puro?

La risposta breve è "No!"

Chess and go sono radicalmente diversi nella loro relativa semplicità e relativa complessità che deriva dalla loro geometria e dal modo in cui vinci. Questi si combinano per creare un programma che è buono a uno inutile all'altro.

Negli scacchi che vinci facendo scacco matto all'avversario, i punti non contano. Naturalmente un avversario sensibile si dimetterà spesso prima di dare scacco matto, ma il principio è lo stesso. In go vinci avendo più punti alla fine della partita. Se ho un re e una regina e tu hai un re, una torre e una pedina ma hai costruito una fortezza, non importa che io abbia 9 punti per la regina e tu abbia solo 6 punti per la torre e la pedina. Il gioco è un pareggio.

Questo fa una differenza fondamentale nella complessità tra scacchi e go. In gioco puoi semplicemente tenere il punteggio e saprai chi sta vincendo. Negli scacchi l'unico modo per sapere chi sta vincendo è il puro calcolo. In questo senso, gli scacchi sono molto più complessi di quanto non lo siano.

Allo stesso tempo, a causa della geometria dei due giochi, ci sono ordini di grandezza in più possibilità che negli scacchi. In questo senso, andare è molto più complesso degli scacchi.

Un programma di scacchi funziona mediante il calcolo della forza bruta di tutte le mosse possibili fino a una certa profondità che ne determina la forza. Un programma go non può funzionare in questo modo e riprodurre qualcosa di più avanzato rispetto al livello principiante.

Lo scopo principale del gioco è controllare più territorio del tuo avversario. Alla fine di una partita non importa se la differenza è 1 pietra o 100 pietre, entrambe sono vittorie. Ogni volta che metti una pietra fai due cose. Aumenti il ​​tuo territorio, potenziale o effettivo, e diminuisci quello del tuo avversario.

A volte, quando è reale aumento o diminuzione nel territorio, è facile calcolare il valore dello spostamento, ma quando è potenziale è molto difficile da valutare. Da giocatore debole capisco il "reale" molto meglio del "potenziale" e un giocatore più forte mi batterà costruendo un territorio potenziale molto più grande al centro mentre costruisco un territorio reale più piccolo ai bordi e negli angoli. Il giocatore più forte avrà sviluppato la capacità di giudicare attraverso l'intuizione e la sensazione giocando molti giochi e riconoscendo come costruire un territorio "potenziale".

Prima ho detto che ogni volta che posiziono una pietra aumenta il mio territorio (reale o potenziale) e diminuisce il mio avversario (in realtà se è una mossa stupida farà il contrario!). In una data posizione non tutte le mosse sono uguali. Una pietra posta in una posizione può valere molto più o molto meno di una pietra posta in un'altra.

Tipicamente in una partita ci saranno piccoli "combattimenti" in cui i giocatori posizionano le pietre l'una vicino all'altra, delimitando il loro territorio e limitando quello dell'avversario. Nel frattempo ci sono possibilità di iniziare a picchettare il territorio in un'altra parte del tabellone o passare a un combattimento altrove in cui entrambi i giocatori hanno già delle pietre.

Ciò che è molto importante in queste situazioni è sapere quando fermare un combattimento, perché i potenziali guadagni sono diminuiti e passare a un altro combattimento o forse colpire in territorio vergine. A volte questo dipende da calcoli difficili, ma spesso è molto più nebuloso e non soggetto a calcoli. Come giocatore debole è qui che un forte giocatore mi schiaccia ogni volta.

Quello che fa il computer in queste situazioni è usare metodi probabilistici per generare un punteggio atteso per una mossa particolare. A volte il valore reale risulterà essere un po 'meno, a volte un po' di più, ma a lungo termine sarà persino più o meno. Continuerà a scegliere la mossa con il valore atteso più alto, con l'aspettativa che nel lungo periodo di una partita piccoli errori si annullino e la sua strategia vincerà.

Questa non è una strategia che sembra familiare ai giocatori di scacchi e non è una strategia che funzionerà negli scacchi. È qualcosa che suona familiare a chiunque segua ciò che accade nei mercati azionari. Sembra molto simile a qualcosa chiamato "trading ad alta frequenza" in cui i computer faranno migliaia di piccole scommesse o semplicemente proporranno scommesse ogni secondo per "nichelare e monetizzare" il mercato e forse anche per spostarlo molto marginalmente a loro favore in periodi di millisecondi.

Già i mercati finanziari sono dominati da questo tipo di negoziazione algoritmica, il che suggerisce che questo tipo di programma ha già trionfato in un'area molto più redditizia di un gioco da tavolo.


4
Il trading ad alta frequenza non è come andare a giocare. Algoritmi completamente diversi afaik. Inoltre, ci sono molte cose interessanti nella tua risposta, ma è difficile vedere il punto principale, forse aggiungere un TL; DR. ;-)
BlindKungFuMaster

@BlindKungFuMaster Il principio alla base di HFT e AlphaGo è un principio probabilistico. Il guadagno atteso da questa "mossa" è x%. A lungo termine l'accumulo di tali mosse / scommesse vincerà il gioco per AlphaGo o farà fortuna per i trader di HFT. Tuttavia ogni tanto ci sarà un "crash flash" o una "mossa miracolosa" da un Lee Se-dol che trasforma una vittoria / profitto in una perdita. Ciò non invalida in alcun modo la sua programmazione. Non è programmato per trovare la mossa migliore in assoluto ogni volta. È un po 'come una pseudo soluzione al problema del venditore ambulante che cerca di ottenere il 5% dei migliori.
Brian Towers

Da quando hai risposto, sembra che siano emerse nuove informazioni sull'intelligenza artificiale. Ho aggiornato la domanda per collegarmi alle notizie, se questo ti interessa.
THB

1
@thb, credo che questa risposta sia ora in qualche modo obsoleta, dato il nuovo successo di AlphaZero, come in arxiv.org/abs/1712.01815
Mark S.

@Will No. Why? Non giudicare gli altri secondo i tuoi standard superficiali.
Brian Towers

4

(Chiunque desideri una discussione tecnica approfondita per AlphaGo può consultare il mio post )

Risposta breve : No

Risposta lunga :

Innanzitutto, dobbiamo capire perché Google non ha implementato l'alfa-beta in AlphaGo. Stoccafisso e Komodo (e tutti i motori di scacchi) hanno alpha-beta, perché AlphaGo non dovrebbe?

Motivo : non esiste un modo semplice ed economico per valutare staticamente una posizione Go.

In Chess, possiamo sempre contare i materiali, un modo molto efficace per valutare staticamente una posizione. Sebbene non sia perfetto, è molto veloce e un ottimo proxy per gli scacchi.

La ricerca nello spazio degli stati con Monte-Carlo è un metodo inferiore all'alfa-beta. Google avrebbe implementato l'alfa-beta se avessero potuto, ma non potevano. Pertanto, furono costretti a usare qualcosa di molto più lento.

Il motore di scacchi non giocherebbe meglio con Monte-Carlo.


È ora di riconsiderare, o forse non ancora?
Evargalo,

3

Non sono d'accordo con le altre risposte. Sono uno scienziato informatico che lavora professionalmente nell'area dell'intelligenza artificiale e sono anche un candidato master negli scacchi e 3 dan in igo.

Penso che non sia chiaro in questo momento se i metodi di Deep Mind possano essere applicati agli scacchi, ma penso che sia possibile.

Attualmente, i migliori programmi di gioco degli scacchi fanno sempre più affidamento sull'euristica e il tentativo di utilizzare l'architettura AlphaGo per gli scacchi sarebbe in qualche modo sulla stessa linea di pensiero.

Una caratteristica architettonica chiave di AlphaGo che dovrebbe essere modificata è il suo metodo di identificazione dei quadrati chiave (o mappe di calore), che è particolare per i giochi simili a igo e non è direttamente applicabile agli scacchi. Alcuni analoghi di questo metodo dovrebbero essere sviluppati per rendere l'architettura AlphaGo rilevante per gli scacchi. Ad esempio, potremmo avere il concetto di "pezzi chiave" anziché di quadrati chiave.

Penso che l'argomentazione secondo cui l'architettura AlphaGo non è rilevante per gli scacchi perché gli scacchi è più tattico non è un'affermazione molto valida perché alla fine entrambi hanno alberi di ricerca abbastanza simili nella forma che AlphaGo potrebbe sicuramente essere adattato agli scacchi.


Ti ho dato un +1, poiché le tue affermazioni potrebbero essere corrette ma non lo sappiamo con certezza fino a quando qualcuno non pubblicherà un documento.
SmallChess,

Uh? Il documento esiste già, come sottolineato da Brian Towers. La risposta è un sì
bosone condensato termomagnetico

Sembra che avessi ragione, eh.
Cecil De Vere,

@CecilDeVere non in disaccordo con le altre risposte, 2 di loro hanno indicato la risposta corretta. E non affermando che non è chiaro in questo momento, mentre è chiarissimo che quella risposta è sì (non forse).
bosone condensato termomagnetico il

3

La risposta è si! Google lo ha appena dimostrato ieri, quando AlphaZero ha battuto il miglior programma di scacchi usando solo la conoscenza delle regole e il puro auto allenamento senza la conoscenza degli scacchi umani. La risposta accettata è sbagliata. Il link all'articolo è qui: link


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.