From 294b3293c6710a63b96195ec9785412aa175c245 Mon Sep 17 00:00:00 2001
From: Jan Aalmoes <jan.aalmoes@inria.fr>
Date: Wed, 4 Sep 2024 23:20:36 +0200
Subject: ML background presque finit, ne manque plus que la partie generatif

---
 background/ml.tex | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 128 insertions(+)

(limited to 'background/ml.tex')

diff --git a/background/ml.tex b/background/ml.tex
index a4c9e1d..d1c08a3 100644
--- a/background/ml.tex
+++ b/background/ml.tex
@@ -15,6 +15,7 @@ Le modèle est ensuite utilisé sur de nouveaux cas de comdanmé.
 Nous allons présenter ces deux aspects entraîenemnt et évaluation dans les Section qui suivent.
 
 \subsection{Entraîner un modèle}
+\label{sec:background-ml-train}
 Les données qui servent à l'entraînement du modèle doivent posséder une étiquette : c'est-à dire le résultat atendu qui est consédéré comme vraie.
 Dans la justice prédictive il s'agit de savoir si le coupabe à été récidiviste après avoir été libéré.
 Pour prendre un exemple plus scolaire, sur le jeu de donnée Iris~\cite{iris}, on cherche à classifier l'éspèce d'Iris à partir de la longeur et de la largeur des sépales et des pétales.
@@ -191,9 +192,136 @@ Cette algorithmes évalue l'espérence empirique de $C(\theta)$ sur chaque élé
     Nous avons vu dans la section précédente que certain modèle de classification utilise une étape intermédiaire de calcul de logit.
     Le calul de logit est une forme de regression car il s'agit de prédit une grandeur et non pas de choisir une classe.
     Pour mieux comprendre le lien entre ces deux type de modèle nous pouvons obsever l'exemple de la regression logistique.
+    \begin{figure}
+        \centering
+        \begin{subfigure}{0.3\linewidth}
+            \centering
+            \includegraphics[width=\linewidth]{background/figure/ml/logit/logit0.3.pdf}
+            \caption{$\uptau=0,3$}
+        \end{subfigure}
+        \begin{subfigure}{0.3\linewidth}
+            \centering
+            \includegraphics[width=\linewidth]{background/figure/ml/logit/logit0.5.pdf}
+            \caption{$\uptau=0,5$}
+        \end{subfigure}
+        \begin{subfigure}{0.3\linewidth}
+            \centering
+            \includegraphics[width=\linewidth]{background/figure/ml/logit/logit0.7.pdf}
+            \caption{$\uptau=0,7$}
+        \end{subfigure}
+        \begin{subfigure}{0.6\linewidth}
+            \centering
+            \includegraphics[width=\linewidth]{background/figure/ml/logit/metric.pdf}
+            \caption{Metriques de classifications en fonction du seuil.}
+            \label{subfig:background-ml-logit-d}
+        \end{subfigure}
+        \caption{Exemple de relation entre regression (logit) et prédiction.}
+        \label{fig:background-ml-logit}
+    \end{figure}
+
+    Dans la Figure~\ref{fig:background-ml-logit} nous avons l'exemple d'une regression logistique qui nous donne la coubre logit dans les trois premières sous-figures.
+    Le seuil est représente par le changement de couleur tandis que les étiquettes sont réprésenté par la position sur l'axe de ordonée des points.
+    Nous observons que changer la seuil permet d'influencer sur les différentes métriques que nous avons présenté en Section~\ref{sec:backgroung-ml-classif}.
+    Le choix d'un seuil approrié est donc dépendant de l'application. 
+    Comme nous pouvons de le voir sur la Sous-figure~\ref{subfig:background-ml-logit-d}, seuil proche de $1$ permet de grandement réduire le FPR mais réduit les autres métriques.
+    Le choix d'un seuil est aussi particulièrement important quand les données présentent un désequilibre, c'est-à-dire qu'une classe et majoritaire par rapport à une autre~\cite{zou2016finding}.
+    Dans la Figure~\ref{fig:background-ml-logit} il y $28\%$ de points positif représenté en rouge.
+    Cela explique la différence entre \textit{accuracy} et \textit{balanced accuracy} à seuil égale.
 
 
 \subsection{Apprentissage profond}
+Pour le moment nous avons évoqué trois types de modèle, la forêt aléatoire, la regression logistique et les réseaux de neuronnes sans vraiment les présenter.
+Nous allons nous contenter de présenter en détail les réseaux de neuronnes car cela nous sera utile pour les Chapitres~\ref{sec:aia} et~\ref{sec:synth}.
+
 \subsubsection{Réseau de neurones}
