Pesquisa · Mapa mental

Função softmax

A função softmax, também conhecida como softargmax ou função exponencial normalizada, converte um vetor de K números reais em uma distribuição de probabilidade de K resultados possíveis. É uma generalização da função logística para várias dimensões e é usada na regressão logística multinomial [en]. A função softmax é frequentemente usada como a última função de ativação [en] de uma rede neural para normalizar a saída de uma rede para uma distribuição de probabilidade sobre as classes de saída previstas, com base no axioma de escolha de Luce [en].

Fonte: Wikipédia (pt)Atualizado em 29/06/2026
01

Definição

A função softmax recebe como entrada um vetor z de K números reais e o normaliza em uma distribuição de probabilidade que consiste em K probabilidades proporcionais aos exponenciais dos números de entrada. Ou seja, antes de aplicar a softmax, alguns componentes do vetor podem ser negativos ou maiores que um e podem não somar 1, mas, após aplicar a softmax, cada componente estará no intervalo ( 0 , 1 ) {\displaystyle (0,1)} , e os componentes serão somados a 1, de modo que possam ser interpretados como probabilidades. Além disso, os componentes de entrada maiores corresponderão a probabilidades maiores. A função softmax padrão (unitária) σ : R K ↦ ( 0 , 1 ) K {\displaystyle \sigma :\mathbb {R} ^{K}\mapsto (0,1)^{K}} , na qual K ≥ 1 {\displaystyle K\geq 1} define-se por σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , … , K and z = ( z 1 , … , z K ) ∈ R K . {\displaystyle \sigma (\mathbf {z} )_{i}={\frac {e^{z_{i}}}{\sum _{j=1}^{K}e^{z_{j}}}}\ \ {\text{ for }}i=1,\dotsc ,K{\text{ and }}\mathbf {z} =(z_{1},\dotsc ,z_{K})\in \mathbb {R} ^{K}.}

02

Interpretações

Arg max suave

O nome "softmax" é enganoso. A função não é um máximo suave [en] (ou seja, uma aproximação suave da função máxima), mas uma aproximação suave da função arg max [en]: a função cujo valor é o "índice" do maior elemento de um vetor. De fato, o termo "softmax" também é usado para a função LogSumExp [en], que é um máximo suave. Por esse motivo, alguns preferem o termo mais preciso "softargmax", mas o termo "softmax" é convencional no aprendizado de máquina. Esta seção usa o termo "softargmax" para enfatizar essa interpretação. Formalmente, em vez de considerar o arg max como uma função com saída categórica 1 , … , n {\displaystyle 1,\dots ,n} (correspondente ao índice), considere a função arg max com representação one-hot da saída (supondo que haja um arg máximo exclusivo):

Teoria da probabilidade

Na teoria da probabilidade, a saída da função softargmax pode ser usada para representar uma distribuição categórica [en], ou seja, uma distribuição de probabilidade sobre K diferentes resultados possíveis.

Mecânica estatística

Na mecânica estatística, a função softargmax é conhecida como distribuição de Boltzmann (ou distribuição de Gibbs)::7 o conjunto de índices 1 , … , k {\displaystyle {1,\,\dots ,\,k}} são os microestados do sistema; as entradas z i {\displaystyle z_{i}} são as energias desse estado; o denominador é conhecido como a função de partição, geralmente denotada por Z; e o fator β é chamado de frieza (ou beta termodinâmico, ou temperatura inversa).

03

Aplicações

A função softmax é usada em vários métodos de classificação multiclasse [en], como a regressão logística multinomial [en] (também conhecida como regressão softmax):206–209 análise discriminante linear [en] multiclasse, classificador Naive Bayes e redes neurais artificiais. Especificamente, na regressão logística multinomial e na análise discriminante linear, a entrada para a função é o resultado de K funções lineares distintas, e a probabilidade prevista para a j-ésima classe, dado um vetor de amostra x e um vetor de ponderação w é: Isso pode ser visto como a composição de funções lineares K x ↦ x T w 1 , … , x ↦ x T w K {\displaystyle \mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{K}} e a função softmax (em que x T w {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {w} } denota o produto interno de x {\displaystyle \mathbf {x} } e w {\displaystyle \mathbf {w} } ). A operação é equivalente à aplicação de um operador linear definido por w {\displaystyle \mathbf {w} } aos vetores x {\displaystyle \mathbf {x} } , transformando assim a entrada original, provavelmente altamente dimensional, em vetores em um espaço R K {\displaystyle \mathbb {R} ^{K}} dimensional K.

