Programa do Curso

Parte 1 – Conceitos de Aprendizado Profundo e DNN

Introdução ao AI, Aprendizado de Máquina e Aprendizado Profundo

  • História, conceitos básicos e aplicações comuns da inteligência artificial, além das fantasias carregadas por esse domínio.
  • Inteligência Coletiva: agregação de conhecimentos compartilhados por muitos agentes virtuais.
  • Algoritmos Genéticos: para evoluir uma população de agentes virtuais por seleção.
  • Aprendizado de Máquina Convencional: definição.
  • Tipos de tarefas: aprendizado supervisionado, não supervisionado, por reforço.
  • Tipos de ações: classificação, regressão, agrupamento, estimação de densidade, redução de dimensionalidade.
  • Exemplos de algoritmos de Aprendizado de Máquina: Regressão Linear, Naive Bayes, Árvore Aleatória.
  • Aprendizado de Máquina VS Aprendizado Profundo: problemas nos quais o Aprendizado de Máquina permanece o estado da arte (Random Forests & XGBoosts).

Conceitos Básicos de uma Rede Neural (Aplicação: perceptron multicamada)

  • Revisão das bases matemáticas.
  • Definição de uma rede neural: arquitetura clássica, ativação e
  • Ponderação de ativações anteriores, profundidade de uma rede.
  • Definição do aprendizado de uma rede neural: funções de custo, retropropagação, descida de gradiente estocástica, 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 neural: apresentação e exemplos.
  • Aproximação de uma distribuição por uma rede neural: apresentação e exemplos.
  • Ampliação de dados: como balancear um conjunto de dados.
  • Generalização dos resultados de uma rede neural.
  • Inicialização e regularização de uma rede neural: regularização L1/L2, Normalização por Lote.
  • Algoritmos de otimização e convergência.

Ferramentas Padrão de ML/DL

Uma apresentação simples com vantagens, desvantagens, posição no ecossistema e uso está planejada.

  • Ferramentas de gerenciamento de dados: Apache Spark, Apache Hadoop Tools
  • Aprendizado de Máquina: Numpy, Scipy, Sci-kit
  • Frameworks de alto nível para DL: PyTorch, Keras, Lasagne
  • Frameworks de baixo nível para DL: Theano, Torch, Caffe, TensorFlow

Redes Neurais Convolucionais (CNN).

  • Apresentação das CNNs: princípios fundamentais e aplicações.
  • Operação básica de uma CNN: camada convolucional, uso 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 de CNN que trouxeram o estado da arte na classificação.
  • 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).
  • Uso de um modelo de atenção.
  • Aplicação a um caso comum de classificação (texto ou imagem).
  • CNNs para geração: super-resolução, segmentação pixel-to-pixel. Apresentação das
  • Principais estratégias para aumentar os mapas de características para a geração de imagens.

Redes Neurais Recorrentes (RNN).

  • Apresentação das RNNs: princípios fundamentais e aplicações.
  • Operação básica da RNN: ativação oculta, retropropagação no tempo, versão desdobrada.
  • Evoluções para as Unidades Recorrentes com Portas (GRUs) e LSTM (Long Short Term Memory).
  • Apresentação dos diferentes estados e evoluções trazidas por essas arquiteturas.
  • Problemas de convergência e gradiente desaparecente.
  • Arquiteturas clássicas: previsão de uma série temporal, classificação...
  • Arquitetura de codificador-decodificador do tipo RNN. Uso de um modelo de atenção.
  • Aplicações em NLP: codificação de palavras/caracteres, tradução.
  • Aplicações de Vídeo: previsão da próxima imagem gerada em uma sequência de vídeo.

