Un'intelligenza artificiale da autodidatta


46

Per quanto ho capito, sembra che, prima di spostare, tutti i potenti software di scacchi

  1. esamina migliaia o milioni di possibili posizioni future;
  2. valuta ogni posizione futura secondo una euristica, chiamata funzione di valutazione;
  3. valuta separatamente ogni posizione futura per quiescenza, per decidere se esplorare le continuazioni dalla posizione;
  4. sceglie tra le mosse disponibili per minimax; e
  5. usa un libro di apertura.

Fin qui tutto bene. Tuttavia, la forza di un programma di scacchi sembra dipendere principalmente dalla qualità della sua euristica di valutazione e quiescenza - e anche dal suo libro di apertura che, dal punto di vista del computer, è ancora un altro euristico. Apparentemente, un tale programma di scacchi conosce esattamente tanto il gioco quanto l'umano che ha creato l'euristica. Il programma sembra non avere approfondimenti propri.

Qualcuno ha mai scritto un programma di scacchi che ha approfondimenti propri? Che impara il gioco da solo? Che si allena da solo? Un programma di questo tipo verrebbe fornito con le regole del gioco, ovviamente, e presumibilmente sarebbe inoltre dotato di infrastrutture di quiescenza e minimax grezza, e sarebbe in grado di riconoscere e perseguire un compagno forzato se ne trovasse uno. Tuttavia, non verrebbero fornite euristiche. Ad esempio, non si direbbe di aprire il gioco verso il centro, né di preferire le torri ai cavalieri, né quale sia la difesa siciliana. Dovrebbe dedurre tali principi (o, presumibilmente, scoprire principi migliori) da solo.

Nella sua forma pura, a tale programma non sarebbero mai stati forniti giochi master da studiare, ma solo i suoi giochi, giocati contro se stesso. Solo una volta autodidatta si scatenerà sulla concorrenza umana.

Esiste un'intelligenza artificiale di scacchi così pura? È mai apparso un autodidatto meccanico degli scacchi? Anzi, può insegnare se stesso il vecchio turco ?

Qui sembra esserci un breve preavviso di un'intelligenza artificiale di scacchi pura che ha fallito.

( Una domanda tangenzialmente correlata è apparsa in precedenza su questo sito, riguardante lo studio computerizzato delle aperture di scacchi.)

AGGIORNARE

La domanda è accolta da tre diverse, illuminanti risposte al momento della stesura di questo scritto, da @WesFreeman, @GregE. e @Landei. Tutti e tre sono vivamente consigliati e mi sentirò in colpa quando, secondo la politica del sito, accetterò formalmente uno ad esclusione degli altri. Vorrei ringraziare qui ed esprimere il mio apprezzamento per tutti e tre.

Le domande vogliono brevità. Una risposta alle risposte potrebbe tuttavia durare più a lungo. Il lettore interessato può quindi saltare da qui direttamente alle risposte e quindi, se ancora interessato, può tornare a leggere l'aggiornamento più lungo che segue.

Quando ho posto la domanda, avevo in mente qualcosa di simile al seguente.

Supponiamo che un ipotetico villaggio alla periferia di Shangri-La, dove la gente non abbia mai sentito parlare di scacchi. Durante la tua breve visita, insegnerai agli anziani del villaggio le regole del gioco, ma non li istruirai mai su nessuno dei principi del gioco. Due degli anziani giocano una partita mentre il resto degli anziani guarda, mentre tu (non desideri interrompere il gioco con il kibitzing) limita il tuo commento alle domande sulle regole. Nessun postmortem segue il gioco, né gli scacchi vengono giocati o discussi di nuovo mentre si rimane a Shangri-La. Tuttavia, quando parti, per non tornare mai più, ti lasci alle spalle gli scacchi.

In tua assenza, gli anziani insegnano il gioco alla gente. Alcune persone in seguito giocano un po 'durante le ore del tempo libero, alcune con crescente entusiasmo, che creano i propri set di scacchi.

Potrebbe non essere immediatamente ovvio a tali abitanti del villaggio che una torre era meglio di un cavaliere, ma la gente poteva ancora gradualmente elaborare i punti di forza relativi degli scacchi sul gioco di molti giochi. Allo stesso modo, potrebbe non essere immediatamente ovvio per loro che 1. a4 era una scarsa apertura: potevano solo provarlo e considerare i risultati.

Fino a che punto la comprensione del gioco da parte degli abitanti del villaggio converrebbe alla fine con quella del mondo esterno? In mancanza di un libro di apertura, potrebbero sviluppare nuove aperture per conto proprio? Ovviamente, non ci si aspetterebbe che le aperture degli abitanti dei villaggi siano all'inizio molto buone ma, dato un paio di secoli di isolamento, gli abitanti dei villaggi potrebbero sviluppare un rispettabile repertorio di apertura, per quanto ne so.

Qualche delle loro aperture, sviluppate indipendentemente, si sarebbe rivelata interessante per il mondo esterno, quando il prossimo viaggiatore sarebbe passato per prenderne atto, 200 anni dopo? Shangri-La potrebbe dare al mondo il nuovo, romanzo, Shangri-La Defense?

In tal caso, quindi, rispetto alla mia domanda iniziale sull'intelligenza artificiale a scacchi, quello che avevo in mente era più o meno questo: un'intelligenza artificiale a scacchi avrebbe più o meno duplicato il progresso degli scacchi degli abitanti del villaggio alla periferia di Shanrgi-La?

