SlideShare uma empresa Scribd logo
Aprendizado Profundo & CNNs
$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 Profundo & CNNs
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)
Aprendizado Profundo & CNNs
"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)
Aprendizado Profundo & CNNs
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
Aprendizado Profundo & CNNs
Célula especializada em conduzir impulsos
elétricos
Tecido nervoso (H&E) e representação esquemática
de um neurônio
Aprendizado Profundo & CNNs
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
Aprendizado Profundo & CNNs
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”
Aprendizado Profundo & CNNs
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!
Aprendizado Profundo & CNNs
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
Aprendizado Profundo & CNNs
Estamos vivendo o amanhecer da era “Big
data”
The Internet
NVIDIA Tesla GPU com Kleper e Cuda
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNs
Aprendizado Profundo & CNNs
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

Mais conteúdo relacionado

PDF
JMS - Java Messaging Service
PPTX
Java Notes by C. Sreedhar, GPREC
PDF
Aula 1 - Introdução a POO
PPTX
PDF
POO - 22 - Tratamento de Exceções em Java
PPTX
Programação orientada a objetos
PPTX
Programação orientada à objetos & mvc
PPT
design patterns - introdução
JMS - Java Messaging Service
Java Notes by C. Sreedhar, GPREC
Aula 1 - Introdução a POO
POO - 22 - Tratamento de Exceções em Java
Programação orientada a objetos
Programação orientada à objetos & mvc
design patterns - introdução

Mais procurados (20)

PPT
Java servlet life cycle - methods ppt
PDF
Introduction to Design Pattern
PPT
Design Patterns
PPT
Ipc ppt
PPTX
Getting started with entity framework
PDF
Python - Introdução Básica
PPTX
Java Multi Thead Programming
PPTX
Algoritmos e Estrutura de Dados - Aula 05
PDF
Apostila lógica de programação
PDF
Generative adversarial networks
PPT
Java Multithreading and Concurrency
PPTX
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
PDF
Introdução à linguagem UML
PPTX
Design Patterns - General Introduction
PDF
Generative Adversarial Networks
DOCX
Exercícios - Herança - Java
PDF
Metodologia orientado a objetos
PDF
Web Design Responsivo
PDF
Exercitando modelagem em UML
PDF
Aula 1 Analise e Projeto
Java servlet life cycle - methods ppt
Introduction to Design Pattern
Design Patterns
Ipc ppt
Getting started with entity framework
Python - Introdução Básica
Java Multi Thead Programming
Algoritmos e Estrutura de Dados - Aula 05
Apostila lógica de programação
Generative adversarial networks
Java Multithreading and Concurrency
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Introdução à linguagem UML
Design Patterns - General Introduction
Generative Adversarial Networks
Exercícios - Herança - Java
Metodologia orientado a objetos
Web Design Responsivo
Exercitando modelagem em UML
Aula 1 Analise e Projeto

Semelhante a Aprendizado Profundo & CNNs (20)

PDF
Aula 3 - Redes Neurais Convolucionais (CNNs).pdf
PDF
Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
PDF
Introdução a Deep Learning
PDF
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
PPTX
Vivo Arena Tech - Unlocking Deep Learning
PPTX
[Jose Ahirton lopes] Do Big ao Better Data
PDF
Introdução a Machine Learning e TensorFlow
PDF
Introdução a Machine Learning e TensorFlow
PPTX
Dismistificando deep learning
PPTX
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
PPTX
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
PPTX
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
PPTX
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
PPTX
Dismistificando deep learning
PDF
Aula introducao-redes-neurais
PDF
Redes Neurais de Aprendizado Profundo (DeepLearning) aplicadas a imagens
PPTX
Palestra - CodeCon Visao Computacional.pptx
PPT
160277 redes neurais artificiais
PPTX
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
PPTX
Dismistificando deep learning v2.1
Aula 3 - Redes Neurais Convolucionais (CNNs).pdf
Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Introdução a Deep Learning
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
Vivo Arena Tech - Unlocking Deep Learning
[Jose Ahirton lopes] Do Big ao Better Data
Introdução a Machine Learning e TensorFlow
Introdução a Machine Learning e TensorFlow
Dismistificando deep learning
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
Dismistificando deep learning
Aula introducao-redes-neurais
Redes Neurais de Aprendizado Profundo (DeepLearning) aplicadas a imagens
Palestra - CodeCon Visao Computacional.pptx
160277 redes neurais artificiais
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
Dismistificando deep learning v2.1

Mais de Fabio Spanhol (20)

