Di quali conoscenze ho bisogno per scrivere un semplice programma AI per giocare?


8

Sono laureato B.Sc. Uno dei miei corsi è stato "Introduzione all'apprendimento automatico" e ho sempre voluto realizzare un progetto personale in questa materia.

Di recente ho sentito parlare di diversi allenamenti di intelligenza artificiale per giocare a giochi come Mario, Go, ecc.

Quali conoscenze devo acquisire per allenare un semplice programma AI per giocare? E quale gioco mi consigliate per un principiante?

Questo è quello che so finora in Machine Learning -

  • Introduzione al corso e all'apprendimento automatico. Algoritmo K-più vicino prossimo e algoritmo K-significa
  • Inferenza statistica
  • Gaussian Mixture Model (GMM) e Expectation Maximization (EM)
  • Modello probabilmente approssimativamente corretto (PAC), compresi i limiti di generalizzazione e la selezione del modello
  • Algoritmi hyperplane di base: Perceptron e Winnow.
  • Support Vector Machines (SVM)
  • Noccioli
  • Promuovere gli studenti deboli verso quelli forti: AdaBoost
  • Margin-Perceptron
  • Regressione
  • PCA
  • Alberi decisionali
  • Potatura degli alberi decisionali e foreste casuali

Risposte:


8

Esistono diversi modi per affrontare la risoluzione dei problemi di gioco. Ad esempio, alcuni giochi possono essere risolti con algoritmi di ricerca. Funziona bene con i giochi di carte e da tavolo fino a un certo livello di complessità. Ad esempio, il Deep Blue di IBM era essenzialmente una ricerca euristica rapida per spostamenti ottimali.

Tuttavia, probabilmente l'algoritmo di apprendimento automatico più generico per addestrare un agente a svolgere un'attività in modo ottimale è l' apprendimento di rinforzo . Tecnicamente non è un algoritmo, ma una famiglia allargata di algoritmi correlati che risolvono tutti una specifica formalizzazione del problema di apprendimento.

Informalmente, Reinforcement Learning (RL) riguarda la ricerca di soluzioni ottimali ai problemi definiti in termini di un agente che può osservare lo stato di un ambiente , intraprendere azioni in quell'ambiente e sperimentare ricompense che sono in qualche modo legate allo stato e all'azione. I solutori di RL devono essere progettati per far fronte a situazioni in cui le ricompense vengono ricevute più tardi rispetto a quando sono state intraprese azioni importanti, e questo è di solito raggiunto dall'algoritmo che apprende un'aspettativa interna di ricompense successive associate a coppie di stato e / o stato-azione.

Ecco alcune risorse per studiare l'apprendimento per rinforzo:

Scoprirai che il soggetto in sé è piuttosto grande poiché sono necessarie variazioni sempre più sofisticate degli algoritmi man mano che il problema da risolvere diventa più difficile.

L'avvio di giochi per studiare l'apprendimento per rinforzo potrebbe includere:

  • Tik-tac-toe (alias Noughts and crosses) - questo può essere risolto facilmente usando la ricerca, ma risolve un semplice problema del giocattolo usando le tecniche di base RL.

  • Labirinti - nella letteratura sull'apprendimento per rinforzo, ci sono molti esempi di giochi "grid world" in cui un agente si muove in singole fasi N, E, S, W su una piccola scacchiera che può essere popolata con pericoli e obiettivi.

  • Blackjack (aka 21)

Se vuoi lavorare con agenti per giocare ai videogiochi, vorrai anche conoscere le reti neurali e probabilmente in qualche dettaglio: per elaborare la grafica dello schermo avrai bisogno di reti neurali profonde e convoluzionali.

Una risorsa relativamente nuova per RL è OpenAI Universe . Hanno lavorato molto per impacchettare ambienti pronti a formare agenti, il che significa che puoi concentrarti sullo studio degli algoritmi di apprendimento, anziché sullo sforzo di creare l'ambiente.


Per quanto riguarda il tuo elenco di competenze attuali: nessuna di esse è direttamente pertinente all'apprendimento per rinforzo. Però:

  • Se riesci a capire la matematica e la teoria del tuo corso precedente, dovresti anche essere in grado di comprendere la teoria dell'apprendimento per rinforzo.

  • Se hai studiato tecniche di apprendimento supervisionato online o in batch, queste possono essere utilizzate come componenti all'interno di un framework RL. In genere possono essere utilizzati per approssimare una funzione di valore dello stato del gioco, in base al feedback di successi e insuccessi finora.


7

Dipende fortemente dal tipo di gioco e dalle informazioni sullo stato del gioco disponibili per la tua IA.

Alcuni dei giochi di ISI più famosi degli ultimi anni si basano sull'apprendimento approfondito del rinforzo (ad es. Giocare Atari con l'apprendimento approfondito del rinforzo ), che è un normale apprendimento di rinforzo (ad es. Q-learning) con una profonda rete neurale come approssimazione della funzione del valore della ricompensa. Questi approcci ricevono i pixel grezzi del gioco più i punti del giocatore e generano le azioni di un game pad, proprio come un essere umano. Per fare qualcosa del genere, devi padroneggiare l'apprendimento per rinforzo (vedi il libro fondamentale di Sutton e Barto ) e l'apprendimento profondo (vedi Ian Goodfellow et al. Libro ), e poi come fonderli nell'apprendimento per rinforzo profondo (cerca "rinforzo apprendimento "in qualsiasi elenco curato di articoli di deep learning come questo).

Tuttavia, se le informazioni sul gioco disponibili per la tua IA sono più strutturate di così (ad es. Posizione del giocatore, descrizione dell'ambiente), puoi fare bene con approcci più classici in cui decomponi il gioco in problemi trattabili e risolvi ognuno algoritmicamente, ad es. cercando con A * .


3

Quello che stai cercando si chiama Reinforcement Learning . Nella mia università, c'è un corso completo ( ) solo per presentare agli studenti questo argomento. Ecco i miei appunti (principalmente tedeschi) sulla pianificazione probabilistica . Direi che questo è definitivamente un argomento avanzato per l'apprendimento automatico.153h=45h

Topcis per saperne di più

  • Markov Decision Processes (MDPs)
    • Iterazione di criteri e valori
    • Progetto: Rock-Paper-Scissors / Tic-Tac-Toe
  • Processi decisionali di Markov parzialmente reversibili
    • Progetto: Black Jack
  • Apprendimento per rinforzo
    • Q-Learning
    • SARSA

Altri giochi semplici

Altre risorse

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.