From bf5b05a84e877391fddd1b0a0b752f71ec05e901 Mon Sep 17 00:00:00 2001
From: Jan Aalmoes <jan.aalmoes@inria.fr>
Date: Wed, 11 Sep 2024 00:10:50 +0200
Subject: Preuve existe f pas cca equivalant exists f BA pas randomguess

---
 synthetic/methodology.tex | 143 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 143 insertions(+)
 create mode 100644 synthetic/methodology.tex

(limited to 'synthetic/methodology.tex')

diff --git a/synthetic/methodology.tex b/synthetic/methodology.tex
new file mode 100644
index 0000000..db3861e
--- /dev/null
+++ b/synthetic/methodology.tex
@@ -0,0 +1,143 @@
+Dans cete section nous allons discuter de l'approche expérimentale que nous allons suivre pour apporter des élément de réponse à la question posée précédement.
+Nous commencont par présenter le jeu de donnée et le générateur que nous utilisons. 
+Ensuite nous parlerons du modèle cible que nous entraînons avec le sortie du générateur.
+Ainsi nous pourrons présenter les attaque de confidentialité pris en compte dans cette étude.
+A la Section~\ref{sec:ovr} nous metrons en avant un particulartié de notre méthodologie : comment nous controlons le niveau d'\textit{overfitting} du générateur et du modèle cible.
+Finalement, nous montrons une représentation graphique du procédé dans son entiéretest, des données réeles jusqu'au résultat expérrimentaux dans la Figure~\ref{fig:split}.
+
+\subsection{Jeu de donnée}
+Notre étude ce concentre sur Adult que nous avons déjà présenté à la section~\ref{sec:aia-methodo-jeu}.
+%It allows us to experiments with various types of generators (cf. Section~\ref{sec:gen}) and target models (cf. Section~\ref{sec:target}).
+
+Pour ce chapitre, la tâche de classification que nous allons considérer est la prédiction binaire suivante : est-ce qu'un individu à un travial ou non.
+Nous étudirons la couleur de peau comme attribut sensible.
+Dans le rencenemnt des USA\footnote{\textit{Census}} l'éthnie est encodée par neuf classes.
+Nous transformon l'ethnie en un attribut binaire en encodan les personnes à la peau noir avec un un ($1$) et toutes les autres avec un ($0$).
+Ainsi, dans les contexte d'une AIA, le but de l'attaquant est d'inférer si une personne à la peau noir.
+
+Nous n'utilisrons pas directment de rencesment de USA, nous utiliserons une version adapté à l'étude de l'équitée : \textit{Retiring adult}~\cite{ding2021retiring}.
+Cette version à formaté la base de donnée que l'on peut télécharger sur le site du gouvernement des USA pour le rendre facilement interfacable avec des outils standard du language Python come pandas, numpy ou scikit-learn.
+Cela nous permet de séléctioner, l'état, l'année, la tâche de classification et les attributs senssiebles facilement.
+Pour des raison pratiques, principalement de taille de stockage et de puissane de calcul, nous nous limitons aux données de l'Alabama du recensemelt de 2018.
+Ce sous ensemble contient les données de 47777 presonnes.
+
+\subsection{Entraînement de générateur}
+\label{sec:synth-gen}
+Dans cette édute, nous considérons une variante du GAN :
+CTGAN~\cite{ctgan}.
+CTAGN est un GAN conditionel spécialiement concu pour des données tabulaires hétérogènes.
+Ce générateur prend en considération des attributs aussi bien qualitatif que quantitatif.
+Par exemplen, l'attribue emploie est qualitatif là où la taille est quantitaif.
+Dans nos experiences nous utilisons l'implémentation de CTGAN du \textit{Synthetic Data Vault} (SDV)~\footnote{sdv.dev}.
+
+\subsection{Entraînement du prédicteur}
+\label{sec:synth-target}
+Nous utilisons une forête aléatoire avec cent arbres pour la tâche de classification du modèle cible : inféré si la personne à un travail.
+Nous utilisant l'implémentation de scikit-learn de la forêt aléatoire.
+
+Pour évaluer les tâche de classification nous utilisons la \textit{balanced accuracy} que nous avons présenté en Section~\ref{sec:background-ml-classification}.
+
+\subsection{Moèdele d'attaque} 
+Nous utilisons étudions deux notions de confidentialité : l'AIA et la MIA.
+Concernant l'AIA nous n'étudions ici que la version de l'attaque qui utilise les logits, celle que nous avons présenté à la section~\ref{sec:aia-soft}.
+
+\subsubsection{Inférence de l'appartenance  (MIA)}
+To perform MIA we do not use shadow models but rather adopt an approach similar to Yeom et all~\cite{yeom}. 
+We consider the attacker already has a dataset of the losses with their corresponding membership status ($m$ or $\bar{m}$).
+Hence our methodology gives an upper bound with respect to shadow models. 
+Because our study focuses on synthetic data, the members are the points used to train the generator and not the points used to train the target model as we describe in Figure~\ref{fig:split}.
+
+\subsection{Contrôle de l'\textit{overfitting}}
+Les attaque MIA donnent habituelle d'assez faible résultatons, spécialiement pour de faible taux de faux positif~\cite{stadler2020synthetic}.
+Ainsi pour pouvoir juger de l'impacte des données synthetique sur le risque de MIA nous augmentont artificielment l'\textit{overfitting} avec la fonction OVR CTRL.
+Nous appliquons OVR CTRL à la fois sur les donnée synthétique et sur les donnée réel ainsi nous pouvons obtenons des résultat comparables pour ces deux cas.
+\label{sec:ovr}
+\begin{figure}
+    \centering
+    \input{synthetic/figure/tikz/ovre}
+    \caption{Dans cette figure nous détaillons la fonction OVR CTRL.
+    Cette fonction contrôle le niveau d'\textit{overfitting} du modèle cible.
+    Elle prend en entrée une base de donnée de taille $N$ et en ressort une autre de taille $M$.
+    Dans un premier temps, nous séléctionons $N$ lignes de manière aléatoire que nous appelons $r_0,\cdots,r_{N-1}$.
+    Ensuite, nous répétons le lignes $\lfloor\frac{M}{N}\rfloor$ fois.
+    Enfin nous melangons la base de donnée obtenue.}
+    \label{fig:aia-ovr}
+\end{figure}
+
+Avant d'utiliser les donnée réel pour entraîner le générateur, nous leurs appliquons la fonction OVR CTRL.
+Cette fonction contrôle le niveau d'{overfitting} du générateur
+par de l'échantillionage, de la répétition et une permutation aléatoire~\footnote{shuffle}.
+Nous décrivons en détail le fonctionement de cette fonction dans la Figure~\ref{fig:aia-ovr}.
+OVR CTRL duplique $N$ donée réel pour crée une nouvelle base de donée contenant $M$ lignes.
+Quand $N$ est inférieur à $M$, chaque donée est vue plusieurs fois à chaque époque de l'entraînement.
+
+Nous observons empitiquelent que le modèle cible \textit{overfit} plus pour certaines valeurs de $N$.
+Nous représentons cela sur la Figre~\ref{fig:tune_ovr}, sur le jeu Adult, pour 5000 point différent l'utilité et la qualité de de donnée synthétiqeus sont hautes (supérieur à $0,7$ de \textit{balanced accuracy}) tout en ateigant une MIA de $0,54$ ce qui indique une fuite de la qualité d'apartenance au jeu d'entraînement.
+Nous choisisson donc 5000 donnée difféentes ($N=5000$) pour un base de donnée de taille 100000 ($M=100000$).
+
+\begin{figure}
+    \centering
+    \begin{subfigure}{0.45\linewidth}
+        \includegraphics[width=\textwidth]{synthetic/figure/method/overfit/quality.pdf}
+        \caption{Qualitée de donnée synthétiques.}
+    \end{subfigure}
+    \begin{subfigure}{0.45\linewidth}
+        \includegraphics[width=\textwidth]{synthetic/figure/method/overfit/utility.pdf}
+        \caption{Utilitée des données synthétiques.}
+    \end{subfigure}
+    \begin{subfigure}{0.45\linewidth}
+        \includegraphics[width=\textwidth]{synthetic/figure/method/overfit/mia.pdf}
+        \caption{Sensibilité à l'attaque MIA.}
+    \end{subfigure}
+    \begin{subfigure}{0.45\linewidth}
+        \includegraphics[width=\textwidth]{synthetic/figure/method/overfit/aia.pdf}
+        \caption{Sensibilité à l'attaque AIA.}
+    \end{subfigure}
+    \caption{Méthodolgie de recherche d'une niveau de répétition qui permette de satisfaire une haute utilitée et sensibilité à la MIA.
+    Nous utilisons un total de 100000 points.
+    Dans cet expericence nous utilisons uniquement le générateur CTGAN.}
+
+    \label{fig:aia-tune_ovr}
+\end{figure}
+\subsection{Cheminement de données}
+Dans cette section, ne décrivons comment les différentes étapes par lesquelle passent le données au trauvers de notre précédé experimentale.
+La Figure~\ref{fig:synth-split} représene ce cheminement.
+Nous commencons par les donnée réel que nous partageons en jeu d'entraînment ($m$) et jeu d'évaluiation ($\bar{m}$).
+Le jeu d'entraînement commence par passer par la fonction OVR CTRL, ensuite il est utilisé pour entraînement de générateur.
+Si le générateur est l'identitée, alors $m$ est aussi la sortie du générateur.
+Nous utilisons cette sortie pour entraîner le target modèle.
+Uniquement $\bar{m}$ est utilisé pour évaluer l'utilitée du target modèle.
+Sur la Figure~\ref{fig:synth-split} nous avaons appele prédiction la sortie du target modèle évalue sur $\bar{m}$.
+
+Cette prédiction, en plus d'être utilisé pour le calcul de l'utilité, sert a construire la base de donnée qui sert à l'AIA.
+Cela assure que le modèle de menace de l'attaque AIA décrit à la Section~\ref{sec:aia-tm}, c'est à dire que l'attaquant n'est que accès à des données qui n'ont pas été vus à l'entraînement.
+Ensuite nous séparons le jeu de donnée AIA en évaluation et entraînement pour calculer la \textit{balanced accuracy} de cette attaque.
+
+Finally, we run the MIA represented in the bottom part of Figure~\ref{fig:split}.
+In addition of prediction, the target model outputs the losses of $m$ and $\bar{m}$ which we use to build the MIA dataset.
+Similarly to AIA, we split the MIA dataset to train and evaluate the MIA model.
+
+Each one of the split is repeated five times in a cross-validation setting.
+\label{sec:data}
+\begin{figure}
+\centering
+\input{synthetic/figure/tikz/data_split/split}
+    \caption{This figure presents the data splits and subsets used to compute results.
+    It is a representation of the whole methodology described in this sections.
+    The reader may start on the top left corner, with the real data.
+    The rectangle boxes represents functions where the inputs are incoming arrows and the outputs out comings arrows.
+    In the case of trainable functions such as machine learning models, we indicate that an input is the training data with the label "training".
+    We use a similar notation for evaluation.
+    }
+    \label{fig:split}
+\end{figure}
+
+\subsection{Comparisons between synthetic and real data}
+In Section~\ref{sec:res}, we compare metrics computed using two generators: the identity to try the pipeline with real data and a GAN to try the pipeline with synthetic data.
+In each of the following experiments, when comparing results, every parameters are the same except for the generator used.
+It allows us to attribute observed significative differences between metrics to solely the usage of synthetic or real data.
+
+We repeat every experiment with cross validation, hence utility results are computed five times and MIA and AIA results are computed 25 times.
+We display the results in the form of boxplots and we decide if the gap between two boxplots is significant or not using an analysis of variance (anova).
+In this test the null hypothesis is: The results from real and synthetic data have the same mean.
+If the p-value of the Fisher test is less than 0.01 we reject the null hypothesis and conclude that using synthetic data over real data has an impact.
-- 
cgit v1.2.3

