View
601
Download
0
Category
Preview:
Citation preview
Globalcode – Open4education
Introdução ao Deep Learning com o TensorFlow
Dr. Mauro Pichiliani@pichiliani
mauro@pichiliani.com.br
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
Globalcode – Open4education
Agenda
Big Data e Machine Learning
Deep Learning
Introdução ao TensorFlow
Exemplos, exemplos e mais exemplos
Conclusão
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/
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
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!
Globalcode – Open4education
Exemplo de rede neural
Rede neural para identificar presença de rosto em fotos:
Globalcode – Open4education
RNN
Deep Learning se concentra no uso redes neurais recorrentes (RNN): Conexão entre nós de forma cíclica
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
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
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))
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))
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
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
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
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
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!
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?)
Globalcode – Open4education
Perguntas?
Dr. Mauro Pichiliani mauro@pichiliani.com.br@pichiliani
Recommended