IA

Apresentação da rede neural convolucional aplicadas a imagens médicas

  • Sarah Madeleine
  • 16/02/2021
  • Atualizado dia 11/05/2022

No campo da IA em imagens médicas, a classificação das imagens deve ser particularmente precisa. Este artigo explica como a arquitetura de rede neural convolucional funciona, principalmente quando usada em imagens médicas.

O campo de processamento de imagens de IA é composto por vários ramos. Neste artigo, abordaremos a classificação de imagens médicas como tomografias computadorizadas ou ressonâncias magnéticas em grayscale por métodos de aprendizado profundo (do inglês deep learning).

Os diferentes tipos de famílias de modelos de classificação de imagens

A classificação de imagens teve um grande avanço no desempenho, graças ao surgimento da Rede Neural Convolucional (do inglês CNN Convolutional Neural Network).

Antes das redes neurais convolucionais, os métodos de classificação automática mais comumente usados ​​para imagens eram os algoritmos:

  • K vizinhos mais próximos (do inglês k-Nearest Neighbors, k-NN)
  • Máquina de vetores de suporte (do inglês Support Vector Machine, SVM)
  • Florestas aleatórias (do inglês Random Forest, RF) [1].

Como funcionam as redes neurais convolucionais?

Inteligência artificial é o uso de métodos e técnicas que permitem a simulação da inteligência humana. Nesta parte, explicaremos como funciona um neurônio artificial e, a seguir, apresentaremos a arquitetura das redes neurais convolucionais e seus principais componentes.

O que é um neurônio artificial?

Um neurônio artificial é um conjunto de operações matemáticas. Primeiramente, um peso e um bias são aplicados de forma refinada a um valor de entrada: em análise de imagens, esse é o valor de um pixel. Em seguida, uma função de ativação é aplicada ao resultado intermediário para representar os dados no espaço de dados dessa função. Muitas vezes, esta função de ativação não é linear, pois permite representar dados complexos onde a combinação linear não funciona.

Diagrama de operações matemáticas representando um neurônio artificial

Créditos : [2]

Qual a forma da arquitetura da rede neural convolucional?

A arquitetura de rede é inspirada no funcionamento do córtex visual dos animais. A análise do campo de visão é realizada por meio de um conjunto de sub-regiões sobrepostas que dividem a imagem lado a lado. Cada sub-região é analisada por um neurônio no cérebro do animal para pré-processar pequenas quantidades de informação. Isso é chamado de processamento convolucional [2].

A arquitetura de uma rede neural convolucional é formada por uma sucessão de blocos de construção que extraem as características que discriminam a classe pertencente à imagem de outros. Um bloco de construção consiste em uma ou mais:

  • camada convolucional (CONV) que processa os dados de um campo receptor
  • camada de correção (ReLU), frequentemente chamada de "ReLU" com referência à função de ativação (unidade linear retificada do inglês Rectified Linear Unit);
  • camada pooling (POOL) que compacta as informações reduzindo as dimensões da imagem intermediária (muitas vezes por sub-amostragem)

Os blocos de construção se sucedem até as camadas finais da rede que realizam a classificação da imagem e o cálculo do erro entre a previsão e o valor alvo:

  • camada totalmente conectada (do inglês "fully connected") (FC) do tipo perceptron;
  • camada de perda (LOSS) [2].

A particularidade da arquitetura da rede é a maneira como as camadas convolucional, de correção e pooling se sucedem nos blocos de construção e a maneira como os próprios blocos de construção se sucedem. A mesma é definida como resultado de um trabalho de pesquisa aplicada. Em outro artigo, veremos quais arquiteturas CNN são mais comumente usadas na classificação de imagens médicas.

Como funciona uma convolução?

A imagem é:

  1. cortada em sub-regiões chamadas ladrilhos
  2. analisado por um kernel convolucional

Este núcleo convolucional é do tamanho de um ladrilho, geralmente 3*3 ou 5*5. A área analisada (campo receptivo) é um pouco maior que o kernel, pois uma etapa é adicionada para que os campos receptivos se sobreponham. Esta astúcia permite uma melhor representação da imagem e uma melhora na coerência do processamento da mesma.
A análise das características da imagem pelo kernel convolucional é uma operação de filtragem com pesos associados a cada pixel. A aplicação do filtro à imagem é chamada de convolução [2].
Depois de uma convolução, um feature map é criado, é uma representação abstrata da imagem. Seus valores dependem dos parâmetros do kernel de convolução aplicado e dos valores de pixel da imagem de entrada.

O que é uma camada de convolução (CONV)?

Uma camada convolucional é uma pilha de convoluções. Na verdade, vários kernels convolucionais passam pela imagem, levando a vários feature maps de saída. Cada kernel convolucional possui parâmetros específicos para as informações que são pesquisadas na imagem (por exemplo: um kernel convolucional do tipo filtro Sobel possui parâmetros para identificar os contornos na imagem).
A escolha dos parâmetros convolucionais do kernel depende da tarefa a ser resolvida. Com os métodos de deep learning, esses parâmetros são aprendidos automaticamente pelo algoritmo a partir dos dados de treinamento [3]. Em particular, graças à técnica de retropropagação e gradientes, que permite que os parâmetros sejam ajustados de acordo com o valor do gradiente da função de perda. A função de perda calcula o erro entre o valor previsto e o valor alvo.

