$whoami
Marido
Pai de um jovem universitário e 10 gatos
• Ok, 8 cães também...
Apaixonado por programação (desde os 12)
Cinéfilo
Bacharel em Informática (Unioeste, 1999)
Mestre em Ciência da Computação (UFSC, 2002)
Doutorando UFPR (2014)
Professor na UTFPR-TD (desde 2009)
2001: A Space Odyssey (Kubrick, 1968)
“Hal: Hello Dave”
Ex_Machina (Garland, 2015)
“Ava: Hello Caleb.”
Aprendizado de Máquina (Machine
Learning) provê aos computadores
habilidades de aprender sem terem
sido explicitamente programados
Abarca de reconhecimento de padrões
(pattern recognition) até teoria do
aprendizado (learning theory) na inteligência
artificial (artificial intelligence – AI)
"A computer
program is said to learn
from experience E with
respect to some class
of tasks T and
performance measure P
if its performance at
tasks in T, as measured
by P, improves with
experience E.“
Tom M. Mitchell (1997)
Termos cognitivos X operacionais
Algoritmos que podem aprender a partir de/e
fazer previsões sobre dados
Construir um modelo para fazer predições ou tomar
decisões
Não segue instruções estáticas
Considerando entradas (input signal) e
feedback disponíveis ao sistema
(1) Aprendizado supervisionado
(2) Aprendizado não-supervisionado
(3) Aprendizado por reforço
**existem variações
CãesGatos
Teste
O que é isso?
Treino
Conjunto não rotulado
A
C
B
D
Agrupamento
(clustering)
Uso de feedback sobre o resultado
Tipos de problemas/tarefas típicas
Classificação
• qual a classe de um objeto?
• Ex.: A imagem é de um tumor maligno ou benigno? A
mensagem é spam ou conteúdo válido?
Regressão
• Qual o próximo valor (contínuo) de um objeto?
• Ex.: Qual será o valor das ações da empresa X no
próximo pregão? Qual o consumo de água no próximo
mês? Qual será o valor médio de venda desse terreno no
próximo ano?
Tipos de problemas/tarefas típicas
Agrupamento (Clustering)
• Agrupar objetos similares
Redução de dimensionalidade
• “Comprimir” dados de altas dimensões de representação
para dimensões menores
• Usado para visualização e como operação interna de
certos algoritmos
Tipos de problemas/tarefas típicas
Ranking
• Arranjar uma lista de objetos para maximizar algum uso
Recomendação
• Filtrar um pequeno subconjunto de um grande conjunto
de objetos
A chave dos modelos está na representação
dos objetos  características significativas
(features)
Qual a melhor característica (mais discriminativa) de
um objeto?
Como extrair das entradas?
Definir características ótimas para um problema
(aplicação) pode levar décadas e demandar o esforço
de toda uma comunidade de pesquisadores!
Não mais isso!
Para aprender representações significativas
diretamente dos dados!
Características projetadas manualmente são muito
específicas, incompletas e consomem muito tempo de projeto
e validação  dependem de um especialista
Características aprendidas são fáceis de adaptar, fáceis de
aprender
Fornece um framework (quase?) universal e muito flexível
para representar informação visual, linguística, etc.
Aprender de forma supervisionada (usando rótulos) ou não-
supervisionada (texto/áudio/imagens/etc. puros)
Google DeepMind AlphaGo: 4 x Lee Sedol: 1!
Prof. Yann LeCUN
New York University
Director of AI Research, Facebook
Prof. Yoshua BENGIO
Université de Montréal
Prof. Geoff HINTON
Toronto University
Distinguished Researcher,
Google
Prof. Jürgen SCHMIDHUBER
University of Lugano
Prof. Andrew NG
Stanford University
Chairman and co-founder, Coursera
Chief Scientist, Baidu
Prof. Rob FERGUS
New York University,
Research Scientist, Facebook
O conceito-chave é a habilidade de aprender
representações hierárquicas de características
(inspirado no sistema visual dos mamíferos)
Em geral, redes neurais (RN) multicamadas são
empregadas
CNN (Convolutional Neural Network)
DBN (Deep Belief Network)
RNN (Recurrent Neural Network)
Input layer Hidden layers Output layer
.
.
.
.
.
.
.
.
.
CNNs são similares a outras RN
são treinadas com uma versão de algoritmo back-
propagation
O que difere é a arquitetura delas
São projetadas para reconhecer padrões visuais
diretamente dos pixels com nenhum (mínimo)
preprocessamento
Podem reconhecer padrões com extrema
variabilidade e robustez a ruídos, distorções e
transformações geométricas simples
• Ex.: caracteres manuscritos
Célula especializada em conduzir impulsos
elétricos
Tecido nervoso (H&E) e representação esquemática
de um neurônio
The Perceptron [Rosenblatt, Psychol. Rev. 1958]:
um classificador linear
Arquitetura em
camadas de Hubel &
Weisel, 1959: percepção
visual
Uma RN multicamada é um classificador não-
linear
Treinar é aprender os pesos
Encontrar os pesos w da rede que minimizem o erro
entre os rótulos verdadeiros e os rótulos estimados
Minimização pode ser feita por “gradient descent”
fornecida uma diferenciável
O erro é usado para retornar e ajustar os pesos das
camadas anteriores
• Esse método de treinamento chama-se back-propagation
Na prática costuma-se usar Stochastic
Gradient Descent (SGD)
Uma aproximação estocástica do gradiente de custo
“verdadeiro”
RN profunda é uma hierarquia de camadas
Cada camada transforma os dados de entrada em
representações mais abstratas
• Ex.: contornos  nariz  face
Camada final combina as representações  Predição
Atualmente, se uma RN tem mais que 2
camadas ocultas ela é profunda!
Uma CNN (Convolutional Neural Network) é
essencialmente um arranjo de camadas:
Convolucionais (Convolutional Layers)
ReLU (Rectfied Linear Units Layers)
Pooling Layers
Totalmente Conectadas (Fully-Connected Layers)
Deslizar espacialmente uma máscara (kernel
ou filtro) pela imagem, calculando o produto
escalar
Stride = 1
A entrada é um volume
O filtro se estende por toda a profundidade
Imagem RGB = 3 canais
Imagem 32x32x3
Filtro 5x5x3
Cada convolução gera um mapa de ativação
Os vários mapas de ativação são empilhados,
para gerar uma “nova imagem”
P.ex.: 6 filtros 5x5 geram 6 mapas 28x28, ou uma,
nova imagem de 28x28x6
Uma CNN é uma sequência de camadas
convolucionais intercaladas por funções de
ativação (activation functions)
Note a redução espacial dos volumes
Um mapa de ativação é uma camada de saída
de neurônios
Cada neurônio conecta-se a uma pequena região da
entrada
Todos compartilham parâmetros
Os neurônios estão arranjados em uma grade 3D
Não-linearidades são necessárias para
aprender representações complexas dos dados
(não-lineares)
Por elemento (independente)
max(0, x) é a mais usada
Torna a representação menor e mais
“gerenciável”
Opera sobre cada mapa de ativação de forma
independente
A função de max pooling é a mais comum
A Fully Connected Layer (FC) contém
neurônios conectados a todo o volume de
entrada, como uma RN convencional
A última camada da CNN normalmente é uma FC
• O tamanho da saída é igual ao número de classes
Reconstrução da imagem a partir das
características extraídas
Understanding deep image representations by inverting them
[Mahendran and Vedaldi CVPR 2015]
LeNet [LeCun et al. 1998]
Gradient-based learning applied to document recognition [LeCun, Bottou, Bengio,
Haffner 1998]
Entrada
Camada 5
Camada 3
Camada 1
*Animações em http://yann.lecun.com/exdb/lenet/index.html
Anos 1990-2000
SVM (Support Vector Machine),
Vapniki et al.(1993), uma
arquitetura não-profunda,
reinou...
Framework semelhante ao de [LeCun98], mas:
Modelo maior (7 hidden layers, 650 mil neurônios, 60
milhões de parâmetros)
Mais dados (106 vs. 103 imagens)
Mais poder computacional: Uso de GPU (50x speedup vs CPU)
• Trainada em duas GPUs por ~1 semana
A. Krizhevsky, I. Sutskever, and G. Hinton,
ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012
Estamos vivendo o amanhecer da era “Big
data”
The Internet
NVIDIA Tesla GPU com Kleper e Cuda
Detecção de regiões (objetos contidos em retângulos)
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
[Ren et al. NIPS 2015]
Rotulagem de pixels  Segmentação semântica
DeepEdge: A Multi-Scale Bifurcated Deep Network for Top-Down Contour Detection
[Bertasius et al. CVPR 2015]
Rotulagem de pixels  Segmentação semântica
Fully Convolutional Networks for Semantic Segmentation [Long et al. CVPR 2015]
Criação de pinturas através de um exemplo e esboço
Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks
[Champandard 2016]
Para regressão
DeepPose: Human Pose Estimation via Deep Neural
Networks [Toshev and Szegedy CVPR 2014]
Como métrica de similaridade para matching
FaceNet [Schroff et al. 2015]
Match ground and aerial images
[Lin et al. CVPR 2015]
Para geração automática de legendas de
imagens(image caption generator)
Show and Tell: A Neural Image Caption Generator [Vinyals et al. 2015]
Visual Question Answering
Deep Learning for Visual Question Answering [Singh 2015]
Caffe
http://caffe.berkeleyvision.org/
TensorFlow
https://www.tensorflow.org/
OverFeat
http://cilvr.nyu.edu/doku.php?id=software:overfeat:start
Theano
http://deeplearning.net/software/theano/
Seus problemas acabaram!
AWS (Amazon Web Service) – AWS EC2 GPU Spot
Instance: g2.2xlarge -US$0.1477 per hour
Nvidia DIGITS DevBox!
4 TITAN X GPUs with 12GB of memory/GPU
64GB DDR4
Asus X99-E WS workstation class
motherboard
Core i7-5930K 6 Core 3.5GHz
3 3TB SATA 6Gb 3.5” Enterprise HD in
RAID5
512GB PCI-E M.2 SSD cache for RAID
250GB SATA 6Gb Internal SSD
1600W Power Supply Unit
Ubuntu 14.04
NVIDIA-qualified driver
NVIDIA® CUDA® Toolkit 7.0
NVIDIA® DIGITS™ SW
Caffe, Theano, Torch, BIDMach
Aprendizado Profundo & CNNs

