Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos...

30
Deep Learning na Visão Computacional Hae Yong Kim Deep learning está realizando tarefas que pareciam impossíveis 5 anos atrás. Estamos dando passos para computador que: * Entende o que vê; * Entende o que ouve, e fala vários idiomas; * Lê e entende texto científico, médico e jurídico; * Aprende sozinho, a partir das experiêcias. Frequentemente sai notícias sobre deep learning em jornal de grande circulação.

Transcript of Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos...

Page 1: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Deep Learning na Visão Computacional

Hae Yong Kim

Deep learning está realizando tarefas que pareciam impossíveis 5 anos atrás.

Estamos dando passos para computador que: * Entende o que vê;* Entende o que ouve, e fala vários idiomas;* Lê e entende texto científico, médico e jurídico;* Aprende sozinho, a partir das experiêcias.

Frequentemente sai notícias sobre deep learning em jornal de grande circulação.

Page 2: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Deep learning evoluiu muitíssimo rápido (5 anos).

Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser humano.Nós, professores, estamos tendo que aprender deep learning, voltando a sentar no banco de alunos.

Meu esforço para aprender deep learning:1) Livro http://neuralnetworksanddeeplearning.com/2) Programas Tiny-DNN, Theano.3) Banco de imagens MNIST e CIFAR-10.4) Curso de Stanford CS231n “Convolutional Neural Networks for Visual Recognition”.5) Programas Dlib, Caffe, Tensorflow.

Page 3: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Deep learning (2010) é uma técnica particular de machine learning (1980).Machine learning (1980) é uma sub-área de inteligência artificial (1950).

Page 4: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Classifique 16kg, 3kg e 75kg.

Machine learning simples:Dadas amostras de treinamento de peso (kg) e rótulo Adulto, Bebê e Criança:

Muito simples

Page 5: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Feminimo Masculino

?? Muito difícil, sem usar deep learning.

Classifique:

Eu classifiquei manualmente e cometi 1% de erro.Fiz um programa deep learning simples que comete 1% de erro.Programa simples é tão bom quanto ser humano!Polêmica causada pelo software que reconhece homossexuais pela face (20-30% de erro).

Page 6: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Deep learning utiliza redes neurais com muitas camadas escondidas.

Em visão computacional, usa camada convolucional.

Consegue resolver problemas que pareciam impossíveis, como:

* Classificar os rostos em feminino/masculino.* Descobrir idade pela face.* Ler placas e números de casas para Google Map.

Agora, “captcha” é inútil: computador reconhece melhor letras e números distorcidos que humanos.

Page 7: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Procurar: “Man riding bicycle carrying dog” em mecanismos de busca: Google, Bing, Yahoo, Duckduckgo.

Como os sites de busca encontram imagens de:“Man riding bicycle carrying dog”?Se escrever em português, (ainda) não dá muito certo.

Page 8: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Man seated on a chair hugging dog

Man walking with dog on highway

Page 9: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Reconhecimento de fala (Siri, Cortana, etc)Tradução de texto (Google translate, Bing translator, etc.)Recomendação de vídeo no Youtube.Propaganda com sugestão de produtos que o usuário pode se interessar.http://www.yaronhadad.com/deep-learning-most-amazing-applications/

Restaura automaticamente cor em fotos preto-e-branco.

Colorir manualmente: https://g1.globo.com/mg/minas-gerais/noticia/imagens-historicas-ganham-cor-nas-maos-de-artista-mineira.ghtml

Page 10: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Super-resolução. Consegue identificar o rosto na coluna esquerda? Computador gerou a coluna do meio. Coluna da direita é a imagem alta-resolução desconhecida.

Page 11: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Aprende a jogar video-gameJogando (vendo os pixels e movendo joystick).

Em muitos jogos, é melhor que ser humano.

Melhora jogando contra si mesmo.

Page 12: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Carro autônomo.

Robótica.

Composição automática de música.

Leitura labial (93% de acerto, melhor que ser humano 52%).

Page 13: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Transferir estilo de pintura.

Page 14: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Classificação de dígitos manuscritos MNIST(provavelmente, o problema mais simples de deep learning)

Erro humano: 2 – 2,5 %Erro de machine learning convencional: 2,5%O menor erro de deep learning: 0,23%O que eu consegui: 0,35%.

Page 15: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Banco de dados para reconhecimento de objetos:

MNIST: Dígitos manuscritos. Imagens 28x28.

CIFAR-10: 10 categorias de objetos (trem, gato, cachorro, carro, navio, etc). Imagens 32x32.

Pascal: 20 categorias de objetos. Imagens “grandes” com bounding box localizando objetos.

Imagenet: 20000 categorias. 14 milhões de imagens.

Page 16: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 9 - May 2, 20178

LeNet-5

[LeCun et al., 1998]

Conv filters were 5x5, applied at stride 1

Subsampling (Pooling) layers were 2x2 applied at stride 2

i.e. architecture is [CONV-POOL-CONV-POOL-FC-FC]

Vou usar slides do curso de Stanford.

Page 17: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

