summaryrefslogtreecommitdiff
path: root/synthetic/methodology.tex
blob: c1cd2b85cd4e9bd1ba2c460d40903e682faceb7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Dans cette section nous allons discuter de l'approche expérimentale que nous allons suivre pour apporter des éléments de réponse à la question posée précédemment.
Nous commencerons par présenter le jeu de données et le générateur que nous utilisons. 
Ensuite, nous parlerons du modèle cible que nous entraînons avec la sortie du générateur.
Ainsi nous pourrons présenter les attaques de confidentialité prises en compte dans cette étude.
A la Section~\ref{sec:ovr} nous mettrons en avant une particularité de notre méthodologie : comment nous contrôlons le niveau de sur-ajustement du générateur et du modèle cible.
Finalement, nous montrerons une représentation graphique du procédé dans son entièreté, des données réelles jusqu'aux résultats expérimentaux dans la Figure~\ref{fig:synth-split}.

\subsection{Jeu de données}
Notre étude se concentre sur Adult, que nous avons déjà présenté à la section~\ref{sec:aia-methodo-jeu}.
Pour ce chapitre, la tâche de classification que nous allons considérer est la prédiction binaire suivante : est-ce qu'un individu a un travail ou non.
Nous étudierons la couleur de peau comme attribut sensible.
Dans le recensement des États-Unis\footnote{\textit{Census}} l'ethnie est encodée par neuf classes.
Nous transformons l'ethnie en un attribut binaire en encodant les personnes à la peau noire avec un un ($1$) et toutes les autres avec un zéro ($0$).
Ainsi, dans les contextes d'une AIA, le but de l'adversaire est d'inférer si une personne a la peau noire.

Nous n'utiliserons pas directement le recensement des États-Unis, mais une version adaptée à l'étude de l'équité : \textit{Retiring adult}~\cite{ding2021retiring}.
Cette version a formaté la base de données que l'on peut télécharger sur le site du gouvernement des États-Unis pour la rendre facilement interfaçable avec des outils standards du langage Python comme pandas, numpy ou scikit-learn.
Cela nous permet de sélectionner l'état, l'année, la tâche de classification et les attributs sensibles facilement.
Pour des raisons pratiques, principalement de taille de stockage et de puissance de calcul, nous nous limitons aux données de l'Alabama du recensement de 2018.
Ce sous-ensemble contient les données de 47.777 personnes.

\subsection{Entraînement du générateur}
\label{sec:synth-gen}
Dans cette étude, nous considérons une variante du GAN :
CTGAN~\cite{ctgan}.
CTGAN est un GAN conditionnel spécialement conçu pour des données tabulaires hétérogènes.
Ce générateur prend en considération des attributs aussi bien qualitatifs que quantitatifs.
Par exemple, l'attribut \textit{emploi} est qualitatif là où la \textit{taille} est quantitatif.
Dans nos expériences, 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êt aléatoire avec cent arbres pour la tâche de classification du modèle cible : inféré si la personne a un travail.
Nous utilisons l'implémentation de scikit-learn de la forêt aléatoire.

Pour évaluer les tâches de classification, nous utilisons l'exactitude équilibrée que nous avons présentée en Section~\ref{sec:background-ml-classif}.

\subsection{Modèle d'attaque} 
Nous é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ée à la Section~\ref{sec:aia-soft}.

\subsubsection{Inférence de l'appartenance  (MIA)}
Concernant la MIA, nous n'utilisons pas des modèles miroirs, nous adoptons plutôt une approche similaire à celle de Yeom et al.~\cite{yeom}.
Nous considérons que l'adversaire a à sa disposition une base de données qui contient les coûts et leur statut d'appartenance correspondant ($m$ or $\bar{m}$).
C'est donc la même méthodologie que celle que nous avons utilisée pour présenter la MIA à la Section~\ref{sec:background-ml-mia}.
Cette méthodologie entraîne un risque plus élevé pour la confidentialité que l'utilisation de modèles miroirs ; c'est donc une évaluation qui permet d'avoir des garanties relativement fortes de protection par rapport aux attaques pratiques.
Comme cette étude se concentre sur les données synthétiques, les membres ($m$) sont les points utilisés pour entraîner le générateur et non pas les points utilisés pour entraîner le modèle cible comme nous pouvons le voir sur la Figure~\ref{fig:synth-split}.

\subsection{Contrôle du sur-ajustement}
Les attaques MIA donnent habituellement des résultats assez faibles, spécialement pour de faibles taux de faux positifs~\cite{stadler2020synthetic}.
Ainsi, pour pouvoir juger de l'impact des données synthétiques sur le risque de MIA, nous augmentons artificiellement le sur-ajustement avec la fonction OVR CTRL.
Nous appliquons OVR CTRL à la fois sur les données synthétiques et sur les données réelles ainsi nous obtenons des résultats 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 de sur-ajustement du modèle cible.
    Elle prend en entrée une base de données de taille $N$ et en ressort une autre de taille $M$.
    Dans un premier temps, nous sélectionnons $N$ lignes de manière aléatoire que nous appelons $r_0,\cdots,r_{N-1}$.
    Ensuite, nous répétons les lignes $\lfloor\frac{M}{N}\rfloor$ fois.
    Enfin nous mélangeons la base de données obtenue.}
    \label{fig:aia-ovr}
\end{figure}

Avant d'utiliser les données réelles pour entraîner le générateur, nous leur appliquons la fonction OVR CTRL.
Cette fonction contrôle le niveau de sur-ajustement du générateur
par de l'échantillonnage, de la répétition et une permutation aléatoire~\footnote{shuffle}.
Nous décrivons en détail le fonctionnement de cette fonction dans la Figure~\ref{fig:aia-ovr}.
OVR CTRL duplique $N$ données réelles pour créer une nouvelle base de données contenant $M$ lignes.
Quand $N$ est inférieur à $M$, chaque donnée est vue plusieurs fois à chaque époque de l'entraînement.

Nous observons empiriquement que le modèle cible sur-ajuste plus pour certaines valeurs de $N$.
Nous représentons cela sur la Figure~\ref{fig:synth-tune_ovr}, sur le jeu Adult, pour 5000 points différents, l'utilité et la qualité des données synthétiques sont hautes (supérieures à $0,7$ d'exactitude équilibrée) tout en atteignant une MIA de $0,54$ ce qui indique une fuite de la qualité d'appartenance au jeu d'entraînement.
Nous choisissons donc 5000 données différentes ($N=5000$) pour une base de données de taille 100000 ($M=100000$).

