211service.com
Perché le reti neurali sembrano destinate a battere per la prima volta i migliori giocatori di Human Go
I computer stanno rapidamente iniziando a superare gli esseri umani in più o meno ogni area di attività. Ad esempio, gli esperti di visione artificiale hanno recentemente svelato un algoritmo che supera gli esseri umani nel riconoscimento facciale. Algoritmi simili stanno iniziando a corrispondere agli esseri umani anche nel riconoscimento degli oggetti. E i giocatori di scacchi umani molto tempo fa hanno rinunciato alla lotta per battere i computer.
Ma c'è un'area in cui gli umani continuano a trionfare. Questo è giocando all'antico gioco cinese di Go. I computer non hanno mai imparato questo gioco. I migliori algoritmi raggiungono solo il livello di abilità di un giocatore dilettante molto forte che i migliori giocatori umani superano facilmente.
Questo sembra destinato a cambiare grazie al lavoro di Christopher Clark e Amos Storkey presso l'Università di Edimburgo in Scozia. Questi ragazzi hanno applicato le stesse tecniche di machine learning che hanno trasformato gli algoritmi di riconoscimento facciale al problema di trovare la mossa successiva in una partita di Go. E i risultati lasciano poche speranze che gli umani continueranno a dominare questo gioco.
In breve, Go è un gioco a due giocatori solitamente giocato su una griglia 19 x 19. I giocatori posizionano alternativamente pietre bianche e nere sulla griglia nel tentativo di finire per occupare più del tabellone del loro avversario al termine del gioco. I giocatori possono rimuovere le pietre del loro avversario circondandole con le proprie.
Gli esperti pensano che ci siano due ragioni per cui i computer non sono riusciti a padroneggiare Go. Il primo è il numero di mosse che sono possibili in ogni fase del gioco. I giocatori Go hanno 19 x 19 = 361 possibili mosse iniziali e di solito ci sono centinaia di mosse possibili in qualsiasi momento del gioco. Al contrario, il numero di mosse negli scacchi è solitamente di circa 50.
Il secondo problema è che i computer hanno difficoltà a valutare i punti di forza e di debolezza di una posizione nel consiglio di amministrazione. Negli scacchi, la semplice somma del valore di ogni pezzo lasciato sulla scacchiera fornisce un'indicazione ragionevole della forza della posizione di un giocatore. Ma questo non funziona in Go. Contare il numero di pietre che ogni giocatore ha è un pessimo indicatore di chi sta vincendo, dicono Clark e Storkey.
Il modo in cui gli algoritmi Go all'avanguardia affrontano questo problema consiste nel riprodurre l'intero gioco dopo ogni mossa e farlo in molti modi diversi. Se il computer vince nella maggior parte di questi giochi, allora quella mossa è considerata buona.
Chiaramente, questo è un compito che richiede molto tempo e computazionalmente. Anche così, generalmente non riesce a battere gli esperti di Go umani che di solito possono valutare lo stato di una scheda Go con poco più di uno sguardo.
Molti esperti ritengono che il segreto della padronanza del gioco umano sia il riconoscimento del modello: la capacità di individuare i punti di forza e di debolezza in base alla forma che le pietre creano, piuttosto che guardare avanti diverse mosse.
Ecco perché i recenti progressi negli algoritmi di riconoscimento dei modelli potrebbero aiutare i computer a fare molto meglio. Questi progressi hanno utilizzato enormi database di immagini per addestrare reti neurali convoluzionali profonde a riconoscere oggetti e volti con il tipo di precisione che ora corrisponde alle prestazioni umane. Quindi è ragionevole immaginare che lo stesso tipo di approccio possa fare una grande differenza per la valutazione automatizzata delle schede Go.
Ed è esattamente ciò che hanno fatto Clark e Storkey. La domanda a cui questi ragazzi hanno addestrato una profonda rete neurale convoluzionale a rispondere è: data l'istantanea di una partita tra due esperti di Go, è possibile prevedere la prossima mossa del gioco?
Il modo in cui si sono avvicinati a questo è utilizzare un vasto database di giochi Go per addestrare una rete neurale a trovare la mossa successiva. Clark e Storkey hanno utilizzato oltre 160.000 giochi tra esperti per generare un database di 16,5 milioni di posizioni insieme alla loro prossima mossa. Hanno usato quasi 15 milioni di queste coppie posizione-mossa per addestrare una rete neurale convoluzionale a otto strati per riconoscere quale mossa successiva hanno fatto questi giocatori esperti. Questo è stato un processo che ha richiesto diversi giorni.
Hanno quindi utilizzato il resto del set di dati per testare la rete neurale. In altre parole, hanno presentato alla rete una posizione sul tabellone di un gioco e gli hanno chiesto di scegliere la mossa successiva. Clark e Storkey affermano che la rete addestrata è stata in grado di prevedere la prossima mossa fino al 44% delle volte, superando lo stato dell'arte precedente su questo compito con margini significativi.
Questo è interessante non da ultimo perché il nuovo approccio non utilizza nessuna delle mosse precedenti per prendere la sua decisione; né valuta le posizioni future.
Dopo aver addestrato la rete neurale, Clark e Storkey hanno poi giocato contro due dei migliori algoritmi Go in circolazione. Il primo si chiama GNU Go, che gioca ad un livello equivalente a un dilettante intermedio con una classifica di 6-8 kyu. (Le classifiche di Go vanno da un principiante con un grado di 30-20 kyu a un esperto professionista con un grado di 1 kyu).
Il secondo era un programma all'avanguardia chiamato Fuego 1.1, che ha una classifica di circa 5-4 kyu. Un giocatore umano di solito richiede molti anni di studio per raggiungere questo livello.
I risultati suggeriscono chiaramente che la scritta è sul muro per i giocatori umani di Go. La rete neurale di Clark e Storkey ha battuto GNU Go quasi il 90 percento delle volte in una serie di 200 giochi. In altre parole, dopo alcuni giorni di allenamento, la rete neurale è stata in grado di battere costantemente GNU Go.
Contro Fuego 1.1 è andata meno bene, vincendo solo poco più del 10 percento delle sue partite. Tuttavia, si tratta di un risultato significativo. Essere in grado di vincere anche poche partite contro questo avversario indica che è stato acquisito un alto grado di abilità, affermano Clark e Starkey.
Questo è chiaramente molto promettente. Anche se le reti stanno giocando utilizzando una politica 'zero passi avanti' e utilizzando una frazione del tempo di calcolo dei loro avversari, sono comunque in grado di giocare meglio di GNU Go e portare via alcuni giochi da Fuego, dicono.
E c'è chiaramente un potenziale di miglioramento, ad esempio, combinando questo approccio con altri che utilizzano mosse precedenti e guardano avanti. Un'idea suggerita da Clark e Starkey è quella di far funzionare la rete neurale convoluzionale in parallelo con l'approccio convenzionale per aiutare a potare l'albero delle possibili mosse che devono essere esplorate.
Non vi è alcun suggerimento da parte di Clark e Storkey che questo approccio batterà i migliori giocatori di Go al mondo. Ma sicuramente, è solo questione di tempo prima che anche i giocatori di Go debbano inchinarsi ai loro padroni computerizzati.
Rif: arxiv.org/abs/1412.3409 : Insegnare alle reti neurali convoluzionali profonde a giocare a Go