Antes de orquestrar LLMs modernos ou usar frameworks prontos como PyTorch e scikit-learn, implementar os algoritmos clássicos de Redes Neurais e Inteligência Computacional do zero em Python é a melhor forma de entender o que realmente acontece dentro de um modelo: propagação direta (forward pass), cálculo do gradiente, regra Delta, retropropagação do erro (backpropagation), mapas auto-organizáveis competitivos e otimização evolutiva.

Ao longo da graduação em Engenharia da Computação na UEFS, construí uma série de implementações fundamentais sem depender de camadas prontas de alto nível. Neste artigo, resumo a intuição matemática, a arquitetura e os casos práticos de 6 repositórios abertos no meu GitHub.

1. Perceptron de Rosenblatt e Adaline (perceptron-oil-problem & adaline_valvulas)

O Perceptron e o Adaline (Adaptive Linear Neuron) são a base histórica das redes neurais artificiais, mas diferem em um ponto crucial no treinamento:

  • Perceptron (perceptron-oil-problem): atualiza os pesos w apenas quando a função degrau (sinal) erra a classe discreta de uma amostra de óleo (y ∈ {-1, +1}).
  • Adaline (adaline_valvulas): aplica a Regra Delta (LMS — Least Mean Squares) sobre a saída linear contínua u = w·x + b antes da função de ativação, minimizando o Erro Quadrático Médio (MSE) via descida do gradiente para diagnóstico de acionamento de válvulas:
Δw = η × (d - u) × x 

Essa diferença sutil — derivar uma superfície quadrática contínua em vez de uma função degrau descontínua — é o que abriu caminho para o treinamento de redes multicamadas.

2. Multilayer Perceptron (MLP) e Backpropagation (multilayer-perceptron)

Perceptrons de camada única só separam problemas linearmente separáveis. No repositório multilayer-perceptron, implementei uma rede de múltiplas camadas com retropropagação do erro (backpropagation) aplicada tanto ao clássico dataset Iris (3 classes) quanto a problemas geométricos não lineares (circulo.txt):

  • Forward pass: camadas ocultas com funções de ativação diferenciáveis não lineares (sigmoide / tangente hiperbólica), permitindo compor fronteiras de decisão curvas.
  • Backward pass: aplicação da regra da cadeia camada a camada, propagando o gradiente local da saída até a primeira camada oculta para atualizar matrizes de pesos e vetores de bias.

3. Aprendizado Não Supervisionado Competitivo: Mapas de Kohonen (kohonen-iris-plants)

Nem todo problema possui rótulos supervisionados. No repositório kohonen-iris-plants, implementei uma Rede de Kohonen (Self-Organizing Map — SOM) para agrupamento topológico das plantas Iris:

  1. Para cada vetor de entrada x de 4 dimensões, os neurônios da grade competem pela menor distância euclidiana para eleger a BMU (Best Matching Unit):
 c = argmin_i ||x - w_i|| 
  1. A BMU e seus vizinhos topológicos na grade atualizam seus pesos aproximando-se de x, com taxa de aprendizado e raio de vizinhança decaindo ao longo das épocas.
  2. O resultado preserva a topologia: amostras similares no espaço de 4 dimensões ficam próximas no mapa bidimensional, sem nunca ter visto o rótulo da espécie durante o treino.

4. Lógica Fuzzy (controlador_fuzzy) e Algoritmos Genéticos (Algoritmo-Genetico)

Para completar a caixa de ferramentas de Inteligência Computacional:

  • Sistemas de Inferência Fuzzy (controlador_fuzzy): modelam incerteza contínua por funções de pertinência (fuzzificação), base de regras linguísticas (SE ... ENTÃO ...) e defuzzificação (centroide) para controle suave onde regras booleanas rígidas falham.
  • Algoritmos Genéticos (Algoritmo-Genetico): busca meta-heurística populacional com seleção por aptidão (fitness), cruzamento (crossover) e mutação estocástica para escapar de ótimos locais em espaços de busca discretos ou não diferenciáveis.

Por que isso importa na era de LLMs e Sistemas Multi-Agente?

Quando hoje projeto um sistema multi-agente como o Comanda (com BM25 + stemmer Snowball em português do zero) ou um motor de recomendação em produção com LSH Forest e MinHash, os fundamentos são os mesmos: espaço vetorial, métricas de distância/similaridade, custo computacional por consulta e avaliação quantitativa rigorosa.

Repositórios no GitHub