vault backup: 2024-12-11 13:29:42

This commit is contained in:
Marco Realacci 2024-12-11 13:29:42 +01:00
parent f358dcd161
commit c26179e4fe
16 changed files with 427 additions and 59 deletions

View file

@ -35,9 +35,9 @@ A questo punto io vorrei massimizzare $$\log\ p(x) = \log\ \int p(x,z) \, dz$$
ma come faccio se non posso calcolare l'integrale esatto (mica conosco quelle distribuzioni) e non posso semplificarlo ulteriormente? Posso provare a definire un lower bound (un qualcosa che è sempre minore di $log\ p(x)$ e che però posso calcolarlo).
Posso usare un trick e moltiplicare $\frac{q_\phi(z \mid x)}{q_\phi(z \mid x)} = 1$ dentro l'integrale: $$\log p(x) = \log \int p(x,z) \frac{q_\phi(z \mid x)}{q_\phi(z \mid x)} \, dz$$
Interpretandola notiamo che $\int q_\phi(z \mid x)\ dz$ non è altro che il valore atteso di quella distribuzione: $$log\ p(x) = \log \mathbb{E}_{{q_{\phi}(z|x)}}\left[ \frac{p(x, z)}{q_{\phi}(z|x)} \right]$$
Usando la disuguaglianza di Jensen, sposto il log dentro e ottengo: $$log\ p(x) = \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log \frac{p(x, z)}{q_{\phi}(z|x)} \right]$$
Ora uso la formula di Bayes per sostituire $p(x,z)$ come descritto prima: $$log\ p(x) = \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log \frac{p(xz)p(z)}{q_{\phi}(z|x)} \right]$$
Ora splitto in due il logaritmo (uso le proprietà solite dei logaritmi): $$log\ p(x) = \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log p(xz) + \log \frac{p(z)}{q_{\phi}(z|x)} \right]$$
Usando la disuguaglianza di Jensen, sposto il log dentro e ottengo: $$log\ p(x) \geq \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log \frac{p(x, z)}{q_{\phi}(z|x)} \right]$$
Ora uso la formula di Bayes per sostituire $p(x,z)$ come descritto prima: $$log\ p(x) \geq \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log \frac{p(xz)p(z)}{q_{\phi}(z|x)} \right]$$
Ora splitto in due il logaritmo (uso le proprietà solite dei logaritmi): $$log\ p(x) \geq \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log p(xz) + \log \frac{p(z)}{q_{\phi}(z|x)} \right]$$
$$= \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log p(xz)\right] + \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log \frac{p(z)}{q_{\phi}(z|x)} \right]$$
Ma hey, la seconda parte è la formula della KL divergenza! $$= \mathbb{E}_{{q_{\phi}(z|x)}}\left[\log p(xz)\right] + D_{KL}(q_{\phi}(x|z)||p(z))$$
Ora possiamo usare questa come funzione loss. La prima parte ci indica quanto bene il modello (decoder) genera l'immagine x dato il vettore z nello spazio latente, è quindi una misura della qualità della ricostruzione dei dati, dovrà essere ottimizzata per migliorare la capacità del modello di ricostruire correttamente gli input x.