section math vae

This commit is contained in:
Laureηt 2023-08-17 15:26:21 +02:00
parent ebad378dc9
commit 8b4bcaf5f0
Signed by: Laurent
SSH key fingerprint: SHA256:kZEpW8cMJ54PDeCvOhzreNr4FSh6R13CMGH/POoO8DI
2 changed files with 20 additions and 9 deletions

BIN
assets/vae-architecture.png (Stored with Git LFS)

Binary file not shown.

View file

@ -329,19 +329,28 @@ Face à ces inconvénients, et puisque nous ne possédons pas de grandes quantit
\label{fig:vae-architecture}
\end{figure}
Les \gls{vae} constituent une autre famille de modèles génératifs, également bien connue comme les \gls{gan} et relativement tout aussi anciens~\cite{kingma_auto-encoding_2022,kipf_variational_2016,doersch_tutorial_2021}. Ces modèles reposent sur l'entraînement simultané de deux réseaux de neurones: un encodeur et un décodeur. L'objectif de l'encodeur est de transformer les données d'entrée en une distribution de probabilité, tandis que le décodeur génère de nouvelles données à partir de cette distribution. Comme pour les \gls{gan}, ces modèles visent à estimer une distribution de données qui se rapproche le plus possible de la distribution des données d'entraînement, c'est-à-dire qu'ils apprennent à reproduire fidèlement les données d'origine.
Les \gls{vae}s constituent une autre famille de modèles génératifs, également bien connue comme les \gls{gan}s et relativement tout aussi anciens~\cite{kingma_auto-encoding_2022,kipf_variational_2016,doersch_tutorial_2021}. Ces modèles reposent sur l'entraînement simultané de deux réseaux de neurones: un encodeur et un décodeur. L'objectif de l'encodeur est de transformer les données d'entrée en une distribution de probabilité, tandis que le décodeur génère de nouvelles données à partir de cette distribution. Comme pour les \gls{gan}s, ces modèles visent à estimer une distribution de données qui se rapproche le plus possible de la distribution des données d'entraînement, c'est-à-dire qu'ils apprennent à reproduire fidèlement les données d'origine.
La particularité inhérente aux \gls{vae} réside dans l'espace latent intermédiaire situé entre l'encodeur et le décodeur.
La particularité inhérente aux \gls{vae}s réside dans l'espace latent intermédiaire situé entre l'encodeur et le décodeur.
La recherche sur l'interprétabilité des réseaux de neurones et leur visualisations~\cite{olah2017feature} établissent que les espaces latents permettent d'extraire les informations sous-jacentes (non directement perceptibles) des données d'entrée. Travailler sur ces informations s'avère avantageux car elles décrivent plus simplement et précisement les données d'entrée.
De même, la dimension de cette espace latent est configurée par l'architecture du réseau et peut être réduite à volonté. L'encodeur et le décodeur peuvent ainsi être conceptualisés comme des opérateurs de compression et de décompression.
De même, chez les \gls{vae}s la dimension de cette espace latent est configurée par l'architecture du réseau et peut être réduite à volonté. L'encodeur et le décodeur peuvent ainsi être conceptualisés comme des opérateurs de compression et de décompression.
L'intéret de cet espace latent, lorsqu'il est accompagné de sont decodeur, est qu'il permet de générer de nouvelles données, par example en échantillonant $z = \mu + \sigma \odot \epsilon$, ou bien en interpolant entre deux points latents, ou encore en modifiant légèrement un point spécifique de cet espace. Avoir la possibilité de générer de nouvelles données semblables aux données d'origine se révèle extrêmement utile dans le domaine de l'ingénierie, offrant ainsi des possibilités de création et de conception de nouvelles données basées sur des modèles existants.
Mathématiquement, on peut modéliser ces variables latentes et nos données d'entrée par une distribution jointe $p(\boldsymbol{x}, \boldsymbol{z})$. Les approches génératives ont pour but de trouver un modèle maximisant la maximum vraissemblance de nos données d'entrée $p(\boldsymbol{x})$.
En pratique, maximiser directement la vraissemblance est impossible car cela reviendrait à calculer la marginalisation:
$$ p(\boldsymbol{x}) = \int p(\boldsymbol{x}, \boldsymbol{z}) d\boldsymbol{z}$$
Cependant, il est tout de même possible de trouver une borne inférieure de l'évidence, appelée \gls{elbo}:
\begin{align*}
p(\boldsymbol{x}) \propto \log p(\boldsymbol{x}) & = \mathbb{E}_{ q_\phi( \boldsymbol{z} | \boldsymbol{x} ) } \left[ \log \frac{ p(\boldsymbol{x}, \boldsymbol{z}) } { q(\boldsymbol{z}|\boldsymbol{x}) }\right] - D_{\text{KL}}(q_\phi(\boldsymbol{z}|\boldsymbol{x}) \ \| \ p(\boldsymbol{z}|\boldsymbol{x})) \\
& \geq \mathbb{E}_{ q_\phi( \boldsymbol{z} | \boldsymbol{x} ) } \left[ \log \frac{ p(\boldsymbol{x}, \boldsymbol{z}) } { q_\phi(\boldsymbol{z}|\boldsymbol{x}) }\right]
\end{align*}
Ainsi, puisque la \gls{kld} est toujours positive et car $\log p(\boldsymbol{x})$ est constant par rapport à $\phi$, maximiser l'\gls{elbo} revient à maximiser la vraissemblance de nos données d'entrée $p(\boldsymbol{x})$. En simplifiant l'\gls{elbo}, on dérive une fonction de coût pour l'entrainement du \gls{vae}:
$$ \mathbb{E}_{ q_\phi( \boldsymbol{z} | \boldsymbol{x} ) } \left[ \log \frac{ p(\boldsymbol{x}, \boldsymbol{z}) } { q_\phi(\boldsymbol{z}|\boldsymbol{x}) }\right] = \underbrace{ \mathbb{E}_{ q_\phi( \boldsymbol{z} | \boldsymbol{x} ) } [ \log p_\theta(\boldsymbol{x}|\boldsymbol{z}) ]}_{\text{reconstruction term}} - \underbrace{ D_{\text{KL}}(q_\phi(\boldsymbol{z}|\boldsymbol{x}) \ \| \ p(\boldsymbol{z})) }_{\text{prior matching term}} $$
Tout comme les \gls{gan}, de nombreuses améliorations (β-VAE~\cite{burgess_understanding_2018,higgins_beta-vae_2022,alemi_deep_2019}, f-VAE~\cite{su_f-vaes_2018}) et variations (SetVAE~\cite{kim_setvae_2021}, AutoDecoder~\cite{shah_auto-decoding_2020}, GraphVAE~\cite{simonovsky_graphvae_2018}) ont été proposées pour les \gls{vae}. Ces modèles sont plus faciles à entraîner que les \gls{gan} et présentent une plus grande stabilité. Cependant, les \gls{vae} ont tendance à générer des données floues et peu réalistes~\cite{yacoby_failure_2021}, et en général produisent des résultats de moins bonne qualité que les \gls{gan}, en particulier pour des résolutions élevées.
Une fois convergence atteinte, l'intéret de cet espace latent, lorsqu'il est accompagné de sont decodeur, est qu'il permet de générer de nouvelles données, par example en échantillonant $z = \mu + \sigma \odot \epsilon$, ou bien en interpolant entre deux points latents, ou encore en modifiant légèrement un point spécifique de cet espace. Avoir la possibilité de générer de nouvelles données semblables aux données d'origine se révèle extrêmement utile dans le domaine de l'ingénierie, offrant ainsi des possibilités de création et de conception de nouvelles données basées sur des modèles existants.
% parler de l'opti du log likely hood, de l'elbo, placer ce qu'on optimise quoi
Tout comme les \gls{gan}s, de nombreuses améliorations (β-VAE~\cite{burgess_understanding_2018,higgins_beta-vae_2022,alemi_deep_2019}, f-VAE~\cite{su_f-vaes_2018}) et variations (SetVAE~\cite{kim_setvae_2021}, AutoDecoder~\cite{shah_auto-decoding_2020}, GraphVAE~\cite{simonovsky_graphvae_2018}) ont été proposées pour les \gls{vae}s. Ces modèles sont plus faciles à entraîner que les \gls{gan}s et présentent une plus grande stabilité. Cependant, les \gls{vae}s ont tendance à générer des données floues et peu réalistes~\cite{yacoby_failure_2021}, et en général produisent des résultats de moins bonne qualité que les \gls{gan}s, en particulier pour des résolutions élevées.
nous avons choisi d'explorer ces modèles dans un premier temps lors de nos experiementations.
% nous avons choisi d'explorer ces modèles dans un premier temps lors de nos experiementations.
\FloatBarrier
\glsreset{nf}
@ -723,6 +732,8 @@ pour vérif si la génération est bonne, on entraine des GP
\appendix
% TODO: faire une annexe avec une chié de formules
%% ajouter les annexes ici
\backmatter