Problem

Załóżmy, że chcemy policzyć gradient wartości oczekiwanej . Nie możemy tutaj wepchnąć gradient pod wartość oczekiwaną. Więc jak to policzyć?

Zastosowania problemu

Kwestia wspomnianego problemu może pojawić się w sieciach neuronowych gdy chcemy robię backpropagację przez warstwę, która ma sampling (np. w Variational Auto Encoder).

Reparametrization trick

Trick polega na tym, aby spróbować zastąpić zmienną losową pochodzącą z rozkładu poprzez inną zmienną pochodzącą z ustalonego rozkład prawdopodobieństwa , niezależnego od . Aby to zrobić, szukamy takiego rozkładu oraz funkcji , że . Jeśli je znajdziemy, to , czyli , a więc udało wsadzić się gradient pod wartość oczekiwaną. Wtedy wartość oczekiwaną gradientu możemy estymować poprzez Monte Carlo, czyli po prostu mając dużo danych robimy średnią z gradientów i tyle. Dostajemy w ten sposób niezbiasowaną estymację gradientu wartości oczekiwanej.

Uwaga: Czasami da się znaleźć taki rozkład i funkcję, czasami nie.

Mniej formalnie: zastępujemy rozkład z którego musimy samplować, a który ma parametr przez który leci backpropagacja, poprzez rozkład ustalony (z ustalonymi parametrami), którego wyjście jest później przekładane przez jakąś funkcję zależną od parametru przez który leci backpropagacja.

Przykład
  1. Rozkład dyskretny można reparametryzować poprzez rozkład Gumbela (Gumbel-softmax trick = concrete distribution.)
  2. Wielowymiarowy rozkład normalny można reparametryzować na standardowy rozkład normalny i później go przekształcić. Wykorzystuje się do tego Rozkład Choleskiego. Samplowanie z wielowymiarowego rozkładu normalnego

Źródło: Probabilistic Artificial Intelligence