Redes neurais con­vo­lu­ci­o­nais, também chamadas de Con­vo­lu­ti­o­nal Neural Networks, ConvNets ou CNN, são redes neurais ar­ti­fi­ci­ais cujas camadas (con­vo­lu­ti­o­nal layers) são aplicadas a dados de entrada, para a extração de ca­rac­te­rís­ti­cas e a iden­ti­fi­ca­ção de um objeto. Isso quer dizer que ConvNets são uma parte essencial do deep learning.

O que é Con­vo­lu­ti­o­nal Neural Network?

Redes neurais con­vo­lu­ci­o­nais são tipos es­pe­ci­a­li­za­dos de redes neurais ar­ti­fi­ci­ais, par­ti­cu­lar­mente efi­ci­en­tes no pro­ces­sa­mento e em análises de dados visuais, como imagens e vídeos. Essas redes são im­por­tan­tes para o apren­di­zado de máquina (machine learning), e em especial para o deep learning.

ConvNets são compostas por camadas de nós que incluem uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída. Esses nós são in­ter­li­ga­dos e possuem um peso e um limiar associado. Quando a saída de um nó excede o limiar es­pe­ci­fi­cado, ele é ativado, enviando os dados para a próxima camada da rede.

Existem di­fe­ren­tes tipos de redes neurais, cada uma adequada a um tipo de aplicação e dado es­pe­cí­fico. Redes neurais re­cor­ren­tes, por exemplo, são fre­quen­te­mente usadas no pro­ces­sa­mento de linguagem natural e no re­co­nhe­ci­mento de fala. Redes neurais con­vo­lu­ci­o­nais, por sua vez, são mais usadas em tarefas de clas­si­fi­ca­ção e visão com­pu­ta­ci­o­nal. A ca­pa­ci­dade das ConvNets de re­co­nhe­cer padrões complexos em dados as torna uma fer­ra­menta im­por­tante de in­te­li­gên­cia ar­ti­fi­cial.

Qual é o di­fe­ren­cial da Con­vo­lu­ti­o­nal Neural Network?

Redes neurais con­vo­lu­ci­o­nais se di­fe­ren­ciam de outros tipos de redes neurais por obterem um de­sem­pe­nho superior ao pro­ces­sa­rem sinais de imagem, voz e áudio. ConvNets possuem três tipos prin­ci­pais de camadas, e cada uma delas as torna mais complexas e capazes de iden­ti­fi­car partes maiores de uma imagem.

Imagem em al­go­rit­mos de Con­vo­lu­ti­o­nal Neural Networks

Imagens são lidas por com­pu­ta­do­res como com­bi­na­ções de números, ou seja, como pixels. O princípio também se aplica a al­go­rit­mos de redes neurais con­vo­lu­ci­o­nais. Por exemplo, uma imagem em preto e branco com largura Y e altura Z é re­pre­sen­tada como uma matriz bi­di­men­si­o­nal de tamanho YxZ. Já uma imagem colorida de mesmo tamanho deve ser re­pre­sen­tada por uma matriz tri­di­men­si­o­nal. Cada célula dessa matriz contém o valor do pixel cor­res­pon­dente e cada imagem é re­pre­sen­tada pelos valores dos pixels dos três canais di­fe­ren­tes, que cor­res­pon­dem aos canais vermelho, azul e verde.

Em seguida, as prin­ci­pais ca­rac­te­rís­ti­cas da imagem são iden­ti­fi­ca­das. Elas são extraídas por um método conhecido como con­vo­lu­ção. Nesse método, uma função altera (convolui) a forma de outra função. Em imagens, con­vo­lu­ções são ge­ral­mente usadas na nitidez, na su­a­vi­za­ção e no reforço. Em ConvNets, no entanto, con­vo­lu­ções são usadas para extrair as ca­rac­te­rís­ti­cas mais im­por­tan­tes de uma imagem.

Para extrair ca­rac­te­rís­ti­cas im­por­tan­tes de uma imagem, um filtro ou kernel deve ser usado. Filtro é uma matriz que re­pre­senta a ca­rac­te­rís­tica a ser extraída. Ele é aplicado sobre a matriz de entrada, re­sul­tando em uma matriz bi­di­men­si­o­nal, que contém a cor­re­la­ção da imagem em relação ao filtro usado. A matriz de saída, por sua vez, é chamada de mapa de ca­rac­te­rís­ti­cas (feature map).

IONOS AI Model Hub
Sua porta de entrada para uma pla­ta­forma de IA mul­ti­mo­dal segura
  • Uma pla­ta­forma para os modelos de IA mais avançados
  • Preços justos e trans­pa­ren­tes baseados em tokens
  • Sem de­pen­dên­cia de for­ne­ce­dor com código aberto

