Programa do Curso
O curso é dividido em três dias distintos, sendo o terceiro opcional.
Dia 1 - Machine Learning e Deep Learning: conceitos teóricos
1. Introdução IA, Machine Learning e aprendizado profundo
- História, conceitos fundamentais e aplicações habituais da inteligência artificial longe das fantasias transportadas por este campo
- Inteligência coletiva: conhecimento agregado compartilhado por inúmeros agentes virtuais
- Algoritmos genéticos: evolução de uma população de agentes virtuais por seleção
- Machine Learning habitual: definição.
- Types de tâches: aprendizagem supervisionada, aprendizagem não supervisionada, aprendizagem por reforço
- Tipos de ações: classificação, regressão, agrupamento, estimativa de densidade, redução de dimensionalidade
- Exemplos de algoritmos Machine Learning: Regressão linear, Naive Bayes, Random Tree
- Aprendizado de máquina VS Aprendizado profundo: problemas nos quais o aprendizado de máquina continua sendo o estado da arte hoje (Random Forests & XGBoosts)
2. Conceitos fundamentais de uma rede neural (Aplicação: perceptron multicamadas)
- Lembrete de noções básicas de matemática.
- Definição de uma rede neural: arquitetura clássica, funções de ativação e ponderação de ativações anteriores, profundidade de uma rede
- Definição de aprendizagem de uma rede neural: funções de custo, retropropagação, gradiente descendente estocástico, máxima verossimilhança.
- Modelagem de uma rede neural: modelagem de dados de entrada e saída de acordo com o tipo de problema (regressão, classificação, etc.). Maldição da dimensionalidade. Distinção entre dados multi-funcionalidades e sinal. Escolha de uma função de custo de acordo com os dados.
- Aproximar uma função utilizando uma rede neural: apresentação e exemplos
- Aproximação de uma distribuição utilizando uma rede neural: apresentação e exemplos
- Aumento de dados: como equilibrar um conjunto de dados
- Generalização dos resultados de uma rede neural.
- Inicializações e regularizações de uma rede neural: regularização L1/L2, normalização em lote...
- Otimizações e algoritmos de convergência.
3. Ferramentas comuns de ML/DL
Está prevista uma apresentação simples com vantagens, desvantagens, posição no ecossistema e utilização.
- Ferramentas de gerenciamento de dados: Apache Spark, Apache Hadoop
- Ferramentas usuais Machine Learning: Numpy, Scipy, Sci-kit
- Frameworks DL nível atual: PyTorch, Keras, Lasagne
- Frameworks 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 fundamental de uma CNN: camada convolucional, utilização de um kernel, padding & stride, geração de mapas de características, camadas do tipo 'pooling'. Extensões 1D, 2D e 3D.
- Apresentação das diferentes arquiteturas CNN que trouxeram o estado da arte para classificação de imagens: LeNet, VGG Networks, Network in Network, Inception, Resnet. Apresentação das inovações trazidas por cada arquitetura e suas aplicações mais globais (Convolução 1x1 ou conexões residuais)
- Utilização de um modelo de atenção.
- Aplicação a um cenário de classificação habitual (texto ou imagem)
- CNNs para geração: super-resolução, segmentação pixel a pixel. Apresentação das principais estratégias de aumento de mapas de características para geração de imagem.
5. Recorrente Neural Networks (RNN).
- Apresentação das RNNs: princípios fundamentais e aplicações.
- Fonctionnement fondamental du RNN: ativação oculta, retropropagação no tempo, versão desdobrada.
- Desenvolvimentos em direção a GRU (Gated Recurrent Units) e LSTM (Long Short Term Memory). Apresentação dos diferentes estados e dos desenvolvimentos provocados por estas arquiteturas
- Problemas de convergência e gradiente de fuga
- Tipos de arquiteturas clássicas: Previsão de séries temporais, classificação...
- Arquitetura do tipo RNN Encoder Decoder. Usando um modelo de atenção.
- Aplicações PNL: codificação de palavras/caracteres, tradução.
- Aplicações de Vídeo: previsão da próxima imagem gerada de uma sequência de vídeo.
Dia 3 – Modelos Geracionais e Reinforcement Learning
6. Modelos geracionais: AutoEncoder Variacional (VAE) e Redes Adversariais Generativas (GAN).
- Apresentação de modelos geracionais, link com CNNs vistos no dia 2
- Codificação automática: redução de dimensionalidade e geração limitada
- Autocodificador Variacional: modelo geracional e aproximação da distribuição de dados. Definição e utilização do espaço latente. Truque de reparametrização. Aplicações e limites observados
- Redes Adversariais Gerativas: princípios fundamentais. Arquitetura de duas redes (gerador e discriminador) com aprendizagem alternada, funções de custo disponíveis.
- Convergência de um GAN e dificuldades encontradas.
- Convergência melhorada: Wasserstein GAN, BeGAN. Distância móvel da Terra.
- Aplicativos para geração de imagens ou fotografias, geração de texto, super resolução.
7. Profundo Reinforcement Learning.
- Apresentação da aprendizagem por reforço: controle de um agente em um ambiente definido por um estado e possíveis ações
- Usando uma rede neural para aproximar a função de estado
- Deep Q Learning: experiência de repetição e aplicação ao controle de um videogame.
- Otimizações da política de aprendizagem. Dentro da política e fora da política. Arquitetura crítica do ator. A3C.
- Aplicações: controle de um simples videogame ou de um sistema digital.
Requisitos
Nível de engenheiro