• Edizioni di altri A.A.:
  • 2025/2026
  • 2026/2027
  • 2027/2028
  • 2028/2029

  • Lingua Insegnamento:
    Italiano 
  • Testi di riferimento:
    R. S. Sutton, A. G. Barto, Reinforcement Learning: An Introduction, MIT Press, 2018.
    Il materiale di riferimento principale è costituito da dispense, slide, esempi guidati, notebook e codice resi disponibili o indicati dal docente durante il corso.
    Saranno inoltre utilizzate la documentazione ufficiale di Python, NumPy, Gymnasium, PyTorch e Stable-Baselines3 e, ove opportuno, risorse tecniche relative agli ambienti e agli algoritmi impiegati nelle attività pratiche.
    Lo studio integrale del testo non è richiesto; i capitoli e i materiali effettivamente oggetto di studio saranno indicati dal docente.
     
  • Obiettivi formativi:
    Il corso è volto a fornire conoscenze e competenze fondamentali sull'apprendimento per rinforzo, con particolare attenzione alla comprensione dei principali algoritmi, alla loro implementazione e alla valutazione sperimentale degli agenti.
    In particolare, tale obiettivo è correlato ai seguenti risultati di apprendimento.
    Conoscenza e comprensione - L'insegnamento intende fornire conoscenze riferite ai concetti fondamentali e al linguaggio dell'apprendimento per rinforzo. Lo studente dovrà comprendere il modello agente-ambiente, i processi decisionali di Markov, le politiche, i ritorni, le funzioni di valore e le equazioni di Bellman; il ruolo dell'esplorazione; le differenze tra metodi Monte Carlo, temporal-difference, on-policy e off-policy; i principi di Q-learning, SARSA, Deep Q-Network, policy gradient, actor-critic e PPO.
    Capacità di applicare conoscenza e comprensione - L'insegnamento intende sviluppare la capacità di tradurre un semplice problema decisionale sequenziale in un ambiente di reinforcement learning e di applicare algoritmi appropriati. Lo studente dovrà essere in grado di implementare metodi tabulari, utilizzare librerie per il deep reinforcement learning, addestrare un agente, analizzarne le curve di apprendimento, confrontarlo con semplici baseline e interpretarne criticamente i risultati.
    Autonomia di giudizio - Il corso intende sviluppare la capacità di scegliere in modo motivato la rappresentazione dello stato, lo spazio delle azioni, la funzione di ricompensa, l'algoritmo e le metriche di valutazione. Lo studente dovrà inoltre riconoscere fenomeni di instabilità, scarsa esplorazione, overfitting alla simulazione e risultati non riproducibili.
    Abilità comunicative - Lo studente dovrà acquisire la capacità di descrivere con linguaggio appropriato un problema di reinforcement learning, motivare le scelte algoritmiche e presentare in modo chiaro codice, esperimenti, risultati e limiti della soluzione proposta.
    Capacità di apprendimento - Il corso intende fornire le basi per approfondire autonomamente algoritmi e applicazioni più avanzate, attraverso la consultazione di testi, articoli scientifici, documentazione software e implementazioni disponibili.
     
  • Prerequisiti:
    Sono richieste conoscenze di base di programmazione e la capacità di leggere, modificare ed eseguire script, preferibilmente in Python.
    Sono inoltre utili conoscenze elementari di algebra lineare, probabilità, statistica e calcolo differenziale.
    La familiarità con i concetti di base del machine learning e delle reti neurali è utile, ma non indispensabile. I richiami necessari saranno introdotti durante il corso prima di affrontare gli algoritmi di deep reinforcement learning.
     
  • Metodi didattici:
    Lezioni frontali.
    Esercitazioni di programmazione e attività di laboratorio.
    Sviluppo guidato di algoritmi e notebook in Python.
    Presentazione e discussione di esperimenti svolti con ambienti Gymnasium e librerie per il reinforcement learning.
    Realizzazione di un progetto applicativo individuale o di gruppo.
     
  • Modalità di verifica dell'apprendimento:
    Conoscenza e comprensione - L'efficacia formativa dell'insegnamento è verificata attraverso la realizzazione di un progetto applicativo e un colloquio orale individuale.
    Il progetto, sviluppato individualmente o in gruppo secondo le indicazioni fornite dal docente, consiste nell'applicazione di uno o più algoritmi di reinforcement learning a un ambiente standard o a un semplice ambiente definito dagli studenti. Il lavoro comprende la formulazione del problema, la definizione di stato, azioni e ricompensa, l'implementazione o l'adattamento del codice, l'addestramento dell'agente, la valutazione sperimentale e la presentazione dei risultati.
    Il colloquio orale individuale riguarda i contenuti del programma e il progetto svolto. Esso è volto ad accertare la comprensione dei concetti teorici, degli algoritmi utilizzati e delle scelte effettuate nell'implementazione e nella valutazione.
    Capacità di applicare conoscenza e comprensione - Durante la discussione del progetto il docente verifica la capacità dello studente di costruire o utilizzare un ambiente, implementare o configurare un algoritmo, interpretare le curve di apprendimento, confrontare i risultati con una baseline, riconoscere limiti e instabilità e motivare le scelte effettuate.
    La valutazione dell'esame è espressa in trentesimi e tiene conto della correttezza del codice e della metodologia sperimentale, della comprensione degli algoritmi, della qualità dell'analisi dei risultati, della chiarezza espositiva e del contributo individuale dello studente.

    Gli studenti e le studentesse con disabilità, DSA o altri bisogni educativi speciali possono usufruire di un trattamento individualizzato in sede di esame, nel rispetto della normativa e di quanto previsto nella Carta dei Servizi di Ateneo (https://www.unich.it/sites/default/files/2024-02/carta_dei_servizi_0.pdf), previa intesa con il docente della materia. Per richiedere le misure compensative e dispensative è necessario afferire al Servizio CON_TE_STO seguendo la procedura indicata nella Carta dei Servizi.

    Si invitano gli studenti e le studentesse a prendere contatti con la/il docente durante lo svolgimento delle lezioni, o comunque con largo anticipo rispetto alla data dell’appello, per conoscere le modalità di esame e le misure che sono accettate.

    Per essere orientati e indirizzati ai diversi servizi offerti dall’Ateneo è possibile contattare il Docente Referente del Dipartimento, Prof. Domenico Raucci.. 
  • Obiettivi Agenda 2030 per lo sviluppo sostenibile:
    Questo insegnamento concorre alla realizzazione degli obiettivi ONU dell’Agenda 2030 per lo Sviluppo Sostenibile, con particolare riferimento agli obiettivi 4, 5, 9 e 12: istruzione di qualità; uguaglianza di genere; industria, innovazione e infrastrutture; consumo e produzione responsabili.

    In particolare, il corso contribuisce alla formazione di competenze scientifiche e computazionali utili per comprendere, sviluppare e valutare sistemi intelligenti destinati a problemi decisionali sequenziali. L’insegnamento promuove pari opportunità di accesso e partecipazione alla formazione nell’ambito dell’intelligenza artificiale e delle competenze digitali. Particolare attenzione potrà essere dedicata, ove pertinente rispetto agli argomenti del corso, all’efficienza computazionale, alla valutazione critica dei risultati, alla riproducibilità degli esperimenti e all’uso consapevole delle risorse e dei modelli. 
  • Altre Informazioni:
    E-mail: maurizio.parton@unich.it.
    WhatsApp o Telegram: 349-5323-199.
     

Il corso di Reinforcement Learning in Artificial Intelligence introduce i fondamenti teorici e computazionali dell'apprendimento per rinforzo attraverso un percorso progressivo e orientato alla programmazione.
In particolare, vengono presi in esame: l'interazione tra agente e ambiente; i processi decisionali di Markov; politiche, ricompense, ritorni e funzioni di valore; le equazioni di Bellman; il problema dell'esplorazione e dello sfruttamento; i metodi di programmazione dinamica; i metodi Monte Carlo e temporal-difference; SARSA e Q-learning; l'approssimazione delle funzioni di valore; Deep Q-Network; i metodi policy gradient, actor-critic e Proximal Policy Optimization.
Le lezioni sono affiancate da attività pratiche in Python. Gli studenti implementano algoritmi di base e utilizzano ambienti e librerie moderne, tra cui NumPy, Gymnasium, PyTorch e Stable-Baselines3, per addestrare e valutare agenti in semplici problemi decisionali sequenziali.
Particolare attenzione è dedicata alla progettazione dello stato, delle azioni e della funzione di ricompensa, alla valutazione sperimentale degli agenti, alla riproducibilità dei risultati e ai principali problemi di stabilità e affidabilità dell'apprendimento per rinforzo.

Introduzione al reinforcement learning
- apprendimento supervisionato, non supervisionato e per rinforzo;
- agente, ambiente, stato, azione e ricompensa;
- episodi, ritorno e fattore di sconto;
- politiche deterministiche e stocastiche;
- esplorazione e sfruttamento;
- primi ambienti e agenti in Python.
Processi decisionali di Markov e programmazione dinamica
- proprietà di Markov e processi decisionali di Markov;
- funzioni valore di stato e valore di azione;
- equazioni di Bellman;
- policy evaluation e policy improvement;
- value iteration e policy iteration;
- implementazione su piccoli ambienti discreti.
Multi-armed bandit e apprendimento tabulare
- problemi multi-armed bandit;
- strategie greedy ed epsilon-greedy;
- metodi Monte Carlo;
- temporal-difference learning;
- SARSA e Q-learning;
- metodi on-policy e off-policy;
- confronto sperimentale tra algoritmi e strategie di esplorazione.
Deep Q-learning
- limiti delle rappresentazioni tabulari;
- approssimazione delle funzioni di valore;
- reti neurali come approssimatori;
- Deep Q-Network;
- experience replay e target network;
- stabilità dell'addestramento e principali iperparametri;
- implementazione guidata con PyTorch e utilizzo di librerie esistenti.
Policy gradient e actor-critic
- politiche parametrizzate;
- principio dei metodi policy gradient;
- struttura actor-critic;
- funzione vantaggio;
- introduzione a Proximal Policy Optimization;
- addestramento di agenti PPO mediante Stable-Baselines3;
- confronto tra metodi basati sul valore e metodi basati sulla politica.
Progettazione e valutazione degli esperimenti
- definizione dello stato, delle azioni e della ricompensa;
- reward design e comportamenti inattesi;
- scelta dell'algoritmo e degli iperparametri;
- curve di apprendimento e ricompensa media;
- confronto con baseline;
- uso di più random seed;
- riproducibilità e interpretazione dei risultati;
- modifica o costruzione di semplici ambienti Gymnasium.
Progetto applicativo
- definizione di un problema decisionale sequenziale;
- scelta o realizzazione dell'ambiente;
- implementazione o configurazione dell'agente;
- addestramento e valutazione;
- confronto tra metodi o configurazioni;
- produzione di grafici, codice documentato e breve relazione;
- discussione critica dei risultati e dei limiti.
Cenni a sviluppi recenti
- reinforcement learning offline;
- sistemi multi-agente;
- imitation learning;
- reinforcement learning from human feedback;
- principali applicazioni nei giochi, nel controllo, nella robotica e nell'allocazione di risorse.

Avvisi

Nessun elemento in evidenza

Eventi

Nessun elemento in evidenza

Documenti

Nessun documento in evidenza

Scopri cosa vuol dire essere dell'Ud'A

SEDE DI CHIETI
Via dei Vestini,31
Centralino 0871.3551

SEDE DI PESCARA
Viale Pindaro,42
Centralino 085.45371

email: info@unich.it
PEC: ateneo@pec.unich.it
Partita IVA 01335970693

icona Facebook   icona Twitter

icona Youtube   icona Instagram