SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Sandro Moreira, GDG Rio Verde
@sandro_moreira
Deep Learning do Zero ao
Impossível: Qual o caminho?
Sobre mim
• Organizador do GDG Rio Verde
• Professor Universidade de Rio Verde
• Mestre em Engenharia Mecânica (UNESP)
• Doutorando em Ciência da Computação (UFG)
• Pesquisas com Deep Learning aplicadas ao auxílio no
diagnóstico de doenças cardíacas (DeepCardio)
Questões…
• Por onde eu começo?
• Qual a melhor maneira de aprender Deep Learning?
• Machine Learning e Deep Learning são a mesma coisa?
• Eu preciso saber tudo de matemática para aprender?
• Vou ter que aprender a linguagem X?
Respostas começam com mais perguntas:
• Quanto você já sabe sobre Inteligência Artificial?
• Em que você planeja utilizar Deep Learning?
Até onde você quer chegar?
Níveis de proficiência em Deep Learning
1. Usar redes neurais com modelos conhecidos em
projetos
2. Customizar um modelo ou criar seu próprio modelo
do zero usando técnicas já conhecidas
3. Propor novos métodos, técnicas e arquiteturas de DL
aplicadas a resolução de um problema especifico
O que é Deep Learning?
O que a maioria das
pessoas pensa
O que a mídia
pensa
Crescimento do Deep Learning nos projetos Google
O que podemos fazer com Deep Learning?
O que podemos fazer com Deep Learning?
Reconhecimento de Pessoas
O que podemos fazer com Deep Learning?
Reconhecimento de padrões em imagens médicas
O que podemos fazer com Deep Learning?
Veículos autônomos
O que podemos fazer com Deep Learning?
Replicação de Estilos
O que podemos fazer com Deep Learning?
Veículos autônomos
O que podemos fazer com Deep Learning?
• Geração de sons
• Colorir imagens preto/branco
• Gerar textos automáticos
• Compor músicas
• Tradução, inclusive em tempo real
• Geração de Rostos
• Leitura Labial
• Etc, etc, etc
Como um modelo DL funciona?
Como tudo funciona?
Dados de Entrada
• Podem ser simplesmente números
• Imagens (3 Canais)
• Áudio
• 3D Imagens
• Sequências (Textos, Palavras)
• Speech
• Imagens (Vídeos, gifs)
• Programas
Exemplos de Arquiteturas de Deep Learning
Modelos de Redes Neurais
• Fully Connected Networks
• Convolutional Networks
• Recurrent Networks
Ok, mas… Por onde eu começo então?
Matemática para Machine Learning/Deep Learning
• Álgebra
• Variáveis, Coeficientes e
Funções
• Equações Lineares
• Logaritmo
• Funções Sigmóides
• Álgebra Linear
• Tensor
• Matrizes
• Convolução
• Trigonometria
• Estatística
• Cálculo
• Conceitos de derivada
• Gradiente
• Derivadas Parciais
• Regra da Cadeia
Linguagens de Programação
• Existem diversos frameworks e bibliotecas para um grande
número de linguagens como R, C#, Julia, etc
• Python é a atualmente uma das mais utilizadas
• Bibliotecas Numpy, Pandas, SKLearn, SciPy
• Jupiter Notebooks
Ambiente de Desenvolvimento + Frameworks
API Keras
• Roda sobre frameworks TensorFlow, CNTK, Theano
• API de alto nível oficial do TensorFlow
• Modelos treinados e pré-treinados para experimentos
• Simplificação de criação de camadas de neurônios,
funções, otimizadores, etc
Exemplo de Rede Neural em TensorFlow
import tensorflow as tf
#parametros
learning_rate = 0.01
training_epochs = 5000
display_steps = 100
n_input = 10
n_hidden = 20
n_output = 10
#a partir daqui construimos o modelo
X = tf.placeholder("float",[None,n_input])
Y = tf.placeholder("float",[None,n_output])
weights = {
"hidden":
tf.Variable(tf.random_normal([n_input,n_hidden])),
"output":
tf.Variable(tf.random_normal([n_hidden,n_output])),
}
bias = {
"hidden": tf.Variable(tf.random_normal([n_hidden])),
"output": tf.Variable(tf.random_normal([n_output])),
}
def model(X, weights, bias):
layer1 = tf.add(tf.matmul(X,
weights["hidden"]),bias["hidden"])
layer1 = tf.nn.relu(layer1)
output_layer = tf.matmul(layer1,weights["output"]) +
bias["output"]
return output_layer
pred = model(X,weights,bias)
cost =
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred,
labels=Y))
optimizador = tf.train.AdamOptimizer(learning_rate).minimize(cost)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
for epochs in range(training_epochs):
_, c= sess.run([optimizador,cost],feed_dict
= {X: train_X, Y: train_Y})
if(epochs + 1) % display_steps == 0:
print("Epoch:",epochs+1,"Cost:", c)
print("Optimization Finished")
test_result = sess.run(pred,feed_dict = {X: train_X})
correct_prediction = tf.equal(tf.argmax(test_result,
1),tf.argmax(train_Y,1))
accuracy =
tf.reduce_mean(tf.cast(correct_prediction,"float"))
Exemplo de Rede Neural em Keras
Demo
Cursos On Line
• Machine Learning Crash Course (Google) - Conceitos
essenciais de Machine Learning
• Coursera
• Neural Networks and Deep Learning
• Udacity
• Deep Learning Nanodegree
Links Recomendados
• https://ai.google
• http://playground.tensorflow.org
• https://www.tensorflow.org/guide
• https://keras.io
• http://deeplearning.stanford.edu/tutorial
• http://www.deeplearningbrasil.com.br
https://www.youtube.com/channel/UCnYATTd1RoLQryTqhySI6DQ
Livros Recomendados
https://www.pyimagesearch.com/2018/03/05/7-best-deep-learning-books-reading-right-now/
Obrigado!
Sandro Moreira, GDG Rio Verde
@sandro_moreira

