Come usare l'intelligenza artificiale negli scacchi per computer


19

In alcuni articoli (storici), gli scacchi sono stati indicati come la drosofila dell'intelligenza artificiale. Mentre suppongo che nella ricerca attuale, la semplice applicazione di un algoritmo di ricerca sia nella migliore delle ipotesi informatica avanzata , credo che ci siano ancora aree in cui è possibile applicare (e praticare) tecniche di intelligenza artificiale.

Un semplice esempio potrebbe essere l' apprendimento del libro di apertura in cui si può insegnare al programma se utilizzare o meno determinate mosse in apertura perché il programma non è adatto a determinati tipi di posizione. Possiamo usare una forma di apprendimento per il rafforzamento e automatizzarlo: suppongo di poter giocare il programma contro se stesso e aumentare la probabilità di linee vincenti e diminuire la probabilità di perdere linee.

L'esempio più complesso è l'uso di una funzione di valutazione dell'apprendimento (ad esempio, si potrebbero modificare i valori delle tabelle pezzo-quadrato ). Tuttavia, sto pensando:

  • dato tutto il rumore dovuto alla presenza di un'enorme quantità di posizioni realistiche (al contrario della quantità di linee di apertura realistiche)
  • e con il costo (durata) di una partita a scacchi al computer e la necessità di giocare carichi.

Come si può fare questo efficacemente? (o dovrei guardare altre tecniche, ad esempio le reti neurali.)


3
L'approccio standard è minimox potato alfa-beta. con un euristico. Viene dalla famiglia di ricerca dell'IA, piuttosto dalla famiglia di apprendimento automatico.
Lyndon White,

2
I maestri di scacchi reali in pratica ricordano solo tutti i giochi a cui hanno giocato in precedenza ... Quindi hanno una forte memoria.

2
C'è anche la domanda contraria. Non ricordo chi l'abbia detto ma va così. I biologi usano esperimenti sulla drosofila per ottenere una comprensione sempre più profonda della fisiologia, della genetica e così via. Le persone con intelligenza artificiale scrivono computer per scacchi sempre più bravi a giocare a scacchi. Questo non ci insegna molto sull'informatica; sarebbe come se i biologi avessero allevato una drosofila superveloce e super forte e facendoli combattere l'un l'altro.
David Richerby,

ha scritto la metafora, è probabilmente più che la "drosofila dell'intelligenza artificiale" ha scritto diversi aspetti, specialmente considerando che non ha battuto in modo decisivo il massimo umano fino al ~ 1997, e la ricerca continua, ecc.
vzn

Risposte:


16

L'intero spazio statale per gli scacchi è enorme - può essere approssimativamente stimato in 10 43 (numero di Shannon (Shannon, 1950) , ( Wikipedia )).

L'idea che presenti - agenti di Reinforcement Learning che giocano l'uno con l'altro per imparare il gioco - è stata applicata con successo a Backgammon - TD-Gammon (Tesauro, 1995) , ( Capitolo in Reinforcement Learning di Sutton & Barto ). Ha anche usato le reti neurali per stimare la funzione del valore del gioco. Questo problema è tuttavia molto più semplice, poiché il numero di stati nel Backgammon è significativamente più piccolo rispetto agli scacchi, vale a dire: 18.528.584.051.601.162.496 ( thread del Backgammon Forum Archive ).

