deep learning

4
Deep Learning usando CNN (Convolution Neural Network) Temos uma imagem cinza de uma banda que corresponde a entrada, primeiro passo, do algoritmo; No caso de uma imagem colorida, ela precisa estar num espaço descorrelacionado e só usaremos a banda referente ao cinza. No caso do espaço YcbCr, usaremos a banda Y; A cada camada do algoritmo, temos uma imagem de múltiplas bandas; O Deep Learning, usando o CNN, trabalha com 3 camadas; Antes de entrar na primeira camada (L1), a imagem é normalizada; O processo de normalização consiste no seguinte: Ou seja, o valor do pixel p na imagem normalizada, é o valor do pixel na imagem original, dividido pela raíz quadrada do somatório do quadrado de todos os pixels adjacentes de todas as bandas (lembre-se que o pixel p é adjacente a ele mesmo) → A normalização do pixel p nada mais é do que a norma euclidiana; A normalização serve para mostrar quais são os pixels mais importantes/relevantes da imagem; Quanto maior o valor, mais importante é o pixel; Uma hora maneira de normalizar o pixel p é dividir o valor do pixel p, I j (p), da banda em questão, pela raíz quadrada da soma dos quadrados dos valores de todos os adjacentes a p de todas as bandas da imagem;

Upload: samuel-martins

Post on 25-Dec-2015

5 views

Category:

Documents


1 download

DESCRIPTION

aaaaa

TRANSCRIPT

Page 1: Deep Learning

Deep Learning usando CNN (Convolution NeuralNetwork)

• Temos uma imagem cinza de uma banda que corresponde a entrada, primeiro passo, do algoritmo;• No caso de uma imagem colorida, ela precisa estar num espaço descorrelacionado e só usaremos

a banda referente ao cinza. No caso do espaço YcbCr, usaremos a banda Y;• A cada camada do algoritmo, temos uma imagem de múltiplas bandas;

• O Deep Learning, usando o CNN, trabalha com 3 camadas;• Antes de entrar na primeira camada (L1), a imagem é normalizada;• O processo de normalização consiste no seguinte:

• Ou seja, o valor do pixel p na imagem normalizada, é o valor do pixel na imagem original, divididopela raíz quadrada do somatório do quadrado de todos os pixels adjacentes de todas as bandas(lembre-se que o pixel p é adjacente a ele mesmo) → A normalização do pixel p nada mais é do quea norma euclidiana;

• A normalização serve para mostrar quais são os pixels mais importantes/relevantes da imagem;• Quanto maior o valor, mais importante é o pixel;• Uma hora maneira de normalizar o pixel p é dividir o valor do pixel p, I j(p), da banda em questão,

pela raíz quadrada da soma dos quadrados dos valores de todos os adjacentes a p de todas as bandasda imagem;

Page 2: Deep Learning

• Na camada L1 do algoritmo, a entrada é uma imagem cinza, de uma banda com os valoresnormalizados;

• É criado y Kernels (Banco de Kernels), de tamanho MxN, onde y M e N são parâmetros a seremdescobertos → maior dificuldade do algoritmos;

• Nesta camada, os kernel possui apenas uma banda, pois a imagem de entrada tem apenas umabanda;

• Os pesos de cada Kernel são gerados aleatoriamente →podemos utilizar valores de 0 até 1;• Algumas coisas que devemos considerar é que a média dos pesos de todas as bandas do kernel

deve ser zero e com norma unitária;◦ Sendo median, a média de todos os pesos de todas as bandas do kernel, o valor dos pesos do

kernel são obtidos pelas equações: w' = peso com valor aleatório – median w ' q=wq−w ,para todo peso de todas as bandas do kernel → isso garante que a média de todos os pesos detodas as bandas do kernel seja Zero;

◦ Temos que norm é a norma de todos os pesos do kernel, ou seja, a raíz quadrada da soma dos

quadrados de todos os pesos de todas as bandas do kernel norm=√ ∑∀ q∈ A (p )

w i q2 )), onde i é a

banda;

◦ Logo, o valor dos pesos de cada banda do kernel é: wq=wq

norm;

• Há outras maneiras de gerar os pesos (ver slides);• Agora, é feita a convolução de cada Kernel com a imagem, onde cada convolução gerará uma nova

banda na imagem resultante;• Logo, teremos uma imagem com y bandas;• Exemplo: Supondo que nesta camada foram utilizados 64 Kernels de tamanho 3x3, a imagem

