Apprentissage machine

John Samuel
CPE Lyon

Year: 2021-2022
Email: john(dot)samuel(at)cpe(dot)fr

Creative Commons License

1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle [Pan 2016, Jaakkola 2019]

1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle [Pan 2016, Jaakkola 2019]

1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle 2.0 [Pan 2016, Jaakkola 2019]

1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle 2.0 [Pan 2016]

2. Apprentissage machine

Objectifs

Intelligence artificielle

2. Apprentissage machine

Objectifs

  1. Apprentissage machine
  2. Apprentissage profond
  3. Intelligence artificielle

2. Apprentissage machine

3 approches

  1. Apprentissage supervisé: disponibilité des données de formation labellisées
  2. Apprentissage non supervisé: aucune donnée de formation labellisée n'est disponible
  3. Apprentissage semi-supervisé: un petit ensemble de données de formation étiquetées et une grande quantité de données non étiquetées

2. Apprentissage machine

Formalisation

Exemples de caractéristiques

2. Apprentissage machine

Formalisation

Example

  1. https://en.wikipedia.org/wiki/Feature_vector

2. Apprentissage machine

Formalisation: Apprentissage supervisé

2. Apprentissage machine

Formalisation: Apprentissage non supervisé

2. Apprentissage machine

Formalisation: Apprentissage semi-supervisé

2. Apprentissage machine

Classification

Définition formelle

2. Apprentissage machine

Classification

Classificateurs

2. Apprentissage machine

Classification binaire

Classification binaire

2. Apprentissage machine

Classification

Linear Classificateurs

2. Apprentissage machine

Classification

Les vrais positifs et les vrais négatifs

2. Apprentissage machine

Classification

Précision et rappel

2. Apprentissage machine

Classification

Soit

2. Apprentissage machine

Classification

Alors

2. Apprentissage machine

Classification

2. Apprentissage machine

Classification

2. Apprentissage machine

Matrice de confusion

Les vrais positifs et les vrais négatifs

2. Apprentissage machine

Matrice de confusion

Matrice de confusion pour un classificateur SVM pour les chiffres manuscrits (MNIST)

2. Apprentissage machine

Matrice de confusion

Matrice de confusion pour un perceptron pour les chiffres manuscrits (MNIST)

2. Apprentissage machine

Classification multiclasse

Classification multiclasse

2. Apprentissage machine

Classification

Classification multiclasse [Aly 2005]

2. Apprentissage machine

Classification multiclasse

Classification multiclasse

2. Apprentissage machine

One-vs.-rest (One-vs.-all) strategy

La strategie un-contre le rest pour la classification multiclasse

2. Apprentissage machine

One-vs.-rest or One-vs.-all (OvR, OvA) strategy

La strategie un-contre le rest pour la classification multiclasse

2. Apprentissage machine

One-vs.-rest or One-vs.-all (OvR, OvA) strategy

2. Apprentissage machine

One-vs.-rest or One-vs.-all (OvR, OvA) strategy

Prendre des décisions signifie appliquer tous les classificateurs à un échantillon invisible x et prédire l'étiquette k pour laquelle le classificateur correspondant rapporte le score de confiance le plus élevé : \[\hat{y} = \underset{k \in \{1 \ldots K\}}{\arg\!\max}\; f_k(x)\]

2. Apprentissage machine

One-vs.-one strategy

La strategie un-contre-un pour la classification multiclasse

2. Apprentissage machine