Considerando la storia di Sussman nella risposta di @ Landei di seguito, è senza dubbio vero che i miei abitanti del villaggio porterebbero alcuni preconcetti al gioco. Ad esempio, avrebbero portato a comprendere che possedere più di una cosa utile in genere era meglio che possederne meno, e quindi che catturare gli scacchi di un avversario era probabilmente, di solito preferibile a subire la cattura della propria. Come territoriale il popolo immaginario di Shangri-La fosse per natura una questione per la letteratura, ma si può presumere che riconoscessero una posizione che comandava più spazio come superiore a una posizione che comandava di meno. E qualsiasi principiante brillante, una volta mostrato un set di scacchi e istruito nelle regole del gioco, può dedurre che una regina è probabilmente migliore di una pedina, semplicemente per il fatto che la regina ha fino a 27 mosse disponibili,

Pertanto, la mia domanda non deve essere interpretata in modo da implicare un'ingiunzione assoluta, in stile Sussman, di non portare alcun tipo di conoscenza alla scacchiera; ma piuttosto implicare un'ingiunzione generale contro conoscenza preconcetta, specifica degli scacchi. Dopotutto (trascurando la questione dell'evoluzione delle regole del gioco molto tempo fa), in un momento passato, si giocava la prima partita a scacchi. Forse il primo giocatore ha aperto 1. a4; ma alla fine imparò meglio e insegnò ciò che aveva imparato ai suoi discepoli; che a sua volta hanno imparato di più e hanno insegnato di più, di generazione in generazione, a darci Kasparov.

Un'intelligenza artificiale non potrebbe fare qualcosa del genere, solo in settimane anziché in secoli?

Platone sarebbe scettico, suppongo. Hume sarebbe più ottimista, ma la questione non deve più essere risolta dalla sola filosofia. Ora abbiamo computer elettronici con cui testare la proposta e mi chiedevo quale fosse lo stato dell'arte dell'intelligenza artificiale. I migliori AI di scacchi al momento sembrano essere sistemi esperti del tutto privi di intelligenza che battono tutti senza intuire nulla. Mi chiedevo se gli IA leggermente più ampi che, in un certo senso, pensassero davvero agli scacchi, avessero avuto un notevole successo nell'insegnare loro stessi il gioco.

Capisco che la risposta è no, probabilmente no.


4
Questa è una delle domande migliori su questo sito, davvero.
prusswan,

5
Sembra che la risposta sia sì, dato che DeepMind ha appena pubblicato una ricerca su un nuovo AI all'avanguardia che si sono allenati da zero (solo auto-gioco, nessun gioco di riferimento). arxiv.org/pdf/1712.01815.pdf
Lalaland il

1
Aggiungendo il commento di @Lalaland, dopo l'allenamento per 10 ore penso che abbia completamente schiacciato lo stoccafisso (non so quale versione) come se lo stoccafisso fosse un principiante. Praticamente inaudito nei giochi motore vs motore. Sembra che a alphago zero piaccia suonare nello stile di Tal
Ariana il

2
"Un'intelligenza artificiale potrebbe fare qualcosa del genere nel giro di poche settimane, non di secoli? Probabilmente no." Beh, avevi ragione in un certo senso ... Ci sono volute solo ore.
user230452

1
Molti giocatori, come Capablanca, dovrebbero aver capito il gioco vedendolo giocato una volta. E ricorda che Alpha Zero non aveva nient'altro a cui pensare.
Philip Roe,

Risposte:


26

Hai dei punti molto interessanti. Ho un po 'di esperienza nella ricerca sull'intelligenza artificiale (il mio M.Sc. era in questo campo), quindi penso di poter fornire alcuni spunti.

Ricerca nell'area

In primo luogo, la ricerca in questo campo sta certamente avvenendo: la ricerca di "scacchi per approccio evolutivo" è tornata con questo documento dal 2001, facendo praticamente esattamente ciò che hai suggerito, lasciando l'approccio min / max e modificando solo la funzione di valutazione. È possibile scavare molto di più e sono a conoscenza di diverse persone che lavoravano in questo campo in generale.

Possibilità teoriche

A mio avviso, l'unico vero fattore limitante per la creazione di un "puro" gioco di scacchi con AI è il tempo di calcolo. Non vi è assolutamente alcun motivo per cui una simile IA non possa teoricamente essere creata utilizzando gli approcci attuali.

Aspetti pratici

Esistono due problemi principali nell'uso di approcci evolutivi o genetici nell'evoluzione di una funzione euristica di scacchi, il primo è che, anche nella sua forma più elementare, una funzione euristica per gli scacchi è estremamente complessa. Stiamo parlando di centinaia di regole, valutazioni di pezzi (che possono differire in base alla posizione, ecc.), Analisi posizionali, ecc. Avresti bisogno di un linguaggio informatico flessibile in cui descrivere queste regole, e quindi queste regole potrebbero essere generate casualmente, mutato, cresciuto l'uno con l'altro, ecc. È certamente possibile, ma immagino che finiresti con un set di regole che comprende diverse migliaia di entità. È una regola molto ampia che si evolve dinamicamente.

Il secondo problema è che per valutare effettivamente la tua nuova regola modificata, devi giocare a scacchi e vedere chi finisce per vincere. Se vuoi farlo "correttamente", vorrai dare ad entrambi i giocatori un sacco di tempo per pensare, qualcosa di simile a una lunghezza tipica del gioco. Tuttavia, giocare solo un singolo avversario non è abbastanza, vorresti giocare molti avversari diversi, e forse anche gli stessi avversari, molte volte, prima di poter davvero essere convinto di aver trovato un miglioramento nella forza del gioco. Ciò significherebbe probabilmente giocare un paio di centinaia di giochi per individuo nella tua popolazione, e questo ti dà una generazione del tuo algoritmo.

In genere con questi tipi di approcci, dovresti guardare almeno diverse centinaia di generazioni o con funzioni così complesse come un'euristica degli scacchi, diverse centinaia di migliaia (o addirittura milioni di) generazioni. Alcuni rapidi calcoli dovrebbero convincerti che avresti bisogno di diverse migliaia di ore di CPU per una singola generazione, anche ridimensionando una server farm di dimensioni significative, probabilmente avrai bisogno di diversi (forse centinaia) anni per evolvere effettivamente, esattamente come citi nel tuo aggiornamento.

Alla fine di quel periodo, avresti un algoritmo interessante che probabilmente avrebbe tonnellate di intuizioni nel gioco che non sono mai state davvero scoperte. È difficile dire se sarebbero utili o addirittura comprensibili agli umani. Perché esiste questa regola? Perché oltre diverse migliaia di giochi, sembrava funzionare.

Futuro

Non ho dubbi sul fatto che questi approcci guadagneranno più popolarità, con l'aumentare della potenza di calcolo. Attualmente, siamo a un punto in cui una macchina ha il tempo di elaborazione sufficiente per battere (quasi tutti) gli umani, se la sua intelligenza è accuratamente realizzata a mano. Tra 20 anni, è possibile che i processori si siano spostati così tanto che uno o due passaggi extra in profondità non danno più alle macchine "hard-coded" abbastanza benefici, ma sono sistematicamente battuti da macchine evolute, stranamente intuitive che hanno milioni di ore di evoluzione dietro di loro.

Aggiornamento 2018 maggio

Come Robert Kaucher menziona in un commento qui sotto, le notizie recenti meritano di essere menzionate qui. In particolare, il progetto AlphaGo di Google sembra essere il primo approccio veramente basato sull'intelligenza artificiale a questo tipo di giochi e, alla fine del 2017, afferma di aver vinto contro StockFish 2 , dopo essere stato riproposto per l'attività.


Grazie. Ho notato che l'articolo che alleni prima allena la sua IA contro avversari umani non maestri e poi contro software di scacchi esistenti, che non è proprio quello che tu e io avevamo in mente. Un platonico come me non sarebbe sorpreso di apprendere che il tipo di intelligenza artificiale di cui stiamo discutendo era un'impossibilità pratica (sappiamo che non è un'impossibilità teorica perché gli scacchi possono essere risolti in teoria da minimax); ma se una risposta mi sorprende non è questo il punto. Indicare è chiedere se un'intelligenza artificiale ha raggiunto l'impresa proposta. La risposta sembra essere no.
thb

2
@thb Penso che ci siano stati un discreto numero di tentativi in ​​questo tipo di IA, anche se potresti considerarli "senza successo". Sospetto che un tentativo di grande successo (oggi) probabilmente suonerebbe a un livello amatoriale molto debole; un grande risultato, non solo agli occhi del pubblico. Inoltre, non penso che allenarsi contro i programmi esistenti e gli umani stia tradendo, di per sé - solo un'ottimizzazione molto grande, sebbene possa cambiare la direzione dello stile di gioco dell'IA in evoluzione.
Daniel B,

1
Se sei interessato a leggere di più sull'approccio "puro", avrai probabilmente più fortuna a cercare approcci di "coevoluzione evolutiva". Questa è la frase usata quando non c'è un buon modo per fornire una misura esterna delle prestazioni (cioè non possiamo giocare contro altri motori di scacchi), quindi l'allenamento AI deve evolversi giocando varie versioni di se stesso. Funziona sicuramente, ma richiede molto più tempo, motivo per cui è probabilmente un approccio meno perseguito.
Daniel B,

1
@DanielB AlphaZero è una tale intelligenza artificiale?
Harry Weasley l'

1
Potresti voler aggiornare la tua risposta. chess.com/news/view/…
Robert Kaucher,

17

Sospetto che ciò di cui stai chiedendo sarebbe classificato come una sorta di algoritmo genetico o approccio di algoritmo evolutivo . Sospetto che non esista un modo realistico di progettare un tale algoritmo senza incorporare intrinsecamente un certo grado di distorsione umana a un livello fondamentale, poiché il programmatore deve ancora definire le caratteristiche statiche di una posizione (conteggio dei materiali, struttura del pedone, complessi di colore, ecc.) in base al quale l'IA classificherebbe e confronterebbe posizioni di giochi diversi. Se fai una ricerca su Google sulla terminologia algoritmica sopra nel contesto degli scacchi, troverai numerosi risultati, ma probabilmente poco in termini di ricerca seria che è stata effettivamente utilizzata per costruire IA competitivi e di successo.

Il fatto è che, come conseguenza della legge di Moorei computer sono ora macchine di calcolo così potenti che metodi di intelligenza artificiale estremamente sofisticati non solo non sono necessari (in termini di gioco a un livello superiore rispetto ai migliori avversari umani), ma possono anche essere potenzialmente controproducenti. Gli scacchi sono il tipo di gioco in cui - a causa principalmente del suo spazio di ricerca relativamente piccolo di mosse ragionevoli in una data posizione e dell'esistenza di combinazioni tattiche forzate (che comprendono sequenze di controlli, cattura di pezzi, minacce di accoppiamento o perdita catastrofica di materiale, ecc.) - un approccio a forza bruta con una potatura conservativa dell'albero di ricerca è contemporaneamente l'approccio più algoritmicamente semplice ed efficace. Se si tiene conto della disponibilità delle tabelle di endgame e dei libri di apertura, la logica di tale approccio aumenta. Capisco che ci ' c'è ancora molto interesse teorico e potenziale valore nel tipo di romanzo AI di cui stai parlando, ma sospetto che gli scacchi siano l'arena sbagliata in cui svilupparlo. D'altra parte, un gioco come Go, che per sua natura è meno tattico e comprende uno spazio di ricerca molto più ampio che rende impraticabili gli approcci a forza bruta, potrebbe essere un candidato migliore per la ricerca AI all'avanguardia.


Ho aggiornato la domanda AI alla luce della tua risposta. L'aggiornamento non è breve, quindi, a tua discrezione, quando hai del tempo, puoi rivederlo nella misura in cui ti interessa.
th

2
Non sarebbe necessario tale pregiudizio umano. Basta generare 1000 algoritmi casuali in grado di giocare a scacchi legali, metterli uno contro l'altro in un torneo, quindi prendere il 20% superiore e applicare la mutazione e il crossover per costruire la prossima generazione. Ripeti più volte per diverse generazioni e alla fine dovresti avere qualcosa di a metà strada decente. L'unica funzione di fitness necessaria sarebbe vincere / perdere.
superluminario,

15

Vedi la pagina di Wikipedia sul gioco generale . È un'area di ricerca attiva. C'è un torneo GGP annuale in cui ai programmi vengono date le regole di una nuova partita, ci si può pensare per un po ', quindi giocare l'una contro l'altra.

Se dai le regole degli scacchi a un programma GGP, penso che troverai molto più forte di un principiante umano e molto più debole di un programma di scacchi scritto appositamente.


13

Vale la pena di rivisitare questa domanda alla luce del recente notevole successo di AlphaZero contro Stockfish 8 . Un'ulteriore evoluzione dei programmi AlphaGo e AlphaGo Zero di DeepMind , AlphaZero ha concluso con un punteggio impressionante di +28 = 72 -0 contro uno dei più potenti motori di scacchi "tradizionali" del pianeta.

AlphaZero ha insegnato a giocare attraverso l'apprendimento per rinforzo, addestrando la sua architettura di rete neurale attraverso una serie di giochi contro se stesso. Secondo il documento di accompagnamento :

  1. Le funzioni di input che descrivono la posizione e le funzionalità di output che descrivono lo spostamento, sono strutturate come un insieme di piani; cioè l'architettura della rete neurale è abbinata alla struttura a griglia della scheda.
  2. AlphaZero è dotato della perfetta conoscenza delle regole del gioco. Questi vengono utilizzati durante MCTS, per simulare le posizioni risultanti da una sequenza di mosse, per determinare la fine del gioco e per segnare eventuali simulazioni che raggiungono uno stato terminale.
  3. La conoscenza delle regole viene anche utilizzata per codificare i piani di input (ovvero castling, ripetizione, no-progress) e piani di output (come si muovono i pezzi, promozioni e cadute di pezzi nello shogi).
  4. Il numero tipico di mosse legali viene utilizzato per ridimensionare il rumore di esplorazione (vedi sotto).
  5. Le partite di scacchi e di shogi che superavano un numero massimo di passi (determinato dalla lunghezza tipica del gioco) furono terminate e assegnarono un risultato; Le partite di Go furono terminate e segnate con le regole di Tromp-Taylor, analogamente al lavoro precedente (29).

AlphaZero non ha utilizzato alcuna forma di conoscenza del dominio oltre i punti sopra elencati.

Sono sicuro che si possono porre domande su cose come l'hardware diverso utilizzato: " AlphaZero ... ha usato una sola macchina con 4 TPU . Stoccafisso ... giocato al suo livello di abilità più forte usando 64 thread e una dimensione di hash di 1 GB. " - ma in ogni caso il risultato di AlphaZero è notevole e molto simile a quello dell'OP.

Rivelando forse anche un supporto ancora maggiore per quanto fosse in gioco poca conoscenza specifica del dominio, oltre a battere Stockfish negli scacchi, AlphaZero si è anche allenato allo shogi al punto di battere il programma campione Elmo, e ovviamente ha anche superato il suo predecessore AlphaGo Zero in Go .

Ecco una delle partite contro lo stoccafisso, una Berlino in cui lo squilibrio materiale è infine AlphaZero con la coppia vescovo contro un cavaliere e 4 pedine per lo stoccafisso dopo 31.Qxc7. In quella posizione, tutti i pezzi di AlphaZero sono nel rango posteriore, con i vescovi nelle loro caselle originali. Alla fine, dopo che le regine si staccano, i pezzi neri si muovono lentamente per raccogliere pedine bianche e quelle sono tende.

Stoccafisso - AlphaZero, 2017-12-04, 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

11

Penso che il motivo principale per cui è difficile produrre una simile IA sia a causa dello spazio necessario per memorizzare "l'addestramento" per essere efficace.

Inoltre (come risposta al tuo commento sull'auto-allenamento), l'auto-allenamento può essere dannoso durante il tentativo di migliorare tale AI - Ho fatto qualche ricerca con tic-tac-toe (certamente molto più semplice), e ha trovato di tutto di modi orribili per vincere (e allenare quei modi orribili) perché entrambe le parti hanno giocato in modo orribile. Ci è voluto molto più tempo per ottenere prestazioni ragionevoli con l'auto-allenamento piuttosto che allenarsi contro una buona intelligenza artificiale nel tic-tac-toe.

Tuttavia, penso che sarebbe interessante vedere un ibrido che utilizza sia la ricerca approfondita che "l'addestramento" - una sorta di database memorizzato di posizioni per middlegame (anziché solo endgame e aperture). Avrebbe bisogno di molto spazio.

Forse stai pensando a un approccio AI più "reale" che apprenderebbe concetti posizionali piuttosto che posizionare vittoria / perdita / pareggio, ma non penso che sarebbe molto efficace (rispetto ai motori potenti).


La risposta è apprezzata Ciò che ritengo di avere in mente era un'intelligenza artificiale che (a) possedeva una capacità minimax ma (b) mancava di una funzione di valutazione predeterminata. Una simile IA risolverebbe necessariamente un gioco così piccolo come il tic-tac-toe con il minimox. Negli scacchi, un gioco teoricamente suscettibile solo a minimax, l'IA valuterà non la posizione attuale sul tabellone ma le posizioni future, dopodiché minimax sceglierebbe la mossa. Si potrebbe dire vagamente che Nimzowitsch ha rivoluzionato gli scacchi respingendo l'euristica di valutazione nota. In tal caso, una macchina potrebbe fare altrettanto?
thb

1
Quindi stai dicendo che svilupperebbe la propria funzione di valutazione?
Eve Freeman,

2
@thb, come programmatore, penso che il problema con la tua idea sia che, per quanto posso vedere, nessuna IA di scacchi plausibile può iniziare con una lavagna totalmente vuota per una funzione di valutazione. Si potrebbe scrivere un'intelligenza artificiale che analizza i giochi per schemi e utilizza metodi statistici / probabilistici (ad es. Inferenza bayesiana) per mettere a punto le sue valutazioni e il processo decisionale, ma il programmatore deve identificare quali motivi, fattori posizionali, mosse sequenze costituiscono detti schemi e con quali criteri valutarli. In altre parole, il nucleo di base della funzione di valutazione dovrebbe ancora essere progettato dall'uomo.
Greg E.

1
Potrebbe essere interessante vedere come viene prodotto un motore genetico minimax, ad esempio, se si dovessero iniziare tutti i pezzi con lo stesso valore materiale, basato su vincita / perdita / pareggio, e lasciare che i valori del materiale mutino. Sono sicuro che i creatori di motori hanno già provato a modificarli, come fare pedine cavalieri 2.9 e vescovi 3.1.
Eve Freeman,

1
@thb, non sono un esperto, ma penso che sia così. Anche l'intelligenza artificiale a cui sei collegato è vincolata dai pregiudizi del programmatore. Se leggi il documento di ricerca originale, nota che il "vettore di caratteristiche" che addestra la funzione di valutazione comprendeva caratteristiche della scheda che "sono state accuratamente progettate a mano". Cioè, il programmatore deve ancora specificare l'insieme di fattori posizionali statici su cui l'IA basa il suo processo decisionale. Il principale vantaggio di una rete neurale per questo particolare progetto, penso, è che l'allenamento può essere parallelizzato, consentendo l'elaborazione asincrona di enormi quantità di giochi in modo efficiente.
Greg E.

10

Voglio solo espandere le risposte di Greg e Wes qui. Il tipo di AI che propone questo semplicemente non esiste con la raffinatezza richiesta per questa applicazione. E anche se lo facessero, sospetto che fallirebbero in questo. È come se thb volesse un'intelligenza artificiale per scopi generali forte a cui possano essere insegnate le regole di base del gioco e che poi venga inviato. Ma se guardi agli IA per scopi generali che sono in fase di sviluppo, a tutti viene insegnato cose come il riconoscimento di oggetti e parole a un livello da 1 a 2 anni. Qualsiasi intelligenza generale per scopi generali dovrebbe prima avere la raffinatezza per essere in grado di capire cosa sia un gioco prima ancora che possa capire come giocare. Non è possibile progettare un'intelligenza artificiale per scopi generali e aspettarsi che funzioni come un'intelligenza artificiale stretta o specializzata. A un'intelligenza generale dovrebbe essere insegnato a giocare a scacchi come una persona e non puoi aspettarti di mettere insieme due giocatori alle prime armi senza alcuna conoscenza della storia degli scacchi e reinventare spontaneamente aperture e temi strategici. Ci vorrebbero molte centinaia di istanze dell'IA che si giocano a vicenda, ognuna con accesso ai dati storici di tutti i loro giochi su centinaia di migliaia di iterazioni. E ogni IA dovrebbe avere determinate caratteristiche distinte ponderate a livelli diversi.

Ci sono voluti quasi 500 anni per arrivare da Rodrigo (Ruy) López de Segura e Pedro Damião a Paul Morphy e poi considerare gli ulteriori cambiamenti che si sono verificati tra il gioco di Steinitz e Alekhine. E tutto quel cambiamento è avvenuto attraverso il dinamismo di molte centinaia di migliaia di giocatori con temperamenti diversi e altre caratteristiche influenti (come favorire casualmente cavalieri su vescovi o vescovi su cavalieri) per non parlare degli stili e delle mode di gioco. Tutte queste cose hanno contribuito alla dinamo del cambiamento che ha influenzato gli scacchi attraverso i secoli. Nessuna intelligenza artificiale debole - anche un'intelligenza artificiale debole - potrebbe duplicare quel tipo di dinamo perché manca di desiderio. Solo il desiderio può spingere qualcosa a rimanere seduto per ore per molti giorni per analizzare un'apertura con l' intenzione di sballarla o migliorarla dopo che un rivale l'ha "beccata". È davvero questo tipo di impulso all'analisi e alla preparazione che ha migliorato il gioco nel corso dei secoli, non un gioco cieco di milioni di giochi tra giocatori ugualmente deboli.

È come prendere un gruppo di persone che non parlano inglese e che non leggono mai i maestri letterari della loro lingua madre e metterle in una stanza con libri di inglese come seconda lingua e aspettarsi che escano con qualcosa come le opere di Shakespeare. Non succederà mai e poi mai.

EDIT : avrei dovuto sapere meglio che fare questa affermazione perché è successo .

"AlphaZero non ha" insegnato "il gioco in senso tradizionale", spiega Chess.com. “Ciò significa che non ci sono libri di apertura, tavoli di fine gioco e apparentemente nessun algoritmo complicato che analizza minime differenze tra pedine centrali e pedine laterali. Questo sarebbe simile a un robot che ha accesso a migliaia di parti e pezzi di metallo, ma nessuna conoscenza di un motore a combustione, quindi sperimenta numerose volte con ogni combinazione possibile fino a quando non costruisce una Ferrari. ... Il programma ha avuto quattro ore per giocare da solo, molte volte, diventando così il suo insegnante. "

La mia continuazione, ovviamente senza fondamento:

Diamo per scontata tutta la conoscenza implicita che abbiamo sul mondo. Per essere in grado di capire che se devo pezzi di legno e un chiodo, allora un martello mi è più utile di un cacciavite, devo prima capire che certe classi di cose sono più utili in certe situazioni rispetto ad altre. Devo anche capire che le cose hanno un uso che può essere applicato a un obiettivo. Queste sono euristiche. Se non si può dire all'intelligenza artificiale che alcuni pezzi hanno più valore di altri, come può capire che cos'è il compagno? Se non può essere programmato con euristiche specifiche, deve essere in grado di estrapolare queste idee come "valore" e "utilità" dall'esperienza. E questo non è il dominio dell'intelligenza artificiale stretta. È il dominio di uso generale, forte intelligenza artificiale.


1
Risposta eccellente. Penso che il tuo primo paragrafo cristallizzi davvero l'idea che stavo cercando di trasmettere, ma lo fa con maggiore lucidità.
Greg E.

Grazie Greg. Voglio solo aggiungere che sto parlando di un'intelligenza artificiale debole. Credo che una vera IA forte possa fare qualcosa del genere in molti casi in molte iterazioni in un intervallo di tempo altamente compresso. Ma non abbiamo ancora un'intelligenza artificiale forte. en.wikipedia.org/wiki/Strong_AI
Robert Kaucher,

Sono d'accordo con tutto ciò che hai detto tranne la sezione sul desiderio. L'intelligenza artificiale può restare seduta per ore facendo ciò che i progettisti lo desiderano: una potenza del computer sufficiente a risolvere gli scacchi, è solo che non abbiamo ancora abbastanza energia.
Eve Freeman,

Questo è vero, Wes, ma poi stiamo iniettando il pregiudizio del "programmatore" o qualunque altra cosa nell'intelligenza artificiale; che è una delle cose che l'autore della domanda non voleva.
Robert Kaucher,

@EveFreeman, penso che tu abbia frainteso quello che sto dicendo. Non sto dicendo che i computer non "risolveranno gli scacchi", sto dicendo che lo scenario specifico dell'OP è limitato al punto che non funzionerà. Se il sistema non ha euristiche come può dare un valore ai pezzi?
Robert Kaucher,

9

Per favore, medita sul seguente AI Koan:

Nei giorni in cui Sussman era un novizio, Minsky una volta venne da lui mentre sedeva hackerando il PDP-6. "Che cosa stai facendo?", Chiese Minsky. "Sto allenando una rete neurale a caso per giocare a Tic-Tac-Toe" rispose Sussman. "Perché la rete viene cablata casualmente?", Chiese Minsky. "Non voglio che abbia preconcetti su come giocare", ha detto Sussman. Minsky poi chiuse gli occhi. "Perché chiudi gli occhi?", Chiese Sussman al suo insegnante. "In modo che la stanza sia vuota." In quel momento, Sussman fu illuminato.

Le nostre applicazioni hanno sempre preconcetti, anche se chiudi gli occhi o meno ...


Il tuo aneddoto è più convincente. Nella misura in cui ti interessa, il tuo aneddoto mi ha spinto a estendere la domanda con un aggiornamento, che puoi vedere sopra quando hai tempo.
THB

8

Qualcuno ha mai scritto un programma di scacchi che ha approfondimenti propri? Che impara il gioco da solo? Che si allena da solo?

Sì. Dai un'occhiata al motore di scacchi Giraffe scritto da Matthew Lai. Ha scritto il motore degli scacchi come parte della sua ricerca sull'intelligenza artificiale per un master in informatica.

Ci sono state molte discussioni su questo anno scorso nel forum di programmazione di scacchi TalkChess . Lo so perché sono un autore di motori a scacchi il cui motore è grosso modo forte quanto la giraffa. Tuttavia, ho implementato il mio motore usando tecniche tradizionali mentre l'autore di Giraffe ha addestrato il suo motore usando "l'apprendimento del rinforzo della differenza temporale con reti neurali profonde". Matthew doveva ancora implementare la tradizionale ricerca alfa / beta per valutare dinamicamente una posizione, in altre parole, per guardare avanti a molte mosse. La sua innovazione consiste nell'addestrare il motore per valutare una posizione statica . In confronto, ho scritto conoscenze specifiche sulla routine di valutazione statica del mio motore.

Ho scritto codice per ottimizzare i parametri di valutazione usando un algoritmo di sciame di particelle (vedi la pagina di ringraziamento sul mio blog per i collegamenti alla discussione tecnica) che ha prodotto risultati positivi - un motore più forte. Tuttavia, non era compito di "apprendere" il motore, ma minimizzare l'errore in uno spazio estremamente ampio di parametri di valutazione (l'ordine di 10 ^ 150 combinazioni di parametri discreti).

Matthew discute la sua tesi di laurea sul forum TalkChess. Lavora per Google su DeepMind ora, se ricordo bene.

Inoltre, controlla il blog di Thomas Petzke . Ha scritto un motore di scacchi estremamente potente, iCE, e ha usato algoritmi genetici per migliorare la valutazione statica del motore. Guarda i suoi post dal 2013 e precedenti, come l' apprendimento incrementale basato sulla popolazione .


Benvenuto nel forum! Più uno.
SmallChess,


5

Una ricerca su Google come questa può generare risultati come questo .

In particolare, credo che vorrai dare un'occhiata a questo documento . Forniscono al loro motore alcuni dati iniziali come i valori dei pezzi, quindi non è esattamente quello che stai chiedendo, ma ha funzionato abbastanza bene.


+1 perché apprezzo l'interessante citazione IEEE. Mi è già capitato di avere familiarità con la pagina NeuroChess. Nessuno dei due sembra fare proprio quello che avevo in mente, però.
gio

3

È possibile con l'apprendimento automatico.

I libri di apertura dei motori di scacchi usano l'apprendimento automatico. Il motore verifica le linee di apertura nel libro suonandole, se una linea ha un punteggio migliore rispetto a un'altra, quindi promuove quella linea nell'albero di apertura. Col tempo, il motore impara le linee migliori.

Al termine della fase di apertura, il motore si arresta utilizzando il libro e inizia a utilizzare la funzione di valutazione.


Come implementare un motore di autoapprendimento usando l'apprendimento automatico?

Immagina un motore che utilizza un libro senza una funzione di valutazione. E il libro è inizialmente vuoto. Quindi il motore non ha conoscenza degli scacchi.

Il motore inizia a giocare con questo libro vuoto e non lo chiude fino alla fine del gioco. Possiamo pensarlo come un normale motore che utilizza un libro di apertura fino alla fine del gioco.

Con il passare del tempo, il motore troverebbe statisticamente le migliori continuazioni, poiché le cattive linee segneranno un peggio nel tempo. Ma ovviamente, molti giochi dovrebbero essere giocati per ottenere un buon libro. Non so quanti, ma quanti ne possiamo dire poco pratici.

Aggiornamento di dicembre 2017 : Beh, immagino che Alpha Zero mi abbia dimostrato di essermi sbagliato allenandomi abbastanza forte da battere uno dei motori più potenti, Stockfish, con una quantità pratica di giochi.


2

Qualunque cosa tu provi in ​​quest'area, assicurati di leggere prima la storia di Turry qui: http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-2.html

TL; DR; versione spoiler per richiesta:

Nella storia di Turry L'IA di auto-allenamento di Turry deve scrivere belle note scritte a mano e finisce per sbarazzarsi degli umani perché non sono necessari per raggiungere l'obiettivo apparentemente innocuo di scrivere belle note scritte a mano. L'analogia è che un motore di scacchi autodidatta con AI molto probabilmente si sbarazzerà anche degli umani perché non sono necessari per migliorare l'obiettivo apparentemente innocuo di migliorare le abilità di scacchi.


La tua risposta è interessante, anche se forse non abbastanza convincente. Ho letto l'articolo collegato (entrambe le parti) sul tuo consiglio. Lo scrittore indebolisce un po 'il suo caso attaccando alcuni uomini di paglia, ma è un tipo riflessivo. Non penso di avere in mente qualcosa di molto simile all'articolo Turry. Una scacchiera 8 per 8 su cui due giocatori effettuano circa 40 turni discreti è un caso fondamentalmente più semplice. Trovo straordinario che l'IA non possa nemmeno pensare agli scacchi in modo generale. Per una visione contraria, assegnato lettura: Feser, Edward. L'ultima superstizione. Ancora, +1 per interesse.
THB

1

E c'è AlphaZero. Festeggia un'intera nuova generazione di motori per scacchi


0

L'uso della terminologia antropomorfa quando si tratta di sistemi informatici è un sintomo di immaturità professionale

Da Come diciamo verità che potrebbero ferire? di Edsger W.Dijkstra riassume praticamente il presupposto errato alla base della tua domanda. L'intelligenza artificiale può essere artificiale ma non è intelligenza nel senso umano.

Nel 1984 Reith Lectures per la BBC il filosofo americano John Searle spiega esattamente cosa c'è di sbagliato nell'intelligenza artificiale. Il riassunto "troppo lungo, non ascoltato" del suo argomento è "La sintassi non è semantica", ma ti incoraggio comunque ad ascoltare almeno la lezione 2 "Lattine di birra e macchine per la carne ".

Dopo aver capito cosa dicevano Dijkstra e Searle più di 30 anni fa, riconoscerai cosa non va nelle tue domande:

Qualcuno ha mai scritto un programma di scacchi che ha approfondimenti propri? Che impara il gioco da solo?

Gli esseri umani hanno "intuizioni" e possono imparare. I computer non possono. Il tuo villaggio di umani primitivi potrebbe nel corso dei secoli riprodurre la teoria dell'apertura degli scacchi, ma non i computer.


Sostieni che i computer non raggiungeranno l'intelligenza a livello umano o che persino il "pensare" e la "comprensione" sono riservati agli umani?
BlindKungFuMaster,

@BlindKungFuMaster Se ti prendi la briga di ascoltare "Lattine di birra e macchine per la carne" nel link sopra, ti sarà chiaro cosa pensa John Searle. Mi ha convinto e condivido la sua opinione.
Brian Towers

La comprensione semplicistica di Searle dei programmi per computer di intelligenza artificiale è scusabile, dopo tutto è solo il 1984. Ma le moderne architetture di intelligenza artificiale imitano solo l'architettura della mente umana, quindi solo l'architettura è descritta sintatticamente, non quello che alla fine il "pensiero". "Il potere (non ancora del tutto) equivalente al potere del cervello umano" deriva dall'ingestione di grandi quantità di dati, mediante "l'apprendimento". Solo in questa fase viene acquisito il contenuto semantico.
BlindKungFuMaster

Quindi l'argomento Chinese Room è viziato dal presupposto che si possa simulare la comprensione solo con un grande libro delle regole, il che in realtà è relativamente assurdo, e rinuncia alla possibilità che invece il contenuto semantico possa essere catturato dall'architettura appropriata da grandi quantità di dati. In effetti, questo è il significato di Natural Language Processing in questi giorni: cs224d.stanford.edu/syllabus.html
BlindKungFuMaster

@BlindKungFuMaster C'è una parola chiave in quello che dici che mi sembra che tu non capisca. È la parola "simulare". Sono stato per 35 anni un ingegnere informatico e in quel periodo ho molti simulatori e ne ho scritti anche alcuni. I simulatori sono spesso componenti vitali di un progetto ma in un progetto in tempo reale non sostituiscono mai completamente le apparecchiature di destinazione. Senza dubbio i computer sono eccellenti nel simulare l'intelligenza e la comprensione semantica, ma non possono mai raggiungere coscienza, volontà, comprensione.
Brian Towers

0

Questa risposta è data dall'interrogante della domanda originale, quattro anni dopo la domanda. Non sostituisce o sostituisce le risposte fornite in precedenza, poiché la maggior parte delle risposte precedenti sono più interessanti di questa. Tuttavia, questa risposta potrebbe aggiungere un ulteriore contesto.

Per quanto ne so, la maggior parte delle ricerche sull'IA sembra implicitamente dare la premessa che il pensiero e la ragione erano solo fenomeni materiali, o almeno che i risultati indistinguibili dal pensiero e dalla ragione devono essere necessariamente raggiungibili con processi esclusivamente materiali. Non contestare la premessa (né qui promuoverla, del resto). Osservo semplicemente che sembra essere una premessa.

E, dopo tutto, nella ricerca sull'IA, come dovrebbe non essere una premessa? I ricercatori di intelligenza artificiale devono lavorare attraverso processi materiali, che lo facciano o meno.

Gli scolari della filosofia realista , di ritorno a Duns Scoto, San Tommaso, Aristotele e Platone, hanno avuto molto da dire sulla teoria della mente. I rappresentazionisti come Kant hanno avuto cose piuttosto diverse da dire. La ricerca sull'intelligenza artificiale è probabilmente più vicina a Kant, ma ciò non fa sbagliare gli scolari.

Certo, c'è un'obiezione God of the gap che tende a sorgere a questo punto in conversazioni del tipo attuale, eppure un filosofo professionista ti direbbe che l'obiezione God of the gap vuol attaccare un uomo di paglia, che questa obiezione tende ad essere utile solo contro le persone che non hanno studiato filosofia e quindi non sanno di cosa stanno parlando. Per Aristotele, è la causalità formale e finale che potrebbe essere implicata nella questione dell'intelligenza artificiale autodidatta. Tuttavia, in termini aristotelici, il ricercatore dell'intelligenza artificiale lavora esclusivamente con causalità materiale e, soprattutto, efficiente(tranne forse forse in modo obliquo, nella misura in cui i formatori umani introducono personalmente elementi formali e finali nel sistema). Se la ragione è formale, se il pensiero è definitivo, se la stanza cinese di Searle si rivela un'impossibilità ontologica (come potrebbe), allora può darsi che un'intelligenza artificiale di auto-allenamento non possa nemmeno essere teoricamente raggiunta.

Ho il sospetto che un'intelligenza artificiale di scacchi puramente autodidatta possa essere effettivamente raggiunta, e sarà - che, in termini aristotelici, questa domanda si dimostrerà adeguatamente frammentabile in vista di una causalità semplicemente efficiente. Sono più scettico nei confronti della forte intelligenza artificiale in generale, ma questi devono essere dimostrati nell'esperienza, no? Nessuno lo sa ancora.

La filosofia della causalità e della mente è sottile, afferrata da pochi (e probabilmente da pochi, anche tra i ricercatori dell'IA, che sono uomini più pratici). Se desideri imparare tale filosofia, vale la pena apprendere; ma tieni presente che, su Internet e anche spesso su carta stampata, è estremamente facile trovare spiegazioni fuorvianti basate su incomprensioni non programmate. Per i miei soldi, il miglior insegnante introduttivo che scrive oggi sull'argomento è Edward Feser, i cui libri rimangono stampati a prezzi ragionevoli. Puoi imparare molto di più da lui.

Tuttavia, si dubita che anche il Dr. Feser si sarebbe avventurato una risposta autorevole sulla domanda attuale! La risposta resta da provare nei laboratori di AI.


-3

Voglio che rilascino il codice, quindi possiamo parlare. Non è così facile risolvere gli scacchi, Alpha non lo risolverà nemmeno in mezzo secolo. Stranamente, gioca ancora 1.d4. Perché? Perché è stato addestrato sui giochi umani e la teoria umana offre il più alto tasso di prestazioni per 1.d4. La cosa povera non sa che 1 ... c5 realizza un pareggio in 8 mosse precise. Ora vogliono che io creda che Alpha non abbia usato un libro di apertura simulato ... Dicono che Alpha abbia giocato bene alle aperture. Bene, sì, con alcune eccezioni. 1.d4 certamente non parla bene del livello di intelligenza raggiunto dal programma. Fortunatamente, SF è ancora più debole nella fase di apertura. :)


3
Fai affermazioni audaci nel dire che 1. ... c5 realizza un pareggio in 8 mosse e che lo stoccafisso è debole nella fase di apertura. Potresti fornire riferimenti a queste affermazioni?
Pablo S. Ocal,

1
1.d4 certamente non parla bene del livello di intelligenza raggiunto dal programma. Come giocatore 1.d4, mi chiedo se dovrei considerare che la mia intelligenza viene insultata qui.
Evargalo,

Anche se non hanno rilasciato il codice o nemmeno pubblicato il documento, è stato lanciato un progetto per riprodurre il loro risultato: lczero.org Puoi persino giocare con il "AlphaZero" in evoluzione
Junyan Xu
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.