Aprender Deep Learning pode ser confuso e muitas vezes muito frustrante. Nesta palestra, pretendemos definir um roteiro para ir do nada à fluência em Deep Learning da maneira mais rápida possível. Destacaremos cursos, frameworks, matemática envolvida, métodos e estratégias para você começar e lhe apontar o caminho para ser capaz de usar o Deep Learning para resolução de problemas do mundo real.
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?
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
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
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
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"))
32. Cursos On Line
• Machine Learning Crash Course (Google) - Conceitos
essenciais de Machine Learning
• Coursera
• Neural Networks and Deep Learning
• Udacity
• Deep Learning Nanodegree