ajout de figures

This commit is contained in:
Laureηt 2023-07-06 15:24:48 +02:00
parent 42aa3963f9
commit 8b9afbc1ac
6 changed files with 60 additions and 33 deletions

BIN
assets/arm-architecture.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/ldm-architecture.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/nerf-architecture.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/nf-architecture.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/vdm-architecture.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -228,7 +228,7 @@ On retrouve de même dans les \gls{gnn} des architectures avancées, inspirées
% Mais on retrouve aussi des architectures spécifiques aux \gls{gnn} comme PointNet\cite{qi_pointnet_2017,qi_pointnet_2017-1} ou GraphSAGE\cite{hamilton_inductive_2017}, qui ne permettent de traiter uniquement que des données non structurées
Les applications les plus courantes de ces réseaux incluent la classification\cite{kipf_semi-supervised_2017} de documents, la détection de fraudes\cite{ma_comprehensive_2021} et les systèmes de recommandation\cite{gao_survey_2023}. En revanche, la génération de graphes est moins répandue et se limite souvent dans la littérature à la génération de petites molécules\cite{kipf_graph_2020}.
Les applications les plus courantes de ces réseaux incluent la classification\cite{kipf_semi-supervised_2017} de documents, la détection de fraudes\cite{ma_comprehensive_2021} et les systèmes de recommandation\cite{gao_survey_2023}. En revanche, la génération de graphes est moins répandue et se limite souvent dans la littérature à la génération de petites molécules\cite{kipf_graph_2020,simonovsky_graphvae_2018}.
\FloatBarrier
\section{Modèles génératifs}
@ -265,19 +265,10 @@ Les \gls{gan} ont su démontrer leur efficacité pour générer des images réal
Au fil des années, de nombreuses améliorations\cite{salimans_improved_2016}, variations et cas d'applications (WGAN\cite{arjovsky_wasserstein_2017}, CycleGAN\cite{zhu_unpaired_2020}, SGAN\cite{odena_semi-supervised_2016}, DiscoGAN\cite{kim_learning_2017}, SRGAN\cite{ledig_photo-realistic_2017}, etc.) ont été proposées, mais ces modèles restent complexes à entraîner et à évaluer. De plus, ces modèles sont très sensibles aux hyperparamètres et nécessitent une grande quantité de données pour être efficaces.
% https://lilianweng.github.io/posts/2017-08-20-gan/
% TODO plein de refs à choper dans le blog
% placer auto-supervisé
% placer, le but est d'apprendre une distribution de données qui se rapproche fortement de la distribution des données d'entrainement
% on esssaie donc d'apprend l'identité
\FloatBarrier
\glsreset{vae}
\subsection{\gls{vae}}
% vae, voisins des AE
\begin{figure}[h]
\centering
\includegraphics[width=14cm]{vae-architecture.png}
@ -287,33 +278,27 @@ Au fil des années, de nombreuses améliorations\cite{salimans_improved_2016}, v
\label{fig:vae-architecture}
\end{figure}
Les \gls{vae} sont une deuxième famille de modèles génératifs, probablement tout aussi connus que les \gls{gan}, et plutôt ancien. Ces modèles sont basés sur deux réseaux de neurones entrainés conjointement: un encodeur et un décodeur. Le but de l'encodeur est de transformer les données d'entrée en une distribution de probabilité, tandis que le but du décodeur est de générer de nouvelles données à partir de cette distribution. Tout comme pour les \gls{gan}, le principe de ces modèles est donc d'estimer une distribution de données qui se rapproche fortement de la distribution des données d'entrainement, on leur demande donc d'apprendre l'identité.
Les \gls{vae} constituent une autre famille de modèles génératifs, également bien connue comme les \gls{gan} et sont relativement 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 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.
La particulité des \gls{vae} provient donc de cet espace (latent) intermédiaire entre l'encodeur et le décodeur. Cet espace est défini par l'architecture du réseau et peut ainsi être aussi petit que l'on le souhaite. L'encodeur et décodeur peuvent alors être vu comme des opérateurs de compressions et de décompression.
Cet espace latent permet de générer de nouvelles données en interpolant entre deux points de cet espace. Cet espace latent permet aussi de générer de nouvelles données en modifiant légèrement un point de cet espace. Ces deux propriétés permettent de générer de nouvelles données à partir de données existantes, ce qui est très utile dans le domaine de l'ingénierie.
Les \gls{vae} constituent une autre famille de modèles génératifs, également bien connue comme les \gls{gan} et sont relativement anciens \cite{kipf_variational_2016}. 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 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.
La particularité des VAE réside dans l'espace latent intermédiaire entre l'encodeur et le décodeur. Cette dimension latente est définie par l'architecture du réseau et peut être réduite à volonté. L'encodeur et le décodeur peuvent ainsi être considérés comme des opérateurs de compression et de décompression.
La particularité des \gls{vae} réside dans l'espace latent intermédiaire entre l'encodeur et le décodeur. Cette dimension latente est définie par l'architecture du réseau et peut être réduite à volonté. L'encodeur et le décodeur peuvent ainsi être considérés comme des opérateurs de compression et de décompression.
L'intéret de cet espace latent est qu'il permet de générer de nouvelles données en interpolant entre deux points de cet espace. De même, il permet de générer de nouvelles données en modifiant légèrement un point spécifique de cet espace. Ces deux caractéristiques permettent la génération de nouvelles données à partir de données existantes, ce qui 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.
\cite{burgess_understanding_2018}
\cite{simonovsky_graphvae_2018}
\cite{kingma_auto-encoding_2022}
\cite{alemi_deep_2019}
\cite{shah_auto-decoding_2020}
\cite{doersch_tutorial_2021}
\cite{yacoby_failure_2021}
\cite{kim_setvae_2021}
\cite{salha-galvan_contributions_2022}
\cite{higgins_beta-vae_2022}
Tout comme les \gls{gan}, de nombreuses améliorations\cite{burgess_understanding_2018,higgins_beta-vae_2022,alemi_deep_2019} et variations\cite{kim_setvae_2021,shah_auto-decoding_2020,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.
\FloatBarrier
\glsreset{nf}
\subsection{\gls{nf}}
\begin{figure}[h!]
\centering
\includegraphics[width=14cm]{nf-architecture.png}
\caption{Architecture d'un \gls{nf}}
\vspace*{-11pt}
\caption*{Source: \href{https://lilianweng.github.io/posts/2018-10-13-flow-models/}{Lilian Weng, 2018}}
\label{fig:nf-architecture}
\end{figure}
Les \gls{nf} sont une autre classe de modèles génératifs qui ont gagné en popularité ces dernières années. Ces modèles se basent des transformations inversibles et différentiables. Ces transformations sont appliquées à une distribution de base, généralement une distribution simple comme une gaussienne, pour obtenir une distribution plus complexe et plus proche de la distribution des données réelles.
L'idée principale des \gls{nf} est d'apprendre à modéliser la transformation de la distribution de base vers la distribution cible. Les transformations inversibles utilisées dans les \gls{nf} sont souvent paramétrisées par des réseaux de neurones, ce qui permet d'apprendre des fonctions non linéaires complexes. En utilisant plusieurs transformations en séquence, on peut construire des modèles génératifs flexibles capables de capturer des distributions complexes.
@ -325,17 +310,26 @@ L'idée principale des \gls{nf} est d'apprendre à modéliser la transformation
\glsreset{vdm}
\subsection{\gls{vdm}}
\begin{figure}[h!]
\centering
\includegraphics[width=14cm]{vdm-architecture.png}
\caption{Architecture d'un \gls{vdm}}
\vspace*{-11pt}
\caption*{Source: \href{https://lilianweng.github.io/posts/2021-07-11-diffusion-models/}{Lilian Weng, 2021}}
\label{fig:vdm-architecture}
\end{figure}
\FloatBarrier
\glsreset{ldm}
\subsection{\gls{ldm}}
\begin{figure}[h]
\begin{figure}[h!]
\centering
\includegraphics[width=14cm]{ae-architecture.png}
\caption{Architecture d'un \gls{ae}}
\includegraphics[width=14cm]{ldm-architecture.png}
\caption{Architecture d'un \gls{ldm}}
\vspace*{-11pt}
\caption*{Source: \href{https://lilianweng.github.io/posts/2018-08-12-vae/}{Lilian Weng, 2018}}
\label{fig:ae-architecture}
\caption*{Source: Rombach \& Blattmann, et al.\cite{rombach_high-resolution_2022}}
\label{fig:ldm-architecture}
\end{figure}
\cite{song_generative_2020}
@ -351,6 +345,15 @@ L'idée principale des \gls{nf} est d'apprendre à modéliser la transformation
\glsreset{arm}
\subsection{\gls{arm}}
\begin{figure}[h!]
\centering
\includegraphics[width=14cm]{arm-architecture.png}
\caption{Architecture d'un \gls{arm}}
\vspace*{-11pt}
\caption*{Source: \href{https://colah.github.io/posts/2015-08-Understanding-LSTMs/}{Christopher Olah, 2015}}
\label{fig:arm-architecture}
\end{figure}
\cite{nash_polygen_2020}
\cite{liao_efficient_2020}
@ -358,6 +361,15 @@ L'idée principale des \gls{nf} est d'apprendre à modéliser la transformation
\glsreset{nerf}
\subsection{\gls{nerf}}
\begin{figure}[h!]
\centering
\includegraphics[width=14cm]{nerf-architecture.png}
\caption{Architecture d'un \gls{nerf}}
\vspace*{-11pt}
\caption*{Source: \href{https://theaisummer.com/nerf/}{AI Summer, 2022}}
\label{fig:nerf-architecture}
\end{figure}
Les \gls{nerf} représentent une autre famille de modèles génératifs qui ont gagné en popularité récemment. Ces modèles ont la capacité de générer des rendus 3D hautement réalistes à partir de données d'entraînement en utilisant des réseaux de neurones. Contrairement aux approches traditionnelles de rendu 3D basées sur des maillages, les \gls{nerf} exploitent des représentations continues des scènes en décrivant les propriétés radiométriques et géométriques en chaque point de l'espace 3D.
Le principe des \gls{nerf} est de modéliser une fonction de densité de rayon (ou "ray density function") qui caractérise l'interaction de la lumière avec les objets de la scène. Cette fonction est ensuite utilisée pour estimer la couleur et la profondeur des rayons traversant la scène, permettant ainsi de générer des images photoréalistes.