One-vs.-one strategy

  • nécessite l'entraînement des \(\frac{K (K - 1)}{2}\) classificateurs binaires
  • chaque classificateur reçoit les échantillons d'une paire de classes du jeu de formation original, et doit apprendre à distinguer ces deux classes.
  • Au moment de la prédiction, un système de vote est appliqué : tous les \(\frac{K (K - 1)}{2}\) classificateurs sont appliqués à un échantillon non vu et la classe qui a obtenu le plus grand nombre de prédictions est prédite par le classificateur combiné.
  • La strategie un-contre-un pour la classification multiclasse

    2. Apprentissage machine

    Réseaux de neurones artificiels

    Réseaux de neurones artificiels

    2. Apprentissage machine

    Perceptron

    2. Apprentissage machine

    Perceptron

    Perceptron en mettant à jour sa limite linéaire à mesure que d'autres exemples de formation sont ajoutés.1
    1. Source: https://en.wikipedia.org/wiki/File:Perceptron_example.svg

    2. Apprentissage machine

    Perceptron

    Perceptron

    2. Apprentissage machine

    Perceptron: Définition formelle

    2. Apprentissage machine

    Perceptron: Définition formelle

    2. Apprentissage machine

    Perceptron : Étapes

    1. Initialiser les poids et les seuils
    2. Pour chaque exemple, \((x_j, d_j)\) dans l'ensemble d'entraînement
      • Calculer la sortie actuelle : \[y_j(t)= f[w(t).x_j]\] \[= f[w_0(t)x_{j,0} + w_1(t)x_{j,1} + w_2(t)x_{j,2} + \dotsb + w_n(t)x_{j,n}]\]
      • Calculer le poids: \[w_i(t + 1) = w_i(t) + r. (d_j-y_j(t))x_{j,i}\]
      \(r\) est le taux d'apprentissage.

    2. Apprentissage machine

    Perceptron : Étapes

    1. Répétez l'étape 2 jusqu'à l'erreur d'itération \[\frac{1}{s} (Σ |d_j - y_j(t)|)\] est inférieur au seuil spécifié par l'utilisateur \(\gamma\), ou un nombre prédéterminé d'itérations ont été effectuées, où \(s\) est à nouveau la taille de l'ensemble de l'échantillon.

    2. Apprentissage machine

    Fonction d'activation: fonction d'identité

    Équation

    \[f(x)=x\]

    Dérivée

    \[f'(x)=1\]

    Fonction d'identité

    2. Apprentissage machine

    Fonction d'activation: pas binaire

    Équation

    \[f(x) = \begin{cases} 0 & \text{for } x < 0\\ 1 & \text{for } x \ge 0 \end{cases} \]

    Dérivée

    \[f'(x) = \begin{cases} 0 & \text{for } x \ne 0\\ ? & \text{for } x = 0\end{cases}\]

    Pas binaire

    2. Apprentissage machine

    Fonction d'activation: fonction sigmoïde

    Équation

    \[f(x)=\sigma(x)=\frac{1}{1+e^{-x}}\]

    Dérivée

    \[f'(x)=f(x)(1-f(x))\]

    La fonction sigmoïde

    2. Apprentissage machine

    Fonction d'activation: TanH

    Équation

    \[f(x)=\tanh(x)=\frac{(e^{x} - e^{-x})}{(e^{x} + e^{-x})}\]

    Dérivée

    \[f'(x)=1-f(x)^2\]

    TanH

    2. Apprentissage machine

    Fonction d'activation: Rectified linear unit: ReLU

    Équation

    \[f(x) = \begin{cases} 0 & \text{for } x \le 0\\ x & \text{for } x > 0\end{cases} = \max\{0,x\}= x \textbf{1}_{x>0}\]

    Dérivée

    \[f'(x) = \begin{cases} 0 & \text{for } x \le 0\\ 1 & \text{for } x > 0\end{cases}\]

    Unité linéaire rectifiée (ReLU)

    2. Apprentissage machine

    Fonction d'activation: Gaussien

    Équation

    \[f(x)=e^{-x^2}\]

    Dérivée

    \[f'(x)=-2xe^{-x^2}\]

    Gaussien

    2. Apprentissage machine

    Perceptron multiclasse

    2. Apprentissage machine

    Neurones biologiques

    Neurone biologique1
    1. https://en.wikipedia.org/wiki/File:Neuron3.png

    2. Apprentissage machine

    Réseau de neurones artificiels

    2. Apprentissage machine

    Réseau de neurones artificiels: les couches

    2. Apprentissage machine

    Réseau de neurones artificiels: l'entraînement

    2. Apprentissage machine

    Composants des réseaux de neurones artificiels

    2. Apprentissage machine

    Composants des réseaux de neurones artificiels

    Neurones

    2. Apprentissage machine

    Composants des réseaux de neurones artificiels

    Connexions et poids

    2. Apprentissage machine

    Composants des réseaux de neurones artificiels

    Fonction de propagation

    3. Apprentissage profond

    Apprentissage profond

    3. Apprentissage profond

    Source: https://en.wikipedia.org/wiki/File:Deep_Learning.jpg

    3. Apprentissage profond

    Composants des réseaux de neurones artificiels

    Organisation

    3. Apprentissage profond

    Composants des réseaux de neurones artificiels

    Organisation et connectivité

    3. Apprentissage profond

    Composants des réseaux de neurones artificiels

    Organisation et connectivité

    3. Apprentissage profond

    Réseaux de neurones artificiels: Hyperparamètres

    3. Apprentissage profond

    Source: https://playground.tensorflow.org/

    3. Apprentissage profond

    Exemple: Tensorflow

                
               from tensorflow.keras.models import Sequential
               from tensorflow.keras.layers import Dense
               from tensorflow.keras.optimizers import SGD
    
               # Créer un modèle séquentiel
               model = Sequential()
               model.add(Dense(4, activation='relu', input_shape=(3,)))
               model.add(Dense(units=2, activation='softmax'))
    
               # Compilation du modèle
               sgd = SGD(lr=0.01)
               model.compile(loss='mean_squared_error',
                    optimizer=sgd,metrics=['accuracy'])
                
              

    3. Apprentissage profond

    Source: https://playground.tensorflow.org/

    3. Apprentissage profond

    Feedforward neural network

    Réseau de neurones en aval

    3. Apprentissage profond

    Réseau de neurones en aval (Feedforward neural networks)

    Perceptron simple couche

    Perceptron simple couche

    3. Apprentissage profond

    Réseau de neurones en aval (Feedforward neural networks)

    Perceptron multicouche

    Perceptron multicouche

    3. Apprentissage profond

    Réseau de neurones en aval (Feedforward neural networks)

    Rétropropagation du gradient (Backpropagation)

    3. Apprentissage profond

    Réseau de neurones récurrents

    3. Apprentissage profond

    Réseau de neurones récurrents

    Réseau de neurones récurrents

    3. Apprentissage profond

    Réseau récurrent à mémoire court et long terme

    Long short-term memory (LSTM) network

    LSTM

    3. Apprentissage profond

    Réseau récurrent à mémoire court et long terme

    Long short-term memory (LSTM) network

    LSTM

    3. Apprentissage profond

    Réseau récurrent à mémoire court et long terme

    Long short-term memory (LSTM) network

    LSTM

    3. Apprentissage profond

    Réseaux de neurones convolutionnels

    3. Apprentissage profond

    Réseaux de neurones convolutionnels

    3. Apprentissage profond

    Réseaux de neurones convolutionnels

    2. Apprentissage profond

    Noyau (traitement d'image)

    Identité

    \( \begin{matrix} \ \ 0 &\ \ 0 &\ \ 0 \\ \ \ 0 &\ \ 1 &\ \ 0 \\ \ \ 0 &\ \ 0 &\ \ 0 \end{matrix} \)

    La détection de contours

    \( \begin{matrix} \ \ 1 & 0 & -1 \\ \ \ 0 & 0 & \ \ 0 \\ -1 & 0 & \ \ 1 \end{matrix} \)

    3. Apprentissage profond

    Noyau (traitement d'image)

    Box blur

    \( \frac{1}{9} \begin{matrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{matrix} \)

    Flou de Gauss 3 × 3

    \( \frac{1}{16} \begin{matrix} 1 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1 \end{matrix} \)

    3. Apprentissage profond

    Convolution matricielle

    \[ \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1n} \\ x_{21} & x_{22} & \cdots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \cdots & x_{mn} \\ \end{bmatrix} * \begin{bmatrix} y_{11} & y_{12} & \cdots & y_{1n} \\ y_{21} & y_{22} & \cdots & y_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ y_{m1} & y_{m2} & \cdots & y_{mn} \\ \end{bmatrix} = \sum^{m-1}_{i=0} \sum^{n-1}_{j=0} x_{(m-i)(n-j)} y_{(1+i)(1+j)} \]

    3. Apprentissage profond

    Max pooling

    Max pooling avec un filtre 2 × 2 et un pas de 2. (Source: https://commons.wikimedia.org/wiki/File:Max_pooling.png)

    3. Apprentissage profond

    Exemple: Tensorflow (réseaux de neurones convolutionnels)

                
    import tensorflow as tf
    
    from tensorflow.keras import datasets, layers, models
    
    (train_images, train_labels), (test_images, test_labels) = datasets.cifar10.load_data()
    train_images, test_images = train_images / 255.0, test_images / 255.0
    
    # Créer un modèle séquentiel (réseaux de neurones convolutionnels)
    model = models.Sequential()
    model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
    model.add(layers.MaxPooling2D((2, 2)))
    model.add(layers.Conv2D(64, (3, 3), activation='relu'))
    model.add(layers.MaxPooling2D((2, 2)))
    model.add(layers.Conv2D(64, (3, 3), activation='relu'))
                
              

    3. Apprentissage profond

    Exemple: Tensorflow (réseaux de neurones convolutionnels)

                
    model.add(layers.Flatten())
    model.add(layers.Dense(64, activation='relu'))
    model.add(layers.Dense(10)
    
    #Compilation du modèle
    model.compile(optimizer='adam',
       loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
       metrics=['accuracy'])
    
    history = model.fit(train_images, train_labels, epochs=10,
       validation_data=(test_images, test_labels))
                
              

    2. Apprentissage profond

    Exemple: Tensorflow (réseaux de neurones convolutionnels)

    Modèle: https://www.tensorflow.org/tutorials/images/cnn

    Références

    Articles de recherche

    Références:

    Web

    Références:

    Couleurs

    Images