Diagrama de uma convolução com um kernel de tamanho 3*3 e distância 2

Diagrama de uma convolução com um kernel de tamanho 3*3 e distância 2

Como funciona uma camada de correção (ReLU)?

A camada de correção ou ativação é a aplicação de uma função não linear aos feature maps na saída da camada convolucional. Ao tornar os dados não lineares, a extração de recursos complexos que não podem ser modelados por uma combinação linear de um algoritmo de regressão é facilitada.

As funções não lineares mais comumente usadas são:

  • sigmóide ou logística
  • tangente hiperbólica,
  • unidade linear retificada (ReLU).

Frequentemente, a função ReLU é escolhida porque maximiza a decisão da função afim aplicada por convolução.

O que é uma camada pooling (POOL)?

A camada pooling é uma técnica de subamostragem. Geralmente, uma camada pooling é inserida em intervalos regulares entre as camadas de correção e convolucionais. Ao reduzir o tamanho dos feature maps e, portanto, o número de parâmetros de rede, isso acelera o tempo de cálculo e reduz o risco de sobreajuste.
A operação de pooling mais comum é a máxima: MaxPool (2*2, 2). É mais eficiente do que a média porque maximiza o peso de ativações fortes. Aplicada na saída da camada anterior como um filtro de convolução de tamanho (2*2) e se move com um passo de 2. Na saída da camada de pooling, obtém-se um mapa de características compactado por um fator de 4.

Diagrama que representa uma operação de pooling (POOL)

Diagrama de uma operação pooling com um kernel MaxPool de tamanho 2*2 e distância 2

Como funciona uma camada "totalmente conectada"(FC)?

Esta camada está no final da rede. Permite a classificação da imagem com base nas características extraídas pela sucessão de blocos de processamento. Totalmente conectada porque todas as entradas da camada estão conectadas aos neurônios de saída da camada. Eles têm acesso a todas as informações de entrada. Cada neurônio atribui à imagem um valor de probabilidade pertencente à classe i entre as classes C possíveis.

Diagrama de uma camada totalmente conectada com 6 classes

Diagrama de uma camada totalmente conectada com 6 classes

Contrastando com a fase de extração de traços onde os neurônios de processamento são independentes uns dos outros e só têm acesso às informações do campo receptivo que estão processando.

O que é a camada de perda (LOSS)?

A camada de perda é a última camada da rede. Ela calcula o erro entre a previsão da rede e o valor real. Durante uma tarefa de classificação, a variável aleatória é discreta, porque só pode assumir os valores 0 ou 1, 1 significa que pertence a uma classe e 0 significa que não há nenhuma. É por isso que a função de perda mais comum e adequada é a função de entropia cruzada (do inglês cross-entropy).
Esta função vem do campo da teoria da informação e mede a diferença global entre duas distribuições de probabilidade (a da previsão do modelo e a do real) para uma variável aleatória ou um conjunto de eventos [4]. Representada por:

onde y é a probabilidade estimada de que x pertence à classe i, p é a probabilidade real de que pertence à classe i, dado que existem classes C.

Os hiperparâmetros

The hyper-parameters enable to monitor automatic learning in large dimensions. They are divided into two categories:

  1. model hyper-parameters;
  2. algorithm hyper-parameters [5].

Os hiperparâmetros permitem monitorar a aprendizagem automática em grandes dimensões. Eles são divididos em duas categorias:

  1. hiperparâmetros de modelo;
  2. hiperparâmetros de algoritmo [5].

O primeiro lhe permite definir o tamanho da rede (por exemplo, largura, profundidade) e seu tipo (por exemplo, autoencoder). Este último influencia o processo de aprendizagem (ou seja, velocidade, qualidade) ao invés do desempenho do modelo. Detalhamos as estratégias de aprendizagem automática e discutimos com mais detalhes a escolha de valores de hiperparâmetros neste artigo.

[1] Loussaief S., Abdelkrim A. "Machine learning framework for image classification," 2016 7th International Conference on Sciences of Electronics, Technologies of Information and Telecommunications (SETIT), Hammamet, 2016, pp. 58-61, https://doi.org/10.1109/SETIT.2016.7939841.

[2] https://fr.wikipedia.org/wiki/R%C3%A9seau_neuronal_convolutif  

[3] https://www.actuia.com/contribution/cyrille-kone/a-travers-les-reseaux-de-neurones-a-convolution-en-deep-learning/ 

[4] https://machinelearningmastery.com/cross-entropy-for-machine-learning/

[5] https://fr.wikipedia.org/wiki/Hyperparam%C3%A8tre

Artigos recomendados