Você está na página 1de 49

Redes Neurais Convolucionais

Andr Gustavo Hochuli


Orientador: Prof. Dr. Luiz Eduardo Soares de Oliveira
Programa de Ps-Graduao em Informtica
Departamento de Informtica
UFPR
http://www.inf.ufpr.br/aghochuli/caffe/

Redes Neurais

Neurnio Artificial
- Vetor de Caracteristcas
- Pesos
- Bias
- Funo de Ativao

Funes de Ativao
- Dado uma entrada, define um estado para o neurnio.

Redes Neurais Convolucionais

Redes Neurais

Funes de Ativao

Rede Neural Artificial (MLP)

Redes Neurais Convolucionais

Redes Neurais

Problema: Como determinar a probabilidade de cada classe na


camada de sada da rede neural ?

Redes Neurais Convolucionais

Redes Neurais

Funo SoftMax
- Normaliza entre 0 e 1 as sadas, em um problema multi-classes, obtidas por
um classificador linear (Ex: Neurnios).
- Aplicada na camada de sada da rede (output layer).
- Objetivo: Definir a probabilidade de uma classe dentro de um problema multiclasses

Redes Neurais Convolucionais

Redes Neurais

Funo SoftMax - Exemplo

Redes Neurais Convolucionais

Imagem Digital

Representao

Escala de Intensidade
Imagem

Variao

8 Bit (Nivel de Cinza)

2^8 ( 0 255 )

24 Bit (Colorida 3 Canais)

2^24 ( 0 - 16777215 )

Redes Neurais Convolucionais

Convolues

Operaes entre Matrizes (Imagem X Kernel)


Ex: Filtros, Bordas, Etc
Parmetros do Kernel
- Tamanho
- Passo / Salto
- Pesos
- Padding

Redes Neurais Convolucionais

Pooling (Agregao)

Convoluo para reduzir escala (downsampling)

Max, Avg, Mediana, etc.

Max o mais comum

Redes Neurais Convolucionais

Deep Learning

Aprendizado baseado em Multi-Camadas (RN Densas)

Representao dos dados em diferentes nveis de abstrao

Extrao de Caractersticas Implcita

Elevada quantidade de parmetros (Ajuste por BackProgation)

Necessita de um grande nmero de exemplos para o aprendizado eficiente

O aprendizado voltado para compreenso pela mquina, ou seja, os dados


so de dficil compreenso/visualizao humana
Vasta aplicao na rea de Viso Computacional (processamento de udio,
imagens, vdeo, etc).

Redes Neurais Convolucionais

Feature Extraction X Deep Learning

Redes Neurais Convolucionais

Deep Learning Vanish Gradient Problem


Problema do desaparecimento do gradiente e convergncia da rede
Valores de entrada mapeados em gradientes pequenos
Ativao por Sigmoid [ 0 1 ] ou Tangh [-1 1]
Variao pequena

Agrava ao longo de uma rede mltiplas camadas


Uma mudana de valores na entrada, pouco altera as
camadas mais distantes

Aprendizado mais se torna mais lento


Soluo encontrada: RELU [ f(x) = max(0,x) ]
Mapeamento [0,]
Redes Neurais Convolucionais

Deep Learning Vanish Gradient Problem

Redes Neurais Convolucionais

Deep Learning Vanish Gradient Problem


Sigmoid/Tanh [-1,1] = Aprendizado Lento / Custo computacional
mais alto (expoentes e multiplicaes)
RELU [0,] = Aprendizado Rpido / Custo computacional mais
baixo (threshold)

Redes Neurais Convolucionais

Redes Neurais Convolucionais

Inspiradas no modelo biolgico da viso

Conceito de Deep Learning (Multi-Camadas)

Idealizada no nicio do anos 90 [Lecun], e vasta aplicao aps 2006 devido a


popularizao de GPU's (Custo ~$ 3000,00)
Treinamento requer alto custo computacional e numerosa base de dados

Redes Neurais Convolucionais

Redes Neurais Convolucionais

Compostas de duas grandes etapas:


Extrao de Caractersticas pelas Camadas Convolucionais
Classificao

Redes Neurais Convolucionais

Tipos de Camadas (Layers)

Convolucional : Definem os filtros (Aprendizado / BackPropagation)

Ativao: Neurnios (Relu / Sigmoid / TangH)

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

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

Redes Neurais Convolucionais

Extrao de Caractersticas

Transforma uma imagem em um vetor de caractersticas


Sequncia de Convolues, Ativao e Pooling's
Convolues: altera a representao dos dados e aprende os filtros
Pooling: reduz a escala para o prximo layer
Como ?

Pesos dos filtros so calculados automaticamente (BackPropagation)

Cada filtro aprendido um extrator de caractersticas

Cada imagem resultante de um filtro um mapa de caractersticas

Os pooling's so necessrios para reduzir a quantidade de caractersticas por


filtro (reduo de escala)

Redes Neurais Convolucionais

Extrao de Caractersticas

Exemplos:

Filtros Treinados (Aprendidos)

Filtros + Conv + Pool


Representao dos dados

Redes Neurais Convolucionais

Extrao de Caractersticas

Exemplos:

Redes Neurais Convolucionais

