Apprentissage machine

John Samuel
CPE Lyon

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

Creative Commons License

1.1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle [Pan 2016, Jaakkola 2019]

1.1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle [Pan 2016, Jaakkola 2019]

1.1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle 2.0 [Pan 2016, Jaakkola 2019]

1.1. Histoire scientifique: Intelligence Artificielle

Intelligence Artificielle 2.0 [Pan 2016]

1.2.1. Apprentissage machine: positionnement

Objectifs

Intelligence artificielle

1.2.1. Apprentissage machine: positionnement

Objectifs

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

1.2.2. Apprentissage machine: approches

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

1.2.3. Apprentissage machine: formalisation

Formalisation

Exemples de caractéristiques

1.2.3. Apprentissage machine: formalisation

Formalisation

Example

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

1.2.3. Apprentissage machine: formalisation

Formalisation: Apprentissage supervisé

1.2.3. Apprentissage machine: formalisation

Formalisation: Apprentissage non supervisé

1.2.3. Apprentissage machine: formalisation

Formalisation: Apprentissage semi-supervisé

1.2.4. Classification

Définition formelle

1.2.4. Classification

Classificateurs

1.2.4. Classification

Classification binaire

Classification binaire

1.2.4. Classification

Linear Classificateurs

1.2.4. Classification

Évaluation

Les vrais positifs et les vrais négatifs

1.2.4. Classification

Évaluation

Précision et rappel

1.2.4. Classification

Évaluation

Soit

1.2.4. Classification

Évaluation

Alors

1.2.4. Classification

Évaluation

1.2.4. Classification

Évaluation

1.2.4. Classification

Évaluation: matrice de confusion

Les vrais positifs et les vrais négatifs

1.2.4. Classification

Évaluation: matrice de confusion

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

1.2.4. Classification

Évaluation: matrice de confusion

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

1.2.4. Classification

Classification multiclasse

Classification multiclasse

1.2.4. Classification

Classification multiclasse [Aly 2005]

1.2.4. Classification

Classification multiclasse

Classification multiclasse

1.2.4. Classification

Classification multiclasse

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

La strategie un-contre le rest pour la classification multiclasse

1.2.4. Classification

Classification multiclasse

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

La strategie un-contre le rest pour la classification multiclasse

1.2.4. Classification

Classification multiclasse

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

1.2.4. Classification

Classification multiclasse

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)\]

1.2.4. Classification

Classification multiclasse

One-vs.-one strategy

La strategie un-contre-un pour la classification multiclasse

1.2.4. Classification

Classification multiclasse

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

    1.2.5. Réseaux de neurones artificiels

    Introduction

    Réseaux de neurones artificiels

    1.2.5. Réseaux de neurones artificiels

    Perceptron

    1.2.5. Réseaux de neurones artificiels

    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

    1.2.5. Réseaux de neurones artificiels

    Perceptron

    Perceptron

    1.2.5. Réseaux de neurones artificiels

    Perceptron: Définition formelle

    1.2.5. Réseaux de neurones artificiels

    Perceptron: Définition formelle

    1.2.5. Réseaux de neurones artificiels

    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.

    1.2.5. Réseaux de neurones artificiels

    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.

    1.2.5. Réseaux de neurones artificiels

    Fonction d'activation: fonction d'identité

    Équation

    \[f(x)=x\]

    Dérivée

    \[f'(x)=1\]

    Fonction d'identité

    1.2.5. Réseaux de neurones artificiels

    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

    1.2.5. Réseaux de neurones artificiels

    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

    1.2.5. Réseaux de neurones artificiels

    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

    1.2.5. Réseaux de neurones artificiels

    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)

    1.2.5. Réseaux de neurones artificiels

    Fonction d'activation: Gaussien

    Équation

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

    Dérivée

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

    Gaussien

    1.2.5. Réseaux de neurones artificiels

    Perceptron multiclasse

    1.2.5. Réseaux de neurones artificiels

    Neurones biologiques

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

    1.2.5. Réseaux de neurones artificiels

    Réseau de neurones

    1.2.5. Réseaux de neurones artificiels

    Réseau de neurones artificiels: les couches

    1.2.5. Réseaux de neurones artificiels

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

    1.2.5. Réseaux de neurones artificiels

    Composants des réseaux de neurones artificiels

    1.2.5. Réseaux de neurones artificiels

    Composants des réseaux de neurones artificiels

    Neurones

    1.2.5. Réseaux de neurones artificiels

    Composants des réseaux de neurones artificiels

    Connexions et poids

    1.2.5. Réseaux de neurones artificiels

    Composants des réseaux de neurones artificiels

    Fonction de propagation

    1.3.1. Apprentissage profond: introduction

    Apprentissage profond

    1.3.1. Apprentissage profond: introduction

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

    1.3.1. Apprentissage profond: introduction

    Composants des réseaux de neurones artificiels

    Organisation

    1.3.1. Apprentissage profond: introduction

    Composants des réseaux de neurones artificiels

    Organisation et connectivité

    1.3.1. Apprentissage profond: introduction

    Composants des réseaux de neurones artificiels

    Organisation et connectivité

    1.3.1. Apprentissage profond: introduction

    Réseaux de neurones artificiels: Hyperparamètres

    1.3.1. Apprentissage profond: introduction

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

    1.3.1. Apprentissage profond: introduction

    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'])
    

    1.3.1. Apprentissage profond: introduction

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

    1.3.2. Apprentissage profond: feedforward neural network

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

    Réseau de neurones en aval

    1.3.2. Apprentissage profond: feedforward neural network

    Perceptron simple couche

    Perceptron simple couche

    1.3.2. Apprentissage profond: feedforward neural network

    Perceptron multicouche

    Perceptron multicouche

    1.3.2. Apprentissage profond: feedforward neural network

    Rétropropagation du gradient (Backpropagation)

    1.3.3. Apprentissage profond: réseau de neurones récurrents

    Réseau de neurones récurrents

    1.3.3. Apprentissage profond: réseau de neurones récurrents

    Réseau de neurones récurrents

    Réseau de neurones récurrents

    1.3.3. Apprentissage profond: réseau de neurones récurrents

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

    Long short-term memory (LSTM) network

    LSTM

    1.3.3. Apprentissage profond: réseau de neurones récurrents

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

    Long short-term memory (LSTM) network

    LSTM

    1.3.3. Apprentissage profond: réseau de neurones récurrents

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

    Long short-term memory (LSTM) network

    LSTM

    1.3.3. Apprentissage profond: réseau de neurones récurrents

    Réseaux de neurones convolutionnels

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    Réseaux de neurones convolutionnels

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    Réseaux de neurones convolutionnels

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    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} \)

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    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} \)

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    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)} \]

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    Max pooling

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

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    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'))
                
              

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    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))
                
              

    1.3.4. Apprentissage profond: réseaux de neurones convolutionnels

    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