O mundo do ponto de vista das Redes Neurais Convolucionais

As Redes Neurais Convolucionais (RNCs) são um tipo especial de Rede Neural Artificial. Inspiradas em processos biológicos, as RNCs vêm sendo aplicadas, principalmente, no processamento e análise inteligente de imagens digitais. Neste artigo, abordo a diferença entre Redes Neurais Artificiais e Redes Neurais Convolucionais. Venha ver o mundo do ponto de vista das RNCs.

Bianka Tallita Passos

Bianka Tallita Passos

July 13, 2021 | leitura de 5 minutos

dev

Se você acompanha notícias sobre tendências na área de tecnologia, com certeza já ouviu falar em inteligência artificial e aprendizado de máquina (machine learning). Mas como as Redes Neurais Convolucionais - RNCs - se encaixam nesse contexto? 

As RNCs podem ser definidas como algoritmos de aprendizado profundo (deep learning), uma subárea do machine learning. Mais especificamente, as RNCs são uma classe de redes neurais artificiais, inspiradas no funcionamento do córtex visual cerebral. Sua aplicação se dá, principalmente, em tarefas de classificação, identificação e detecção de elementos em imagens.

Vou detalhar este assunto.

O que é uma Rede Neural Convolucional? 

Goodfellow, Bengio e Courville (2016), definem as Redes Neurais Convolucionais como arquiteturas de rede similares às Redes Neurais Artificiais, porém apresentam um maior número de camadas e, consequentemente, de operações. Numa Rede Convolucional, cada camada é responsável por extrair determinadas informações dos dados de entrada. A informação flui através de cada camada da rede, com a saída da camada anterior fornecendo a entrada para a camada seguinte da rede.

As RNCs são capazes de simular a capacidade cognitiva humana, identificando rostos, indivíduos e outros elementos presentes em uma imagem. Logo, as Redes Convolucionais podem ser utilizadas para classificar imagens e reconhecer objetos dentro de cenas, por exemplo. 

Camadas da Rede Neural Convolucional 

As RNCs podem ser divididas em duas partes (módulos) principais: convolução e classificação. 

O módulo de convolução é responsável pela extração de elementos da imagem que descrevem o seu conteúdo. Já o módulo de classificação fica responsável pela tarefa de classificar os dados extraídos durante a etapa de convolução. O resultado da classificação é direcionado para a saída da rede. 

Como vimos, o que diferencia as Redes Neurais Convolucionais das Redes Neurais Artificiais clássicas é o número de camadas intermediárias (ou, camadas escondidas). Em resumo, cada camada da Rede Convolucional é responsável por uma subtarefa específica. As principais camadas que compõem uma RNC são:

  • Camada de convolução: responsável por extrair, bem como mapear o conteúdo da imagem, transformando-o em dados. Esse processo ocorre por meio da aplicação de pequenos blocos, conhecidos como filtros, que permitem a obtenção das informações de sub-blocos da imagem;

  • Pooling: a camada de pooling recebe os blocos que contém as informações extraídas na etapa de convolução. Ela simplifica a informação, resumindo os dados do sub-bloco da imagem em um único valor e os repassa para uma camada totalmente conectada;

  • Camada totalmente conectada: onde é iniciado o processo para classificar as informações extraídas pelas camadas anteriores. A camada totalmente conectada achata o sub-bloco contendo os dados extraídos, ou seja, o bloco é transformado em uma única linha que contém todas as informações extraídas.

Além das camadas de convolução, pooling e da camada totalmente conectada, há ainda outros dois elementos fundamentais na composição de uma Rede Neural Convolucional: camada de dropout e a função de ativação. 

A camada de dropout possui a responsabilidade de reduzir o overfitting - sobreajuste - da rede. Ele ocorre quando  a rede decora os dados utilizados no aprendizado e não é capaz de aplicar as relações aprendidas em dados novos. É comum dizermos que neste cenário o modelo gerado a partir da rede treinada não tem capacidade de generalização. Portanto, não apresenta bom desempenho quando colocado em produção.

A função de ativação, por sua vez, é responsável pelo aprendizado da rede, bem como pela relação entre as variáveis, decidindo quais neurônios serão ativados.

O que a  Rede Neural Convolucional vê? 

Assim como eu, você deve estar se perguntando o que as Redes Convolucionais vêem durante o processo de aplicação dos filtros - que ocorre na camada de convolução.

Já sabemos que cada camada da rede é responsável por extrair uma característica específica da imagem. Além disso, sabemos que a imagem é dividida em sub-blocos e que cada filtro permite a extração das características dos blocos. Mas, o que são os filtros e como esse processo ocorre?

Os filtros (Figura 1) são matrizes que permitem que as RNCs identifiquem padrões na imagem, como bordas, formas, texturas, curvas, linhas horizontais e verticais, cantos, cores e partes de um determinado objeto presente na imagem.

Figura 1. Filtros das camadas convolucionais Fonte: Keras (2016).

Quanto mais profunda for a camada da rede, mais sofisticado é o filtro aplicado. Até que, em camadas ainda mais profundas, os filtros são capazes de detectar objetos como cães, gatos e pássaros - Figura 2.

cnn visual

Figura 2. Objetos do ponto de vista da rede neural convolucional  Fonte: Keras (2016).

Considerações

Neste post, entendemos a diferença entre as Redes Neurais Artificiais e as Redes Neurais Convolucionais. Vimos o mundo com o olhar das RNCs e compreendemos o seu funcionamento.

Há diversas arquiteturas de Redes Neurais Convolucionais, voltadas para solucionar problemas relacionados à processamento digital de imagens e visão computacional. Cada arquitetura possui particularidades mais adequadas para determinada tarefa. Cabe a pessoa especialista na área, avaliar qual a arquitetura mais adequada para cada situação e, também, identificar se a solução requer uma abordagem baseada em deep learning. 

Uma vez definida a abordagem, é imprescindível definir um bom conjunto de imagens para efetuar o treinamento da rede e analisar a sua acurácia. É importante observar que toda solução voltada para processamento digital de imagem deve iniciar com a definição da base de imagens. 

Referências:
GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A. Deep Learning. MIT Press: 2016. 
KERAS. How convolutional neural networks see the world, 2016. Disponível em <https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html>. Acesso em 15 Junho 2021.
Bianka Tallita Passos
Bianka Tallita Passos

Software Engineer | Mestranda em Computação Aplicada. Entusiasta de Visão Computacional e IA. Gosto de aprender e compartilhar conhecimento. Acredito em um mundo sem desigualdades entre animais humanos e não-humanos.

LinkedInGithubMedium