AI 101
O que sĂŁo CNNs (Convolutional Neural Networks)?
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 ao redor de toda a imagem de entrada Ă© uma matriz bidimensional representando a imagem inteira. Essa 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

Foto: cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)
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. 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) Plataforma
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ĂĄria para transformar os dados da imagem em matrizes numĂ©ricas. No entanto, camadas convolucionais tambĂ©m podem vir depois de outras camadas convolucionais, o que significa que essas camadas podem ser empilhadas umas sobre as outras. Ter vĂĄrias camadas convolucionais significa que as saĂdas de uma camada podem passar por mais convoluçÔes e ser agrupadas em padrĂ”es relevantes. Na prĂĄtica, isso significa que, Ă medida que os dados da imagem passam 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.