Introdução ao Deep Learning com o TensorFlow

19
Globalcode – Open4education Introdução ao Deep Learning com o TensorFlow Dr. Mauro Pichiliani @pichiliani [email protected]

Transcript of Introdução ao Deep Learning com o TensorFlow

Page 1: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Introdução ao Deep Learning com o TensorFlow

Dr. Mauro Pichiliani@pichiliani

[email protected]

Page 2: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Quem sou eu

Mestre e doutor em computação pelo ITA

Escritor da SQL Magazine, .NET e Java Magazine

Colaborador do iMasters há 15 anos

Livros “Conversando sobre banco de dados” e “Introdução ao MongoDB”

Co-produtor do DatabaseCast

Consultor independente e autor de cursos on-line e presencais (inclusive de machie learning!)

Experiência com projetos de machine learning

Page 3: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Agenda

Big Data e Machine Learning

Deep Learning

Introdução ao TensorFlow

Exemplos, exemplos e mais exemplos

Conclusão

Page 4: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Big Data e Machine Learning

Muitos, muitos dados disponíveis:Redes sociaisSensoresMobile

É importante saber o que fazer com os dados!Descobrir insights, padrões, erros, detectar fraudes, compreender cenáriosMachine Learning pode ajudar a lidar com dados e agregar algo ao negócio!

http://bit.ly/2bTvwKe https://xkcd.com/1331/

Page 5: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Exemplos

Teclado do WhatsApp: sugestão de palavrasEncontrar rosto e identificar pessoas nas fotosIdentificar partes do corpo (Kinect) e da mão (Leap Motion)O que você lê na timeline das redes sociaisRecomendações da Netflix e em e-commercePrevisão de sintomas/doenças a partir de dadosControle de robôs e carros que andam sozinhosEncontrar ‘fatos novos’ em dados (jornalismo)Identificar ‘sentimento’ do público acerca de jogadores de futebolCriar obras de arte, notícias, música, trailer de cinema, perfil fake em rede socialGerar texto e imagem como se fosse o autor original

Page 6: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Deep Learning

Algoritmos antigos: muito processamento e baixa “qualidade”

Deep Learning envolve técnicas para resultados melhores:Maior acuráciaArquitetura (CPU e GPU) Processamento distribuídoDesign da redeOtimização de parâmetros

Segue modelo clássico do aprendizado supervisionado: dados treinamento + dados teste

Geralmente implementação envolve redes neurais “turbinadas”

Importante: antes do DL é preciso preparar muito bem os dados!

Page 7: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Exemplo de rede neural

Rede neural para identificar presença de rosto em fotos:

Page 8: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

RNN

Deep Learning se concentra no uso redes neurais recorrentes (RNN): Conexão entre nós de forma cíclica

Page 9: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow

Biblioteca do Google para machine learningCompletou 1 ano de vida recentemente !

Recursos para machine learning tradicional e também para deep learning

Linguagens: Python (2.7, 3.4 e 3.5) , C++, Lua, JavaScript e R

Abstrações: tensores e operações (TensorBoard mostra gráfico!)

Requer conhecimento teórico de machine learning

Recursos para escalabilidade: múltiplas CPUs e GPUs

Page 10: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow - Instalação

Windows: use docker! Passo a passo em: http://bit.ly/1VoyDKLDemo: TF no docker + notebook Python

Linux e Mac: um simpes pip install já resolve! Ref: http://bit.ly/2fISO86

Nota: recomenda-se utilizar o TF com outros pacotes (Pandas, Numpy,Scikit-learn). Dica: use o Anaconda http://bit.ly/1RudtK3Demo: Teste do TF no IDE Spyder

