# Model generatiu basat en fluxos

Un model generatiu basat en flux és un model generatiu utilitzat en l'aprenentatge automàtic que modela explícitament una distribució de probabilitat aprofitant el flux normalitzador, que és un mètode estadístic que utilitza la llei de probabilitats de canvi de variable per transformar un distribució en un de complex.
La modelització directa de la probabilitat ofereix molts avantatges. Per exemple, la probabilitat logarítmica negativa es pot calcular directament i minimitzar com a funció de pèrdua. A més, es poden generar mostres noves mitjançant el mostreig de la distribució inicial i l'aplicació de la transformació del flux.
En canvi, molts mètodes alternatius de modelització generativa, com ara el codificador automàtic variacional (VAE) i la xarxa adversària generativa, no representen explícitament la funció de probabilitat.

## Mètode

Deixar $z_{0}$ ser una variable aleatòria (possiblement multivariant) amb distribució $p_{0}(z_{0})$.
Per $i=1,...,K$, deixar $z_{i}=f_{i}(z_{i-1})$ ser una seqüència de variables aleatòries transformades de $z_{0}$. Les funcions $f_{1},...,f_{K}$ hauria de ser inversible, és a dir, la funció inversa $f_{i}^{-1}$ existeix. La sortida final $z_{K}$ modela la distribució objectiu.
La probabilitat de registre de $z_{K}$ és (vegeu la derivació):
$\log p_{K}(z_{K})=\log p_{0}(z_{0})-\sum _{i=1}^{K}\log \left|\det {\frac {df_{i}(z_{i-1})}{dz_{i-1}}}\right|$
Per calcular de manera eficient la probabilitat de registre, les funcions $f_{1},...,f_{K}$ hauria de ser 1. fàcil d'invertir, i 2. fàcil de calcular el determinant del seu jacobià. A la pràctica, les funcions $f_{1},...,f_{K}$ es modelen mitjançant xarxes neuronals profundes i s'entrenen per minimitzar la probabilitat de registre negatiu de les mostres de dades de la distribució objectiu. Aquestes arquitectures solen estar dissenyades de manera que només cal el pas endavant de la xarxa neuronal tant en els càlculs inversos com en els determinants jacobians. Alguns exemples d'aquestes arquitectures inclouen NICE, RealNVP, i Glow.

## Derivació de la probabilitat de registre

Considereu $z_{1}$ i $z_{0}$. Tingues en compte que $z_{0}=f_{1}^{-1}(z_{1})$.
Pel canvi de fórmula variable, la distribució de $z_{1}$ és:
$p_{1}(z_{1})=p_{0}(z_{0})\left|\det {\frac {df_{1}^{-1}(z_{1})}{dz_{1}}}\right|$
On $\det {\frac {df_{1}^{-1}(z_{1})}{dz_{1}}}$ és el determinant de la matriu jacobiana de $f_{1}^{-1}$.
Segons el teorema de la funció inversa:
$p_{1}(z_{1})=p_{0}(z_{0})\left|\det \left({\frac {df_{1}(z_{0})}{dz_{0}}}\right)^{-1}\right|$
Per la identitat $\det(A^{-1})=\det(A)^{-1}$ (on $A$ és una matriu invertible), tenim:
$p_{1}(z_{1})=p_{0}(z_{0})\left|\det {\frac {df_{1}(z_{0})}{dz_{0}}}\right|^{-1}$
La probabilitat de registre és així:
$\log p_{1}(z_{1})=\log p_{0}(z_{0})-\log \left|\det {\frac {df_{1}(z_{0})}{dz_{0}}}\right|$
En general, l'anterior s'aplica a qualsevol $z_{i}$ i $z_{i-1}$. Des de $\log p_{i}(z_{i})$ és igual a $\log p_{i-1}(z_{i-1})$ restat per un terme no recursiu, podem inferir per inducció que:
$\log p_{K}(z_{K})=\log p_{0}(z_{0})-\sum _{i=1}^{K}\log \left|\det {\frac {df_{i}(z_{i-1})}{dz_{i-1}}}\right|$

## Aplicacions

* ↑ Tabak, Esteban G.; Turner, Cristina V. Communications on Pure and Applied Mathematics, 66, 2, 2012, pàg. 145–164. DOI: 10.1002/cpa.21423.
* ↑ Papamakarios, George; Nalisnick, Eric; Jimenez Rezende, Danilo; Mohamed, Shakir; Bakshminarayanan, Balaji Journal of Machine Learning Research, 22, 1, 2021, pàg. 2617–2680.
* ↑ Weng, Lilian. «Flow-based Deep Generative Models» (en anglès), 13-10-2018. [Consulta: 21 març 2024].
* ↑ «Normalizing Flow Models (Part 1)» (en anglès). [Consulta: 21 març 2024].