Redes Neurais Convolucionais (CNNs): Uma Introdução

As redes neurais convolucionais oferecem uma maneira mais escalável para tarefas de reconhecimento de objetos e classificação de imagens.

Há muitos avanços acontecendo no mundo da tecnologia. Inteligência artificial e aprendizado de máquina são alguns comuns que você pode ouvir com frequência.

Atualmente, essas tecnologias são usadas em quase todos os campos, desde marketing, comércio eletrônico e desenvolvimento de software até bancos, finanças e medicina.

AI e ML são campos vastos, e esforços estão sendo feitos para ampliar suas aplicações para resolver muitos problemas do mundo real. É por isso que você pode ver muitas ramificações dentro dessas tecnologias; ML é um subconjunto da própria IA.

As redes neurais convolucionais são um dos ramos da IA ​​que estão se tornando populares nos dias de hoje.

Neste artigo, discutirei o que são as CNNs, como elas funcionam e sua utilidade no mundo moderno.

Vamos mergulhar direto!

O que é uma rede neural convolucional?

Uma rede neural convolucional (ConvNet ou CNN) é uma rede neural artificial (ANN) que usa algoritmos de aprendizado profundo para analisar imagens, classificar visuais e executar tarefas de visão computacional.

A CNN aproveita os princípios da álgebra linear, como a multiplicação de matrizes, para detectar padrões em uma imagem. Como esses processos envolvem cálculos complexos, eles exigem unidades de processamento gráfico (GPUs) para treinar os modelos.

Em palavras simples, a CNN usa algoritmos de Deep Learning para obter dados de entrada como imagens e atribuir importância na forma de vieses e pesos apreensíveis a diferentes aspectos dessa imagem. Desta forma, a CNN pode diferenciar as imagens ou classificá-las.

CNN’s: uma breve história

Como uma rede neural convolucional é uma rede neural artificial, é importante reiterar as redes neurais.

Em computação, uma rede neural é uma parte do aprendizado de máquina (ML) usando algoritmos de aprendizado profundo. É análogo aos padrões de conectividade seguidos pelos neurônios no cérebro humano. As redes neurais artificiais também se inspiram em como o córtex visual é organizado.

Assim, diferentes tipos de redes neurais ou redes neurais artificiais (RNA) são usados ​​para diferentes propósitos. Um deles é o CNN usado para detecção e classificação de imagens e muito mais. Foi introduzido por um pesquisador de pós-doutorado, Yann LeCun, na década de 1980.

A versão inicial da CNN – LeNet, em homenagem a LeCun, era capaz de reconhecer dígitos manuscritos. Em seguida, foi utilizado em serviços bancários e postais para leitura de dígitos em cheques e CEPs escritos em envelopes.

No entanto, esta versão inicial não tinha escala; portanto, as CNNs não foram muito utilizadas em inteligência artificial e visão computacional. Além disso, exigia recursos de computação e dados significativos para trabalhar com mais eficiência para imagens maiores.

Além disso, em 2012, a AlexNet revisitou o aprendizado profundo que utiliza redes neurais que consistem em várias camadas. Nessa época, a tecnologia melhorou e grandes conjuntos de dados e recursos de computação pesados ​​estavam disponíveis para permitir a criação de CNNs complexas capazes de realizar atividades de visão computacional com eficiência.

Camadas em uma CNN

Vamos entender as diferentes camadas em uma CNN. Aumentar as camadas em uma CNN aumentará sua complexidade e permitirá detectar mais aspectos ou áreas de uma imagem. Começando com um recurso simples, ele se torna capaz de detectar recursos complexos, como a forma do objeto e elementos maiores, até que possa finalmente detectar a imagem.

  Como verificar se alguém encaminhou seu e-mail

Camada Convolucional

A primeira camada de uma CNN é a camada convolucional. É o principal bloco de construção da CNN onde a maioria dos cálculos acontecem. Ele precisa de menos componentes, como dados de entrada, um mapa de recursos e um filtro.

