Programa do Curso
O curso divide-se em três dias distintos, sendo o terceiro facultativo.
Dia 1 - Machine Learning & Deep Learning: conceitos teóricos
1. Introdução à IA Machine Learning & Deep Learning
- História, conceitos fundamentais e aplicações comuns da inteligência artificial, longe das fantasias associadas a este domínio.
- Inteligência colectiva: agregação de conhecimentos partilhados por muitos agentes virtuais
- Algoritmos genéticos: desenvolvimento de uma população de agentes virtuais através de seleção
- 5] Habitual: definição.
- Tipos de tarefas: aprendizagem supervisionada, aprendizagem não supervisionada, aprendizagem por reforço
- Tipos de acções: classificação, regressão, agrupamento, estimativa da densidade, redução da dimensionalidade
- Exemplos de algoritmos Machine Learning: regressão linear, Naive Bayes, árvore aleatória
- Aprendizagem automática VS Deep Learning: problemas em que Machine Learning continua a ser o estado da arte (Random Forests & XGBoosts)
2. Conceitos fundamentais de uma rede neuronal (Aplicação: perceptron de várias camadas)
- Recordação dos fundamentos matemáticos.
- Definição de uma rede neuronal: arquitetura clássica, funções de ativação e de ponderação das activações anteriores, profundidade de uma rede, etc.
- Definição da aprendizagem em redes neuronais: funções de custo, retropropagação, descida do gradiente estocástico, máxima verosimilhança.
- Modelação de uma rede neuronal: modelação dos dados de entrada e de saída em função do tipo de problema (regressão, classificação, etc.). A maldição da dimensionalidade. Distinção entre dados com múltiplas características e sinal. Escolha de uma função de custo em função dos dados.
- Aproximação de uma função através de uma rede neuronal: apresentação e exemplos
- Aproximação de uma distribuição através de uma rede neuronal: apresentação e exemplos.
- Aumento dos dados: como equilibrar um conjunto de dados
- Generalizar os resultados de uma rede neuronal.
- Inicialização e regularização de uma rede neuronal: regularização L1/L2, normalização em lote, etc.
- Algoritmos de otimização e de convergência.
3. Ferramentas comuns de ML / DL
É feita uma apresentação simples com vantagens, desvantagens, posição no ecossistema e utilização.
- Ferramentas de gestão de dados: Apache Spark, Apache Hadoop.
- Ferramentas comuns Machine Learning: Numpy, Scipy, Sci-kit
- Quadros de DL de alto nível: PyTorch, Keras, Lasagne
- Quadros de DL de baixo nível: Theano, Torch, Caffe, Tensorflow
Dia 2 - Redes convolucionais e recorrentes
4. Convolucional Neural Networks (CNN).
- Apresentação das CNNs: princípios fundamentais e aplicações
- Funcionamento básico de uma CNN: camada convolucional, utilização de um kernel, padding & stride, geração de mapas de características, camadas de pooling. Extensões 1D, 2D e 3D.
- Apresentação das várias arquitecturas de CNN que têm representado o estado da arte na classificação de imagens: LeNet, VGG Networks, Network in Network, Inception, Resnet. Apresentação das inovações trazidas por cada arquitetura e das suas aplicações mais globais (convolução 1x1 ou ligações residuais).
- Utilização de um modelo de atenção.
- Aplicação a um cenário típico de classificação (texto ou imagem)
- CNNs de geração: super-resolução, segmentação pixel a pixel. Apresentação das principais estratégias de aumento do mapa de características para a geração de imagens.
5. Recorrente Neural Networks (RNN).
- Apresentação das RNNs: princípios fundamentais e aplicações.
- Funcionamento básico das RNNs: ativação oculta, retropropagação no tempo, versão desdobrada.
- Evolução para GRUs (Gated Recurrent Units) e LSTM (Long Short Term Memory). Apresentação dos diferentes estados e desenvolvimentos trazidos por estas arquitecturas.
- Problemas de convergência e de desaparecimento do gradiente
- Tipos de arquitecturas clássicas: predição de uma série temporal, classificação, etc.
- Arquitetura RNN codificadora-descodificadora. Utilização de um modelo de atenção.
- Aplicações de PNL: codificação de palavras/caracteres, tradução.
- Aplicações vídeo: previsão da próxima imagem gerada numa sequência vídeo.
Dia 3 - Modelos geracionais e Reinforcement Learning.
6. Modelos geracionais: Variational AutoEncoder (VAE) e Generative Adversarial Networks (GAN).
- Apresentação dos modelos geracionais, ligação com as CNNs vistas no dia 2
- Auto-encoder: redução da dimensionalidade e geração limitada
- Auto-encoder variacional: modelo geracional e aproximação da distribuição dos dados. Definição e utilização do espaço latente. Truque de reparametrização. Aplicações e limitações observadas
- Redes Adversariais Generativas: princípios fundamentais. Duas arquitecturas de rede (geradora e discriminadora) com aprendizagem alternada, funções de custo disponíveis.
- Convergência de uma GAN e dificuldades encontradas.
- Melhoria da convergência: GAN de Wasserstein, BeGAN. Distância de deslocação da terra.
- Aplicações para geração de imagens ou fotografias, geração de texto, super-resolução.
resolução.
7. Profundo Reinforcement Learning.
- Apresentação da aprendizagem por reforço: controlo de um agente num ambiente definido por um estado e acções possíveis.
- Utilização de uma rede neuronal para aproximar a função de estado
- Deep Q Learning: repetição de experiências e aplicação ao controlo de um jogo de vídeo.
- Otimização da política de aprendizagem. Política de aprendizagem && fora da política. Arquitetura crítica do ator. A3C.
- Aplicações: controlo de um jogo de vídeo simples ou de um sistema digital.
Requisitos
Nível de engenheiro