Convolutional Neural Network Tutorial

Ago 18, 2021
admin

A Inteligência Artificial percorreu um longo caminho e tem feito uma ponte sem problemas entre o potencial dos humanos e das máquinas. E entusiastas de dados em todo o mundo trabalham em inúmeros aspectos da IA e transformam visões em realidade – e uma dessas áreas incríveis é o domínio da Visão Computacional. Este campo visa permitir e configurar máquinas para ver o mundo como os humanos o fazem, e usar o conhecimento para várias tarefas e processos (tais como Reconhecimento de Imagem, Análise e Classificação de Imagem, e assim por diante). E os avanços em Computer Vision com Aprendizagem Profunda têm sido um sucesso considerável, particularmente com o algoritmo Convolutional Neural Network.

Neste tutorial, você estará aprendendo sobre:

  • Introdução à CNN
  • O que é uma rede neural convolucional?
  • Como as CNNs reconhecem imagens?
  • Camadas na CNN
  • Utilizar implementação de casos usando CNN

Introdução à CNN

Yann LeCun, diretor do Grupo de Pesquisa AI do Facebook, é o pioneiro das redes neurais convolucionais. Ele construiu a primeira rede neural convolucional chamada LeNet, em 1988. LeNet foi usada para tarefas de reconhecimento de caracteres como leitura de códigos postais e dígitos.

Você já se perguntou como o reconhecimento facial funciona nas mídias sociais, ou como a detecção de objetos ajuda na construção de carros auto dirigidos, ou como a detecção de doenças é feita usando imagens visuais na área da saúde? Tudo isso é possível graças às redes neurais convolucionais (CNN). Aqui está um exemplo de redes neurais convolucionais que ilustra como elas funcionam:

Imagine que há uma imagem de uma ave, e você quer identificar se ela é realmente uma ave ou algum outro objeto. A primeira coisa que você faz é alimentar os pixels da imagem na forma de arrays para a camada de entrada da rede neural (redes multicamadas usadas para classificar as coisas). As camadas ocultas realizam a extracção de características através de diferentes cálculos e manipulações. Existem várias camadas ocultas como a camada de convolução, a camada ReLU, e a camada pooling, que realizam a extracção de características da imagem. Finalmente, há uma camada totalmente conectada que identifica o objeto na imagem.

Convolutional Neural Network to identify the image of a bird

Fig: Rede Neural Convolucional para identificar a imagem de uma ave

>

>

Curso de Aprendizagem Profunda (com TensorFlow & Keras)

Curso de Aprendizagem Profunda (com TensorFlow Keras)Curso de Aprendizagem Profunda (com TensorFlow Keras)

>

>

>

O que é Rede Neural Convolucional?

Uma rede neural convolucional é uma rede neural feed-forward que é geralmente usada para analisar imagens visuais através do processamento de dados com topologia tipo grade. É também conhecida como ConvNet. Uma rede neural convolucional é usada para detectar e classificar objetos em uma imagem.

Below é uma rede neural que identifica dois tipos de flores: Orchid e Rose.

Na CNN, cada imagem é representada na forma de uma matriz de valores de pixel.

A operação de convolução forma a base de qualquer rede neural convolucional. Vamos entender a operação de convolução usando duas matrizes, a e b, de 1 dimensão.

a =

b =

>Na operação de convolução, as matrizes são multiplicadas por elementos, e o produto é somado para criar uma nova matriz, que representa a*b.

Os três primeiros elementos da matriz a são multiplicados com os elementos da matriz b. O produto é somado para obter o resultado.

Os três elementos seguintes da matriz a são multiplicados pelos elementos da matriz b, e o produto é somado.

Este processo continua até que a operação de convolução esteja completa.

Como a CNN reconhece as imagens?

Consulte as seguintes imagens:

As caixas coloridas representam um valor de pixel de 1, e 0 se não forem coloridas.

Quando você pressiona a barra invertida (\), a imagem abaixo é processada.

>

Ao pressionar a barra invertida (/), a imagem abaixo é processada:

Aqui está outro exemplo para representar como a CNN reconhece uma imagem:

Como pode ver no diagrama acima, apenas os valores que têm o valor 1 são acesos.

Layers in a Convolutional Neural Network

Uma rede neural de convolução tem múltiplas camadas ocultas que ajudam na extração de informações de uma imagem. As quatro camadas importantes na CNN são:

  1. Camada de convolução
  2. Camada de ReLU
  3. Camada de depuração
  4. Camada totalmente conectada

Camada de convolução

