Gumbel 的采样过程:
z = a r g m a x i { g i + l o g ( π i ) } , g i = − l o g ( − l o g ( u i ) ) , u i ∼ U ( 0 , 1 ) z=argmax_i \{g_i + log(\pi_i)\}, g_i = -log(-log(u_i)),u_i\sim U(0, 1) z=argmaxi{gi+log(πi)},gi=−log(−log(ui)),ui∼U(0,1)
采样得到的随机变量满足一下分布:
g i ∼ G u m b l e ( 0 , 1 ) ( 1 ) g_i \sim Gumble(0, 1) \quad (1) gi∼Gumble(0,1)(1)
h i = g i + l o g ( π i ) ∼ G u m b l e ( l o g ( π i ) , 1 ) ( 2 ) h_i = g_i + log(\pi_i)\sim Gumble(log(\pi_i), 1) \quad (2) hi=gi+log(πi)∼Gumble(log(πi),1)(2)
证明过程:
P ( u ) = P ( U ≤ u ) = u , u ∈ ( 0 , 1 ) P(u) =P(U\le u)= u, u\in(0, 1) P(u)=P(U≤u)=u,u∈(0,1)
G = − l o g ( − l o g ( U ) ) , u ∈ ( 0 , 1 ) G = -log(-log(U)), u\in(0, 1) G=−log(−log(U)),u∈(0,1)
P ( g ) = P ( G ≤ g ) = P ( − l o g ( − l o g ( U ) ) ≤ g ) P(g) =P(G\le g) = P(-log(-log(U))\le g) P(g)=P(G≤g)=P(−log(−log(U))≤g)
= P ( U ≤ e x p ( − e x p ( − g ) ) ) =P(U\le exp(-exp(-g))) =P(U≤exp(−exp(−g)))
= e x p ( − e x p ( − g ) ) = exp(-exp(-g)) =exp(−exp(−g))
P ( g ) = e x p ( − e x p ( − g ) ) P(g) = exp(-exp(-g)) P(g)=exp(−exp(−g))
g i ∼ G u m b l e ( 0 , 1 ) g_i\sim Gumble(0, 1) gi∼Gumble(0,1)
h i = g i + l o g ( π i ) ∼ G u m b l e ( l o g ( π i ) , 1 ) h_i = g_i + log(\pi_i)\sim Gumble(log(\pi_i), 1) hi=gi+log(πi)∼Gumble(log(πi),1)
P ( Z = z ) = π i ( 3 ) P(Z=z) = \pi_i \quad(3) P(Z=z)=πi(3)
证明过程:
P ( Z = z ∣ U z = u z ) = ∏ i ≠ z P ( H i < g z + l o g ( π z ) ) P(Z=z | U_z = u_z) = \prod_{i\ne z} P(H_i < g_z + log(\pi_z)) P(Z=z∣Uz=uz)=i=z∏P(Hi<gz+log(πz))
= ∏ i ≠ z P ( G i + l o g ( π i ) < g z + l o g ( π z ) ) =\prod_{i\ne z} P(G_i + log(\pi_i) < g_z + log(\pi_z)) =i=z∏P(Gi+log(πi)<gz+log(πz))
= ∏ i ≠ z P ( U i < u z p i / p z ) = \prod_{i\ne z} P(U_i < u_z^{p_i/p_z}) =i=z∏P(Ui<uzpi/pz)
= ∏ i ≠ z u z p i / p z = u z 1 / p z − 1 = \prod_{i\ne z} u_z^{p_i/p_z} = u_z^{1/p_z - 1} =i=z∏uzpi/pz=uz1/pz−1
P ( Z = z ) = ∫ 0 1 P ( Z = z ∣ U z = u z ) P ( U z = u z ) d u z P(Z = z) = \int_0^1 P(Z=z|U_z = u_z)P(U_z=u_z) du_z P(Z=z)=∫01P(Z=z∣Uz=uz)P(Uz=uz)duz
= ∫ 0 1 u z 1 / p z − 1 ∗ 1 ∗ d u z = \int_0^1 u_z^{1/p_z - 1} * 1 * du_z =∫01uz1/pz−1∗1∗duz
= 1 1 / p z u z 1 / p z ∣ 0 1 = \frac{1}{1/p_z}u_z^{1/p_z}|_0^1 =1/pz1uz1/pz∣01
= p z = p_z =pz