TF é complexo de lidar! Pode-se utilizar libs mais simples para iniciantes. Recomendação: TFLearn (http://tflearn.org/) e Keras (https://keras.io/)

Instalação é simples com o pip install

Page 11: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow – Hello Word

Tensores (matrizes multidimensionais++) e operações junto com grafos (nós e arestas)Fluxo de dados (flow): operações modificam tensores enviados para próximas operações que modificam tensores....Repos. com exemplos: http://bit.ly/1Qp0uJX e http://bit.ly/24kgh3P Exemplo: TFHello.py

import tensorflow as tf

# Cria uma constrante no TensorFlowhello = tf.constant('Hello, TensorFlow!')

# Inicia a sessãosess = tf.Session()

# Executa a Operacaoprint(sess.run(hello))

Page 12: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow – Operações

Operações podem ser realizadas em constantes e variáveis do TFCada nó realiza uma operação e recebe as entradas (inputs) e saídas (outputs)

Exemplo: Multiplicação e soma de inteiros e matrizes TFSomaMultiplica.py

...# Criando as constantesa = tf.constant(2)b = tf.constant(3)

# Iniciando o grafo with tf.Session() as sess: print("a=2, b=3") print("Adição: %i" % sess.run(a+b)) print("Multiplicação: %i" % sess.run(a*b))

Page 13: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow – Regressão Linear

Trabalhar com o TF requer saber criar e usar funções:Funções de otimização (Ex: Gradiente descendente)Funções de custo (Ex: MSE)Funções de ativação da rede (Ex: RELU, ELU)

Design da rede (camadas, neurônios, arquitetura) é muito importante!Conceito de épocas, custo, taxa de aprendizado, passos, pesos e bias (viés)

Exemplo: Regressão linear (TFRegLin.py)Uso do modelo linear clássico: y = X*w + bA cada época mostramos:

Nro da épocaErro médioCustoPesos (W) e b

Page 14: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow + TFLearn

TF é lib de baixo nivel. Muita codificação!TFLearn (http://tflearn.org/) ajuda quem está começando a aprenderBaseada em conceitos do Scikit-learn: métodos fit() e predict()Exemplo: Regressão linear com o TF + TFLearnArquivo TFLearnLinReg.py

Page 15: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow: redes LSTM

Redes tipo LSTM (Long Short Term Memory) permitem gerar novos “conteúdos” a partir de dadosExemplo 1: geração de nomes de cidades (ExCidade.py)Exemplo 2: gera trecho da peça de Shakespeare (ExShakespeare.py)

Links relacionados:

Port do “clássico” char-rrn (Andrej Karpathy’s) para o TensorFlow (http://bit.ly/1YGkudz)Gerando imagens abstratas com o TF http://bit.ly/2gEwRvhCompletando pedaços que faltam em imagens: http://bit.ly/2dgOxIv

Page 16: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

TensorFlow: outros exemplos

Reaproveitar modelo e indentificar fotos do Darth Vader http://bit.ly/2gk39r7

Implementando Deep Q Network no TensorFlow para “aprender” a jogar o Pong http://bit.ly/2fbMtG7 http://bit.ly/2gkbsmx

Classificando sentimento de review de filmes (pos. e neg.): http://bit.ly/1OlVJNj

Interface conversacional (chatbot) com o TF: http://bit.ly/2glrXT4

Uso do formato HDF5 para lidar com dados que não cabem na memória http://bit.ly/2gEuecJ

Uso do TF com GPU (local e na núvem AWS EC2) http://bit.ly/2g8hKXa http://bit.ly/2fbQ1Ix http://bit.ly/1PJ0XcO

Page 17: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Guia de estudosPrimeiro:

Tenha um bom conhecimento geral de machine learningAprenda conceitos de redes neurais

FUJA do exemplo MNIST do TF! Procure algo mais simples para começarTFLearn tem bons exemplos: http://bit.ly/2g8nwIDTF passo a passo: http://learningtensorflow.com/Canal DeepLearning.TV no YouTube: http://bit.ly/1QMDx6bCanal do Sirajology no YouTube: http://bit.ly/2gqb2wbTF na plataforma CodinGame: http://bit.ly/2gEzOvyCurso de DeepLearning no Udacity: http://bit.ly/2fsElw9Livros: http://bit.ly/29WmfTN http://amzn.to/2fbXEPf http://bit.ly/2fVU22U

Nota: pouca coisa em português ainda. Ei Google, vamos conversar!

Page 18: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

ConclusãoTensorFlow é lib do Google para Machine Learning

Diversos algoritmos, inclusive Deep Learning!

É preciso saber muitos conceitos de IA antes de usar

Possibilidade de escalar treinamento com CPUs e GPUs

Relativamente nova, mas muito poderosa

Novos recursos estão sendo implementados

Ganhando a liderança em relação ao Torch e Caffe (CNTK?)

Page 19: Introdução ao Deep Learning com o TensorFlow

Globalcode – Open4education

Perguntas?

Dr. Mauro Pichiliani [email protected]@pichiliani