SlideShare uma empresa Scribd logo
1 de 39
Dismistificando Deep Learning
Leandro Romualdo
Short BIO
www.linkedin.com/in/leandroromualdo
https://twitter.com/Leandro_Romuald
http://www.datascienceinstitute.com.br/
leandroromualdosilva@gmail.com
Agenda
Deep Learning
Redes Neurais
Frameworks
Demo TensorFlow
Onde Aprender
Perguntas
Deep Learning
Área de pesquisa em machine learning com objetivo de aproximar
machine learning de Inteligência artificial.
Uma estrutura de Deep Learning é uma arquitetura de vários niveis
Composta de unidades simples e todas sujeitas a treinamento, muitas
possuem transformações não lineares.
Cada camada tranforma sua entrada para melhorar suas
propriedades
Seleciona e amplifica apenas aspectos relevantes
DeepLearning
https://blogs-images.forbes.com/louiscolumbus/files/2017/08/hype-cycle-for-emerging-
technologies-2017.jpg
Deep Learning
https://www.nextbigfuture.com/2016/03/how-scale-is-enabling-deep-learning.html
Deep Learning
https://www.nextbigfuture.com/2016/03/how-scale-is-enabling-deep-learning.html
Processamento com GPU
• Plataforma de computação paralela, que permite ganhos
significativos de performance usando unidade de processamento
gráfico (GPU).
• Surgimento no final da década de 90
• Antigamente utilizava linguagem de baixo nível (ex. OpenGL)
• Em 2006 surgiu a CUDA
• Cuda ToolKit suporta linguagens C, C++, Python e Fortran
CUDA
http://www.nvidia.com.br/object/cuda_home_new_br.html
Deep Learning - Layers
https://devblogs.nvidia.com/parallelforall/accelerate-machine-learning-cudnn-deep-neural-
network-library/
Hierarquia das Layers para identificação de rosto.
Redes Neurais
• Arquiteturas que tem trazido muitos resultados nos dias atuais:
• Convolutional Neural Networks (CNN)
• Ideal para trabalhar com imagens (Dominante neste aspecto)
• Processa dados em forma de múltiplos arrays
• Camada de Input bidimensional
• Características analisadas em pixels da imagem
• Recurrent Neural Network (RNN)
• Faz uso de informações sequenciais, muito avançadas, pouca documentação
• Bons resultados em Processamento de linguagem natural.
• LSTM (Long Short term-memory), Ideal para trabalhar com dados sequenciais
Identificar próxima palavra de uma frase.
• Executa a mesma tarefa para cada elemento de uma sequência, tornando a
saída dependente dos cálculos anteriores.
NeurônioBiológico
• Cérebro humano possui cerca de 10 Bilhões de neurônios.
• 60 Trilhões de Sinapses
Redes Neurais
Arquitetura de uma rede Deep Feed Forward
Redes Neurais
Diversas arquiteturas disponíveis, Uma para tipo de problema
http://www.asimovinstitute.org/neural-network-zoo/
Arquitetura completa
Rede neural convolucional para reconhecimento visual
http://cs231n.stanford.edu/
• Escrita de novos episódios de GOT, rede LSTM link do projeto no
github aqui.
• Detecção de câncer por redes neurais convolucionais, leia mais aqui.
• Rede LSTM completa imagens faltando pedaços, link
Redes Neurais,
alguns exemplos
Frameworks
https://developer.nvidia.com/deep-learning-frameworks
Open Source Interface Plataform Written In Cuda Support
YES PYTHON, LINUX, C++ YES
MATLAB MAC OS X,
WINDOWS
YES PYTHON, LINUX, C++ YES
C++ WINDOWS,
MAC OS X
YES PYTHON LINUX, PYTHON YES
MAC OS X,
WINDOWS
YES PYTHON, LINUX, C++,PYTHON YES
R, LUA, C,C++ MAC OS X,
,JAVA, GO WINDOWS
YES PYTHON, LINUX, PYTHON YES
R MAC OS X,
WINDOWS
YES LUA,C,C++ LINUX, C, LUA YES
MAC OS X,
WINDOWS,
ANDROID,IOS
Exemplo de hoje
Biblioteca do Google
Documentação muito rica (Inglês)
Muitos exemplos na internet (Mnist, desafios do Kaggle, etc)
Baseado em Tensores e grafos
Comunidade ativa
CPU + GPU
Uso de GPU Necessita de CUDA ToolKit, cuDNN
Uso de GPU não necessita alterações no codigo
TensorFlow
• Biblioteca de computação numérica onde os dados fluem através dos
grafos
• Os dados são representados por arrays n-dimensionais chamados
tensores
• Os nodes do grafo representam operações matemáticas
• Programação diferenciada. Nada acontece até executar a sessão
Plataformas
Linguagens
Arquitetura
https://www.tensorflow.org/extend/architecture
Client, Inicia o fluxo de
Dados executando a sessão
Session.run() Faz a distribuição entre
As workers, para criação
De subgrafos.
Comunicação CPU + GPU
Utiliza API cudaMemcpyAsync.
E para comunicação multi GPU
Utiliza biblioteca NCCL.
tf.contrib.nccl
Contém mais de 200 operações
Padrão. Manipulações matemáticas
, manipulação de matriz, grande parte
Usa se beneficia de bibliotecas
Como Eigen::Tensor e cuDNN.
Estrutura de código
Criar constrante
Iniciar sessão
Executar operação
Import tensorflow as tf
# Cria Constant chamada Hello com a string “Hello, TensorFlow”
Hello = tf.constant(‘Hello, TensorFlow’)
# Cria sessão
Sess = tf.session()
# Executa a sessão e imprime resultado
Print(sess.run(hello))
TensorBoard
• Interface gráfica, mas não para treinar modelos de Deep Learning e Machine Learning
• Permite a visualização dos grafos
• Ideal para analisar camadas de redes neurais
• Visualização de até 36 Mil Nodes
Trabalhando com Imagens
• Transforma imagem em matriz multi-dimensional
• Ótica por:
• Quantidade de Pixels
• Canais de cores
• Largura
• Altura
• Cada camada é responsável por analisar uma parte da foto
• Borda
• Fundo
• Slyce para detecção de rostos e objetos
Trabalhando com Imagens
Demo
# Carrega Imagem
import matplotlib.image as mp_image
filename = "image.jpg"
input_image = mp_image.imread(filename)
# Dimensões
print ('input dim = {}'.format(input_image.ndim))
# Shape
print ('input shape = {}'.format(input_image.shape))
# Coleta dimensões
height, width, depth = input_image.shape
# Imprime a imagem
import matplotlib.pyplot as plt
plt.imshow(input_image)
plt.show()
import tensorflow as tf
x = tf.Variable(input_image, name = 'x')
model = tf.initialize_all_variables()
with tf.Session() as session:
x = tf.transpose(x, perm = [1,0,2])
session.run(model)
result=session.run(x)
plt.imshow(result)
plt.show()
MNIST
http://yann.lecun.com/exdb/mnist/
MNIST
DEMO
Imagenet
• 14197122 Imagens
• 1000+ classes
http://www.image-net.org/
TensorFlow para machine learning
Regressão linear
Clustering K-Means
KNN
Classificação
Etc
https://www.tensorflow.org/community/welcome/
ComunidadeTensorflow
TensorFlow - Playground
http://playground.tensorflow.org/
Onde aprender
https://www.nvidia.com/en-us/deep-learning-ai/education/
Deep Learning Institute - NVidia
Kaggle - Kernels
https://www.kaggle.com/kernels
Perguntas
Obrigado
Links
• https://www.infoq.com/br/articles/livro-mit-deep-learning
• http://www.convergenciadigital.com.br/cgi/cgilua.exe/sys/start.htm?UserActiveT
emplate=site&infoid=41957&sid=15
• http://conteudo.icmc.usp.br/pessoas/andre/research/neural/
• https://pt.wikipedia.org/wiki/Rede_neural_artificial
• http://www.datasciencecentral.com/profiles/blogs/end-to-end-deep-
learning?utm_content=buffer3af33&utm_medium=social&utm_source=linkedin.
com&utm_campaign=buffer
• http://aimotion.blogspot.com.br/2008/12/funes-de-ativao-para-redes-
neurais.html
• http://www.datasciencecentral.com/profiles/blogs/15-deep-learning-
tutorials?utm_content=bufferd5067&utm_medium=social&utm_source=linkedin.
com&utm_campaign=buffer
• https://tensorflow.rstudio.com/
• https://www.youtube.com/watch?v=Qk4SqF9FT-M

