← Comprendre les Réseaux de Neurones
🔗 Phase 2.5 · 2 jours

Le réseau à la main

🎯 Ce que tu retiens : Le flux des données

Explication

Un réseau de neurones, c'est juste plusieurs neurones reliés.

Architecture de cet exercice : 2 entrées → 3 neurones cachés (A, B, C) → 1 neurone de sortie (Final).

Entrée (x1, x2)
    |
    |---> [Neurone A] -- a --\
    |---> [Neurone B] -- b ---\---> [Final] -- sortie
    |---> [Neurone C] -- c --/

📖 Vocabulaire - français / anglais

  • couche cachée ↔ *hidden layer*
  • propagation avant ↔ *forward propagation* (calculer la sortie, de gauche à droite)
  • neurone caché ↔ *hidden unit / hidden neuron*

Exercice 2.5.1 - Calculer à la main

✍️ À toi de jouer

Une seule fleur : x1 = 5.1, x2 = 1.8. Poids fixes :

  • Neurone A : w1=0.5, w2=−0.2, b=0.1
  • Neurone B : w1=0.3, w2=0.8, b=−0.3
  • Neurone C : w1=−0.1, w2=0.4, b=0.2

Calcule sur papier :

  1. Somme_A = x1*0.5 + x2*(-0.2) + 0.1, puis Sortie_A = sigmoide(Somme_A)
  2. Pareil pour B et C
  3. Somme_Finale = Sortie_A*0.4 + Sortie_B*0.6 + Sortie_C*(-0.3) + 0.1
  4. Prediction = sigmoide(Somme_Finale)

Vérifie avec Python seulement après ton calcul manuel.

Voir la réponse
import math
def sigmoide(x): return 1 / (1 + math.exp(-x))

x1, x2 = 5.1, 1.8
somme_a = x1*0.5 + x2*(-0.2) + 0.1;  sortie_a = sigmoide(somme_a)
somme_b = x1*0.3 + x2*0.8   + (-0.3); sortie_b = sigmoide(somme_b)
somme_c = x1*(-0.1)+ x2*0.4  + 0.2;   sortie_c = sigmoide(somme_c)
print(f"A: {sortie_a:.3f}  B: {sortie_b:.3f}  C: {sortie_c:.3f}")

somme_finale = sortie_a*0.4 + sortie_b*0.6 + sortie_c*(-0.3) + 0.1
prediction = sigmoide(somme_finale)
print(f"Prediction: {prediction:.3f}  (attendu Virginica: 1)")

Sortie attendue : A ≈ 0.823, B ≈ 0.912, C ≈ 0.646, prédiction ≈ 0.71.

Exercice 2.5.2 - Le rôle de chaque neurone

✍️ À toi de jouer

Regarde les sorties de A, B, C. Le neurone B s'active fortement (proche de 1). Pourquoi ? Regarde ses poids (w1=0.3, w2=0.8) : que détecte-t-il ?

Besoin d'un indice ?

x2 (la largeur) est multiplié par 0.8 - un poids fort et positif. B réagit surtout quand la largeur est grande.

Voir la réponse
  • Neurone B : un « détecteur de largeur ». Quand x2 est grand, il s'active.
  • Neurone A : plutôt un détecteur de longueur (w1=0.5 positif, w2 faible).
  • Neurone C : poids faibles et mixtes - il module, il nuance.

La leçon : chaque neurone caché apprend à détecter quelque chose de différent. Le neurone final fait un vote pondéré entre ces détecteurs. C'est ça, une couche cachée.

Une fois ces 15 multiplications faites à la main : « NumPy les fait toutes en une ligne. Ce n'est pas de la magie - c'est le même calcul, en parallèle. »