Redes neurais

A função softmax padrão é frequentemente usada na camada final de um classificador baseado em rede neural. Essas redes são comumente treinadas em um regime de perda logarítmica (ou entropia cruzada), fornecendo uma variante não linear da regressão logística multinomial. Como a função mapeia um vetor e um índice específico i {\displaystyle i} para um valor real, a derivada precisa levar o índice em consideração: ∂ ∂ q k σ ( q , i ) = σ ( q , i ) ( δ i k − σ ( q , k ) ) . {\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\sigma ({\textbf {q}},i)(\delta _{ik}-\sigma ({\textbf {q}},k)).} Essa expressão é simétrica nos índices i , k {\displaystyle i,k} e, portanto, também pode ser expressa como

Aprendizado por reforço

No segmento de aprendizado por reforço, uma função softmax pode ser usada para converter valores em probabilidades de ação. A função comumente usada é: P t ( a ) = exp ⁡ ( q t ( a ) / τ ) ∑ i = 1 n exp ⁡ ( q t ( i ) / τ ) , {\displaystyle P_{t}(a)={\frac {\exp(q_{t}(a)/\tau )}{\sum _{i=1}^{n}\exp(q_{t}(i)/\tau )}}{\text{,}}} em que o valor da ação q t ( a ) {\displaystyle q_{t}(a)} corresponde à recompensa esperada de seguir a ação a e τ {\displaystyle \tau } é chamado de parâmetro de temperatura (em alusão à mecânica estatística). Para temperaturas altas ( τ → ∞ {\displaystyle \tau \to \infty } ), todas as ações têm praticamente a mesma probabilidade e, quanto mais baixa a temperatura, mais as recompensas esperadas afetam a probabilidade. Para uma temperatura baixa ( τ → 0 + {\displaystyle \tau \to 0^{+}} ), a probabilidade da ação com a maior recompensa esperada tende a 1.

04

Complexidade computacional e soluções

Em aplicações de redes neurais, o número K de resultados possíveis costuma ser grande, por exemplo, no caso de modelos de linguagem neural que preveem o resultado provável de um vocabulário que pode conter milhões de palavras possíveis. Isso pode tornar os cálculos para a camada softmax (ou seja, as multiplicações de matriz para determinar o z i {\displaystyle z_{i}} , seguidas pela aplicação da própria função softmax) computacionalmente caros. Além disso, o método de retropropagação de declive gradiente para treinar essa rede neural envolve o cálculo do softmax para cada exemplo de treinamento, e o número de exemplos de treinamento também pode se tornar grande. O esforço computacional para o softmax tornou-se um fator limitante importante no desenvolvimento de modelos de linguagem neural maiores, motivando várias soluções para reduzir o tempo de treinamento. As abordagens que reorganizam a camada de softmax para um cálculo mais eficiente incluem o softmax hierárquico e o softmax diferenciado. O softmax hierárquico (introduzido por Morin e Bengio em 2005) usa uma estrutura de árvore binária em que os resultados (palavras do vocabulário) são as folhas e os nós intermediários são "classes" de resultados adequadamente selecionadas, formando variáveis latentes. A probabilidade desejada (valor softmax) de uma folha (resultado) pode então ser calculada como o produto das probabilidades de todos os nós no caminho da raiz até essa folha. Idealmente, quando a árvore estiver equilibrada, isso reduziria a complexidade computacional de O ( K ) {\displaystyle O(K)} para O ( log 2 ⁡ K ) {\displaystyle O(\log _{2}K)} . Na prática, os resultados dependem da escolha de uma boa estratégia para agrupar os resultados em classes. Uma árvore de Huffman foi usada para isso nos modelos word2vec [en] do Google (introduzidos em 2013) para obter escalabilidade.

