fix abbrev

This commit is contained in:
Laureηt 2023-08-18 09:58:14 +02:00
parent 992a6fd428
commit bc066ad09e
Signed by: Laurent
SSH key fingerprint: SHA256:kZEpW8cMJ54PDeCvOhzreNr4FSh6R13CMGH/POoO8DI

View file

@ -5,7 +5,13 @@
openany
]{book}
% Packages
%%%%%%%%%% Packages %%%%%%%%%%
% pdfx loads both hyperref and xcolor internally
% \usepackage{hyperref}
% \usepackage{xcolor}
\usepackage[a-3u]{pdfx}
\usepackage{fontspec}
\usepackage[nomath]{libertinus-otf}
\usepackage[a4paper, hmargin=2cm, vmargin=3cm]{geometry}
@ -20,11 +26,6 @@
\usepackage{caption}
\usepackage{placeins}
% pdfx loads both hyperref and xcolor internally
% \usepackage{hyperref}
% \usepackage{xcolor}
\usepackage[a-3u]{pdfx}
% We use \hypersetup to pass options to hyperref
\hypersetup{
colorlinks = true,
@ -32,7 +33,7 @@
}
% must be loaded after hyperref
\usepackage{glossaries}
\usepackage[toc,section=chapter]{glossaries}
\renewcommand*{\glstextformat}[1]{\textcolor{black}{#1}}
% paragraph settings
@ -128,11 +129,16 @@
\newacronym{gp}{GP}{Gaussian Process}
\makenoidxglossaries
% \makeglossaries
\newglossary{symbols}{sym}{sbl}{Notations mathématiques et symboles}
% \nomenclature{DDPM}{test}
% \makenomenclature
\newglossaryentry{fn}{
type={symbols},
name={\ensuremath{F_n}},
sort=fn,
description={Empirical (sample) distribution function}
}
\makenoidxglossaries
\begin{document}
@ -151,15 +157,18 @@
\thispagestyle{empty}
\chapter*{Remerciements}
\addcontentsline{toc}{chapter}{Remerciements}
Je tiens à remercier Xavier Roynard, Michel Alessandro Bucci et Brian Staber, mes tuteurs de stage, ainsi que les équipes de Safran pour leur accueil et leur accompagnement tout au long de ce stage.
J'aimerais également remercier l'ensemble de mes professeurs de l'\gls{n7}, pour m'avoir permis d'acquérir les connaissances nécessaires à la réalisation de ce projet.
\gls{fn}
}
Je tiens à remercier Xavier Roynard, Michel Alessandro Bucci et Brian Staber, mes tuteurs de stage, ainsi que les équipes de Safran pour leur accueil et leur accompagnement tout au long de ce stage.
J'aimerais également remercier l'ensemble de mes professeurs de l'\gls{n7}, pour m'avoir permis d'acquérir les connaissances nécessaires à la réalisation de ce projet.
\clearpage
{
\glsresetall
\hypersetup{hidelinks}
\addcontentsline{toc}{chapter}{Table des matières}
\tableofcontents
@ -168,6 +177,7 @@ J'aimerais également remercier l'ensemble de mes professeurs de l'\gls{n7}, pou
\clearpage
{
\glsresetall
\hypersetup{hidelinks}
\addcontentsline{toc}{chapter}{Table des figures}
\listoffigures
@ -176,27 +186,16 @@ J'aimerais également remercier l'ensemble de mes professeurs de l'\gls{n7}, pou
\clearpage
{
\glsresetall
\hypersetup{hidelinks}
\addcontentsline{toc}{chapter}{Glossaire}
\printnoidxglossaries
% \printglossaries
\printnoidxglossary[type=main,title={Abbréviations et acronymes}]
\printnoidxglossary[type=symbols]
}
% {
% \hypersetup{hidelinks}
% \addcontentsline{toc}{chapter}{Nomenclature}
% \printnomenclature
% }
% \listoftables
% \addcontentsline{toc}{chapter}{Liste des tableaux}
\mainmatter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\glsresetall
\chapter{Introduction}
\section{Présentation de l'entreprise}
@ -234,15 +233,15 @@ Les approches d'optimisation assistées par surfaces de réponse permettent de r
\smallskip
En particulier, une représentation latente parcimonieuse de la géométrie faciliterait l'exploration de l'espace de recherche et l'utilisation de métamodèles classiques pour la prédiction des quantités d'intérêt.
Récemment, les modèles génératifs profonds comme les \gls{vae} ou les \gls{gan} ont été appliqués avec succès à des données structurées (e.g. des images). Ceux-ci permettent de construire un espace latent représentatif d'un jeu de données spécifique et de générer de nouveaux échantillons qui partagent des caractéristiques importantes du jeu de données d'entraînement.
Récemment, les modèles génératifs profonds comme les \glspl{vae} ou les \glspl{gan} ont été appliqués avec succès à des données structurées (e.g. des images). Ceux-ci permettent de construire un espace latent représentatif d'un jeu de données spécifique et de générer de nouveaux échantillons qui partagent des caractéristiques importantes du jeu de données d'entraînement.
Cependant, dans le cas de la simulation numérique, les données prennent souvent la forme de graphes en raison de l'utilisation de maillages pour représenter les surfaces des pièces à concevoir. Dans le contexte d'une application industrielle, il est donc crucial d'adapter les modèles susmentionnés afin de pouvoir utiliser des données non structurées en entrée. Les \gls{gnn} permettent de traiter des données non structurées telles que des maillages ou des nuages de points.
Cependant, dans le cas de la simulation numérique, les données prennent souvent la forme de graphes en raison de l'utilisation de maillages pour représenter les surfaces des pièces à concevoir. Dans le contexte d'une application industrielle, il est donc crucial d'adapter les modèles susmentionnés afin de pouvoir utiliser des données non structurées en entrée. Les \glspl{gnn} permettent de traiter des données non structurées telles que des maillages ou des nuages de points.
Différentes solutions ont été proposées dans la littérature pour réaliser des convolutions et agrégations sur graphes ou nuages de points. Cependant, peu d'entre elles conviennent à l'application des réseaux sur graphes sur des données générées par des simulations numériques, car l'ordre de grandeur du nombre de nœuds est généralement trop important.
Le but de ce stage est d'évaluer le potentiel de ces nouvelles méthodes sur des jeux de données réalisés en internes et représentatifs pour Safran. Et éventuellement de proposer des améliorations spécifiques aux maillages utilisés en simulations numériques.
L'étude vise tout d'abord à étudier la bibliographie disponible d'un côté sur les modèles génératifs et d'un autre sur les réseaux convolutionnels sur graphes. L'objectif est, dans une première phase, de faire un benchmark des différentes solutions de modèles génératifs sur graphe de type \gls{vae} et \gls{gan} afin de créer une représentation latente des géométries d'aubes 3D. Pour cela un dataset avec quelques milliers d'échantillons d'aubes 3D et leurs performances aérodynamique est disponible à Safran. Le modèle résultant sera ensuite testé pour générer de nouvelles géométries et pour prédire les quantités d'intérêt par le biais de métamodèles classiques. Enfin, si l'avancement sur les premières tâches le permet, d'autres modèles génératifs peuvent être considérés comme le \gls{nf} ou les \gls{vdm}.
L'étude vise tout d'abord à étudier la bibliographie disponible d'un côté sur les modèles génératifs et d'un autre sur les réseaux convolutionnels sur graphes. L'objectif est, dans une première phase, de faire un benchmark des différentes solutions de modèles génératifs sur graphe de type \gls{vae} et \gls{gan} afin de créer une représentation latente des géométries d'aubes 3D. Pour cela un dataset avec quelques milliers d'échantillons d'aubes 3D et leurs performances aérodynamique est disponible à Safran. Le modèle résultant sera ensuite testé pour générer de nouvelles géométries et pour prédire les quantités d'intérêt par le biais de métamodèles classiques. Enfin, si l'avancement sur les premières tâches le permet, d'autres modèles génératifs peuvent être considérés comme les \glspl{nf} ou les \glspl{vdm}.
\chapter{État de l'art}
@ -253,8 +252,8 @@ Dans le cadre de cette étude, nous nous intéressons à la génération de géo
Il reste pertinent de noter que les méthodes présentées dans ce chapitre sont récentes et que la littérature évolue très rapidement. De plus, les méthodes existantes sont très nombreuses et il est impossible de toutes les présenter. Nous avons donc choisi de présenter les méthodes les plus pertinentes pour permettre une bonne compréhension globale du travail réalisé durant ce stage.
\FloatBarrier
\glsreset{gnn}
\section{\gls{gnn}}
\glsunset{gnn}
\section{\acrfull{gnn}}
Les graphes sont des structures de données qui permettent de représenter des relations entre des entités. Un graphe est défini par un ensemble de nœuds et un ensemble d'arêtes. Les arêtes représentent des relations entre les nœuds. Ces relations peuvent être de différents types, comme des relations de parenté, de proximité ou encore de similarité. Les graphes peuvent être dirigés ou non. Dans le cas d'un graphe dirigé, les arêtes sont orientées et représentent une relation unidirectionnelle. Dans le cas d'un graphe non dirigé, les arêtes ne sont pas orientées et représentent une relation bidirectionnelle. Les graphes peuvent être pondérés ou non. Dans le cas d'un graphe pondéré, les arêtes sont associées à une valeur qui représente l'intensité de la relation entre les nœuds.
@ -269,8 +268,8 @@ Les graphes offrent une représentation intuitive de diverses structures telles
\label{fig:graph_example}
\end{figure}
Les \gls{gnn} sont une famille de modèles qui permettent de traiter ce type de structures de données. Ces modèles sont majoritairement basés sur des opérations de convolution et d'agrégation, similairement aux opérations de convolution et de pooling utilisées dans les réseaux de neurones pour les modalités plus classique comme les images.
On retrouve de même dans les \gls{gnn} des architectures avancées, inspirées des réseaux de neurones classiques, comme les réseaux résiduels~\cite{gao_graph_2019}, les réseaux récurrents~\cite{li_gated_2017} ou l'attention~\cite{velickovic_graph_2018,brody_how_2022}.
Les \glspl{gnn} sont une famille de modèles qui permettent de traiter ce type de structures de données. Ces modèles sont majoritairement basés sur des opérations de convolution et d'agrégation, similairement aux opérations de convolution et de pooling utilisées dans les réseaux de neurones pour les modalités plus classique comme les images.
On retrouve de même dans les \glspl{gnn} des architectures avancées, inspirées des réseaux de neurones classiques, comme les réseaux résiduels~\cite{gao_graph_2019}, les réseaux récurrents~\cite{li_gated_2017} ou l'attention~\cite{velickovic_graph_2018,brody_how_2022}.
% 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
@ -297,8 +296,8 @@ Il existe plusieurs sous familles de modèles génératifs, chacune basées sur
\end{figure}
\FloatBarrier
\glsreset{gan}
\subsection{\gls{gan}}
\glsunset{gan}
\subsection{\acrfull{gan}}
\begin{figure}[h!]
\centering
@ -309,17 +308,17 @@ Il existe plusieurs sous familles de modèles génératifs, chacune basées sur
\label{fig:gan-architecture}
\end{figure}
Les \gls{gan} sont la famille de modèles génératifs la plus renommée et également la plus ancienne~\cite{goodfellow_generative_2014}. Ces modèles reposent sur un principe compétitif impliquant deux réseaux de neurones. Le premier réseau, connu sous le nom de générateur, a pour objectif de produire de nouvelles données. Le deuxième réseau, appelé discriminateur, est chargé de distinguer les données générées par le générateur des données réelles. Le générateur est entraîné à tromper le discriminateur tandis que le discriminateur est entraîné à identifier les données générées par rapport aux données réelles. Cette compétition entre les deux réseaux permet de former le générateur à générer des données de plus en plus réalistes. Ce type d'apprentissage est auto-supervisé, car il ne nécessite pas l'utilisation d'annotations sur les données pour entraîner le modèle.
Les \glspl{gan} sont la famille de modèles génératifs la plus renommée et également la plus ancienne~\cite{goodfellow_generative_2014}. Ces modèles reposent sur un principe compétitif impliquant deux réseaux de neurones. Le premier réseau, connu sous le nom de générateur, a pour objectif de produire de nouvelles données. Le deuxième réseau, appelé discriminateur, est chargé de distinguer les données générées par le générateur des données réelles. Le générateur est entraîné à tromper le discriminateur tandis que le discriminateur est entraîné à identifier les données générées par rapport aux données réelles. Cette compétition entre les deux réseaux permet de former le générateur à générer des données de plus en plus réalistes. Ce type d'apprentissage est auto-supervisé, car il ne nécessite pas l'utilisation d'annotations sur les données pour entraîner le modèle.
Les \gls{gan} ont su démontrer leur efficacité pour générer des images réalistes. Cependant, ces modèles sont très difficiles à entraîner~\cite{arjovsky_towards_2017}. Les \gls{gan} sont par exemple suceptibles à de nombreux problème~\cite{zhao_bias_2018}, tel que le problème de \textit{mode collapse}, où le générateur génère toujours la même image, mais aussi le problème de \textit{non convergence}, où le générateur et/ou le discriminateur ont une fonction de cout instable et ne convergent ainsi pas vers un équilibre de Nash, ou encore au problème de \textit{vanishing gradient}, où le discriminateur devient trop efficace et empêche le générateur d'apprendre.
Les \glspl{gan} ont su démontrer leur efficacité pour générer des images réalistes. Cependant, ces modèles sont très difficiles à entraîner~\cite{arjovsky_towards_2017}. Les \glspl{gan} sont par exemple suceptibles à de nombreux problème~\cite{zhao_bias_2018}, tel que le problème de \textit{mode collapse}, où le générateur génère toujours la même image, mais aussi le problème de \textit{non convergence}, où le générateur et/ou le discriminateur ont une fonction de cout instable et ne convergent ainsi pas vers un équilibre de Nash, ou encore au problème de \textit{vanishing gradient}, où le discriminateur devient trop efficace et empêche le générateur d'apprendre.
Au fil des années, de nombreuses améliorations~\cite{salimans_improved_2016}, variations (WGAN~\cite{arjovsky_wasserstein_2017}, etc.) et cas d'applications (CycleGAN~\cite{zhu_unpaired_2020}, SGAN~\cite{odena_semi-supervised_2016}, SRGAN~\cite{ledig_photo-realistic_2017}, DragGAN~\cite{pan_drag_2023}, 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.
Face à ces inconvénients, et puisque nous ne possédons pas de grandes quantités de données, nous avons choisi de ne pas utiliser cette famille de modèles.
\FloatBarrier
\glsreset{vae}
\subsection{\gls{vae}}
\glsunset{vae}
\subsection{\acrfull{vae}}
\begin{figure}[h]
\centering
@ -330,11 +329,11 @@ Face à ces inconvénients, et puisque nous ne possédons pas de grandes quantit
\label{fig:vae-architecture}
\end{figure}
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.
Les \glspl{vae} constituent une autre famille de modèles génératifs, également bien connue comme les \glspl{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 \glspl{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é inhérente aux \gls{vae}s réside dans l'espace latent intermédiaire situé entre l'encodeur et le décodeur.
La particularité inhérente aux \glspl{vae} 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, 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.
De même, chez les \glspl{vae} 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.
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:
@ -354,13 +353,13 @@ Ainsi, puisque la \gls{kld} est toujours positive et car $\log p(\boldsymbol{x})
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.
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.
Tout comme les \glspl{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 \glspl{vae}. Ces modèles sont plus faciles à entraîner que les \glspl{gan} et présentent une plus grande stabilité. Cependant, les \glspl{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 \glspl{gan}, en particulier pour des résolutions élevées.
% nous avons choisi d'explorer ces modèles dans un premier temps lors de nos experiementations.
\FloatBarrier
\glsreset{nf}
\subsection{\gls{nf}}
\glsunset{nf}
\subsection{\acrfull{nf}}
\begin{figure}[h!]
\centering
@ -373,12 +372,13 @@ Tout comme les \gls{gan}s, de nombreuses améliorations (β-VAE~\cite{burgess_un
% on est capable de calculer exactement le log likelyhood, et donc de train direct dessus, contrairement aux VAE où on train sur l'ELBO ou les GANS où y'a pas du tout de log likelyhood, jsute un minmnax game
Les \gls{nf} sont une autre classe de modèles génératifs qui ont gagné en popularité ces dernières années~\cite{kobyzev_normalizing_2021}, puisque ces méthodes proposent de travailler directement sur les densités de probabilité, contrairement aux \gls{vae} et \gls{gan}. Ces modèles se basent des transformations inversibles (bijectives), continues et différentiables. Ces transformations sont appliquées à une distribution de base, généralement une distribution simple comme une gaussienne isotropique, pour obtenir une distribution plus complexe et plus proche de la distribution des données réelles.
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.
Les \glspl{nf} sont une autre classe de modèles génératifs qui ont gagné en popularité ces dernières années~\cite{kobyzev_normalizing_2021}, puisque ces méthodes proposent de travailler directement sur les densités de probabilité, contrairement aux \glspl{vae} et \glspl{gan}. Ces modèles se basent des transformations inversibles (bijectives), continues et différentiables. Ces transformations sont appliquées à une distribution de base, généralement une distribution simple comme une gaussienne isotropique, pour obtenir une distribution plus complexe et plus proche de la distribution des données réelles.
Les transformations inversibles utilisées dans les \glspl{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.
Dans la littérature, ces réseaux sont assez peu appliqués aux types de données qui nous intéressent, à l'exception notable de PointFlow~\cite{yang_pointflow_2019} qui aura posé certaines bases pour évaluer les réseaux génératifs de nuages de points. Comme par exemple la démocratisation des distances et métriques suivantes:
\subsubsection{\gls{kld}}
\glsunset{kld}
\subsubsection{\acrfull{kld}}
Soit deux distributions de probabilités discrètes $P$ et $Q$ sur un ensemble $X$.
\begin{equation}
@ -386,7 +386,8 @@ Soit deux distributions de probabilités discrètes $P$ et $Q$ sur un ensemble $
\end{equation}
La Divergence de Kullback-Leibler est une mesure de la dissimilarité entre deux distributions de probabilité. Elle évalue la quantité d'information perdue lorsque l'on tente d'approximer une distribution par une autre. La \gls{kld} n'est pas une distance, elle ne satisfait pas la propriété de symétrie ($D_{\text{KL}}(P\|Q) \neq D_{\text{KL}}(Q\|P)$) ni l'inégalité triangulaire ($D_{\text{KL}}(P\|R) \not\leq D_{\text{KL}}(P\|Q) + D_{\text{KL}}(Q\|R)$).
\subsubsection{\gls{hd}}
\glsunset{hd}
\subsubsection{\acrfull{hd}}
Soit $X$ et $Y$ deux nuages de points.
\begin{equation}
@ -394,7 +395,8 @@ Soit $X$ et $Y$ deux nuages de points.
\end{equation}
La distance de Hausdorff est une mesure quantitative utilisée pour évaluer la similarité ou la dissimilarité entre deux ensembles de points dans un espace métrique. Elle calcule la plus grande distance d'un point d'un ensemble à son point le plus proche dans l'autre ensemble. En d'autres termes, elle capture la plus grande distance entre les ensembles, ce qui en fait un outil utile pour comparer des formes, des structures ou des distributions de points.
\subsubsection{\gls{cd}}
\glsunset{cd}
\subsubsection{\acrfull{cd}}
Soit $X$ et $Y$ deux nuages de points.
\begin{equation}
@ -402,7 +404,8 @@ Soit $X$ et $Y$ deux nuages de points.
\end{equation}
La distance de Chamfer est une mesure de similarité entre deux ensembles de points dans un espace métrique. Elle évalue la proximité entre les points des ensembles en calculant la somme des distances entre chaque point d'un ensemble et son point le plus proche dans l'autre ensemble.
\subsubsection{\gls{emd}}
\glsunset{emd}
\subsubsection{\acrfull{emd}}
Soit $X$ et $Y$ deux nuages de points tels que $|X| = |Y|$, et $\phi: X \to Y$ une bijection.
\begin{equation}
@ -410,16 +413,18 @@ Soit $X$ et $Y$ deux nuages de points tels que $|X| = |Y|$, et $\phi: X \to Y$ u
\end{equation}
La distance du transport optimal, également appelée distance du "Earth Mover", est une mesure de similarité entre deux distributions de masse dans un espace métrique. Elle évalue le coût minimum nécessaire pour déplacer une distribution de masse en une autre en respectant certaines contraintes de déplacement. Cette distance est couramment utilisée pour comparer des distributions de données, telles que des histogrammes, des vecteurs de caractéristiques ou des nuages de points, en prenant en compte non seulement les distances entre les éléments correspondants, mais aussi les coûts associés à leur déplacement.
\subsubsection{\gls{jsd}}
\glsunset{jsd}
\subsubsection{\acrfull{jsd}}
Soit $S_g$ un ensemble de nuages de points générés et $S_r$ un ensemble de nuages de points de référence.
\begin{equation}
\text{JSD}(S_g, S_r) = \frac12 D_{\text{KL}}(S_g \| M) + \frac12 D_{\text{KL}}(S_r \| M), \quad M = \frac12 (S_g + S_r)
\end{equation}
La divergence de Jensen-Shannon est une mesure de la similarité entre deux distributions de probabilité. Elle est calculée comme la moyenne des \gls{kld} entre chaque distribution et la moyenne de ces distributions.
La divergence de Jensen-Shannon est une mesure de la similarité entre deux distributions de probabilité. Elle est calculée comme la moyenne des \glspl{kld} entre chaque distribution et la moyenne de ces distributions.
Cependant, la \gls{jsd} utilise la distribution globale des nuages de points et non la distribution des nuages de points individuellements. Ainsi, un modèle qui produit toujours une "forme moyenne" peut obtenir un score \gls{jsd} parfait sans apprendre de distributions significatives.
\subsubsection{\gls{cov}}
\glsunset{cov}
\subsubsection{\acrfull{cov}}
Soit $S_g$ un ensemble de nuages de points générés, $S_r$ un ensemble de nuages de points de référence et $D$ une distance entre nuages de points.
\begin{equation}
@ -429,7 +434,8 @@ La couverture évalue le nombre de nuages de points de référence qui sont appa
La couverture permet de quantifier la diversité des générations mais est sensible à la perte de modes, cependant elle n'évalue pas la qualité des nuages de points générés.
Ainsi, des nuages de points générés de faible qualité mais diversifiés peuvent obtenir des scores de couverture élevés.
\subsubsection{\gls{mmd}}
\glsunset{mmd}
\subsubsection{\acrfull{mmd}}
Soit $S_g$ un ensemble de nuages de points générés, $S_r$ un ensemble de nuages de points de référence et $D$ une distance entre nuages de points.
\begin{equation}
@ -438,7 +444,8 @@ Soit $S_g$ un ensemble de nuages de points générés, $S_r$ un ensemble de nuag
La distance de correspondance minimale, est une mesure qui évalue la différence entre deux ensembles ordonnés. Elle calcule la plus petite somme des distances entre les éléments des deux ensembles.
Cependant, la \gls{mmd} est en réalité très peu sensible aux nuages de points de qualité médiocre dans $S_g$, étant donné leur faible probabilité d'être appariés avec des nuages de points réels dans $S_r$. Dans un cas extrême, on pourrait envisager que $S_g$ soit composé principalement de nuages de points de très mauvaise qualité, mais ayant des sous-ensembles de points très similaires à ceux de $S_r$. Dans ce cas, on obtiendrait un score de raisonnablement élevé.
\subsubsection{\gls{1-nna}}
\glsunset{1-nna}
\subsubsection{\acrfull{1-nna}}
Soit $S_g$ un ensemble de nuages de points générés, $S_r$ un ensemble de nuages de points de référence, $N_X$ les voisins les plus proches de $X$ dans $S_{-X} = S_r \cup S_g - \{X\}$, $N_Y$ les voisins les plus proches de $Y$ dans $S_{-Y} = S_r \cup S_g - \{Y\}$ et $\mathbb{1}$ la fonction indicatrice.
\begin{equation}
@ -449,8 +456,8 @@ Pour chaque point d'un ensemble de nuages de points, cette mesure évalue par un
En supposant que $S_g$ et $S_r$ soient échantillonnés à partir de la même distribution, la précision d'un tel classificateur devrait converger vers 50\% avec un nombre suffisant d'échantillons. Plus la précision se rapproche de 50\%, plus les similarités entre $S_g$ et $S_r$ sont prononcées, ce qui indique une meilleure capacité du modèle à apprendre la distribution cible. Dans notre contexte, le plus proche voisin peut être calculé à l'aide de la \gls{cd} ou de l'\gls{emd}. Contrairement à la \gls{jsd}, le \gls{1-nna} considère la similarité entre les distributions de formes plutôt qu'entre les distributions totale des points. Contrairement au \gls{cov} et au \gls{mmd}, le \gls{1-nna} mesure directement la similarité des distributions et prend en compte à la fois la diversité et la qualité.
\FloatBarrier
\glsreset{vdm}
\subsection{\gls{vdm}}
\glsunset{vdm}
\subsection{\acrfull{vdm}}
\begin{figure}[h!]
\centering
@ -461,18 +468,18 @@ En supposant que $S_g$ et $S_r$ soient échantillonnés à partir de la même di
\label{fig:vdm-architecture}
\end{figure}
Les \gls{vdm}s sont la famille de réseaux générateurs la plus récente et aussi la plus performante~\cite{dhariwal_diffusion_2021}. La manière la plus simple de décrire ces modèles est de les considérer comme une mélange des \gls{vae}s et des \gls{nf}s. En effet, le principe des \gls{vdm}s est de trouver un processus basé sur des transformation stochastiques, discrètes et réversible entre notre distribution de données et distribution totalement différente, mais que l'on connait de préférence parfaitement mathématiquement.
Les \glspl{vdm} sont la famille de réseaux générateurs la plus récente et aussi la plus performante~\cite{dhariwal_diffusion_2021}. La manière la plus simple de décrire ces modèles est de les considérer comme une mélange des \glspl{vae} et des \glspl{nf}. En effet, le principe des \glspl{vdm} est de trouver un processus basé sur des transformation stochastiques, discrètes et réversible entre notre distribution de données et distribution totalement différente, mais que l'on connait de préférence parfaitement mathématiquement.
Plusieurs catégories de modèles sont disponibles pour aborder le problème de la diffusion, parmi lesquelles émerge la plus reconnue, à savoir les \gls{ddpm}~\cite{ho_denoising_2020}. Cette approche vise à identifier une correspondance entre les données observées et une distribution gaussienne standard. Ce processus est appris au moyen d'un modèle paramétrique (i.e. un réseau de neurones).
Plusieurs catégories de modèles sont disponibles pour aborder le problème de la diffusion, parmi lesquelles émerge la plus reconnue, à savoir les \glspl{ddpm}~\cite{ho_denoising_2020}. Cette approche vise à identifier une correspondance entre les données observées et une distribution gaussienne standard. Ce processus est appris au moyen d'un modèle paramétrique (i.e. un réseau de neurones).
Dans leur architecture, les \gls{vdm}s peuvent être vus comme une chaine de Markov de \gls{vae}s hiérarchiques avec trois restrictions notable:
Dans leur architecture, les \glspl{vdm} peuvent être vus comme une chaine de Markov de \glspl{vae} hiérarchiques avec trois restrictions notable:
\begin{itemize}
\item La dimension latente est exactement égale à la dimension des données d'entrée.
\item La structure de l'encodeur est fixe et pré-définie. Il s'agit d'un encodeur linéaire gaussien, c'est-à-dire une distribution gaussienne centrée autour de la sortie de l'étape précédente.
\item Les paramètres de l'encodeur varient au cours du temps de sorte que la distribution latente à l'étape finale $T$ soit une gaussienne standard.
\end{itemize}
On note $q$ les "encodeurs" et $p$ les "décodeurs" des \gls{vae}s de la chaine de Markov, $x_0 \sim \boldsymbol{x}_0$ un échantillon de notre distribution de données, $x_T \sim \boldsymbol{x}_T$ un échantillon d'une normale isotropique, et $x_t \sim \boldsymbol{x}_t$ tout échantillon intermédiaire, avec $t$ le temps de diffusion, $T$ le temps final de diffusion.
On note $q$ les "encodeurs" et $p$ les "décodeurs" des \glspl{vae} de la chaine de Markov, $x_0 \sim \boldsymbol{x}_0$ un échantillon de notre distribution de données, $x_T \sim \boldsymbol{x}_T$ un échantillon d'une normale isotropique, et $x_t \sim \boldsymbol{x}_t$ tout échantillon intermédiaire, avec $t$ le temps de diffusion, $T$ le temps final de diffusion.
D'après les contraintes précédentes, on peut écrire pour le forward process:
\begin{equation}
@ -499,13 +506,13 @@ On peut finalement simplifier cette expression via une reparamétrisation:
\end{equation}
Si l'on réeffectue une dérivation de l'\gls{elbo} avec ces nouvelles expressions, on en conclut qu'il suffit de trouver une approximation $\epsilon_\theta (\boldsymbol{x}_t, t) \approx \epsilon_0$. En pratique on utilise un réseau de neurones que l'on entraine à minimiser $|\| \epsilon_0 - \epsilon_\theta (\boldsymbol{x}_t, t) \|_2^2$. Une fois cette approximation trouvée, on peut facilement remonter à $p_\theta (\boldsymbol{x}_{t-1} | \boldsymbol{x}_t)$.
Il est possible de démontrer théoriquement~\cite{luo_understanding_2022} l'équivalence entre les \gls{vdm}s et les méthodes de score matching~\cite{song_generative_2020} lorsque $T$ tend vers l'infini. Les méthodes de score matching, constituent une famille de techniques permettant l'estimation de la densité de probabilité associée à un ensemble de données. Elles se basent exclusivement sur le calcul du gradient de cette densité de probabilité, éliminant ainsi la nécessité du calcul laborieux d'une constante de normalisation. Une fois le gradient estimé, la densité de probabilité peut être retrouvée au moyen de méthodes d'échantillonnage telles que la méthode de recuit de Langevin~\cite{song_generative_2020}.
Il est possible de démontrer théoriquement~\cite{luo_understanding_2022} l'équivalence entre les \glspl{vdm} et les méthodes de score matching~\cite{song_generative_2020} lorsque $T$ tend vers l'infini. Les méthodes de score matching, constituent une famille de techniques permettant l'estimation de la densité de probabilité associée à un ensemble de données. Elles se basent exclusivement sur le calcul du gradient de cette densité de probabilité, éliminant ainsi la nécessité du calcul laborieux d'une constante de normalisation. Une fois le gradient estimé, la densité de probabilité peut être retrouvée au moyen de méthodes d'échantillonnage telles que la méthode de recuit de Langevin~\cite{song_generative_2020}.
Après avoir achevé l'entraînement adéquat de notre modèle, nous acquérons ainsi la capacité de débruiter nos données altérées par un bruit gaussien. Néanmoins, l'intérêt majeur réside dans le fait de solliciter notre réseau pour débruiter du bruit blanc (i.e. $\mathcal{N}(0, \sigma^2), \text{SNR}=0$). De ce fait, le réseau commence à halluciner reconstructions qui présentent une forte ressemblance avec nos données d'entraînement, il génère donc de nouvelles données.
\FloatBarrier
\glsreset{ldm}
\subsubsection{\gls{ldm}}
\glsunset{ldm}
\subsubsection{\acrfull{ldm}}
\begin{figure}[h!]
\centering
@ -516,9 +523,9 @@ Après avoir achevé l'entraînement adéquat de notre modèle, nous acquérons
\label{fig:ldm-architecture}
\end{figure}
Une amélioration significative des \gls{vdm}s réside dans la mise en œuvre intelligente des espaces latents. Cette méthode, dénommée \gls{ldm}~\cite{rombach_high-resolution_2022}, repose sur l'observation selon laquelle l'exploitation des informations latentes (souvent de dimensions nettement réduites), tout comme pour les \gls{vae}s, confère des avantages substantiels en termes de représentativité des données. La transition des \gls{vdm} vers les \gls{ldm} consiste en l'introduction préalable d'un second modèle, qu'il soit paramétrique ou non, destiné à obtenir une représentation alternative de nos données.
Une amélioration significative des \glspl{vdm} réside dans la mise en œuvre intelligente des espaces latents. Cette méthode, dénommée \gls{ldm}~\cite{rombach_high-resolution_2022}, repose sur l'observation selon laquelle l'exploitation des informations latentes (souvent de dimensions nettement réduites), tout comme pour les \glspl{vae}, confère des avantages substantiels en termes de représentativité des données. La transition des \glspl{vdm} vers les \glspl{ldm} consiste en l'introduction préalable d'un second modèle, qu'il soit paramétrique ou non, destiné à obtenir une représentation alternative de nos données.
Les \gls{vae}s sont fréquemment employés à cet effet. L'entrainement des \gls{ldm}s ne changent pas par rapport aux \gls{vdm}s, seul le domaine d'apprentissage du modèle est modifié. Ainsi cette approche induit généralement une réduction de la complexité du réseau, entraînant ainsi une diminution du temps nécessaire à l'entraînement, tout en exerçant une influence forte sur la qualité des résultats obtenus.
Les \glspl{vae} sont fréquemment employés à cet effet. L'entrainement des \glspl{ldm} ne changent pas par rapport aux \glspl{vdm}, seul le domaine d'apprentissage du modèle est modifié. Ainsi cette approche induit généralement une réduction de la complexité du réseau, entraînant ainsi une diminution du temps nécessaire à l'entraînement, tout en exerçant une influence forte sur la qualité des résultats obtenus.
\FloatBarrier
\subsubsection{Conditionnement \& Guidance}
@ -563,8 +570,8 @@ Dans notre cas d'application, nous pouvons conditionner sur les scalaires repres
\cite{zeng_lion_2022}
\FloatBarrier
\glsreset{arm}
\subsection{\gls{arm}}
\glsunset{arm}
\subsection{\acrfull{arm}}
\begin{figure}[h!]
\centering
@ -580,8 +587,8 @@ Les modèles auto-régressifs sont des méthodes de génération de séquences q
% fouttre des figures algos, ça sera plus simple
\FloatBarrier
\glsreset{nerf}
\subsection{\gls{nerf}}
\glsunset{nerf}
\subsection{\acrfull{nerf}}
\begin{figure}[h!]
\centering
@ -592,15 +599,15 @@ Les modèles auto-régressifs sont des méthodes de génération de séquences q
\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~\cite{mildenhall_nerf_2020}. 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 et implicites des scènes en décrivant les propriétés radiométriques et géométriques en chaque point de l'espace 3D.
Les \glspl{nerf} représentent une autre famille de modèles génératifs qui ont gagné en popularité récemment~\cite{mildenhall_nerf_2020}. 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 \glspl{nerf} exploitent des représentations continues et implicites 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.
Le principe des \glspl{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.
L'un des aspects fascinants des \gls{nerf} réside dans leur capacité à apprendre des scènes complexes et à générer des rendus à partir d'un nombre limité de vues ou de données d'entraînement. Grâce à leur architecture neuronale et à leur capacité à modéliser la distribution des couleurs et des formes, les \gls{nerf} sont en mesure de synthétiser des scènes réalistes même à partir de quelques images.
L'un des aspects fascinants des \glspl{nerf} réside dans leur capacité à apprendre des scènes complexes et à générer des rendus à partir d'un nombre limité de vues ou de données d'entraînement. Grâce à leur architecture neuronale et à leur capacité à modéliser la distribution des couleurs et des formes, les \glspl{nerf} sont en mesure de synthétiser des scènes réalistes même à partir de quelques images.
Les \gls{nerf} sont donc une alternative aux méthodes traditionnelles de reconstructions de scènes par résolution du problème inverse 3D. Cependant ces modèles peuvent aussi être utilisé conjointement avec d'autres réseau pour permettre d'obtenir des réseaux génératifs~\cite{nichol_point-e_2022,takikawa_neural_2021,nam_3d-ldm_2022}.
Les \glspl{nerf} sont donc une alternative aux méthodes traditionnelles de reconstructions de scènes par résolution du problème inverse 3D. Cependant ces modèles peuvent aussi être utilisé conjointement avec d'autres réseau pour permettre d'obtenir des réseaux génératifs~\cite{nichol_point-e_2022,takikawa_neural_2021,nam_3d-ldm_2022}.
Dans notre cas, étant donné que notre jeu de données n'est pas adapté à l'application des \gls{nerf}, car cela nécessiterait un processus de prétraitement complexe (comprenant la conversion de nos maillages/scènes en images via un moteur de rendu) ainsi qu'un post-traitement conséquent (utilisation du "marching cube") de notre ensemble de données. Par conséquent, nous ne choisirons pas d'adopter cette approche. De plus, dans le contexte industriel, les outils destinés à la manipulation d'objets implicites ne sont pas encore suffisamment avancés pour être déployés en production.
Dans notre cas, étant donné que notre jeu de données n'est pas adapté à l'application des \glspl{nerf}, car cela nécessiterait un processus de prétraitement complexe (comprenant la conversion de nos maillages/scènes en images via un moteur de rendu) ainsi qu'un post-traitement conséquent (utilisation du "marching cube") de notre ensemble de données. Par conséquent, nous ne choisirons pas d'adopter cette approche. De plus, dans le contexte industriel, les outils destinés à la manipulation d'objets implicites ne sont pas encore suffisamment avancés pour être déployés en production.
\chapter{Déroulement du stage}
@ -660,11 +667,12 @@ Chaque employé dispose d'une station de travail sous la forme d'un ordinateur p
En complément de ma recherche bibliographique, j'ai consacré du temps à tester différentes implémentations des papiers que j'ai pu trouver. Voici la liste des implémentations et idées que j'ai pris le temps d'évaluer, ainsi que mes observations à leur sujet. plus ou moins chronolgique
\subsection{Approche par \gls{vae}}
\glsunset{vae}
\subsection{Approche par \acrfull{vae}}
% parler du fait que pytorch geometric à facilité un peu la tache d'implem
L'une de nos premières initiatives a été de tester des réseaux basés sur les \gls{vae}. Après avoir lu des articles de recherche sur les \gls{vae}, j'ai réalisé plusieurs implémentations sur des images pour me familiariser avec ces concepts. Nous avons ensuite étendu ces expérimentations à des architectures spécifiques aux graphes. Les résultats obtenus étaient encourageants: le réseau était capable de générer des structures, mais la qualité des générations n'était pas exceptionnelle. De plus, nous avons constaté que le réseau était beaucoup trop volumineux par rapport à sa fonctionnalité.
L'une de nos premières initiatives a été de tester des réseaux basés sur les \glspl{vae}. Après avoir lu des articles de recherche sur les \glsglspl{vae}, j'ai réalisé plusieurs implémentations sur des images pour me familiariser avec ces concepts. Nous avons ensuite étendu ces expérimentations à des architectures spécifiques aux graphes. Les résultats obtenus étaient encourageants: le réseau était capable de générer des structures, mais la qualité des générations n'était pas exceptionnelle. De plus, nous avons constaté que le réseau était beaucoup trop volumineux par rapport à sa fonctionnalité.
En effet, dans le contexte des graphes, les opérations de "upsampling" n'existent pas de manière directe. Par conséquent, nous avons rencontré des difficultés lors du passage du vecteur latent (représentant une distribution gaussienne) à une représentation sous forme de graphe (noeuds + connectivité) dans le décodeur du \gls{vae}.
@ -676,11 +684,13 @@ Une seconde solution consitait à utiliser une architecture plus intelligente, t
Face aux difficultés rencontrées avec les réseaux basés sur les VAE et les limitations de l'architecture Graph U-Net, nous avons pris la décision de mettre de côté ces approches. Et plus largement puisque la connectivité de nos graphes est "locale" (les noeuds sont connectés à leurs voisins proches dans l'espace), nous avons décidé de nous orienter vers des approches basées uniquement sur les positions des noeuds. En effet, la connectivité d'un nuage de points peut facilement être retrouvé via diverses techniques~\cite{peng_shape_2021,sulzer_deep_2022}
\subsection{Approche par \gls{nf}}
\glsunset{nf}
\subsection{Approche par \acrfull{nf}}
% Pointflow (à l'origine du dataset PointFlow, une modif de shapenet, code à chier)
\subsection{Approche par \gls{vdm}}
\glsunset{vdm}
\subsection{Approche par \acrfull{vdm}}
Pour prédire le bruit dans le processus de diffusion, conformément à la section intitulée "État de l'art" dans ce document, il est essentiel de sélectionner une architecture de réseau de neurones. Dans notre cas, puisque nous travaillons sur nuages de points, il convient d'utiliser des architectures adaptées à ce type de données.
@ -717,7 +727,8 @@ le plus récent
Les premiers résultats concluant que nous avons obtenus ont été avec l'architecture KPFCNN. Cette architecture est basée sur PointNet++ et utilise des convolutions de type KPConv. Nous avons utilisé cette archi pour prédire le bruit lors de l'entraiment d'un \gls{vdm} (schedulers via huggingface diffusers). Les résultats étaient encourageants, mais nous avons constaté que le réseau avait du mal à apprendre à prédire le bruit en fin de sampling. en effet, les aubes finales semblaient encore un peu bruitées.
<insérer image ici>
\subsection{Approche par \gls{ldm}}
\glsunset{ldm}
\subsection{Approche par \acrfull{ldm}}
Pour essayer d'améliorer ces résultats, on peut apprendre à faire de la diffusion sur des variables latente, plutout que direct sur nos données. avantage, réduciton de dimension + informtion latente.
@ -727,11 +738,13 @@ on test d'autres méthodes parameter free, comme la POD, marche moins bien
second temps, on compress nuages de points via un AE, pas encore finis, mais inch ça marche
\subsection{Application du \gls{cfg}}
\glsunset{cfg}
\subsection{Application du \acrfull{cfg}}
conditionnemnt, classifier-free guidance
\subsection{Vérification par \gls{gp}}
\glsunset{gp}
\subsection{Vérification par \acrfull{gp}}
pour vérif si la génération est bonne, on entraine des GP