29 Jan 2026
Perceptron XOR
O problema XOR não pode ser resolvido por um perceptron simples, pois não é linearmente separável. Ao usar uma camada oculta, cada neurônio passa a representar uma operação lógica intermediária, como OR e AND. A combinação dessas ativações na camada de saída permite representar o comportamento não linear do XOR.
python
import torch
import torch.nn as nn
# entradas
entrada1 = 1
entrada2 = 1
# vieses
vies1 = torch.tensor([-0.5]) # OR
vies2 = torch.tensor([-1.5]) # AND
vies3 = torch.tensor([-0.5]) # saída
# pesos
peso1 = torch.tensor([1.0, 1.0]) # OR
peso2 = torch.tensor([1.0, 1.0]) # AND
peso3 = torch.tensor([1.0, -2.0]) # OR - AND
relu = nn.ReLU()
sig = nn.Sigmoid()
# camada oculta
oculta1 = relu(entrada1*peso1[0] + entrada2*peso1[1] + vies1) # OR
oculta2 = relu(entrada1*peso2[0] + entrada2*peso2[1] + vies2) # AND
# saída XOR
saida = sig(oculta1*peso3[0] + oculta2*peso3[1] + vies3)
print(saida)