PDF
Quem Tem Medo do Terminal?
PDF
Python Training #0.5 ed. 7
PDF
Python Training #1 ed.6
PDF
Python Training #1, ed. 6
PDF
Python Training #1 - ed5
PDF
Linguagem C 01 - Tópicos Introdutórios
PDF
Mostrando a Cobra - Breve Introdução à Linguagem Python
PDF
Python Training #1 - ed4
PDF
Python tutorial-ed3
PDF
ENEM - Exame Nacional do Ensino Médio
PDF
Paradigmas de Linguagens de Programação
PDF
Elaboração e Gerenciamento de Projetos
PDF
XML-RPC: Tópicos Introdutórios
PDF
Tutorial Python ed. #2
PDF
Gestão de Projetos com MS-Project 2010
PDF
Computação Científica com SciPy - Brevíssimo Tutorial
PDF
Tutorial Python - 1
PDF
E essa tal Virtualização?
PDF
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
PDF
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
Quem Tem Medo do Terminal?
Python Training #0.5 ed. 7
Python Training #1 ed.6
Python Training #1, ed. 6
Python Training #1 - ed5
Linguagem C 01 - Tópicos Introdutórios
Mostrando a Cobra - Breve Introdução à Linguagem Python
Python Training #1 - ed4
Python tutorial-ed3
ENEM - Exame Nacional do Ensino Médio
Paradigmas de Linguagens de Programação
Elaboração e Gerenciamento de Projetos
XML-RPC: Tópicos Introdutórios
Tutorial Python ed. #2
Gestão de Projetos com MS-Project 2010
Computação Científica com SciPy - Brevíssimo Tutorial
Tutorial Python - 1
E essa tal Virtualização?
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2

Último (9)

PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Utilizando code blockes por andre backes
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Utilizando code blockes por andre backes
Manejo integrado de pragas na cultura do algodão
Tipos de servidor em redes de computador.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Eng. Software - pontos essenciais para o início
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...

Aprendizado Profundo & CNNs

  • 2. $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)
  • 3. 2001: A Space Odyssey (Kubrick, 1968) “Hal: Hello Dave”
  • 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 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)
  • 9. 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
  • 10. 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
  • 14. Uso de feedback sobre o resultado
  • 15. 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?
  • 16. 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
  • 17. 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
  • 18. 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!
  • 20. 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)
  • 22. Google DeepMind AlphaGo: 4 x Lee Sedol: 1!
  • 23. 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
  • 24. Prof. Andrew NG Stanford University 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, 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 . . . . . . . . .
  • 27. 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
  • 29. Célula especializada em conduzir 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 de Hubel & Weisel, 1959: percepção visual
  • 33. Uma RN multicamada é um classificador não- linear
  • 35. 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
  • 36. Na prática costuma-se usar 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 uma RN tem mais que 2 camadas ocultas ela é profunda!
  • 41. 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)
  • 42. Deslizar espacialmente uma má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 gera um mapa de ativação
  • 45. 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
  • 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 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
  • 48. 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
  • 49. Torna a representação menor e mais “gerenciável” Opera sobre cada mapa de ativação de forma independente
  • 50. A função de max pooling é a mais comum
  • 51. 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
  • 52. Reconstrução da imagem a partir das características extraídas Understanding deep image representations by inverting them [Mahendran and Vedaldi CVPR 2015]
  • 53. LeNet [LeCun et al. 1998] Gradient-based learning applied to document recognition [LeCun, Bottou, Bengio, Haffner 1998]
  • 54. Entrada Camada 5 Camada 3 Camada 1 *Animações em http://yann.lecun.com/exdb/lenet/index.html
  • 55. Anos 1990-2000 SVM (Support Vector Machine), Vapniki et al.(1993), uma arquitetura não-profunda, reinou...
  • 56. 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
  • 58. Estamos vivendo o amanhecer da era “Big data” The Internet
  • 59. NVIDIA Tesla GPU com 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 pinturas atravé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: Human Pose Estimation via Deep Neural Networks [Toshev and Szegedy CVPR 2014]
  • 68. Como métrica de similaridade para matching FaceNet [Schroff et al. 2015] Match ground and aerial images [Lin et al. CVPR 2015]
  • 69. Para geração automática de legendas de imagens(image caption generator) Show and Tell: A Neural Image Caption Generator [Vinyals et al. 2015]
  • 70. Visual Question Answering Deep Learning for Visual Question Answering [Singh 2015]
  • 72. Seus problemas acabaram! AWS (Amazon Web Service) – AWS EC2 GPU Spot Instance: g2.2xlarge -US$0.1477 per hour
  • 73. 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