Search
Types d'apprentissage machine

Dans son livre, (Marsland, 2015), a défini l'apprentissage comme le fait de "s'améliorer" dans l'accomplissement d'une tâche grâce à la pratique. Ça consiste donc à faire en sorte que les machines (ordinateurs), en suivant des recettes algorithmiques, modifient ou plutôt adaptent leurs actions pour qu'elles deviennent plus précises afin de donner des résultats justes et acceptables.

Suite à cette définition, deux questions peuvent être soulevées: comment l'ordinateur sait-il s'il s'améliore ou non, et comment sait-il comment s'améliorer? L'auteur propose plusieurs réponses possibles à ces questions afin de cerner les différents types d'apprentissage machine. Il est possible d'indiquer à notre algorithme la bonne réponse à un problème pour qu'il l'obtienne la prochaine fois. Nous espérons que nous n'aurons à lui donner que quelques bonnes réponses et qu'il pourra ensuite trouver comment obtenir les bonnes réponses pour d'autres problèmes similaires (généraliser). Alternativement, nous pouvons lui indiquer si la réponse était correcte ou non, mais pas comment trouver la bonne réponse, de sorte qu'il doit chercher comment trouver cette bonne réponse. Une variante de ceci est que nous donnions un score pour la réponse, en fonction de sa justesse, plutôt qu'une réponse "bonne ou mauvaise" (0, ou 1). Enfin, nous n'avons peut-être pas de bonnes réponses; nous voulons simplement que l'algorithme trouve des entrées qui ont quelque chose en commun.

Apprentissage Supervisé

De façon générale, l'apprentissage statistique supervisé consiste à construire un modèle statistique pour prédire ou estimer un résultat en fonction d'une ou plusieurs variables explicatives

Dans ce cas, on utilise un algorithme pour analyser les données d'entraînement afin d'apprendre la fonction qui mappe l'entrée des variables explicatives à la sortie qui est le résultat souhaité.

autrement dit, on cherche à expliquer une variable $Y$ à l’aide d’un ensemble de variables $\mathbf{X}$

$$ Y=f(\mathbf{X})+\epsilon$$

Cette fonction $\hat{f}$ déduite mappe de nouveaux exemples inconnus en généralisant à partir des données d'entraînement afin d'anticiper (prédire) $Y$ dans des situations non vues auparavant.

Avec l'apprentissage non-supervisé, nous sommes capables de résoudre les problèmes de classification ainsi que de régression

Classification

Lorsque les données sont utilisées pour prédire une variable catégorielle. C'est le cas lorsqu'on attribue une étiquette ou un indicateur, soit un chien ou un chat, à une image.

Lorsqu'il n'y a que deux étiquettes, on appelle cela une classification binaire. Lorsqu'il y a plus de deux catégories, les problèmes sont appelés classification multi-classes.

supervisés

Régression

Quand on prédit des valeurs continues ("numériques*"), les problèmes deviennent un problème de régression.

Apprentissage non-supervisés

Avec l'apprentissage statistique non-supervisés, il y a des entrées mais pas de sortie supervisée

On cherche à apprendre des relations et de la structure à partir des données.

Regroupement ( Clustering )

Regroupement d'un ensemble d'exemples de données de sorte que les exemples d'un groupe (ou d'une grappe) soient plus semblables (selon certains critères) que ceux des autres groupes. Ceci est souvent utilisé pour segmenter l'ensemble des données en plusieurs groupes. Une analyse peut être effectuée dans chaque groupe pour aider les utilisateurs à trouver des modèles intrinsèques.

non-supervisés

Réduction des dimensions

Réduction du nombre de variables considérées. Dans de nombreuses applications, les données brutes ont des caractéristiques dimensionnelles très élevées et certaines caractéristiques sont redondantes ou non pertinentes à la tâche.

Par exemple, compression d’images, analyse de données de télématique ...etc.

On dispose d’un jeu de données dans un espace de dimension élevé $\mathbb{R}^k$ avec $k$ élevés: $\mathbf{X}_i=[x_{i1}, x_{i2}, \dots, x_{ik}]$ et $i=1, \dots, n$

On cherche une transformation $g: \mathbf{X}_i \rightarrow \mathbf{X}_i^*$ avec $\mathbf{X}_i^* \in \mathbb{R}^q$ où $q <<< k$ en perdant le moins d’information possible.

Apprentissage semi-supervisé

Le défi de l'apprentissage supervisé est que l'étiquetage des données peut être coûteux et prendre beaucoup de temps.