resultante terá 64 bandas, onde a banda 0 corresponde a convolução da imagem original com oKernel 0, e assim por diante;

• Se o valor de um peso do kernel gerado aleatoriamente for menor que a média dos pesos de todasas bandas do kernel, na hora de subtraí-lo por esta média, para garanta que a média dos pesos detodas as bandas do kernel é 0, este valor será negativo;

• Assim, após a convolução, poderemos ter pixels com valores negativos se o valor do peso do kernelfor negativo;

• Logo, aplicaremos um threshold a todos os valores de todas as bandas dessa imagem convolvida →se o valor do pixel for < 0, ele virá zero;

Page 3: Deep Learning

• Este valores zeros ou valores pequenos, são resultantes de valores pequenos da Imagem de entradanormalizada;

• Logo, são valores que não devemos usar para representar a imagem, pois eles não tem muitaimportância;

• Muitos deles serão eliminados na etapa do Pooling;

• A próxima etapa do algoritmo é o Pooling;• Esta etapa consiste em escolher os pixels mais significativos da imagem multibanda resultante da

convolução, de acordo com um stride passado (stride é mais um parâmetro a ser descoberto);• Com isso, se a imagem tiver um pouco transladada, não afeta no reconhecimento da imagem, pois

isso cria certa invariância à translação, além de gerar uma imagem de menor resolução espacial;• O pooling funciona da seguinte maneira:• Suponha que há vários pixels entre os pontos pretos;• Com este stride, selecionaremos apenas 9 pixels de cada banda da imagem, de acordo com alguma

eurística, resultando em uma nova imagem de 9 pixels em cada banda;• Na imagem maior, analisaremos qual é o valor máximo entre de todos os adjacentes de cada pixel

preto (um dos pixel que será percorrido na imagem, devido ao tamanho do stride);• Lembre-se que o próprio pixel é adjacente dele mesmo;

• Outro exemplo: Vamos supor que temos uma imagem 5x5, um kernel 3x3 e um stride de 2. Assim,começando do pixel (0, 0), percorreremos a imagem com base no stride;

Uma Banda da Imagem10 0 1 4 10

0 5 4 3 2

0 2 0 0 5

5 0 0 3 10

6 0 0 4 0Banda da Imagem após o Pooling

5

• Os pixels amarelos indicam as posições em que serão analisados os brilhos dos adjacentes;• Os pixels azuis são os adjacentes do pixel amarelo central 0, que no caso, está analisado;• Como o maior valor de seus adjacentes é 5, logo, o valor desta posição na nova imagem será 5;

Page 4: Deep Learning

• A respectiva Banda da Imagem após o pooling é:

10• 5 10

• 5 5 10

• 6 4 10

• A última etapa realizada em L1 é a normalização desta nova imagem multibanda resultante do pooling;

• Agora, a camada L2 recebe uma imagem de com y bandas;• Logo, teremos k kernels multibandas (banco de kernels), sendo que cada kernel possuíra y bandas

→ como y é o número de kernels da camada L1 e o número de kernels da camada L2 deve ser maior que o da camada L1, k > y;

• O tamanho do Kernel nesta camada é maior do que na camada anterior;• Ex: Se na camada L1 usamos 64 filtros, a imagem resultante após a convolução tem 64 bandas.

Supondo que na camada L2 usaremos 128 filtros (banco de filtros), cada filtro terá 64 bandas, pois aimagem de entrada tem 64 bandas. Isso viabiliza a convolução dos filtros com a a imagem. Após a convolução, teremos agora uma imagem com 128 bandas;

• Com isso, todas as etapas descritas em L1 são refeitas:• É feita a convolução da imagem com cada Kernel do banco de Kernels, sendo que cada banda da

imagem é convolvida com sua respectiva banda no kernel;• Ao final da Convolução, teremos uma nova imagem, agora com k bandas;

• Na camada L3 é refeito as mesmas etapas;

• Por fim, ao final destas 3 camadas, teremos um vetor de características (descritor), que descreve a imagem;

• Com este descritor, podemos comparar se uma imagem é similar a outras (ex: se a imagem de uma pessoa é de uma determinada pessoa);

• Podemos fazer isso usando um classificador obtido por SVM Linear;

• O problema do algoritmo consiste em aprender os parâmetros e hiperparâmetros da função de extração dos vetores de características:◦ número de kernels em cada camada, tamanho de tais kernels, strides, …;

Esquema do Algoritmo de Deep Learning com CNN