- Terminologia (A a D)
- Controle de capacidade de IA
- AIOps
- Albumentações
- Desempenho dos Ativos
- Codificador automático
- Retropropagação
- Teorema de Bayes
- Big Data
- Chatbot: um guia para iniciantes
- Pensamento Computacional
- Visão de Computador
- Matriz de Confusão
- Redes Neurais Convolucionais
- Cíber segurança
- Tecido de dados
- Contação de histórias de dados
- Ciência dados
- Data warehousing
- Árvore de decisão
- Deepfakes
- Aprendizagem profunda
- Aprendizagem por Reforço Profundo
- devops
- DevSecOps
- Modelos de Difusão
- Digital Twin
- Redução de dimensionalidade
- Terminologia (E a K)
- IA de borda
- Emoção AI
- Ensemble Learning
- Ethical Hacking
- ETL
- IA explicável
- Aprendizagem Federada
- FinOps
- IA generativa
- Rede Adversarial Geradora
- Generativo vs. Discriminativo
- Intensificação de Gradiente
- Gradiente descendente
- Aprendizagem de poucos tiros
- Classificação de imagens
- Operações de TI (ITOps)
- Automação de Incidentes
- Engenharia de influência
- K-significa clusters
- Vizinhos mais próximos
- Terminologia (L a Q)
- Terminologia (R a Z)
- Aprendizagem por Reforço
- IA responsável
- RLHF
- Automação de Processo Robótica
- Estruturado x Não Estruturado
- Análise de Sentimentos
- Supervisionado x Não supervisionado
- Máquinas de vetor de suporte
- Dados Sintéticos
- Mídia Sintética
- Classificação de Texto
- TinyML
- Aprendizagem por transferência
- Redes Neurais Transformadoras
- Teste de Turing
- Pesquisa de semelhança vetorial
AI 101
O que são CNNs (Convolutional Neural Networks)?
Índice analítico
Talvez você esteja se perguntando como o Facebook ou o Instagram são capazes de reconhecer automaticamente rostos em uma imagem, ou como o Google permite que você pesquise fotos semelhantes na web apenas enviando uma foto sua. Esses recursos são exemplos de visão computacional e são alimentados por Redes neurais convolucionais (CNNs). No entanto, o que exatamente são redes neurais convolucionais? Vamos mergulhar fundo na arquitetura de uma CNN e entender como ela funciona.
O que são redes neurais?
Antes de começarmos a falar sobre redes neurais convolucionais, vamos dedicar um momento para definir rede neural regular. Há outro artigo sobre o tema das redes neurais disponíveis, então não vamos nos aprofundar muito nelas aqui. No entanto, para defini-los brevemente, eles são modelos computacionais inspirados no cérebro humano. Uma rede neural opera recebendo dados e manipulando os dados ajustando “pesos”, que são suposições sobre como os recursos de entrada estão relacionados entre si e com a classe do objeto. À medida que a rede é treinada, os valores dos pesos são ajustados e, espera-se, convergirão para pesos que capturam com precisão as relações entre os recursos.
É assim que uma rede neural feed-forward opera, e as CNNs são compostas de duas metades: uma rede neural feed-forward e um grupo de camadas convolucionais.
O que são redes neurais de convolução (CNNs)?
Quais são as “convoluções” que acontecem em uma rede neural convolucional? Uma convolução é uma operação matemática que cria um conjunto de pesos, criando essencialmente uma representação de partes da imagem. Este conjunto de pesos é denominado um kernel ou filtro. O filtro criado é menor do que toda a imagem de entrada, cobrindo apenas uma subseção da imagem. Os valores no filtro são multiplicados pelos valores na imagem. O filtro é então movido para formar uma representação de uma nova parte da imagem, e o processo é repetido até que toda a imagem tenha sido coberta.
Outra maneira de pensar sobre isso é imaginar uma parede de tijolos, com os tijolos representando os pixels na imagem de entrada. Uma “janela” está sendo deslizada para frente e para trás ao longo da parede, que é o filtro. Os tijolos visíveis pela janela são os pixels com seu valor multiplicado pelos valores dentro do filtro. Por esse motivo, esse método de criação de pesos com um filtro costuma ser chamado de técnica de “janelas deslizantes”.
A saída dos filtros sendo movidos em toda a imagem de entrada é uma matriz bidimensional que representa a imagem inteira. Esta matriz é chamada de “mapa de características”.
Por que as convoluções são essenciais
Afinal, qual é o propósito de criar convoluções? As convoluções são necessárias porque uma rede neural deve ser capaz de interpretar os pixels em uma imagem como valores numéricos. A função das camadas convolucionais é converter a imagem em valores numéricos que a rede neural possa interpretar e, em seguida, extrair padrões relevantes. O trabalho dos filtros na rede convolucional é criar uma matriz bidimensional de valores que podem ser passados para as camadas posteriores de uma rede neural, aquelas que aprenderão os padrões da imagem.
Filtros e Canais
As CNNs não usam apenas um filtro para aprender padrões das imagens de entrada. Vários filtros são usados, pois as diferentes matrizes criadas pelos diferentes filtros levam a uma representação mais complexa e rica da imagem de entrada. Os números comuns de filtros para CNNs são 32, 64, 128 e 512. Quanto mais filtros houver, mais oportunidades a CNN terá de examinar os dados de entrada e aprender com eles.
Uma CNN analisa as diferenças nos valores de pixel para determinar as bordas dos objetos. Em uma imagem em escala de cinza, a CNN só olharia para as diferenças em termos de preto e branco, claro para escuro. Quando as imagens são coloridas, a CNN não apenas leva em consideração o escuro e a luz, mas também os três canais de cores diferentes – vermelho, verde e azul. Neste caso, os filtros possuem 3 canais, assim como a própria imagem. O número de canais que um filtro possui é referido como sua profundidade, e o número de canais no filtro deve corresponder ao número de canais na imagem.
Rede Neural Convolucional (CNN) Arquitetura
Vamos dar uma olhada na arquitetura completa de uma rede neural convolucional. Uma camada convolucional é encontrada no início de cada rede convolucional, pois é necessário transformar os dados da imagem em matrizes numéricas. No entanto, as camadas convolucionais também podem vir após outras camadas convolucionais, o que significa que essas camadas podem ser empilhadas umas sobre as outras. Ter múltiplas camadas convolucionais significa que as saídas de uma camada podem passar por outras convoluções e serem agrupadas em padrões relevantes. Na prática, isso significa que, à medida que os dados da imagem avançam pelas camadas convolucionais, a rede começa a “reconhecer” características mais complexas da imagem.
As primeiras camadas de um ConvNet são responsáveis por extrair os recursos de baixo nível, como os pixels que compõem linhas simples. Camadas posteriores do ConvNet unirão essas linhas em formas. Esse processo de passar da análise de nível superficial para a análise de nível profundo continua até que o ConvNet reconheça formas complexas como animais, rostos humanos e carros.
Depois que os dados passaram por todas as camadas convolucionais, eles seguem para a parte densamente conectada da CNN. As camadas densamente conectadas são a aparência de uma rede neural feed-forward tradicional, uma série de nós organizados em camadas conectadas umas às outras. Os dados prosseguem por essas camadas densamente conectadas, que aprendem os padrões que foram extraídos pelas camadas convolucionais e, ao fazer isso, a rede se torna capaz de reconhecer objetos.
Blogueiro e programador com especialidades em Machine Learning e Aprendizagem profunda tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA para o bem social.
Você pode gostar
Um sistema de recomendação de alma gêmea baseado apenas em imagens
Um detector de mentiras baseado em IA para conversas de call center
Um sistema de recarga móvel para robôs autônomos famintos de energia
Pesquisadores criam hologramas 3D em tempo real com inteligência artificial em smartphones
O que é o aprendizado de poucos tiros?
O que são redes neurais transformadoras?