Si les étiquettes sont limitées, vous pouvez utiliser des exemples non étiquetés pour améliorer l'apprentissage supervisé.

Avec l'apprentissage semi-supervisé, on utilise des exemples non étiquetés avec une petite quantité de données étiquetées pour améliorer la précision de l'apprentissage.

Apprentissage par renforcement

L'apprentissage par renforcement analyse et optimise le comportement d'un agent en fonction des réactions de l'environnement. Les machines essaient différents scénarios pour découvrir les actions les plus payantes, plutôt que de se faire dire quelles actions prendre. Les essais et erreurs et les récompenses différées distinguent l'apprentissage par renforcement des autres techniques.

Voir l'exemple DeepMind de Google

Ai vs ML vs DL

Application

Des problèmes de cette nature se posent dans des domaines aussi divers que la finance, l'actuariat, la santé publique, l'environnment, l'astrophysique et même la politique

Notation et algèbre linéaire très simple

En général, nous allons considérer que $\mathbf{x}_{ij}$ représente la valeur de la $j$ième variable pour la $i$ème observation, où $i = 1,2,\dots,n$ et $j = 1,2,\dots,p$. $i$ sera utilisé pour indexer les échantillons ou les observations (de $1$ à $n$) et $j$ sera utilisé pour indexer les variables (de $1$ à $p$). On laisse $\mathbf{X}$ désigner une matrice $n x p$ dont le $(i, j)$ème élément est $\mathbf{x}_{ij}$ . C'est-à-dire,

\begin{equation*} \mathbf{X}_{n,p} = \begin{pmatrix} x_{1,1} & x_{1,2} & \cdots & x_{1,p} \\ x_{2,1} & x_{2,2} & \cdots & x_{2,p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n,1} & x_{n,2} & \cdots & x_{n,p} \end{pmatrix} \end{equation*}
import pandas as pd
salaire=pd.read_csv("https://raw.githubusercontent.com/nmeraihi/data/master/islr/Wage.csv")
salaire=salaire.reset_index(drop=True)
salaire.head()
year age sex maritl race education region jobclass health health_ins logwage wage
0 2006 18 1. Male 1. Never Married 1. White 1. < HS Grad 2. Middle Atlantic 1. Industrial 1. <=Good 2. No 4.318063 75.043154
1 2004 24 1. Male 1. Never Married 1. White 4. College Grad 2. Middle Atlantic 2. Information 2. >=Very Good 2. No 4.255273 70.476020
2 2003 45 1. Male 2. Married 1. White 3. Some College 2. Middle Atlantic 1. Industrial 1. <=Good 1. Yes 4.875061 130.982177
3 2003 43 1. Male 2. Married 3. Asian 4. College Grad 2. Middle Atlantic 2. Information 2. >=Very Good 1. Yes 5.041393 154.685293
4 2005 50 1. Male 4. Divorced 1. White 2. HS Grad 2. Middle Atlantic 2. Information 1. <=Good 1. Yes 4.318063 75.043154
salaire.shape
(3000, 12)

Parfois, nous serons intéressés par les lignes de $\mathbf{X}$, que nous écrivons sous la forme $x_1, x_2, \dots x_n$. Ici xi est un vecteur de longueur $p$, contenant les $p$ mesures de la variable pour la $i$ème observation. C'est-à-dire,

\begin{equation*} \mathbf{x}_{i} = \begin{pmatrix} x_{i,1} \\ x_{i,2} \\ \vdots \\ x_{i,p} \end{pmatrix} \end{equation*}
salaire.iloc[3:4,:]
year age sex maritl race education region jobclass health health_ins logwage wage
3 2003 43 1. Male 2. Married 3. Asian 4. College Grad 2. Middle Atlantic 2. Information 2. >=Very Good 1. Yes 5.041393 154.685293

A d'autres moments, nous nous intéresserons plutôt aux colonnes de $\mathbf{X}$, que nous écrivons sous la forme $x_1, x_2, \dots x_p$. Chacune est un vecteur de longueur $n$. C'est-à-dire,

\begin{equation*} \mathbf{x}_{j} = \begin{pmatrix} x_{1,j} \\ x_{2,j} \\ \vdots \\ x_{n,j} \end{pmatrix} \end{equation*}

Par exemple, pour les données de salaire, $\mathbf{x}_3$ contient 3 000 valeurs pour la variable sex

salaire.iloc[:,2:3]
sex
0 1. Male
1 1. Male
2 1. Male
3 1. Male
4 1. Male
... ...
2995 1. Male
2996 1. Male
2997 1. Male
2998 1. Male
2999 1. Male

3000 rows × 1 columns