Traitement de données massives

John Samuel
CPE Lyon

Année: 2024-2025
Courriel: john.samuel@cpe.fr

Creative Commons License

1. Apprentissage machine

Objectifs

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

1. Apprentissage machine

Réseaux de neurones artificiels

Réseaux de neurones artificiels

2.3. Réseaux de neurones artificiels

Perceptron

Le perceptron est un algorithme d'apprentissage supervisé utilisé pour la classification binaire. Il est conçu pour résoudre des problèmes où l'objectif est de déterminer si une entrée donnée appartient ou non à une classe particulière.

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

2.3. Réseaux de neurones artificiels

Perceptron

Perceptron

2.3. Réseaux de neurones artificiels

Perceptron: Définition formelle

2.3. Réseaux de neurones artificiels

Perceptron: Définition formelle

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

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

2.3. Réseaux de neurones artificiels

Fonction d'Échelon (Step Function)

Le perceptron utilise généralement une fonction d'activation simple, et la fonction d'échelon (step function) est fréquemment choisie pour cette tâche.

Définition

La fonction d'échelon attribue une sortie de 1 si la somme pondérée des entrées dépasse un certain seuil, et 0 sinon.

\( f(x) = \begin{cases} 1 & \text{si } x \geq \text{seuil} \\ 0 & \text{sinon} \end{cases} \)

1. Apprentissage machine

Fonction d'activation: fonction d'identité

Équation

\[f(x)=x\]

Dérivée

\[f'(x)=1\]

Fonction d'identité

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

1. Apprentissage machine

Neurones biologiques

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

1. Apprentissage machine

Tensorflow Playground

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

2.3. Réseaux de neurones artificiels

Réseau de neurones

Les réseaux de neurones sont couramment utilisés dans le domaine de l'apprentissage machine, en particulier dans des tâches telles que la classification, la régression, la reconnaissance d'images, le traitement du langage naturel, et bien d'autres. Un réseau de neurones artificiels est une collection d'unités interconnectées appelées neurones artificiels. Ces réseaux sont inspirés de la structure du cerveau biologique

2.3. Réseaux de neurones artificiels

Réseau de neurones

2.3. Réseaux de neurones artificiels

Les couches

Les neurones sont organisés en couches. Il existe généralement trois types de couches dans un réseau de neurones :

2.3. Réseaux de neurones artificiels

Les couches

2.3. Réseaux de neurones artificiels

L'entraînement

L'objectif global de l'entraînement est d'ajuster les poids du réseau de manière à ce qu'il puisse généraliser à de nouvelles données, produisant des résultats précis pour des exemples qu'il n'a pas vu pendant l'entraînement.

2.3. Réseaux de neurones artificiels

L'entraînement

2.3. Réseaux de neurones artificiels

Composants des réseaux de neurones artificiels

2.3. Réseaux de neurones artificiels

Composants des réseaux de neurones artificiels

Neurones

Chaque neurone artificiel a des entrées, qui peuvent être les valeurs caractéristiques d'un échantillon de données externe, et produit une seule sortie. Cette sortie peut être envoyée à plusieurs autres neurones, formant ainsi la structure interconnectée du réseau neuronal. La fonction d'activation joue un rôle crucial dans le calcul de la sortie d'un neurone. Le processus comprend les étapes suivantes :

2.3. Réseaux de neurones artificiels

Composants des réseaux de neurones artificiels

Connexions et poids

Le réseau de neurones est constitué de connexions, où chaque connexion transmet la sortie d'un neurone comme entrée à un autre neurone. Chaque connexion possède un poids qui représente son importance relative dans la transmission du signal.

2.3. Réseaux de neurones artificiels

Composants des réseaux de neurones artificiels

Fonction de propagation

Calcul de l'entrée d'un neurone : La fonction de propagation calcule l'entrée d'un neurone en prenant la somme pondérée des sorties de ses prédécesseurs, où chaque sortie est multipliée par le poids de la connexion correspondante. Cela peut être représenté mathématiquement comme suit :

\[ \text{Entrée du Neurone} = \sum_{i=1}^{n} (\text{Sortie du Prédécesseur}_i \times \text{Poids}_i) \] où \(n\) est le nombre de connexions d'entrée.

2.3. Réseaux de neurones artificiels

Composants des réseaux de neurones artificiels

Fonction de propagation

Ajout d'un terme de biais : Un terme de biais peut être ajouté au résultat de la propagation. Le terme de biais est un paramètre supplémentaire, souvent représenté par \(b\) dans les équations, qui permet au modèle d'apprendre un décalage ou une translation. Cela donne la forme finale de l'entrée du neurone :

\[ \text{Entrée du Neurone} = \sum_{i=1}^{n} (\text{Sortie du Prédécesseur}_i \times \text{Poids}_i) + \text{Biais} \]

2.3. Réseaux de neurones artificiels

Composants des réseaux de neurones artificiels

Fonction de propagation

Fonction d'Activation : Après avoir calculé l'entrée du neurone, celle-ci est passée à travers une fonction d'activation. Cette fonction introduit une non-linéarité dans le modèle, permettant au réseau de neurones de capturer des relations complexes et d'apprendre des modèles non linéaires. Certaines des fonctions d'activation couramment utilisées comprennent :

2. Apprentissage profond

Apprentissage profond

2. Apprentissage profond

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

2. Apprentissage profond

Composants des réseaux de neurones artificiels

Organisation

2. Apprentissage profond

Composants des réseaux de neurones artificiels

Organisation et connectivité

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

2. Apprentissage profond

Applications

2. Apprentissage profond

Réseaux de neurones convolutionnels

2. Apprentissage profond

Réseaux de neurones convolutionnels

2. Apprentissage profond

Réseaux de neurones convolutionnels

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

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

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

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)

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

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

