redes neurais convolucionais - ufpr

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: others

Post on 16-Oct-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

Redes Neurais

Redes Neurais Convolucionais

● Funções de Ativação

● Rede Neural Artificial (MLP)

Page 4: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

Redes Neurais

Redes Neurais Convolucionais

● Função SoftMax - Exemplo

Page 7: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

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 - UFPR

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 - UFPR

Feature Extraction X Deep Learning

Redes Neurais Convolucionais

Page 12: Redes Neurais Convolucionais - UFPR

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 - UFPR

Redes Neurais Convolucionais

Deep Learning – Vanish Gradient Problem

Page 14: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

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 - UFPR

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 - UFPR

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 - UFPR

Extração de Características

Redes Neurais Convolucionais

● Exemplos:

→ Filtros Treinados (Aprendidos)

→ Filtros + Conv + Pool

→ Representação dos dados

Page 20: Redes Neurais Convolucionais - UFPR

Extração de Características

Redes Neurais Convolucionais

● Exemplos:

Page 21: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

Treinamento

Redes Neurais Convolucionais

Rede “IDEAL” Apredizado em poucas épocas

Desempenho do Aprendizado para diferentes “Learning Rates”

Page 24: Redes Neurais Convolucionais - UFPR

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 - UFPR

Deep Learning / CNN - Análise

Redes Neurais Convolucionais

Page 26: Redes Neurais Convolucionais - UFPR

Algumas Aplicações

Redes Neurais Convolucionais

● Faces

● PKLot

Page 27: Redes Neurais Convolucionais - UFPR

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 - UFPR

Algumas Aplicações

Redes Neurais Convolucionais

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

Page 29: Redes Neurais Convolucionais - UFPR

Algumas Aplicações

Redes Neurais Convolucionais

● Contexto de Imagens

Page 30: Redes Neurais Convolucionais - UFPR

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 - UFPR

LENET X ESTADO DA ARTE (1998)

Redes Neurais Convolucionais

Page 32: Redes Neurais Convolucionais - UFPR

LENET

Redes Neurais Convolucionais

Filtros por Camada

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

Page 33: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

ALEXNET

Redes Neurais Convolucionais

Page 36: Redes Neurais Convolucionais - UFPR

ALEXNET

Redes Neurais Convolucionais

Page 37: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

GOOGLE NET

Redes Neurais Convolucionais

Page 40: Redes Neurais Convolucionais - UFPR

Imagenet Challenge

Redes Neurais Convolucionais

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

Page 41: Redes Neurais Convolucionais - UFPR

Imagenet Challenge

Redes Neurais Convolucionais

● AlexNet x GoogleNet (Poseidon FrameWork)

Page 42: Redes Neurais Convolucionais - UFPR

GOOGLE NET “DREAMS”

Redes Neurais Convolucionais

Imagem Entrada

Page 43: Redes Neurais Convolucionais - UFPR

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 - UFPR

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 - UFPR

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_solver.prototxt

Page 46: Redes Neurais Convolucionais - UFPR

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Data Sources

1 / 2561 / 256

Page 47: Redes Neurais Convolucionais - UFPR

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Layers

Page 48: Redes Neurais Convolucionais - UFPR

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Layers

Page 49: Redes Neurais Convolucionais - UFPR

FrameWork CAFFE DEEP LEARNING

Redes Neurais Convolucionais

● lenet_train_val.prototxt : Layers