• Nenhum resultado encontrado

As redes neurais convolucionais, conhecidas pela sigla CNN (do inglˆes Convolutional Neural Networks) s˜ao classes especiais de perceptrons multicamadas aplicadas principalmente na ´area de processamento de imagens digitais com o objetivo de reconhecer padr˜oes (HAYKIN, 2008). Essa efic´acia na classificac¸˜ao de imagens ´e uma das principais raz˜oes do reconhecimento que o mundo deu ao poder do deep learning (HOPE et al., 2017).

A criac¸˜ao das CNN’s teve inspirac¸˜ao biol´ogica no c´ortex visual dos animais. As c´elulas que comp˜oe essa estrutura s˜ao extremamente sens´ıveis a pequenas regi˜oes de entrada, dispostas lado a lado com o prop´osito de cobrir todo o campo visual. Esse conjunto de c´elulas atua como um filtro coletando informac¸˜oes espaciais das imagens processadas pelo c´erebro identificando formas e padr˜oes. ´E devido `a essa inspirac¸˜ao que as CNN’s s˜ao fortemente usadas quando a base de dados s˜ao imagens (PATTERSON; GIBSON, 2017).

Na Sec¸˜ao 3.2 foram descritas as redes neurais feedforward e como s˜ao estruturadas as ligac¸˜oes entre os neurˆonios de suas camadas. ´E importante comparar esse modelo `a CNN pois as principais caracter´ısticas da convoluc¸˜ao surgem atrav´es da otimizac¸˜ao de tarefas que, em redes multicamadas feedforward, requisitaria grande quantidade de processamento (RASCHKA, 2015). Tarefas, essas, associadas com a utilizac¸˜ao de imagens como dados de entrada. Uma simples imagem de 32 p´ıxeis de largura por 32 p´ıxeis de altura, contendo trˆes canais de informac¸˜ao RGB produz um total de 3.072 (trˆes mil e setenta e dois) pesos por neurˆonio em uma camada oculta. Considerando que h´a diversos neurˆonios presentes na camada, esse resultado seria multiplicado pelo total de neurˆonios presentes. Essa imensa gama de conex˜oes existentes em redes neurais feedforward tradicionais exige um certo custo de processamento invi´avel para este tipo de dado (PATTERSON; GIBSON, 2017).

A estrutura de uma CNN possui camadas com neurˆonios arranjados em trˆes dimens˜oes: largura, altura e profundidade. Essa configurac¸˜ao se encaixa perfeitamente no tratamento de imagens, considerando os p´ıxeis como altura e largura e a informac¸˜ao RGB como profundidade (RASCHKA, 2015; GOODFELLOW et al., 2016; PATTERSON; GIBSON, 2017). Como demonstrado na Figura 14, os neurˆonios em uma camada convolucional se conectam `a pequenas regi˜oes locais das camadas anteriores, abstendo-se do desperd´ıcio de uma conex˜ao completa entre os mesmos, como ocorre em redes feedforward. Pode-se resumir que a func¸˜ao de uma camada convolucional ´e receber e processar informac¸˜oes tridimensionais produzindo resultados de mesma dimens˜ao (BUDUMA; LACASCIO, 2017).

Figura 14 – Representac¸˜ao de largura, altura e profundidade de camadas convolucionais. Fonte: (BUDUMA; LACASCIO, 2017).

As camadas convolucionais possuem, entre si, as chamadas interac¸˜oes esparsas (conectividade esparsa ou pesos esparsos), arranjos que tornam o kernel menor que a entrada (HAYKIN, 2008). Durante o processamento de uma imagem com milh˜oes ou milhares de p´ıxeis, por exemplo, a convoluc¸˜ao ´e capaz de coletar informac¸˜oes que ocupem somente centenas ou dezenas de p´ıxeis. Al´em de eficiˆencia, reduz os c´alculos de sa´ıda (HAYKIN, 2008; GOODFELLOW et al., 2016). A Figura 15 demonstra a comparac¸˜ao entre a conectividade esparsa e a conectividade completa presente nas redes multicamadas tradicionais. A camada de sa´ıda s ´e formada por convoluc¸˜ao e as unidades x afetam esses neurˆonios. Com a camada de sa´ıda formada por convoluc¸˜ao de kernel 3, apenas trˆes unidades s˜ao afetadas por x3(Figura

15(a)). Por outro lado, a utilizac¸˜ao de multiplicac¸˜ao de matrizes faz com que todos os neurˆonios sejam afetados por x3(Figura 15(b)) (GOODFELLOW et al., 2016).

Figura 15 – Representac¸˜ao comparativa entre convoluc¸˜ao e multiplicac¸˜ao de matrizes em camadas de redes neurais.

Fonte: Adaptado (GOODFELLOW et al., 2016).

As CNN’s possuem diversas variac¸˜oes de estrutura interna, entretanto, s˜ao baseadas em uma sequˆencia padronizada de camadas (PATTERSON; GIBSON, 2017). S˜ao elas, respectivamente:

1. Camada de entrada;

2. Camadas de extrac¸˜ao de caracter´ıstica; 3. Camadas de classificac¸˜ao.

Para realizar a extrac¸˜ao de recursos, a CNN se organiza em um padr˜ao de repetic¸˜ao composto por camadas convolucionais seguidas de camadas de pooling (tamb´em denominadas camadas de agrupamento) (RASCHKA, 2015; HOPE et al., 2017). Essa organizac¸˜ao ´e respons´avel por extrair as caracter´ısticas nas imagens e construir recursos de ordem superior. As camadas de classificac¸˜ao s˜ao completamente conectadas aos neurˆonios da camada anterior, encarregadas de produzir as probabilidades e pontuac¸˜oes apontando as classes pertencentes. O resultado produzido na sa´ıda possui dimens˜ao [axN], ou seja, a relac¸˜ao entre o n´umero de amostras (a) pelo n´umero de classes existentes (N) (PATTERSON; GIBSON, 2017). As camadas convolucionais s˜ao consideradas os blocos estruturais mais importantes na construc¸˜ao de uma CNN, sendo respons´aveis por transformar os dados de entrada (RASCHKA, 2015; GOODFELLOW et al., 2016). Para tal, se utilizam de um conjunto de neurˆonios

conectados localmente `a camada anterior. Por conseguinte, ocorre o c´alculo dos pontos entre a regi˜ao dos neurˆonios na camada de entrada e seus pesos associados localmente na camada de sa´ıda (PATTERSON; GIBSON, 2017).