Este é o primeiro passo no processo de extração de recursos valiosos de uma imagem. Uma camada de convolução tem vários filtros que realizam a operação de convolução. Cada imagem é considerada como uma matriz de valores de pixel.

Considere a seguinte imagem 5×5 cujos valores de pixel são 0 ou 1. Há também uma matriz de filtros com uma dimensão de 3×3. Deslize a matriz do filtro sobre a imagem e calcule o produto de ponto para obter a matriz de característica giratória.

ReLU layer

ReLU significa a unidade linear retificada. Uma vez extraídos os mapas de características, o próximo passo é movê-los para uma camada ReLU.

ReLU realiza uma operação no sentido dos elementos e define todos os pixels negativos como 0. Introduz a não-linearidade na rede, e a saída gerada é um mapa de características retificado. Abaixo está o gráfico de uma função ReLU:

A imagem original é digitalizada com múltiplas convoluções e camadas ReLU para localizar as características.

Pooling Layer

Pooling é uma operação de amostragem para baixo que reduz a dimensionalidade do mapa de características. O mapa de recursos retificado agora passa por uma camada de pooling para gerar um mapa de recursos agrupados.

A camada de pooling usa vários filtros para identificar diferentes partes da imagem como bordas, cantos, corpo, penas, olhos e bico.

Aqui está como a estrutura da rede neural de convolução parece até agora:

O próximo passo no processo é chamado de achatamento. O achatamento é usado para converter todas as matrizes bidimensionais resultantes de mapas de características combinadas em um único vetor linear longo e contínuo.

A matriz achatada é alimentada como entrada para a camada totalmente conectada para classificar a imagem.

Aqui está como exatamente a CNN reconhece um pássaro:

  • Os pixels da imagem são alimentados à camada convolutiva que realiza a operação de convolução
  • Resulta num mapa rotativo
  • O mapa rotativo é aplicado a uma função ReLU para gerar um mapa de características retificado
  • A imagem é processada com múltiplas convoluções e camadas ReLU para localizar as características
  • Diferentes camadas de agrupamento com vários filtros são usadas para identificar partes específicas da imagem
  • O mapa de características agrupadas é achatado e alimentado com uma camada totalmente conectada para obter a saída final

Curso de Aprendizagem de MáquinaFREE

Aprender em…Exigir Habilidades de Aprendizagem de Máquina e FerramentasAprendizagem Inicial

 Curso de Aprendizagem de MáquinaFREE>

Usar implementação de casos usando CNN

Usaremos o conjunto de dados CIFAR-10 do Instituto Canadense de Pesquisa Avançada para classificar imagens em 10 categorias usando CNN.

1. Baixar o conjunto de dados:

2. Importar o conjunto de dados CIFAR:

>

3. Ler os nomes das etiquetas:

>

>

4. Exibir as imagens usando matplotlib:

>

>

>

>>

>

>>

>

5. Use a função helper para manipular dados:

6. Crie o modelo:

7. Aplique as funções helper:

8. Crie as camadas para convolução e pooling:

9. Crie a camada achatada remodelando a camada de pooling:

10. Criar uma camada totalmente conectada:

11. Definir a saída como variável y_pred:

12. Aplique a função de perda:

13. Criar o otimizador:

14. Criar uma variável para inicializar todas as variáveis globais:

15. Executar o modelo criando uma sessão gráfica:

Build deep learning models in TensorFlow e aprender o framework open-source TensorFlow com o curso Deep Learning (com Keras &TensorFlow). Inscreva-se agora!

Aprenda mais sobre CNN e Aprendizagem Profunda

É assim que você constrói uma CNN com múltiplas camadas ocultas e como identificar um pássaro usando seus valores de pixel. Você também completou uma demonstração para classificar as imagens em 10 categorias usando o conjunto de dados CIFAR.

Você também pode se inscrever no Programa de Pós-Graduação em IA e Aprendizagem de Máquina com a Universidade Purdue e em colaboração com a IBM, e se transformar em um especialista em técnicas de aprendizagem profunda usando TensorFlow, a biblioteca de software de código aberto projetada para conduzir aprendizagem de máquina e pesquisa profunda de redes neurais. Este programa em AI e Machine Learning cobre Python, Machine Learning, Processamento de Linguagem Natural, Reconhecimento de Fala, Aprendizagem Profunda Avançada, Visão Computadorizada e Aprendizagem Reforçada. Ele irá prepará-lo para uma das fronteiras tecnológicas mais excitantes do mundo.

Deixe uma resposta

O seu endereço de email não será publicado.