Se, tuttavia, finissi il gioco dopo poche mosse iniziali e mirassi solo a imparare "buone aperture", potresti riuscire con un approccio analogo. Il problema principale sarebbe valutare il gioco dopo l'apertura, il che sembra difficile. Solo una misura di somiglianza con le posizioni stabilite dopo aperture ben note non è sufficiente, perché la posizione può essere lontana da loro se l'avversario farebbe una mossa stupida (quindi non sarebbe a causa dell'errore dell'apprendimento dell'apprendimento, quindi la posizione anche se "errata "dovrebbe essere valutato come un buon risultato).

Riferimenti:


1
La parte più difficile in effetti è trovare un modo empirico per segnare il risultato delle aperture. Aperture diverse vanno bene in modi diversi, quindi c'è probabilmente una moltitudine di aperture accettabili.
JDong,

3

Sono abbastanza sicuro che ogni possibile (o strano) metodo di AI o ML nei libri di testo sia stato provato e praticamente fallito rispetto alla semplice forza bruta.

La mia prospettiva personale è che gli scacchi di per sé non interessano più l'IA moderna ... Semplicemente perché risolti : usando semplicemente un computer moderno e una forza bruta. Quindi, non sento la necessità di creare un sistema "intelligente" per risolverlo in modo più efficiente (funziona bene sul mio cellulare), e credo che non ci sia nemmeno la necessità di alcuni sconosciuti e altro approccio "intelligente" per esistere.


1
Non sono sicuro del motivo per cui questo è stato sottoposto a downgrade. L'argomento secondo cui gli scacchi vengono "risolti" è un po 'impreciso, in quanto nessun computer può guardare qualsiasi posizione possibile e valutarlo perfettamente. Detto questo, iliasfl è consapevole del fatto che gli scacchi hanno perso gran parte del loro fascino per la ricerca sull'IA. Per prima cosa, i migliori programmi di scacchi per computer sono ora molto più forti dei migliori umani, data la potenza e il tempo di elaborazione sufficienti. Ciò rende sempre più difficile per i programmatori anche valutare il funzionamento di un algoritmo.
elixenide,

1
Grazie, ho detto risolto nel senso che la forza bruta è una soluzione. Naturalmente la comunità AI (in generale non solo qui) non è contenta di quella "soluzione". Tuttavia, abbiamo già un sistema computazionale che presenta un comportamento "intelligente" per risolvere questo compito e persino vincere i migliori umani, punto. Personalmente, credo che gli scacchi saranno fuori tema per l'IA dopo alcuni anni in cui l'attuale massa di accademici che ha trascorso la carriera ad attaccarlo si ritira.

Non definirei le attuali implementazioni di scacchi per computer come "risolte dalla forza bruta" - stanno ancora cercando enormi quantità di gamestates, ma ci sono molti componenti della forza non bruta lì. Certo, non sono una soluzione "di tipo umano" che si generalizzerebbe bene ad altri problemi, ma non sarei sorpreso che se avessimo un'intelligenza artificiale di scacchi di "stile umano", sarebbero più ordini di grandezza in meno efficiente rispetto alle attuali soluzioni specializzate, rendendolo semplicemente inferiore.
Peteris,

Penso che questa risposta e i suoi commenti siano stati chiaramente smentiti da AlphaZero di Google: en.wikipedia.org/wiki/AlphaZero Anche se accetti le critiche sull'installazione di Stoccafisso e hanno disegnato tutte le partite, un sistema che è arrivato a quel livello con poche ore di allenamento è chiaramente superiore.
Kamal,

2

Penso che valga la pena notare che per determinare come affrontare un problema di IA è necessario definirlo. Se è completamente osservabile o parzialmente osservabile e se è deterministico o stocastico / probabilità.

Gli scacchi sono completamente osservabili (a differenza del Backgammon, del Monopoli o del Poker per esempio) È anche deterministico (come Dama e Vai per esempio) Infine, esistono degli avversari e per questo, quando si determina la mossa migliore successiva, è utile usare il tipo di Ricerca avversaria di algoritmi come MiniMax. La classificazione di un problema può aiutarci a determinare quale tipo di algoritmo di ricerca vorremmo applicare. E in caso di scacchi, la ricerca contraddittoria sarebbe adatta.

Minimax in particolare ha a

O(Bn)

O(Bm)

Quindi, in caso di scacchi, b sarebbe 35 e m sarebbe 100 Ci sono modi per aggirarlo o strategie per renderlo più efficiente, come il taglio alfa-beta.


Vale anche la pena notare in questo contesto che i giochi di scacchi per un numero massimo di pezzi sono già tabulati, un'ulteriore ottimizzazione.
BartoszKP,

Questo è l'approccio normale ma non quello dell'apprendimento automatico. La domanda utilizza il tag di apprendimento automatico.
Lyndon White,

@Oxinabox anche se era vero, il richiedente non ha menzionato dove fosse interessato al titolo o al corpo l'approccio all'apprendimento automatico, solo alla fine in cui condivideva un esempio di un approccio che aveva in mente. Non è necessario limitare il problema all'apprendimento automatico né a un singolo algoritmo di apprendimento (NN).
Iancovici,

Anzi, va bene
Lyndon White l'

per essere precisi, gli scacchi non sono completamente osservabili, dato che data una posizione che non conosciamo, per esempio, un re o una torre sono già mossi o no, sebbene sia importante per la generazione di mosse (è ancora possibile il castling?), ma un programmatore può renderlo completamente osservabile modificando la rappresentazione della posizione differenziando re / torre non mossi e spostando re / torre come figure diverse, sebbene aggiunga alcune difficoltà.
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.