O que é o normalizador de log de gradiente?

9

No wiki, a função softmax é definida como o normalizador-log-gradiente da distribuição de probabilidade categórica . Uma explicação parcial para o normalizador de log é encontrada aqui , mas o que significa o normalizador de gradiente de log ?

tashuhka
fonte

Respostas:

5

Usando a notação da página da wikipedia ( https://en.wikipedia.org/wiki/Exponential_family ), uma família exponencial é uma família de distribuições de probabilidade que possuem pmfs / pdfs que podem ser escritos como (observando que , pode ser vetor valorizado): onde são os parâmetros naturais, são estatísticas suficientes e é o normalizador de log (às vezes chamado de função de partição de log). O motivo é chamado de normalizador de log, pois pode ser verificado que, no caso contínuo, para que este seja um pdf válido, devemos ter x f θ ( x ) = h ( x ) exp [ η ( θ ) T t ( x ) - A ( θ ) ] η ( θ ) = η t ( x ) A ( θ ) A ( θ ) A ( θ) ) = log [ h ( x ) exp [θx

fθ(x)=h(x)exp[η(θ)Tt(x)A(θ)]
η(θ)=ηt(x)A(θ)A(θ)
A(θ)=log[h(x)exp[η(θ)Tt(x)]dx],
e no caso discreto, para que este seja um pmf válido , devemos ter Em cada caso, notamos que e são as constantes de normalização das distribuições, daí o nome log normalizer.h ( x ) exp [ η ( θ ) T t ( x ) ] d x x h ( x ) exp [ η ( θ ) T t
A(θ)=log[xh(x)exp[η(θ)Tt(x)]].
h(x)exp[η(θ)Tt(x)]dxxh(x)exp[η(θ)Tt(x)]

Agora, para ver a relação específica entre a função softmax e a distribuição categórica dimensional , teremos que usar uma parametrização específica da distribuição. Ou seja, seja tal que e e defina (deixando ). O pmf para esta distribuição é (deixando ser um vetor quente, ou seja, e para ): θ 1 , , θ k - 1 0 < θ 1 , , θ k - 1k - 1 i = 1 θ i < 1 θ k = 1 - k - 1 i = 1 θ i θ = ( θ 1 , , θ k ) x = ( xkθ1,,θk10<θ1,,θk1i=1k1θi<1θk=1i=1k1θiθ=(θ1,,θk)x i = 1 x j = 0 i j f θ ( x ) = k i = 1 θ x i i . h ( x ) = 1 η ( θ ) = ( log [ θ 1 / θ k ] , , log [ θ kx=(x1,,xk)xi=1xj=0ij

fθ(x)=i=1kθixi.
Para escrever isso como uma família exponencial, observe que , , e , portanto: h(x)=1t(x)=( x 1 ,, x k )A(θ)=-log[ θ k ] f θ (x)=exp[(log[ θ 1 / θ k ],,logarítmo[ θ k - 1η(θ)=(log[θ1/θk],,log[θk1/θk],0)t(x)=(x1,,xk)A(θ)=log[θk]
fθ(x)=exp[(log[θ1/θk],,log[θk1/θk],0)T(x1,,xk)(log[θk])].

Agora vamos escrever sugestivamente , para que possamos escrever . Então o normalizador de log se torna Tomando a derivada parcial em relação a , encontramos revelando que o gradiente do normalizador de log é realmente a função softmax: η(θi)=log[θi/θk]=ηiθi=eηij=1keηj

A(η)=log[eηkj=1keηj]=log[1j=1keηj]=log[j=1keηj].
ηiUm(η)=[e η 1
ηiA(η)=eηij=1keηj,
A(η)=[eη1j=1keηj,,eηkj=1keηj].
aleshing
fonte
Uau!! Essa foi uma ótima explicação e tem total sentido. Obrigado :)
tashuhka
Eu estou procurando essa derivação há muito tempo! Gostaria de saber, em que contexto você teve para desenvolver esse conhecimento? Você viu isso como parte de um curso ou livro? Continuei encontrando referências a esse relacionamento na internet, mas ninguém deu os detalhes.
Zipzapboing 16/09/19
1
@zipzapboing Na verdade, eu não conhecia essa propriedade do softmax até ver a pergunta da OP! No entanto, eu tive um curso de estatísticas de nível de casela e berger (onde famílias exponenciais e algumas de suas outras propriedades são introduzidas) sob meu currículo, o que me permitiu saber que provar a propriedade não seria tão difícil com a parametrização correta.
aleshing