CODICE 98216 ANNO ACCADEMICO 2023/2024 CFU 5 cfu anno 2 INGEGNERIA ELETTRONICA 8732 (LM-29) - GENOVA 5 cfu anno 2 ENGINEERING TECHNOLOGY FOR STRATEGY (AND SECURITY) 10728 (LM/DS) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE L’insegnamento presenta il tema della realizzazione di agenti autonomi, in grado di muoversi e interagire con un ambiente incognito al fine di raggiungere un determinato obiettivo, utilizzando algoritmi di apprendimento con rinforzo (Reinforcement Learning). OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Il corso fornisce metodologie e strumenti per lo sviluppo di sistemi software, secondo criteri di elevata efficienza e produttività. Viene offerta una panoramica generale sui sistemi multimediali e sulla modalità di interazione con gli utenti. Sono anche offerti elementi di programmazione di videogiochi e simulazione. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO La frequenza e la partecipazione attiva alle attività formative proposte (lezioni frontali e laboratori tecnico-pratici) e lo studio individuale consentiranno di: acquisire una terminologia corretta per descrivere adeguatamente il comportamento di un agente autonomo conoscere in modo approfondito i principali algoritmi di Reinforcement Learning ed essere in grado di analizzare criticamente le loro differenze essere in grado di valutare quantitativamente le prestazioni di un agente autonomo in un dato problema saper formulare un problema reale in termini di agenti autonomi saper applicare gli algoritmi a problemi reali in linguaggio Python PREREQUISITI Sono necessarie per affrontare efficacemente i contenuti dell’insegnamento le seguenti conoscenze di base: programmazione con un linguaggio di programmazione di alto livello, meglio se Python (al fine di capire e implementare gli algoritmi considerati) e i principali algoritmi di machine learning supervisionato (per poter comprendere gli algoritmi basati su approssimatori di funzione). MODALITA' DIDATTICHE L’insegnamento si compone di lezioni frontali e di una parte di laboratorio tecnico-pratico. Durante le lezioni frontale, il docente presenta gli argomenti fornendo esempi di codice che vengono provati sfruttando gli ambienti OpenAI Gym. Gli studenti e le studentesse possono utilizzare i propri calcolatori durante la lezione per mettere in pratica quanto proposto dal docente. Durante i laboratori tecnico-pratici, il docente titolare dell’insegnamento, coadiuvato da tutor di laboratorio, chiederà di utilizzare il calcolatore per risolvere problemi reali applicando gli algoritmi visti durante le lezioni frontali. PROGRAMMA/CONTENUTO Il seguente elenco riporta i contenuti affrontati a lezione. Le slide e i notebook con le note utilizzate durante le lezioni possono essere scaricati qui: https://github.com/riccardoberta/autonomous-agents Introduzione agli agenti autonomi e al Reinforcement Learning Markov Decision Processes (MDPs) Dynamic Programming Metodi Monte Carlo Temporal Difference (TD) learning Q-learning e SARSA Function approximation Policy gradient methods Exploration and exploitation Deep Reinforcement Learning Le Nazioni Unite hanno stilato un elenco di 17 obiettivi nell'ambito dell'agenda 2030 per lo sviluppo sostenibile, che spaziano dalla fine della povertà e della fame nel mondo al miglioramento della salute e dell'istruzione, fino alla riduzione delle disuguaglianze e delle ingiustizie. Ci sono alcune sfide che lo sviluppo di agenti autonomi deve affrontare per poter essere realmente impiegato per il bene sociale, come il problema di apprendimento con dati limitati, gli squilibri geografici, i dati parziali e l'apprendimento con memoria e potenza di calcolo limitati. L’insegnamento adotterà una prospettiva di progettazione responsabile, al fine di fornire allo studente la capacità di sviluppare sistemi socialmente intelligenti. In particolare, lo studente imparerà come i modelli possono essere progettati senza pregiudizi (10. Riduzione delle disuguaglianze), come possono diventare spiegabili (16. Pace, giustizia e istituzioni forti) e come mitigare i rischi etici posti dai comportamenti autonomi (16. Pace, giustizia e istituzioni forti). Inoltre, nel presentare esempi di implementazione, si utilizzeranno scenari volti a favorire un uso sostenibile delle risorse naturali (13. Azione per il clima, 15. Vita sulla terraferma, 14. Vita sotto l'acqua), al miglioramento della vita nelle città (11. Città e comunità sostenibili, 3. Buona salute e benessere) e nelle industrie (9. Industria, innovazione e infrastrutture) Alla termine dell’insegnamento, lo studente saprà quali insidie possono rende irresponsabili i comportamenti degli agenti autonomi e come progettare modelli responsabili, che aiutino le persone e non le danneggino, pur essendo utili e accurati. TESTI/BIBLIOGRAFIA Tutte le slides e il codice sorgente utilizzate durante le lezioni e altro materiale didattico saranno disponibili su aul@web. In generale, gli appunti presi durante le lezioni e il materiale su aul@web sono sufficienti per la preparazione dell'esame. I libri sotto indicati sono suggeriti come testi di appoggio, ma gli studenti possono comunque utilizzare anche altri testi recenti sul Reinforcement Learning di livello universitario. Miguel Morales, Grokking Deep Reinforcement Learning, Manning Richard S. Sutton, Andrew G. Barto, Reinforcement Learning: an Introduction, MIT Press Questi libri possono fornire ulteriori approfondimenti e risorse per uno studio più approfondito sull'argomento del Reinforcement Learning. DOCENTI E COMMISSIONI RICCARDO BERTA Ricevimento: Il docente riceve su appuntamento, per prendere appuntamento è possibile contattare il docente tramite Microsoft Teams (preferibilmente) o tramite email a riccardo.berta@unige.it Commissione d'esame RICCARDO BERTA (Presidente) ALESSANDRO DE GLORIA FRANCESCO BELLOTTI (Presidente Supplente) LEZIONI INIZIO LEZIONI https://corsi.unige.it/8732/p/studenti-orario Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame consiste in una prova scritta sugli argomenti teorici e pratici presentati a lezione. In particolare, lo studente deve dimostrare di aver compreso appieno il funzionamento degli algoritmi alla base dello sviluppo di agenti autonomi e di saperli implementare in linguaggio Python. L'esame valuterà la comprensione degli studenti dei concetti, la loro capacità di applicare gli algoritmi e le loro competenze pratiche di implementazione. MODALITA' DI ACCERTAMENTO I dettagli sulle modalità di preparazione per l’esame e sul grado di approfondimento di ogni argomento verranno dati nel corso delle lezioni. L’esame scritto verificherà l’effettiva acquisizione delle conoscenze di base sugli algoritmi di Reinforcement Learning e la loro applicazione per la realizzazione di agenti autonomi. I problemi presentati e le domande aperte permetteranno di valutare la capacità di applicare le conoscenze in situazioni pratiche che possono verificarsi nella realtà. Calendario appelli Data appello Orario Luogo Tipologia Note 15/01/2024 09:30 GENOVA Scritto 12/02/2024 09:30 GENOVA Scritto 17/06/2024 09:30 GENOVA Scritto 22/07/2024 09:30 GENOVA Scritto 09/09/2024 09:30 GENOVA Scritto Agenda 2030 Ridurre le disuguaglianze Consumo e produzione responsabili Lotta contro il cambiamento climatico Pace, giustizia e istituzioni solide