O que são redes neurais convolucionais?
Conheça nossa solução de redes neurais Assine nossa newsletter
Fundo em preto e azul
O que são redes neurais convolucionais?

As redes neurais convolucionais utilizam dados tridimensionais em tarefas de classificação de imagens e reconhecimento de objetos.

As redes neurais convolucionais (Convolutional neural network ou CNNs) são um subconjunto do aprendizado de máquina utilizadas com mais frequência para tarefas de classificação e visão computacional. As redes neurais convolucionais oferecem uma abordagem mais dimensionável para tarefas de classificação de imagens e reconhecimento de objetos. Cada nó conecta-se a outro e tem peso e um limite associados. Se a saída de qualquer nó individual estiver acima do valor de limiar especificado, esse nó será ativado, enviando dados para a próxima camada da rede. Caso contrário, nenhum dado será passado para a próxima camada da rede.

Embora tenhamos focado principalmente em redes feedforward neste artigo, existem vários tipos de redes neurais, que são usadas para diferentes casos de uso e tipos de dados. Por exemplo, redes neurais recorrentes são comumente usadas para processamento de linguagem natural e reconhecimento de fala, enquanto redes neurais convolucionais (ConvNets ou CNNs) são mais frequentemente utilizadas para tarefas de classificação e visão computacional. Antes das CNNs, métodos manuais e demorados de extração de características eram usados para identificar objetos em imagens. No entanto, as redes neurais convolucionais agora oferecem uma abordagem mais escalável para tarefas de classificação de imagens e reconhecimento de objetos, aproveitando princípios da álgebra linear, especificamente a multiplicação de matrizes, para identificar padrões dentro de uma imagem. Dito isso, elas podem ser computacionalmente exigentes, exigindo unidades de processamento gráfico (GPUs) para treinar modelos.

O armazenamento de dados para IA

Descubra o poder de integrar uma estratégia de data lakehouse em sua arquitetura de dados, incluindo aprimoramentos para escalar oportunidades de IA e otimização de custos.

Conteúdo relacionado

Leia o guia para líderes de dados

Como funciona uma rede neural convolucional?

As redes neurais convolucionais se distinguem de outras redes neurais por seu desempenho superior com entradas de imagem, fala ou sinal de áudio. Eles têm três tipos principais de camadas, que são:

  • Camada convolucional
  • Camada de agrupamento
  • Camada totalmente conectada (FC)

A camada convolucional é a primeira camada de uma rede convolucional. Enquanto as camadas convolucionais podem ser seguidas por camadas convolucionais adicionais ou camadas de agrupamento, a camada totalmente conectada é a camada final. Com cada camada, a CNN aumenta em sua complexidade, identificando partes maiores da imagem. Camadas anteriores se concentram em elementos simples, como cores e extremidades. À medida que os dados da imagem progridem por meio das camadas da CNN, começa a reconhecer elementos ou formas maiores do objeto até que ele finalmente identifique o objeto pretendido.

Camada convolucional

A camada convolucional é o bloco de construção central de uma CNN e é onde ocorre a maioria dos cálculos. Ela exige alguns componentes como: dados de entrada, um filtro e um mapa de feições. Suponhamos que a entrada será uma imagem de cor que é composta por uma matriz de pixels em 3D. Isso significa que a entrada terá três dimensões — uma altura, largura e profundidade — que correspondem à RGB em uma imagem. Também temos um detector de feição, também conhecido como kernel ou filtro, que se moverá pelos campos receptivos da imagem, verificando se a feição está presente. Este processo é conhecido como uma convolução.

O detector de elementos é uma matriz bidimensional (2-D) de pesos, que representa parte da imagem. Embora possam variar em tamanho, o tamanho do filtro é normalmente uma matriz 3x3 e isso também determina o tamanho do campo receptivo. Em seguida, o filtro é aplicado a uma área da imagem, e um produto de ponto é calculado entre os pixels de entrada e o filtro. Esse produto escalar é então alimentado em uma matriz de saída. Posteriormente, o filtro muda por um avanço, repetindo o processo até que o kernel tenha varrido toda a imagem. A saída final da série de produtos escalares a partir da entrada e do filtro é conhecido como um mapa de feição, mapa de ativação ou uma feição convolvida.

