Convolutional Neural Network: Redes neurais convolucionais

Redes neurais convolucionais, também chamadas de Convolutional Neural Networks, ConvNets ou CNN, são redes neurais artificiais cujas camadas (convolutional layers) são aplicadas a dados de entrada, para a extração de características e a identificação de um objeto. Isso quer dizer que ConvNets são uma parte essencial do deep learning.

O que é Convolutional Neural Network?

Redes neurais convolucionais são tipos especializados de redes neurais artificiais, particularmente eficientes no processamento e em análises de dados visuais, como imagens e vídeos. Essas redes são importantes para o aprendizado de máquina (machine learning), e em especial para o deep learning.

ConvNets são compostas por camadas de nós que incluem uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída. Esses nós são interligados e possuem um peso e um limiar associado. Quando a saída de um nó excede o limiar especificado, ele é ativado, enviando os dados para a próxima camada da rede.

Existem diferentes tipos de redes neurais, cada uma adequada a um tipo de aplicação e dado específico. Redes neurais recorrentes, por exemplo, são frequentemente usadas no processamento de linguagem natural e no reconhecimento de fala. Redes neurais convolucionais, por sua vez, são mais usadas em tarefas de classificação e visão computacional. A capacidade das ConvNets de reconhecer padrões complexos em dados as torna uma ferramenta importante de inteligência artificial.

Qual é o diferencial da Convolutional Neural Network?

Redes neurais convolucionais se diferenciam de outros tipos de redes neurais por obterem um desempenho superior ao processarem sinais de imagem, voz e áudio. ConvNets possuem três tipos principais de camadas, e cada uma delas as torna mais complexas e capazes de identificar partes maiores de uma imagem.

Imagem em algoritmos de Convolutional Neural Networks

Imagens são lidas por computadores como combinações de números, ou seja, como pixels. O princípio também se aplica a algoritmos de redes neurais convolucionais. Por exemplo, uma imagem em preto e branco com largura Y e altura Z é representada como uma matriz bidimensional de tamanho YxZ. Já uma imagem colorida de mesmo tamanho deve ser representada por uma matriz tridimensional. Cada célula dessa matriz contém o valor do pixel correspondente e cada imagem é representada pelos valores dos pixels dos três canais diferentes, que correspondem aos canais vermelho, azul e verde.

Em seguida, as principais características da imagem são identificadas. Elas são extraídas por um método conhecido como convolução. Nesse método, uma função altera (convolui) a forma de outra função. Em imagens, convoluções são geralmente usadas na nitidez, na suavização e no reforço. Em ConvNets, no entanto, convoluções são usadas para extrair as características mais importantes de uma imagem.

Para extrair características importantes de uma imagem, um filtro ou kernel deve ser usado. Filtro é uma matriz que representa a característica a ser extraída. Ele é aplicado sobre a matriz de entrada, resultando em uma matriz bidimensional, que contém a correlação da imagem em relação ao filtro usado. A matriz de saída, por sua vez, é chamada de mapa de características (feature map).

Diferenças entre camadas da Convolutional Neural Network

Durante o processo de convolução, o campo de entrada é transformado em um campo menor, mas que ainda mantém a correlação espacial entre os pixels, graças à aplicação de filtros. A seguir, apresentaremos os três principais tipos de camadas de convolução:

  • Convolutional layer (camada de convolução): Trata-se da primeira camada de uma Convolutional Neural Network. Ela usa filtros (pequenas matrizes de pesos) para percorrer uma imagem e reconhecer características locais como bordas, cantos e texturas. Cada filtro gera um mapa de características, que compreende padrões específicos. Outra camada de convolução pode seguir essa primeira, o que torna a estrutura de uma CNN hierárquica, pois camadas posteriores enxergam pixels dentro dos campos receptivos das camadas anteriores.

  • Pooling Layer (camada de pooling): Esta camada reduz o tamanho dos mapas de características, resumindo áreas locais e descartando informações irrelevantes. Isso diminui a complexidade computacional além de reter as informações mais importantes.

  • Fully Connected Layer (camada totalmente conectada): Esta camada conecta todos os neurônios, similar a uma rede neural tradicional. Ela serve para a classificação final, combinando as características extraídas para tomar uma decisão e, finalmente, identificar o objeto desejado.

Explicação sobre o processo de convolução

