/Tutorial-Reinforcement-Learning-ITA-Python

In questa repository una collezione di tutorial sulle basi del Reinforcement Learning, sviluppati in Python, interamente in italiano.

Primary LanguageJupyter Notebook

Reinforcement-Learning-ITA-Python

In questa repository un corso in italiano sulle basi del Reinforcement Learning, sviluppato in Python, attraverso la piattaforma di Google Colab ( o "Colaboratory")

Tutti i contenuti sono rilasciati sotto licenza "MIT License". Vedi: https://choosealicense.com/licenses/

In caso di pubblicazioni o distribuzioni, si richiede solo che l'autore (Mario Fiorino) sia citato nelle note bibliografiche.

Contenuti:

Introduzione "sul campo" al Reinforcement Learning

In questo notebook troverete un'introduzione al reinforcement learning "pratica"; cioè che si concentra sulla comprensione e sull'applicazione pratica degli algoritmi di reinforcement learning tramite un esempio molto semplice ed accessibile a tutti coloro che si avvicinano per la prima volta a tale disciplina.

File : Intro_sul_campo_RL_ita.ipynb

Nel notebook sottostante è descritto lo sviluppo di un agente che impara a giocare e vincere a Tris (Tic-Tac-Toe Game) tramite un algoritmo di Q-learning.

File : Tris_game_RL_ITA.ipynb

Introduzione a OpenAI Gym

In questo notebook trovere un introduzione all'uso della libreria OpenAI Gym

File : Introduzione_OpenAI_Gym_ITA.ipynb

Reinforcement Learning - Fondamenti teorici

In questo notebook vengono presentate le basi teoriche del Reinforcement Learning, che affondano nella Programmazione Dinamica e nella Teoria del controllo ottimale. Sono inoltre presenti esempi applicativi

File : Programmazione_Dinamica_ITA.ipynb

Metodi Monte Carlo

In questa sezione sono presentati una serie di notebook che trattano i metodi Monte Carlo.

Parte 1 : Introduzione, Monte Carlo with Exploring Starts, On-policy first-visit Monte Carlo control

File : Metodi_Monte_Carlo_RL_ITA

Parte 2 : Incremental v.s Non-incremental, Importance sampling, Off-Policy Monte Carlo Control.

File : Off_policy_Monte_Carlo_ITA

Temporal Difference Learning (TD Learning)

Il presente notebook offre un'introduzione al Temporal Difference Learning (TD Learning), in particolare sono trattati i seguenti argomenti: TD Prediction, Batch updating, one-step SARSA:On-policy TD Control, one-step Q-learning: Off-policy TD Control, Maximization Bias e Double Q-learning, n-step (o multi step) TD methods, n-step SARSA.

File : Temporal difference ITA.ipynb

Dyna

In questo notebook viene presentata un'introduzione ai metodi Dyna. Tali algoritmi cercano di migliorare l'efficienza dell'apprendimento del RL integrando tecniche di pianificazione (planning).

File : Dyna ITA.ipynb

Introduzione al Deep Learning

In questo notebook verrà fornita un'introduzione alle reti neurali, illustrandone la matematica di base del loro funzionamento.

File : Introduzione_al_Deep_Learning.ipynb

Nel notebook sottostante sarrà fornita un'introduzione, nei suoi aspetti basilari, ad una delle librerie di Machine Learning più usate: TensorFlow version 2 (sviluppata da Google).

File : Introduzione_TensorFlow_v2_parte1_ITA.ipynb

Nei notebook sottostanti verrà illustrato l'utilizzo di TensorFlow v2 per la costruzione e l'addestramento di reti neurali; successivamente la stessa rete sarà implementata con la libreria Keras.

File : Introduzione_TensorFlow_v2_parte2_ITA.ipynb

File : Introduzione_Keras_ITA.ipynb

Nel notebook successivo un'introduzione a PyTorch.

File : Introduzione_PyTorch_ITA.ipynb

Value Function Approximation

In questo notebook vedremo l'impiego di tecniche di approssimazione di funzioni per stimare la funzione-valore degli stati. In particolare, svilupperemo l'algorimo Semi-Gradient one step SARSA, con modellizzazione lineare, nel contesto Mountain Car (gymlibrary). Inoltre, daremo una prima occhiata alla tecnica di apprendimento per imitazione (Imitation Learning): come, osservando la strategia di un esperto, possiamo migliorare i risultati dell'apprendimento.

File : Value_Function_Approximation_parte1_RL_ITA

Nel notebook successivo un'implementazione dell'algoritmo Deep Q Networks, contesto MsPacman(Atari), con Convolutional neural network(CNN).

File : Value_Function_Approximation_parte2_RL_ITA

Nel notebook successivo, viene fornito un compendio sulle tecniche di Value Function Approximation, che si conclude con i suggerimenti di Sutton riguardo alla "Deadly Triad". Inoltre, viene mostrata la risoluzione del problema Cartpole (Gym) utilizzando prima un algoritmo DQN, poi Gradient Monte Carlo target control e infine un DQN con supporto imitation mode.

File : Value_Function_Approximation_Compendio

Policy Gradient

Nel notebook sottostante sono presentati i metodi policy-based, in particolare i metodi policy gradient. Troverete implementato un algoritmo Monte Carlo Policy Gradient nel contesto CartPole(Gym).

File : Policy_Gradient_ITA

Nel prossimo notebook troverete un'introduzione agli algoritmi Actor-Critic, una loro implementazione per la risoluzione dell'ambiente Pendulum(Gym); e un primo accenno alla tecnica di Entropy regularization.

File : Actor_Critic_ITA