Perceptron: onde redes neurais começam (e param)

O ponto de partida

O perceptron é um daqueles modelos que parecem simples demais à primeira vista.

Mas tem um detalhe importante:

ele já contém a ideia essencial de aprendizado

Mesmo que de forma limitada.


Mais do que um exercício

A implementação em si não tem mistério.

Um somatório, uma função de ativação, ajuste de pesos.

Mas a intenção aqui não foi só implementar.

Foi entender o comportamento:


O modelo

A decisão do perceptron é baseada em uma combinação linear das entradas:

\[y = \begin{cases} \;\;\,1, & \text{se } \sum v_i x_i + b \ge 0 \\ -1, & \text{caso contrário} \end{cases}\]

Isso define uma fronteira de decisão — uma linha (ou hiperplano, em dimensões maiores).

É só isso.

Esse modelo deriva diretamente da ideia de neurônio artificial, que descrevi aqui.

A função de ativação utilizada é um degrau bipolar. Também escrevi uma nota sobre isso aqui.

Durante o treinamento, os pesos são ajustados sempre que o modelo erra:

\[\begin{cases} v_i^{\text{novo}} = v_i^{\text{antigo}} + \alpha (t^{(k)} - y^{(k)}) x^{(k)} \\ b^{\text{novo}} = b^{\text{antigo}} + \alpha (t^{(k)} - y^{(k)}) \end{cases}\]

Nada sofisticado — mas suficiente para capturar padrões simples.


Onde ele funciona

Quando os dados podem ser separados por uma linha, ele converge.

Casos simples deixam isso claro:

Aqui, o modelo aprende rápido e se ajusta sem dificuldade.


Onde ele quebra

O problema aparece quando a separação deixa de ser linear.

O exemplo clássico é o XOR.

Não importa o quanto você treine:

o modelo não converge

E isso não é falha da implementação — é limitação do próprio modelo.


O que isso mostra

Esse ponto é mais interessante do que parece.

Porque ele revela algo fundamental:

o modelo não aprende “qualquer coisa” — ele aprende o que a sua forma permite

No caso do perceptron, essa forma é linear.

Se o problema exige algo além disso, ele simplesmente não consegue representar.


Visualização

A parte mais interessante é ver a fronteira de decisão se ajustando ao longo do treino.

Ver isso acontecendo deixa o processo menos abstrato.

O modelo ajusta os pesos, move a fronteira e tenta corrigir erros — mas sempre dentro do que ele consegue representar.


Por que esse projeto

A ideia aqui foi bem direta:


Fechamento

O perceptron é simples — e é justamente por isso que ele é útil.

Ele mostra o começo.

E também deixa claro onde esse começo deixa de ser suficiente.


Código

Você pode encontrar o projeto completo aqui.