Dismistificando
Deep Learning
Leandro Romualdo
I Fórum de tecnologia da informação
São Paulo | Maio 2018
Short bio
www.linkedin.com/in/leandroromualdo
https://twitter.com/Leandro_Romuald
http://www.datascienceinstitute.com.br/
leandroromualdosilva@gmail.com
Agenda
Deep
Learning
Redes Neurais
Frameworks
para Deep
Learning
Demo
Convolutional
Neural
Network
Perguntas
 Subcategoria de Machine learning que
trata as oportunidades de aprendizado
profundo com redes neurais profundas.
 Desenvolvida e melhorada na área
acadêmica desde a década de 50,
ganhando notoriedade nos ultímos anos.
 Em razão do poder computacional atual,
vem sendo amplamente explorada.
Cenário atual Deep learning:
Serviços da internet
• Classificação de
imagens
• Reconhecimento de fala
• NLP
Medicina diagnóstica
• Detecção de câncer
• Diabetes
Mídia e entretenimento
• Tratamento de vídeo
• Tradução em real time
Segurança
• Reconhecimento de
face
• Biometria
• Cyber security
Carros autônomos
• Detecção de pessoas
e objetos
• Melhor trajeto
• Prevenção de colisão
Source: NextBigFuture
• Sabemos que quanto maior a quantidade
de dados maior é a performance
(leia acurácia) dos modelos.
• Com quantidades cada vez maiores de
datasets abertos na internet, torna-se
possível treinar e desenvolver redes
neurais com arquiteturas cada vez
mais profundas.
Alguns datasets para treinar as habilidades de Deep Learning
Imagens
• Minist
• Cifar-10
• CanalTech 256
• STL-10
• COIL100
• Imagenet
Artificial Datasets
• Arcade Universe
• BabyAIShapesDatasets
• ConvexNonConvex
• BackgroundCorrelation
Texto
• 20NewGroups
• Reuters
• Broadcast News
Speech
• TIMIT
Source: Forbes
Deep Learning deve estar com um nível de adoção maduro no pais entre 2 á 5 anos
When Machine learning and art´s meet..
Nvidia Deep learning perception, Lidar Perception and
autonomous Drive
Source: Nvidia
Source: Next big future
GPU Computing
Fluxo de processamento
Redes neurais artificiais
Source : icmc usp
Cenário atual.
Source: Asimovinstitute
• Diversas arquiteturas
disponíveis.
• Uma para cada
problema.
• Novas arquiteturas
surgindo devido ao poder
computacional atual.
• CNN é uma rede do tipo Feed-Foward.
• Utiliza uma variação de perceptrons multicamada, desenvolvidos para
minimizar o uso computacional.
• CNN aprende filtros em que um algoritmo tradicional seria necessário
implementações manuais.
• Usada principalmente em reconhecimento de imagens e processamento
de vídeos, embora já tenha sido usada em processamento de voz e NLP.
CNN – Convolutional
neural network
Matriz de Convolução
• Filtro de matriz utiliza a imagem como matriz primária.
• A imagem é tratada como coleção bidimensional de pixels.
• Geralmente utiliza matrizes 3x3 ou 5x5.
• Cada pixel é analisado e tem seu valor multiplicado pelo valor correspondente no núcleo
(matriz 2).
• E no final soma-se os resultados.
(40*0)+(42*1)+(46*0) + (46*0)+(50*0)+(55*0) + (52*0)+(56*0)+(58*0) = 42
Trabalhando com Imagens
• Imagem tratada como matriz.
• “Shape” da imagem é visto através
das dimensões altura, largura e
canais de cores (RGB).
• Devemos deixar as imagens do
mesmo tamanho(Slice)
• Podemos fazer conversões na
imagem, mudando posição,
Recortando, invertendo lados
(transpose), girando.
• Extração de features pode ser
diretamente onde interessa.
Feature Maps & layers
Desafios de aprendizado:
• Variação Intra-classe
• Distinção de fundo
• Ponto de vista
Frameworks
Source: Nvidia
Open Source Interface Plataform Written In Cuda Support
YES PYTHON, LINUX, C++ YES
MATLAB MAC OS X,
WINDOWS
YES PYTHON, LINUX, C++ YES
C++ WINDOWS,
MAC OS X
YES PYTHON LINUX, PYTHON YES
MAC OS X,
WINDOWS
YES PYTHON, LINUX, C++,PYTHON YES
R, LUA, C,C++ MAC OS X,
,JAVA, GO WINDOWS
YES PYTHON, LINUX, PYTHON YES
R MAC OS X,
WINDOWS
YES LUA,C,C++ LINUX, C, LUA YES
MAC OS X,
WINDOWS,
ANDROID,IOS
Escolhendo Frameworks
•Analisar evolução do Framework (releases,
updates, etc.)
•Linguagem suportada
•Plataforma suportada
•Suporte (documentação, comunidade, etc.)
•Expertise
•Foco no problema
Source: Google Research
• Start 2011
• Reconhecimento de voz
• Pesquisas de imagens no Google Photos
• Ganhador do desafio de reconhecimento
visual em larga escala Imagenet 2014
• Utilizado em experimentos de legendas
em imagens e vídeos
• Start 2015
• Duas vezes mais rápido que seu
antecessor distBelief
• Código aberto
• Flexível
• Baixo nível porém fácil de usar
Biblioteca do Google
Documentação muito rica (Inglês)
Muitos exemplos na internet (Mnist, desafios
do Kaggle, etc)
Baseado em Tensores e grafos
Comunidade ativa
CPU + GPU
Uso de GPU Necessita de CUDA ToolKit,
cuDNN
Uso de GPU não necessita alterações no
código
Suporte a Spark
Código e documentação aberta no GitHub
Evolução das releases
0.7 ....................... 1.2 1.3 1.4 1.5 1.6 1.7 1.8
Plataformas
Source: TensorFlow
Linguagens
Estrutura de código
1. Criar constrante
2. Iniciar sessão
3. Executar operação
Import tensorflow as tf
# Cria Constant com valores.
A = tf.Constant(100)
B = tf.Contant(50)
# Cria sessão
sess = tf.session()
# Executa a sessão e imprime resultado
sess.run( A * B)
Source: TensorFlow
Programming Stack
TensorBoard
• Interface gráfica, lançada junto com o
TensorFlow.
• Desenvolvido para demonstrar
graficamente o comportamento do
modelo.
• Cria um conjunto de pequenas e
determinadas visualizações genericas.
• Possui API´s para adicionar plug-ins
de visualizações personalizadas.
• Página do GitHub
Source: TensorFlow
TensorFlow Serving
Source: TensorFlow
• Plataforma para deploy de
modelos de
Deep Learning.
• Aberto ao publico desde o inicio.
• Controle de versão de modelos.
• Suporte a vários modelos para
teste A/B
• Gerenciamento de recursos.
• Pode ser usado por outros
frameworks
The Cifar-10 Dataset
• Dataset com 60000 imagens coloridas, divididas em 10 classes.
• Sendo 50000 imagens para treino e 10000 para teste.
• Popular em competições de Deep Learning no Kaggle.
• Link para download aqui.
• Outros datasets para desenvolvimento de CNN´s aqui.
Source: TensorFlow
ComunidadeTensorflow
TensorFlow - Playground
Source: TensorFlow Playground
Links uteis
• Tensorflow Canal youtube link
• Tensorflow for Deep Learning research Stanford University link
• Tensorflow papers link
• Livro deep learning (free) datascienceacademy link
• Deep Learning studio link
• Nvidia Deep Learning institute link
• Tensorflow Playground link
Dismistificando deep learning

