SlideShare uma empresa Scribd logo
1 de 74
Baixar para ler offline
$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

Mais conteúdo relacionado

Mais procurados

Sociedade dos poetas mortos (Análise)
Sociedade dos poetas mortos (Análise)Sociedade dos poetas mortos (Análise)
Sociedade dos poetas mortos (Análise)Ronaldo Gobbis
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismosdiogoa21
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordGabriel Albuquerque
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaAlexandre Duarte
 
Resolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacionalResolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacionalVitor Hugo Melo Araújo
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1Eder Samaniego
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodEduardo Nicola F. Zagari
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Distribuição de frequencia
Distribuição de frequenciaDistribuição de frequencia
Distribuição de frequenciaAsafe Salomao
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaMario Sergio
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControleGeorge Mendonça
 

Mais procurados (20)

Sociedade dos poetas mortos (Análise)
Sociedade dos poetas mortos (Análise)Sociedade dos poetas mortos (Análise)
Sociedade dos poetas mortos (Análise)
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em MassaGerência de Armazenamento: Sistemas de Armazenamento em Massa
Gerência de Armazenamento: Sistemas de Armazenamento em Massa
 
Resolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacionalResolução da Lista de exercícios - Conversão de bases e aritmética computacional
Resolução da Lista de exercícios - Conversão de bases e aritmética computacional
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Aula 01 - Revisão Algoritmo 1
Aula 01  - Revisão Algoritmo 1Aula 01  - Revisão Algoritmo 1
Aula 01 - Revisão Algoritmo 1
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Distribuição de frequencia
Distribuição de frequenciaDistribuição de frequencia
Distribuição de frequencia
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
08 modificadores static
08   modificadores static08   modificadores static
08 modificadores static
 
Pseudoparalelismo
PseudoparalelismoPseudoparalelismo
Pseudoparalelismo
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs Java
 
PHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de ControlePHP 5.3 - Estruturas de Controle
PHP 5.3 - Estruturas de Controle
 

Semelhante a Aprendizado Profundo & CNNs

Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasClassificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasFabio Spanhol
 
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem VisualAhirton Lopes
 
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem VisualAhirton Lopes
 
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem VisualAhirton Lopes
 
[Jose Ahirton lopes] Do Big ao Better Data
[Jose Ahirton lopes] Do Big ao Better Data[Jose Ahirton lopes] Do Big ao Better Data
[Jose Ahirton lopes] Do Big ao Better DataAhirton Lopes
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem VisualAhirton Lopes
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial -  Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial -  Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem VisualAhirton Lopes
 
Redes neurais e lógica fuzzy
Redes neurais e lógica fuzzyRedes neurais e lógica fuzzy
Redes neurais e lógica fuzzyRenato Ximenes
 
Aprendizagem Não-Supervisionada
Aprendizagem Não-SupervisionadaAprendizagem Não-Supervisionada
Aprendizagem Não-SupervisionadaLuís Nunes
 
Aprendizagem Automática
Aprendizagem AutomáticaAprendizagem Automática
Aprendizagem Automáticabutest
 
Tchelinux 2014 visão computacional
Tchelinux 2014 visão computacionalTchelinux 2014 visão computacional
Tchelinux 2014 visão computacionalfelipe_cr
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...
Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...
Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...Ricardo Viana Vargas
 
Um Reconhecedor de Padrões Espaço-Temporais Inspirado no Neocórtex
Um Reconhecedor de Padrões Espaço-Temporais Inspirado no NeocórtexUm Reconhecedor de Padrões Espaço-Temporais Inspirado no Neocórtex
Um Reconhecedor de Padrões Espaço-Temporais Inspirado no NeocórtexRafael Pinto
 