Observe que os pesos no detector de recursos permanecem fixos à medida que ele se move pela imagem, o que também é conhecido como compartilhamento de parâmetros. Alguns parâmetros, como os valores de peso, ajustam-se durante o treinamento por meio do processo de retropropagação e descida de gradiente. No entanto, existem três hiperparâmetros que afetam o tamanho do volume de produção que precisam ser definidos antes do início do treinamento da rede neural. Estes incluem:

1. O número de filtros afeta a profundidade da produção. Por exemplo, três filtros distintos resultariam em três mapas de recursos diferentes, criando uma profundidade de três.

2. Stride é a distância, ou número de pixels, que o kernel se move sobre a matriz de input. Embora valores de stride de dois ou mais sejam raros, um stride maior tem uma produção menor.

3. Zero-padding é geralmente usado quando os filtros não se encaixam na imagem de input. Isso define todos os elementos que ficam fora da matriz de input como zero, produzindo uma produção de tamanho maior ou igual. Existem três tipos de padding:

  • Padding válido: também conhecido como no padding. Neste caso, a última convolução é descartada se as dimensões não se alinharem.
  • Padding igual: este padding garante que a camada de produção tenha o mesmo tamanho que a camada de input.
  • Padding completo: Este tipo de padding aumenta o tamanho da produção adicionando zeros à borda do input.

Após cada operação de convolução, uma CNN aplica uma transformação de Unidade Linear Retificada (ReLU) no mapa de feição, introduzindo não linearidade no modelo.

Camada convolucional adicional

Como mencionamos anteriormente, uma camada convolucional adicional pode seguir a camada convolucional inicial. Quando isso acontece, a estrutura da CNN pode se tornar hierárquica, pois as camadas posteriores podem ver os pixels dentro dos campos receptivos das camadas anteriores.Por exemplo, vamos supor que estamos tentando determinar se uma imagem contém uma bicicleta. Você pode pensar na bicicleta como uma soma de partes. É composta por um quadro, guidões, rodas, pedais etc. Cada parte individual da bicicleta constitui um padrão de nível inferior na rede neural, e a combinação de suas partes representa um padrão de nível superior, criando uma hierarquia de características dentro da CNN.Finalmente, a camada convolucional converte a imagem em valores numéricos, permitindo que a rede neural interprete e extraia padrões relevantes.

Camada de agrupamento

As camadas de agrupamento, também conhecidas como downsampling, conduzem a redução de dimensionalidade, reduzindo o número de parâmetros na entrada. Semelhante à camada convolucional, a operação de agrupamento varre um filtro por toda a entrada, mas a diferença é que este filtro não tem nenhum peso. Em vez disso, o kernel aplica uma função de agregação aos valores dentro do campo receptivo, preenchendo a matriz de saída. Existem dois tipos principais de agrupamento:

  • Pooling máximo: à medida que o filtro se move pelo input, ele seleciona o pixel com o valor máximo para enviar para a matriz de produção. Como uma observação, essa abordagem tende a ser usada mais frequentemente em comparação com o pooling médio
  • Pooling médio: à medida que o filtro se move pelo input, ele calcula o valor médio dentro do campo receptivo para enviar ao array de produção.

Enquanto muitas informações são perdidas na camada de agrupamento, elas também têm vários benefícios para a CNN. Elas ajudam a reduzir a complexidade, melhorar a eficiência e limitar o risco de superajuste. 

Camada totalmente conectada

O nome da camada totalmente conectada se descreve apropriadamente. Como mencionado anteriormente, os valores de pixel da imagem de entrada não estão diretamente conectados à camada de saída em camadas parcialmente conectadas. No entanto, na camada totalmente conectada, cada nó na camada de saída se conecta diretamente a um nó na camada anterior.

