Departamento de Informática (UM)

Página de Unidade Curricular 🇬🇧

DesignaçãoCódigoCursoRegimeRegente

Aprendizagem por Reforço

16809 [ME95ME9500002024]

Mestrado em Inteligência Artificial [MIA]

S2

Miguel Francisco Almeida Pereira Rocha

Objetivos

Esta Unidade Curricular (UC) introduz os principais conceitos associados à aprendizagem por reforço. Apresenta diversos tipos de modelos e métodos de aprendizagem por reforço (e.g., Q-learning, Deep Q-learning), bem como exemplos de aplicação dos mesmos e sua utilização e configuração via ferramentas computacionais.

Programa

1. Introdução: principais conceitos e elementos de um cenário de aprendizagem por reforço (RL); variantes de cenários da RL; exemplos enquadradores
2. Modelos para a resolução de cenários multi-armed bandits; dilema experimentação-exploração.
3. Processos de decisão Markovianos; funções valor e políticas.
4. Programação dinâmica
5. Métodos de Monte Carlo
6. Métodos de diferenças temporais; Q-learning
7. Planeamento e aprendizagem; Métodos baseados em modelos; Monte Carlo Tree Search.
8. Aproximação de funções: métodos de gradiente; métodos lineares; métodos não lineares (e.g. redes neuronais)
9. Controlo on-policy com aproximação e controlo off-policy com aproximação.
10. O algoritmo TD(lambda)
11. Algoritmos de gradiente para políticas; REINFORCE; arquitetura ator-crítico
12. Aprendizagem por reforço profunda: Deep Q-learning; Alpha Zero e suas variantes
13. Algoritmos evolucionários para aprendizagem por reforço

Bibliografia


Richard Sutton & Andrew Barto, Reinforcement Learning – An Introduction, 2nd ed., MIT Press, 2018.

Laura Graesser & Wah Loon Keng. Foundations of Deep Reinforcement Learning: Theory and Practice in Python, Addison-Wesley, 2020.

Lapan, Maxim. Deep Reinforcement Learning Hands-On: Apply modern RL methods, with deep Q-networks, value iteration, policy gradients, TRPO, AlphaGo Zero and more. Packt Publishing Ltd, 2018.

Resultados da aprendizagem

- Definir os principais conceitos nos campos da Aprendizagem por Reforço
- Conhecer classes de métodos/algoritmos, aplicações e bibliotecas de programação apropriadas para a resolução dos principais problemas na área da Aprendizagem por Reforço
- Aplicar software disponível de Aprendizagem por Reforço para a resolução de problemas, incluindo o uso de bibliotecas de software livre
- Construir programas podendo usar bibliotecas de software disponíveis para a implementação de pipelines avançados de Aprendizagem por Reforço incluindo as abordagens tradicionais e as baseadas em Deep Learning
- Construir programas que possam implementar algoritmos existentes ou desenvolver novos algoritmos ao nível da Aprendizagem por reforço

Método de avaliação


A avaliação da aprendizagem envolve dois instrumentos de avaliação: trabalho prático de desenvolvimento (com peso de 70% a 80%) e avaliação contínua durante as aulas (com peso de 20% a 30%) consistindo na resolução de exercícios e fichas de trabalho. A classificação final é calculada pela ponderação dos diversos instrumentos de avaliação.
É considerado aprovado o aluno cuja classificação final seja superior ou igual a 10 (dez) valores.
Para o cálculo da classificação final podem-se estabelecer notas mínimas, sendo que, para instrumentos de avaliação de cariz prático, esta nota mínima não pode ser inferior a 10 (dez) valores.

Funcionamento

Turno: T 1; Docente: Miguel Francisco Almeida Pereira Rocha; Dep.: DI; Horas: 15.
Turno: PL 1; Docente: Nuno Miguel Caetano Alves; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]