redes neurais convolucionais - inf.ufpr.br · redes neurais redes neurais convolucionais funções...

49
Redes Neurais Convolucionais André Gustavo Hochuli Orientador: Prof. Dr. Luiz Eduardo Soares de Oliveira Programa de Pós-Graduação em Informática Departamento de Informática UFPR http://www.inf.ufpr.br/aghochuli/caffe/

Upload: trinhthu

Post on 11-Nov-2018

274 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais Convolucionais

André Gustavo Hochuli

Orientador: Prof. Dr. Luiz Eduardo Soares de Oliveira

Programa de Pós-Graduação em Informática

Departamento de Informática

UFPR

http://www.inf.ufpr.br/aghochuli/caffe/

Page 2: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais

Redes Neurais Convolucionais

● Neurônio Artificial

- Vetor de Caracteristícas- Pesos- Bias- Função de Ativação

● Funções de Ativação

- Dado uma entrada, define um estado para o neurônio.

Page 3: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais

Redes Neurais Convolucionais

● Funções de Ativação

● Rede Neural Artificial (MLP)

Page 4: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais

Redes Neurais Convolucionais

● Problema: Como determinar a probabilidade de cada classe na camada de saída da rede neural ?

Page 5: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais

Redes Neurais Convolucionais

● Função SoftMax

- Normaliza entre 0 e 1 as saídas, em um problema multi-classes, obtidas por um classificador linear (Ex: Neurônios).

- Aplicada na camada de saída da rede (output layer).

- Objetivo: Definir a probabilidade de uma classe dentro de um problema multi-classes

Page 6: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais

Redes Neurais Convolucionais

● Função SoftMax - Exemplo

Page 7: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Imagem Digital

Redes Neurais Convolucionais

● Representação

● Escala de Intensidade

Imagem Variação

8 Bit (Nivel de Cinza) 2^8 ( 0 – 255 )

24 Bit (Colorida 3 Canais) 2^24 ( 0 - 16777215 )

Page 8: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Convoluções

Redes Neurais Convolucionais

● Operações entre Matrizes (Imagem X Kernel)Ex: Filtros, Bordas, Etc

● Parâmetros do Kernel - Tamanho - Passo / Salto- Pesos- “Padding”

Page 9: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Pooling (Agregação)

Redes Neurais Convolucionais

● Convolução para reduzir escala (downsampling)

● Max, Avg, Mediana, etc.

● Max é o mais comum

Page 10: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Deep Learning

Redes Neurais Convolucionais

● Aprendizado baseado em Multi-Camadas (RN Densas)

● Representação dos dados em diferentes níveis de abstração

● Extração de Características é Implícita

● Elevada quantidade de parâmetros (Ajuste por BackProgation)

● Necessita de um grande número de exemplos para o aprendizado eficiente

● O aprendizado é voltado para compreensão pela máquina, ou seja, os dados são de díficil compreensão/visualização humana

● Vasta aplicação na área de Visão Computacional (processamento de áudio, imagens, vídeo, etc).

Page 11: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Feature Extraction X Deep Learning

Redes Neurais Convolucionais

Page 12: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Deep Learning – Vanish Gradient Problem

Redes Neurais Convolucionais

Problema do desaparecimento do gradiente e convergência da rede→ Valores de entrada mapeados em gradientes pequenos → Ativação por Sigmoid [ 0 →1 ] ou Tangh [-1 → 1] → Variação “pequena”

● Agrava ao longo de uma rede múltiplas camadas → Uma mudança de valores na entrada, pouco altera as camadas mais distantes

● Aprendizado mais se torna mais lento

● Solução encontrada: RELU [ f(x) = max(0,x) ]→ Mapeamento [0,∞]

Page 13: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais Convolucionais

Deep Learning – Vanish Gradient Problem

Page 14: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais Convolucionais

