Arquitetura básica da CNN: explicando 5 camadas da rede neural convolucional [EUA]

Publicados: 2023-04-16

Uma CNN (Convolutional Neural Network) é um tipo de rede neural de aprendizado profundo que usa uma combinação de camadas convolucionais e de subamostragem para aprender recursos de grandes conjuntos de dados. É comumente usado para tarefas de reconhecimento e classificação de imagens. As camadas convolucionais aplicam filtros aos dados de entrada e as camadas de subamostragem reduzem o tamanho dos dados de entrada. A arquitetura de rede neural convolucional visa aprender recursos dos dados que podem ser usados ​​para classificar ou detectar objetos na entrada. Abaixo estão as 5 camadas da CNN explicadas .

Inscreva-se no Curso de Machine Learning das melhores universidades do mundo. Ganhe programas de certificação Master, Executive PGP ou Advanced para acelerar sua carreira.

Índice

5 camadas de uma rede neural convolucional

1. Camada Convolucional:

Essa camada realiza a operação de convolução nos dados de entrada, que extrai vários recursos dos dados.

As camadas convolucionais em uma arquitetura de modelo CNN são um dos componentes mais vitais das camadas CNN . Essas camadas são responsáveis ​​por extrair recursos dos dados de entrada e formar a base para processamento e aprendizado posteriores.

Uma camada convolucional consiste em um conjunto de filtros (também conhecidos como kernels) aplicados aos dados de entrada em uma janela deslizante. Cada filtro extrai um conjunto específico de recursos dos dados de entrada com base nos pesos associados a ele.

O número de filtros usados ​​na camada convolucional é um dos principais hiperparâmetros da arquitetura. É determinado com base no tipo de dados que está sendo processado, bem como na precisão desejada do modelo. Geralmente, mais filtros resultarão em mais recursos extraídos dos dados de entrada, permitindo que arquiteturas de rede mais complexas entendam melhor os dados.

A operação de convolução consiste em multiplicar cada filtro com os dados dentro da janela deslizante e somar os resultados. Essa operação é repetida para todos os filtros, resultando em vários mapas de recursos para uma única camada convolucional. Esses mapas de recursos são usados ​​como entrada para as camadas seguintes, permitindo que a rede aprenda recursos mais complexos a partir dos dados.

As camadas convolucionais são a base das arquiteturas de aprendizado profundo e são usadas em vários aplicativos, como reconhecimento de imagem, processamento de linguagem natural e reconhecimento de fala. Ao extrair os recursos mais críticos dos dados de entrada, as camadas convolucionais permitem que a rede aprenda padrões mais complexos e faça previsões melhores.

2. Camada de agrupamento:

Esta camada realiza uma operação de downsampling nos mapas de recursos, o que reduz a quantidade de computação necessária e também ajuda a reduzir o overfitting.

A camada de pooling é um componente vital da arquitetura da CNN . Geralmente é usado para reduzir o tamanho do volume de entrada enquanto extrai informações significativas dos dados. Camadas de agrupamento são geralmente usadas nos estágios posteriores de uma CNN, permitindo que a rede se concentre em recursos mais abstratos de uma imagem ou outro tipo de entrada. A camada de agrupamento opera deslizando uma janela sobre o volume de entrada e calculando uma estatística resumida para os valores dentro da janela.

As estatísticas comuns incluem obter o máximo, a média ou a soma dos valores dentro da janela. Isso reduz o tamanho do volume de entrada enquanto preserva informações importantes sobre os dados.

A camada de agrupamento também é normalmente usada para introduzir invariância espacial, o que significa que a rede produzirá a mesma saída independentemente da localização da entrada na imagem. Isso permite que a rede herde características mais gerais sobre a imagem, em vez de simplesmente memorizar sua localização exata.

3. Camada de Ativação:

Essa camada adiciona não linearidade ao modelo aplicando uma função de ativação não linear, como ReLU ou tanh.

Uma camada de ativação em uma CNN é uma camada que serve como uma transformação não linear na saída da camada convolucional. É um componente primário da rede, permitindo aprender relacionamentos complexos entre os dados de entrada e saída.

A camada de ativação pode ser considerada uma função que pega a saída da camada convolucional e a mapeia para um conjunto diferente de valores. Isso permite que a rede aprenda padrões mais complexos nos dados e generalize melhor.

Funções de ativação comuns usadas em CNNs incluem ReLu (Unidade Linear Retificada), sigmóide e tanh. Cada função de ativação serve a um propósito diferente e pode ser usada em diferentes cenários.

ReLu é a função de ativação mais comumente usada na maioria das redes convolucionais. É uma transformação não linear que gera 0 para todos os valores negativos e o mesmo valor de entrada para todos os valores positivos. Isso permite que a rede absorva padrões mais complexos nos dados.

Sigmoid é outra função de ativação comumente usada, que gera valores entre 0 e 1 para qualquer entrada. Isso ajuda a rede a entender relacionamentos complexos entre os dados de entrada e saída, mas é mais caro computacionalmente do que o ReLu.

Tanh é a função de ativação menos usada, que gera valores entre -1 e 1 para qualquer entrada.