Mais conteúdo relacionado

Semelhante a Deep Learning do Zero ao Impossível: Qual o caminho?

Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...Adolfo Guimaraes
 
Linguística computacional - Tech Week
Linguística computacional - Tech WeekLinguística computacional - Tech Week
Linguística computacional - Tech WeekBruno Guide
 
PyBr21: Explorando características faciais para inferir informações demográficas
PyBr21: Explorando características faciais para inferir informações demográficasPyBr21: Explorando características faciais para inferir informações demográficas
PyBr21: Explorando características faciais para inferir informações demográficasArthur Fortes
 
Aula introducao-redes-neurais
Aula introducao-redes-neuraisAula introducao-redes-neurais
Aula introducao-redes-neuraisLeo Laurett
 
Primeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLPrimeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLDickson S. Guedes
 
“Ativando inteligência com Big Data”.
“Ativando inteligência com Big Data”.“Ativando inteligência com Big Data”.
“Ativando inteligência com Big Data”.digitaltuesday
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
Ciência de Dados com R
Ciência de Dados com RCiência de Dados com R
Ciência de Dados com RAndré Campos
 
Introdução à Visualização de Dados (2015)
Introdução à Visualização de Dados (2015)Introdução à Visualização de Dados (2015)
Introdução à Visualização de Dados (2015)Helder da Rocha
 
Palestra USC/2018 - Carreira em Ciência de Dados
Palestra USC/2018 - Carreira em Ciência de DadosPalestra USC/2018 - Carreira em Ciência de Dados
Palestra USC/2018 - Carreira em Ciência de DadosDiego Cavalca
 
Objetos de Aprendizagem
Objetos de AprendizagemObjetos de Aprendizagem
Objetos de AprendizagemMarcos Arrais
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Gabriel Rubens
 
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE Cloves da Rocha
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine LearningMarcelo Oliveira
 
Ativando Inteligência com Big Data
Ativando Inteligência com Big DataAtivando Inteligência com Big Data
Ativando Inteligência com Big DataHélio Silva
 

Semelhante a Deep Learning do Zero ao Impossível: Qual o caminho? (20)

Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
Minicurso: O que o twitter está pensando? Extraindo informações do twitter ut...
 
Linguística computacional - Tech Week
Linguística computacional - Tech WeekLinguística computacional - Tech Week
Linguística computacional - Tech Week
 
PyBr21: Explorando características faciais para inferir informações demográficas
PyBr21: Explorando características faciais para inferir informações demográficasPyBr21: Explorando características faciais para inferir informações demográficas
PyBr21: Explorando características faciais para inferir informações demográficas
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Aula introducao-redes-neurais
Aula introducao-redes-neuraisAula introducao-redes-neurais
Aula introducao-redes-neurais
 
Primeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQLPrimeiros passos machine learning PostgreSQL
Primeiros passos machine learning PostgreSQL
 
“Ativando inteligência com Big Data”.
“Ativando inteligência com Big Data”.“Ativando inteligência com Big Data”.
“Ativando inteligência com Big Data”.
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Ciência de Dados com R
Ciência de Dados com RCiência de Dados com R
Ciência de Dados com R
 
Aula inaugural computação
Aula inaugural computaçãoAula inaugural computação
Aula inaugural computação
 
Introdução à Visualização de Dados (2015)
Introdução à Visualização de Dados (2015)Introdução à Visualização de Dados (2015)
Introdução à Visualização de Dados (2015)
 
Palestra USC/2018 - Carreira em Ciência de Dados
Palestra USC/2018 - Carreira em Ciência de DadosPalestra USC/2018 - Carreira em Ciência de Dados
Palestra USC/2018 - Carreira em Ciência de Dados
 
Softwares no Cluster - Ney Lemke
Softwares no Cluster - Ney LemkeSoftwares no Cluster - Ney Lemke
Softwares no Cluster - Ney Lemke
 
Objetos de Aprendizagem
Objetos de AprendizagemObjetos de Aprendizagem
Objetos de Aprendizagem
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
 
Desenvolver é...
Desenvolver é...Desenvolver é...
Desenvolver é...
 
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine Learning
 
Ativando Inteligência com Big Data
Ativando Inteligência com Big DataAtivando Inteligência com Big Data
Ativando Inteligência com Big Data
 

Mais de Sandro Moreira

Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine LearningSandro Moreira
 
Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?Sandro Moreira
 
Classificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais ConvolucionaisClassificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais ConvolucionaisSandro Moreira
 
Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialSandro Moreira
 
Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and KerasSandro Moreira
 
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleVendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleSandro Moreira
 

Mais de Sandro Moreira (8)

Comecando tensorflow
Comecando tensorflowComecando tensorflow
Comecando tensorflow
 
Introdução a Machine Learning
Introdução a Machine LearningIntrodução a Machine Learning
Introdução a Machine Learning
 
Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?Como o Google está Democratizando a Inteligência Artificial?
Como o Google está Democratizando a Inteligência Artificial?
 
Classificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais ConvolucionaisClassificando Imagens com Redes Neurais Convolucionais
Classificando Imagens com Redes Neurais Convolucionais
 
Deep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência ArtificialDeep Learning e o Futuro da Inteligência Artificial
Deep Learning e o Futuro da Inteligência Artificial
 
Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and Keras
 
Devfest cerrado2017
Devfest cerrado2017Devfest cerrado2017
Devfest cerrado2017
 
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da GoogleVendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
Vendo nas Nuvens: Uma introdução à API de Visão Computacional da Google
 

