Imagine um músico que acaba de receber um instrumento que nunca tocou. Suas primeiras tentativas soarão mal, quase aleatórias. Mas a cada nota, ele ajusta a pressão dos dedos, a posição das mãos, a força do sopro. Aos poucos, o som se aproxima da melodia desejada. É assim que uma rede neural aprende: não com mágica nem com instruções explícitas, mas por meio de um processo iterativo de tentativa, erro e ajuste. No início, suas previsões são tão ruins quanto adivinhar ao acaso. Mas através de um ciclo de aprendizado — o ciclo de treinamento — a rede transforma um amontoado de números aleatórios em um sistema capaz de reconhecer rostos, traduzir idiomas ou diagnosticar doenças.
Para entender como essa transformação acontece, é preciso olhar dentro da caixa preta. Uma rede neural não passa de uma série de camadas de neurônios artificiais conectados entre si. Cada conexão tem um peso, um número que determina quão importante é aquele sinal. Quando a rede recebe um dado de entrada — digamos, os pixels de uma imagem — esses valores viajam camada por camada em direção à saída. Cada neurônio soma suas entradas ponderadas e aplica uma função de ativação que decide se deve “disparar” ou não. Esse é o passe para frente ou forward pass: o momento em que a rede produz uma previsão.
Mas essa previsão quase sempre está errada no começo. Como se mede o erro? Aí entra a função de perda ou loss function. Se a rede tenta adivinhar um número (como o preço de uma casa), usa-se o erro quadrático médio (MSE), que simplesmente calcula a média da diferença ao quadrado entre o que ela previu e o que deveria ter dito. Se ela classifica imagens (é um gato ou um cachorro?), usa-se a entropia cruzada ou cross-entropy, que penaliza mais as previsões erradas feitas com alta confiança. Quanto maior a perda, pior a rede está se saindo.
Ter uma medida do erro é útil, mas não basta. A rede precisa saber em que direção ajustar cada um de seus milhares ou milhões de pesos para reduzir esse erro. E aqui chegamos ao coração do treinamento: a retropropagação ou backpropagation.
A retropropagação, popularizada por Rumelhart, Hinton e Williams em seu artigo seminal de 1986, é um algoritmo elegantemente eficiente que calcula quanto cada peso contribuiu para o erro final. Funciona de trás para frente: da camada de saída em direção à entrada, aplicando a regra da cadeia do cálculo diferencial. É como uma investigação de responsabilidades: se a saída final está errada, qual parte da culpa recai sobre cada neurônio da camada anterior? A retropropagação responde essa pergunta com uma precisão matemática que evita ter que recalcular tudo do zero. Sem ela, treinar redes profundas seria computacionalmente inviável.
Mas a retropropagação apenas calcula o gradiente — a direção e a magnitude da mudança necessária. O verdadeiro aprendizado ocorre quando a rede usa esse gradiente para atualizar seus pesos, e aí entra a descida do gradiente ou gradient descent. A analogia clássica é a de uma pessoa caminhando de olhos vendados por um terreno montanhoso, onde a altura representa o erro. Para chegar ao vale (o erro mínimo), a pessoa dá passos na direção que mais desce. É exatamente isso que o gradiente faz: aponta a direção de máxima inclinação ascendente, então a rede se move na direção oposta.
O tamanho desses passos é controlado por um hiperparâmetro chamado taxa de aprendizado ou learning rate. Se for grande demais, a rede dá saltos que a fazem ricochetear e nunca convergir. Se for pequeno demais, avança tão lentamente que o treinamento leva uma eternidade. Encontrar o ponto certo faz parte da arte de treinar redes.
A descida do gradiente básica funciona, mas tem limitações. Pode oscilar em desfiladeiros estreitos da paisagem de erro ou ficar presa em platôs. É aí que entram os otimizadores mais sofisticados. O momentum, inspirado na física, acumula “inércia” dos passos anteriores: como uma bola rolando ladeira abaixo, se esteve indo em uma direção consistente, continua avançando, suavizando as oscilações e acelerando a convergência. O otimizador Adam, proposto por Kingma e Ba em 2014, vai um passo além: combina momentum com taxas de aprendizado adaptativas, ajustando o passo de forma individual para cada peso. O Adam é hoje o otimizador padrão na maioria dos projetos de deep learning, de modelos de linguagem a sistemas de recomendação.
Outro ingrediente-chave são as funções de ativação. Durante anos usaram-se as funções sigmoide e tangente hiperbólica, mas ambas comprimiam os valores em intervalos pequenos, provocando o temido problema do gradiente evanescente: em camadas profundas, o gradiente se tornava tão minúsculo que os pesos paravam de ser atualizados. A função ReLU (Rectified Linear Unit, f(x) = max(0, x)) resolveu isso de forma surpreendentemente simples: para valores positivos, sua derivada é 1, o que permite que o gradiente flua sem encolher. Além disso, a ReLU produz representações esparsas (muitos neurônios dão exatamente zero, o que é computacionalmente eficiente) e não requer operações caras como exponenciais. Desde que a AlexNet a usou em 2012 para vencer a ImageNet, a ReLU se tornou a ativação padrão.
Por trás de todo esse processo há um ator silencioso, mas indispensável: a GPU. Cada etapa do ciclo de treinamento — forward pass, retropropagação, atualização de pesos — envolve multiplicações de matrizes enormes. As GPUs, originalmente projetadas para renderizar gráficos em paralelo, mostraram-se perfeitas para essas operações. A mesma AlexNet de 2012 demonstrou que treinar com GPUs reduzia o tempo de semanas para dias. Hoje, clusters inteiros de GPUs treinam modelos com centenas de bilhões de parâmetros, mas o princípio fundamental continua o mesmo.
Entender como as redes neurais são treinadas importa porque esse é o mecanismo que está por trás de praticamente todas as aplicações modernas de inteligência artificial. Toda vez que o ChatGPT gera uma resposta, quando um carro autônomo detecta um pedestre ou quando o Spotify recomenda uma música, por trás há um modelo que passou pelo mesmo ciclo: passe para frente, cálculo da perda, retropropagação e descida do gradiente. Não é mágica, mas um processo iterativo de ajuste fino que converte a aleatoriedade inicial em conhecimento útil. E quanto melhor entendermos esse processo, melhor poderemos usar — e questionar — as ferramentas que ele constrói.
Fonte principal: Adam: A Method for Stochastic Optimization — Kingma e Ba (2014), o artigo que introduziu o otimizador Adam e que sintetiza os princípios modernos do treinamento de redes neurais.