Data Mining

John Samuel
CPE Lyon

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

Creative Commons License

Data Mining

Objectifs

  1. Apprentissage machine
  2. Apprentissage profond
  3. Apprentissage par renforcement
  4. Licences de données, éthique et vie privée

3.1. Apprentissage machine

Réseaux de neurones artificiels

Réseaux de neurones artificiels

3.1. Apprentissage machine

Perceptron

3.1. 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

3.1. Apprentissage machine

Perceptron

Perceptron

3.1. Apprentissage machine

Perceptron: Définition formelle

3.1. Apprentissage machine

Perceptron: Définition formelle

3.1. 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.

3.1. 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.

3.1. Apprentissage machine

Fonction d'activation: fonction d'identité

Équation

\[f(x)=x\]

Dérivée

\[f'(x)=1\]

Fonction d'identité

3.1. 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

3.1. Apprentissage machine

Neurones biologiques

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

3.1. Apprentissage machine

Tensorflow Playground

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

3.1. Apprentissage machine

Réseau de neurones artificiels

3.1. Apprentissage machine

Réseau de neurones artificiels: les couches

3.1. Apprentissage machine

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

3.1. Apprentissage machine

Composants des réseaux de neurones artificiels

3.1. Apprentissage machine

Composants des réseaux de neurones artificiels

Neurones

3.1. Apprentissage machine

Composants des réseaux de neurones artificiels

Connexions et poids

3.1. Apprentissage machine

Composants des réseaux de neurones artificiels

Fonction de propagation

3.2. Apprentissage profond

Apprentissage profond

3.2. Apprentissage profond

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

3.2. Apprentissage profond

Composants des réseaux de neurones artificiels

Organisation

3.2. Apprentissage profond

Composants des réseaux de neurones artificiels

Organisation et connectivité

3.2. 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.2. Apprentissage profond

Applications

3.2. Apprentissage profond

Réseaux de neurones convolutionnels

3.2. Apprentissage profond

Réseaux de neurones convolutionnels

3.2. Apprentissage profond

Réseaux de neurones convolutionnels

3.2. Apprentissage profond

Réseaux de neurones convolutionnels

3.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.2. 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.2. 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.1. 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.2. 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.2. 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))
            
          

3.2. Apprentissage profond

Exemple: Tensorflow (réseaux de neurones convolutionnels)

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

3.3. Apprentissage par renforcement

Apprentissage par renforcement

3.4. Licences, Ethiques et la vie privé

Licences, Éthique et la vie privé

3.4. Licences, Ethiques et la vie privé

Exemples: Creative Commons (CC)

3.4. Licences, Ethiques et la vie privé

Exemples: Creative Commons (CC)

3.4. Licences, Ethiques et la vie privé

Données ouvertes

3.4. Licences, Ethiques et la vie privé

Données ouvertes liées (Linked Open data: LOD)

3.4. Licences, Ethiques et la vie privé

Données archivées

Références

Ressources en ligne

Références

Couleurs

Images