• Nenhum resultado encontrado

2.4 Resumo dos Trabalhos

3.1.1 Rede Neural Convolucional

As CNNs foram projetadas por uma necessidade de construir filtros adaptativos para imagens que aprendessem representações de dados existentes neles. Antes destes tipos de redes surgirem a imagem era processada por um conjunto de filtros; determinados inicialmente que extraíam informações das imagens e estas informações serviam de entrada para algum um classificador. Uma CNN propõe que esses filtros sejam treinados pela própria rede, como em uma cascata de filtros com complexidade gradativa. A entrada e a saída entre cada camada são mapas de características. Este processo é análogo para sinais de áudio, no qual cada mapa de característica é representado por um vetor (LECUN; BENGIO,1995).

CNNs tiram proveito da propriedade de características contíguas da entrada (imagem, sinais de áudio), assim que restringem a arquitetura a terem uma menor quantidade de pesos. Em particular, as camadas de uma CNN têm nodos dispostos em 3 dimensões: largura, altura, profundidade. Note que que a palavra profundidade aqui refere-se para a terceira dimensão de um volume de ativação, não para a profundidade de uma rede neural total, que pode referir-se ao número total de camadas de uma rede. Como será apresentado a seguir, os nodos em uma camada só serão ligados a uma pequena região da próxima camada, ao invés de se ligarem a todos os nodos desta. Ao final da arquitetura da CNN, esta irá reduzir a imagem completa num único vector de classe, disposto ao longo da dimensão de profundidade. A Figura 3.1 mostra-se uma representação e comparação entre uma rede neural padrão e uma CNN.

Uma CNN possui uma sequência de camadas de modo que cada uma transforma um volume de ativações para outra camada através de uma função diferenciável. São usadas três

tipos principais de camadas para construir arquiteturas CNN: Camada Convolucional, Camada Poolinge Camada Fully-Connected. Essas camadas são empilhadas para formar uma arquitetura CNN completa. Para exemplificar o tamanho dos dados nas camadas será assumida uma imagem de entrada com 32x32 pixels (KRIZHEVSKY; SUTSKEVER; HINTON,2012).

 INPUT [32x32]: manterá os valores de pixel da imagem, neste caso, uma imagem de

largura 32 e altura 32.

 CONV: esta camada irá calcular a saída de nodos que estão ligados a regiões locais

na entrada, cada cálculo de um produto de pontos entre os seus pesos e uma pequena região que estão ligados no volume de entrada. Isso resulta em um volume como [32x32x12] para um exemplo de 12 filtros.

 POOL: é aplicada uma função de ativação elemento a elemento, como por exemplo

max(0, X). O tamanho da profundidade permanece inalterado ([32x32x12]), a camada vai realizar uma operação de subamostragem ao longo das dimensões espaciais (largura, altura) resultando em volume por exemplo [16x16x12].

 FC: Fully-Connected irá calcular os scores de classe, resultando em volume de

tamanho [1x1x12], onde cada um dos 12 valores correspondem a um score. Tal como acontece com Redes Neurais clássicas, cada nodo nesta camada será conectado a todos os nodos no volume anterior.

Ao lidar com entradas de alta dimensionalidade, como imagens, é impraticável conectar todos os nodos para todos os nodos no volume entre os volumes. Em vez disso, conecta-se cada nodo em apenas uma região local do volume de entrada. A extensão espacial dessa conectividade é um parâmetro chamado o campo receptivo do nodo (inspirado biologicamente nas células nervosas da visão). A extensão da ligação ao longo do eixo de profundidade é sempre igual à profundidade do volume de entrada. As conexões são locais no espaço (ao longo de largura e altura), mas são sempre completas ao longo de toda a profundidade do volume de entrada. Na camada de CONV é realizada uma convolução entre a região de entrada ligada ao filtro e este. A saída desta operação construirá o volume de ativações para a próxima camada. A Figura 3.2 exemplifica este processo na camada de convolução. As CNNs tem tido muitos bons resultados em diversos campos quando se trabalha com de imagens, vídeo ou áudio.

É comum inserir periodicamente uma camada de Pooling, como mostrado na Figura 3.3, em entre camadas sucessivas CONV numa arquitetura CNN. A sua função é reduzir progressivamente o tamanho espacial da representação para reduzir a quantidade de parâmetros e computação da rede, e, portanto, também para controlar o superajuste. A camada de Pooling opera de forma independente em cada plano de nodos do volume da entrada para redimensioná-lo espacialmente, usando a operação MAX. A forma mais comum é uma camada de Pooling com filtros de tamanho 2x2 aplicados com um passo de 2, de forma a reduzir a resolução a cada fatia

Figura 3.2: Esquerda: Um imagem de entrada (vermelho). Cada nodo na camada convolutional está ligado apenas a uma região local no volume de entrada espacialmente. Existem alguns nodos ao longo da profundidade, todos ligados a mesma região de entrada.

Direita: Função de convolução para as entradas pelo filtro (KARPATHY,2016).

Figura 3.3: A contribuição desta camada é reduzir a resolução do volume espacialmente, independentemente, em cada fatia profundidade do volume de entrada. Esquerda: Neste

exemplo, o volume de entrada de tamanho [224x224x64] é reunido com o tamanho do filtro 2, passo 2 em volume de tamanho [112x112x64] saída. Note-se que a profundidade de volume é preservada. Direita: A operação de redução da resolução mais comum é max

(max pooling), mostrado aqui com um passo de 2 (KARPATHY,2016).

de profundidade na entrada por 2 ao longo de largura e altura, descartando 75% das ativações. Cada operação MAX iria, neste caso, tomar um máximo de 4 valores (região 2x2). Assim, a dimensão de profundidade permanece inalterada. O ajuste dos pesos é realizado pelo algoritmo de Backprogagation atualizando os pesos para cada camada. A camada de Pooling não interfere no gradiente do Backprogagation.

Documentos relacionados