Segundo Haykin (2008) e Patterson e Gibson (2017) as camadas convolucionais s˜ao compostas de parˆametros e hiperparˆametros usados para realizar o treinamento e gerar as pontuac¸˜oes nas respectivas classes. Os principais componentes s˜ao:

• Filtros (kernel); • Mapas de ativac¸˜ao;

• Compartilhamento de parˆametros; • Hiperparˆametros espec´ıficos.

´

E por meio de uma operac¸˜ao matem´atica fundamental chamada convoluc¸˜ao que todo o processo de transformac¸˜ao ocorre (GOODFELLOW et al., 2016). A convoluc¸˜ao pode ser basicamente definida como uma regra capaz de mesclar dois conjuntos de informac¸˜ao, ou seja, um detector de recursos (PATTERSON; GIBSON, 2017). Como essas camadas podem se repetir atrav´es da estrutura de uma CNN, os dados recebidos podem ser brutos ou simplesmente informac¸˜oes vindas de outras convoluc¸˜oes. Essa caracter´ıstica introduz o conceito de filtro `a convoluc¸˜ao, j´a que o kernel seleciona determinados tipos de informac¸˜ao. Por exemplo, uma CNN que utiliza um kernel no processamento de uma imagem digital para obter informac¸˜oes de borda (RASCHKA, 2015; PATTERSON; GIBSON, 2017).

Um exemplo de como o filtro se comporta ´e ilustrado na Figura 16. A cada iterac¸˜ao, o kernel ´e multiplicado pelos valores recebidos da camada de entrada criando uma ´unica referˆencia numa estrutura bidimensional denominada mapa de caracter´ısticas, tamb´em conhecido como mapa de ativac¸˜ao. Recebe esse nome pois a ac¸˜ao de “ativar” do kernel permite que as informac¸˜oes transloquem do volume de entrada para o de sa´ıda. Nesse mapa est˜ao armazenados todos os valores resultantes da aplicac¸˜ao do kernel (HOPE et al., 2017; PATTERSON; GIBSON, 2017). Como cada valor de entrada possui seus respectivos pesos e vi´es, a gerac¸˜ao do mapa de ativac¸˜ao pode ser resultada da Equac¸˜ao 9, onde k representa a caracter´ıstica no mapa de ativac¸˜ao, W se refere aos pesos e b ao vi´es (BUDUMA; LACASCIO, 2017).

mki j = f ((W ∗ x)i j+ bk) (9)

O kernel n˜ao ´e utilizado apenas em um ´unico mapa de recursos. Sua operac¸˜ao ocorre em todo conjunto de mapas de caracter´ısticas gerados por uma certa camada. Para reconhecimento de faces durante um processamento de imagem, por exemplo, ´e preciso acumular mapas de ativac¸˜ao para os olhos, nariz e boca. A face ´e reconhecida quando os

locais correspondentes nos mapas de ativac¸˜ao primitivos possuem os recursos apropriados, ou seja, dois olhos, um nariz e uma boca. Concluindo, as decis˜oes tomadas pela camada de sa´ıda devem levar em considerac¸˜ao a combinac¸˜ao de v´arios mapas de caracter´ısticas (BUDUMA; LACASCIO, 2017).

Figura 16 – Operac¸˜ao de convoluc¸˜ao por meio de um kernel. Fonte: Adaptado (PATTERSON; GIBSON, 2017).

Sabe-se que uma CNN possui conex˜ao local entre os neurˆonios e suas camadas. Essa conectividade ´e controlada por um hiperparˆametro denominado campo receptivo, encarregado de coordenar o quanto de largura e altura o filtro ir´a mapear (GOODFELLOW et al., 2016; PATTERSON; GIBSON, 2017).

O terceiro item citado no in´ıcio ´e o compartilhamento de parˆametros. Esse esquema ´e utilizado pelas CNN’s para administrar o total de parˆametros, procedimento determinante no tempo de treinamento levado pela rede neural (HAYKIN, 2008). O m´etodo ocorre selecionando partes menores das camadas de convoluc¸˜ao, em que cada neurˆonio utilizar´a os mesmos pesos e vi´es. Isso reduz o n´umero de parˆametros referenciados pela camada. A ac¸˜ao de compartilhar resulta na invariˆancia da CNN `a traduc¸˜ao e posic¸˜ao, ou seja, a classificac¸˜ao convolucional independe da posic¸˜ao de uma caracter´ıstica na imagem de entrada. (GOODFELLOW et al., 2016).

