Convoluções para Redes Neurais Convolucionais: De Operações em Matrizes ao Aprendizado Profundo

Estudaremos a convolução, uma operação popular em matrizes que é utilizada de várias formas no processamento de sinais, gravação digital, processamento de imagens, processamento de vídeo e visão computacional.

· Dev Rishi Khare

Nessas áreas de aplicação, a convolução é frequentemente realizada como um filtro que transforma sinais e pixels em valores mais desejáveis.

Na computação de alto desempenho, o padrão de convolução é frequentemente denominado cálculo de estêncil. A convolução tipicamente envolve um número significativo de operações aritméticas em cada elemento dos dados. Cada elemento de dados pode ser calculado independentemente dos outros, uma característica desejável para a computação paralela. Por outro lado, há um nível substancial de compartilhamento de dados de entrada entre elementos de dados de saída com condições de fronteira desafiadoras. Isso torna a convolução um caso de uso importante de métodos sofisticados de particionamento e de organização dos dados de entrada.

A convolução é uma operação em matriz na qual cada elemento de saída é uma soma ponderada de um conjunto de elementos vizinhos da entrada. Os pesos utilizados no cálculo da soma ponderada são definidos por um array de máscara, comumente chamado de kernel de convolução. Referir-nos-emos a estes arrays de máscaras como máscaras de convolução. A mesma máscara de convolução é tipicamente usada para todos os elementos do array

Abaixo é apresentado um exemplo de convolução para dados unidimensionais, onde uma matriz de máscara de convolução M com 5 elementos é aplicada a um array de entrada N com 7 elementos.

Para processamento de imagens e visão computacional, os dados de entrada são tipicamente matrizes bidimensionais, com pixels em um espaço x-y. As convoluções de imagem são, portanto, convoluções 2D. A máscara não precisa ser uma matriz quadrada.


1. De convolução 1D para convolução 2D

Você conhece a convolução 1D:

Para imagens, a entrada é 2D (altura × largura), então:

Esta é apenas a mesma ideia que você já conhece, mas:


2. Múltiplos canais (por exemplo, RGB)

As imagens reais não são apenas 2D, elas frequentemente têm canais:

Passo de convolução:

Então, conceitualmente: convolução 3D sobre espaço + canais, mas ainda apenas “soma ponderada de vizinhos”.


3. Filtros (kernels) e mapas de características

Em CNNs, você não usa apenas um kernel; você usa muitos:

Então, se a forma de entrada for:

e você usa kernels F, a forma de saída se torna:

Cada um desses F canais de saída captura um tipo diferente de padrão:

Pense: “Uma camada CNN = aplicar muitas convoluções (filtros) diferentes sobre a entrada.”


4. Passo e amortecimento

Dois detalhes mais sobre arrays:

Matematicamente, ainda são apenas janelas deslizantes e produtos escalares, mas com controle sobre:


5. Não linearidade: adicionando funções de ativação

Até agora, tudo é linear: somas ponderadas. Uma camada CNN adiciona não linearidade:

Então uma única camada convolucional é:

  1. Convolução (somas ponderadas lineares).
  2. Ativação (não linear).

Esta combinação permite que as CNNs aprendam mapeamentos complexos e não lineares.


6. Empilhamento de camadas → hierarquias profundas de características

Um CNN completo é apenas muitas camadas de:

Intuição:

Tudo isso ainda está construído a partir do mesmo princípio que você compreende: "pegar bairros locais e calcular somas ponderadas."


7. Conexão com camadas totalmente conectadas (densas)

Uma camada totalmente conectada também é apenas somas ponderadas:

Diferença:

Então você pode ver as CNNs como:


Conclusão: Da Operação Simples às Redes Poderosas

"At each position, take neighbors and compute a weighted sum with a kernel,"

Então você já está de pé sobre a ideia central dos CNNs.

As redes neurais convolucionais (CNNs) pegam esse bloco de construção simples e:

A magia das CNNs não é um novo tipo de matemática, mas sim a composição de muitas operações locais e pequenas de convolução em uma arquitetura profunda capaz de aprender representações visuais poderosas.

Ready to hire with precision?

Start free, invite your whole team, and see your first scored candidate in 15 minutes.

pt