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 :
Somme_A = x1*0.5 + x2*(-0.2) + 0.1, puisSortie_A = sigmoide(Somme_A)- Pareil pour B et C
Somme_Finale = Sortie_A*0.4 + Sortie_B*0.6 + Sortie_C*(-0.3) + 0.1Prediction = 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. »