Extrao de Caractersticas

Nmeros de neurnios por convoluo

C1: 3136 (28*28*4)


S1: 1568 (C1 / 2)
C2: 1200 (10*10*12)
S2: 600 (C2 / 2)

Redes Neurais Convolucionais

Treinamento X Teste

Treinamento
Inicializao dos filtros e FC (Random Const Gaussian Xavier)
Fase de Aprendizado (Pode demorar horas ou dias dependendo da
configurao da rede)
Validao e Backpropagation
Armazenamento dos pesos e filtros ao longo do processo

Teste da CNN
Utiliza os filtros e pesos da poca definida

Redes Neurais Convolucionais

Treinamento

Desempenho do Aprendizado
para diferentes Learning
Rates

Rede IDEAL
Apredizado em poucas pocas

Redes Neurais Convolucionais

Data Augmentation

O que fazer se houver poucos exemplos na base ? Ou pouca


variabilidade de uma mesma classe ?
Amostra

Data Augmentation
Ampliao do nmero de amostras
modificando a amostra original:
Translaes
Rudos
Brilho / Contraste
Flip's
Smooth's

Redes Neurais Convolucionais

Deep Learning / CNN - Anlise

Redes Neurais Convolucionais

Algumas Aplicaes

Faces

PKLot

Redes Neurais Convolucionais

Algumas Aplicaes

Processamento de Adio (Vocal / Genro Musical)


Piano

Piano+Vocal

Redes Neurais Convolucionais

Piano + Vocal
+ Bateria

Algumas Aplicaes

Texturas
Tecido Celular
Clulas Cancergenas
Espcie Florestal

Redes Neurais Convolucionais

Algumas Aplicaes

Contexto de Imagens

Redes Neurais Convolucionais

LENET-5

Yan Lecun 1998

Primeira CNN implementada e testada com sucesso (Bell Labs)

Reconhecimento de Dgitos Manuscritos


MNIST DATASET (10 Classes [#0....#9])
60 K Treinamento
10 K Teste

0.95% (erro)
~ 345 K de conexes
~ 60 K parmetros

Redes Neurais Convolucionais

LENET X ESTADO DA ARTE (1998)

Redes Neurais Convolucionais

LENET
Filtros por Camada

Resistncia a rudos, inclinao e


formatao
Redes Neurais Convolucionais

ALEXNET

Alex Krizhevsky 2012 (Krizhevsky Net)


Imagenet 2012 Challenge (1000 classes)
1.2 M Treinamento
50 K Validao
150 K Teste
Vencedor (erro 15.3% - Top 5)
2 SIFT Based (26.2%)
Redes Neurais Convolucionais

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

ALEXNET

Neurnios por Camada: ~253k, ~186k, ~64k , ~64k, ~43k, ~4k, ~4k, ~1k

60 M de Parmetros

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
Redes Neurais Convolucionais

ALEXNET

Redes Neurais Convolucionais

ALEXNET

Redes Neurais Convolucionais

GOOGLE NET

Imagenet 2014 Challenge (1000 classes)


1.2 M Treinamento
50 K Validao
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

Redes Neurais Convolucionais

GOOGLE NET

Inceptions: 256 filtros at 1024 filtros

Redes dentro de Redes !


Inceptions

Custo computacional apenas 2x mais


que AlexNet

256

480

480

512

512

512

832

Redes Neurais Convolucionais

832 1024

GOOGLE NET

Redes Neurais Convolucionais

Imagenet Challenge

Evoluo (reduo de erro) em casos complexos em apenas 2 anos !!

Redes Neurais Convolucionais

Imagenet Challenge

AlexNet x GoogleNet (Poseidon FrameWork)

Redes Neurais Convolucionais

GOOGLE NET DREAMS


Imagem
Entrada

Redes Neurais Convolucionais

GOOGLE NET DREAMS


Porque apareem ces nas imagens ?

Em 2012, o google utilizou uma parte da Imagenet,


para treinar sua rede. Esse subset era composto por
imagens de ces apenas. Ento a rede aprendeu a
extrair caractersticas com base em ces !

TRANSFER LEARNING !!

Redes Neurais Convolucionais

FrameWork CAFFE DEEP LEARNING

Implementao C++ / CUDA (GPU)

Python Interface

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

Tutorial de Instalao:
http://www.inf.ufpr.br/aghochuli/caffe/
http://caffe.berkeleyvision.org/installation.html

Tutorial Configurao da CNN (layers):


http://caffe.berkeleyvision.org/tutorial/

Redes Neurais Convolucionais

FrameWork CAFFE DEEP LEARNING

lenet_solver.prototxt

Redes Neurais Convolucionais

FrameWork CAFFE DEEP LEARNING

lenet_train_val.prototxt : Data Sources

1 / 256
1 / 256

Redes Neurais Convolucionais

FrameWork CAFFE DEEP LEARNING

lenet_train_val.prototxt : Layers

Redes Neurais Convolucionais

FrameWork CAFFE DEEP LEARNING

lenet_train_val.prototxt : Layers

Redes Neurais Convolucionais

FrameWork CAFFE DEEP LEARNING

lenet_train_val.prototxt : Layers

Redes Neurais Convolucionais

Você também pode gostar