Uma CNN também pode ter camadas convolucionais adicionais. Isso torna a estrutura das CNNs hierárquica, pois as camadas subsequentes podem visualizar pixels dentro dos campos receptivos das camadas anteriores. Em seguida, as camadas convolucionais transformam a imagem dada em valores numéricos e permitem que a rede entenda e extraia padrões valiosos.

Camadas de pool

Camadas de pooling são usadas para reduzir dimensões e são chamadas de downsampling. Reduz os parâmetros usados ​​na entrada. A operação de agrupamento pode mover um filtro sobre a entrada completa, como a camada convolucional, mas não possui pesos. Aqui, o filtro aplica uma função conjunta aos valores numéricos no campo receptivo para preencher a matriz de resultados.

O pooling tem dois tipos:

  • Agrupamento médio: O valor médio é calculado no campo receptivo que o arquivador varre a entrada para transmitir para a matriz de saída.
  • Max pooling: Ele escolhe o pixel de valor máximo e o envia para o array de saída enquanto o filtro varre a entrada. O pooling máximo é usado mais do que o pooling médio.

Embora dados significativos sejam perdidos no pool, ele ainda oferece muitos benefícios à CNN. Ele ajuda a reduzir os riscos e a complexidade de overfitting enquanto melhora a eficiência. Também aumenta a estabilidade da CNN.

Camada Totalmente Conectada (FC)

Como o nome sugere, todos os nós em uma camada de saída são conectados diretamente ao nó da camada anterior em uma camada totalmente conectada. Ele classifica uma imagem com base nos recursos extraídos por meio de camadas anteriores junto com seus filtros.

Além disso, as camadas FC geralmente usam uma função de ativação softmax para classificar as entradas corretamente em vez de funções ReLu (como no caso de camadas de pooling e convolucionais). Isso ajuda a produzir uma probabilidade de 0 ou 1.

Como funcionam as CNNs?

Uma rede neural convolucional consiste em muitas camadas, até centenas delas. Essas camadas aprendem a identificar vários recursos de uma determinada imagem.

Embora as CNNs sejam redes neurais, sua arquitetura difere de uma ANN regular.

Este último coloca uma entrada através de muitas camadas ocultas para transformá-lo, onde cada camada é criada com um conjunto de neurônios artificiais e está totalmente conectada a cada neurônio da mesma camada. Por fim, há uma camada totalmente conectada ou a camada de saída para exibir o resultado.

Por outro lado, a CNN organiza as camadas em três dimensões – largura, profundidade e altura. Aqui, uma camada do neurônio só se conecta a neurônios em uma pequena região em vez de se relacionar com cada um deles na próxima camada. Por fim, o resultado final é representado por um único vetor com escore de probabilidade e possui apenas a dimensão de profundidade.

Agora, você pode perguntar o que é “convolução” em uma CNN.

Bem, convolução refere-se a uma operação matemática para mesclar dois conjuntos de dados. Na CNN, o conceito de convolução é aplicado aos dados de entrada para gerar um mapa de recursos filtrando as informações.

Isso nos leva a alguns dos conceitos e terminologias importantes usados ​​nas CNNs.

  • Filtro: Também conhecido como detector de recursos ou kernel, um filtro pode ter uma determinada dimensão, como 3×3. Ele passa por uma imagem de entrada para realizar a multiplicação de matrizes para cada elemento para aplicar a convolução. A aplicação de filtros a cada imagem de treinamento em resoluções variadas mais a saída da imagem convoluída funcionará como uma entrada para a camada subsequente.
  • Preenchimento: É usado para expandir uma matriz de entrada para as bordas da matriz, inserindo pixels falsos. Isso é feito para contrariar o fato de que a convolução reduz o tamanho da matriz. Por exemplo, uma matriz 9×9 pode se transformar em uma matriz 3×3 após a filtragem.
  • Striding: Se você deseja obter uma saída menor que sua entrada, você pode executar striding. Permite pular certas áreas enquanto o filtro desliza sobre a imagem. Ignorando dois ou três pixels, você pode produzir uma rede mais eficiente reduzindo a resolução espacial.
  • Pesos e vieses: CNNs têm pesos e vieses em seus neurônios. Um modelo pode aprender esses valores durante o treinamento e os valores permanecem os mesmos em uma determinada camada para todos os neurônios. Isso implica que cada neurônio oculto detecta as mesmas características em diferentes áreas de uma imagem. Como resultado, a rede se torna mais tolerante ao traduzir objetos em uma determinada imagem.
  • ReLU: significa Unidade Linear Retificada (ReLu) e é usada para um treinamento mais eficaz e rápido. Ele mapeia valores negativos para 0 e mantém valores positivos. Também é chamado de ativação, pois a rede transporta apenas os recursos de imagem ativados para a camada subsequente.
  • Campo receptivo: em uma rede neural, cada neurônio recebe entrada de diferentes locais da camada anterior. E nas camadas convolucionais, cada neurônio recebe entrada de uma área restrita apenas da camada anterior, chamada de campo receptivo do neurônio. No caso da camada FC, toda a camada anterior é o campo receptivo.
  7 cursos online de certificação CCNA para administradores de rede