\begin{figure}
    \centering
    \begin{subfigure}{0.45\linewidth}
        \includegraphics[width=\textwidth]{synthetic/figure/method/overfit/quality.pdf}
        \caption{Qualité des données synthétiques.}
    \end{subfigure}
    \begin{subfigure}{0.45\linewidth}
        \includegraphics[width=\textwidth]{synthetic/figure/method/overfit/utility.pdf}
        \caption{Utilité 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éthodologie de recherche d'un niveau de répétition qui permet de satisfaire une haute utilité et sensibilité à la MIA.
    Nous utilisons un total de 100.000 points.
    Dans cette expérience nous utilisons uniquement le générateur CTGAN.}

    \label{fig:synth-tune_ovr}
\end{figure}
\subsection{Cheminement des données}
Dans cette section, nous décrivons les différentes étapes par lesquelles passent les données au travers de notre procédé expérimental.
La Figure~\ref{fig:synth-split} représente ce cheminement.
Nous commençons par les données réelles que nous partageons en un jeu d'entraînement ($m$) et un jeu d'évaluation ($\bar{m}$).
Le jeu d'entraînement commence par passer par la fonction OVR CTRL. Ensuite il est utilisé pour entraîner un générateur.
Si le générateur est l'identité, alors $m$ est aussi la sortie du générateur.
Nous utilisons cette sortie pour entraîner le modèle cible.
Uniquement $\bar{m}$ est utilisé pour évaluer l'utilité du modèle cible.
Sur la Figure~\ref{fig:synth-split} nous avons appelé \emph{prédiction} la sortie du modèle cible évaluée sur $\bar{m}$.

Cette prédiction, en plus d'être utilisée pour le calcul de l'utilité, sert à construire la base de données qui sert à l'AIA.
Cela assure que le modèle de menace de l'AIA décrit à la Section~\ref{sec:aia-tm} soit respecté, c'est-à-dire que l'attaquant n'ait accès qu'à des données qui n'ont pas été vues à l'entraînement.
Ensuite nous séparons le jeu de données AIA en évaluation et entraînement pour calculer l'exactitude équilibrée de cette attaque.

Enfin, nous exécutons la MIA qui est représentée en bas de la Figure~\ref{fig:synth-split}.
En plus de la prédiction, le modèle cible sort les coûts pour $m$ et $\bar{m}$ qui sont utilisés pour construire la base de données MIA.
Similairement à l'AIA, nous séparons la base de données MIA en entraînement et évaluation.

Chaque séparation est répétée cinq fois dans une optique de validation croisée.
\label{sec:data}
\begin{figure}
\centering
\input{synthetic/figure/tikz/data_split/split}
    \caption{
        Cette figure présente les sous-ensembles des données utilisés pour le calcul des résultats.
        Cette figure se lit à partir du coin supérieur gauche avec les données réelles.
        Les rectangles représentent des fonctions dont les entrées sont les flèches entrantes et les sorties les flèches sortantes.
        Si l'entrée d'une fonction est une donnée d'entraînement, nous l'indiquons  au dessus de la flèche.
    }
    \label{fig:synth-split}
\end{figure}

\subsection{Comparaison entre données réelles et synthétiques}
A la Section~\ref{sec:synth-res}, nous comparons des résultats obtenus en utilisant deux générateurs : l'identité et un GAN.
Pour chacune des expériences suivantes, pour comparer les résultats, tous les paramètres sont les mêmes, excepté le générateur.
Cela nous permet d'évaluer l'impact des données synthétiques à toutes choses égales.

Nous répétons chaque expérience avec de la validation croisée ; l'utilité est donc calculée cinq fois et les attaques MIA et AIA vingt-cinq fois.
Nous présentons les résultats sous la forme de boîtes à moustaches.
Nous évaluons si l'écart de résultat entre données réelles et synthétiques est significatif en utilisant une analyse de la variance (ANOVA).
Pour ce test statistique, l'hypothèse nulle est la suivante : les échantillons ont la même moyenne.
Si la p-valeur du test de Fisher est inférieure à 0.01, nous rejetons l'hypothèse nulle et déduisons que l'utilisation des données synthétiques a eu un impact sur le résultat.