Semelhante a Aprendizado Profundo & CNNs (20)

Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens HistopatológicasClassificação Automatizada de Câncer de Mama - Imagens Histopatológicas
Classificação Automatizada de Câncer de Mama - Imagens Histopatológicas
 
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
 
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual
[Jose Ahirton Lopes] Deep Learning - Uma Abordagem Visual[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
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
[Ahirton Lopes e Rafael Arevalo] Deep Learning - Uma Abordagem Visual
 
[Jose Ahirton lopes] Do Big ao Better Data
[Jose Ahirton lopes] Do Big ao Better Data[Jose Ahirton lopes] Do Big ao Better Data
[Jose Ahirton lopes] Do Big ao Better Data
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
 
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial -  Uma Abordagem Visual[Jose Ahirton Lopes] Inteligencia Artificial -  Uma Abordagem Visual
[Jose Ahirton Lopes] Inteligencia Artificial - Uma Abordagem Visual
 
Redes neurais e lógica fuzzy
Redes neurais e lógica fuzzyRedes neurais e lógica fuzzy
Redes neurais e lógica fuzzy
 
160277 redes neurais artificiais
160277 redes neurais artificiais160277 redes neurais artificiais
160277 redes neurais artificiais
 
Aprendizagem Não-Supervisionada
Aprendizagem Não-SupervisionadaAprendizagem Não-Supervisionada
Aprendizagem Não-Supervisionada
 
Aprendizagem Automática
Aprendizagem AutomáticaAprendizagem Automática
Aprendizagem Automática
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Tchelinux 2014 visão computacional
Tchelinux 2014 visão computacionalTchelinux 2014 visão computacional
Tchelinux 2014 visão computacional
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Sistemas Cognitivos
Sistemas CognitivosSistemas Cognitivos
Sistemas Cognitivos
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
AulaAula1(introducao)
AulaAula1(introducao)AulaAula1(introducao)
AulaAula1(introducao)
 
Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...
Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...
Aplicando Redes Neurais e Estimativa Análoga para Determinar o Orçamento do P...
 
Um Reconhecedor de Padrões Espaço-Temporais Inspirado no Neocórtex
Um Reconhecedor de Padrões Espaço-Temporais Inspirado no NeocórtexUm Reconhecedor de Padrões Espaço-Temporais Inspirado no Neocórtex
Um Reconhecedor de Padrões Espaço-Temporais Inspirado no Neocórtex
 
Cs 2
Cs 2Cs 2
Cs 2
 

Mais de Fabio Spanhol

Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Quem Tem Medo do Terminal?
Quem Tem Medo do Terminal?Fabio Spanhol
 
Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Python Training #0.5 ed. 7
Python Training #0.5 ed. 7Fabio Spanhol
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6 Fabio Spanhol
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 
Python Training #1 - ed5
Python Training #1 - ed5Python Training #1 - ed5
Python Training #1 - ed5Fabio Spanhol
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosFabio Spanhol
 
Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python Mostrando a Cobra - Breve Introdução à Linguagem Python
Mostrando a Cobra - Breve Introdução à Linguagem Python Fabio Spanhol
 
Python Training #1 - ed4
Python Training #1 - ed4Python Training #1 - ed4
Python Training #1 - ed4Fabio Spanhol
 
ENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioENEM - Exame Nacional do Ensino Médio
ENEM - Exame Nacional do Ensino MédioFabio Spanhol
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoFabio Spanhol
 
Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Elaboração e Gerenciamento de Projetos
Elaboração e Gerenciamento de Projetos Fabio Spanhol
 
XML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosXML-RPC: Tópicos Introdutórios
XML-RPC: Tópicos IntrodutóriosFabio Spanhol
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2Fabio Spanhol
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Fabio Spanhol
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialFabio Spanhol
 
E essa tal Virtualização?
E essa tal Virtualização?E essa tal Virtualização?
E essa tal Virtualização?Fabio Spanhol
 
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução à Linguagem PythonFabio Spanhol
 
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2Fabio Spanhol
 

Mais de Fabio Spanhol (20)

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

Último

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 

Último (8)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 

Aprendizado Profundo & CNNs

  • 1.
  • 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”
  • 5.
  • 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)
  • 7.
  • 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)
  • 21.
  • 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
  • 28.
  • 29. Célula especializada em conduzir impulsos elétricos Tecido nervoso (H&E) e representação esquemática de um neurônio
  • 30.
  • 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
  • 34.
  • 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”
  • 37.
  • 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!
  • 40.
  • 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
  • 57.
  • 58. Estamos vivendo o amanhecer da era “Big data” The Internet
  • 59. NVIDIA Tesla GPU com Kleper e Cuda
  • 60.
  • 61.
  • 62.
  • 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