14 fev. 2022

Neurônios Artificiais – Modelo Perceptron

Nas últimas semanas, publicamos o primeiro artigo da série de conteúdos sobre neurônio artificial. Hoje, vamos ver com um pouco mais de detalhes, ainda dentro do modelo perceptron, como um neurônio artificial deveria aprender a partir de um conjunto de dados.
gft-author-nysio-chrysosto.png
Nysio Chrysostomo
Cientista de Dados I
blogAbstractMinutes
blogAbstractTimeReading
Man standing against a minimalist concrete wall with shadows and light creating abstract patterns, symbolizing reflection and creativity.
Intersetorial
DevOps
IA
download
contact
share
Na segunda parte da série sobre Neurônios Artificiais, explicamos o modelo perceptron e como ele funciona, com base em IA (Inteligência Artificial) e aprendizagem de máquina.

Continuando com o modelo de neurônio artificial, na visão de McCulloch-Pitts (MCP) e o limiar introduzido por Rosenblatt, vamos agora tratar da regra de aprendizagem dessa tecnologia. Podemos pensar que se trata de uma aproximação reduzida para simular como um neurônio biológico funciona dentro do cérebro, ou seja, se o neurônio vai ou não disparar um sinal de saída.

Portanto, em uma simples sumarização, o algoritmo de aprendizado, seria:

  1. Os pesos são iniciados com 0 ou em números aleatórios menores que 0.
  2. Para cada exemplo de treinamento, x(i):
    a. Calcular a saída para, ŷ.
    b. Atualizar os pesos.

Regra de Aprendizado

No primeiro artigo sobre o modelo perceptron, foi mostrada a regra da função que faz o cálculo linear com a entrada da rede:

Mathematical expression showing z as the summation of xi times wi from i = 0 to n, represented as the dot product wᵗx.

O resultado dessa equação é o label, ou seja, a classe predita pelo resultado da combinação linear. Agora, considerando a regra de aprendizagem, vamos atualizar simultaneamente o valor de cada peso, wj, no vetor de pesos, w.

A seguir, uma definição formal para regra de atualização dos valores do vetor de pesos.

Mathematical expression showing the weight update formula wⱼ := wⱼ + Δwⱼ, representing adjustment of a model parameter.

Nesse contexto, cada wj, será atualizado. Considerando a regra de aprendizagem, ∆wj, a regra é definida como:

Mathematical expression showing Δwⱼ computed as η (y⁽ⁱ⁾ − ŷ⁽ⁱ⁾) xⱼ⁽ⁱ⁾, representing the update term in supervised learning.

Aqui, η é a taxa de aprendizado (geralmente uma constante entre 0.0 e 1.0).
y(i) é o valor da verdadeira classe para cada exemplo de entrada e ŷ(i) é o valor predito para cada entrada. Importante notar que todos os pesos do vetor de pesos, w, serão atualizados simultaneamente. O que significa que não poderemos calcular o label que foi predito em ŷ(i), antes de todos os pesos estarem atualizados.

Apresentamos um exemplo de cálculo para um conjunto de dados com duas dimensões:

Mathematical formulas showing ΔW₀, ΔW₁, and ΔW₂ computed using the learning rate η, prediction error, and corresponding input features.

A próxima etapa é a visualização de como funciona a atualização dos pesos e o ajuste no vetor de pesos, w. Para avançar, é necessário utilizar outros gráficos como apresentado anteriormente. Cria-se uma escala entre os vetores w e x, com pesos e entradas, e, através da definição geométrica, podemos escrever o mesmo produto e escalar da seguinte maneira:

Mathematical expression showing wᵗx equal to the product of vector magnitudes ‖w‖ and ‖x‖ multiplied by cos α.

Com os vetores, as suas magnitudes e o produto a escalar, podemos achar o ângulo entre os vetores:

Mathematical expression showing cos α calculated as the dot product wᵗx divided by the product of vector magnitudes ‖w‖ and ‖x‖.
Diagram showing two vectors forming an angle α, labeled with the cosine similarity equation wᵗx divided by the product of vector magnitudes ‖w‖‖x‖.

De acordo com a geometria, há uma projeção escalar de w em x.

Vamos analisar um exemplo e usar um gráfico para verificar o processo de forma um pouco mais intuitiva.



Podemos imaginar aqui, que temos um conjunto de dados de um time de futebol (A e B). Simplificando, temos apenas duas colunas: a região do time e se ele possui técnico, ou não:

Table displaying two teams, their regions—North and South—and whether each team has a coach, marked as Yes or No.

Agora, imagine que a região norte será fundamentada através de valores positivos e a região sul por valores negativos, o mesmo acontece com o campo que denomina se há ou não técnico. Se sim, temos valores positivos, caso contrário, valores negativos.

Exemplo:

Mathematical notation showing vector A as [1 1] and vector B as [-1 -1].

É possível imaginar que quando a nossa rede tiver uma entrada de valores, [1,1], deveríamos ser capazes de prever que os dados são de um torcedor do time A.
Com o raciocínio apresentado é possível concluir:

Mathematical expression showing cos α equated to a·WᵗX, combining trigonometric cosine with vector multiplication.

É possível notar que o cosseno de α é proporcional ao produto dos vetores de x e w. Assim, quando o ângulo entre w e x for menor que 90 graus – para o caso do exemplo acima – com as entradas positivas, em que w pertence a classe que estamos procurando, ou quando o ângulo entre w e x for maior que 90 graus, a entrada x não pertence a classe que estamos procurando.

Illustration showing three vectors—A in blue, W in yellow, and B in red—originating from a common point with coordinate axes and a dashed reference line.

Em suma, o vetor de pesos é normalmente iniciado com valores aleatórios. Ao rodar o algoritmo, temos a etapa de atualização dos pesos. Imagine então que no processo de atualização dos pesos – o código será apresentado no próximo artigo – faz o vetor w, “deslizar” pelo plano, até convergir para a classe que estamos querendo encontrar. Aqui, para título de exemplo, consideramos uma entrada com dois vetores, mas podemos ter mais entradas, aumentando a dimensionalidade.

Para finalizar, confira um exemplo considerando os dados supracitados. Aleatoriamente, o nosso vetor de pesos w, foi definido como:

Mathematical notation showing vector W defined as [-0.1, 0.1, 0.1].

O input x, que para o nosso exemplo será o time A, ficou:

Mathematical notation showing vector A defined as [1, 1, 1].

Lembrando que, w0 e A0 são os bias, ou seja, inserir termo em português, conforme explicado anteriormente. Em uma demonstração extremamente simples, temos:

Mathematical formula showing z as the summation of Ai multiplied by wi, expressed as the dot product wᵗA equaling 0.1.

Para esse caso z = 0.1, então z é > 0. Considerando uma demonstração bem simples, vamos assumir que a entrada A pertence a classe de torcedores do time A.

No próximo artigo, vamos examinar o passo a posso do algoritmo que faz a atualização dos pesos e implementar o modelo perceptron em Python.

Conclusão

Esse é o modelo perceptron. Agora que você entendeu o modelo básico, é possível avançar para os códigos ou algo do tipo para concluir o pensamento e adiantar que teremos o terceiro artigo da série. Clique aqui para ler o primeiro artigo desta série e acompanhe a @gftbrasil para acessar mais conteúdos.

 

 

Referências

https://towardsdatascience.com/perceptron-learning-algorithm-d5db0deab975

http://www.cs.columbia.edu/~mcollins/courses/6998-2012/notes/perc.converge.pdf

https://blogs.umass.edu/brain-wars/files/2016/03/rosenblatt-1957.pdf

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

Entre em contato com nossos especialistas.

contactFormHead

message
dataProtectionDeclaration

Leia mais