LeNet-5 (1998)

AlexNet (2012) – aqui deep learning torna-se popular

VGGNet (2014)

GoogleNet (2014)

ResNet (2015)

Todos baseados em rede neural convolucional.Usam ReLU, maxpooling, e fully-connected layer.

Page 18: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 9 - May 2, 2017Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 9 - May 2, 201722

ImageNet Large Scale Visual Recognition Challenge (ILSVRC) winners

First CNN-based winner

Page 19: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Deep learning (convolutional neural net) aprende sozinho quais são as melhores características. Antes, ser humano tinha que dizer.

Page 20: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 8 - April 27, 201711

CPU vs GPU

# Cores Clock Speed Memory Price

CPU

(Intel Core

i7-7700k)

4(8 threads with

hyperthreading

)

4.4 GHz Shared with system $339

CPU

(Intel Core

i7-6950X)

10 (20 threads

with

hyperthreading

)

3.5 GHz Shared with system $1723

GPU

(NVIDIA

Titan Xp)

3840 1.6 GHz 12 GB GDDR5X $1200

GPU

(NVIDIA

GTX 1070)

1920 1.68 GHz 8 GB GDDR5 $399

CPU: Fewer cores,

but each core is

much faster and

much more

capable; great at

sequential tasks

GPU: More cores,

but each core is

much slower and

“dumber”; great for

parallel tasks

11

Page 21: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Num computador bom:* GPU 50x mais rápido que CPU usando cuDNN (biblioteca otimizada).* GPU 3x mais rápido que CPU sem biblioteca otimizada.

No meu computador:* GPU 10x mais rápido que CPU usando cuDNN.* GPU e CPU mesma velocidade sem biblioteca otimizada.

É muito difícil escrever programa para GPU. Se escrever, não fica muito rápido.Tem que usar rotinas prontas (cuDNN).

Não precisa ter computador com GPU bom.É possível usar computação na nuvem (Google, Amazon, etc).

Page 22: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Google TPU

78

(Tensor Processing Unit)

Em uso pela Google desde 2015.TPU é 15-30x mais rápido que GPU/CPU. Gasta muito menos energia.

Page 23: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 8 - April 27, 2017Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 8 - April 27, 201720

Softwares para deep learning

Caffe (UC Berkeley)

Torch (NYU / Facebook)

Theano (U Montreal)

TensorFlow (Google)

Caffe2 (Facebook)

PyTorch (Facebook)

CNTK (Microsoft)

Paddle (Baidu)

MXNet (Amazon)Developed by U Washington, CMU, MIT,

Hong Kong U, etc but main framework of

choice at AWS

And others...

Empresas (e não universidades) estão fornecendo software para deep learning. Há interesse econômico.

Page 24: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Testei:

* Tiny_dnn (C++, só para CPU).* Dlib (C++, CPU/GPU)* Caffe (linguagem própria, Python, C++)

Testei rapidamente:

* Theano (Python)* Tensorflow (Python, C++)

Estou buscando softwares que permitam inserir novos tipos de camadas. De preferência em C++, pois é bem mais rápido que Python.

Page 25: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 11 - May 10, 201717

Other Computer Vision Tasks

Classification

+ Localization

Semantic

SegmentationObject

Detection

Instance

Segmentation

CATGRASS, CAT,

TREE, SKYDOG, DOG, CAT DOG, DOG, CAT

Single Object Multiple ObjectNo objects, just pixels This image is CC0 public domain

Page 26: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 14 - May 23, 2017

Reinforcement learning: Playing Atari Games

42

Objective: Complete the game with the highest score

State: Raw pixel inputs of the game state

Action: Game controls e.g. Left, Right, Up, Down

Reward: Score increase/decrease at each time step

[Mnih et al. NIPS Workshop 2013; Nature 2015]

Page 27: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Fei-Fei Li & Justin Johnson & Serena Yeung Lecture 14 - May 23, 201762

Video by Károly Zsolnai-Fehér. Reproduced with permission.

https://www.youtube.com/watch?v=V1eYniJ0Rnk

Page 28: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

(Goodfellow 2016)

(Andrej Karpathy, “Breaking Linear Classifers on ImageNet”)

Problema: Adversarial attack.

8% peixe dourado 12% margarida

Page 29: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

(Goodfellow 2016)

Problema:Adversarial attack: Turning Objects into “Airplanes”

Page 30: Deep Learning na Visão Computacional - lps.usp.br · Tarefas consideradas impossíveis 5 anos atrás são possíveis hoje. Ex: Computador soluciona melhor “captcha” do que ser

Deep learning “explodiu” nos últimos 5 anos.

Possivelmente, estamos no meio de uma revolução em computação.

No futuro, talvez teremos computadores com processadores dedicado a deep learning.

Já estamos usando deep learning corriqueiramente (ex: quando fazemos busca na internet, usamos Siri, Cortana, etc.).

As empresas estão investindo pesado em deep learning.

Frequentemente, aparecem novas aplicações de deep learning.

Nós, professores, estamos tendo que aprender deep learning.