RNN

C2-IA-04 : Réseau de neurones artificiels#

Objectifs pédagogiques#

  • connaître les bases du modèle de neurone artificiel

  • savoir citer les constitutifs d’un neurone artificiel

  • connaître les constitutifs d’un réseau de neurones artificiels

Neurone biologique#

Le point de départ des travaux sur le Perceptron de McCulloch et Pitts sont le neurone biologique, soit la brique fondamentale, l’unité fonctionnelle de base constitutive du système nerveux central.

neuronebiologique1

Celui-ci est constitué principalement de :

  1. un noyau cellulaire

  2. un axone (émetteur) : c’est lui qui conduit le signal électrique vers les synapses

  3. des synapses : c’est le lien entre deux neurones

  4. des dentrites (récepteurs) : c’est eux qui conduisent le signal reçu vers le noyau du neurone

Un système nerveux central (un cerveau) n’est donc rien de plus qu’un ensemble de neurones interconnectés entre eux.

(pour plus de détails, voyez votre cours de biologie)

Modèle de neurone biologique#

Un modèle d’un objet, d’un phénomène ou d’un concept est une représentation mathématique qui l’imite. Le modèle doit imiter les traits les plus importants de l’objet que l’on souhaite modéliser. Les détails de fonctionnement sont laissés de côté.

Un neurone biologique est constitué d’un noyau, de synapses, axone et dentrites, eux-même constitués de membranes, de matériel génétique (ADN), et des éléments constitutifs des cellules. Chaque élément constitutif des cellules et constitué de molécules (biomolécules) comme les lipides, glucides, protéines et acide nucléique. Toutes ces molécules sont constituées d’atomes, eux-même constitués de protons, de neutrons et d’électrons, eux-mêmes constitués de quarks.

Si l’on veut représenter le fonctionnement macroscopique d’un neurone, alors il est impossible de modéliser l’entier du fonctionnement. On se concentre donc sur le fonctionnement du neurone.

C’est ce que l’on appelle un modèle de neurone biologique.

neuronebiologique2

Le modèle de neurone biologique le plus simple est le neurone formel (ou neurone de McCulloch et Pitts). Il est constitué de 5 éléments :

  1. \(m\) entrées \(x_1, ..., x_m\)

  2. \(m\) poids synaptiques \(\omega_1, ..., \omega_m\) associés aux \(m\) entrées et compris entre \([0 \leq \omega_i < 1]\)

  3. une fonction de somme \(\sum_{i = 1}^m \omega_i x_i\)

  4. un seuil \(\omega_0\) fixé à une valeur arbitraire généralement de \(1\).

  5. une fonction d’activation du neurone \(\Phi\)

  6. une valeur de sortie \(y\)

Les mathématiques nécessaires pour expliquer l’entier du neurone dépassent largement le cadre de ce cours d’informatique.

neuroneformel

C’est ce modèle que l’on appelle neurone artificiel qui est utilisé dans les algorithmes d’apprentissage automatique.

Perceptron#

“La semaine dernière, on a créé un neurone artificiel qui décide si on sort ce soir. On a choisi nous-même ce qui était important : les amis comptent plus que la météo ou le jour de sortie. Mais comment ont les vrais systèmes d’IA pour apprendre tout seuls ?

Question: si je vous donne 3 exemples de mes dernières soirées passées (météo, jours, amis, décision), pouvez-vous deviner quels sont mes critères ?

  • Soirée 1 : Pas beau + jeudi + Pas d’amis → Je reste (0)

  • Soirée 2 : Beau + mercredi + Amis → Je sors (1)

  • Soirée 3 : Pas beau + samedi + Amis → Je sors (1)

OUI : Grâce à un Perceptron : un algorithme d’apprentissage supervisé de classifieurs binaires (c’est-à-dire séparant deux classes).

Comment ça marche ?#

PERCEPTRON est un neurone artificiel qui apprend ses poids tout seul

  • Entrées : critères binaires (0 ou 1)

  • Sortie : décision (0 = NON, 1 = OUI)

  • Poids : s’ajustent automatiquement quand il se trompe

Règle d’apprentissage#

1. Calculer la prédiction : prédiction = neurone(x, poids_actuels)

2. Calculer l'erreur : erreur = cible - prédiction
   • erreur = 0 → pas d'erreur, on ne fait rien
   • erreur = 1 → le neurone a dit 0 mais il fallait 1
   • erreur = -1 → le neurone a dit 1 mais il fallait 0

3. Mettre à jour les poids :
   Pour chaque poids wᵢ :
      wᵢ ← wᵢ + η × erreur × xᵢ
      
   où η (êta) est le "taux d'apprentissage" (ex: η = 1)

En simplifié :

Situation

Action sur les poids

Analogie

Prédit 0, fallait 1

↑ Augmenter les w des x=1

“J’aurais dû sortir → je valorise plus ces critères”

Prédit 1, fallait 0

