Um modelo mental útil

Uma rede neural começa como uma estrutura com configurações numéricas vazias. A estrutura define quais cálculos acontecem e em que ordem. Os pesos fornecem muitos dos números usados por esses cálculos.

Pense na estrutura como um modelo reutilizável de cálculos e nos pesos como valores que preenchem seus espaços. Dois modelos podem usar a mesma estrutura, mas se comportar de maneira diferente porque contêm pesos aprendidos diferentes. A analogia termina aí: ao contrário de configurações identificadas em um painel de controle, os pesos individuais geralmente não têm nomes como “gramática” ou “gatos”.

Uma camada comum pode ser representada assim:

input signals x
      │
      ▼
multiply and combine with weights W
      │
      ▼
add a learned offset b
      │
      ▼
apply the layer's function
      │
      ▼
output signals

O deslocamento b é chamado de viés. Pesos e vieses são ambos parâmetros do modelo, mas somente os pesos multiplicam sinais.

Como funcionam os pesos do modelo

Suponha que uma camada receba vários números da camada anterior. Para produzir um novo número, ela multiplica cada entrada por um peso e soma os resultados:

saída = (entrada₁ × peso₁) + (entrada₂ × peso₂) + ... + viés

Um peso positivo empurra a soma na mesma direção da sua entrada. Um peso negativo a empurra na direção oposta. Um peso próximo de zero faz com que essa entrada contribua pouco para essa soma específica.

Uma camada real calcula muitas saídas de uma só vez. Seus pesos são organizados como uma matriz, portanto a forma compacta é:

y = Wx + b

Aqui, x é um vetor de sinais de entrada, W é uma matriz de pesos, b é um vetor de vieses e y é o resultado antes da aplicação de qualquer função seguinte. Às vezes, os frameworks armazenam W transposta, mas a operação subjacente é a mesma.

As redes profundas repetem variações dessa operação em muitas camadas. Uma alteração inicial modifica os sinais recebidos pelas camadas posteriores, portanto seu efeito pode se espalhar pelo restante do cálculo. Funções não lineares, normalização, parâmetros reutilizados e interações com outros pesos tornam esse efeito dependente do contexto.

Por isso, o sinal ou o tamanho de um único peso não é uma medida confiável de sua importância para o modelo inteiro. Seu significado depende de onde ele está, da escala de suas entradas, dos parâmetros próximos e de cada operação posterior que usa o sinal resultante.

Um exemplo prático

Considere uma camada com duas entradas:

  • primeira entrada: 3
  • segunda entrada: 2
  • primeiro peso: 0.8
  • segundo peso: -0.5
  • viés: 0.1

A camada calcula:

(3 × 0.8) + (2 × -0.5) + 0.1 = 1.5

Agora altere somente o segundo peso de -0.5 para 0.5:

(3 × 0.8) + (2 × 0.5) + 0.1 = 3.5

A entrada não mudou. A estrutura do cálculo não mudou. A saída mudou porque um multiplicador aprendido mudou.

Este pequeno exemplo facilita a inspeção de cada valor. Uma rede grande realiza muitas combinações desse tipo ao mesmo tempo e, depois, encaminha os resultados por mais camadas. Nesse contexto, um peso ainda tem uma função local precisa, mas sua contribuição para a resposta final raramente é significativa de forma isolada.

Como os pesos são aprendidos

O treinamento busca valores de pesos que façam o modelo executar sua tarefa melhor. Uma etapa típica de treinamento tem quatro partes:

  1. O modelo usa seus pesos atuais para produzir uma saída.
  2. Uma função de perda mede o erro em relação ao objetivo de treinamento.
  3. A retropropagação calcula um gradiente para cada peso. Um gradiente descreve como uma pequena alteração nesse peso modificaria a perda.
  4. Um otimizador usa esses gradientes para ajustar os pesos.

Uma atualização simplificada é:

novo peso = peso antigo - taxa de aprendizado × gradiente

A taxa de aprendizado controla o tamanho do passo. A repetição dessas atualizações em exemplos de treinamento produz gradualmente um conjunto de pesos que funciona melhor para o objetivo.

O processo normalmente não atribui um conceito humano a cada número. O aprendizado é distribuído. Um comportamento útil pode depender de padrões espalhados por muitos pesos, e um único peso pode participar de vários comportamentos.

