Aula 23 - Tensor Flow - Keras - Redes Neurais Convolucionais
Meu github:
Documentação oficial do TensorFlow:
Quer aprender python3 de graça e com certificado? Acesse então:
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Aproveito para deixar meus link de afiliados:
Toti:
Backing track / Play-along:
Código Fluente
Putz!
Fiquem a vontade para me adicionar ao linkedin.
Aula 23 - Tensor Flow - Keras - Redes Neurais Convolucionais
Revisão do código
Nas últimas aulas, criamos uma rede de uma camada, depois uma com 4 camadas internas ou intermediárias usando a função de ativação sigmoide nas camadas internas, depois alteramos para usar a relu nas camadas internas.
Depois adicionamos dropout a rede e vimos que melhorou a precisão da rede.
Por último , criamos uma rede com 3 camadas convolucionais, uma camada para achatar a matriz da imagem, uma camada totalmente conectada que usa a relu como função de ativação, uma camada de dropout e a camada de saída, usando a softmax.
Resumo teórico
Redes Neurais Convolucionais (
CNN) têm sido usadas em tarefas de visão computacional de última geração, como detecção de rosto e carros autônomos.
Possui várias camadas, sendo capaz de detectar recursos complexos em dados de imagens.
Como funcionam?
Cada imagem contém dados de pixel que podem ser representados em uma forma numérica.
Essa representação numérica é o que é passado para uma
CNN.
Por mais que as redes neurais artificiais normais possam ser usadas no processamento de dados de imagem, as
CNNs provaram ter um desempenho melhor, resultando em maior precisão.
Convolução
Normalmente, você não alimentará a imagem inteira em uma CNN.
Você alimentará apenas com os recursos mais importantes na classificação da imagem.
Os recursos são obtidos por meio de um processo conhecido como convolução.
O objetivo da operação de convolução é extrair os recursos de alto nível, como bordas, loops, retas, etc. Da imagem de entrada.
A operação de
convolução resulta no que é conhecido como mapa de características (
features).
Também é conhecido como
recurso convolvido ou
mapa de ativação.
O mapa de características é obtido aplicando um detector de características à imagem de entrada.
O detector de recursos também é conhecido como kernel ou filtro.
O filtro é geralmente uma matriz de 3 por 3.
No entanto, outros tipos de matrizes podem ser usados.
O mapa de características é obtido através de uma multiplicação elemento a elemento do filtro com a representação da matriz da imagem de entrada.
O objetivo aqui é reduzir o tamanho da imagem que está sendo passada para a
CNN, mantendo as características importantes.
O filtro desliza passo a passo por cada um dos elementos da imagem de entrada.
Essas etapas são conhecidas como passos largos e podem ser definidas durante a criação da
CNN.
Ao construir a
CNN você poderá definir o número de filtros que deseja para sua rede.
Pooling
O
agrupamento ou
pooling, resulta no que é conhecido como mapa de recursos agrupados.
O
pooling garante que a rede neural seja capaz de detectar recursos em uma imagem, independentemente de sua localização na matriz.
Isso é conhecido como invariância espacial.
Existem vários tipos de
pooling:
pooling máximo,
pooling médio e
pooling mínimo.
Por exemplo, no
pooling máximo, uma matriz 2 por 2 é deslizada sobre o mapa de características enquanto seleciona o maior valor em uma determinada caixa.
Com isso, reduzimos o uso de memória diminuindo o número de parâmetros, ganhando em processamento.
Achatamento
A próxima etapa é nivelar o mapa de recursos agrupados.
Isso envolve a transformação de todo o mapa de
features agrupadas em uma única coluna que pode ser passada para a camada totalmente conectada.
Conexão completa
O mapa de recursos achatados é então passado para a camada de entrada da rede neural.
O resultado disso é passado para uma camada totalmente conectada.
Depois disso, o resultado de todo o processo é emitido pela camada de saída.
Uma função de ativação é geralmente aplicada dependendo do tipo de problema de classificação.
Para
classificações binárias, a função de ativação
sigmóide pode ser usada, enquanto a função de ativação
softmax é usada para problemas
multiclasse.
Por essa aula é só.
Meu github:
Se gostarem do conteúdo dêem um joinha 👍 na página do Código Fluente no
Facebook
Link do código fluente no Pinterest
Novamente deixo meus link de afiliados:
Obrigado, até a próxima e bons estudos. ;)