A camada de ativação é um componente essencial da CNN, pois evita a linearidade e aumenta a não linearidade na saída. Escolher a função de ativação correta para a rede é essencial, pois cada função de ativação serve a um propósito diferente e pode ser usada em diferentes cenários. A seleção de uma função de ativação adequada pode levar a um melhor desempenho da estrutura da CNN .

4. Camada Totalmente Conectada:

Essa camada conecta cada neurônio em uma camada a cada neurônio na próxima camada, resultando em uma rede totalmente conectada.

Uma camada totalmente conectada em uma CNN é uma camada de neurônios conectados a cada neurônio na camada anterior da rede. Isso contrasta com as camadas convolucionais, onde os neurônios são conectados apenas a um subconjunto de neurônios na camada anterior com base em um padrão específico.

Ao conectar cada neurônio em uma camada a cada neurônio na próxima camada, a camada totalmente conectada permite que as informações da camada anterior sejam compartilhadas em toda a rede, proporcionando assim a oportunidade para uma compreensão mais abrangente dos dados.

As camadas totalmente conectadas na CNN são normalmente usadas no final de uma arquitetura de modelo CNN , após as camadas convolucionais e as camadas de agrupamento, pois ajudam a identificar padrões e correlações que as camadas convolucionais podem não ter reconhecido.

Além disso, camadas totalmente conectadas são usadas para gerar um limite de decisão não linear que pode ser usado para classificação. Em conclusão, as camadas totalmente conectadas são parte integrante de qualquer CNN e fornecem uma ferramenta poderosa para identificar padrões e correlações nos dados.

5. Camada de Saída:

Esta é a camada final da rede, que produz os rótulos ou valores de saída.

A camada de saída de uma CNN é a camada final da rede e é responsável por produzir a saída. É a camada que pega as características extraídas das camadas anteriores e as combina de forma a produzir a saída desejada.

Uma camada totalmente conectada é normalmente usada quando a saída é um valor único, como um problema de classificação ou regressão. Uma única camada de neurônios geralmente é usada quando o resultado é um vetor, como uma distribuição de probabilidade.

Uma função de ativação softmax é usada quando a saída é uma distribuição de probabilidade, como uma distribuição de probabilidade sobre classes. A camada de saída de uma CNN também é responsável por realizar os cálculos necessários para obter a saída desejada. Isso inclui completar as transformações lineares ou não lineares necessárias das entradas para receber a saída necessária.

Finalmente, a camada de saída de uma CNN também pode ser usada para realizar técnicas de regularização, como dropout ou normalização em lote, para melhorar o desempenho da rede.

Conclusão

A arquitetura CNN é uma ferramenta poderosa para tarefas de processamento de imagem e vídeo. É uma combinação de camadas convolucionais, camadas de agrupamento e camadas totalmente conectadas. Ele permite extrair recursos de imagens, vídeos e outras fontes de dados e pode ser usado para várias tarefas, como reconhecimento de objetos, classificação de imagens e reconhecimento facial. No geral, esse tipo de arquitetura é altamente eficaz quando aplicado a funções e conjuntos de dados adequados.

Adquira um conjunto de habilidades proficiente em ML e DL com upGrad

Com o Programa de Certificação Avançado em Machine Learning e Deep Learning da upGrad oferecido pelo IIIT-B, você pode obter proficiência em Machine Learning e Deep Learning. O programa abrange os fundamentos de ML e DL, incluindo tópicos como aprendizado supervisionado e não supervisionado, regressão linear e logística, redes neurais convolucionais, aprendizado por reforço e processamento de linguagem natural. Você também aprenderá a criar e implantar modelos de ML e DL em Python e TensorFlow e obterá experiência prática trabalhando em projetos do mundo real.

Este curso também inclui benefícios como:

  • Mentoria e orientação de especialistas do setor
  • Assistência de colocação para ajudá-lo a encontrar o emprego certo
  • Um Certificado Avançado do IIIT Bangalore

Você também pode conferir nossoscursos gratuitosoferecidos pela upGrad em Gestão, Ciência de Dados, Machine Learning, Marketing Digital e Tecnologia.Todos esses cursos têm recursos de aprendizado de alto nível, palestras ao vivo semanais, atribuições do setor e um certificado de conclusão do curso - tudo gratuito!

Quais são as bibliotecas em Python que podem ser usadas para uma CNN?

As bibliotecas em Python que podem ser usadas para uma CNN incluem TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV e SciPy. Essas bibliotecas podem ser usadas para obter módulos pré-construídos para criar aplicativos e implementar facilmente algoritmos CNN.

Quantas dimensões existem nas camadas da CNN?

As redes neurais convolucionais contêm neurônios organizados em 3 dimensões: largura, altura e profundidade. Essa estrutura tridimensional de neurônios está presente na camada de convolução, que funciona por meio do processo de computação com a entrada fornecida para fornecer a saída resultante.

Posso desenvolver uma CNN em R?

Sim, as CNNs podem ser desenvolvidas usando Python e R. Com R fornecendo bibliotecas excepcionalmente detalhadas, criar uma rede neural de convolução com R é muito fácil.