O que é uma rede neural convolucional?

Uma rede neural convolucional (CNN) é um tipo de rede neural artificial projetada especificamente para analisar dados visuais. Inspirada no nosso próprio sistema visual, uma CNN aprende a "ver" o mundo identificando padrões em dados visuais. Mas o principal ponto forte não é apenas ver imagens, mas reconhecer padrões em qualquer dado com uma estrutura semelhante a uma grade, de espectrogramas de áudio a exames médicos em 3D.

Como funcionam as redes neurais convolucionais?

As CNNs processam imagens de entrada passando-as por várias camadas. As primeiras camadas identificam recursos simples, como bordas e linhas, enquanto as camadas mais profundas reconhecem padrões, formas e, por fim, objetos inteiros mais complexos. Esse método de extração de recursos de forma hierárquica é o que torna as CNNs tão eficazes para reconhecimento de imagens e outras tarefas de visão computacional.

As camadas da CNN

Pense em uma CNN como uma equipe de especialistas que analisam uma fotografia para identificar um objeto. Cada camada tem um trabalho específico em uma linha de montagem de reconhecimento.

1. Camada convolucional: os verificadores de atributos

Este é o primeiro grupo de especialistas. Cada um recebe um recurso único e simples para procurar, como uma borda reta, uma curva ou uma cor específica. Eles deslizam uma pequena lupa (o "filtro") sobre toda a imagem e fazem uma anotação sempre que encontram o recurso atribuído. Isso cria um conjunto de "mapas de atributos", que são essencialmente mapas de onde os atributos básicos estão localizados.

2. Camada de ativação (ReLU): o filtro de significância

Após a verificação inicial, um administrador (a função ReLU) analisa os mapas de atributos. O trabalho dele é simples: manter os sinais fortes e descartar os fracos. Ele introduz a não linearidade, garantindo que apenas os atributos mais importantes e claramente identificados sejam passados para análise posterior. Isso evita que ruídos atrapalhem o processo.

3. Camada de pooling: os resumidores

A camada de pooling age como um gerente regional. Em vez de analisar cada detalhe, a camada de pooling resume as descobertas de pequenos patches do mapa de recursos. Por exemplo, uma camada de "max pooling" vai analisar uma área 2x2 de um mapa de atributos e informar apenas o sinal mais forte. Isso reduz o tamanho geral dos dados, tornando a rede mais eficiente e ajudando-a a reconhecer um objeto, não importa onde ele apareça no frame (um conceito chamado "invariância translacional").

4. Camada completamente conectada: o detetive principal

Depois de várias rodadas de verificação e resumo, os relatórios finais de recursos são enviados ao detetive principal. Essa camada analisa a combinação de alto nível dos atributos ("tem bigodes", "tem orelhas pontudas", "tem textura de pelo") e toma a decisão final. Ela conecta todas as descobertas resumidas para chegar a uma conclusão, como "Com base em todas as evidências, o objeto nesta imagem é um gato". O resultado é então passado para uma camada de saída final (como softmax) que fornece uma probabilidade para cada classificação possível.

CNNs x redes neurais tradicionais

Embora as redes neurais convolucionais e tradicionais sejam projetadas para processar dados e fazer previsões, elas diferem significativamente em sua arquitetura, aplicação e outros recursos importantes.

Recurso


Redes neurais convolucionais (CNNs, na sigla em inglês)

Redes neurais tradicionais

Arquitetura principal


Composta por camadas convolucionais, camadas de ativação, camadas de pooling e camadas totalmente conectadas.

Consiste principalmente em camadas totalmente conectadas (densas).

Tipo de dados de entrada

Mais adequado para dados estruturados em formato de grade (por exemplo, imagens, vídeos, sequências 1D como texto).

Flexível para vários tipos de dados, normalmente dados tabulares ou vetores achatados.

Extração de atributos

Aprende automaticamente recursos hierárquicos (bordas, texturas, formas) usando filtros.

Aprende atributos por meio de conexões diretas, geralmente menos eficazes no aprendizado de recursos espaciais.

Relações espaciais

Preserva e aproveita explicitamente as relações espaciais (por exemplo, a adjacência de pixels em imagens).

Trata cada atributo de entrada de forma independente; as relações espaciais são perdidas se a entrada for achatada.

Compartilhamento de parâmetros


Sim, os pesos (filtros/kernels) são compartilhados em diferentes locais na entrada.

