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.
- Revisão da aula de quarta
- Como o curso funciona
- Aprender com dados
- O neurônio artificial
- O perceptron e o XOR
- O código
- 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, 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 | |
| x um, w k | um componente do vetor; o índice embaixo diz a posição na lista | 12 | |
| n | quantas entradas o neurônio tem | 12 | |
| e assim por diante | a lista ou a soma continua no mesmo padrão | 12 | |
| pertence a | está dentro do conjunto | 12 | |
| R, R elevado a n | os números reais; as listas de n números reais | 12 | |
| w escalar x | produto escalar: multiplica termo a termo e soma; entre dois números, o ponto é a multiplicação | 12 | |
| somatório de k igual a 1 até n | soma o termo que vem depois, para k = 1, 2, …, n | 12 | |
| z | a soma ponderada, · + b | 12 | |
| b | o viés, que faz o papel do limiar | 12 | |
| y | a saída do neurônio, 0 ou 1 | 13 | |
| degrau | a função que dá 1 se z ≥ 0 e 0 se z < 0 | 13 | |
| chave | definição por casos: vale a linha cuja condição é verdadeira | 13 | |
| maior ou igual, menor ou igual, maior, menor | comparação entre dois números | 13 | |
| e | o E lógico: 1 só quando as duas entradas são 1 | 14 | |
| ou | o OU lógico: 1 quando pelo menos uma entrada é 1 | 14 | |
| ou exclusivo, xor | o XOR: 1 quando só uma entrada é 1; a soma que esquece o vai-um | 14 | |
| seta para baixo | a troca das letras pelos números, na tabela do E | 15 | |
| então, implica | se o lado esquerdo vale, o direito também vale | 15 | |
| se e somente se | os dois lados valem juntos: um vale exatamente quando o outro vale | 16 | |
| perpendicular a | produto escalar zero; no plano, o ângulo reto do desenho | 16 | |
| existe | há pelo menos um | 16 | |
| para todo | vale para cada um | 16 | |
| 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 | a taxa de aprendizado, o tamanho de cada correção | 18 | |
| passa a valer, recebe | o valor da esquerda passa a ser o da direita | 18 | |
| diferente de | os dois lados não são iguais | 20 | |
| leva a | (0, 0) ↦ 0: a entrada (0, 0) tem de dar 0 | 21 | |
| 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.andeor: E e OU com True e False. Não existexor; com True e False, o!=faz o papel dele.**: potência. O^não é potência:2 ^ 3dá 1, e2 ** 3dá 8.@: produto escalar de arrays do NumPy, como emx @ wno 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₁, x₂, …, xₙ), e os pesos, o vetor = (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 . 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₁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 = · + 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), · = 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 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 e em b.
O vetor = (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 dá 1 · (−1,5) + 1 · 1,5 = 0. Isso vale para qualquer deslocamento sobre a reta, e para qualquer neurônio: se e estão na reta, · + b = 0 e · + b = 0, e subtraindo uma da outra sobra · ( − ) = 0. Por isso é sempre perpendicular à reta z = 0, quaisquer que sejam os pesos.
E aponta para o lado que dispara: saindo de um ponto da reta e andando , chega-se a + , onde z = · ( + ) + b = ( · + b) + · = 0 + 2 = 2 > 0. Na direção de , 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, ∃ , b ∀ (, t): degrau( · + b) = t, que se lê existem e b tais que, para todo exemplo (, t), o neurônio responde t. ∃ é existe, ∀ é para todo, e (, t) é um exemplo rotulado: a entrada 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: ← + η (t − y) 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 ← + η : 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 ← − η : os pesos diminuem.
No exemplo, com η = 1, = (0, 0) e b = −1, a entrada (1, 1) deu y = 0 quando devia dar 1: t − y = 1, e a correção leva 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 = (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 é perpendicular à reta? Ao longo da reta, z não muda, então o produto escalar de com qualquer deslocamento sobre ela é zero, e produto escalar zero é o que perpendicular quer dizer. E aponta para o lado que dispara porque andar a partir da reta soma · > 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:
- 3Blue1Brown, série sobre redes neurais, capítulo 1, "But what is a neural network?", youtube.com/watch?v=aircAruvnKk.
- 3Blue1Brown, série sobre cálculo, capítulo 2, "The paradox of the derivative", youtube.com/watch?v=9vKqVkMQHKk.
- 3Blue1Brown, série sobre redes neurais, capítulo 2, "Gradient descent, how neural networks learn", youtube.com/watch?v=IHZwWFHWa-w. Usa a derivada, por isso vem depois do vídeo de cálculo.
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 é 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.
