Não apenas a introdução às redes neurais convolucionais [parte 1]

Olá Mundo! Neste post, vou desdobrar cada detalhe de uma arquitetura CNN desde o básico. O único pré-requisito para este post é apenas o conhecimento básico da Álgebra Linear e alguma familiaridade com o Python.

Aniket Maurya Blocked Unblock Seguir Seguindo 14 de dezembro de 2018

Como a imagem é representada em um computador?

Os computadores não veem as imagens como nós, os humanos. Como todos sabemos, eles só entendem 0 e 1. Vamos ver como uma imagem é representada em um computador.

Uma imagem colorida tem 3 canais: vermelho, verde e azul. A imagem é dividida em pequenos elementos chamados pixels. Um pixel (abreviação de elemento de imagem) representa uma cor. Uma imagem com uma resolução de 1024 por 798 pixels tem 1024 x 798 pixels (817.152 pixels).

Cada valor na matriz denota a intensidade.

Uma imagem em tons de cinza (1 canal)

Em suma, uma imagem pode ser representada como uma matriz, onde cada valor na matriz denota a intensidade.

Trending AI Articles:

1. Reconhecimento facial: desenvolvimento de máscaras em tempo real

2. Aprendizagem profunda para o reconhecimento da atividade humana baseada em sensores

3. Como construir um servidor de aprendizado profundo baseado no Docker

4. Aprendizagem de transferência: reciclagem do Inception V3 para classificação personalizada de imagens

O que é convolução e como funciona?

'f * g' denota 'f' enrolado com 'g' . Essa convolução é diferente do que estudamos nas escolas. (Muito mais fácil que isso: p)

Espero que as fotos abaixo ajudem você a entender a técnica.

Pic 1 ('?' denota a soma de todos os elementos da matriz) Pic 2

O filtro seleciona cada região não sombreada e realiza as multiplicações correspondentes. A soma de todos os elementos é calculada e armazenada na matriz de saída.

Na Figura 1, a matriz mais à esquerda representa a imagem de entrada (digamos tamanho = nxn) e é convoluta com um filtro (digamos tamanho = fxf). Obtemos uma matriz de imagem de tamanho (n – f + 1, n – f + 1).

Como podemos confirmar o tamanho da imagem de entrada é 7 x 7 e o tamanho do filtro é 3 x 3. Após a convolução, obtemos uma imagem de tamanho (7–3 + 1, 7–3 + 1) = 5 x 5.

Estamos prontos para criar e treinar nosso primeiro modelo?

Bem, sim! Nós somos. Mas primeiro, vamos ver toda a imagem de uma arquitetura simples da CNN.

A imagem de entrada (6, 6, 4) foi contornada com filtros de tamanho (3, 3, 3). Existem 4 filtros, então temos 4 imagens filtradas ou convolutas de tamanho de matriz (4, 4, 4).

Você pode verificar a dimensão calculando (n-f + 1).

Agora vamos criar um classificador de dígitos. Usaremos Keras para criar nosso modelo em menos de 10 linhas de código.

 de keras.layers import conv2D, denso 
de keras import Sequential
model = Sequential ()
model.add (Conv2D (64, kernel_size = 3, ativação = 'relu', input_shape = (28,28,1)))
model.add (Conv2D (32, kernel_size = 3, activation = 'relu'))
model.add (Flatten ())
model.add (denso (10, ativação = 'softmax'))

Em seguida, compilamos e treinamos nosso modelo.

 modelo #compile usando precisão para medir o desempenho do modelo 
model.compile (optimizer = 'adam', perda = 'categorical_crossentropy', métricas = ['precisão'])
 #train the model 
model.fit (X_train, y_train, validation_data = (X_test, y_test), épocas = 3)

Keras tem uma documentação fácil de entender, você deve verificar seu site.