Não, cada conexão tem seu próprio peso exclusivo.

Número de parâmetros

Geralmente menos parâmetros devido ao compartilhamento de peso e pooling, especialmente para entradas de alta dimensão, como imagens.

Pode ter um número muito grande de parâmetros, especialmente para entradas de alta dimensão.

Invariância translacional

São naturalmente boas em reconhecer atributos, independentemente da posição exata deles na entrada.

Mais sensível a mudanças nos atributos de entrada, a menos que seja explicitamente treinado em dados aumentados.

Eficiência computacional

Mais eficiente para dados espaciais/de imagem devido à redução de parâmetros e operações especializadas.

Pode ser caro computacionalmente para entradas de alta dimensão devido a conexões densas.

Principais aplicações

Classificação de imagens, detecção de objetos, segmentação de imagens, análise de vídeos, imagens médicas e algumas tarefas de PNL.

Classificação/regressão de dados tabulares, reconhecimento simples de padrões, aproximação de funções, alguns PNL.

Veja as principais vantagens

Excelente para dados visuais, aprende atributos hierárquicos, invariância translacional, parâmetros reduzidos, menos propensa a overfitting em dados de imagem.

Flexível para vários tipos de dados, bom para dados tabulares não espaciais, mais simples de entender conceitualmente para tarefas básicas.

Principais limitações

Pode ser complexo de projetar, geralmente exige grandes conjuntos de dados para treinamento e é menos eficaz para dados tabulares não espaciais.

Não é ideal para dados espaciais de alta dimensão, ignora relações espaciais e é propenso a overfitting com muitos parâmetros em entradas complexas.

Recurso


Redes neurais convolucionais (CNNs, na sigla em inglês)

Redes neurais tradicionais

Arquitetura principal


Composta por camadas convolucionais, camadas de ativação, camadas de pooling e camadas totalmente conectadas.

Consiste principalmente em camadas totalmente conectadas (densas).

Tipo de dados de entrada

Mais adequado para dados estruturados em formato de grade (por exemplo, imagens, vídeos, sequências 1D como texto).

Flexível para vários tipos de dados, normalmente dados tabulares ou vetores achatados.

Extração de atributos

Aprende automaticamente recursos hierárquicos (bordas, texturas, formas) usando filtros.

Aprende atributos por meio de conexões diretas, geralmente menos eficazes no aprendizado de recursos espaciais.

Relações espaciais

Preserva e aproveita explicitamente as relações espaciais (por exemplo, a adjacência de pixels em imagens).

Trata cada atributo de entrada de forma independente; as relações espaciais são perdidas se a entrada for achatada.

Compartilhamento de parâmetros


Sim, os pesos (filtros/kernels) são compartilhados em diferentes locais na entrada.

Não, cada conexão tem seu próprio peso exclusivo.

Número de parâmetros

Geralmente menos parâmetros devido ao compartilhamento de peso e pooling, especialmente para entradas de alta dimensão, como imagens.

Pode ter um número muito grande de parâmetros, especialmente para entradas de alta dimensão.

Invariância translacional

São naturalmente boas em reconhecer atributos, independentemente da posição exata deles na entrada.

Mais sensível a mudanças nos atributos de entrada, a menos que seja explicitamente treinado em dados aumentados.

Eficiência computacional

Mais eficiente para dados espaciais/de imagem devido à redução de parâmetros e operações especializadas.

Pode ser caro computacionalmente para entradas de alta dimensão devido a conexões densas.

Principais aplicações

Classificação de imagens, detecção de objetos, segmentação de imagens, análise de vídeos, imagens médicas e algumas tarefas de PNL.

Classificação/regressão de dados tabulares, reconhecimento simples de padrões, aproximação de funções, alguns PNL.

Veja as principais vantagens

Excelente para dados visuais, aprende atributos hierárquicos, invariância translacional, parâmetros reduzidos, menos propensa a overfitting em dados de imagem.

Flexível para vários tipos de dados, bom para dados tabulares não espaciais, mais simples de entender conceitualmente para tarefas básicas.

Principais limitações

Pode ser complexo de projetar, geralmente exige grandes conjuntos de dados para treinamento e é menos eficaz para dados tabulares não espaciais.

Não é ideal para dados espaciais de alta dimensão, ignora relações espaciais e é propenso a overfitting com muitos parâmetros em entradas complexas.

CNNs e visão computacional

