Séance 3 : Classification Binaire avec le Perceptron

Durée : 50 minutes

Objectifs de la séance

Plan de la séance

1. Partie Théorique (15–20 minutes)

Introduction au perceptron

Le perceptron est l’ancêtre des réseaux de neurones. Il s’agit d’un classificateur linéaire qui prend une combinaison linéaire des entrées et applique une fonction d’activation (seuil) pour produire une sortie binaire.

Règle d’apprentissage

La mise à jour des poids se fait en fonction de l’erreur entre la sortie prédite et la valeur attendue, permettant ainsi d’ajuster progressivement le modèle.

2. Partie Pratique (30–35 minutes)

Exercice : Implémentation d’un perceptron simple

Objectif : Écrire un algorithme en Python pour entraîner un perceptron à résoudre la fonction logique OR.

Consignes :
  1. Définir la fonction de mise à jour du perceptron avec un taux d’apprentissage fixe.
  2. Entraîner le modèle sur les données correspondant à la porte OR.
  3. Tester le perceptron sur l’ensemble des entrées et afficher les résultats.
Exemple de code Python :

import numpy as np

def perceptron(X, y, learning_rate=0.1, n_iterations=10):
    n_samples, n_features = X.shape
    weights = np.zeros(n_features)
    bias = 0
    for _ in range(n_iterations):
        for idx, x_i in enumerate(X):
            linear_output = np.dot(x_i, weights) + bias
            y_predicted = 1 if linear_output > 0 else 0
            update = learning_rate * (y[idx] - y_predicted)
            weights += update * x_i
            bias += update
    return weights, bias

# Données pour la porte OR
X = np.array([[0,0], [0,1], [1,0], [1,1]])
y = np.array([0, 1, 1, 1])

weights, bias = perceptron(X, y, learning_rate=0.1, n_iterations=10)
print("Poids :", weights)
print("Biais :", bias)

# Test du perceptron
for x in X:
    result = 1 if np.dot(x, weights) + bias > 0 else 0
    print(f"Entrée: {x}, Sortie: {result}")
          

Propositions de Corrections et Commentaires

Afficher/Cacher les corrections

Ouvertures et Possibilités d’Application