SlideShare uma empresa Scribd logo
1 de 19
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!)
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 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/
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
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!
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 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
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
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))
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))
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
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
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
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 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
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?)
Globalcode – Open4education
Perguntas?
Dr. Mauro Pichiliani
mauro@pichiliani.com.br
@pichiliani

Mais conteúdo relacionado

Mais procurados

Aula 5 - Redes de computadores
Aula 5 - Redes de computadoresAula 5 - Redes de computadores
Aula 5 - Redes de computadoresLucasMansueto
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIDalton Martins
 
Aula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDIAula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDIJarley Nóbrega
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 
Banco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosBanco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosSuzana Viana Mota
 
Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]Ricardo Silva
 
PROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVELPROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVELWELLINGTON MARTINS
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de ProgramaçãoAndré Agostinho
 

Mais procurados (20)

Aula 5 - Redes de computadores
Aula 5 - Redes de computadoresAula 5 - Redes de computadores
Aula 5 - Redes de computadores
 
Planejamento rede
Planejamento rede Planejamento rede
Planejamento rede
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Aula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte IIAula 07 - Projeto de Topologia e Exercícios - Parte II
Aula 07 - Projeto de Topologia e Exercícios - Parte II
 
Aula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDIAula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDI
 
Uml
UmlUml
Uml
 
Aula1 historia das redes
Aula1   historia das redesAula1   historia das redes
Aula1 historia das redes
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
TCP/IP
TCP/IPTCP/IP
TCP/IP
 
Banco de Dados Orientado a Objetos
Banco de Dados Orientado a ObjetosBanco de Dados Orientado a Objetos
Banco de Dados Orientado a Objetos
 
Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]Estrutura condicional com Ruby[AULA-2]
Estrutura condicional com Ruby[AULA-2]
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
PROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVELPROJETO DE REDE TELEFONIA MOVEL
PROJETO DE REDE TELEFONIA MOVEL
 
Topologias de rede
Topologias de redeTopologias de rede
Topologias de rede
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 

Semelhante a Introdução ao Deep Learning com o TensorFlow

Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and KerasSandro Moreira
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Aplicações não convencionais de grafos
Aplicações não convencionais de grafosAplicações não convencionais de grafos
Aplicações não convencionais de grafospichiliani
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeAécio Pires
 
Transfer learning e tensorflow hub
Transfer learning e tensorflow hubTransfer learning e tensorflow hub
Transfer learning e tensorflow hubLucas Oliveira
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoandreluizlugon
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Gustavo Pereira
 
Projeto TCOS - III ENSOL
Projeto TCOS - III ENSOLProjeto TCOS - III ENSOL
Projeto TCOS - III ENSOLAécio Pires
 
Análise de Tráfego TCP/IP
Análise de Tráfego TCP/IPAnálise de Tráfego TCP/IP
Análise de Tráfego TCP/IPThiago Finardi
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...Renato Groff
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoFelipeDi
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoWeldir Fernando Dias
 

Semelhante a Introdução ao Deep Learning com o TensorFlow (20)

Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Hands On TensorFlow and Keras
Hands On TensorFlow and KerasHands On TensorFlow and Keras
Hands On TensorFlow and Keras
 
Dismistificando deep learning v2.1
Dismistificando deep learning v2.1Dismistificando deep learning v2.1
Dismistificando deep learning v2.1
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Aplicações não convencionais de grafos
Aplicações não convencionais de grafosAplicações não convencionais de grafos
Aplicações não convencionais de grafos
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Configuração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as codeConfiguração de ativos de rede utilizando a abordagem infrastructure as code
Configuração de ativos de rede utilizando a abordagem infrastructure as code
 
Devfest cerrado2017
Devfest cerrado2017Devfest cerrado2017
Devfest cerrado2017
 
Transfer learning e tensorflow hub
Transfer learning e tensorflow hubTransfer learning e tensorflow hub
Transfer learning e tensorflow hub
 
Cygwin
CygwinCygwin
Cygwin
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Sim, existe vida além do FTP!
Sim, existe vida além do FTP!Sim, existe vida além do FTP!
Sim, existe vida além do FTP!
 
Projeto TCOS - III ENSOL
Projeto TCOS - III ENSOLProjeto TCOS - III ENSOL
Projeto TCOS - III ENSOL
 
Dismistificando deep learning
Dismistificando deep learningDismistificando deep learning
Dismistificando deep learning
 
Análise de Tráfego TCP/IP
Análise de Tráfego TCP/IPAnálise de Tráfego TCP/IP
Análise de Tráfego TCP/IP
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 

Mais de pichiliani

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentadapichiliani
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona víruspichiliani
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...pichiliani
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teachingpichiliani
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robôpichiliani
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientistapichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningpichiliani
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLpichiliani
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka? pichiliani
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualpichiliani
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?pichiliani
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastpichiliani
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015pichiliani
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...pichiliani
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...pichiliani
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLpichiliani
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimentopichiliani
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Applicationpichiliani
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Applicationpichiliani
 

Mais de pichiliani (20)

Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade AumentadaRastreamento de Objetos em Realidade Virtual e Realidade Aumentada
Rastreamento de Objetos em Realidade Virtual e Realidade Aumentada
 
Interfaces hands free para o mundo atual e pós-Corona vírus
Interfaces hands free para o mundo atual  e pós-Corona vírusInterfaces hands free para o mundo atual  e pós-Corona vírus
Interfaces hands free para o mundo atual e pós-Corona vírus
 
The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...The Effect of Audiences On the User Experience of Conversational Interfaces i...
The Effect of Audiences On the User Experience of Conversational Interfaces i...
 
Machine Learning & Machine Teaching
Machine Learning & Machine TeachingMachine Learning & Machine Teaching
Machine Learning & Machine Teaching
 
TJBot: Incorporando um chatbot em um robô
TJBot:  Incorporando um chatbot em um robôTJBot:  Incorporando um chatbot em um robô
TJBot: Incorporando um chatbot em um robô
 
Carreira de cientista
Carreira de cientistaCarreira de cientista
Carreira de cientista
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
O papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learningO papel do DBA no mundo de ciência de dados e machine learning
O papel do DBA no mundo de ciência de dados e machine learning
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka?
 
Rastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtualRastreamento 3D de objetos para realidade virtual
Rastreamento 3D de objetos para realidade virtual
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?
 
MediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCastMediaKit 2016 do DatabaseCast
MediaKit 2016 do DatabaseCast
 
Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015Projeto AMedCA - Concurso Casa conectada 2015
Projeto AMedCA - Concurso Casa conectada 2015
 
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
A User Interface Usability Evaluation of the Electronic Ballot Box used in th...
 
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...Evaluation of the Android Accessibility API Recognition Rate towards a Better...
Evaluation of the Android Accessibility API Recognition Rate towards a Better...
 
Como lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQLComo lidar com dados temporais e intervalos com a linguagem SQL
Como lidar com dados temporais e intervalos com a linguagem SQL
 
Novidades desenvolvimento
Novidades desenvolvimentoNovidades desenvolvimento
Novidades desenvolvimento
 
Projeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement ApplicationProjeto HTMA - Trand Tremor Measurement Application
Projeto HTMA - Trand Tremor Measurement Application
 
HTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement ApplicationHTMA: Hand Tremor Measurement Application
HTMA: Hand Tremor Measurement Application
 

Introdução ao Deep Learning com o TensorFlow

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