Aprendizado Profundo & CNNs

  • 2.
    $whoami Marido Pai de umjovem universitário e 10 gatos • Ok, 8 cães também... Apaixonado por programação (desde os 12) Cinéfilo Bacharel em Informática (Unioeste, 1999) Mestre em Ciência da Computação (UFSC, 2002) Doutorando UFPR (2014) Professor na UTFPR-TD (desde 2009)
  • 3.
    2001: A SpaceOdyssey (Kubrick, 1968) “Hal: Hello Dave”
  • 4.
  • 6.
    Aprendizado de Máquina(Machine Learning) provê aos computadores habilidades de aprender sem terem sido explicitamente programados Abarca de reconhecimento de padrões (pattern recognition) até teoria do aprendizado (learning theory) na inteligência artificial (artificial intelligence – AI)
  • 8.
    "A computer program issaid to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.“ Tom M. Mitchell (1997)
  • 9.
    Termos cognitivos Xoperacionais Algoritmos que podem aprender a partir de/e fazer previsões sobre dados Construir um modelo para fazer predições ou tomar decisões Não segue instruções estáticas
  • 10.
    Considerando entradas (inputsignal) e feedback disponíveis ao sistema (1) Aprendizado supervisionado (2) Aprendizado não-supervisionado (3) Aprendizado por reforço **existem variações
  • 11.
  • 12.
  • 13.
  • 14.
    Uso de feedbacksobre o resultado
  • 15.
    Tipos de problemas/tarefastípicas Classificação • qual a classe de um objeto? • Ex.: A imagem é de um tumor maligno ou benigno? A mensagem é spam ou conteúdo válido? Regressão • Qual o próximo valor (contínuo) de um objeto? • Ex.: Qual será o valor das ações da empresa X no próximo pregão? Qual o consumo de água no próximo mês? Qual será o valor médio de venda desse terreno no próximo ano?
  • 16.
    Tipos de problemas/tarefastípicas Agrupamento (Clustering) • Agrupar objetos similares Redução de dimensionalidade • “Comprimir” dados de altas dimensões de representação para dimensões menores • Usado para visualização e como operação interna de certos algoritmos
  • 17.
    Tipos de problemas/tarefastípicas Ranking • Arranjar uma lista de objetos para maximizar algum uso Recomendação • Filtrar um pequeno subconjunto de um grande conjunto de objetos
  • 18.
    A chave dosmodelos está na representação dos objetos  características significativas (features) Qual a melhor característica (mais discriminativa) de um objeto? Como extrair das entradas? Definir características ótimas para um problema (aplicação) pode levar décadas e demandar o esforço de toda uma comunidade de pesquisadores!
  • 19.
  • 20.
    Para aprender representaçõessignificativas diretamente dos dados! Características projetadas manualmente são muito específicas, incompletas e consomem muito tempo de projeto e validação  dependem de um especialista Características aprendidas são fáceis de adaptar, fáceis de aprender Fornece um framework (quase?) universal e muito flexível para representar informação visual, linguística, etc. Aprender de forma supervisionada (usando rótulos) ou não- supervisionada (texto/áudio/imagens/etc. puros)
  • 22.
    Google DeepMind AlphaGo:4 x Lee Sedol: 1!
  • 23.
    Prof. Yann LeCUN NewYork University Director of AI Research, Facebook Prof. Yoshua BENGIO Université de Montréal Prof. Geoff HINTON Toronto University Distinguished Researcher, Google Prof. Jürgen SCHMIDHUBER University of Lugano
  • 24.
    Prof. Andrew NG StanfordUniversity Chairman and co-founder, Coursera Chief Scientist, Baidu Prof. Rob FERGUS New York University, Research Scientist, Facebook
  • 25.
    O conceito-chave éa habilidade de aprender representações hierárquicas de características (inspirado no sistema visual dos mamíferos)
  • 26.
    Em geral, redesneurais (RN) multicamadas são empregadas CNN (Convolutional Neural Network) DBN (Deep Belief Network) RNN (Recurrent Neural Network) Input layer Hidden layers Output layer . . . . . . . . .
  • 27.
    CNNs são similaresa outras RN são treinadas com uma versão de algoritmo back- propagation O que difere é a arquitetura delas São projetadas para reconhecer padrões visuais diretamente dos pixels com nenhum (mínimo) preprocessamento Podem reconhecer padrões com extrema variabilidade e robustez a ruídos, distorções e transformações geométricas simples • Ex.: caracteres manuscritos
  • 29.
    Célula especializada emconduzir impulsos elétricos Tecido nervoso (H&E) e representação esquemática de um neurônio
  • 31.
    The Perceptron [Rosenblatt,Psychol. Rev. 1958]: um classificador linear
  • 32.
    Arquitetura em camadas deHubel & Weisel, 1959: percepção visual
  • 33.
    Uma RN multicamadaé um classificador não- linear
  • 35.
    Treinar é aprenderos pesos Encontrar os pesos w da rede que minimizem o erro entre os rótulos verdadeiros e os rótulos estimados Minimização pode ser feita por “gradient descent” fornecida uma diferenciável O erro é usado para retornar e ajustar os pesos das camadas anteriores • Esse método de treinamento chama-se back-propagation
  • 36.
    Na prática costuma-seusar Stochastic Gradient Descent (SGD) Uma aproximação estocástica do gradiente de custo “verdadeiro”
  • 38.
    RN profunda éuma hierarquia de camadas Cada camada transforma os dados de entrada em representações mais abstratas • Ex.: contornos  nariz  face Camada final combina as representações  Predição
  • 39.
    Atualmente, se umaRN tem mais que 2 camadas ocultas ela é profunda!
  • 41.
    Uma CNN (ConvolutionalNeural Network) é essencialmente um arranjo de camadas: Convolucionais (Convolutional Layers) ReLU (Rectfied Linear Units Layers) Pooling Layers Totalmente Conectadas (Fully-Connected Layers)
  • 42.
    Deslizar espacialmente umamáscara (kernel ou filtro) pela imagem, calculando o produto escalar Stride = 1
  • 43.
    A entrada éum volume O filtro se estende por toda a profundidade Imagem RGB = 3 canais Imagem 32x32x3 Filtro 5x5x3
  • 44.
    Cada convolução geraum mapa de ativação
  • 45.
    Os vários mapasde ativação são empilhados, para gerar uma “nova imagem” P.ex.: 6 filtros 5x5 geram 6 mapas 28x28, ou uma, nova imagem de 28x28x6
  • 46.
    Uma CNN éuma sequência de camadas convolucionais intercaladas por funções de ativação (activation functions) Note a redução espacial dos volumes
  • 47.
    Um mapa deativação é uma camada de saída de neurônios Cada neurônio conecta-se a uma pequena região da entrada Todos compartilham parâmetros Os neurônios estão arranjados em uma grade 3D
  • 48.
    Não-linearidades são necessáriaspara aprender representações complexas dos dados (não-lineares) Por elemento (independente) max(0, x) é a mais usada
  • 49.
    Torna a representaçãomenor e mais “gerenciável” Opera sobre cada mapa de ativação de forma independente
  • 50.
    A função demax pooling é a mais comum
  • 51.
    A Fully ConnectedLayer (FC) contém neurônios conectados a todo o volume de entrada, como uma RN convencional A última camada da CNN normalmente é uma FC • O tamanho da saída é igual ao número de classes
  • 52.
    Reconstrução da imagema partir das características extraídas Understanding deep image representations by inverting them [Mahendran and Vedaldi CVPR 2015]
  • 53.
    LeNet [LeCun etal. 1998] Gradient-based learning applied to document recognition [LeCun, Bottou, Bengio, Haffner 1998]
  • 54.
    Entrada Camada 5 Camada 3 Camada1 *Animações em http://yann.lecun.com/exdb/lenet/index.html
  • 55.
    Anos 1990-2000 SVM (SupportVector Machine), Vapniki et al.(1993), uma arquitetura não-profunda, reinou...
  • 56.
    Framework semelhante aode [LeCun98], mas: Modelo maior (7 hidden layers, 650 mil neurônios, 60 milhões de parâmetros) Mais dados (106 vs. 103 imagens) Mais poder computacional: Uso de GPU (50x speedup vs CPU) • Trainada em duas GPUs por ~1 semana A. Krizhevsky, I. Sutskever, and G. Hinton, ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012
  • 58.
    Estamos vivendo oamanhecer da era “Big data” The Internet
  • 59.
    NVIDIA Tesla GPUcom Kleper e Cuda
  • 63.
    Detecção de regiões(objetos contidos em retângulos) Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks [Ren et al. NIPS 2015]
  • 64.
    Rotulagem de pixels Segmentação semântica DeepEdge: A Multi-Scale Bifurcated Deep Network for Top-Down Contour Detection [Bertasius et al. CVPR 2015]
  • 65.
    Rotulagem de pixels Segmentação semântica Fully Convolutional Networks for Semantic Segmentation [Long et al. CVPR 2015]
  • 66.
    Criação de pinturasatravés de um exemplo e esboço Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks [Champandard 2016]
  • 67.
    Para regressão DeepPose: HumanPose Estimation via Deep Neural Networks [Toshev and Szegedy CVPR 2014]
  • 68.
    Como métrica desimilaridade para matching FaceNet [Schroff et al. 2015] Match ground and aerial images [Lin et al. CVPR 2015]
  • 69.
    Para geração automáticade legendas de imagens(image caption generator) Show and Tell: A Neural Image Caption Generator [Vinyals et al. 2015]
  • 70.
    Visual Question Answering DeepLearning for Visual Question Answering [Singh 2015]
  • 71.
  • 72.
    Seus problemas acabaram! AWS(Amazon Web Service) – AWS EC2 GPU Spot Instance: g2.2xlarge -US$0.1477 per hour
  • 73.
    Nvidia DIGITS DevBox! 4TITAN X GPUs with 12GB of memory/GPU 64GB DDR4 Asus X99-E WS workstation class motherboard Core i7-5930K 6 Core 3.5GHz 3 3TB SATA 6Gb 3.5” Enterprise HD in RAID5 512GB PCI-E M.2 SSD cache for RAID 250GB SATA 6Gb Internal SSD 1600W Power Supply Unit Ubuntu 14.04 NVIDIA-qualified driver NVIDIA® CUDA® Toolkit 7.0 NVIDIA® DIGITS™ SW Caffe, Theano, Torch, BIDMach