+En apprentissage profond, l'expréssion explicite qui lie entrée, paramètre et sortie (que nous avons appelé $f(x,\theta)$ à la Section~\ref{sec:background-ml-train}) est appelé l'architecture du réseau de nerones.
+Dans cette section nous allons présenter quelques architectures calssiques.
+Pour en savoir plus à ce sujet et sur l'apprentissage automatiqeu en générale, nottamant pour avoir plus de détails sur l'entraînement, nous renvoyons le lecteur au livre de Yann Le Cun, \textit{Quand la machine apprend}~\cite{lecun2019quand}.
+
+Un réseau de neuronnes est composé de plusieur couches successives qui on chacune des paramètre.
+En d'autre termes un modèle 
+\begin{equation*}
+    f:\left\{
+        \begin{matrix}
+            E\times \Theta\rightarrow \mathbb{R}^n\\
+            (x,\theta)\mapsto f(x,\theta)
+        \end{matrix}
+    \right.
+\end{equation*}
+peut se décomposer comme une composition de modèle intermédiaires.
+Par exemple un modèle à $m$ couches peut s'ecrir :
+\begin{equation*}
+    f(\Box,\theta) = f_{m-1}(\Box,\theta_{m-1})\circ\cdots\circ
+    f_{0}(\Box,\theta_0)
+\end{equation*}
+Nous utiliserons deux types de couches : les couches entièrement connectée et les couches de convolution.
+
+Une couche entièrement connectée est elle même composé d'une multiplication matriciele, une addition à un vecteur et une fonctions d'activation.
+Considérons une couche intermédiare de $\mathbb{R}^o$ dans $\mathbb{R}^p$
+Nous diraons que cette couche a $p$ neurones.
+Nous utiliserons toujours la même fonction d'avivation : \textit{Rectified Linear} (ReLu).
+Cette fonction est définie de la manière suivante : 
+\begin{equation*}
+    \textit{ReLu}:\left\{
+        \begin{matrix}
+            \mathbb{R}^n\rightarrow\left(\mathbb{R}^+\right)^n\\
+            x\mapsto \left(
+            \begin{matrix}
+                1_{\mathbb{R}^+}(x_0)x_0\\
+            \vdots\\
+                1_{\mathbb{R}^+}(x_{n-1})x_{n-1}\\
+            \end{matrix}
+            \right)
+        \end{matrix}
+    \right.
+\end{equation*}
+Nous remarquons que cette fonction n'as pas de paramètre à opitmiser, son but et d'éviter que l'architecture gloable soit une fonction afine.
+
+La parite linéaire de la couche est paramétré par les coéficient de la matrie de l'application linéaire. 
+Cette fonction $l$ admet donc comme expression $l(x)=Mx$ avec $M\in\mathcal{M}_{p,o}$
+
+Enfin la partie additive est appellée biais et s'écrit $B(x) = x+b$ avec $b\in\mathbb{R}^p$.
+Ainsi la $i$-ième couche s'écrit :
+\begin{equation*}
+    f_i(\Box,(M,b)) : \left\{
+        \begin{matrix}
+            \mathbb{R}^o\rightarrow\mathbb{R}^p\\
+            x\mapsto\text{ReLu}(Mx+b)
+        \end{matrix}
+    \right.
+\end{equation*}
+
+Regardon maintenant les couches de convolutions.
+L'idée de la convolution est d'extraire des représentations\footnote{\textit{Features extraction}}.
+
+\begin{equation}
+    f_i(x,\theta_i) = \left\{
+        \begin{matrix}
+            \mathbb{N}^\mathbb{}\rightarrow\mathbb{N}^\mathbb{N}\\
+            u\mapsto\int_{\mathbb{N}}x(u\bowtie t)\theta(\#J\bowtie t)d\sum_{j\in\mathbb{N}}\delta_j(t)
+        \end{matrix}
+    \right.
+\end{equation}
+
+
+
+
 \subsubsection{Modèle generatif}
 \label{sec:background-generation}
+
+A generator is a function that takes as input a real dataset and outputs a synthetic dataset.
+This definition is general enough so that the identity function is a generator.
+Even though synthetic datasets are supposedly different than real world datasets.
+We refer to the output of the identity generator as real data while referring to the output of another generator as synthetic data.
+
+In addition to the identity generator we use General Adversarial Networks (GAN)~\cite{gan}.
+The goal of a GAN is to generate realistic samples given a distribution of multivariate data.
+To do so a GAN leverages two neural networks: a generator and a discriminator. 
+The domain of the generator (its input space) is of low dimension with respect to its codomain (its output space) which has the same dimension as the data we want to generate.
+For instance with 64 by 64 images, the codomain is a matrix with 64 rows and 64 columns.
+To generate a new sample, we evaluate the generator on a sample of a multivariate standard normal distribution where the dimension is the domain's dimension.
+This output is the new generated synthetic data point.
+
+The discriminator is only used when training the GAN with the goal of making sure that the generator produces realistic data.
+To do so, the discriminator is a neural network with a classification goal: infer if a sample is synthetic or real.
+Hence in the training procedure, the discriminator and the generator are in competition: the generator goal is to fool the discriminator into classifying synthetic data as real data.
-- 
cgit v1.2.3

