Algoritmos Genéticos e Redes Neuronais
Objetivos
-Compreender o funcionamento dos Algoritmos Genéticos (GA) como método de optimização,
-Ser capaz de aplicar o método GA a problema simples utilizando uma implementação de GA .
- Compreender os tipos básicos de redes neuronais: ‘feedforward’, convolução e recorrrente. Entender o método de optimização dos parâmetros das redes e o papel dos hiperparâmetros associados à utilização das redes neuronais. Compreender os diversos tipos de regularização e as situações em que há necessidade de os utilizar.
Caracterização geral
Código
12530
Créditos
6.0
Professor responsável
Miguel dos Santos Fonseca
Horas
Semanais - 4
Totais - 52
Idioma de ensino
Português
Pré-requisitos
Ser capaz de programar é um requesito: iremos usar a linguagem de programação Python, mas bastará o estudante ter prática com alguma linguagem de programação(C, C++, Java ou Matlab) para conseguir transferir para Python os seus conhecimentos.
Bibliografia
- Practical Genetic Algorithms, Second Edition, Randy L. Haupt Sue Ellen Haupt, 2004 John Wiley & Sons, Inc
- Introduction to Evolutionary Computing, A. E.Eiben and J. E. Smith, Springer,
Método de ensino
A disponibilizar brevemente
Método de avaliação
A avaliação contínua consitirá em dois testes. Haverá também um exame de recurso.
Caso o aluno tenha média superior a 16, nos testes ou no exame, deverá realizar uma prova suplementar para defesa de nota.
Conteúdo
Algoritmos Genéticos
-Um método de optimização.
-Conceitos básicos: função objetivo, população, seleção, mutações, recombinação.
-Exemplos práticos com utilização de software.
Redes Neuronais
-Conceitos básicos: tipos de redes(feedforward, convolução, recorrentes e transformers), funções de ativação e funções de custo.
-Otimização dos parâmetros de uma rede neuronal e métodos de regularização.
-Exemplos práticos com utilização de software.
Ao longo do curso será usada a linguagem de programação Python e alguns dos seus ''''''''''''''''''''''''''''''''pacotes''''''''''''''''''''''''''''''''. Não será assumido qualquer conhecimento prévio desta linguagem de programação.
Cursos
Cursos onde a unidade curricular é leccionada: