Programa do Curso
Parte 1 – Deep Learning e Conceitos DNN
Introdução IA, Machine Learning e aprendizado profundo
- História, conceitos básicos e aplicações usuais da inteligência artificial longe Das fantasias transportadas por este domínio Inteligência Coletiva: agregar conhecimento compartilhado por muitos agentes virtuais Algoritmos genéticos: evoluir uma população de agentes virtuais por seleção Máquina de Aprendizagem Usual: definição. Tipos de tarefas: 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 de aprendizado de máquina: regressão linear, Naive Bayes, Random Tree Machine learning VS Deep Learning: problemas em qual aprendizado de máquina continua sendo hoje o estado da arte (Random Forests e XGBoosts)
Conceitos Básicos de uma Rede Neural (Aplicação: perceptron multicamadas)
- Lembrete de bases matemáticas. Definição de uma rede de neurônios: arquitetura clássica, ativação e ponderação de ativações anteriores, profundidade de uma rede Definição da aprendizagem de uma rede de neurônios: funções de custo, retropropagação, gradiente estocástico descendente, 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...). Maldição da dimensionalidade. Distinção entre dados multifuncionais e sinal. Escolha de uma função de custo de acordo com os dados. Aproximação de uma função por uma rede de neurônios: apresentação e exemplos Aproximação de uma distribuição por uma rede de neurônios: apresentação e exemplos Aumento de dados: como equilibrar um conjunto de dados Generalização dos resultados de uma rede de neurônios. Inicialização e regularização de uma rede neural: regularização L1/L2, otimização de normalização em lote e algoritmos de convergência
Ferramentas padrão 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 de aprendizado de máquina: Numpy, Scipy, Sci-kit Estruturas de DL de alto nível: PyTorch, Keras, Lasagne Estruturas de DL de baixo nível: Theano, Torch, Caffe, Tensorflow
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 diferentes arquiteturas CNN que trouxeram o estado da arte em 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 modelo de atenção. Aplicação a um caso de classificação comum (texto ou imagem) de CNNs para geração: super-resolução, segmentação pixel a pixel. Apresentação das principais estratégias para aumento de mapas de características para geração de imagens.
Recorrente Neural Networks (RNN).
- Apresentação das RNNs: princípios fundamentais e aplicações. Operação básica do RNN: ativação oculta, retropropagação no tempo, versão desdobrada. Evoluções em direção às Gated Recurrent Units (GRUs) e LSTM (Long Short Term Memory). Apresentação dos diferentes estados e das evoluções trazidas por estas arquitecturas Problemas de convergência e gradiente de desaparecimento Arquitecturas clássicas: Predição de uma série temporal, classificação... Codificador RNN Arquitectura do tipo descodificador. Uso de um modelo de atenção. Aplicações de 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.
Modelos geracionais: AutoEncoder Variacional (VAE) e Redes Adversariais Generativas (GAN).
- Apresentação dos modelos geracionais, ligação com o Autocodificador CNNs: redução de dimensionalidade e geração limitada Autocodificador Variacional: modelo geracional e aproximação da distribuição de um dado. Definição e utilização do espaço latente. Truque de reparametrização. Aplicações e Limites Observados Redes Adversariais Gerativas: Fundamentos. Arquitetura de rede dupla (gerador e discriminador) com aprendizado alternativo e 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. Aplicações para geração de imagens ou fotografias, geração de texto, super-resolução.
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 Uso de 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ção 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 único videogame ou sistema digital.
Parte 2 – Theano para Deep Learning
Noções básicas de Theano
- Introdução Instalação e Configuração
Funções Theano
- entradas, saídas, atualizações, dados
Treinamento e Otimização de uma rede neural usando Theano
- Modelagem de redes neurais Regressão logística Camadas ocultas Treinamento de uma rede Otimização de computação e classificação Perda de log
Testando o modelo
Parte 3 – DNN usando Tensorflow
TensorFlow Noções básicas
- Criação, inicialização, salvamento e restauração de variáveis TensorFlow Alimentação, leitura e pré-carregamento de dados TensorFlow Como usar infraestrutura TensorFlow para treinar modelos em escala Visualização e avaliação de modelos com TensorBoard
TensorFlow Mecânica
- Prepare as entradas de download de dados e os espaços reservados Crie o treinamento de perda de inferência do GraphS
Do Perceptron às Máquinas de Vetores de Suporte
- Kernels e o truque do kernel Classificação de margem máxima e vetores de suporte
Artificiais Neural Networks
- Limites de decisão não lineares Redes neurais artificiais de feedforward e feedback Perceptrons multicamadas Minimizar a função de custo Propagação direta Propagação reversa Melhorar a maneira como as redes neurais aprendem
Convolucional Neural Networks
- Goals Princípios de Arquitetura de Modelo Código Organização Lançamento e Treinamento do Modelo Avaliação de um Modelo
- Apresentações básicas a serem fornecidas aos módulos abaixo (breve introdução a ser fornecida com base na disponibilidade de tempo):
Tensorflow - Uso Avançado
Threading e filas distribuídas TensorFlow Escrevendo documentação e compartilhando seu modelo Personalizando leitores de dados Manipulando TensorFlow Arquivos de modelo
TensorFlow Servindo
- Introdução Tutorial básico de veiculação Tutorial avançado de veiculação Tutorial do modelo de início de veiculação
Requisitos
Formação em física, matemática e programação. Envolvimento em actividades de processamento de imagem.
Os delegados devem ter uma compreensão prévia dos conceitos de aprendizagem automática e devem ter trabalhado com programação e bibliotecas Python.