Desmistificar redes neurais convolucionais

Tradução de redes neurais convolucionais desmistificadoras .


Redes neurais convolucionais.

Na década passada, vimos avanços surpreendentes e sem precedentes na visão computacional. Hoje, os computadores podem reconhecer objetos em imagens e quadros de vídeo com uma precisão de 98%, já à frente de uma pessoa com seus 97%. Foram as funções do cérebro humano que inspiraram os desenvolvedores a criar e aprimorar técnicas de reconhecimento.

Certa vez, os neurologistas realizaram experimentos com gatos e descobriram que as mesmas partes da imagem ativam as mesmas partes do cérebro do gato. Ou seja, quando o gato olha para o círculo, a zona alfa é ativada em seu cérebro e, quando olha para o quadrado, a zona beta é ativada. Os pesquisadores concluíram que no cérebro dos animais existem áreas de neurônios que respondem a características específicas da imagem. Em outras palavras, os animais percebem o ambiente através da arquitetura neural multicamada do cérebro. E cada cena, cada imagem passa por um bloco peculiar de seleção de sinais, e só então é transmitida às estruturas mais profundas do cérebro.

Inspirados por isso, os matemáticos desenvolveram um sistema no qual são imitados grupos de neurônios que operam em diferentes propriedades da imagem e interagem entre si para formar uma imagem comum.

Recuperando propriedades


A idéia de um grupo de neurônios ativados que são fornecidos com dados de entrada específicos foi transformada em uma expressão matemática de uma matriz multidimensional que desempenha o papel de determinante de um conjunto de propriedades - é chamado de filtro ou núcleo. Cada um desses filtros procura alguma peculiaridade na imagem. Por exemplo, pode haver um filtro para determinar os limites. As propriedades encontradas são transferidas para outro conjunto de filtros que podem determinar as propriedades de nível superior da imagem, por exemplo, olhos, nariz, etc.


Convolução da imagem usando filtros Laplace para determinar os limites.

Do ponto de vista da matemática, entre a imagem de entrada, apresentada na forma de uma matriz de intensidade de pixel, e o filtro, realizamos uma operação de convolução, resultando no chamado mapa de propriedades (mapa de características). Este mapa servirá como entrada para a próxima camada de filtro.

Por que uma convolução?


Convolução é um processo no qual a rede tenta marcar o sinal de entrada comparando-o com informações previamente conhecidas. Se o sinal de entrada parecer imagens anteriores de gatos, redes já conhecidas, o sinal de referência "gato" será minimizado - misturado - com o sinal de entrada. O sinal resultante é transmitido para a próxima camada. Nesse caso, o sinal de entrada significa uma representação tridimensional da imagem na forma de intensidades de pixels RGB, e o sinal de referência "gato" é aprendido pelo núcleo para reconhecer gatos.


Operação e filtro de convolução de imagem. Fonte

A operação de convolução possui uma excelente propriedade - invariante de conversão. Isso significa que cada filtro de convolução reflete um determinado conjunto de propriedades, por exemplo, olhos, ouvidos, etc., e o algoritmo de rede neural convolucional aprende a determinar qual conjunto de propriedades corresponde à referência, digamos, de um gato. A intensidade do sinal de saída não depende da localização das propriedades, mas de sua presença. Portanto, o gato pode ser representado em várias poses, mas o algoritmo ainda pode reconhecê-lo.

Pooling


Seguindo o princípio do cérebro biológico, os cientistas foram capazes de desenvolver um aparato matemático para extrair propriedades. Mas, depois de avaliar o número total de camadas e propriedades que precisam ser analisadas para rastrear formas geométricas complexas, os cientistas perceberam que os computadores não teriam memória suficiente para armazenar todos os dados. Além disso, a quantidade de recursos computacionais necessários cresce exponencialmente com o aumento do número de propriedades. Para resolver esse problema, uma técnica de pool foi desenvolvida. Sua ideia é muito simples: se uma determinada área contém propriedades pronunciadas, podemos recusar a pesquisa de outras propriedades nessa área.


Exemplo de associação do valor máximo.

A operação de pool não apenas economiza memória e poder de processamento, mas também ajuda a limpar imagens do ruído.

Camada totalmente colada


Ok, por que uma rede neural seria útil se ela pudesse definir apenas conjuntos de propriedades de imagem? De alguma forma, precisamos ensiná-la a categorizar imagens. E a abordagem tradicional para a formação de redes neurais nos ajudará nisso. Em particular, os mapas de propriedades obtidos nas camadas anteriores podem ser coletados em uma camada totalmente associada a todos os rótulos que preparamos para categorização. Essa última camada atribuirá as probabilidades de corresponder a cada classe. E com base nessas probabilidades finais, podemos atribuir a imagem a alguma categoria.


Camada totalmente colada. Fonte

Arquitetura final


Agora resta apenas combinar todos os conceitos estudados pela rede em uma única estrutura - a rede neural convolucional (Rede Neural de Convolução, CNN). A CNN consiste em uma série de camadas convolucionais que podem ser combinadas com camadas de pool para gerar um mapa de propriedades que é passado para camadas totalmente conectadas para determinar as probabilidades de correspondência de qualquer classe. Recuperando os erros que obtemos, podemos treinar essa rede neural até obter resultados precisos.

Agora que entendemos as perspectivas funcionais da CNN, vamos dar uma olhada nos aspectos do uso da CNN.

Redes neurais convolucionais



Camada convolucional.

A camada convolucional é o principal componente da CNN. Cada uma dessas camadas inclui um conjunto de filtros independentes, cada um dos quais procura seu próprio conjunto de propriedades na imagem recebida.


Operação de convolução. Fonte

Do ponto de vista da matemática, tomamos um filtro de tamanho fixo, impomos à imagem e calculamos o produto escalar do filtro e uma parte da imagem de entrada. Os resultados do trabalho são colocados no mapa de propriedades final. Em seguida, movemos o filtro para a direita e repetimos a operação, adicionando também o resultado do cálculo ao mapa de propriedades. Após a convolução da imagem inteira com a ajuda de um filtro, obtemos um mapa de propriedades, que é um conjunto de sinais explícitos e é alimentado como entrada para a próxima camada.

Passos


Stride é a quantidade de deslocamento do filtro. Na ilustração acima, mudamos o filtro por um fator de 1. Mas às vezes você precisa aumentar o tamanho do deslocamento. Por exemplo, se os pixels vizinhos estiverem fortemente correlacionados entre si (especialmente nas camadas inferiores), faz sentido reduzir o tamanho da saída usando o passo apropriado. Mas se o ritmo for muito grande, muita informação será perdida; portanto, tenha cuidado.


O passo é 2. Fonte .

Padding



Estofamento de camada única. Fonte

Um dos efeitos colaterais da passada é a diminuição consistente no mapa de propriedades à medida que mais e mais convoluções são realizadas. Isso pode ser indesejável, pois "redução" significa perda de informações. Para tornar mais claro, preste atenção no número de vezes que o filtro é aplicado à célula no meio e no canto. Acontece que, sem motivo, as informações na parte do meio são mais importantes do que nas bordas. E para extrair informações úteis de camadas anteriores, você pode envolver a matriz com camadas de zeros.

Compartilhamento de parâmetros


Por que precisamos de redes convolucionais se já temos boas redes neurais de aprendizado profundo? Vale ressaltar que, se usarmos redes de aprendizado profundo para classificar imagens, o número de parâmetros em cada camada será mil vezes maior que o da rede neural convolucional.


Compartilhando parâmetros em uma rede neural convolucional.

Source: https://habr.com/ru/post/pt443236/


All Articles