→ Sigmoid/Tanh [-1,1] = Aprendizado Lento / Custo computacional mais alto (expoentes e multiplicações)

→ RELU [0,∞] = Aprendizado Rápido / Custo computacional mais baixo (threshold)

Deep Learning – Vanish Gradient Problem

Page 15: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais Convolucionais

Redes Neurais Convolucionais

● Inspiradas no modelo biológico da visão

● Conceito de Deep Learning (Multi-Camadas)

● Idealizada no ínicio do anos 90 [Lecun], e vasta aplicação após 2006 devido a “popularização” de GPU's (Custo ~$ 3000,00)

● Treinamento requer alto custo computacional e numerosa base de dados

Page 16: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Redes Neurais Convolucionais

Redes Neurais Convolucionais

● Compostas de duas grandes etapas:

→Extração de Características pelas Camadas Convolucionais→Classificação

Page 17: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Tipos de Camadas (Layers)

Redes Neurais Convolucionais

● Convolucional : Definem os filtros (Aprendizado / BackPropagation)

● Ativação: Neurônios (Relu / Sigmoid / TangH)

● Pooling : Reduzem as escalas (Max, Median, etc..)

● Fully-Connected (FC): Camada que determina as classes (Classificador)

Page 18: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Extração de Características

Redes Neurais Convolucionais

● Transforma uma imagem em um vetor de características→ Sequência de Convoluções, Ativação e Pooling's→ Convoluções: altera a representação dos dados e aprende os filtros→ Pooling: reduz a escala para o próximo layerComo ?

● Pesos dos filtros são calculados automaticamente (BackPropagation)

● Cada filtro aprendido é um extrator de características

● Cada imagem resultante de um filtro é um mapa de características

● Os pooling's são necessários para reduzir a quantidade de características por filtro (redução de escala)

Page 19: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Extração de Características

Redes Neurais Convolucionais

● Exemplos:

→ Filtros Treinados (Aprendidos)

→ Filtros + Conv + Pool

→ Representação dos dados

Page 20: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Extração de Características

Redes Neurais Convolucionais

● Exemplos:

Page 21: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Extração de Características

Redes Neurais Convolucionais

● Números de neurônios por convolução

→ C1: 3136 (28*28*4)→ S1: 1568 (C1 / 2) → C2: 1200 (10*10*12)→ S2: 600 (C2 / 2)

Page 22: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Treinamento X Teste

Redes Neurais Convolucionais

● Treinamento

→ Inicialização dos filtros e FC (Random – Const – Gaussian – Xavier) → Fase de Aprendizado (Pode demorar horas ou dias dependendo da configuração da rede)→ Validação e Backpropagation→ Armazenamento dos pesos e filtros ao longo do processo

● Teste da CNN

→ Utiliza os filtros e pesos da época definida

Page 23: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Treinamento

Redes Neurais Convolucionais

Rede “IDEAL” Apredizado em poucas épocas

Desempenho do Aprendizado para diferentes “Learning Rates”

Page 24: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Data Augmentation

Redes Neurais Convolucionais

● O que fazer se houver poucos exemplos na base ? Ou pouca variabilidade de uma mesma classe ?

Data Augmentation

Amostra

Ampliação do número de amostrasmodificando a amostra original: → Translações→ Ruídos→ Brilho / Contraste→ Flip's→ Smooth's

Page 25: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Deep Learning / CNN - Análise

Redes Neurais Convolucionais

Page 26: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Algumas Aplicações

Redes Neurais Convolucionais

● Faces

● PKLot

Page 27: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Algumas Aplicações

Redes Neurais Convolucionais

● Processamento de Aúdio (Vocal / Genêro Musical)

Piano Piano+Vocal Piano + Vocal + Bateria

Page 28: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Algumas Aplicações

Redes Neurais Convolucionais

● Texturas → Tecido Celular→ Células Cancerígenas→ Espécie Florestal

Page 29: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Algumas Aplicações