Imagine que você está tentando determinar se uma imagem contém um rosto humano. Você pode pensar no rosto como uma soma de partes: dois olhos, um nariz, uma boca, duas orelhas, e assim por diante. Um processo de convolução se daria assim:

  1. Primeira camada de convolução: As primeiras camadas de convolução usam filtros para reconhecer características nos pixels individuais. Um filtro pode, por exemplo, reconhecer uma borda vertical que representa o contorno de um olho. Como explicado, características locais formam padrões que são registrados em um mapa de características. Nesse caso, um mapa de características pode representar as bordas dos olhos, do nariz e da boca, por exemplo.

  2. Camadas de convolução adicionais: Camadas de convolução podem ser seguidas por outras camadas de convolução ou camadas de pooling. Nelas, os padrões individuais são gradualmente combinados para formar um rosto humano. As próximas camadas de convolução combinam características mais simples em padrões mais complexos. Bordas e cantos podem ser combinados em formas que representem olhos. Essas camadas percebem áreas maiores da imagem (campos receptivos) e reconhecem estruturas compostas, chamadas de hierarquias de características. Uma camada posterior pode reconhecer que dois olhos e uma boca, em uma determinada disposição, formam um rosto.

  3. Camadas de pooling: Reduzem o tamanho dos mapas de características, abstraindo ainda mais essas características. Elas mantêm as características essenciais e reduzem a quantidade de dados a serem processados.

  4. Camada totalmente conectadas: Finalmente, a última camada de uma ConvNet, a camada totalmente conectada, é formada. Nesse caso, ela finalmente identificará um rosto humano na imagem, distinguindo-o claramente de outros rostos, graças ao processo de convolução.

ConvNets extraem automaticamente recursos relevantes e identificam objetos em imagens

Complementarmente, técnicas como de dropout e de regularização podem otimizar as redes, evitando overfitting. Funções de ativação, como ReLU (Rectified Linear Unit) fornecem não-linearidade e ajudam a rede a reconhecer padrões mais complexos, realizando cálculos diferentes em neurônios distintos. Adicionalmente, processos de normalização de lote (batch normalization) estabilizam e aceleram o treinamento, processando os dados de forma mais uniforme.

Aplicações de ConvNets

Antes de redes neurais convolucionais, métodos manuais e demorados de extração de características eram usados para identificar objetos em imagens. CNNs, por sua vez, oferecem uma abordagem mais escalável para tarefas de classificação de imagens e de reconhecimento de objetos. Elas utilizam princípios da álgebra linear, especialmente da multiplicação de matrizes, para reconhecer padrões em uma imagem. Hoje em dia, Convolutional Neural Networks são amplamente aplicadas em:

  • Reconhecimento de imagem e voz: Reconhecimento automático de objetos ou pessoas em imagens e vídeos, como em serviços de marcação de fotos em smartphones, sistemas de reconhecimento facial e assistentes de voz, como Siri e Alexa.

  • Diagnóstico médico: Análise de imagens médicas utilizando reconhecimento de imagem por inteligência artificial auxiliam em diagnósticos, como em radiografias, tomografias e ressonâncias magnéticas.

  • Veículos autônomos: Detecção de características de estradas e obstáculos, essencial para carros autônomos.

  • Redes sociais: CNNs são usadas na mineração de texto de plataformas sociais para moderar conteúdos automaticamente e criar anúncios personalizados.

  • Marketing e varejo: Busca visual de produtos e posicionamento de produtos por data mining.

Vantagens e desvantagens de Convolutional Neural Networks

CovNets são capazes de extrair características relevantes de dados automaticamente e com alta precisão. No entanto, para treinar redes neurais convolucionais com eficiência é necessário que se tenha acesso a recursos computacionais significativos. O treinamento pede por de grandes quantidades de dados rotulados e por GPUs poderosas, para a obtenção de bons resultados.

Vantagens Desvantagens
Extração automática de características Alto custo computacional
Alta precisão Precisa de grandes conjuntos de dados
Resumo

Convolutional Neural Networks não só revolucionaram o campo da inteligência artificial como oferecem imensos benefícios em diversas áreas. Desenvolvimentos futuros, como hardwares melhores, novos métodos de coleta de dados e arquiteturas mais avançadas, como de capsule networks, podem otimizar ainda mais as redes neurais convolucionais, permitindo que esta seja mais amplamente integrada a tecnologias variadas, o que ampliará ainda mais o seu uso.

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top