ajout metrics et distances

This commit is contained in:
Laureηt 2023-08-16 15:40:36 +02:00
parent d6036d79e1
commit b40a4b78b5
Signed by: Laurent
SSH key fingerprint: SHA256:kZEpW8cMJ54PDeCvOhzreNr4FSh6R13CMGH/POoO8DI

View file

@ -7,11 +7,13 @@
% Packages % Packages
\usepackage{fontspec} \usepackage{fontspec}
\usepackage{libertinus-otf} \usepackage[nomath]{libertinus-otf}
\usepackage[a4paper, hmargin=2cm, vmargin=3cm]{geometry} \usepackage[a4paper, hmargin=2cm, vmargin=3cm]{geometry}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{microtype} \usepackage{microtype}
\usepackage{amsmath} \usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{bbold}
\usepackage[numbers]{natbib} \usepackage[numbers]{natbib}
\usepackage[french]{babel} \usepackage[french]{babel}
\usepackage{glossaries} \usepackage{glossaries}
@ -60,41 +62,58 @@
2022 — 2023 2022 — 2023
} }
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}
\newacronym{ssa}{Safran S.A.}{Safran Société Anonyme} \newacronym{ssa}{Safran S.A.}{Safran Société Anonyme}
\newacronym{n7}{ENSEEIHT}{École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunications} \newacronym{n7}{ENSEEIHT}{École nationale supérieure d'électrotechnique, d'électronique, d'informatique, d'hydraulique et des télécommunications}
\newacronym{pfe}{PFE}{Projet de Fin d'Études} \newacronym{pfe}{PFE}{Projet de Fin d'Études}
\newacronym{gnn}{GNN}{Graph Neural Networks}
\newacronym{cnn}{CNN}{Convolutional Neural Network}
\newacronym{pvcnn}{PVCNN}{Point-Voxel CNN}
\newacronym{arm}{ARM}{Auto-Regressive Model}
\newacronym{nf}{NF}{Normalizing Flows}
\newacronym{vdm}{VDM}{Variational Diffusion Model}
\newacronym{ldm}{LDM}{Latent Diffusion Model}
\newacronym{ddpm}{DDPM}{Denoising Diffusion Probabilistic Model}
\newacronym{ae}{AE}{Auto-Encoder}
\newacronym{vae}{VAE}{Variational Auto-Encoder}
\newacronym{gan}{GAN}{Generative Adversarial Network}
\newacronym{nerf}{NeRF}{Neural Radiance Fields}
\newacronym{gp}{GP}{Gaussian Process}
\newacronym{cfg}{CFG}{Classifier-Free Guidance}
\newacronym{ml}{ML}{Machine Learning} \newacronym{ml}{ML}{Machine Learning}
\newacronym{dl}{DL}{Deep Learning} \newacronym{dl}{DL}{Deep Learning}
\newacronym{ai}{AI}{Artificial Intelligence} \newacronym{ai}{AI}{Artificial Intelligence}
\newacronym{pca}{PCA}{Principal Component Analysis}
\newacronym{pod}{POD}{Proper Orthogonal Decomposition}
\newacronym{pde}{PDE}{Partial Differential Equation}
\newacronym{cfd}{CFD}{Computational Fluid Dynamics}
\newacronym{ann}{ANN}{Artificial Neural Network} \newacronym{ann}{ANN}{Artificial Neural Network}
\newacronym{mlp}{MLP}{Multi-Layer Perceptron} \newacronym{pde}{PDE}{Partial Differential Equation}
\newacronym{relu}{ReLU}{Rectified Linear Unit}
\newacronym{mse}{MSE}{Mean Squared Error} \newacronym{mse}{MSE}{Mean Squared Error}
\newacronym{mae}{MAE}{Mean Absolute Error} \newacronym{mae}{MAE}{Mean Absolute Error}
\newacronym{rmse}{RMSE}{Root Mean Squared Error} \newacronym{rmse}{RMSE}{Root Mean Squared Error}
\newacronym{mape}{MAPE}{Mean Absolute Percentage Error} \newacronym{mape}{MAPE}{Mean Absolute Percentage Error}
\newacronym{pca}{PCA}{Principal Component Analysis}
\newacronym{pod}{POD}{Proper Orthogonal Decomposition}
\newacronym{relu}{ReLU}{Rectified Linear Unit}
\newacronym{mlp}{MLP}{Multi-Layer Perceptron}
\newacronym{cfd}{CFD}{Computational Fluid Dynamics}
\newacronym{cnn}{CNN}{Convolutional Neural Network}
\newacronym{pvcnn}{PVCNN}{Point-Voxel CNN}
\newacronym{gnn}{GNN}{Graph Neural Networks}
\newacronym{gan}{GAN}{Generative Adversarial Network}
\newacronym{ae}{AE}{Auto-Encoder}
\newacronym{vae}{VAE}{Variational Auto-Encoder}
\newacronym{nf}{NF}{Normalizing Flows}
\newacronym{kld}{KLD}{Kullback-Leibler Divergence}
\newacronym{hd}{HD}{Haussdorf Distance}
\newacronym{cd}{CD}{Chamfer Distance}
\newacronym{emd}{EMD}{Earth Mover Distance}
\newacronym{jsd}{JSD}{Jensen-Shannon Divergence}
\newacronym{cov}{COV}{Coverage}
\newacronym{mmd}{MMD}{Minimum Matching Distance}
\newacronym{1-nna}{1-NNA}{1-Nearest Neighbor Accuracy}
\newacronym{vdm}{VDM}{Variational Diffusion Model}
\newacronym{ldm}{LDM}{Latent Diffusion Model}
\newacronym{cfg}{CFG}{Classifier-Free Guidance}
\newacronym{ddpm}{DDPM}{Denoising Diffusion Probabilistic Model}
\newacronym{arm}{ARM}{Auto-Regressive Model}
\newacronym{nerf}{NeRF}{Neural Radiance Fields}
\newacronym{gp}{GP}{Gaussian Process}
\makenoidxglossaries \makenoidxglossaries
% \nomenclature{DDPM}{test} % \nomenclature{DDPM}{test}
@ -297,7 +316,7 @@ De même, la dimension de cette espace latent est configurée par l'architecture
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. 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}, de nombreuses améliorations ($\beta$-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. 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.
% parler de l'opti du log likely hood, de l'elbo, placer ce qu'on optimise quoi % parler de l'opti du log likely hood, de l'elbo, placer ce qu'on optimise quoi
@ -321,7 +340,63 @@ nous avons choisi d'explorer ces modèles dans un premier temps lors de nos expe
Les \gls{nf} sont une autre classe de modèles génératifs qui ont gagné en popularité ces dernières années, 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 \gls{nf} sont une autre classe de modèles génératifs qui ont gagné en popularité ces dernières années, 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 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.
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. 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}}
Soit deux distributions de probabilités discrètes $P$ et $Q$ sur un ensemble $X$.
$$ D_{\text{KL}}(P\|Q) = \sum_{x \in X} P(x) \log \frac{P(x)}{Q(x)} $$
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 KLD est asymétrique et non métrique, ce qui signifie qu'elle ne satisfait pas la propriété de symétrie ($D_{\text{KL}}(P\|Q) \neq D_{\text{KL}}(Q\|P)$) ni la propriété de distance triangulaire ($D_{\text{KL}}(P\|R) \leq D_{\text{KL}}(P\|Q) + D_{\text{KL}}(Q\|R)$). Cette mesure est fréquemment utilisée pour quantifier la différence entre une distribution estimée et une distribution de référence, comme dans le cas de l'entropie croisée en apprentissage automatique.
\subsubsection{\gls{hd}}
Soit $X$ et $Y$ deux nuages de points.
$$ d_\text{H}(X, Y) = \max \left\{ \sup_{x \in X} \inf_{y \in Y} d(x,y), \sup_{y \in Y} \inf_{x \in X} d(x, y) \right\} $$
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}}
Soit $X$ et $Y$ deux nuages de points.
$$ d_{\text{CD}}(X, Y) = \sum_{x \in X} \min_{y \in Y} \|x - y\|^2_2 + \sum_{y \in Y} \min_{x \in X} \|x - y\|^2_2 $$
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. La distance de Chamfer est souvent utilisée pour évaluer la correspondance entre des nuages de points 3D, des images ou d'autres représentations géométriques, la rendant ainsi utile dans des tâches telles que la correspondance d'objets et la reconstruction.
\subsubsection{\gls{emd}}
Soit $X$ et $Y$ deux nuages de points tels que $|X| = |Y|$, et $\phi: X \to Y$ une bijection.
$$ d_{\text{EMD}}(X, Y) = \min_{ \phi: X \to Y } \sum_{x \in X} \| x - \phi(x) \|_2 $$
La distance du transport optimal, également appelée distance du "Earth Mover", est une mesure de la différence 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. L'EMD est particulièrement utile pour quantifier les différences et les similitudes entre des distributions de manière robuste et significative.
\subsubsection{\gls{jsd}}
Soit $P_g$ un ensemble de nuages de points générés par un modèle génératif, et $P_r$ un ensemble de nuages de points de référence, tel que $|P_g| = |P_r|$.
$$ \text{JSD}(P_g, P_r) = \frac12 D_{\text{KL}}(P_g \| M) + \frac12 D_{\text{KL}}(P_r \| M), \quad M = \frac12 (P_g + P_r) $$
La divergence de Jensen-Shannon est une mesure de la similarité entre deux distributions de probabilité. Elle est calculée comme la moyenne des divergences de Kullback-Leibler (KL) entre chaque distribution et la moyenne de ces distributions. La \gls{jsd} capture la différence et la similarité entre les distributions en prenant en compte à la fois les régions où les distributions ont des valeurs élevées et les régions où elles ont des valeurs faibles. Elle est utilisée pour évaluer la différence entre deux ensembles de données probabilistiques, tels que des distributions de probabilités de mots dans le traitement du langage naturel ou des distributions de probabilités de caractéristiques dans des analyses de données.
\subsubsection{\gls{cov}}
$$ \text{COV}(S_g, S_r) = \frac{ | \{ \argmin_{Y \in S_r} D(X, Y) | X \in S_g \} | }{ |S_r| } $$
La couverture est une mesure qui évalue l'étendue de la portée d'un modèle par rapport à un ensemble de données de référence. Elle mesure la proportion des données de référence qui sont correctement capturées ou prédites par le modèle. En d'autres termes, la couverture quantifie la capacité du modèle à inclure un large éventail de situations ou d'exemples du jeu de données de référence. Cette mesure est fréquemment utilisée pour évaluer la performance des modèles de prédiction, de classification ou de recommandation, en mettant l'accent sur la capacité du modèle à traiter l'ensemble des cas possibles plutôt que simplement ceux qui sont courants ou faciles à prédire.
\subsubsection{\gls{mmd}}
$$ \text{MMD}(S_g, S_r) = \frac{1}{|S_r|} \sum_{Y \in S_r} \min_{X \in S_g} D(X, Y) $$
La distance de correspondance minimale, est une mesure qui évalue la différence entre deux ensembles ordonnés, tels que des rangements ou des permutations. Elle calcule la plus petite somme des distances entre les éléments des deux ensembles, en cherchant la correspondance optimale entre eux. La MMD est souvent utilisée pour quantifier la similitude ou la dissimilitude entre les ordres préférentiels, les classements ou les séquences d'éléments. Cette mesure est appliquée dans divers domaines, notamment le classement des préférences, la biologie computationnelle et la recherche d'informations.
\subsubsection{\gls{1-nna}}
$$ \text{1-NNA}(S_g, S_r) = \frac{ \sum_{X \in S_g} \mathbb{1}[N_X \in S_g] + \sum_{Y \in S_r} \mathbb{1}[N_Y \in S_r] }{ |S_g| + |S_r| } $$
\FloatBarrier \FloatBarrier
\glsreset{vdm} \glsreset{vdm}