05

Propriedades matemáticas

Geometricamente, a função softmax mapeia o espaço vetorial R K {\displaystyle \mathbb {R} ^{K}} para a fronteira do simplex padrão ( K − 1 ) {\displaystyle (K-1)} , reduzindo a dimensão em um (o intervalo é um simplex ( K − 1 ) {\displaystyle (K-1)} -dimensional em um espaço K {\displaystyle K} -dimensional), devido à restrição linear de que todos os resultados somam 1, o que significa que ele está em um hiperplano. Ao longo da diagonal principal ( x , x , … , x ) , {\displaystyle (x,\,x,\,\dots ,\,x),} a softmax é apenas a distribuição uniforme nos resultados, ( 1 / n , … , 1 / n ) {\displaystyle (1/n,\dots ,1/n)} : pontuações iguais geram probabilidades iguais. De modo geral, o softmax é invariável sob tradução pelo mesmo valor em cada coordenada: adicionando c = ( c , … , c ) {\displaystyle \mathbf {c} =(c,\,\dots ,\,c)} às entradas z {\displaystyle \mathbf {z} } , obtém-se σ ( z + c ) = σ ( z ) {\displaystyle \sigma (\mathbf {z} +\mathbf {c} )=\sigma (\mathbf {z} )} , porque ele multiplica cada expoente pelo mesmo fator, e c {\displaystyle e^{c}} (porque e z i + c = e z i ⋅ e c {\displaystyle e^{z_{i}+c}=e^{z_{i}}\cdot e^{c}} ), de modo que as proporções não mudam:

06

Histórico

A função softmax foi usada na mecânica estatística como a distribuição de Boltzmann no artigo fundamental Boltzmann (1868),formalizada e popularizada no influente livro-texto Gibbs (1902). O uso da softmax na teoria da decisão é creditado a Luce (1959),:1 que usou o axioma da independência de alternativas irrelevantes [en] na teoria da escolha racional para deduzir a softmax no axioma de escolha de Luce [en] para preferências relativas. No aprendizado de máquina, o termo "softmax" é creditado a John S. Bridle em dois artigos de conferência de 1989, Bridle (1990a)::1 e Bridle (1990b): Estamos preocupados com redes não lineares pré-alimentadas (perceptrons multicamadas, ou MLPs) com várias saídas. Queremos tratar as saídas da rede como probabilidades de alternativas ("por exemplo," classes de padrões), condicionadas às entradas. Procuramos não linearidades de saída apropriadas e critérios apropriados para a adaptação dos parâmetros da rede (por exemplo, pesos). Explicamos duas modificações: pontuação de probabilidade, que é uma alternativa à minimização do erro quadrático, e uma generalização exponencial normalizada (softmax) de várias entradas da não linearidade logística.:227

07

Exemplo

Se pegarmos uma entrada de [1, 2, 3, 4, 1, 2, 3], a softmax disso é [0,024, 0,064, 0,175, 0,475, 0,024, 0,064, 0,175]. A saída tem a maior parte de seu peso onde o "4" estava na entrada original. É para isso que a função é normalmente usada: para destacar os maiores valores e suprimir os valores que estão significativamente abaixo do valor máximo. Mas observe: a softmax não é invariante em escala, portanto, se a entrada fosse [0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3] (que soma 1,6), a softmax seria [0.125, 0.138, 0.153, 0.169, 0.125, 0.138, 0.153]. Isso mostra que, para valores entre 0 e 1, a softmax, de fato, reduz a ênfase no valor máximo (observe que 0,169 não é apenas menor que 0,475, mas também é menor que a proporção inicial de 0,4/1,6=0,25). Cálculo desse exemplo usando o código Python:

Vídeos recomendados

Fontes consultadas

Continue pesquisando