↓ Diminuer les w des x=1

“J’aurais pas dû sortir → je réduis l’importance”

Prédit = Cible

Rien ne change

“J’ai eu raison → je garde”

Exemple#

On a le tableau suivant qui représente l’ensemble d’apprentissage

Beau (x₁)

Week-end (x₂)

Amis (x₃)

Décision (cible)

Commentaire

1

0

0

0

0

je reste à la maison

2

0

0

1

1

je sors

3

1

0

0

0

je reste à la maison

4

1

0

1

1

je sors

5

0

1

0

0

je reste à la maison

6

0

1

1

1

je reste à la maison

On part des poids initialisés à [0,0,0], \(\eta = 1\) et on calcule la boucle d’apprentissage :

#

Entrées (x₁,x₂,x₃)

Cible

Calcul de la somme Σ(wᵢ×xᵢ)

Prédiction (≥θ?)

Erreur (cible−pred)

Détail mise à jour des poids

Nouveaux poids [w₁, w₂, w₃]

1

[0, 0, 0]

0

0×0 + 0×0 + 0×0 = 0

0 1 ?0

0 0 = 0

w₁ 0 + 1×0×0 = 0
w₂ 0 + 1×0×0 = 0
w₃ 0 + 1×0×0 = 0

[0, 0, 0]

2

[0, 0, 1]

1

0×0 + 0×0 + 0×1 = 0

0 1 ?0

1 0 = +1

w₁ 0 + 1×(+1)×0 = 0
w₂ 0 + 1×(+1)×0 = 0
w₃ 0 + 1×(+1)×1 = 1

[0, 0, 1]

3

[1, 0, 0]

0

0×1 + 0×0 + 1×0 = 0

0 1 ?0

0 0 = 0

w₁ 0 + 1×0×1 = 0
w₂ 0 + 1×0×0 = 0
w₃ 1 + 1×0×0 = 1

[0, 0, 1]

4

[1, 0, 1]

1

0×1 + 0×0 + 1×1 = 1

1 1 ?1

1 1 = 0

w₁ 0 + 1×0×1 = 0
w₂ 0 + 1×0×0 = 0
w₃ 1 + 1×0×1 = 1

[0, 0, 1]

5

[0, 1, 0]

0

0×0 + 0×1 + 1×0 = 0

0 1 ?0

0 0 = 0

w₁ 0 + 1×0×0 = 0
w₂ 0 + 1×0×1 = 0
w₃ 1 + 1×0×0 = 1

[0, 0, 1]

6

[0, 1, 1]

1

0×0 + 0×1 + 1×1 = 1

1 1 ?1

1 1 = 0

w₁ 0 + 1×0×0 = 0
w₂ 0 + 1×0×1 = 0
w₃ 1 + 1×0×1 = 1

[0, 0, 1]

Résultat final :

Poids

Valeur

Interprétation pédagogique

w₁ (Beau)

0

❌ “Le beau temps n’a aucune influence sur la décision”

w₂ (Week-end)

0

❌ “Le week-end seul ne change rien”

w₃ (Amis)

1

“Seul critère actif” : si amis=1 → je sors

θ (Seuil)

1

“Il suffit que x₃=1 pour atteindre le seuil et sortir”

Et donc finalement, mes critères sont les suivants :

Sortie = 1  ⇔  0×meteo + 0×week-ends + 1×amis ≥ 1
         ⇔  x₃ = 1
         ⇔  "Je sors SI ET SEULEMENT SI mes amis sont disponibles"

Réseau de neurones artificiels#

Une fois que le neurone est modélisé, on peut en connecter plusieurs ensembles. Les sorties des neurones deviennent les entrées d’autres neurones.

C’est ce que l’on appelle un réseau de neurones artificiels (Artifical Neural Network ou ANN en anglais).

ANN

Un réseau de neurones artificiels est constitué de :

  1. entrées \(x_i\)

  2. neurones cachés et interconnectés

  3. sorties \(y_i\)

Apprentissage profond#

L’apprentissage profond (Deep Learning) est un sous-domaine de l’intelligence artificielle. L’apprentissage profond est apparu à la fin des années 2000 lorsque:

  1. la puissance des ordinateurs a atteint ce qui était nécessaire pour exécuter des algorithmes complexes

  2. les ensembles de données suffisamment représentatifs ont été collectés (de façon légale ou non)

  3. ces mêmes ensembles de données étiquetés et leurs caractéristiques extraites.

On peut dire que l’équation Big Data + Large ANN + High Performance Computing = Deep learning représente bien l’apprentissage profond.

L’apprentissage profond utilise des réseaux de neurones artificiels étendus : le nombre de couches cachées est important.

ANN-DL

Exemple visuel : nn.nwolff#

Un enseignant du gymnase de Beaulieu a développé un modèle visuel d’apprentissage automatique par réseau de neurones sur de la reconnaissance sur l’ensemble MNIST des chiffres écrits à la main : aller sur le site