Problema XOR (XOR problem): o que é e por que o perceptron não resolve

Letra

Atualizado em 19/10/2026: texto refeito: definição direta do problema XOR, tabela da operação XOR, por que um perceptron de uma camada não resolve, o que o livro Perceptrons (1969) mostrou de fato e como uma camada oculta resolve, com fontes; saíram parágrafos repetidos e sem fonte. Como conferimos os dados

O problema XOR (em inglês XOR problem) é o exemplo clássico de uma tarefa que um perceptron de uma camada só não consegue aprender: separar as saídas da operação lógica XOR (ou exclusivo). Ele mostra o limite dos modelos lineares e por que redes com camada oculta são necessárias.

O que é a operação XOR

XOR devolve 1 (verdadeiro) quando as duas entradas são diferentes e 0 quando são iguais:

Entrada AEntrada BA XOR B
000
011
101
110

Por que é um problema

Ponha os quatro casos num plano: os pontos (0,1) e (1,0) têm saída 1; (0,0) e (1,1) têm saída 0. Não existe uma única linha reta que deixe os dois “1” de um lado e os dois “0” do outro. Em termos técnicos, o XOR não é linearmente separável. Um perceptron de uma camada, assim como a regressão logística sem transformar as entradas, só traça uma fronteira de decisão reta, então erra pelo menos um dos quatro casos.

Perceptrons (1969) e o mito do “inverno”

Marvin Minsky e Seymour Papert publicaram em 1969 o livro Perceptrons, que prova limites dos perceptrons de uma camada; o XOR virou o exemplo mais citado. O livro costuma ser lembrado como o responsável por afastar a pesquisa de redes neurais nos anos 1970, mas isso é discutido: os próprios autores já sabiam que redes com mais camadas conseguem computar XOR, e o limite provado vale para o perceptron simples, não para redes neurais em geral.

Como o XOR é resolvido

  • Camada oculta: um perceptron multicamadas com dois neurônios ocultos já resolve. Cada neurônio oculto traça uma reta (por exemplo, um faz “A OU B” e outro “A E B”), e a saída combina as duas: XOR = (A OU B) e não (A E B).
  • Treino: para ajustar os pesos de uma rede com camada oculta usa-se um algoritmo como a retropropagação (backpropagation), popularizada em 1986 por Rumelhart, Hinton e Williams.
  • Transformar as entradas: acrescentar uma variável como A×B, ou usar métodos de kernel (como no SVM), torna o problema separável por um modelo linear.

Termos relacionados

Fontes (conferidas em 14/10/2026): Wikipédia (inglês): Perceptron · Wikipédia (inglês): Perceptrons (livro) · Rumelhart, Hinton e Williams (1986), Learning representations by back-propagating errors, Nature

← Todos os termos do ABC da IA