Essa camada executa a tarefa de classificação baseada nas feições extraídas através das camadas anteriores e seus diferentes filtros. Enquanto as camadas convolucionais e de agrupamento tendem a utilizar funções ReLu, as camadas FC normalmente utilizam uma função de ativação softmax para classificar as entradas adequadamente, produzindo uma probabilidade de 0 a 1.

Tipos de redes neurais convolucionais

Kunihiko Fukushima e Yann LeCun lançaram as bases da pesquisa em torno das redes neurais convolucionais em seus trabalhos em 1980 e "Backpropagation Applied to Handwritten Zip Code Recognition" em 1989, respectivamente. Mais famosamente, Yann LeCun aplicou com sucesso a retropropagação, treinando redes neurais para identificar e reconhecer padrões em uma série de códigos postais escritos à mão. Ele continuaria sua pesquisa com sua equipe ao longo dos anos 1990, culminando com o “LeNet-5”, que aplicou os mesmos princípios da pesquisa anterior ao reconhecimento de documentos. Desde então, uma série de arquiteturas de CNN variantes surgiram com a introdução de novos conjuntos de dados, como MNIST e CIFAR-10, e competições, como o Desafio de Reconhecimento Visual de Grande Escala ImageNet (ILSVRC). Algumas dessas outras arquiteturas incluem:

No entanto, a LeNet-5 é conhecida como a arquitetura CNN clássica.

Redes neurais convolucionais e visão computacional

As redes neurais convencionais geram o reconhecimento de imagem e as tarefas de visão computacional. A visão computacional é um campo da inteligência artificial (IA) que permite que computadores e sistemas adquiram informações significativas de imagens digitais, vídeos e outras entradas visuais e, com base nessas entradas, ela pode atuar. Essa capacidade de apresentar recomendações a diferencia das tarefas de reconhecimento de imagem. Atualmente, algumas aplicações comuns dessa visão computacional podem ser vistas em:

  • Marketing: as plataformas de mídia social oferecem sugestões sobre quem pode estar em uma foto que foi postada em um perfil, facilitando a marcação de amigos em álbuns de fotos. 
  • Saúde: A visão da computação foi incorporada à tecnologia radiológica, permitindo que os médicos identifiquem melhor tumores cancerosos em anatomia saudável.
  • Varejo: a pesquisa visual foi incorporada a algumas plataformas de e-commerce, permitindo que as marcas recomendem itens que complementariam um guarda-roupa existente.   
  • Automotivo: Embora a era dos carros sem motorista ainda não tenha surgido, a tecnologia subjacente começou a chegar aos automóveis, melhorando a segurança do motorista e do passageiro por meio de recursos como a detecção de linha de faixa.
Soluções relacionadas
IBM SPSS Neural Networks

A IBM SPSS Neural Networks pode ajudá-lo a descobrir relacionamentos complexos e obter maior valor de seus dados.

Explore a IBM SPSS Neural Networks
IBM Watson Studio

Crie e escale a IA confiável em qualquer nuvem. Automatize o ciclo de vida da IA para ModelOps.

Saiba mais sobre o IBM Watson Studio
Recursos Redes neurais convolucionais com Python

Use Python para implementar uma rede simples que classifica dígitos escritos à mão.

Introdução às redes neurais convolucionais

Explore as diferentes etapas que compõem a criação de uma rede neural convolucional.

Redes neurais duplamente convolucionais

Neste artigo, a pesquisa da IBM propõe que as redes neurais duplamente convolucionais (DCNNs) podem melhorar significativamente o desempenho das CNNs.

Redes neurais convolucionais de aprendizagem com Deep Part Embeddings

Os pesquisadores da IBM propõem um novo conceito de Deep Part Embeddings (DPEs), que pode ser usado para aprender novas Redes Neurais Convolucionais (CNNs) para diferentes classes.

Treine um modelo de detecção de objetos YOLOv8 em Python

Ajuste um modelo de detecção de objetos treinado previamente.

Dê o próximo passo

Treine, valide, ajuste e implemente IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de próxima geração para construtores de IA. Crie aplicações de IA em menos tempo com menos dados.

Explore o watsonx.ai Agende uma demonstração em tempo real