Di­fe­ren­ças entre camadas da Con­vo­lu­ti­o­nal Neural Network

Durante o processo de con­vo­lu­ção, o campo de entrada é trans­for­mado em um campo menor, mas que ainda mantém a cor­re­la­ção espacial entre os pixels, graças à aplicação de filtros. A seguir, apre­sen­ta­re­mos os três prin­ci­pais tipos de camadas de con­vo­lu­ção:

  • Con­vo­lu­ti­o­nal layer (camada de con­vo­lu­ção): Trata-se da primeira camada de uma Con­vo­lu­ti­o­nal Neural Network. Ela usa filtros (pequenas matrizes de pesos) para percorrer uma imagem e re­co­nhe­cer ca­rac­te­rís­ti­cas locais como bordas, cantos e texturas. Cada filtro gera um mapa de ca­rac­te­rís­ti­cas, que com­pre­ende padrões es­pe­cí­fi­cos. Outra camada de con­vo­lu­ção pode seguir essa primeira, o que torna a estrutura de uma CNN hi­e­rár­quica, pois camadas pos­te­ri­o­res enxergam pixels dentro dos campos re­cep­ti­vos das camadas an­te­ri­o­res.

  • Pooling Layer (camada de pooling): Esta camada reduz o tamanho dos mapas de ca­rac­te­rís­ti­cas, resumindo áreas locais e des­car­tando in­for­ma­ções ir­re­le­van­tes. Isso diminui a com­ple­xi­dade com­pu­ta­ci­o­nal além de reter as in­for­ma­ções mais im­por­tan­tes.

  • Fully Connected Layer (camada to­tal­mente conectada): Esta camada conecta todos os neurônios, similar a uma rede neural tra­di­ci­o­nal. Ela serve para a clas­si­fi­ca­ção final, com­bi­nando as ca­rac­te­rís­ti­cas extraídas para tomar uma decisão e, fi­nal­mente, iden­ti­fi­car o objeto desejado.

Ex­pli­ca­ção sobre o processo de con­vo­lu­ção

Imagine que você está tentando de­ter­mi­nar se uma imagem contém um rosto humano. Você pode pensar no rosto como uma soma de partes: dois olhos, um nariz, uma boca, duas orelhas, e assim por diante. Um processo de con­vo­lu­ção se daria assim:

  1. Primeira camada de con­vo­lu­ção: As primeiras camadas de con­vo­lu­ção usam filtros para re­co­nhe­cer ca­rac­te­rís­ti­cas nos pixels in­di­vi­du­ais. Um filtro pode, por exemplo, re­co­nhe­cer uma borda vertical que re­pre­senta o contorno de um olho. Como explicado, ca­rac­te­rís­ti­cas locais formam padrões que são re­gis­tra­dos em um mapa de ca­rac­te­rís­ti­cas. Nesse caso, um mapa de ca­rac­te­rís­ti­cas pode re­pre­sen­tar as bordas dos olhos, do nariz e da boca, por exemplo.

  2. Camadas de con­vo­lu­ção adi­ci­o­nais: Camadas de con­vo­lu­ção podem ser seguidas por outras camadas de con­vo­lu­ção ou camadas de pooling. Nelas, os padrões in­di­vi­du­ais são gra­du­al­mente com­bi­na­dos para formar um rosto humano. As próximas camadas de con­vo­lu­ção combinam ca­rac­te­rís­ti­cas mais simples em padrões mais complexos. Bordas e cantos podem ser com­bi­na­dos em formas que re­pre­sen­tem olhos. Essas camadas percebem áreas maiores da imagem (campos re­cep­ti­vos) e re­co­nhe­cem es­tru­tu­ras compostas, chamadas de hi­e­rar­quias de ca­rac­te­rís­ti­cas. Uma camada posterior pode re­co­nhe­cer que dois olhos e uma boca, em uma de­ter­mi­nada dis­po­si­ção, formam um rosto.

  3. Camadas de pooling: Reduzem o tamanho dos mapas de ca­rac­te­rís­ti­cas, abs­traindo ainda mais essas ca­rac­te­rís­ti­cas. Elas mantêm as ca­rac­te­rís­ti­cas es­sen­ci­ais e reduzem a quan­ti­dade de dados a serem pro­ces­sa­dos.

  4. Camada to­tal­mente co­nec­ta­das: Fi­nal­mente, a última camada de uma ConvNet, a camada to­tal­mente conectada, é formada. Nesse caso, ela fi­nal­mente iden­ti­fi­cará um rosto humano na imagem, dis­tin­guindo-o cla­ra­mente de outros rostos, graças ao processo de con­vo­lu­ção.

