Lab|208

Clusterizando conhecimento.


Rede Neural do Zero: Introdução

18 Apr 2020 - Anthony João Bet

O objetivo desta série de tutoriais é construir uma rede neural artificial simples, do zero, utilizando apenas python puro e a biblioteca Numpy e mostrar como e porque tais redes funcionam, partindo da estrutura funcional mais simples da rede, o perceptron.

Rede Neural e Suas Estrutras Básicas

Uma rede neural artificial (muito referenciada como ANN acrônimo para Artificial Neural Network ) pode ser construída com três conceitos: neurônios, conexões (pesos), e camadas. O neurônio é a unidade de processamento da rede, ele está localizado em uma camada, recebe informação dos neurônios da camada anterior, processa e envia informações para camada posterior através das conexões, cada neurônio de uma camada está totalmente conectado com todos os neurônios da camada posterior. Perceba que existe uma ordem, uma direção para onde a informação se propaga, a cada passo de tempo a informação é propagada de uma camada para outra, partindo da camada de entrada até chegar na camada de saída.

Rede neural com três camadas

Figura 1: rede neural com três camadas. Fonte: wikipedia.org

Vejamos o exemplo da figura 1. Esta rede é formada por três camadas, a primeira é a camada de entrada, a segunda é a cama escondida (hidden layer) e a terceira camada é a camada de saída.

A primeira camada não faz processamento algum, ela é preenchida pelo dados do problema. Se esta fosse uma rede que classifica dígitos por exemplo, a camada de entrada guardaria a informação de uma imagem (a imagem que representa o digito), cada “neurônio” poderia guardar a cor de um pixel e o passo inicial seria propagar essa informação para a segunda camada.

A segunda camada é o que chamamos de camada escondida, uma rede pode ter quantas camadas escondidas você quiser, se esse for o caso chamamos a rede de profunda (deep neural network). Esta camada processa os dados de entrada e enviar para a camada de saída.

Por último, mas não menos importante, temos a terceira camada. A terceira camada é parecida com a camada escondida, a diferença é que utilizamos seu sinal como resultado pra predição ou classificação e muitas vezes sua função de ativação é diferente. Voltando ao exemplo da classificação de dígitos, a camada de saída seria uma distribuição de probabilidades sobre os possíveis dígitos que podem ser classificados, cada neurônio estaria associado a uma possível classe de um dígito, e seu valor seria a probabilidade daquele dígito pertencer àquela classe.

No próximo artigo vamos trabalhar com as equações que regem as redes neurais, mas antes de seguir em frente na série de tutoriais vejam esse vídeo do canal 3Blue1Brow, é um espetáculo e possui legendas em português.

Esta série de tutoriais é baseada nas aulas do Prof. Dr. Florian Marquardt, e em tudo que eu aprendi sobre a área durante a graduação em física. Se você quiser aprender mais sobre python e também sobre redes neurais, não deixe de visitar o canal do Sentdex e seu site, conteúdo de qualidade sem enrolação.