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
Nvidia Deep learning perception, Lidar
Perception and autonomous Drive
Source: Nvidia
Source: Next big future
GPU Computing
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
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
Comunidade Tensorflow
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 v2.1

Dismistificando deep learning v2.1

  • 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.
    Nvidia Deep learningperception, Lidar Perception and autonomous Drive
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
    Cenário atual Source: Asimovinstitute •Diversas arquiteturas disponíveis. • Uma para cada problema • Novas arquiteturas surgindo devido ao poder computacional atual
  • 13.
    • 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
  • 15.
    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
  • 16.
  • 17.
    Desafios de aprendizado: •Variação Intra-classe • Distinção de fundo • Ponto de vista
  • 18.
  • 19.
    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
  • 20.
    Escolhendo Frameworks •Analisar evoluçãodo Framework (releases, updates, etc.) •Linguagem suportada •Plataforma suportada •Suporte (documentação, comunidade, etc.) •Expertise •Foco no problema
  • 21.
    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
  • 22.
    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
  • 23.
    Evolução das releases 0.7....................... 1.2 1.3 1.4 1.5 1.6 1.7 1.8
  • 24.
  • 25.
    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
  • 26.
  • 27.
    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
  • 28.
    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
  • 31.
    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
  • 33.
  • 34.
    TensorFlow - Playground Source:TensorFlow Playground
  • 35.
    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