Modelos Gerativos: AutoEncoder Variacional (VAE) e Redes Adversárias Generativas (GAN).

  • Apresentação dos modelos gerativos, link com as CNNs.
  • Auto-encoder: redução de dimensionalidade e geração limitada.
  • Auto-encoder Variacional: modelo gerativo e aproximação da distribuição de um dado. Definição e uso do espaço latente. Truque de reparametrização. Aplicações e limites observados.
  • Redes Adversárias Generativas: fundamentos.
  • Arquitetura de Rede Dual (Gerador e discriminador) com aprendizado alternado, funções de custo disponíveis.
  • Convergência de uma GAN e dificuldades encontradas.
  • Melhoria da convergência: Wasserstein GAN, Began. Distância de Movimento da Terra.
  • Aplicações para a geração de imagens ou fotografias, geração de texto, super-resolução.

Aprendizado por Reforço Profundo.

  • Apresentação do aprendizado por reforço: controle de um agente em um ambiente definido.
  • Por meio de um estado e ações possíveis.
  • Uso de uma rede neural para aproximar a função de estado.
  • Aprendizado Profundo Q: replay de experiência e aplicação ao controle de um jogo de vídeo.
  • Otimização da política de aprendizado. On-policy && off-policy. Arquitetura ator-crítico. A3C.
  • Aplicações: controle de um único jogo de vídeo ou sistema digital.

Parte 2 – Theano para Aprendizado Profundo

Noções Básicas do Theano

  • Introdução
  • Instalação e Configuração

TheanoFunctions

  • entradas, saídas, atualizações, givens

Treinamento e Otimização de uma Rede Neural usando Theano

  • Modelagem de Rede Neural
  • Regressão Logística
  • Camadas Ocultas
  • Treinamento de uma rede
  • Computação e Classificação
  • Otimização
  • Log Loss

Testando o modelo

Parte 3 – DNN usando TensorFlow

Noções Básicas do TensorFlow

  • Criação, Inicialização, Salvamento e Restauração de variáveis do TensorFlow
  • Alimentação, Leitura e Pré-carregamento de Dados do TensorFlow
  • Como usar a infraestrutura do TensorFlow para treinar modelos em larga escala
  • Visualização e Avaliação de modelos com o TensorBoard

Mecânicas do TensorFlow

  • Preparação dos Dados
  • Download
  • Entradas e Placeholders
  • Construção dos Grafos
    • Inferência
    • Perda
    • Treinamento
  • Treinamento do Modelo
    • O Grafo
    • A Sessão
    • Loop de Treinamento
  • Avaliação do Modelo
    • Construção do Grafo de Avaliação
    • Saída da Avaliação

O Perceptron

  • Funções de ativação
  • Algoritmo de aprendizado do perceptron
  • Classificação binária com o perceptron
  • Classificação de documentos com o perceptron
  • Limitações do perceptron

Do Perceptron às Máquinas de Vetores de Suporte

  • Kernels e a técnica do kernel
  • Classificação de margem máxima e vetores de suporte

Redes Neurais Artificiais

  • Fronteiras de decisão não lineares
  • Redes neurais artificiais feedforward e feedback
  • Perceptrons multicamada
  • Minimização da função de custo
  • Propagação direta
  • Retropropagação
  • Melhoria na forma como as redes neurais aprendem

Redes Neurais Convolucionais

  • Objetivos
  • Arquitetura do Modelo
  • Princípios
  • Organização do Código
  • Lançamento e Treinamento do Modelo
  • Avaliação de um Modelo

Introduções Básicas a serem dadas aos módulos abaixo (Introdução Breve a ser fornecida com base na disponibilidade de tempo):

TensorFlow - Uso Avançado

  • Threading e Filas
  • TensorFlow Distribuído
  • Escrevendo Documentação e Compartilhando seu Modelo
  • Personalizando Leitores de Dados
  • Manipulando Arquivos de Modelos do TensorFlow

Serviço TensorFlow

  • Introdução
  • Tutorial de Serviço Básico
  • Tutorial de Serviço Avançado
  • Tutorial de Serviço do Modelo Inception

Requisitos

Conhecimento em física, matemática e programação. Envolvimento em atividades de processamento de imagens.

Os participantes devem ter uma compreensão prévia dos conceitos de aprendizado de máquina e experiência com a linguagem Python e suas bibliotecas.

 35 Horas

Declaração de Clientes (5)

Próximas Formações Provisórias

Categorias Relacionadas