Mais conteúdo relacionado

Semelhante a Dismistificando deep learning

Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowpichiliani
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Intel Software Brasil
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!Luciano Palma
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Intel Software Brasil
 
Transfer learning e tensorflow hub
Transfer learning e tensorflow hubTransfer learning e tensorflow hub
Transfer learning e tensorflow hubLucas Oliveira
 
Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Alvaro Viebrantz
 
[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
 
GDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosGDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosCaio Cutrim
 
GDG Conf Node JS sem segredos
GDG Conf Node JS sem segredosGDG Conf Node JS sem segredos
GDG Conf Node JS sem segredosCaio Cutrim
 
Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and KerasSandro Moreira
 
[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
 
[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
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros PassosJackson F. de A. Mafra
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2PrinceGuru MS
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureGiovanni Bassi
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonIP10
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDatatdc-globalcode
 
DDC - workshop deep learning
DDC -  workshop deep learningDDC -  workshop deep learning
DDC - workshop deep learningMarlesson Santana
 

Semelhante a Dismistificando deep learning (20)

Dismistificando deep learning v2.1
Dismistificando deep learning v2.1Dismistificando deep learning v2.1
Dismistificando deep learning v2.1
 
Introdução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlowIntrodução ao Deep Learning com o TensorFlow
Introdução ao Deep Learning com o TensorFlow
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
FISL14: Como domar uma fera de 1 TFlop que cabe na palma da sua mão!
 
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
Palestra: Computação Paralela na SECOMP 2013 (UNIFEI)
 
Transfer learning e tensorflow hub
Transfer learning e tensorflow hubTransfer learning e tensorflow hub
Transfer learning e tensorflow hub
 
Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces Internet das coisas, machine learnign e maquinas de doces
Internet das coisas, machine learnign e maquinas de doces
 
[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
 
GDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosGDG NodeJS Sem Segredos
GDG NodeJS Sem Segredos
 
GDG Conf Node JS sem segredos
GDG Conf Node JS sem segredosGDG Conf Node JS sem segredos
GDG Conf Node JS sem segredos
 
Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and Keras
 
[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
 
[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
 
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout  Tempo Real Eventos - Nodejs - Os Primeiros PassosHangout  Tempo Real Eventos - Nodejs - Os Primeiros Passos
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
 
Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2Phpjedi 090307090434-phpapp01 2
Phpjedi 090307090434-phpapp01 2
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
Ampliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do PythonAmpliando os Horizontes dos Profissionais de Redes através do Python
Ampliando os Horizontes dos Profissionais de Redes através do Python
 
TDC2016SP - Trilha BigData
TDC2016SP - Trilha BigDataTDC2016SP - Trilha BigData
TDC2016SP - Trilha BigData
 
DDC - workshop deep learning
DDC -  workshop deep learningDDC -  workshop deep learning
DDC - workshop deep learning
 

Dismistificando deep learning