Implementando Neurônios Artificiais na linguagem Python

Para fechar a série de artigos sobre neurônio artificial, vamos explicar como implementar o modelo perceptron na linguagem Python.
Aqui, vamos descrever de forma simplificada um exemplo de funcionamento do neurônio artificial, que pode ser imaginado como uma unidade, ou nó, dentro das camadas das redes neurais.

 

Introdução

Agora que você já conhece mais sobre neurônios artificiais, vamos implementar o modelo perceptron, usando a linguagem Python. Nos artigos anteriores, criamos um conjunto simples de dados usando times como exemplo, definindo a região e se possuíam ou não um técnico.

Neste artigo, abordaremos mais detalhadamente a implementação do modelo perceptron e desenharemos um gráfico que permita observar a separação das classes linearmente.

Importante notar que quando estamos falando de uma rede neural artificial, temos muitos conceitos envolvidos, como por exemplo:

O número de épocas, que é a quantidade de vezes que o modelo vai rodar e atualizar o vetor de pesos até se ajustar.
A função de perda, que ajuda a minimizar danos no processo de atualização e a função de ativação, hiperparâmetros etc.

Neste conteúdo vamos tratar apenas de uma demonstração: quando o neurônio artificial, (que é uma unidade da rede neural artificial), fará ou não o disparo para próxima camada.

Normalmente, o vetor de pesos é iniciado aleatoriamente. Conforme a rede é treinada, esses valores vão se ajustando. Para esse exemplo, vamos usar um vetor de pesos bem ajustado, apenas para demonstrar o processo de disparar ou não um sinal:

Pré-requisitos para os próximos passos:

▪ Noções de Programação.
▪ Python instalado nos ambientes.

 

Download Python

Fica a seu critério a escolha da IDE.
https://www.python.org/downloads/ 

 

Após a instalação, precisamos também adquirir algumas bibliotecas. Logo abaixo, temos as libs e seus respectivos sites e o comando que deverá ser digitado no terminal para instalação de cada lib. Repita esse processo para lib listada abaixo:

Matplotlib – https://matplotlib.org/

pip install matplotlib

Pandas – https://pandas.pydata.org/

pip install pandas

Numpy – https://numpy.org/doc/stable/reference/random/legacy.html

pip install numpy

Conjunto de Dados

Para esse exemplo, foi criado um conjunto de dados muito simples, veja na tabela abaixo:

Agora, vamos converter as informações para valores numéricos.

Para o TIME A, vamos atribuir o número 1; para a REGIÃO Norte e 1: TEM TÉCNICO.
Para o TIME B, vamos atribuir -1; para REGIÃO Sul e -1 para: NÃO TEM TÉCNICO.
A entrada para o neurônio artificial será A= [1, 1] e B= [-1, -1], ou X= [[1, 1], [-1, -1]],
conforme o gráfico abaixo:

É possível notar que estamos tratando de um exemplo muito simples, com poucos dados. Por conta disso, as classes estão muito bem separadas, o que nos ajuda a perceber que podemos tratar de problemas através de funções simples e lineares.

 

Neurônio Artificial Modelo Perceptron em Python

O dataset:

Ao final de cada linha, foi adicionado o valor esperado da predição, a título de exemplo. Esperamos que o neurônio artificial faça um disparo quando a entrada for da classe do time A, então o valor esperado será 1 e, como para a classe do time B não haverá disparo, o valor será 0.

 

Como dito na introdução, estamos trabalhando com um vetor de pesos mais ou menos ajustado para o nosso exemplo:

Lembrando que o vetor de pesos será iniciado aleatoriamente e durante o treinamento da rede será ajustado conforme as classes. Neste exemplo, estamos tratando da unidade da rede e se ocorre ou não o disparo para próximas camadas.

Agora, vamos ver a função que fará o cálculo para decidir sobre o disparo, relembrando as definições do modelo perceptron:

 

Uma implementação seria:

Finalizando, vamos ler as linhas do dataset, e chamar a função de predição.

Esperamos que para a entrada do time A, com o valor esperado 1 e valor de predição também 1, teremos um disparo. Para o caso do time B, com o valor esperado 0 e o valor de predição 0, não teremos um disparo.

Com essa chamada, temos a seguinte saída:

Abaixo, o código completo:

 

Conclusão

Podemos ver um exemplo do neurônio artificial decidindo sobre fazer ou não o disparo do sinal de saída. Em artigos anteriores, Neurônio Artificial – Uma Breve Introdução e Neurônios Artificiais – Modelo Perceptron, falamos sobre o aparato matemático que define o funcionamento do algoritmo. Mostramos neste artigo uma simples implementação de um neurônio artificial, lembrando que o neurônio artificial é o nó da unidade da rede neural, portanto, uma rede neural artificial é composta por um conjunto de neurônios artificiais.

Esse foi o terceiro artigo de uma série que abordou a rede neural. Fique ligado nos próximos artigos do Terça Tech. Em breve, vamos compartilhar mais conhecimento sobre inteligência artificial, funcionamento e treinamento de uma rede neural e muito mais.

 

Referências

https://machinelearningmastery.com/implement-perceptron-algorithm-scratch-python/

https://github.com/rasbt/python-machine-learning-book-3rd-edition/blob/master/ch02/ch02.ipynb

Python Machine Learning – 3rd Edition – Sebastian Raschka e Vahid Mirijalili