Deep Learning do Zero ao Impossível: Qual o caminho?

  • 1. Sandro Moreira, GDG Rio Verde @sandro_moreira Deep Learning do Zero ao Impossível: Qual o caminho?
  • 2. Sobre mim • Organizador do GDG Rio Verde • Professor Universidade de Rio Verde • Mestre em Engenharia Mecânica (UNESP) • Doutorando em Ciência da Computação (UFG) • Pesquisas com Deep Learning aplicadas ao auxílio no diagnóstico de doenças cardíacas (DeepCardio)
  • 3. Questões… • Por onde eu começo? • Qual a melhor maneira de aprender Deep Learning? • Machine Learning e Deep Learning são a mesma coisa? • Eu preciso saber tudo de matemática para aprender? • Vou ter que aprender a linguagem X?
  • 4. Respostas começam com mais perguntas: • Quanto você já sabe sobre Inteligência Artificial? • Em que você planeja utilizar Deep Learning?
  • 5. Até onde você quer chegar?
  • 6. Níveis de proficiência em Deep Learning 1. Usar redes neurais com modelos conhecidos em projetos 2. Customizar um modelo ou criar seu próprio modelo do zero usando técnicas já conhecidas 3. Propor novos métodos, técnicas e arquiteturas de DL aplicadas a resolução de um problema especifico
  • 7. O que é Deep Learning? O que a maioria das pessoas pensa O que a mídia pensa
  • 8.
  • 9. Crescimento do Deep Learning nos projetos Google
  • 10. O que podemos fazer com Deep Learning?
  • 11.
  • 12. O que podemos fazer com Deep Learning? Reconhecimento de Pessoas
  • 13. O que podemos fazer com Deep Learning? Reconhecimento de padrões em imagens médicas
  • 14. O que podemos fazer com Deep Learning? Veículos autônomos
  • 15. O que podemos fazer com Deep Learning? Replicação de Estilos
  • 16. O que podemos fazer com Deep Learning? Veículos autônomos
  • 17. O que podemos fazer com Deep Learning? • Geração de sons • Colorir imagens preto/branco • Gerar textos automáticos • Compor músicas • Tradução, inclusive em tempo real • Geração de Rostos • Leitura Labial • Etc, etc, etc
  • 18. Como um modelo DL funciona?
  • 20. Dados de Entrada • Podem ser simplesmente números • Imagens (3 Canais) • Áudio • 3D Imagens • Sequências (Textos, Palavras) • Speech • Imagens (Vídeos, gifs) • Programas
  • 21. Exemplos de Arquiteturas de Deep Learning
  • 22. Modelos de Redes Neurais • Fully Connected Networks • Convolutional Networks • Recurrent Networks
  • 23. Ok, mas… Por onde eu começo então?
  • 24. Matemática para Machine Learning/Deep Learning • Álgebra • Variáveis, Coeficientes e Funções • Equações Lineares • Logaritmo • Funções Sigmóides • Álgebra Linear • Tensor • Matrizes • Convolução • Trigonometria • Estatística • Cálculo • Conceitos de derivada • Gradiente • Derivadas Parciais • Regra da Cadeia
  • 25. Linguagens de Programação • Existem diversos frameworks e bibliotecas para um grande número de linguagens como R, C#, Julia, etc • Python é a atualmente uma das mais utilizadas • Bibliotecas Numpy, Pandas, SKLearn, SciPy • Jupiter Notebooks
  • 27. API Keras • Roda sobre frameworks TensorFlow, CNTK, Theano • API de alto nível oficial do TensorFlow • Modelos treinados e pré-treinados para experimentos • Simplificação de criação de camadas de neurônios, funções, otimizadores, etc
  • 28. Exemplo de Rede Neural em TensorFlow import tensorflow as tf #parametros learning_rate = 0.01 training_epochs = 5000 display_steps = 100 n_input = 10 n_hidden = 20 n_output = 10 #a partir daqui construimos o modelo X = tf.placeholder("float",[None,n_input]) Y = tf.placeholder("float",[None,n_output]) weights = { "hidden": tf.Variable(tf.random_normal([n_input,n_hidden])), "output": tf.Variable(tf.random_normal([n_hidden,n_output])), } bias = { "hidden": tf.Variable(tf.random_normal([n_hidden])), "output": tf.Variable(tf.random_normal([n_output])), } def model(X, weights, bias): layer1 = tf.add(tf.matmul(X, weights["hidden"]),bias["hidden"]) layer1 = tf.nn.relu(layer1) output_layer = tf.matmul(layer1,weights["output"]) + bias["output"] return output_layer pred = model(X,weights,bias) cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=Y)) optimizador = tf.train.AdamOptimizer(learning_rate).minimize(cost) init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) for epochs in range(training_epochs): _, c= sess.run([optimizador,cost],feed_dict = {X: train_X, Y: train_Y}) if(epochs + 1) % display_steps == 0: print("Epoch:",epochs+1,"Cost:", c) print("Optimization Finished") test_result = sess.run(pred,feed_dict = {X: train_X}) correct_prediction = tf.equal(tf.argmax(test_result, 1),tf.argmax(train_Y,1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction,"float"))
  • 29. Exemplo de Rede Neural em Keras
  • 30. Demo
  • 31.
  • 32. Cursos On Line • Machine Learning Crash Course (Google) - Conceitos essenciais de Machine Learning • Coursera • Neural Networks and Deep Learning • Udacity • Deep Learning Nanodegree
  • 33. Links Recomendados • https://ai.google • http://playground.tensorflow.org • https://www.tensorflow.org/guide • https://keras.io • http://deeplearning.stanford.edu/tutorial • http://www.deeplearningbrasil.com.br https://www.youtube.com/channel/UCnYATTd1RoLQryTqhySI6DQ
  • 35. Obrigado! Sandro Moreira, GDG Rio Verde @sandro_moreira