Entre em contato

O que sĂŁo CNNs (Convolutional Neural Networks)?

AI 101

O que sĂŁo CNNs (Convolutional Neural Networks)?

mm

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.

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tópicos. Daniel espera ajudar outras pessoas a usar o poder da IA ​​para o bem social.