From b886c302573358752946372c7b7a61559b7fe7f2 Mon Sep 17 00:00:00 2001 From: cookie Date: Wed, 25 Sep 2024 17:09:36 +0200 Subject: Orthographe Emeline check --- background/ml.tex | 200 +++++++++++++++++++++++++++--------------------------- 1 file changed, 100 insertions(+), 100 deletions(-) (limited to 'background/ml.tex') diff --git a/background/ml.tex b/background/ml.tex index 447e9d1..b8331b5 100644 --- a/background/ml.tex +++ b/background/ml.tex @@ -1,30 +1,30 @@ L'apprentissage automatique\footnote{\textit{Machine learning}} est le fondement de l'IA moderne. -Les réseaux de neurones profonds ont révolutionné ce domaines notamment grâce à l'augmentation de la puissance de calcul des cartes graphiques~\cite{lecun2019quand}. +Les réseaux de neurones profonds ont révolutionné ce domaine notamment grâce à l'augmentation de la puissance de calcul des cartes graphiques~\cite{lecun2019quand}. \subsection{Principe} -Reprenons la définition de L'IA donnée dans le règlement UE 2024/1689 pour une harmonisation des régulations relatives a l'IA~\cite{aiact} et notamment la Figure~\ref{fig:contexte-IAUE}. +Reprenons la définition de l'IA donnée dans le Règlement UE 2024/1689 pour une harmonisation des régulations relatives a l'IA~\cite{aiact} et notamment la Figure~\ref{fig:contexte-IAUE}. Cette définition exprime bien le fonctionnement d'un modèle d'apprentissage automatique. -Le modèle est une fonction qui prend en entrée une donnée d'entrée et des paramètres et qui renvoi une prédiction. +Le modèle est une fonction qui prend en entrée une donnée d'entrée et des paramètres et qui renvoie une prédiction. Le vie d'un modèle se passe en deux étapes. Premièrement il faut trouver des paramètres qui assurent un bon fonctionnement du modèle. -En générale le bon fonctionnement se défini en disant que le modèle a une bonne utilité et respecte les contraintes qui lui sont demandé. +En général le bon fonctionnement se définit en disant que le modèle a une bonne utilité et respecte les contraintes qui lui sont demandées. Ces contraintes peuvent imposer l'équité ou la confidentialité par exemple. -Ensuite, les paramètres sont utilisés pour réaliser des prédictions sur des données nouvelles, qui n'ont en générale pas été utilisés pour l'entraînement. -Par exemple pour en revenir à la justice prédictive, les paramètre sont trouvé en utilisant des données historiques de tribunaux. -Le modèle est ensuite utilisé sur de nouveaux cas de condamné. -Nous allons présenter ces deux aspects, entraînent et évaluation, dans les Sections qui suivent. +Ensuite, les paramètres sont utilisés pour réaliser des prédictions sur des données nouvelles, qui n'ont en général pas été utilisées pour l'entraînement. +Par exemple, pour en revenir à la justice prédictive, les paramètres sont trouvés en utilisant des données historiques de tribunaux. +Le modèle est ensuite utilisé sur de nouveaux cas de condamnés. +Nous allons présenter ces deux aspects, entraînement et évaluation, dans les Sections 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 attendu qui est considéré comme vraie. -Dans la justice prédictive il s'agit de savoir si le coupable à été récidiviste après avoir été libéré. -Pour prendre un exemple plus scolaire, sur le jeu de donnée Iris~\cite{iris_53}, on cherche à classifier l'espèce d'iris à partir de la longueur et de la largeur des sépales et des pétales. -Nous utilisons, pour l'entraînement, des données de taille de sépale et pétale pour lesquelles nous connaissons l'espèce d'iris. +Les données qui servent à l'entraînement du modèle doivent posséder une étiquette : c'est-à-dire le résultat attendu qui est considéré comme vrai. +Dans la justice prédictive, il s'agit de savoir si le coupable a été récidiviste après avoir été libéré. +Pour prendre un exemple plus scolaire, sur le jeu de données Iris~\cite{iris_53}, on cherche à classifier l'espèce d'iris à partir de la longueur et de la largeur des sépales et des pétales. +Nous utilisons, pour l'entraînement, des données de taille de sépales et pétales pour lesquelles nous connaissons l'espèce d'iris. En utilisant ces données nous ajustons les paramètres pour que la prédiction soit la plus précise possible. -Pour ce faire nous utilisons une fonction de coût. +Pour ce faire, nous utilisons une fonction de coût. C'est une fonction qui sert à déterminer à quel point une prédiction est bonne. -C'est-à-dire que plus la fonction de coût renvoi une valeur petite, meilleur est le modèle. +C'est-à-dire que plus la fonction de coût renvoie une valeur petite, meilleur est le modèle. Nous définissons le modèle suivant : \begin{equation*} @@ -36,9 +36,9 @@ Nous définissons le modèle suivant : \end{matrix} \right. \end{equation*} -Alors une fonctions de coût, est une fonction $l$ de $\mathbb{R}^n\times\mathbb{R}^n$ dans $\mathbb{R}^+$. +Alors une fonction de coût, est une fonction $l$ de $\mathbb{R}^n\times\mathbb{R}^n$ dans $\mathbb{R}^+$. On se donne l'espace probabilisé $(\Omega,\mathcal{T},P)$. -Soit $\mathcal{V}$ l'ensemble des variables aléatoire de $\Omega$ dans $\mathbb{R}^+$. +Soit $\mathcal{V}$ l'ensemble des variables aléatoires de $\Omega$ dans $\mathbb{R}^+$. Nous pouvons ainsi définir le coût induit par un choix de paramètres par la fonction \begin{equation*} @@ -61,66 +61,66 @@ Nous pouvons donc appliquer une descente de gradient comme vu à la Section~\ref \begin{equation*} \text{min}_{\theta\in\Theta}c(\theta) \end{equation*} -En pratique la quantité $c(\theta)$ est évalué en calculant la moyenne empirique sur un grande nombre de donnée ce qui converge vers l'espérance d'après la loi des grands nombres~\cite{proba}. -$c$ n'étant pas forcément convexe, en fonction du point de départ ($x_0$) l'algorithme de descente de gradient peut converger vers un minimum local qui donnera un modèle finale avec de piètre qualités. +En pratique la quantité $c(\theta)$ est évaluée en calculant la moyenne empirique sur un grande nombre de données, ce qui converge vers l'espérance d'après la loi des grands nombres~\cite{proba}. +$c$ n'étant pas forcément convexe, en fonction du point de départ ($x_0$) l'algorithme de descente de gradient peut converger vers un minimum local qui donnera un modèle finale avec de piètres qualités. C'est ce que nous représentons dans la Figure~\ref{fig:background-opti-cvx} où nous voyons une convergence vers un minimum local alors que le point recherché est au fond d'une vallée plus profonde. -Très souvent l'algorithme d'optimisation utilisé est la descente de gradient stochastique (SGD)\footnote{\textit{Stochastic gradient descent}}~\cite{amari1993back}, c'est une version modifié de la descente de gradient adapté aux réseaux de neurones qui permet d'accélérer la convergence~\cite{bottou2012stochastic} et d'éviter les minima locaux~\cite{bottou1991stochastic}. -Cet algorithme évalue l'espérance empirique de $C(\theta)$ sur chaque élément, appelé \textit{mini batch}, d'une partition des données d'entraînements. +Très souvent l'algorithme d'optimisation utilisé est la descente de gradient stochastique (SGD)\footnote{\textit{Stochastic gradient descent}}~\cite{amari1993back}, c'est une version modifiée de la descente de gradient adaptée aux réseaux de neurones qui permet d'accélérer la convergence~\cite{bottou2012stochastic} et d'éviter les minimas locaux~\cite{bottou1991stochastic}. +Cet algorithme évalue l'espérance empirique de $C(\theta)$ sur chaque élément, appelé \textit{mini batch}, d'une partition des données d'entraînement. -La recherche des paramètre d'entraînement comme la finesse de la partition ou le pas est en pratique réalisé par des algorithmes qui parcours un espace de recherche et regarde l'entraînement pour quelques itérations~\cite{bergstra2015hyperopt}. +La recherche des paramètres d'entraînement comme la finesse de la partition ou le pas est en pratique réalisée par des algorithmes qui parcourent un espace de recherche et regardent l'entraînement pour quelques itérations~\cite{bergstra2015hyperopt}. Nous appelons cela l'\emph{optimisation des hyperparamètres}. \begin{figure} \begin{subfigure}{0.3\linewidth} \includegraphics[width=\linewidth]{background/figure/ml/convex/f_local3.1.pdf} - \caption{L'algorithme tombe dans un minimum locale ($u_0=3,1$).} + \caption{L'algorithme tombe dans un minimum local ($u_0=3,1$).} \end{subfigure} \begin{subfigure}{0.3\linewidth} \includegraphics[width=\linewidth]{background/figure/ml/convex/f_local8.28.pdf} - \caption{L'algorithme tombe dans un minimum globale ($u_0=8,28$).} + \caption{L'algorithme tombe dans un minimum global ($u_0=8,28$).} \end{subfigure} \begin{subfigure}{0.3\linewidth} \includegraphics[width=\linewidth]{background/figure/ml/convex/conv_local.pdf} - \caption{Convergence vers un minimum locale et globale.} + \caption{Convergence vers un minimum local et global.} \end{subfigure} - \caption{Impacte de la convexité sur la convergence.} + \caption{Impact de la convexité sur la convergence.} \label{fig:background-opti-cvx} \end{figure} \subsection{Évaluer un modèle} Nous appellerons ici évaluation d'un modèle, le calcul des métriques qui permettent de juger de son utilité. Ces métriques varient en fonction du type de modèle et du contexte dans lequel il est utilisé. - Par exemple il est souhaitable qu'un modèle qui permette de prédire l'absence ou la présence d'une maladie ai un faible taux de faux négatifs. - Cela permet d'éviter de penser à tords qu'un patient n'est pas malade ce qui pourrai entraîner un retard dans sa prise en charge. + Par exemple, il est souhaitable qu'un modèle qui permette de prédire l'absence ou la présence d'une maladie ait un faible taux de faux négatifs. + Cela permet d'éviter de penser à tord qu'un patient n'est pas malade ce qui pourrait entraîner un retard dans sa prise en charge. \subsubsection{Classification} \label{sec:background-ml-classif} - Les modèles de classification visent à attribuer à chaque point des données évalué une classe parmi un ensemble fini. - Par exemple, dans le cadre de la justice prédictive, inférer pour chaque coupable si il sera récidiviste ou non~\cite{zhiyuan2020limits}. - Quand il y a deux classes, comme dans l'exemple précédent avec \emph{récidiviste} ou \emph{non-récidiviste}, nous dirons que le modèle effectue une classification binaire. + Les modèles de classification visent à attribuer à chaque point des données évaluées une classe parmi un ensemble fini. + Par exemple, dans le cadre de la justice prédictive, inférer pour chaque coupable s'il sera récidiviste ou non~\cite{zhiyuan2020limits}. + Quand il y a deux classes, comme dans l'exemple précédent, avec \emph{récidiviste} ou \emph{non-récidiviste}, nous dirons que le modèle effectue une classification binaire. Ce cas est très présent en apprentissage automatique~\cite{li2020statistical, kumari2017machine} ainsi il existe beaucoup d'outils qui permettent d'évaluer ce genre de classifieur~\cite{canbek2022ptopi}. - Nous représentons le modèle que nous souhaite évaluer par une fonction $f:E\rightarrow \{0,1\}$ - C'est-à-dire que le modèle prend une donnée d'entrée dans $E$, cela peut être une image ou une ligne d'un tableau, et lui attribut soit la classe $0$ soit la classe $1$. + Nous représentons le modèle que nous souhaitons évaluer par une fonction $f:E\rightarrow \{0,1\}$ + C'est-à-dire que le modèle prend une donnée d'entrée dans $E$, cela peut être une image ou une ligne d'un tableau, et lui attribue soit la classe $0$ soit la classe $1$. Nous dirons que $0$ est un résultat négatif et $1$ un résultat positif. - Pour évaluer correctement le modèle, nous devons prendre en compte la répartition dé données dans $E$. - Nous modélisons cette répartition par les lois de probabilités de deux variables aléatoires : + Pour évaluer correctement le modèle, nous devons prendre en compte la répartition des données dans $E$. + Nous modélisons cette répartition par les lois de probabilité de deux variables aléatoires : \begin{itemize} \item $X:\Omega\rightarrow E$ \item $Y:\Omega\rightarrow \{0,1\}$ \end{itemize} $(\Omega,\mathcal{T},P)$ est un espace probabilisé. - Il n'est pas nécessaire que nous définissons de manière plus précise cet espace car nous ne nous intéressons qu'aux mesure images de $X$ et $Y$ par $P$. - Nous pouvons, de la même manière définir une variable aléatoire pour la sortie du modèle : $\hat{Y} = f\circ X$. + Il n'est pas nécessaire que nous définissions de manière plus précise cet espace car nous ne nous intéressons qu'aux mesures images de $X$ et $Y$ par $P$. + Nous pouvons, de la même manière, définir une variable aléatoire pour la sortie du modèle : $\hat{Y} = f\circ X$. Grâce à ces objets, nous allons définir des quantités qui décrivent l'utilité du modèle. La première est l'\emph{exactitude}\footnote{\textit{Accuracy}}, c'est la probabilité que le classifieur prédise la bonne classe. Nous la définissons par $P(\hat{Y}=Y)$. - Cette définition, bien que très intuitive, souffre qu'elle est sensible au déséquilibré de classe~\footnote{\textit{Class imablance}}. + Cette définition, bien que très intuitive, a le désavantage d'être sensible au déséquilibre de classe~\footnote{\textit{Class imablance}}. Considérons l'exemple suivant : imaginons un modèle déployé en 1982 qui cherche à prédire si un employé cadre est une femme ou un homme. - Supposons que ce modèle ai une exactitude de $79\%$, c'est-à-dire que le modèle prédise justement le genre huit fois sur dix, nous dirons certainement que ce modèle est performant ? + Supposons que ce modèle ait une exactitude de $79\%$, c'est-à-dire que le modèle prédise justement le genre huit fois sur dix, nous dirons certainement que ce modèle est performant ? Voici donc un modèle qui atteint cette performance : \begin{equation} f: @@ -133,7 +133,7 @@ Nous appelons cela l'\emph{optimisation des hyperparamètres}. \end{equation} C'est-à-dire un modèle qui prédise toujours homme. - Calculons son exactitude, pour plus de lisibilité nous encodons homme par $0$ et femme par $1$. + Calculons son exactitude ; pour plus de lisibilité nous encodons homme par $0$ et femme par $1$. Comme le modèle prédit toujours homme, $P(\hat{Y}=0)=1$ et $P(\hat{Y}=1)=0$. \begin{align} &P(\hat{Y}=Y)\nonumber\\ @@ -142,29 +142,29 @@ Nous appelons cela l'\emph{optimisation des hyperparamètres}. =&1\cdot P(Y=0) + 0\cdot P(Y=1) = P(Y=0)\nonumber \end{align} - Or, en 1982 il y avait uniquement $21\%$ des cadres qui était des femmes~\cite{insee1982parite}, ainsi $P(Y=0)=0,79$ et $P(Y=1)=0,21$. - Nous avons donc bien une exactitude de $79\%$ bien que le modèle n'ai aucune utilité pratique ! + Or, en 1982 il y avait uniquement $21\%$ des cadres qui étaient des femmes~\cite{insee1982parite}, ainsi $P(Y=0)=0,79$ et $P(Y=1)=0,21$. + Nous avons donc bien une exactitude de $79\%$ bien que le modèle n'ait aucune utilité pratique ! Ainsi l'exactitude est significative uniquement quand $Y$ suit une loi uniforme. Nous définissons donc une autre métrique : l'\emph{exactitude équilibrée}\footnote{\textit{balanced accuracy}}. Pour cela nous repartons de l'Equation~\ref{eq:background-ml-ac} et remplaçons $P(Y=0)$ et $P(Y=1)$ par $\frac{1}{2}$. Ainsi l'exactitude équilibrée est la moyenne de $P(\hat{Y}=0|Y=0)$ et de $P(\hat{Y}=1|Y=1)$. De manière plus générale, l'exactitude équilibrée est - $\sum_{e\in E}P(\hat{Y}=e\mid Y=e)$. - C'est-à-dire que nous regardons pour chaque classes séparément (homme ou femme dans notre exemple) la probabilité qu'un point soit bien classifié. + $\frac{1}{\#E}\sum_{e\in E}P(\hat{Y}=e\mid Y=e)$. + C'est-à-dire que nous regardons pour chaque classe séparément (homme ou femme dans notre exemple) la probabilité qu'un point soit bien classifié. Ainsi, en calculant l'exactitude équilibrée avec l'exemple précèdent nous obtenons $\frac{1+0}{2}=0,5$. Ce résultat montre bien que le modèle n'a pas d'utilité. \paragraph{La courbe \textit{Receiver Operating Characteristic} (ROC)} - Un grand nombre d'algorithme d'apprentissage automatique pour la classification binaire optimise les paramètres d'un e fonctions à valeurs dans $[0,1]$ (ou dans un ensemble un bijection avec $[0,1]$). - C'est le cas par exemple des réseaux de neurones avec un unique neurones dans la couche finale, de la régression logistique, de la forêt aléatoire, etc. + Un grand nombre d'algorithmes d'apprentissage automatique pour la classification binaire optimise les paramètres d'une fonction à valeurs dans $[0,1]$ (ou dans un ensemble en bijection avec $[0,1]$). + C'est le cas par exemple des réseaux de neurones avec un unique neurone dans la couche finale, de la régression logistique, de la forêt aléatoire, etc. Nous appelons cette étape intermédiaire dans la classification, logit ou \textit{soft label}. - La classification ce fait grâce un seuil sur ce logit. - C'est à dire que si on appelle $g(x)$ le logit de $x$, le modèle de classification peut se décomposer par : $f_\uptau = 1_{[\uptau,1]}\circ g$. + La classification se fait grâce un seuil sur ce logit. + C'est-à-dire que si on appelle $g(x)$ le logit de $x$, le modèle de classification peut se décomposer par : $f_\uptau = 1_{[\uptau,1]}\circ g$. - Ainsi si nous calculons l'exactitude, l'exactitude équilibrée ou tout autre métrique que nous avons présenté précédemment elle dépendra du seuil ($\uptau$). - Pour palier cela nous regardons la ROC : une courbe paramétrique qui au seuil associe le taux de faux positif (FPR)\footnote{\textit{False positive rate}} et le taux de vrai positif (TPR)\footnote{\textit{True positive rate}}. - Nous définissons ces quantité comme suit : + Ainsi si nous calculons l'exactitude, l'exactitude équilibrée ou toute autre métrique que nous avons présentée précédemment, elle dépendra du seuil ($\uptau$). + Pour palier cela nous regardons la ROC : une courbe paramétrique qui, au seuil, associe le taux de faux positifs (FPR)\footnote{\textit{False positive rate}} et le taux de vrais positifs (TPR)\footnote{\textit{True positive rate}}. + Nous définissons ces quantités comme suit : \begin{itemize} \item Taux de faux positifs : $\text{fpr}(\uptau) = P(f_\uptau\circ X=1\mid Y=0)$ \item Taux de vrais positifs $\text{tpr}(\uptau) = P(f_\uptau\circ X=1\mid Y=1)$ @@ -199,23 +199,23 @@ Nous appelons cela l'\emph{optimisation des hyperparamètres}. \label{fig:background-ml-roc} \end{figure} - La courbe ROC montre que le seuil permet d'ajuster le compromis entre faux positif et vrai positif, en pratique ce compromis dépend de l'application. - En effet, comme nous le voyons sur la Figure~\ref{fig:background-ml-roc}, si le seuil vaut $\uptau=0$, tous les points sont classifié positivement par le modèle. - Ainsi le taux de faux positifs est maximal et vaux $1$. - Dans le cas totalement opposé de $\uptau=1$ aucun point n'est classifié comme positif et donc il n'y a pas de faux positif mais il n'y a pas non plus de vrai positif. + La courbe ROC montre que le seuil permet d'ajuster le compromis entre faux positifs et vrais positifs ; en pratique ce compromis dépend de l'application. + En effet, comme nous le voyons sur la Figure~\ref{fig:background-ml-roc}, si le seuil vaut $\uptau=0$, tous les points sont classifiés positivement par le modèle. + Ainsi le taux de faux positifs est maximal et vaut $1$. + Dans le cas totalement opposé de $\uptau=1$ aucun point n'est classifié comme positif et donc il n'y a pas de faux positifs mais il n'y a pas non plus de vrais positifs. Il s'agit donc de trouver un équilibre entre ces deux extrêmes. - Il peut être utile, pour comparer plusieurs classifieurs de résumer la ROC en une seule valeur. - Pour cela nous utilisons l'aire sous la courbe ROC, appelé AUC~\footnote{\textit{Area Under the Curve}}. - Comme nous le voyons sur la Figure~\ref{fig:background-ml-roc}, un classifieur qui malgré l'ajustement de son seuil ne prédit pas correctement l'étiquette a une AUC de $0,5$. - Alors qu'un classifieur parfait, c'est-à-dire pour lequel il existe un seuil qui produit un taux de faux positif nul et un taux de vrai positif égale à 1, a une AUC de $1$. + Il peut être utile, pour comparer plusieurs classifieurs, de résumer la ROC en une seule valeur. + Pour cela nous utilisons l'aire sous la courbe ROC, appelé AUC\footnote{\textit{Area Under the Curve}}. + Comme nous le voyons sur la Figure~\ref{fig:background-ml-roc}, un classifieur qui, malgré l'ajustement de son seuil, ne prédit pas correctement l'étiquette, a une AUC de $0,5$. + Alors qu'un classifieur parfait, c'est-à-dire pour lequel il existe un seuil qui produit un taux de faux positifs nul et un taux de vrais positifs égaux à 1, a une AUC de $1$. \subsubsection{Régression} - La régression est un autre type de modèle qui cherche non pas à ranger une donnée dans une classe mais plutôt à prédire une grandeur. - Par exemple prédire la masse d'une personne à partir de sa taille. - 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 calcul de logit est une forme de régression 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èles, nous pouvons observer l'exemple de la régression logistique. + La régression est un autre type de modèle qui cherche, non pas à ranger une donnée dans une classe, mais plutôt à prédire une grandeur. + Par exemple, prédire la masse d'une personne à partir de sa taille. + Nous avons vu dans la section précédente que certains modèles de classification utilisent une étape intermédiaire de calcul de logit. + Le calcul de logit est une forme de régression car il s'agit de prédire une grandeur et non pas de choisir une classe. + Pour mieux comprendre le lien entre ces deux types de modèles, nous pouvons observer l'exemple de la régression logistique. \begin{figure} \centering \begin{subfigure}{0.3\linewidth} @@ -244,24 +244,24 @@ Nous appelons cela l'\emph{optimisation des hyperparamètres}. \end{figure} Dans la Figure~\ref{fig:background-ml-logit} nous avons l'exemple d'une régression logistique qui nous donne la courbe logit dans les trois premières sous-figures. - Le seuil est représenté par le changement de couleur tandis que les étiquettes sont représentées par la position sur l'axe de ordonnées. - Nous observons que changer le seuil permet d'influer sur les différentes métriques que nous avons présenté en Section~\ref{sec:backgroung-ml-classif}. + Le seuil est représenté par le changement de couleur, tandis que les étiquettes sont représentées par la position sur l'axe des ordonnées. + Nous observons que changer le seuil permet d'influer sur les différentes métriques que nous avons présentées en Section~\ref{sec:backgroung-ml-classif}. Le choix d'un seuil approprié est donc dépendant de l'application. - Comme nous pouvons de le voir sur la Sous-figure~\ref{subfig:background-ml-logit-d}, un 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éséquilibre, 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 exactitude et exactitude équilibrée à seuil égale. + Comme nous pouvons le voir sur la Sous-figure~\ref{subfig:background-ml-logit-d}, un seuil proche de $1$ permet de grandement réduire le FPR mais réduit aussi les autres métriques. + Le choix d'un seuil est aussi particulièrement important quand les données présentent un déséquilibre, c'est-à-dire qu'une classe est majoritaire par rapport à une autre~\cite{zou2016finding}. + Dans la Figure~\ref{fig:background-ml-logit} il y $28\%$ de points positifs représentés en rouge. + Cela explique la différence entre exactitude et exactitude équilibrée à seuil égal. \subsection{Apprentissage profond} Nous allons présenter ici rapidement les réseaux de neurones dans un contexte d'inférence et de génération car cela nous sera utile pour les Chapitres~\ref{sec:aia} et~\ref{sec:synth}. \subsubsection{Réseau de neurones} -En apprentissage profond, l'expression 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 neurones. +En apprentissage profond, l'expression 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ée l'architecture du réseau de neurones. Dans cette section nous allons présenter quelques architectures classiques. -Pour en savoir plus à ce sujet et sur l'apprentissage automatique en générale, notamment pour avoir plus de détails sur l'entraînement, nous renvoyons le.la lecteur.rice au livre de Yann Le Cun, \textit{Quand la machine apprend}~\cite{lecun2019quand}. +Pour en savoir plus à ce sujet et sur l'apprentissage automatique en général, notamment pour avoir plus de détails sur l'entraînement, nous renvoyons le.la lecteur.rice au livre de Yann Le Cun, \textit{Quand la machine apprend}~\cite{lecun2019quand}. -Un réseau de neurones est composé de plusieurs couches successives qui on chacune des paramètres. -En d'autre termes un modèle +Un réseau de neurones est composé de plusieurs couches successives qui ont chacune des paramètres. +En d'autres termes un modèle \begin{equation*} f:\left\{ \begin{matrix} @@ -270,15 +270,15 @@ En d'autre termes un modèle \end{matrix} \right. \end{equation*} -peut se décomposer comme une composition de modèle intermédiaires. +peut se décomposer comme une composition de modèles intermédiaires. Par exemple un modèle à $m$ couches peut s'écrire : \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\footnote{\textit{Fully connected}} et les couches de convolution. +Nous utiliserons deux types de couches : les couches entièrement connectées\footnote{\textit{Fully connected}} et les couches de convolution. -Une couche entièrement connectée est elle même composé d'une multiplication matricielle, une addition à un vecteur et une fonctions d'activation. +Une couche entièrement connectée est elle-même composée d'une multiplication matricielle, d'une addition à un vecteur et d'une fonction d'activation. Considérons une couche intermédiaire de $\mathbb{R}^o$ dans $\mathbb{R}^p$ Nous dirons que cette couche a $p$ neurones. Nous utiliserons toujours la même fonction d'activation : \textit{Rectified Linear} (ReLu). @@ -291,15 +291,15 @@ Cette fonction est définie de la manière suivante : \begin{matrix} 1_{\mathbb{R}^+}(x_0)x_0\\ \vdots\\ - 1_{\mathbb{R}^+}(x_{n-1})x_{n-1}\\ + 1_{\mathbb{R}^+}(x_{p-1})x_{p-1}\\ \end{matrix} \right) \end{matrix} \right. \end{equation*} -Nous remarquons que cette fonction n'as pas de paramètre à optimiser, son but et d'éviter que l'architecture globale soit une fonction affine. +Nous remarquons que cette fonction n'a pas de paramètres à optimiser ; son but est d'éviter que l'architecture globale soit une fonction affine. -La partie linéaire de la couche est paramétré par les coefficient de la matrice de l'application linéaire. +La partie linéaire de la couche est paramétrée par les coefficients de la matrice de l'application linéaire. Cette fonction $l$ admet donc comme expression $l(x)=Mx$ avec $M\in\mathbb{R}_{p,o}$ Enfin la partie additive est appelée biais et s'écrit $B(x) = x+b$ avec $b\in\mathbb{R}^p$. @@ -313,12 +313,12 @@ Ainsi la $i$-ième couche s'écrit : \right. \end{equation*} -Regardons maintenant les couches de convolutions. +Regardons maintenant les couches de convolution. L'idée de la convolution est d'extraire des représentations\footnote{\textit{Features extraction}} à partir d'un signal qui est généralement une image, un son ou la sortie d'un capteur analogique comme un gyroscope. -Une architecture classique utilise les couches de convolutions à l'entrée du réseau avant les couches entièrement connectées. -L'idée étant que le modèle commence par extraire de représentations puis les analyse. +Une architecture classique utilise les couches de convolution à l'entrée du réseau avant les couches entièrement connectées. +L'idée étant que le modèle commence par extraire des représentations puis les analyse. -Dans ce type de couche le paramètre $\theta_i$ est le noyau de convolution. +Dans ce type de couche, le paramètre $\theta_i$ est le noyau de convolution. C'est la fonction par laquelle on multiple le signal sous l'intégrale. Pour un noyau de convolution de taille $c$ \begin{equation} @@ -334,37 +334,37 @@ Où $x'$ est tel que $x'(u-t)$ soit toujours bien défini par rembourrage\footno \subsubsection{Modèle génératif} \label{sec:background-generation} -Une générateur est une fonction qui prend en entrée un jeu de données réel et renvoi un jeu de donnée synthétique. +Un générateur est une fonction qui prend en entrée un jeu de données réel et renvoie un jeu de données synthétique. Cette définition est suffisamment générale pour que l'identité soit un générateur. -Nous dirons que la sortie du générateur identité sont des données réels et nous appellerons donnée synthétique la sortie de n'importe quel autre générateur. +Nous dirons que la sortie du générateur identité sont des données réelles et nous appellerons données synthétiques la sortie de n'importe quel autre générateur. -En plus du générateur identité nous utiliserons des réseaux de neurones adverse génératifs~\footnote{\textit{Genertaiv Adversarial Network}} (GAN)~\cite{gan}. -Le but d'un GAN est de générer des échantillons réalistes étant donné une loi de probabilité. +En plus du générateur identité, nous utiliserons des réseaux de neurones adverses génératifs~\footnote{\textit{Genertaiv Adversarial Network}} (GAN)~\cite{gan}. +Le but d'un GAN est de générer des échantillons réalistes suivant une loi de probabilité. Pour arriver à cela, un GAN utilise deux réseaux de neurones : un générateur et un discriminateur. -Le domaine du générateur est de petit dimension relativement à son codomaine. +Le domaine du générateur est de petite dimension comparativement à son codomaine. La dimension du codomaine est la même que celle des données que l'on souhaite générer. -Par exemple pour générer de images de taille 64 par 64, le codomaine est $\mathbb{R}_{64,64}$. +Par exemple, pour générer de images de taille 64 par 64, le codomaine est $\mathbb{R}_{64,64}$. Pour générer une donnée, nous évaluons le générateur sur un point généré à partir d'une loi normale multidimensionnelle. -La sortie de générateur est la nouvelle donnée généré. +La sortie de générateur est la nouvelle donnée générée. Le discriminateur est utilisé uniquement lors de l'entraînement du GAN et a pour but de s'assurer que le générateur produise des données réalistes. -Pour cela, le discriminateur est un réseau de neurones ayant une tâche de classification : inférer si une donnée est synthétique ou réel. -Ainsi, dans la procédure d'entraînement, le discriminateur et le générateur sont en compétition : le but du générateur est de tromper le discriminateur à classifier une donnée synthétique comme réel. +Pour cela, le discriminateur est un réseau de neurones ayant une tâche de classification : inférer si une donnée est synthétique ou réelle. +Ainsi, dans la procédure d'entraînement, le discriminateur et le générateur sont en compétition : le but du générateur est de tromper le discriminateur à classifier une donnée synthétique comme réelle. \subsection{Apprentissage ensembliste} L'apprentissage ensembliste\footnote{\textit{Ensemble learning}} vise à combiner plusieurs classifieurs pour en obtenir un nouveau plus performant. Cette procédure se passe en deux temps. -Le premier consiste à créer un ensemble de classifieur faibles. +Le premier consiste à créer un ensemble de classifieurs faibles. Le second consiste à combiner ces classifieurs pour en obtenir un nouveau efficace. -Bien sure ces deux étapes sont liées et doivent être réfléchies ensembles. +Bien sûr ces deux étapes sont liées et doivent être réfléchies ensembles. -L'apprentissage ensembliste intervient à deux niveau dans ce manuscrit. -Déjà nous utiliserons beaucoup la forêt aléatoire\footnote{\textit{Random forest}} qui est un algorithme particulièrement efficace pour les bases de donnée tabulaires~\cite{shwartz2022tabular,grinsztajn2022tree}. -La forêt aléatoire~\cite{breiman2001random} construit des arbres de décisions sur des sous ensembles de la base de donnée d'entraînement et sur des projections aléatoirement choisit des donnée\footnote{\textit{Feature bagging}}. +L'apprentissage ensembliste intervient à deux niveaux dans ce manuscrit. +Déjà nous utiliserons beaucoup la forêt aléatoire\footnote{\textit{Random forest}} qui est un algorithme particulièrement efficace pour les bases de données tabulaires~\cite{shwartz2022tabular,grinsztajn2022tree}. +La forêt aléatoire~\cite{breiman2001random} construit des arbres de décision sur des sous-ensembles de la base de données d'entraînement et sur des projections aléatoirement choisies des données\footnote{\textit{Feature bagging}}. -Ensuite au Chapitre~\ref{sec:fini} nous allons crée un nouvel algorithme de votation\footnote{\textit{Voting}} : une manière de combiner plusieurs classifieurs. -Cet algorithme se basera la notion d'espace de compréhension. -Un espace de compréhension\footnote{\textit{Behavior knowledge space}} est une application qui associa aux prédictions d'une vecteur de classifieurs une prédiction optimale~\cite{1688199}. +Ensuite au Chapitre~\ref{sec:fini} nous allons créer un nouvel algorithme de votation\footnote{\textit{Voting}} : une manière de combiner plusieurs classifieurs. +Cet algorithme se basera sur la notion d'espace de compréhension. +Un espace de compréhension\footnote{\textit{Behavior knowledge space}} est une application qui associe aux prédictions d'un vecteur de classifieur une prédiction optimale~\cite{1688199}. Pour $f_0,\cdots,f_n$ classifieurs à valeur dans $E$, l'espace de compréhension $e$ est une fonction de $E^n$ dans $E$. Ainsi, pour une donnée d'entrée $x$ la prédiction retenue sera $e(f_0(x),\cdots,f_n(x))$~\cite{1626170}. -- cgit v1.2.3