|
|
||
|---|---|---|
| .. | ||
| lab | ||
| Perceptron.ipynb | ||
| README.md | ||
README.md
Introduction aux réseaux neuronaux : Perceptron
Quiz pré-conférence
L'une des premières tentatives pour mettre en œuvre quelque chose de similaire à un réseau neuronal moderne a été réalisée par Frank Rosenblatt du Cornell Aeronautical Laboratory en 1957. Il s'agissait d'une implémentation matérielle appelée "Mark-1", conçue pour reconnaître des figures géométriques primitives, telles que des triangles, des carrés et des cercles.
![]() |
![]() |
Images tirées de Wikipédia
Une image d'entrée était représentée par un tableau de 20x20 photorécepteurs, ce qui signifie que le réseau neuronal avait 400 entrées et une sortie binaire. Un réseau simple contenait un seul neurone, également appelé une unité logique seuil. Les poids du réseau neuronal fonctionnaient comme des potentiomètres nécessitant un réglage manuel pendant la phase d'entraînement.
✅ Un potentiomètre est un dispositif qui permet à l'utilisateur d'ajuster la résistance d'un circuit.
Le New York Times écrivait à propos du perceptron à l'époque : l'embryon d'un ordinateur électronique que [la Marine] espère capable de marcher, parler, voir, écrire, se reproduire et être conscient de son existence.
Modèle de Perceptron
Supposons que nous ayons N caractéristiques dans notre modèle, auquel cas le vecteur d'entrée serait un vecteur de taille N. Un perceptron est un modèle de classification binaire, c'est-à-dire qu'il peut distinguer entre deux classes de données d'entrée. Nous supposerons que pour chaque vecteur d'entrée x, la sortie de notre perceptron sera soit +1, soit -1, selon la classe. La sortie sera calculée à l'aide de la formule :
y(x) = f(wTx)
où f est une fonction d'activation en escalier.
Entraînement du Perceptron
Pour entraîner un perceptron, nous devons trouver un vecteur de poids w qui classe correctement la plupart des valeurs, c'est-à-dire qui minimise l'erreur. Cette erreur E est définie par le critère du perceptron de la manière suivante :
E(w) = -∑wTxiti
où :
- la somme est effectuée sur les points de données d'entraînement i qui entraînent une mauvaise classification,
- xi est la donnée d'entrée, et ti est soit -1, soit +1 pour les exemples négatifs et positifs respectivement.
Ce critère est considéré comme une fonction des poids w, et nous devons le minimiser. Souvent, une méthode appelée descente de gradient est utilisée, dans laquelle nous commençons avec des poids initiaux w(0), puis à chaque étape, nous mettons à jour les poids selon la formule :
w(t+1) = w(t) - η∇E(w)
Ici, η est le taux d'apprentissage, et ∇E(w) désigne le gradient de E. Après avoir calculé le gradient, nous obtenons :
w(t+1) = w(t) + ∑ηxiti
L'algorithme en Python ressemble à ceci :
def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):
weights = [0,0,0] # Initialize weights (almost randomly :)
for i in range(num_iterations):
pos = random.choice(positive_examples)
neg = random.choice(negative_examples)
z = np.dot(pos, weights) # compute perceptron output
if z < 0: # positive example classified as negative
weights = weights + eta*weights.shape
z = np.dot(neg, weights)
if z >= 0: # negative example classified as positive
weights = weights - eta*weights.shape
return weights
Conclusion
Dans cette leçon, vous avez appris ce qu'est un perceptron, un modèle de classification binaire, et comment l'entraîner en utilisant un vecteur de poids.
🚀 Défi
Si vous souhaitez essayer de construire votre propre perceptron, essayez ce laboratoire sur Microsoft Learn qui utilise le concepteur Azure ML.
Quiz post-conférence
Révision & Auto-apprentissage
Pour voir comment nous pouvons utiliser un perceptron pour résoudre un problème simple ainsi que des problèmes réels, et pour continuer à apprendre, consultez le notebook Perceptron.
Voici également un article intéressant sur les perceptrons.
Devoir
Dans cette leçon, nous avons implémenté un perceptron pour une tâche de classification binaire, et nous l'avons utilisé pour classifier entre deux chiffres manuscrits. Dans ce laboratoire, vous êtes invité à résoudre entièrement le problème de classification des chiffres, c'est-à-dire déterminer quel chiffre correspond le plus probablement à une image donnée.

