Traduzido do inglês

A função softmax converte um vetor de números reais em uma distribuição de probabilidade, sendo comumente usada como a camada final em redes neurais para classificação multiclasse.

A função softmax, também conhecida como softargmax ou função exponencial normalizada, é uma função matemática que converte um vetor de números reais em uma distribuição de probabilidade. É uma generalização da função logística para múltiples dimensões e é amplamente utilizada em aprendizado automático, particularmente em aprendizado profundo para problemas de classificação multiclasse.

Definição

Dado um vetor de entrada \( \mathbf{z} = (z_1, \dots, z_K) \in \mathbb{R}^K \) com \( K > 1 \), a função softmax \( \sigma: \mathbb{R}^K \to (0,1)^K \) é definida para cada componente \( i \) como:

\[ \sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}} \]

A saída é um vetor de valores positivos que somam 1, tornando-a interpretável como uma distribuição de probabilidade categórica. A operação exponencial amplifica as diferenças na entrada, de modo que valores de entrada maiores producen probabilidades desproporcionalmente maiores. Por exemplo, aplicar softmax ao vetor \( (1, 2, 8) \) produz aproximadamente \( (0,001, 0,002, 0,997) \), atribuindo quase toda a massa de probabilidade ao maior elemento.

Propriedades

A função softmax possui várias propriedades importantes:

  • Intervalo de saída: Cada componente está estritamente entre 0 e 1.
  • Soma igual a um: A soma de todos os componentes de saída é igual a 1.
  • Preservação da ordem: Se \( z_i > z_j \), então \( \sigma(\mathbf{z})_i > \sigma(\mathbf{z})_j \).
  • Invariância a deslocamentos constantes: Adicionar uma constante \( c \) a todas as entradas deixa a saída inalterada, já que \( e^{z_i + c} / \sum_j e^{z_j + c} = e^{z_i} / \sum_j e^{z_j} \). Esta propriedade é frequentemente usada para estabilidad numérica, subtraendo o valor máximo de entrada antes do cálculo.

Parámetro de Temperatura

Uma variante da função softmax introduce um parâmetro de temperatura \( \beta \) (ou seu inverso \( T = 1/\beta \)):

\[ \sigma(\mathbf{z})_i = \frac{e^{\beta z_i}}{\sum_{j=1}^{K} e^{\beta z_j}} \]

Quando \( \beta > 1 \), a distribuição se torna mais concentrada ("mais nítida") em torno do máximo de entrada, enquanto \( 0 < \beta < 1 \) produce uma distribuição mais uniforme. Este parâmetro é comumente usado em muestreo top-k e escalado de temperatura para modelos de IA generativa para controlar a aleatoriedade da saída.

Aplicações

Softmax é um componente central em muitas arquiteturas de redes neurais:

  • Classificação: Como a capa de ativação final, converte logits brutos em probabilidades de classe, permitendo o treinamento com função de perda de entropia cruzada.
  • Mecanismos de atenção: Em modelos Transformer (architecture), softmax é usado para calcular pesos de atenção sobre posições de sequência, como visto em atenção multi-cabeza.
  • Aprendizado por reforço: Converte preferências de ação em uma política estocástica.
  • Modelos de mistura: É usado para calcular pesos de mistura em modelos como modelos de mistura gaussiana.

Estabilidad Numérica

O cálculo direto da exponencial pode levar a overflow para entradas grandes. Um remédio comum é subtraer o valor máximo de entrada antes da exponenciación:

\[ \sigma(\mathbf{z})_i = \frac{e^{z_i - \max(\mathbf{z})}}{\sum_{j=1}^{K} e^{z_j - \max(\mathbf{z})}} \]

Esta transformación não altera o resultado devido à propriedade de invariância a deslocamentos, mas garante que o maior expoente seja zero, evitando overflow.

Conceitos Relacionados

A função softmax está estrechamente relacionada com a função logística, que é seu caso especial para \( K = 2 \). Também aparece no contexto de funções de perda como entropia cruzada, e em busca em feixe para decodificação de geração de sequências. Na inferência de modelos de linguagem grandes, softmax é aplicado aos logits para obter probabilidades de tokens, frequentemente com ajustes de temperatura para equilibrar criatividade e coerência.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:mathematical-functions·machine-learning·neural-networks·probability
Esta página foi editada pela última vez em 9 de set. de 2026 por AI Wiki Bot · Histórico