As CNNs transformaram a visão computacional, permitindo que as máquinas "vejam" e entendam imagens com precisão. A capacidade de aprender representações de dados visuais hierárquicos levou a grandes avanços em várias tarefas de visão computacional, incluindo:

Classificação de imagens

A classificação de imagens, uma tarefa essencial da visão computacional, envolve rotular uma imagem inteira com base no conteúdo dela. As CNNs são excelentes nisso, alcançando os melhores resultados em conjuntos de dados como o ImageNet. A capacidade de aprender recursos complexos com dados brutos de pixels os torna muito eficazes no reconhecimento de objetos, cenas e até mesmo emoções em imagens.

Detecção de objetos

A detecção de objetos vai além da classificação, identificando objetos em uma imagem e indicando suas localizações. As CNNs são essenciais nos algoritmos de detecção de objetos, permitindo que aplicativos como carros autônomos percebam o ambiente, robôs naveguem em ambientes complexos e sistemas de segurança detectem ameaças.

Aplicações de CNNs

As aplicações das CNNs vão muito além de tarefas relacionadas a imagens. A capacidade de aprender hierarquias espaciais de recursos os torna valiosos em várias áreas, incluindo:

  • Processamento de linguagem natural: as CNNs podem analisar textos tratando frases como "imagens" unidimensionais em que cada palavra ou caractere é um atributo. Isso permite que eles identifiquem padrões e relações nos dados de texto, o que os torna úteis para tarefas como análise de sentimento (classificação de texto como positivo, negativo ou neutro) e tradução de idiomas (mapeamento de frases de um idioma para outro).
  • Análise de imagens médicas: na área da saúde, as CNNs podem ser treinadas com grandes conjuntos de dados de imagens médicas (raios X, ressonâncias magnéticas, tomografias computadorizadas) para detectar padrões e anomalias sutis indicativos de doenças. Isso pode ajudar os radiologistas em tarefas como detectar tumores em mamografias, identificar fraturas em radiografias ou segmentar órgãos em tomografias computadorizadas, melhorando a acurácia e a eficiência do diagnóstico e auxiliando no planejamento de tratamento personalizado.
  • Descoberta de medicamentos: as CNNs podem acelerar a descoberta de medicamentos ao analisar estruturas moleculares. Ao aprender as relações entre a estrutura de uma molécula e suas propriedades, as CNNs podem prever a eficácia, a toxicidade e outras características de possíveis candidatos a medicamentos. Essa triagem "in silico" de vastas bibliotecas químicas pode reduzir o tempo e o custo associados aos métodos tradicionais de descoberta de medicamentos.
  • Modelagem financeira: com a capacidade de analisar dados sequenciais, as CNNs também podem ser adequadas para usos financeiros. Ao tratar dados financeiros de séries temporais (preços de ações, taxas de câmbio, indicadores econômicos) como "imagens" unidimensionais, as CNNs podem identificar tendências, padrões e anomalias que os métodos estatísticos tradicionais podem perder. Isso pode ajudar as instituições financeiras a tomar decisões de investimento mais embasadas, prever a volatilidade do mercado e gerenciar o risco com mais eficiência.

Como usar CNNs com o Google Cloud

O Google Cloud oferece um ecossistema completo para aplicar CNNs, seja para uma solução pronta ou uma plataforma avançada para criar sua própria.

Para recursos de visão pré-treinados: se você precisar adicionar recursos de visão avançados ao seu app sem criar um modelo do zero, serviços como o Vision AI oferecem acesso a modelos baseados em CNN por meio de uma API simples para tarefas como detecção de objetos e reconhecimento de texto. Da mesma forma, a Document AI usa CNNs para entender e extrair dados de documentos complexos.

Para criar, treinar e implantar modelos personalizados: quando você precisa treinar uma CNN nos seus próprios dados, a Vertex AI oferece uma plataforma unificada. Ele gerencia todo o ciclo de vida do ML, desde a preparação e o treinamento dos dados até a implantação e o monitoramento dos seus modelos de CNN personalizados em escala.

Para acelerar o treinamento de alto desempenho: treinar CNNs grandes e de última geração é computacionalmente intensivo. As Cloud TPUs são aceleradores de hardware personalizados do Google, criados especificamente para acelerar o treinamento de modelos de aprendizado profundo, permitindo que você inove com mais rapidez.

Vá além

Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.

Google Cloud