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

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

  • 1.
    Sandro Moreira, GDGRio Verde @sandro_moreira Deep Learning do Zero ao Impossível: Qual o caminho?
  • 2.
    Sobre mim • Organizadordo 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 ondeeu 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 commais 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ênciaem 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
  • 9.
    Crescimento do DeepLearning nos projetos Google
  • 10.
    O que podemosfazer com Deep Learning?
  • 12.
    O que podemosfazer com Deep Learning? Reconhecimento de Pessoas
  • 13.
    O que podemosfazer com Deep Learning? Reconhecimento de padrões em imagens médicas
  • 14.
    O que podemosfazer com Deep Learning? Veículos autônomos
  • 15.
    O que podemosfazer com Deep Learning? Replicação de Estilos
  • 16.
    O que podemosfazer com Deep Learning? Veículos autônomos
  • 17.
    O que podemosfazer 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 modeloDL funciona?
  • 19.
  • 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 Arquiteturasde Deep Learning
  • 22.
    Modelos de RedesNeurais • Fully Connected Networks • Convolutional Networks • Recurrent Networks
  • 23.
    Ok, mas… Poronde eu começo então?
  • 24.
    Matemática para MachineLearning/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
  • 26.
  • 27.
    API Keras • Rodasobre 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 RedeNeural 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 RedeNeural em Keras
  • 30.
  • 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
  • 34.
  • 35.
    Obrigado! Sandro Moreira, GDGRio Verde @sandro_moreira