Os pesos também não precisam começar em zero. As redes neurais normalmente começam com valores cuidadosamente aleatorizados. Se unidades equivalentes começassem de forma idêntica, poderiam receber atualizações idênticas e não aprender funções diferentes.

Por que os pesos são importantes

Os pesos são o resultado duradouro do treinamento. Quando o treinamento termina, os valores aprendidos podem ser salvos em um checkpoint e carregados posteriormente, em vez de serem reaprendidos a cada uso.

Alterar os pesos modifica o comportamento do modelo mesmo quando o código e a arquitetura permanecem fixos. O fine-tuning faz isso deliberadamente ao continuar o treinamento a partir de um checkpoint existente. Outras técnicas podem alterar a forma como os pesos são representados. Por exemplo, armazená-los com menor precisão numérica pode reduzir o uso de memória, embora a troca em qualidade de saída dependa do modelo e do método.

Os pesos também respondem por grande parte do armazenamento e da memória de trabalho necessários para executar um modelo treinado. Mais valores e mais bytes por valor geralmente exigem mais memória. Essa relação é útil, mas não é uma medida completa de desempenho. Sobrecarga de execução, cálculos temporários, comprimento da entrada, processamento em lotes e hardware também importam.

Mais importante: os pesos são necessários, mas não suficientes. Um tensor de pesos só é significativo quando colocado na parte correspondente de uma arquitetura compatível. Um pacote de modelo utilizável também pode precisar de configuração, processamento de entrada, decodificação de saída e código de execução. Os pesos não especificam a interface completa do produto, as regras de segurança, o sistema de recuperação ou as ferramentas ao redor do modelo.

Equívocos comuns

“Pesos e parâmetros são a mesma coisa”

Às vezes, as pessoas usam as palavras como sinônimos. Na definição mais rigorosa, todo peso é um parâmetro, mas nem todo parâmetro é um peso. Vieses e alguns valores de escala também são parâmetros. Ainda assim, frameworks e publicadores de modelos podem chamar de “arquivo de pesos” um arquivo que contém todos os parâmetros aprendidos.

“Um peso maior é sempre mais importante”

A magnitude do peso só faz sentido no contexto. Uma entrada com escala pequena e peso grande pode ter o mesmo efeito local que uma entrada com escala grande e peso pequeno. As camadas posteriores podem amplificar, cancelar, redirecionar ou ignorar o resultado.

“Cada peso armazena um fato”

Os pesos codificam coletivamente padrões aprendidos no treinamento. Eles não são linhas de uma tabela de fatos. Um único fato ou capacidade pode envolver muitos valores, enquanto um único valor pode afetar muitas entradas. Os modelos podem reproduzir parte do conteúdo de treinamento, mas isso não transforma os pesos em uma cópia diretamente pesquisável do conjunto de dados.

“Os pesos são todo o sistema de IA”

Um checkpoint não é uma aplicação completa. A arquitetura e a configuração correspondentes são necessárias para interpretar seus tensores. Um produto de IA também pode adicionar instruções, recuperação, ferramentas, filtros e lógica de interface que não estão contidos nos pesos do modelo.

“O modelo atualiza seus pesos sempre que você o usa”

A inferência comum lê pesos fixos para calcular saídas. A conversa imediata pode afetar saídas posteriores por meio do contexto fornecido, mas isso não é o mesmo que retreinar os pesos. O sistema só os altera quando inclui um processo explícito de treinamento ou adaptação.

Como os pesos se encaixam no sistema mais amplo

A arquitetura define o caminho do cálculo. Os parâmetros fornecem valores aprendidos ao longo desse caminho. Os pesos multiplicam sinais, enquanto os vieses e outros tipos de parâmetros desempenham suas próprias funções. O treinamento ajusta esses valores; a inferência usa os valores resultantes para processar novas entradas.

Leia O que são os parâmetros do modelo? a seguir para conhecer a categoria mais ampla que inclui pesos, vieses e outros valores aprendidos. Use Parâmetros do modelo vs. pesos do modelo para ver a distinção direta. Volte a O que é uma rede neural? para entender como camadas ponderadas se combinam em uma rede completa, ou continue para O que é treinamento em IA? para saber como esses valores são aprendidos.