Вы находитесь на странице: 1из 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 espao descorrelacionado e s usaremos
a banda referente ao cinza. No caso do espao YcbCr, usaremos a banda Y;
A cada camada do algoritmo, temos uma imagem de mltiplas bandas;

O Deep Learning, usando o CNN, trabalha com 3 camadas;


Antes de entrar na primeira camada (L1), a imagem normalizada;
O processo de normalizao consiste no seguinte:

Ou seja, o valor do pixel p na imagem normalizada, o valor do pixel na imagem original, dividido
pela raz quadrada do somatrio do quadrado de todos os pixels adjacentes de todas as bandas
(lembre-se que o pixel p adjacente a ele mesmo) A normalizao do pixel p nada mais do que
a norma euclidiana;
A normalizao serve para mostrar quais so 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 questo,
pela raz quadrada da soma dos quadrados dos valores de todos os adjacentes a p de todas as bandas
da imagem;

Na camada L1 do algoritmo, a entrada uma imagem cinza, de uma banda com os valores
normalizados;
criado y Kernels (Banco de Kernels), de tamanho MxN, onde y M e N so parmetros a serem
descobertos maior dificuldade do algoritmos;
Nesta camada, os kernel possui apenas uma banda, pois a imagem de entrada tem apenas uma
banda;
Os pesos de cada Kernel so gerados aleatoriamente podemos utilizar valores de 0 at 1;
Algumas coisas que devemos considerar que a mdia dos pesos de todas as bandas do kernel
deve ser zero e com norma unitria;
Sendo median, a mdia de todos os pesos de todas as bandas do kernel, o valor dos pesos do
kernel so obtidos pelas equaes: w' = peso com valor aleatrio median w ' q=wqw ,
para todo peso de todas as bandas do kernel isso garante que a mdia de todos os pesos de
todas as bandas do kernel seja Zero;
Temos que norm a norma de todos os pesos do kernel, ou seja, a raz quadrada da soma dos
quadrados de todos os pesos de todas as bandas do kernel norm=
w 2i q )), onde i a

banda;
Logo, o valor dos pesos de cada banda do kernel : w q=

q A (p )

wq
;
norm

H outras maneiras de gerar os pesos (ver slides);


Agora, feita a convoluo de cada Kernel com a imagem, onde cada convoluo 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 convoluo da imagem original com o
Kernel 0, e assim por diante;

Se o valor de um peso do kernel gerado aleatoriamente for menor que a mdia dos pesos de todas
as bandas do kernel, na hora de subtra-lo por esta mdia, para garanta que a mdia dos pesos de
todas as bandas do kernel 0, este valor ser negativo;
Assim, aps a convoluo, poderemos ter pixels com valores negativos se o valor do peso do kernel
for 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;

Este valores zeros ou valores pequenos, so resultantes de valores pequenos da Imagem de entrada
normalizada;
Logo, so valores que no devemos usar para representar a imagem, pois eles no tem muita
importncia;
Muitos deles sero eliminados na etapa do Pooling;
A prxima etapa do algoritmo o Pooling;
Esta etapa consiste em escolher os pixels mais significativos da imagem multibanda resultante da
convoluo, de acordo com um stride passado (stride mais um parmetro a ser descoberto);
Com isso, se a imagem tiver um pouco transladada, no afeta no reconhecimento da imagem, pois
isso cria certa invarincia translao, alm de gerar uma imagem de menor resoluo espacial;
O pooling funciona da seguinte maneira:
Suponha que h vrios pixels entre os pontos pretos;
Com este stride, selecionaremos apenas 9 pixels de cada banda da imagem, de acordo com alguma
eurstica, resultando em uma nova imagem de 9 pixels em cada banda;
Na imagem maior, analisaremos qual o valor mximo 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 prprio pixel adjacente dele mesmo;

Outro exemplo: Vamos supor que temos uma imagem 5x5, um kernel 3x3 e um stride de 2. Assim,
comeando do pixel (0, 0), percorreremos a imagem com base no stride;
Uma Banda da Imagem
10
0
1
4
10
0

10

6
0
0
4
0
Banda da Imagem aps o Pooling
5

Os pixels amarelos indicam as posies em que sero analisados os brilhos dos adjacentes;
Os pixels azuis so os adjacentes do pixel amarelo central 0, que no caso, est analisado;
Como o maior valor de seus adjacentes 5, logo, o valor desta posio na nova imagem ser 5;

A respectiva Banda da Imagem aps o pooling :

10

10

10

10

A ltima etapa realizada em L1 a normalizao 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 possura y bandas
como y o nmero de kernels da camada L1 e o nmero 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 aps a convoluo tem 64 bandas.
Supondo que na camada L2 usaremos 128 filtros (banco de filtros), cada filtro ter 64 bandas, pois a
imagem de entrada tem 64 bandas. Isso viabiliza a convoluo dos filtros com a a imagem. Aps a
convoluo, teremos agora uma imagem com 128 bandas;

Com isso, todas as etapas descritas em L1 so refeitas:


feita a convoluo 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 Convoluo, 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 caractersticas (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 parmetros e hiperparmetros da funo de


extrao dos vetores de caractersticas:
nmero de kernels em cada camada, tamanho de tais kernels, strides, ;

Esquema do Algoritmo de Deep Learning com CNN

Вам также может понравиться