Imagem: Gráfico representa o funcionamento de uma rede neural convolucional
ConvNets extraem au­to­ma­ti­ca­mente recursos re­le­van­tes e iden­ti­fi­cam objetos em imagens

Com­ple­men­tar­mente, técnicas como de dropout e de re­gu­la­ri­za­ção podem otimizar as redes, evitando over­fit­ting. Funções de ativação, como ReLU (Rectified Linear Unit) fornecem não-li­ne­a­ri­dade e ajudam a rede a re­co­nhe­cer padrões mais complexos, re­a­li­zando cálculos di­fe­ren­tes em neurônios distintos. Adi­ci­o­nal­mente, processos de nor­ma­li­za­ção de lote (batch nor­ma­li­za­tion) es­ta­bi­li­zam e aceleram o trei­na­mento, pro­ces­sando os dados de forma mais uniforme.

Apli­ca­ções de ConvNets

Antes de redes neurais con­vo­lu­ci­o­nais, métodos manuais e demorados de extração de ca­rac­te­rís­ti­cas eram usados para iden­ti­fi­car objetos em imagens. CNNs, por sua vez, oferecem uma abordagem mais escalável para tarefas de clas­si­fi­ca­ção de imagens e de re­co­nhe­ci­mento de objetos. Elas utilizam prin­cí­pios da álgebra linear, es­pe­ci­al­mente da mul­ti­pli­ca­ção de matrizes, para re­co­nhe­cer padrões em uma imagem. Hoje em dia, Con­vo­lu­ti­o­nal Neural Networks são am­pla­mente aplicadas em:

  • Re­co­nhe­ci­mento de imagem e voz: Re­co­nhe­ci­mento au­to­má­tico de objetos ou pessoas em imagens e vídeos, como em serviços de marcação de fotos em smartpho­nes, sistemas de re­co­nhe­ci­mento facial e as­sis­ten­tes de voz, como Siri e Alexa.

  • Di­ag­nós­tico médico: Análise de imagens médicas uti­li­zando re­co­nhe­ci­mento de imagem por in­te­li­gên­cia ar­ti­fi­cial auxiliam em di­ag­nós­ti­cos, como em ra­di­o­gra­fias, to­mo­gra­fias e res­so­nân­cias mag­né­ti­cas.

  • Veículos autônomos: Detecção de ca­rac­te­rís­ti­cas de estradas e obs­tá­cu­los, essencial para carros autônomos.

  • Redes sociais: CNNs são usadas na mineração de texto de pla­ta­for­mas sociais para moderar conteúdos au­to­ma­ti­ca­mente e criar anúncios per­so­na­li­za­dos.

  • Marketing e varejo: Busca visual de produtos e po­si­ci­o­na­mento de produtos por data mining.

Soluções de IA
Mais poder digital com In­te­li­gên­cia Ar­ti­fi­cial
  • Online em segundos
  • Aumente seu cres­ci­mento com marketing de IA
  • Economize tempo e recursos

Vantagens e des­van­ta­gens de Con­vo­lu­ti­o­nal Neural Networks

CovNets são capazes de extrair ca­rac­te­rís­ti­cas re­le­van­tes de dados au­to­ma­ti­ca­mente e com alta precisão. No entanto, para treinar redes neurais con­vo­lu­ci­o­nais com efi­ci­ên­cia é ne­ces­sá­rio que se tenha acesso a recursos com­pu­ta­ci­o­nais sig­ni­fi­ca­ti­vos. O trei­na­mento pede por de grandes quan­ti­da­des de dados rotulados e por GPUs poderosas, para a obtenção de bons re­sul­ta­dos.

Vantagens Des­van­ta­gens
Extração au­to­má­tica de ca­rac­te­rís­ti­cas Alto custo com­pu­ta­ci­o­nal
Alta precisão Precisa de grandes conjuntos de dados
Resumo

Con­vo­lu­ti­o­nal Neural Networks não só re­vo­lu­ci­o­na­ram o campo da in­te­li­gên­cia ar­ti­fi­cial como oferecem imensos be­ne­fí­cios em diversas áreas. De­sen­vol­vi­men­tos futuros, como hardwares melhores, novos métodos de coleta de dados e ar­qui­te­tu­ras mais avançadas, como de capsule networks, podem otimizar ainda mais as redes neurais con­vo­lu­ci­o­nais, per­mi­tindo que esta seja mais am­pla­mente integrada a tec­no­lo­gias variadas, o que ampliará ainda mais o seu uso.

Ir para o menu principal