Apprentissage machine

John Samuel
CPE Lyon

Année: 2024-2025
Courriel: john(dot)samuel(at)cpe(dot)fr

Creative Commons License

2.1. Réseaux de neurones artificiels

Neurones biologiques

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

2.1. Réseaux de neurones artificiels

Introduction

Réseaux de neurones artificiels

2.1. 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.1. Réseaux de neurones artificiels

Réseau de neurones

2.1. 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.1. Réseaux de neurones artificiels

Les couches

2.1. 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.1. Réseaux de neurones artificiels

L'entraînement

2.1. Réseaux de neurones artificiels

Composants des réseaux de neurones artificiels

2.1. 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.1. 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.1. 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.1. 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.1. 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.1. 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.1. 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.1. Réseaux de neurones artificiels

Perceptron

Perceptron

2.1. Réseaux de neurones artificiels

Perceptron: Définition formelle

2.1. Réseaux de neurones artificiels

Perceptron: Définition formelle

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

2.1. Réseaux de neurones artificiels

Fonction d'activation: fonction d'identité

Équation

\[f(x)=x\]

Dérivée

\[f'(x)=1\]

Fonction d'identité

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

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

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

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

2.1. Réseaux de neurones artificiels

Fonction d'activation: Gaussien

Équation

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

Dérivée

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

Gaussien

2.1. Réseaux de neurones artificiels

Perceptron multiclasse

Références

Articles de recherche

Références:

Web

  1. Google acquiert DNNresearch, spécialisé dans les réseaux de neurones profonds: https://www.lemondeinformatique.fr/actualites/lire-google-acquiert-dnnresearch-specialise-dans-les-reseaux-de-neurones-profonds-52829.html
  2. Pourquoi Microsoft rachète Linkedin: https://www.lemondeinformatique.fr/actualites/lire-pourquoi-microsoft-rachete-linkedin-65136.html
  3. Scikit-learn: http://scikit-learn.org/stable/
  4. Perceptron: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Perceptron.html

Références:

Wikipédia

Références:

Wikipédia

Références:

Couleurs

Images