2. Apprentissage profond

Exemple: Tensorflow (réseaux de neurones convolutionnels)

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

3. Apprentissage par renforcement

Apprentissage par renforcement

L'apprentissage par renforcement (RL) est une branche de l'apprentissage automatique où un agent interagit avec un environnement dynamique pour apprendre à prendre des décisions autonomes. Elle s'inspire des théories de psychologie animale, notamment du concept de renforcement dans le conditionnement opérant.

3. Apprentissage par renforcement

Apprentissage par renforcement

Processus de l'Apprentissage par Renforcement

  • Agent Autonome : Un agent est un système capable de prendre des décisions basées sur son état actuel.
  • Environnement Dynamique : L'environnement est le contexte dans lequel l'agent évolue, et il peut changer au fil du temps.
  • Décisions Contextuelles : Les décisions de l'agent sont influencées par son état courant et les interactions passées.

3. Apprentissage par renforcement

Apprentissage par renforcement

Récompenses et Objectif

  • Récompenses : L'agent reçoit des récompenses, positives ou négatives, de l'environnement en fonction de ses actions.
  • Objectif : L'objectif ultime est de maximiser la somme des récompenses cumulatives au fil du temps.
  • 3. Apprentissage par renforcement

    Apprentissage par renforcement

    Mécanisme de Fonctionnement :

  • Exploration et Exploitation : L'agent doit équilibrer l'exploration de nouvelles actions et l'exploitation d'actions déjà connues.
  • Apprentissage itératif : L'agent ajuste ses décisions en fonction des résultats passés pour améliorer ses performances.
  • 4. Licences, Ethiques et la vie privé

    Licences, Ethiques et la vie privé

    4. Licences, Ethiques et la vie privé

    Exemples: Creative Commons (CC)

    2.1 L'acquisition de données

    Vie privée [Rizvi 2002][Xu 2014]

    Vie privée

    2.1 L'acquisition de données

    Licences, Ethiques et la vie privé [van Wel 2004]

    2.1 L'acquisition de données

    Ethiques [Zwitter 2014]

    2.1 L'acquisition de données

    Ethiques [Richards 2014]

    4. Licences, Ethiques et la vie privé

    Exemples: Creative Commons (CC)

    4. Licences, Ethiques et la vie privé

    Données ouvertes

    4. Licences, Ethiques et la vie privé

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

    4. Licences, Ethiques et la vie privé

    Données archivées

    Références

    Ressources en ligne

    Références

    Couleurs

    Images