Em tarefas de computação do mundo real, geralmente, a convolução é realizada em uma imagem 3D que requer um filtro 3D.

Voltando à CNN, ela compreende diferentes partes ou camadas de nós. Cada camada de nó tem um limite e peso e está conectada a outra. Ao exceder o limite, os dados são enviados para a próxima camada nesta rede.

Essas camadas podem realizar operações para alterar os dados para aprender recursos relevantes. Além disso, essas operações repetem centenas de camadas diferentes que continuam aprendendo a detectar outros recursos de uma imagem.

As partes de uma CNN são:

  • Uma camada de entrada: é onde a entrada é obtida, como uma imagem. Será um objeto 3D com altura, largura e profundidade definidas.
  • Uma/múltiplas camadas ocultas ou fase de extração de recursos: essas camadas podem ser uma camada convolucional, uma camada de pool e uma camada totalmente conectada.
  • Uma camada de saída: Aqui, o resultado será exibido.

A passagem da imagem pela camada de convolução é transformada em um mapa de recursos ou mapa de ativação. Após a convolução da entrada, as camadas convoluem a imagem e passam o resultado para a camada subsequente.

A CNN realizará muitas convoluções e técnicas de agrupamento para detectar os recursos durante a fase de extração de recursos. Por exemplo, se você inserir a imagem de um gato, a CNN reconhecerá suas quatro patas, cor, dois olhos, etc.

Em seguida, camadas totalmente conectadas em uma CNN atuarão como um classificador sobre os recursos extraídos. Com base no que o algoritmo de aprendizado profundo previu sobre a imagem, as camadas produziriam o resultado.

Vantagens das CNNs

Maior precisão

As CNNs oferecem maior precisão do que as redes neurais regulares que não usam convolução. As CNNs são úteis, especialmente quando a tarefa envolve muitos dados, reconhecimento de vídeo e imagem, etc. Elas produzem resultados e previsões altamente precisos; portanto, seu uso está aumentando em diferentes setores.

Eficiência Computacional

As CNNs oferecem um nível de eficiência computacional mais alto do que outras redes neurais comuns. Isso se deve ao uso do processo de convolução. Eles também usam redução de dimensionalidade e compartilhamento de parâmetros para tornar os modelos mais rápidos e fáceis de implantar. Essas técnicas também podem ser otimizadas para funcionar em diferentes dispositivos, seja seu smartphone ou laptop.

  Corrigir o iMessage precisa ser ativado para enviar esta mensagem

Extração de recursos

A CNN pode aprender facilmente os recursos de uma imagem sem exigir engenharia manual. Você pode aproveitar as CNNs pré-treinadas e gerenciar os pesos alimentando-os com dados ao trabalhar em uma nova tarefa, e a CNN se adaptará perfeitamente a ela.

Aplicações da CNN

As CNNs são usadas em diferentes indústrias para muitos casos de uso. Algumas das aplicações da vida real das CNNs incluem:

Classificação de imagem

