Buone implementazioni di apprendimento per rinforzo?
Domanda
Per un progetto ai-class ho bisogno di implementare un algoritmo di apprendimento di rinforzo che batte un semplice gioco di tetris. Il gioco è scritto in Java e abbiamo il codice sorgente. So che le basi della teoria dell'apprendimento rinforzo ma chiedevo se qualcuno nella comunità SO aveva le mani su esperienza con questo tipo di cose.
- Quali sarebbero le vostre letture consigliate essere per l'implementazione di apprendimento rinforzato in un gioco di tetris?
- Ci sono buoni progetti open source che realizzare cose simili che sarebbe la pena di verificare?
Modifica:. Più specifico il meglio, ma le risorse generali su questo argomento vengono accolti
Follow-up:
pensato che sarebbe stato bello se ho postato un follow-up.
Ecco la soluzione (codice e rivalutazioni) ho finito con eventuali futuri studenti:)
.Soluzione
Date un'occhiata ai 2009 RL-concorso . Uno dei domini problema è un tetris gioco . C'è stato un problema tetris l'anno prima di troppo. Ecco di 52 pagine il relazione finale dal quinto posto finalista di quell'anno, che va in un sacco di dettagli su come l'agente ha funzionato.
Altri suggerimenti
Ecco un buon libro sul tema:
Machine Learning e Data Mining: Introduzione ai principi e algoritmi
di Igor Kononenko, Matjaz Kukar (giugno 2007)
Anche prendere un'occhiata a questi progetti open source:
TD-Gammon , gnubackgammon, o qualsiasi altro progetto simile erano enormi successi nei giochi.
libro Sutton & Barto di "apprendimento per rinforzo: An Introduction" ha anche qualche altro Case Studies .
Questo non è specifico per l'apprendimento rinforzato, ma Stanford ha una grande serie di conferenze sulla su Youtube e iTunes.
Il link è alla prima conferenza, che dura circa 30 minuti di tuffarsi nel contenuto.
della tela da è una libreria recente Java che fornisce implementazioni di molti algoritmi di apprendimento di rinforzo comune, nonché un alcuni ambienti e strumenti utili.
Questa domanda è molto vecchio, ma per chiunque la lettura di questo nel 2018, consiglio vivamente di utilizzare OpenAI linee di base, se siete interessati a riferimenti solidi algoritmi di RL esistenti. Questi algoritmi sono implementati da un gruppo di dipendenti a OpenAI che sanno davvero questa roba, e sono stati ampiamente messo a punto e il debug.
Per essere onesti, non è necessario questi per Tetris, ma oggi ho il sospetto domande dei compiti a casa può coinvolgere alcuni ambienti più sofisticati.
Vorrei suggerire di imparare RL4J che è basato su Java. Stavo usando questo e mi ha stupito come funziona le cose senza intoppi e si può imparare anche le reti LSTM in un rinforzo algoritmo di apprendimento con l'algoritmo Attore Critico (denominata A3C)
Ecco il link: https://github.com/deeplearning4j/dl4j-examples/blob / master / rl4j-examples /
Ho notato che questa domanda è abbastanza obsoleto (10 anni) e che una collezione di quadri moderni RL e ambienti potrebbe essere utile qui. Ho creato GitHub repo per questo e intendo aggiornarlo regolarmente.