Ninguém ensinou você a reconhecer um cachorro com uma lista de regras. Seus pais não disseram “quatro patas, focinho, rabo que balança, mas cuidado com o gato”. Apontaram para um cachorro, depois para outro, depois para um enorme, depois para um minúsculo, e um dia você acertou sozinho. Quando errou, alguém corrigiu: “Isso é um lobo, e é melhor não chegar perto.”
As redes neurais artificiais, que estão por trás do reconhecimento de voz, da tradução automática e dos assistentes de texto, aprendem do mesmo jeito: por exemplos e correções, não por regras. É a ideia mais importante deste post. O resto é descobrir como uma máquina consegue fazer isso, e o que ela, mesmo assim, não faz.
Programar é dar regras; treinar é dar exemplos
Um programa comum é como uma receita de bolo: passos exatos, na ordem certa, escritos por alguém que sabe o resultado. Funciona muito bem quando dá para escrever a receita. Mas tente escrever a receita de “reconhecer o rosto de uma pessoa em qualquer foto”. Com luz fraca, de lado, de óculos, sorrindo. Ninguém consegue.
A rede neural resolve o problema por outro caminho. Em vez de receber a receita, recebe milhares de exemplos já respondidos (“esta foto tem um gato, esta não tem”) e descobre sozinha o que costuma separar uma coisa da outra. O programador não escreve a regra. Escreve o método de aprender e entrega os exemplos.
O nome vem de uma inspiração antiga. Em 1943, o neurofisiologista Warren McCulloch e o matemático Walter Pitts propuseram um modelo matemático simplificado da célula nervosa, um “neurônio” que soma sinais de entrada e dispara quando a soma passa de certo ponto.1 Eles mostraram que redes dessas unidades podiam realizar operações lógicas. É importante dizer: o neurônio artificial é uma caricatura do biológico, não uma cópia. Só a ideia de unidades simples, conectadas em rede, ficou.
O neurônio artificial é uma votação com pesos
Imagine que você está decidindo se vai a um churrasco no sábado. Consulta três amigos. O primeiro diz “vai ter música boa”. O segundo diz “vai chover”. O terceiro diz “sua prima vai estar lá”. Você não trata os três palpites igual: a opinião da sua prima pesa mais do que a do amigo que sempre exagera. Você soma os palpites, cada um multiplicado pelo peso que dá a ele, e, se o total passa de um limite pessoal, vai.
Isso é praticamente tudo o que um neurônio artificial faz. Recebe vários números de entrada, multiplica cada um por um peso (a “importância” daquela entrada), soma tudo e compara com um limite. Passou do limite, ele “dispara” e passa um sinal adiante. Não passou, fica quieto.
Observe onde mora o conhecimento. Não está na soma, que é simples, nem no limite. Está nos pesos. Dois neurônios idênticos, com pesos diferentes, tomam decisões completamente diferentes. Treinar uma rede é, no fundo, encontrar os pesos certos.
Muitas camadas: uma linha de montagem de observadores
Um neurônio sozinho decide pouco. O poder aparece quando milhares deles se organizam em camadas, cada uma recebendo o resultado da anterior. Pense numa linha de montagem de inspetores. O primeiro olha para a foto e só anota onde há bordas e contrastes. O segundo, com essas anotações, identifica formas simples: curvas, cantos. O terceiro junta formas em partes: um olho, uma orelha. O último, vendo as partes, decide: “isto é um cachorro”.
Nenhum inspetor sabe o que é um cachorro. Cada um faz um trabalho pequeno e passa o resultado adiante. O “cachorro” aparece só no fim da cadeia. Quando se fala em “aprendizado profundo” (deep learning), “profundo” não quer dizer “sábio”, e sim que a rede tem muitas camadas empilhadas.
Aprender é errar, medir o erro e ajustar os botões
No começo, os pesos da rede são aleatórios, e ela acerta tanto quanto um chute. Aí entra o treino, que lembra a mesa de som de um estúdio com milhares de botões. Toca-se uma música (mostra-se um exemplo), compara-se o som com o que deveria ser (a resposta certa), mede-se o tamanho do erro e gira-se cada botão um tiquinho na direção que diminui o erro. Repete-se isso milhões de vezes, com exemplos diferentes. Lentamente, a rede deixa de chutar.
O truque matemático que permite descobrir “quanto girar cada botão” se chama retropropagação do erro: o erro medido na saída é repassado de trás para a frente, camada por camada, apontando quais pesos mais contribuíram para a falha. A técnica foi popularizada em 1986 por David Rumelhart, Geoffrey Hinton e Ronald Williams.2
A história dessa ideia não foi uma linha reta. O psicólogo Frank Rosenblatt construiu o perceptron, uma rede de uma só camada, em 1958, e muita gente se animou. Em 1969, Marvin Minsky e Seymour Papert mostraram que uma rede assim não resolve nem problemas simples de lógica, e o entusiasmo (e o dinheiro) secou por anos.3 A virada veio quando passaram a existir as duas coisas que faltavam: dados em grande quantidade e computadores potentes. Em 2012, uma rede chamada AlexNet venceu um concurso de reconhecimento de imagens por uma margem tão grande que reorientou a área.4 E em 2024 o Nobel de Física foi para John Hopfield e Geoffrey Hinton, pelas descobertas que tornaram possível o aprendizado de máquina com redes neurais artificiais.5
O que a rede aprende, e o que ela não faz
A rede não entende o que viu. Ela capturou regularidades estatísticas dos exemplos que recebeu. Se todos os cachorros do treino apareciam na grama e quase nenhum gato aparecia, ela pode “aprender” que grama quer dizer cachorro. Ela é tão boa quanto os exemplos que lhe demos, e herda os vícios deles. É a mesma lógica de um ditado antigo, que se aplica a crianças e a máquinas: o que se ensina, e como, molda o que se aprende. O livro de Provérbios diz que se deve ensinar a criança “no caminho em que deve andar” (Pv 22:6). A formação importa, para pessoas e para sistemas.
Há ainda uma diferença de escala e de natureza. O cérebro humano adulto tem cerca de 86 bilhões de neurônios, estimativa obtida por contagem direta, e não os “100 bilhões” que se repetiam por décadas sem contagem que os sustentasse.6 Cada um deles é uma célula viva, com química, história e conexões que mudam. O neurônio artificial é uma soma. Uma rede treinada pode escrever, traduzir e jogar xadrez, mas não ama, não teme, não pergunta por quê.
O salmista, olhando para a própria constituição, não dá uma aula de neurociência, e sim uma resposta de gratidão:
Graças te dou, visto que de modo assombrosamente maravilhoso me formaste; as tuas obras são admiráveis, e a minha alma o sabe muito bem.
Saber como uma rede neural funciona não diminui esse assombro; ao contrário, mostra a distância entre imitar uma função e ser uma pessoa. Se você quiser ver o que aconteceu quando um cientista levou a analogia do computador longe demais, vale ler a história de John Lilly e o que a hipótese dele acertou e errou sobre a IA de hoje. Compreender a ferramenta é o primeiro passo para usá-la sem medo e sem ingenuidade.
Referências
-
McCulloch, W. S.; Pitts, W. “A logical calculus of the ideas immanent in nervous activity.” Bulletin of Mathematical Biophysics, 5, 115–133. (1943) ↩
-
Rumelhart, D. E.; Hinton, G. E.; Williams, R. J. “Learning representations by back-propagating errors.” Nature, 323, 533–536. (1986) ↩
-
Alom, M. Z. et al. “The History Began from AlexNet: A Comprehensive Survey on Deep Learning Approaches.” (2018) Resume o perceptron de Rosenblatt (1958) e a crítica de Minsky e Papert (1969). ↩
-
Krizhevsky, A.; Sutskever, I.; Hinton, G. E. “ImageNet Classification with Deep Convolutional Neural Networks.” Advances in Neural Information Processing Systems, 25. (2012) ↩
-
Real Academia Sueca de Ciências. “Press release: The Nobel Prize in Physics 2024.” (8 de outubro de 2024) ↩
-
Azevedo, F. A. C. et al. “Equal numbers of neuronal and nonneuronal cells make the human brain an isometrically scaled-up primate brain.” Journal of Comparative Neurology, 513(5), 532–541. (2009) ↩