diff options
author | Jan Aalmoes <jan.aalmoes@inria.fr> | 2024-09-30 20:03:51 +0200 |
---|---|---|
committer | Jan Aalmoes <jan.aalmoes@inria.fr> | 2024-09-30 20:03:51 +0200 |
commit | 59ab9bb16768585e2c4bd20c8ae63b12da8dfaad (patch) | |
tree | 46101c5cb9badc996f88e3d835d722eacb995b9f | |
parent | 644fa7c290ac801f15180dd8a9c425c3b757adf5 (diff) |
synthetid methodo jan
-rw-r--r-- | ACSAC/figures/fig_advdebias_utility.tex | 12 | ||||
-rw-r--r-- | ACSAC/figures/fig_egd_utility.tex | 2 | ||||
-rw-r--r-- | aia/aia.tex | 2 | ||||
-rw-r--r-- | aia/methodo.tex | 6 | ||||
-rw-r--r-- | background/conf.tex | 1 | ||||
-rw-r--r-- | background/eq.tex | 1 | ||||
-rw-r--r-- | biblio.bib | 60 | ||||
-rw-r--r-- | classification_finie/main.tex | 7 | ||||
-rw-r--r-- | classification_finie/tabular.tex | 1 | ||||
-rw-r--r-- | contexte/enjeux.tex | 1 | ||||
-rw-r--r-- | garde.tex | 2 | ||||
-rw-r--r-- | notations.tex | 8 | ||||
-rw-r--r-- | perspectives.tex | 7 | ||||
-rw-r--r-- | synthetic/figure/tikz/data_split/split.tex | 49 | ||||
-rw-r--r-- | synthetic/main.tex | 2 | ||||
-rw-r--r-- | synthetic/methodology.tex | 187 | ||||
-rw-r--r-- | template_these_INSA_cotut.pdf | bin | 9382450 -> 9400625 bytes | |||
-rw-r--r-- | template_these_INSA_cotut.tex | 2 |
18 files changed, 218 insertions, 132 deletions
diff --git a/ACSAC/figures/fig_advdebias_utility.tex b/ACSAC/figures/fig_advdebias_utility.tex index 0a87115..e2a8736 100644 --- a/ACSAC/figures/fig_advdebias_utility.tex +++ b/ACSAC/figures/fig_advdebias_utility.tex @@ -2,22 +2,22 @@ \centering \begin{minipage}[b]{1\linewidth} \centering - \subfigure[\census]{ + \subfigure[CENSUS]{ \includegraphics[width=0.49\linewidth]{ACSAC/figures/advdebias/census/census_advdeb_utility.pdf} }% - \subfigure[\compas]{ + \subfigure[COMPAS]{ \includegraphics[width=0.49\linewidth]{ACSAC/figures/advdebias/compas/compas_advdeb_utility.pdf} } \end{minipage}\\ \begin{minipage}[b]{1\linewidth} \centering - \subfigure[\meps]{ + \subfigure[MEPS]{ \includegraphics[width=0.49\linewidth]{ACSAC/figures/advdebias/meps/meps_advdeb_utility.pdf} }% - \subfigure[\lfw]{ + \subfigure[LFW]{ \includegraphics[width=0.49\linewidth]{ACSAC/figures/advdebias/lfw/lfw_advdeb_utility.pdf} } \end{minipage} - \caption{Utility degradation for \advdebias: We observe a statistically significant drop in $\targetmodel$'s accuracy on using \advdebias.} + \caption{Utility degradation } \label{fig:utilityAdvDebias2} -\end{figure}
\ No newline at end of file +\end{figure} diff --git a/ACSAC/figures/fig_egd_utility.tex b/ACSAC/figures/fig_egd_utility.tex index 36ae32a..6dd70bc 100644 --- a/ACSAC/figures/fig_egd_utility.tex +++ b/ACSAC/figures/fig_egd_utility.tex @@ -17,4 +17,4 @@ \end{minipage} \caption{Utility degradation for \egd: We observe a statistically significant drop in $\targetmodel$'s accuracy on using \egddp which matches the observation from prior work~\cite{reductions}.} \label{fig:utilityEGD} -\end{figure}
\ No newline at end of file +\end{figure} diff --git a/aia/aia.tex b/aia/aia.tex index fe56ec2..16b37e3 100644 --- a/aia/aia.tex +++ b/aia/aia.tex @@ -1,4 +1,5 @@ \subsection{Modèle de menace}\footnote{\textit{Threat model}} +\label{sec:aia-tm} Nous considérons qu'un adversaire souhaite conduire une AIA pour un attribut sensible sur un modèle cible. Le but de l'adversaire est d'inférer l'attribut sensible à partir uniquement des prédictions du modèle cible. L'adversaire a accès une base de donnée que nous appelons auxiliaire et qui ne contient pas d'individu en commun avec la base de donnée d'entraînement du modèle cible que nous appelons base cible. @@ -19,6 +20,7 @@ Nous allons l'utiliser pour construire une AIA qui donne la garantie théorique Nous appelons cette AIA : \AIAHard. \subsection{AIA pour les modèles de régression} +\label{sec:aia-soft} Dans le cas d'un modèle cible qui effectua une régression nous avons $\#F$ infini donc nous ne pouvons pas utiliser \AIAHard. Ce cas où l'adversaire a accès un modèle de régression prend en compte le cas où le modèle cible de prédiction divulgue un logit par exemple. C'est le modèle de menace qu'applique Song et. al~\cite{Song2020Overlearning} dans leur AIA. diff --git a/aia/methodo.tex b/aia/methodo.tex index 7bab0b0..88fa79a 100644 --- a/aia/methodo.tex +++ b/aia/methodo.tex @@ -48,3 +48,9 @@ Nous reportons dans la Section~\ref{sec:aia-resexp} contenant les résultats exp \caption{Simulation du modèle de menace} \end{figure} +\subsection{Imposer l'équité} +Nous comparons le succès de l'AIA avec et sans utilisation de mécanisme pour imposer l'équité. +Nous utilisons pour cela les mécanisme décrit à la Section~\ref{sec:background-eq-imp} : L'approche par réduction pour une classification équitable et le rééquilibrage adverse. +Nous imposons la parité démographique, le but de ses expérience étant d'observer si en pratique les mécanismes d'équité permette de mitiger les AIA. +Ainsi pour l'approche par réduction nous évaluons uniquement \AIAHard~ alors que pour l'approche adverse nous évaluons les deux AIA. + diff --git a/background/conf.tex b/background/conf.tex index 8ad8379..4c22136 100644 --- a/background/conf.tex +++ b/background/conf.tex @@ -7,6 +7,7 @@ Dans le cadre d'attaques nous parlerons de \emph{modèle cible} pour désigner l \FloatBarrier \subsubsection{Risque sur les données d'entraînement} +\label{sec:background-ml-mia} L'attaque d'inférence d'appartenance (MIA) consiste à inférer si une donnée a servi à l'entraînement du modèle cible. Cette attaque utilise le fait que les modèles d'apprentissage automatique ont en général une moins bonne performance sur les données qui n'ont pas été utilisées à l'entraînement, c'est le sur-ajustement\footnote{\textit{Overfitting}}~\cite{hawkins2004problem,ying2019overview}. Ce problème peut survenir principalement quand le modèle cible est trop complexe par rapport à la tâche qui lui est demandée. diff --git a/background/eq.tex b/background/eq.tex index 5a1a794..b8e431f 100644 --- a/background/eq.tex +++ b/background/eq.tex @@ -84,6 +84,7 @@ Ainsi Hardt et al.~\cite{fairmetric2} proposent de modifier la parité démograp \end{definition} \subsubsection{Imposer l'équité comme contrainte d'optimisation} +\label{sec:background-eq-imp} Ces définitions peuvent être imposées au modèle de trois manières: \begin{enumerate} \item Prétraitement\footnote{\textit{Preprocessing}} : @@ -1,4 +1,64 @@ ######################"" +@inproceedings{abowd2008protective, + title={How protective are synthetic data?}, + author={Abowd, John M and Vilhuber, Lars}, + booktitle={International Conference on Privacy in Statistical Databases}, + pages={239--246}, + year={2008}, + organization={Springer} +} +@inproceedings{jordon2018pate, + title={PATE-GAN: Generating synthetic data with differential privacy guarantees}, + author={Jordon, James and Yoon, Jinsung and Van Der Schaar, Mihaela}, + booktitle={International conference on learning representations}, + year={2018} +} +@inproceedings{abay2019privacy, + title={Privacy preserving synthetic data release using deep learning}, + author={Abay, Nazmiye Ceren and Zhou, Yan and Kantarcioglu, Murat and Thuraisingham, Bhavani and Sweeney, Latanya}, + booktitle={Machine Learning and Knowledge Discovery in Databases: European Conference, ECML PKDD 2018, Dublin, Ireland, September 10--14, 2018, Proceedings, Part I 18}, + pages={510--526}, + year={2019}, + organization={Springer} +} + +@inproceedings{ben2002theoretical, + title={A theoretical framework for learning from a pool of disparate data sources}, + author={Ben-David, Shai and Gehrke, Johannes and Schuller, Reba}, + booktitle={Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining}, + pages={443--449}, + year={2002} +} + +@inproceedings{chen2020differential, + title={Differential privacy protection against membership inference attack on machine learning for genomic data}, + author={Chen, Junjie and Wang, Wendy Hui and Shi, Xinghua}, + booktitle={BIOCOMPUTING 2021: Proceedings of the Pacific Symposium}, + pages={26--37}, + year={2020}, + organization={World Scientific} +} +@article{rahman2018membership, + title={Membership inference attack against differentially private deep learning model.}, + author={Rahman, Md Atiqur and Rahman, Tanzila and Lagani{\`e}re, Robert and Mohammed, Noman and Wang, Yang}, + journal={Trans. Data Priv.}, + volume={11}, + number={1}, + pages={61--79}, + year={2018} +} + +@article{kivinen1997exponentiated, + title={Exponentiated gradient versus gradient descent for linear predictors}, + author={Kivinen, Jyrki and Warmuth, Manfred K}, + journal={information and computation}, + volume={132}, + number={1}, + pages={1--63}, + year={1997}, + publisher={Elsevier} +} + @article{breiman2001random, title={Random forests}, author={Breiman, Leo}, diff --git a/classification_finie/main.tex b/classification_finie/main.tex index 901499a..b3c9c6f 100644 --- a/classification_finie/main.tex +++ b/classification_finie/main.tex @@ -1,3 +1,10 @@ +\input{classification_finie/introduction} + +\section{Exactitude équilibré et Classifieur à Choix Aléatoire} \input{classification_finie/ba} + +\section{Construiction d'un algorithme d'apprentissage ensemblise maximisant l'excatitude équilibré} \input{classification_finie/finit_classif} + +\section{Résultats expérimentaux} \input{classification_finie/tabular} diff --git a/classification_finie/tabular.tex b/classification_finie/tabular.tex index 017b250..10af8c9 100644 --- a/classification_finie/tabular.tex +++ b/classification_finie/tabular.tex @@ -65,6 +65,7 @@ C'est donc une méthode qui se rapproche de la votation. \centering \includegraphics[width=0.70\linewidth]{classification_finie/figure/cezanne/44.png} \caption{\textit{Paul Alexis lisant à Emile Zola}, Paul Cézanne, 1869-1870 (Huile sur toile) São Paulo, MASP, Museu de Arte de São Paulo Assis Chateaubriand © Museu de Arte, Sao Paulo, Brazil / Giraudon / Bridgeman Giraudon} + \label{fig:zola} \end{figure} Nous obtenons un exactitude équilibré de 0,48 pour une évaluation sur 20 tableaux, soit un aléatoire à $\frac{1}{20}=0,005$. diff --git a/contexte/enjeux.tex b/contexte/enjeux.tex index 3e871ec..9f5f99d 100644 --- a/contexte/enjeux.tex +++ b/contexte/enjeux.tex @@ -92,6 +92,7 @@ Le principe de ce genre d'attaque est assez simple : l'adversaire cache dans les Ainsi, quand le modèle est utilisé en production, l'adversaire peut utiliser le déclencheur sans avoir accès à l'ordinateur du juge ou au serveur qui fait tourner le modèle, il suffit de modifier la donnée d'entrée. \subsection{Consommation d'énergie} +\label{sec:contexte-conso} Nous vivons une crise climatique majeure due à l'activité humaine qui présage de graves changements pour l'ensemble du vivant ainsi que dans nos modes de vie~\cite{pielke2005hurricanes,khasnis2005global,houghton2005global,melillo2014climate,mcnutt2013climate} Bien que l'IA soit prometteuse pour nous aider à anticiper ces changements~\cite{villani2018donner} il ne faut pas que son développement et l'entraînement de modèles accélèrent le changement climatique et le réchauffement climatique. Concrètement, le LLM Llama2 à émis 539 tonnes de $\text{CO}_2$ en prenant en compte les divers plans de compensation carbone de Meta~\cite{touvron2023llama}. @@ -38,7 +38,7 @@ Soutenue publiquement clos le jj/mm/aaaa, par :\\ \hrulefill\\[.3cm]
\Huge
-\textbf{Intelligence artificielle pour des services moraux}
+\textbf{Intelligence artificielle pour des services moraux : concilier équité et confidentialité}
\hrulefill\\[2cm]
diff --git a/notations.tex b/notations.tex index c50ceac..6ad09be 100644 --- a/notations.tex +++ b/notations.tex @@ -24,7 +24,7 @@ Pour faciliter la lecture je fournis ici une liste des notations avec la référ \hline $\circ$&Composition&Définition~\ref{def:background-fct}\\ \hline - $f^{-1}$&Fonction inverse ou image réciproque&\\ + $f^{-1}$&Fonction inverse ou image réciproque&Définition~\ref{def:background-fct}\\ \hline $n!$&$n$ factoriel&Section~\ref{sec:background-set-ari}\\ \hline @@ -46,18 +46,20 @@ Pour faciliter la lecture je fournis ici une liste des notations avec la référ \hline $\langle x,y\rangle$&Produit scalaire euclidien&Définition~\ref{def:background-dif-scal}\\ \hline + $\mathbb{R}_{n,m}$&Matrice à $n$ lignes et $m$ colones&Section~\ref{sec:background-alg-L}\\ + \hline $||x||$&Norme euclidienne&Définition~\ref{def:background-dif-eucl}\\ \hline $lim_{a\rightarrow x}f(a)$&Limite de $f$ en $x$&Définition~\ref{def:background-dif-lim}\\ \hline $df(x)$&Différentielle de $f$ en $x$&Définition~\ref{def:background-dif-dif}\\ \hline - $\mathbb{N}~\mathbb{Q}~\mathbb{R}$&Ensembles usuels&Définition~\ref{def:background-set-usu}\\ + $\mathbb{N}~\mathbb{Z}~\mathbb{Q}~\mathbb{R}$&Ensembles usuels&Définition~\ref{def:background-set-usu}\\ \hline $S_n$&Groupe de permutations sur $n\in\mathbb{N}$&Section~\ref{sec:aia-theo-aia-eq}\\ \hline $BA^d_F(f)$&Exactitude équilibrée empirique&Définition~\ref{def:BA}\\ \hline \end{tabular} -\caption{Liste de notations} +\caption{Liste des notations} \end{table} diff --git a/perspectives.tex b/perspectives.tex index ae84997..701bc57 100644 --- a/perspectives.tex +++ b/perspectives.tex @@ -1 +1,6 @@ -qsdf +\section{Classification finie} + \subsection{Votation} + \subsection{Neurones aléatoires} + +\section{Génération équitable et confidentielle} + diff --git a/synthetic/figure/tikz/data_split/split.tex b/synthetic/figure/tikz/data_split/split.tex index a742424..38e57a8 100644 --- a/synthetic/figure/tikz/data_split/split.tex +++ b/synthetic/figure/tikz/data_split/split.tex @@ -2,6 +2,9 @@ \begin{tikzpicture} + \def\h{3.5} %décalage modèle + \def\i{1.5} %décalage split + \def\j{4.5} %décalage données synthétique %\draw[fill=red] (-1.1,1) rectangle (7.2,-2.5); %\draw[fill=green] (-1.1,-2.5) rectangle (7.2,-5); @@ -13,53 +16,53 @@ % minimum height=89mm, % rotate=-90] () at (3,1){}; - \node[database,label={[align=left]left:Real\\data}] (d) at (0,0){}; + \node[database,label={[align=left]left:Données\\réelles}] (d) at (0,0){}; \node[rectangle,draw,align=center] (overfit) at (2,0) {OVR\\CTRL}; \draw[->] (d) to node[midway,above] {80\%} (overfit); - \node[database,label=above:$m$] (realtr) at (3,0){}; + \node[database,label=above:$m$] (realtr) at (4,0){}; \draw[->] (overfit) to (realtr); - \node[rectangle,draw,align=center] (gen) at (6,0) {Generator\\Model}; - \draw[->] (realtr) to node[midway,above] {training} (gen); + \node[rectangle,draw,align=center] (gen) at (6+\h,0) {Modèle\\génératif}; + \draw[->] (realtr) to node[midway,above] {entraînement} (gen); - \node[database,label={[align=left]right:Synthetic\\data}] (syn) at (5,-1.5) {}; + \node[database,label={[align=left]right:Données\\synthétiques}] (syn) at (5+\j,-2) {}; \draw[->] (gen) to (syn); \node[database,label=below:$\bar{m}$] (realte) at (0,-1.5) {}; \draw[->] (d) to node[midway,left] {20\%}(realte); - \node[rectangle,draw,align=center] (tarmod) at (2,-2) {Target\\Model}; + \node[rectangle,draw,align=center] (tarmod) at (2,-2) {Modèle\\cible}; \draw[->] (realte) to[out=0,in=130] node[midway,above] {eval} (tarmod); \draw[->] (realtr) to node[midway,right] {eval} (tarmod); - \draw[->] (syn) to[out=-90,in=0] node[midway,above] {training} (tarmod); - \node[database,label={[align=center]left:loss\\$\bar{m}$}] (miam) at (1.5,-5) {}; - \node[database,label={[align=center]right:loss\\$m$}] (mian) at (2.5,-5) {}; - \node[database,label={[align=center]below:MIA\\data}] (mia) at (2,-6.5) {}; - \draw[->] (tarmod) to node[midway,fill=white] (aiabranch) {\small prediction} (miam); + \draw[->] (syn) to[out=180,in=0] node[midway,above] {entraînement} (tarmod); + \node[database,label={[align=center]left:coût\\$\bar{m}$}] (miam) at (1.5,-5) {}; + \node[database,label={[align=center]right:coût\\$m$}] (mian) at (2.5,-5) {}; + \node[database,label={[align=center]below:Base\\MIA}] (mia) at (2,-6.5) {}; + \draw[->] (tarmod) to node[midway,fill=white] (aiabranch) {\small prédiction} (miam); \draw[->] (tarmod) to (mian); \draw[->] (miam) to (mia); \draw[->] (mian) to (mia); - \node[database,label=above:Train] (miatr) at (4,-6.5) {}; - \node[database,label=below:Test] (miate) at (4,-7) {}; + \node[database,label=above:Entraînement] (miatr) at (4+\i,-6.5) {}; + \node[database,label=below:Evaluation] (miate) at (4+\i,-7) {}; \draw[->] (mia) to node[midway,above] {80\%} (miatr); \draw[->] (mia) to node[midway,below] {20\%} (miate); - \node[rectangle,draw,align=center] (miamod) at (6.5,-6.5) {MIA\\Model}; - \draw[->] (miatr) to node[midway,above] {training} (miamod); - \node[align=center] (miares) at (6.5,-7.5) {MIA\\Result}; + \node[rectangle,draw,align=center] (miamod) at (6.5+\h,-6.5) {Modèle\\MIA}; + \draw[->] (miatr) to node[midway,above] {entraînement} (miamod); + \node[align=center] (miares) at (6.5+\h,-8) {Résultat\\MIA}; \draw[->] (miate) to node[midway,below] {eval} (miamod); \draw[->] (miamod) to (miares); - \node[database,label={[align=center]above:AIA\\data}] (aiad) at (3.2,-3.6){}; - \node[align=center] (ures) at (0,-3.6) {Utility\\Result}; + \node[database,label={[align=center]above:Base\\AIA}] (aiad) at (3.2,-3.6){}; + \node[align=center] (ures) at (-1,-3.6) {Résultat\\utilité}; \draw[->] (aiabranch) to (aiad); \draw[->] (aiabranch) to (ures); - \node[database,label=above:Train] (aiatr) at (4.5,-3.6) {}; - \node[database,label=below:Test] (aiate) at (4.5,-4.1) {}; + \node[database,label=above:Entraînement] (aiatr) at (4.5+\i,-3.6) {}; + \node[database,label=below:Evaluation] (aiate) at (4.5+\i,-4.1) {}; \draw[->] (aiad) to node[midway,above] {80\%} (aiatr); \draw[->] (aiad) to node[midway,below] {20\%} (aiate); - \node[rectangle,draw,align=center] (aiamod) at (6.5,-3.8) {AIA\\Model}; + \node[rectangle,draw,align=center] (aiamod) at (6.5+\h,-3.8) {Modèle\\AIA}; - \draw[->] (aiatr) to node[midway,above] {training} (aiamod); + \draw[->] (aiatr) to node[midway,above] {entraînement} (aiamod); \draw[->] (aiate) to node[midway,below] {eval} (aiamod); - \node[align=center] (aiares) at (6.5,-5) {AIA\\Result}; + \node[align=center] (aiares) at (6.5+\h,-5) {Résultat\\AIA}; \draw[->] (aiamod) to (aiares); \end{tikzpicture} diff --git a/synthetic/main.tex b/synthetic/main.tex index 8b6afdd..d63a7d5 100644 --- a/synthetic/main.tex +++ b/synthetic/main.tex @@ -1,5 +1,3 @@ - -\section{Introduction} \input{synthetic/introduction} %\section{Background and related Work} diff --git a/synthetic/methodology.tex b/synthetic/methodology.tex index db3861e..e2cce7a 100644 --- a/synthetic/methodology.tex +++ b/synthetic/methodology.tex @@ -1,89 +1,88 @@ -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}. +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 commençons 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 la sortie du générateur. +Ainsi nous pourrons présenter les attaque 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 montrons une représentation graphique du procédé dans son entièreté, des données réelles jusqu'au résultat expérimentaux dans la Figure~\ref{fig:synth-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} +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 noir avec un un ($1$) et toutes les autres avec un zéros ($0$). +Ainsi, dans les contextes d'une AIA, le but de l'adversaire est d'inférer si une personne a la peau noir. + +Nous n'utiliserons pas directement de recensement des États Unis, nous utiliserons une version adapté à l'étude de l'équité : \textit{Retiring adult}~\cite{ding2021retiring}. +Cette version a formaté la base de donnée que l'on peut télécharger sur le site du gouvernement des États Unis pour le rendre facilement interfacable avec des outils standard 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 presonnes. + +\subsection{Entraînement du générateur} \label{sec:synth-gen} -Dans cette édute, nous considérons une variante du GAN : +Dans cette étude, 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}. +CTAGN 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{emploie} 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ê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. +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âche de classification nous utilisons la \textit{balanced accuracy} que nous avons présenté en Section~\ref{sec:background-ml-classification}. +Pour évaluer les tâches de classifications nous utilisons l'exactitude équilibré que nous avons présenté en Section~\ref{sec:background-ml-classif}. -\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}. +\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é à 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. +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 un base de donnée qui contient les coûts et leurs statut d'appartenance correspondant ($m$ or $\bar{m}$). +C'est donc la même méthodologie que celle que nous avons utilisé pour présenter la MIA à la Section~\ref{sec:background-ml-mia}. +Cette méthodologie correspond à un cas pire pour la confidentialité que l'utilisation de modèle miroirs, c'est donc une évaluation qui permet d'avoir des garanties relativement forte 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 positif~\cite{stadler2020synthetic}. +Ainsi, pour pouvoir juger de l'impacte 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 d'\textit{overfitting} du modèle cible. + Cette fonction contrôle le niveau de sur-ajustement 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.} + 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é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. +Avant d'utiliser les données réelles pour entraîner le générateur, nous leurs 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ée réel pour crée une nouvelle base de donnée contenant $M$ lignes. +Quand $N$ est inférieur à $M$, chaque donné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$). +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 point différent l'utilité et la qualité des données synthétiques sont hautes (supérieur à $0,7$ d'exactitude équilibré) 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é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.} + \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ée des données synthétiques.} + \caption{Utilité des données synthétiques.} \end{subfigure} \begin{subfigure}{0.45\linewidth} \includegraphics[width=\textwidth]{synthetic/figure/method/overfit/mia.pdf} @@ -93,51 +92,51 @@ Nous choisisson donc 5000 donnée difféentes ($N=5000$) pour un base de donnée \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.} + \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 cet expérience nous utilisons uniquement le générateur CTGAN.} - \label{fig:aia-tune_ovr} + \label{fig:synth-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. +\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érimentale. +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 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 évalue sur $\bar{m}$. + +Cette prédiction, en plus d'être utilisé pour le calcul de l'utilité, sert à construire la base de donnée 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é vus à l'entraînement. +Ensuite nous séparons le jeu de donnée AIA en évaluation et entraînement pour calculer l'exactitude équilibré de cette attaque. + +Enfin, nous exécutons la MIA qui est représenté 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 pour construire la base de données MIA. +Similairement à l'AIA, nous séparons la base de donnée MIA en entraînement et évaluation. + +Chaque séparation et répété cinq fois dans une optique de validation croisée. \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. + \caption{ + Cette figure présente les sous ensembles des données utilisé pour le calcul des résultats. + Cette figure se lit à partir du coins supérieur gauche avec les données réelles. + Les rectangles représentes des fonctions dont les entrée sont les flèches entrantes le 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:split} + \label{fig:synth-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. +\subsection{Comparaison entre donnée réelle et synthétique} +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ême excepté le générateurs. +Cela nous permet d'évaluer l'impacte des données synthétiques à toutes choses égales. -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. +Nous répétons chaque expérience avec de la validation croisée, l'utilité est donc calculé cinq fois et les attaque 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étique est significatifs en utilisant un 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érieur à 0.01 nous rejetons l'hypothèse nulle et déduisons que l'utilisation des données synthétiques à eu un impacte sur le résultat. diff --git a/template_these_INSA_cotut.pdf b/template_these_INSA_cotut.pdf Binary files differindex a3ab57b..f2e942b 100644 --- a/template_these_INSA_cotut.pdf +++ b/template_these_INSA_cotut.pdf diff --git a/template_these_INSA_cotut.tex b/template_these_INSA_cotut.tex index 44cfc0c..b74a316 100644 --- a/template_these_INSA_cotut.tex +++ b/template_these_INSA_cotut.tex @@ -58,7 +58,7 @@ breaklines=true \begin{document}
\hypersetup{
-pdftitle={Intelligence artificielle pour des services moraux}, %informations dans le titre
+pdftitle={Intelligence artificielle pour des services moraux : concilier équité et confidentialité}, %informations dans le titre
pdfauthor={Jan Aalmoes}, %dans les informations du document
pdfsubject={Th\`ese} %sous Acrobat.
}
|