Algumas estruturas convolucionais utilizam camadas espec´ıficas para a utilizac¸˜ao da func¸˜ao de ativac¸˜ao ReLu, apresentada na Sec¸˜ao 3.3. O uso dessa func¸˜ao, aplicado no elemento de entrada, muda os valores dos p´ıxeis sem alterar a dimens˜ao dos dados que chegam `a sa´ıda. ´E um fator interessante, j´a que a func¸˜ao ReLu n˜ao possui parˆametros e hiperparˆametros adicionais (PATTERSON; GIBSON, 2017).

Por fim, tem-se os hiperparˆametros espec´ıficos. S˜ao componentes que fornecem o escopo espacial e determina o tamanho do conjunto de informac¸˜oes na sa´ıda da camada convolucional. Compostos pelo tamanho do filtro, a profundidade de sa´ıda, passo (comumente referenciado no inglˆes stride) e o preenchimento de zero (PATTERSON; GIBSON, 2017).

O primeiro se define pela representac¸˜ao num´erica do filtro, ou seja, dizer que um filtro ´e de tamanho 5 x 5 x 3 significa que possui 5 p´ıxeis de altura por 5 p´ıxeis de largura, com o 3 representando os canais de cores RGB. A profundidade coordena a contagem de neurˆonios conectados `a camada convolucional na regi˜ao do volume de entrada, onde esse conjunto de neurˆonios se denomina coluna de profundidade. O passo diz `a camada convolucional o n´umero de vezes que o filtro deve ser aplicado, ou seja, define a quantidade de colunas de profundidade que a sa´ıda ter´a. Por ´ultimo, o preenchimento de zero ´e utilizado quando se quer administrar o tamanho espacial da camada de sa´ıda, exemplificado quando os volumes de entrada permanecem com o mesmo tamanho espacial ao chegar `a sa´ıda (BUDUMA; LACASCIO, 2017; PATTERSON; GIBSON, 2017).

Para reduzir drasticamente a dimensionalidade dos mapas de caracter´ısticas e aprimor´a-los, ´e necess´ario incluir uma camada de agrupamento m´aximo na sequˆencia de uma camada convolucional, as chamadas camadas de pooling (BUDUMA; LACASCIO, 2017). O princ´ıpio do agrupamento ´e dividir o mapa de recursos em pequenos blocos de mesmo tamanho e organizar um novo mapa contendo todos os recursos condensados. No mapa original de caracter´ısticas, uma c´elula ´e criada e seu valor m´aximo ´e calculado e propagado para o mapa de caracter´ısticas condensadas (GOODFELLOW et al., 2016). A Figura 17 demonstra a operac¸˜ao.

Figura 17 – Representac¸˜ao do agrupamento m´aximo de caracter´ısticas na camada de pooling. Fonte: (BUDUMA; LACASCIO, 2017).

A propriedade fundamental por tr´as da camada de pooling, ´e o fator invariante que ela assume. Isso garante que, mesmo as entradas sofrendo alterac¸˜oes, a sa´ıda de agrupamento m´aximo permanece constante. E um fator importante para algoritmos de reconhecimento´ visual, pois se preocupam em determinar se h´a uma caracter´ıstica na imagem e n˜ao onde est´a localizada. Entretanto, impor invariˆancia demasiadamente faz com que a rede neural perca parte da capacidade de transportar informac¸˜oes importantes, logo, a dimensionalidade espacial

das camadas de agrupamento permanece pequena (GOODFELLOW et al., 2016; BUDUMA; LACASCIO, 2017).

Documentos relacionados