O documento apresenta uma introdução ao Deep Learning com o TensorFlow. Apresenta conceitos de Big Data, Machine Learning e Deep Learning. Explica o que é o TensorFlow, como instalá-lo e exemplos básicos de uso, incluindo regressão linear, redes LSTM e classificação de imagens. Por fim, fornece dicas e recursos para estudar o assunto.
2. 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!)
4. Globalcode – Open4education
Big Data e Machine Learning
Muitos, muitos dados disponíveis:
Redes sociais
Sensores
Mobile
É importante saber o que fazer com os dados!
Descobrir insights, padrões, erros, detectar fraudes, compreender
cenários
Machine Learning pode ajudar a lidar com dados e agregar algo ao
negócio!
http://bit.ly/2bTvwKe https://xkcd.com/1331/
5. Globalcode – Open4education
Exemplos
Teclado do WhatsApp: sugestão de palavras
Encontrar rosto e identificar pessoas nas fotos
Identificar partes do corpo (Kinect) e da mão (Leap Motion)
O que você lê na timeline das redes sociais
Recomendações da Netflix e em e-commerce
Previsão de sintomas/doenças a partir de dados
Controle de robôs e carros que andam sozinhos
Encontrar ‘fatos novos’ em dados (jornalismo)
Identificar ‘sentimento’ do público acerca de jogadores de futebol
Criar obras de arte, notícias, música, trailer de cinema, perfil fake em
rede social
Gerar texto e imagem como se fosse o autor original
6. Globalcode – Open4education
Deep Learning
Algoritmos antigos: muito processamento e baixa “qualidade”
Deep Learning envolve técnicas para resultados melhores:
Maior acurácia
Arquitetura (CPU e GPU)
Processamento distribuído
Design da rede
Otimizaçã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!
9. Globalcode – Open4education
TensorFlow
Biblioteca do Google para machine learning
Completou 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
10. Globalcode – Open4education
TensorFlow - Instalação
Windows: use docker! Passo a passo em: http://bit.ly/1VoyDKL
Demo: 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/1RudtK3
Demo: 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
11. 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 TensorFlow
hello = tf.constant('Hello, TensorFlow!')
# Inicia a sessão
sess = tf.Session()
# Executa a Operacao
print(sess.run(hello))
12. Globalcode – Open4education
TensorFlow – Operações
Operações podem ser realizadas em constantes e variáveis do TF
Cada 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 constantes
a = 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))
13. 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 + b
A cada época mostramos:
Nro da época
Erro médio
Custo
Pesos (W) e b
14. Globalcode – Open4education
TensorFlow + TFLearn
TF é lib de baixo nivel. Muita codificação!
TFLearn (http://tflearn.org/) ajuda quem está começando a aprender
Baseada em conceitos do Scikit-learn: métodos fit() e predict()
Exemplo: Regressão linear com o TF + TFLearn
Arquivo TFLearnLinReg.py
15. Globalcode – Open4education
TensorFlow: redes LSTM
Redes tipo LSTM (Long Short Term Memory) permitem gerar novos
“conteúdos” a partir de dados
Exemplo 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/2gEwRvh
Completando pedaços que faltam em imagens: http://bit.ly/2dgOxIv
16. 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
17. Globalcode – Open4education
Guia de estudos
Primeiro:
Tenha um bom conhecimento geral de machine learning
Aprenda conceitos de redes neurais
FUJA do exemplo MNIST do TF! Procure algo mais simples para
começar
TFLearn tem bons exemplos: http://bit.ly/2g8nwID
TF passo a passo: http://learningtensorflow.com/
Canal DeepLearning.TV no YouTube: http://bit.ly/1QMDx6b
Canal do Sirajology no YouTube: http://bit.ly/2gqb2wb
TF na plataforma CodinGame: http://bit.ly/2gEzOvy
Curso de DeepLearning no Udacity: http://bit.ly/2fsElw9
Livros: http://bit.ly/29WmfTN http://amzn.to/2fbXEPf
http://bit.ly/2fVU22U
18. Globalcode – Open4education
Conclusão
TensorFlow é 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?)