Study guide

Aula 1: o neurônio e o perceptron

  • WhenSexta, 25/09/2026, das 12h às 14h
  • WhereSegundo andar do PPEE

Material de estudo para acompanhar os slides. Sexta, 25/09/2026, das 12h às 14h, no segundo andar do PPEE.

O objetivo da aula é saber dizer o que é um neurônio artificial, calcular à mão a saída dele, aplicar a regra do perceptron e explicar por que um neurônio sozinho não resolve o XOR.

Os tópicos

Sem horário marcado: o que não couber hoje entra na aula 2.

  1. Revisão da aula de quarta
  2. Como o curso funciona
  3. Aprender com dados
  4. O neurônio artificial
  5. O perceptron e o XOR
  6. O código
  7. Fechamento

Notação

Os símbolos dos slides, na ordem em que aparecem. Cada um também é definido na nota do slide em que aparece primeiro.

Símbolo Lê-se Quer dizer Slide
x⃗, w⃗\vec{x},\ \vec{w} x, w, com a seta em cima vetor: a lista das entradas e a dos pesos; vetor vem com a seta em cima, e número solto, em itálico 12
x1, wkx_1,\ w_k x um, w k um componente do vetor; o índice embaixo diz a posição na lista 12
nn n quantas entradas o neurônio tem 12
…, ⋯\ldots,\ \cdots e assim por diante a lista ou a soma continua no mesmo padrão 12
∈\in pertence a está dentro do conjunto 12
R, Rn\mathbb{R},\ \mathbb{R}^n R, R elevado a n os números reais; as listas de n números reais 12
w⃗⋅x⃗\vec{w}\cdot\vec{x} w escalar x produto escalar: multiplica termo a termo e soma; entre dois números, o ponto é a multiplicação 12
∑k=1n\sum_{k=1}^{n} somatório de k igual a 1 até n soma o termo que vem depois, para k = 1, 2, …, n 12
zz z a soma ponderada, w⃗\vec{w} · x⃗\vec{x} + b 12
bb b o viés, que faz o papel do limiar 12
yy y a saída do neurônio, 0 ou 1 13
degrau⁡\operatorname{degrau} degrau a função que dá 1 se z ≥ 0 e 0 se z < 0 13
{\lbrace chave definição por casos: vale a linha cuja condição é verdadeira 13
≥, ≤, >, <\geq,\ \leq,\ >,\ < maior ou igual, menor ou igual, maior, menor comparação entre dois números 13
∧\wedge e o E lógico: 1 só quando as duas entradas são 1 14
∨\vee ou o OU lógico: 1 quando pelo menos uma entrada é 1 14
⊕\oplus ou exclusivo, xor o XOR: 1 quando só uma entrada é 1; a soma que esquece o vai-um 14
↓\downarrow seta para baixo a troca das letras pelos números, na tabela do E 15
⇒\Rightarrow então, implica se o lado esquerdo vale, o direito também vale 15
⇔\Leftrightarrow se e somente se os dois lados valem juntos: um vale exatamente quando o outro vale 16
⊥\perp perpendicular a produto escalar zero; no plano, o ângulo reto do desenho 16
∃\exists existe há pelo menos um 16
∀\forall para todo vale para cada um 16
t, (x⃗,t)t,\ (\vec{x}, t) t; o exemplo x, t a resposta certa, o alvo, do inglês target; um exemplo rotulado, a entrada e a resposta certa 16
η\eta eta a taxa de aprendizado, o tamanho de cada correção 18
←\leftarrow passa a valer, recebe o valor da esquerda passa a ser o da direita 18
≠\neq diferente de os dois lados não são iguais 20
↦\mapsto leva a (0, 0) ↦ 0: a entrada (0, 0) tem de dar 0 21
(1), (2)(1),\ (2) condição um, condição dois rótulos das condições da prova, para citar cada uma 21

No Python, os mesmos objetos têm outros sinais:

  • &, | e ^: E, OU e XOR bit a bit, sobre inteiros; com 0 e 1, dão as tabelas-verdade, e com arrays do NumPy valem elemento a elemento.
  • and e or: E e OU com True e False. Não existe xor; com True e False, o != faz o papel dele.
  • **: potência. O ^ não é potência: 2 ^ 3 dá 1, e 2 ** 3 dá 8.
  • @: produto escalar de arrays do NumPy, como em x @ w no perceptron.py.

1. Revisão da aula de quarta

Slide 2: Revisão

A revisão retoma a apresentação de quarta, de memória.

Um modelo é uma função com números que se podem ajustar, os parâmetros; a reta y = a·x + b tem dois, a e b. Treinar é ajustar os parâmetros até a função acertar os exemplos. A função de perda mede o erro com um número só, grande quando a resposta é ruim e pequeno quando é boa; treinar é diminuir a perda.

Regressão tem resposta numérica, como a energia de um pulso; classificação tem resposta em categoria, como é um 7 ou não é.

A matemática das redes é de 1986, mas elas só deram certo depois de 2012, quando se juntaram dados em quantidade e computador rápido.

2. Como o curso funciona

Slide 1: A capa

O Limiar é o curso de redes neurais do SIENA, o projeto do NIPS-CERN que leva a rede de reconstrução de energia do TileCal para outros calorímetros. Esta primeira aula trata do neurônio artificial, da regra que o faz aprender e do limite que um neurônio sozinho não passa, o XOR.

A imagem é o Buddhabrot. Sorteiam-se muitos pontos c do plano complexo e repete-se a conta z → z² + c, começando em z = 0. Cada ponto cuja conta foge para o infinito deixa o rastro do caminho que percorreu, e onde passam muitos caminhos a imagem fica clara. A técnica foi descrita por Melinda Green em 1993. É um fractal, mas não é o do projeto, que só aparece em dezembro.

Slide 3: O nome do curso

Limiar vem do latim liminaris, relativo à soleira da porta, segundo o Dicionário Priberam: é o ponto de passagem de um lado para o outro e também o começo de alguma coisa.

O nome junta três ideias do curso. O neurônio artificial dispara quando a soma das entradas passa de um limiar, e essa é a conta de hoje. O projeto de dezembro desenha o limiar entre o treino que converge, em que o erro cai, e o que diverge, em que o erro explode. E, para quem acabou de entrar na graduação, o curso é a porta de entrada na pesquisa.

Slide 4: O projeto de dezembro

O projeto final vem do artigo de Jascha Sohl-Dickstein, de 2024, "The boundary of neural network trainability is fractal". A mesma rede pequena é treinada milhares de vezes, cada vez com um par de taxas de aprendizado, uma para cada camada. A taxa de aprendizado é o tamanho de cada correção dos pesos. Cada par vira um ponto de um mapa, pintado conforme o treino convergiu ou divergiu, e no artigo a fronteira entre as duas regiões é fractal.

O artigo usou dados aleatórios. O projeto usa eventos reais de dois múons registrados pelo CMS em 2010, públicos no portal de dados abertos do CERN. O múon é uma partícula elementar parecida com o elétron: a mesma carga e cerca de 207 vezes a massa. O nome do CMS, sigla de Compact Muon Solenoid, junta três coisas: o detector é relativamente compacto, detecta múons e é construído em volta de um solenoide, uma bobina que gera campo magnético quando passa corrente. A figura do projeto fica fora desta aula de propósito.

A foto ao lado do CMS mostra múons de raio cósmico, criados quando partículas vindas do espaço batem na atmosfera, numa câmara de nuvens: uma caixa fechada com vapor de água ou de álcool a ponto de condensar. A partícula carregada arranca elétrons das moléculas do gás pelo caminho, e o vapor condensa em gotículas em volta desses íons, as moléculas que perderam elétrons; o rastro fica visível por alguns segundos. O físico escocês Charles Thomson Rees Wilson inventou a câmara no começo do século 20, e foi com câmaras assim que Carl Anderson descobriu o pósitron, o elétron de carga positiva, em 1932, e, com Seth Neddermeyer, o múon, em 1936.

Na foto, uma placa de metal corta a câmara ao meio. Pela legenda da Wikipedia, à esquerda o múon cruza a placa quase sem desvio; à direita, perde energia na placa e sai com o rastro mais curvo, porque a câmara fica num campo magnético. Pela massa maior, o múon freia muito menos que o elétron e penetra fundo na matéria: os múons de raio cósmico chegam ao chão e até ao fundo de minas. Por isso as câmaras de múons do CMS ficam na parte de fora do detector, onde o múon é a única partícula que costuma deixar um sinal claro. Pelo aspecto, a foto é o escaneamento de uma impressão antiga; o autor não foi identificado.

Fractal é uma figura com detalhe em qualquer escala. O nome vem do latim fractus, quebrado, e foi criado por Benoit Mandelbrot em 1975.

Slide 5: Como é cada semana

Toda semana segue o mesmo desenho. A aula começa com 15 minutos de revisão falada da aula anterior, feita pela turma, de memória. Depois vem o seminário, em duas partes: o estudo da semana, em vídeo ou texto, e o código da entrega, explicado linha a linha por quem o escreveu. Um ou dois apresentam, e cada um dos demais traz uma pergunta.

A entrega vai para o GitHub de cada um até a sexta: o código e uma pergunta sobre o estudo. O Claude pode ajudar a escrever o código, e a explicação linha a linha mostra se quem entregou entende o que entregou. Conteúdo e avisos vão pelo WhatsApp.

O trabalho final é dividido na turma, como se trabalha no CERN, onde os artigos do ATLAS saem assinados por milhares de pessoas.

3. Aprender com dados

Slide 6: Como reconhecer um 7

A pergunta mostra por que se aprende com exemplos. Escrever regras para reconhecer um 7 parece fácil, um traço em cima e um traço inclinado, mas cada regra quebra: o 7 cortado no meio, o 7 torto, o 7 que parece um 1.

A figura traz dígitos do MNIST, um conjunto de 70 mil dígitos escritos à mão que volta na aula 6: o mesmo número sai diferente de uma pessoa para outra. Em vez de escrever a regra, mostram-se milhares de exemplos com a resposta certa, e a máquina ajusta os próprios números até acertar.

Slide 7: Aprender a partir de exemplos

Um exemplo rotulado é um par: a entrada, como a imagem de um dígito, e a resposta certa, o rótulo, como 7.

Aprendizado supervisionado é aprender a partir desses pares: a máquina responde, compara com o rótulo e se corrige. O nome vem daí: cada exemplo traz a resposta, como uma prova que já vem com o gabarito.

Um padrão é uma regularidade que se repete nos dados, como o traço inclinado de quase todo 7. A rede neural é uma máquina de achar padrões, e o que muda de uma área para outra são os dados.

Slide 8: A mesma ferramenta, dados diferentes

Três áreas, a mesma ferramenta.

Agricultura: Mohanty, Hughes e Salathé, em 2016, treinaram uma rede com 54.306 fotos de folhas de 14 culturas, sadias ou com uma de 26 doenças, 38 classes ao todo. Ela acertou 99,35% das fotos de teste.

Astronomia: o telescópio espacial Kepler mediu o brilho de milhares de estrelas. Quando um planeta passa na frente da estrela, o brilho cai um pouco. Shallue e Vanderburg, em 2018, treinaram uma rede para reconhecer essa queda, e ela achou dois planetas novos. Um deles, Kepler-90 i, é o oitavo da estrela Kepler-90, o mesmo número de planetas do Sistema Solar.

Física: aqui no NIPS-CERN, Diogo, Bernardo, Gustavo e Luciano mostraram em 2026 que redes convolucionais estimam a amplitude do pulso, proporcional à energia, em sinais simulados de calorímetro, errando de modo geral menos que o filtro ótimo, o método usado hoje.

Slide 9: Generalização

O slide anterior terminou em 99,35%. Este começa por uma pergunta: o que acontece quando a mesma rede vê fotos de outro tipo?

As 54.306 fotos de treino, do banco PlantVillage, foram tiradas em condições controladas: uma folha só, virada para cima, sobre fundo homogêneo. Mohanty, Hughes e Salathé buscaram então fotos de folhas doentes na internet, no Bing e no banco IPM Images, conferiram uma a uma e montaram dois conjuntos pequenos, de 121 e de 119 imagens, tiradas em condições diferentes das do treino. Pela descrição das fotos de treino, a diferença está no fundo, na luz e no enquadramento; isso é dedução, o artigo só diz condições diferentes. A melhor rede acertou 31,40% no primeiro conjunto e 31,69% no segundo: pouco mais de um acerto em três, com 38 classes.

A pergunta para a turma: por que a mesma rede caiu de 99% para 31%? A resposta que se quer ouvir: a rede aprendeu o tipo de foto junto com a doença, o fundo, a luz, o enquadramento, e quando o tipo de foto mudou, o que ela aprendeu deixou de servir. Os autores dizem que mais dados, e mais variados, devem bastar para o acerto subir.

Generalização é acertar em dado que a rede nunca viu. Os 99,35% já eram em fotos que a rede não viu no treino, separadas para o teste, mas do mesmo tipo; os 31% são em fotos de outro tipo. Generalizar bem dentro do tipo de dado do treino e mal fora dele é o comportamento comum, e por isso a origem do dado de teste importa tanto quanto o número que sai.

É o problema do SIENA: a rede que estima a energia no TileCal acerta nas condições em que foi treinada e erra quando elas mudam, por exemplo quando muda a célula ou o empilhamento, os sinais de colisões vizinhas que se somam ao pulso. Levar a rede a outras condições e a outros calorímetros é o projeto, e é o motivo de o curso começar pelo neurônio: saber o que a rede aprende, e não só quanto ela acerta.

4. O neurônio artificial

Slide 10: De onde vem o neurônio artificial

Quatro datas contam a história.

1943: Warren McCulloch, que estudava o cérebro, e Walter Pitts, que estudava lógica, publicaram o neurônio de conta, uma soma ponderada das entradas com disparo acima de um limiar. Os pesos eram fixos, e aquele neurônio não aprendia.

1958: Frank Rosenblatt, psicólogo, juntou ao neurônio uma regra que corrige os pesos a cada erro: o perceptron. Rosenblatt viveu de 1928 a 1971 e morreu no dia em que fazia 43 anos, num acidente de barco.

1969: Marvin Minsky e Seymour Papert publicaram o livro Perceptrons, que mostra com rigor o que um neurônio sozinho não consegue fazer. O livro costuma ser apontado como uma das causas do encolhimento da pesquisa em redes neurais nos anos 1970.

1986: David Rumelhart, Geoffrey Hinton e Ronald Williams mostraram, na Nature, como treinar redes de várias camadas: a retropropagação, assunto da aula 5. Hinton dividiu o Nobel de Física de 2024 com John Hopfield, por descobertas que permitem o aprendizado de máquina com redes neurais artificiais.

Slide 11: O neurônio de verdade

O neurônio de verdade recebe sinais de outras células pelos dendritos, os ramos do desenho. Quando o estímulo acumulado leva a membrana ao limiar, a célula dispara um sinal, que corre pelo axônio até as células seguintes. O disparo é tudo ou nada: acontece por inteiro ou não acontece.

O desenho é de Santiago Ramón y Cajal, de 1899, e mostra células de Purkinje e células granulares do cerebelo de pombo.

O neurônio artificial copia só a ideia de somar e disparar acima de um limiar; não é um modelo fiel do cérebro. A palavra neurônio vem do grego neûron, nervo, e foi usada para a célula pelo anatomista Wilhelm Waldeyer, em 1891.

Slide 12: Vetor, produto escalar e somatório

Vetor, no curso, é uma lista ordenada de n números reais. As entradas do neurônio formam o vetor x⃗\vec{x} = (x₁, x₂, …, xₙ), e os pesos, o vetor w⃗\vec{w} = (w₁, w₂, …, wₙ). Nos slides, vetor vem com uma seta em cima e número solto em itálico; o índice embaixo diz a posição na lista, e x₁ é o primeiro componente de x⃗\vec{x}. O ∈ ℝⁿ se lê pertence a ℝⁿ: ℝ é o conjunto dos números reais, e ℝⁿ, o das listas de n números reais.

A palavra tem outros sentidos, e a definição do curso é uma escolha. Na física, vetor é uma seta, definida pelo tamanho e pela direção, como a velocidade. Na matemática em geral, é qualquer coisa que se possa somar e multiplicar por um número seguindo algumas regras, como setas, polinômios e funções. Na programação, a palavra costuma nomear uma sequência ordenada de elementos de qualquer tipo, como o std::vector do C++. A lista de números é o ponto de vista que serve às redes neurais, e um array de uma dimensão do NumPy guarda exatamente isso. O capítulo 1 da série de álgebra linear do 3Blue1Brown, "Vectors, what even are they?", compara os três pontos de vista.

O produto escalar de dois vetores do mesmo tamanho multiplica termo a termo e soma: w⃗\vec{w} · x⃗\vec{x} = w₁x₁ + w₂x₂ + ⋯ + wₙxₙ. Os três pontos querem dizer que a soma continua no mesmo padrão até o termo n. O resultado é um número só, e não um vetor; número solto, em álgebra linear, chama-se escalar, daí o nome.

O somatório escreve a mesma soma curta. Σ, a letra grega sigma maiúscula, de soma, com k = 1 embaixo e n em cima, manda somar o termo wₖxₖ para k = 1, 2, até n. A letra k é só um contador: trocar k por j não muda nada.

Com isso, o neurônio cabe numa linha: z = w⃗\vec{w} · x⃗\vec{x} + b, um produto escalar mais o viés. O exemplo com números fica na tabela do E, dois slides adiante.

Na aula 3, uma matriz junta os vetores de pesos de vários neurônios, um por linha, e uma camada inteira vira uma conta só.

Slide 13: Um neurônio, três passos

O neurônio faz três passos.

Pesar: cada entrada é multiplicada pelo seu peso, w₁x₁ e w₂x₂. O peso diz quanto a entrada importa e em que sentido; peso negativo puxa a soma para baixo.

Somar: os produtos são somados, junto com o viés b, e o resultado é z = w₁x₁ + w₂x₂ + b.

Disparar, no neurônio artificial, é dar saída 1; não disparar é dar saída 0. Quem decide é o degrau: y = degrau(z), que vale 1 se z ≥ 0 e 0 se z < 0; ≥ se lê maior ou igual. A palavra vem do neurônio de verdade, que dispara o sinal pelo axônio ou fica quieto; aqui é só o nome da saída 1, e é nesse sentido que os slides seguintes dizem que uma entrada dispara ou que um lado da reta dispara. A chave junta os dois casos numa definição só: vale a linha cuja condição é verdadeira.

O viés faz o papel do limiar. Disparar quando w₁x₁ + w₂x₂ passa de um limiar é o mesmo que disparar quando w₁x₁ + w₂x₂ + b passa de zero, com b igual a menos o limiar. No desenho, a terceira bolinha tem um 1 dentro: é uma entrada que vale sempre 1, e b é o peso da linha dela, não o valor dela. Como b · 1 = b, o viés entra na soma como qualquer outro produto peso vezes entrada, e a conta z = w₁x₁ + w₂x₂ + b não muda. É o jeito clássico de desenhar, e vale para qualquer b, inclusive o −1,5 da tabela do E.

Cada equação dos slides traz ao lado, em letra miúda, a frase que se diz em voz alta, com as letras e os símbolos escritos como são.

A definição exatamente em z = 0 importa: ali o degrau dá 1, e é isso que decide a primeira linha da tabela das épocas.

Slide 14: E, OU e XOR: as tabelas-verdade

Uma tabela-verdade lista a saída de uma função lógica para cada combinação das entradas. Com duas entradas que valem 0 ou 1, são quatro combinações, uma por linha.

O E, x₁ ∧ x₂, vale 1 só quando as duas entradas são 1. O OU, x₁ ∨ x₂, vale 1 quando pelo menos uma é 1. O XOR, x₁ ⊕ x₂, o ou exclusivo, vale 1 quando só uma é 1, isto é, quando as duas são diferentes. O XOR é o OU sem a última linha: em (1, 1), o OU dá 1 e o XOR dá 0, a célula em laranja. O ⊕ é um mais dentro de um círculo, e faz sentido: o XOR é a soma que esquece o vai-um. 1 + 1 = 10 em binário, e 1 ⊕ 1 = 0, o último algarismo.

Em Python, &, | e ^ fazem essas contas bit a bit, algarismo binário por algarismo binário, sobre números inteiros. Com 0 e 1, o resultado é exatamente a tabela, e com arrays do NumPy a conta vale elemento a elemento: se x1 e x2 são as colunas das entradas, x1 & x2 dá os alvos do E, e é assim que o perceptron.py monta os alvos. As palavras and e or fazem a mesma lógica com True e False; não existe a palavra xor, e com True e False o != faz o papel do XOR.

Um erro comum: em Python, ^ não é potência. 2 ^ 3 dá 1, porque 2 é 10 e 3 é 11 em binário, e os dois só diferem no último algarismo; a potência é 2 ** 3, que dá 8.

Slide 15: Um neurônio que calcula o E

Com w₁ = w₂ = 1 e b = −1,5, a conta geral z = w₁x₁ + w₂x₂ + b vira z = x₁ + x₂ − 1,5. A seta para baixo no slide é essa troca: os números entram no lugar das letras.

Na entrada (1, 0), w⃗\vec{w} · x⃗\vec{x} = 1 · 1 + 1 · 0 = 1, e z = 1 − 1,5 = −0,5; como −0,5 < 0, y = 0. O ⇒ se lê então, ou implica. Na entrada (1, 1), z = 1 + 1 − 1,5 = 0,5 ≥ 0, e y = 1. As outras entradas dão −1,5 ou −0,5. Só (1, 1) dispara: a saída é 1 só quando as duas entradas são 1, e esse neurônio calcula o E, a coluna x₁ ∧ x₂ da tabela-verdade.

Para o OU, a entrada (0, 0) precisa dar z < 0, o que pede b < 0, e as entradas (0, 1) e (1, 0) precisam dar z ≥ 0, o que pede 1 + b ≥ 0, isto é, b ≥ −1. Qualquer b com −1 ≤ b < 0 serve, por exemplo −0,5.

Com b = +0,5, até (0, 0) dá z positivo: o neurônio dispara sempre.

Slide 16: Cada neurônio desenha uma reta

Com duas entradas, cada exemplo é um ponto do plano (x₁, x₂). Os pontos em que z = 0 formam uma reta; no neurônio do E, z = 0 ⇔ x₁ + x₂ = 1,5. O ⇔ se lê se e somente se: as duas igualdades valem juntas, uma exatamente quando a outra vale.

De um lado da reta, z > 0 e o neurônio dispara: em (1, 1), z = 0,5. Do outro, z < 0: em (1, 0), z = −0,5. Mudar os pesos gira a reta; mudar o viés a desloca.

O vetor w⃗\vec{w} guarda o que o neurônio sabe: cada componente diz quanto a entrada correspondente conta e em que sentido, e o conjunto deles dá a direção da reta, enquanto b dá a posição. Aprender, na regra do perceptron, é mexer em w⃗\vec{w} e em b.

O vetor w⃗\vec{w} = (1, 1) é perpendicular à reta, o ⊥ do slide. Perpendicular, no curso, quer dizer produto escalar zero; no plano, isso é o ângulo reto do desenho, e a figura deixa conferir. A conta do slide: (1,5; 0) e (0; 1,5) são dois pontos da reta, e andar de um ao outro é o deslocamento (−1,5; 1,5). O produto escalar com w⃗\vec{w} dá 1 · (−1,5) + 1 · 1,5 = 0. Isso vale para qualquer deslocamento sobre a reta, e para qualquer neurônio: se p⃗\vec{p} e q⃗\vec{q} estão na reta, w⃗\vec{w} · p⃗\vec{p} + b = 0 e w⃗\vec{w} · q⃗\vec{q} + b = 0, e subtraindo uma da outra sobra w⃗\vec{w} · (p⃗\vec{p} − q⃗\vec{q}) = 0. Por isso w⃗\vec{w} é sempre perpendicular à reta z = 0, quaisquer que sejam os pesos.

E w⃗\vec{w} aponta para o lado que dispara: saindo de um ponto p⃗\vec{p} da reta e andando w⃗\vec{w}, chega-se a p⃗\vec{p} + w⃗\vec{w}, onde z = w⃗\vec{w} · (p⃗\vec{p} + w⃗\vec{w}) + b = (w⃗\vec{w} · p⃗\vec{p} + b) + w⃗\vec{w} · w⃗\vec{w} = 0 + 2 = 2 > 0. Na direção de w⃗\vec{w}, z cresce o mais depressa possível; é a ideia do gradiente, que chega na aula 2.

Um conjunto de exemplos é linearmente separável quando existe uma reta que deixa as respostas 1 de um lado e as respostas 0 do outro. Em símbolos, ∃ w⃗\vec{w}, b ∀ (x⃗\vec{x}, t): degrau(w⃗\vec{w} · x⃗\vec{x} + b) = t, que se lê existem w⃗\vec{w} e b tais que, para todo exemplo (x⃗\vec{x}, t), o neurônio responde t. ∃ é existe, ∀ é para todo, e (x⃗\vec{x}, t) é um exemplo rotulado: a entrada x⃗\vec{x} e a resposta certa t, do inglês target, alvo. Com mais entradas, a reta vira um plano e, com muitas, um hiperplano; a definição não muda.

5. O perceptron e o XOR

Slide 17: 1958: o perceptron de Rosenblatt

Em 1958, Frank Rosenblatt publicou na Psychological Review "The perceptron: a probabilistic model for information storage and organization in the brain". O perceptron é o neurônio de McCulloch e Pitts com uma regra que corrige os pesos a cada erro: o primeiro neurônio que aprende. O nome junta percepto, aquilo que se percebe, ao sufixo grego -tron, de instrumento, comum em nomes de máquinas desde o cíclotron.

A máquina, o Mark I Perceptron, foi construída no Cornell Aeronautical Laboratory, em Buffalo, com verba da Marinha dos Estados Unidos. Via por uma matriz de 20 por 20 fotocélulas, 400 pixels, e guardava os pesos em potenciômetros girados por motores. Hoje está no Smithsonian.

Em 8 de julho de 1958, o New York Times prometeu uma máquina que andaria, falaria e teria consciência da própria existência. O XOR, mais adiante, mostra a distância entre a promessa e a máquina. Na legenda da foto que a Marinha divulgou em 1960, treinado com um tipo de letra, o Mark I acertava 85% das vezes com letras de outro tipo: generalização de novo.

Slide 18: A regra do perceptron

A regra do perceptron corrige os pesos a cada exemplo errado: w⃗\vec{w} ← w⃗\vec{w} + η (t − y) x⃗\vec{x} e b ← b + η (t − y). Aqui t é a resposta certa; y é a saída do neurônio; η, a letra grega eta, é a taxa de aprendizado; e a seta ← quer dizer que o valor da esquerda passa a ser o da direita.

Se o neurônio acertou, t − y = 0 e nada muda. Se a saída foi 0 e devia ser 1, t − y = +1, e w⃗\vec{w} ← w⃗\vec{w} + η x⃗\vec{x}: os pesos crescem na direção da entrada, o que aumenta z para aquela entrada. Se foi 1 e devia ser 0, t − y = −1, e w⃗\vec{w} ← w⃗\vec{w} − η x⃗\vec{x}: os pesos diminuem.

No exemplo, com η = 1, w⃗\vec{w} = (0, 0) e b = −1, a entrada (1, 1) deu y = 0 quando devia dar 1: t − y = 1, e a correção leva w⃗\vec{w} a (1, 1) e b a 0. É a quarta linha da tabela das épocas.

A taxa de aprendizado é o tamanho da correção. Com os pesos começando em zero, trocar η = 1 por η = 0,1 faz as mesmas correções, dez vezes menores, e a reta final é a mesma, porque o degrau só olha o sinal de z. A taxa passa a importar na aula 2, com o gradiente, e é ela que vira eixo no projeto de dezembro.

Slide 19: Duas épocas do E, à mão

Uma época é uma passada por todos os exemplos. A tabela refaz as duas primeiras épocas do E, com pesos e viés começando em zero e η = 1; é a mesma tabela que o perceptron.py imprime.

Na primeira linha, z = 0 e o degrau dá 1, porque a definição diz z ≥ 0; como a resposta certa era 0, a regra baixa o viés para −1. Os erros, em laranja, são as únicas linhas em que os pesos mudam. O programa continua e acerta os quatro exemplos na época 6, com w⃗\vec{w} = (2, 1) e b = −3.

Um teorema garante que, se os exemplos forem linearmente separáveis, a regra acha uma reta separadora depois de um número finito de correções. Fica como caixa-preta: o resultado entra na aula, a prova não.

Slide 20: Nenhuma reta separa o XOR

O XOR, o ou exclusivo, vale 1 quando as duas entradas são diferentes: x₁ ⊕ x₂ = 1 ⇔ x₁ ≠ x₂, em que ≠ se lê diferente de. No plano, os pontos de resposta 1, (0, 1) e (1, 0), ficam numa diagonal, e os de resposta 0, (0, 0) e (1, 1), na outra: nenhuma reta separa as duas diagonais.

Como o conjunto não é linearmente separável, o teorema não vale, e a regra do perceptron corrige os pesos para sempre sem acertar; no código, os pesos voltam a (−1, 0), com b = 0, a cada época.

A saída é empilhar neurônios numa rede neural: neurônios em camadas, em que a saída de uns é a entrada de outros. Na aula 3, uma rede com dois neurônios na camada do meio resolve o XOR com pesos escolhidos à mão; na aula 5, a retropropagação, de 1986, acha esses pesos sozinha.

Slide 21: A prova

A prova é por contradição: supõe-se que existe um neurônio que acerta o XOR, isto é, degrau(w₁x₁ + w₂x₂ + b) = x₁ ⊕ x₂ nas quatro entradas, e chega-se a uma conta impossível. A seta ↦ se lê leva a: (0, 0) ↦ 0 quer dizer que a entrada (0, 0) tem de dar 0.

Cada entrada impõe uma condição aos pesos. (1): a entrada (0, 0) tem de dar 0, então z = b < 0. (2): a entrada (1, 1) tem de dar 0, então w₁ + w₂ + b < 0. (3) e (4): as entradas (0, 1) e (1, 0) têm de dar 1, então w₂ + b ≥ 0 e w₁ + b ≥ 0.

Somando (3) e (4), w₁ + w₂ + 2b ≥ 0, isto é, w₁ + w₂ + b ≥ −b. Por (1), b < 0, então −b > 0, e w₁ + w₂ + b > 0, o contrário de (2).

Nenhum valor de pesos escapa: um neurônio sozinho não calcula o XOR.

6. O código

Slide 22: O código

O perceptron.py treina o perceptron nas três funções e desenha o resultado. Os alvos do E, do OU e do XOR saem dos operadores &, | e ^ do Python, os da tabela-verdade. No E e no OU, ele acha uma reta que separa, na época 6 e na época 4; a região azul é onde o neurônio dispara.

Alguns pontos ficam exatamente sobre a reta. Neles z = 0, e o degrau dá 1, então eles disparam, que é o certo para aquelas entradas. No XOR, nenhuma reta separa, e os pesos voltam ao mesmo valor a cada época.

O arquivo não vai para a turma: escrever o próprio perceptron é a entrega da semana, e explicá-lo linha a linha é parte do seminário da aula 2.

7. Fechamento

Slide 23: Até a próxima sexta

Para a próxima sexta, 02/10, o estudo são três vídeos do 3Blue1Brown, nesta ordem: o capítulo 1 da série sobre redes neurais, que mostra uma rede que reconhece dígitos; o capítulo 2 da série sobre cálculo, sobre a derivada; e o capítulo 2 da série sobre redes neurais, sobre o gradiente descendente, que usa a derivada. Os vídeos têm legenda em português.

A entrega é o ambiente instalado pelo guia, uma conta no GitHub, um perceptron em NumPy que aprende E e OU e imprime a tabela das épocas no formato do slide, para a comparação ser direta, e uma pergunta sobre os vídeos. Sem pressa: quem não terminar entrega o que fez, e o que conta é explicar cada linha do que entregou.

O seminário da aula 2 tem o perceptron de quem apresenta, explicado linha a linha, e três perguntas sobre os vídeos. No vídeo, cada neurônio guarda um número entre 0 e 1, e não só 0 ou 1: uma saída contínua permite corrigir os pesos aos poucos, pelo gradiente, o assunto da aula 2. O que o vídeo chama de custo é o que aqui se chama de perda. E a derivada num instante parece um paradoxo porque variação pede dois instantes; o vídeo resolve olhando o que acontece quando o intervalo entre eles encolhe.

Perguntas que podem aparecer

  • O neurônio artificial funciona como o do cérebro? Não. O do cérebro inspirou a ideia, mas o artificial é só uma conta: soma ponderada e uma função depois.
  • Por que o degrau, e não outra função? Foi a escolha de McCulloch e Pitts, que pensavam em disparar ou não disparar. O degrau tem um defeito: é plano em quase todo lugar, então não diz em que direção corrigir os pesos. Por isso as redes modernas usam funções suaves, que aparecem na aula 2.
  • Para que serve o viés? Sem ele, a reta passa sempre pela origem, o ponto (0, 0). O viés deixa a reta ir para qualquer lugar.
  • Por que w⃗\vec{w} é perpendicular à reta? Ao longo da reta, z não muda, então o produto escalar de w⃗\vec{w} com qualquer deslocamento sobre ela é zero, e produto escalar zero é o que perpendicular quer dizer. E aponta para o lado que dispara porque andar w⃗\vec{w} a partir da reta soma w⃗\vec{w} · w⃗\vec{w} > 0 a z.
  • E se a taxa for 0,1 em vez de 1? Com pesos começando em zero, as correções são as mesmas, dez vezes menores, e a reta final é a mesma.
  • O perceptron sempre para? Só quando os exemplos são linearmente separáveis; no XOR, corrige para sempre.

Para estudar

O estudo da turma, que é também o seu:

Além dele, para preparar a aula:

  • Michael Nielsen, 2015, Neural Networks and Deep Learning, capítulo 1, as seções "Perceptrons" e "Sigmoid neurons": neuralnetworksanddeeplearning.com/chap1.html. O perceptron e a passagem para o neurônio sigmoide, que abre a aula 2.
  • 3Blue1Brown, série sobre álgebra linear, capítulo 9, "Dot products and duality", youtube.com/watch?v=LyGKycYT2v0. A geometria do produto escalar, que explica por que o vetor w⃗\vec{w} é perpendicular à reta.
  • Wikipedia, o verbete "Perceptron", en.wikipedia.org/wiki/Perceptron. A regra, o teorema de convergência, o Mark I e a história, num lugar só.

Fontes dos fatos citados

Só para conferência; o estudo é a lista de cima.

  • McCulloch e Pitts, 1943, "A logical calculus of the ideas immanent in nervous activity", Bulletin of Mathematical Biophysics 5(4):115-133.
  • Rosenblatt, 1958, "The perceptron: a probabilistic model for information storage and organization in the brain", Psychological Review 65(6):386-408; Rosenblatt, 1961, Principles of Neurodynamics, sobre o Mark I; Bishop, 2006, Pattern Recognition and Machine Learning, página 196, sobre as 400 fotocélulas; verbete "Frank Rosenblatt" da Wikipedia, sobre as datas.
  • "New Navy device learns by doing", The New York Times, 8/7/1958, página 25; foto 330-PSA-80-60 da Marinha dos Estados Unidos, divulgada em 24/6/1960, com a legenda dos 85%.
  • Minsky e Papert, 1969, Perceptrons, MIT Press; verbete "Perceptrons (book)" da Wikipedia, sobre o encolhimento da pesquisa.
  • Mohanty, Hughes e Salathé, 2016, "Using deep learning for image-based plant disease detection", Frontiers in Plant Science 7:1419.
  • Shallue e Vanderburg, 2018, "Identifying exoplanets with deep learning", The Astronomical Journal 155(2):94.
  • Diogo Cardinot, Bernardo Peralva, Gustavo Libotte e Luciano Manhães de Andrade Filho, 2026, "Convolutional neural networks for signal reconstruction in high-energy calorimetry", Applied Sciences 16(13):6414.
  • Desenho de Santiago Ramón y Cajal, 1899, na página do arquivo no Wikimedia Commons; verbete "Action potential" da Wikipedia, sobre o limiar e o tudo ou nada; verbete "Neuron", sobre Waldeyer e 1891.
  • Verbetes "Fractal" e "Buddhabrot" da Wikipedia; Dicionário Priberam, "limiar"; Wiktionary, "perceptron" e "-tron".
  • Nobel de Física de 2024, NobelPrize.org.
  • Sohl-Dickstein, 2024, "The boundary of neural network trainability is fractal", arXiv:2402.06184.
  • Verbetes "Muon", "Cloud chamber", "Seth Neddermeyer", "Compact Muon Solenoid" e "Solenoid" da Wikipedia; página "Detecting muons" do CMS, cms.cern/detector/detecting-muons, sobre as câmaras de múons na parte de fora do detector; a legenda da foto dos múons no verbete "Cosmic ray" da Wikipedia e a página do arquivo "Hard-component-muon-868x1024.png" no Wikimedia Commons.