Redes Neurais Convolucionais

● Contexto de Imagens

Page 30: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

LENET-5

Redes Neurais Convolucionais

● Yan Lecun – 1998

● Primeira CNN implementada e testada com sucesso (Bell Labs)

● Reconhecimento de Dígitos Manuscritos→ MNIST DATASET (10 Classes [#0....#9])→ 60 K Treinamento→ 10 K Teste

● 0.95% (erro) ● ~ 345 K de conexões● ~ 60 K parâmetros

Page 31: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

LENET X ESTADO DA ARTE (1998)

Redes Neurais Convolucionais

Page 32: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

LENET

Redes Neurais Convolucionais

Filtros por Camada

Resistência a ruídos, inclinação e formatação

Page 33: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

ALEXNET

Redes Neurais Convolucionais

● Alex Krizhevsky – 2012 (Krizhevsky Net)

● Imagenet 2012 Challenge (1000 classes)→ 1.2 M Treinamento→ 50 K Validação

→ 150 K Teste

● Vencedor (erro 15.3% - Top 5)→ 2° SIFT Based (26.2%)

● http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

Page 34: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

ALEXNET

Redes Neurais Convolucionais

● Neurônios por Camada: ~253k, ~186k, ~64k , ~64k, ~43k, ~4k, ~4k, ~1k

● 60 M de Parâmetros

● Treinamento

→ 6 dias

→ 02 PLACAS GPU's (NVIDIA GTX 580 3GB)

● http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

Page 35: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

ALEXNET

Redes Neurais Convolucionais

Page 36: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

ALEXNET

Redes Neurais Convolucionais

Page 37: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

GOOGLE NET

Redes Neurais Convolucionais

● Imagenet 2014 Challenge (1000 classes)→ 1.2 M Treinamento→ 50 K Validação

→ 100 K Teste

● Vencedor (erro 6.67% - Top 5)→ 2° CNN Based (7.32%) e 3° CNN Based (7.35%)

http://www.cs.unc.edu/~wliu/papers/GoogLeNet.pdf

Page 38: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

GOOGLE NET

Redes Neurais Convolucionais

256 480 480512

512 512832 832 1024

● Inceptions: 256 filtros até 1024 filtros

● Redes dentro de Redes !

● Custo computacional “apenas” 2x mais que AlexNet

Inceptions

Page 39: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

GOOGLE NET

Redes Neurais Convolucionais

Page 40: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Imagenet Challenge

Redes Neurais Convolucionais

● Evolução (redução de erro) em casos complexos em apenas 2 anos !!

Page 41: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

Imagenet Challenge

Redes Neurais Convolucionais

● AlexNet x GoogleNet (Poseidon FrameWork)

Page 42: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

GOOGLE NET “DREAMS”

Redes Neurais Convolucionais

Imagem Entrada

Page 43: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

GOOGLE NET “DREAMS”

Redes Neurais Convolucionais

Porque apareçem cães nas imagens ?

Em 2012, o google utilizou uma parte da Imagenet,para treinar sua rede. Esse “subset” era composto por imagens de cães apenas. Então a rede aprendeu a extrair características com base em cães !

TRANSFER LEARNING !!

Page 44: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● Implementação C++ / CUDA (GPU)

● Python Interface

● SITE: http://caffe.berkeleyvision.org/

● Tutorial de Instalação:

http://www.inf.ufpr.br/aghochuli/caffe/

http://caffe.berkeleyvision.org/installation.html

● Tutorial Configuração da CNN (layers):http://caffe.berkeleyvision.org/tutorial/

Page 45: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_solver.prototxt

Page 46: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Data Sources

1 / 2561 / 256

Page 47: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Layers

Page 48: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Layers

Page 49: Redes Neurais Convolucionais - inf.ufpr.br · Redes Neurais Redes Neurais Convolucionais Funções de Ativação Rede Neural Artificial (MLP)

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Layers