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.
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.
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.
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.
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:
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.
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.
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:
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.
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.