Dismistificando deep learning

  • 1.
    Dismistificando Deep Learning Leandro Romualdo IFórum de tecnologia da informação São Paulo | Maio 2018
  • 2.
  • 3.
  • 4.
     Subcategoria deMachine learning que trata as oportunidades de aprendizado profundo com redes neurais profundas.  Desenvolvida e melhorada na área acadêmica desde a década de 50, ganhando notoriedade nos ultímos anos.  Em razão do poder computacional atual, vem sendo amplamente explorada. Cenário atual Deep learning: Serviços da internet • Classificação de imagens • Reconhecimento de fala • NLP Medicina diagnóstica • Detecção de câncer • Diabetes Mídia e entretenimento • Tratamento de vídeo • Tradução em real time Segurança • Reconhecimento de face • Biometria • Cyber security Carros autônomos • Detecção de pessoas e objetos • Melhor trajeto • Prevenção de colisão
  • 5.
    Source: NextBigFuture • Sabemosque quanto maior a quantidade de dados maior é a performance (leia acurácia) dos modelos. • Com quantidades cada vez maiores de datasets abertos na internet, torna-se possível treinar e desenvolver redes neurais com arquiteturas cada vez mais profundas. Alguns datasets para treinar as habilidades de Deep Learning Imagens • Minist • Cifar-10 • CanalTech 256 • STL-10 • COIL100 • Imagenet Artificial Datasets • Arcade Universe • BabyAIShapesDatasets • ConvexNonConvex • BackgroundCorrelation Texto • 20NewGroups • Reuters • Broadcast News Speech • TIMIT
  • 6.
    Source: Forbes Deep Learningdeve estar com um nível de adoção maduro no pais entre 2 á 5 anos
  • 7.
    When Machine learningand art´s meet..
  • 8.
    Nvidia Deep learningperception, Lidar Perception and autonomous Drive
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    Cenário atual. Source: Asimovinstitute •Diversas arquiteturas disponíveis. • Uma para cada problema. • Novas arquiteturas surgindo devido ao poder computacional atual.
  • 16.
    • CNN éuma rede do tipo Feed-Foward. • Utiliza uma variação de perceptrons multicamada, desenvolvidos para minimizar o uso computacional. • CNN aprende filtros em que um algoritmo tradicional seria necessário implementações manuais. • Usada principalmente em reconhecimento de imagens e processamento de vídeos, embora já tenha sido usada em processamento de voz e NLP. CNN – Convolutional neural network
  • 17.
    Matriz de Convolução •Filtro de matriz utiliza a imagem como matriz primária. • A imagem é tratada como coleção bidimensional de pixels. • Geralmente utiliza matrizes 3x3 ou 5x5. • Cada pixel é analisado e tem seu valor multiplicado pelo valor correspondente no núcleo (matriz 2). • E no final soma-se os resultados. (40*0)+(42*1)+(46*0) + (46*0)+(50*0)+(55*0) + (52*0)+(56*0)+(58*0) = 42
  • 18.
    Trabalhando com Imagens •Imagem tratada como matriz. • “Shape” da imagem é visto através das dimensões altura, largura e canais de cores (RGB). • Devemos deixar as imagens do mesmo tamanho(Slice) • Podemos fazer conversões na imagem, mudando posição, Recortando, invertendo lados (transpose), girando. • Extração de features pode ser diretamente onde interessa.
  • 19.
  • 20.
    Desafios de aprendizado: •Variação Intra-classe • Distinção de fundo • Ponto de vista
  • 21.
  • 22.
    Open Source InterfacePlataform Written In Cuda Support YES PYTHON, LINUX, C++ YES MATLAB MAC OS X, WINDOWS YES PYTHON, LINUX, C++ YES C++ WINDOWS, MAC OS X YES PYTHON LINUX, PYTHON YES MAC OS X, WINDOWS YES PYTHON, LINUX, C++,PYTHON YES R, LUA, C,C++ MAC OS X, ,JAVA, GO WINDOWS YES PYTHON, LINUX, PYTHON YES R MAC OS X, WINDOWS YES LUA,C,C++ LINUX, C, LUA YES MAC OS X, WINDOWS, ANDROID,IOS
  • 23.
    Escolhendo Frameworks •Analisar evoluçãodo Framework (releases, updates, etc.) •Linguagem suportada •Plataforma suportada •Suporte (documentação, comunidade, etc.) •Expertise •Foco no problema
  • 24.
    Source: Google Research •Start 2011 • Reconhecimento de voz • Pesquisas de imagens no Google Photos • Ganhador do desafio de reconhecimento visual em larga escala Imagenet 2014 • Utilizado em experimentos de legendas em imagens e vídeos • Start 2015 • Duas vezes mais rápido que seu antecessor distBelief • Código aberto • Flexível • Baixo nível porém fácil de usar
  • 25.
    Biblioteca do Google Documentaçãomuito rica (Inglês) Muitos exemplos na internet (Mnist, desafios do Kaggle, etc) Baseado em Tensores e grafos Comunidade ativa CPU + GPU Uso de GPU Necessita de CUDA ToolKit, cuDNN Uso de GPU não necessita alterações no código Suporte a Spark Código e documentação aberta no GitHub
  • 26.
    Evolução das releases 0.7....................... 1.2 1.3 1.4 1.5 1.6 1.7 1.8
  • 27.
  • 28.
    Estrutura de código 1.Criar constrante 2. Iniciar sessão 3. Executar operação Import tensorflow as tf # Cria Constant com valores. A = tf.Constant(100) B = tf.Contant(50) # Cria sessão sess = tf.session() # Executa a sessão e imprime resultado sess.run( A * B) Source: TensorFlow
  • 29.
  • 30.
    TensorBoard • Interface gráfica,lançada junto com o TensorFlow. • Desenvolvido para demonstrar graficamente o comportamento do modelo. • Cria um conjunto de pequenas e determinadas visualizações genericas. • Possui API´s para adicionar plug-ins de visualizações personalizadas. • Página do GitHub Source: TensorFlow
  • 31.
    TensorFlow Serving Source: TensorFlow •Plataforma para deploy de modelos de Deep Learning. • Aberto ao publico desde o inicio. • Controle de versão de modelos. • Suporte a vários modelos para teste A/B • Gerenciamento de recursos. • Pode ser usado por outros frameworks
  • 34.
    The Cifar-10 Dataset •Dataset com 60000 imagens coloridas, divididas em 10 classes. • Sendo 50000 imagens para treino e 10000 para teste. • Popular em competições de Deep Learning no Kaggle. • Link para download aqui. • Outros datasets para desenvolvimento de CNN´s aqui.
  • 36.
  • 37.
    TensorFlow - Playground Source:TensorFlow Playground
  • 38.
    Links uteis • TensorflowCanal youtube link • Tensorflow for Deep Learning research Stanford University link • Tensorflow papers link • Livro deep learning (free) datascienceacademy link • Deep Learning studio link • Nvidia Deep Learning institute link • Tensorflow Playground link