As CNNs são amplamente utilizadas na classificação de imagens. Eles podem reconhecer recursos valiosos e identificar objetos em uma determinada imagem. Por isso, é usado em setores como saúde, particularmente ressonâncias magnéticas. Além disso, essa tecnologia é usada no reconhecimento de dígitos manuscritos, que está entre os primeiros casos de uso de CNNs em visão computacional.

Detecção de Objetos

A CNN pode detectar objetos em imagens em tempo real e também rotulá-los e classificá-los. Portanto, esta técnica é amplamente utilizada em veículos automatizados. Ele também permite que casas inteligentes e pedestres reconheçam o rosto do proprietário do veículo. Também é usado em sistemas de vigilância com inteligência artificial para detectar e marcar objetos.

Correspondência Audiovisual

A ajuda da CNN na correspondência audiovisual ajuda a melhorar as plataformas de streaming de vídeo, como Netflix, YouTube, etc. Também ajuda a atender às solicitações dos usuários, como “canções de amor de Elton John”.

Reconhecimento de fala

Além das imagens, as CNNs são úteis no processamento de linguagem natural (NLP) e no reconhecimento de fala. Um exemplo real disso poderia ser o Google usando CNNs em seu sistema de reconhecimento de fala.

Reconstrução de Objetos

CNNs podem ser usadas na modelagem 3D de um objeto real em um ambiente digital. Também é possível que os modelos da CNN criem um modelo de rosto 3D usando uma imagem. Além disso, a CNN é útil na construção de gêmeos digitais em biotecnologia, manufatura, biotecnologia e arquitetura.

O uso da CNN em diferentes setores inclui:

  • Saúde: A visão computacional pode ser usada em radiologia para ajudar os médicos a detectar tumores cancerígenos com melhor eficiência em uma pessoa.
  • Agricultura: As redes podem utilizar imagens de satélites artificiais como LSAT e aproveitar esses dados para classificar terras férteis. Isso também ajuda a prever os níveis de fertilidade da terra e desenvolver uma estratégia eficaz para maximizar o rendimento.
  • Marketing: Os aplicativos de mídia social podem sugerir uma pessoa em uma foto postada no perfil de alguém. Isso ajuda você a marcar pessoas em seus álbuns de fotos.
  • Varejo: as plataformas de comércio eletrônico podem usar a pesquisa visual para ajudar as marcas a recomendar itens relevantes que os clientes-alvo desejam comprar.
  • Automotivo: CNN encontra uso em automóveis para melhorar a segurança de passageiros e motoristas. Ele faz isso com a ajuda de recursos como detecção de linha de pista, detecção de objetos, classificação de imagens, etc. Isso também ajuda o mundo dos carros autônomos a evoluir mais.

Recursos para aprender CNNs

Curso:

O Coursera tem este curso na CNN que você pode considerar fazer. Este curso ensinará como a visão computacional evoluiu ao longo dos anos e algumas aplicações das CNNs no mundo moderno.

Amazonas:

Você pode ler estes livros e palestras para saber mais sobre a CNN:

  • Redes neurais e aprendizado profundo: Abrange modelos, algoritmos e a teoria do aprendizado profundo e redes neurais.
  • Um guia para redes neurais convolucionais para visão computacional: este livro ensinará as aplicações das CNNs e seus conceitos.
  • Redes neurais convolucionais práticas com Tensorflow: você pode resolver vários problemas em visão computacional usando Python e TensorFlow com a ajuda deste livro.
  • Aprendizado profundo aplicado avançado: este livro o ajudará a entender CNNs, aprendizado profundo e seus aplicativos avançados, incluindo detecção de objetos.
  • Redes neurais convolucionais e redes neurais recorrentes: Este livro ensinará sobre CNNs e RNNs e como construir essas redes.

Conclusão

As redes neurais convolucionais são um dos campos emergentes de inteligência artificial, aprendizado de máquina e aprendizado profundo. Tem várias aplicações no mundo atual em quase todos os setores. Observando seu uso crescente, espera-se que ele se expanda mais e seja mais útil na resolução de problemas do mundo real.