en entrée n valeurs x1,..., xn et calcule une sortie o. Un perceptron est défini par la donnée de n+1 constantes : les coefficients synaptiques w1, ..., wn et le seuil (ou le biais) . • On ajoute une entrée supplémentaire x0 (le biais), avec le coefficient synaptique suivant : w0 = -θ • comme fonction de transfert la fonction de Heavyside : • f(x)=1 si x > 0 • f(x)=0 sinon Interprétation géométrique et limitations • Définition Soit S un ensemble d'exemples dans Rn × { 0,1} . On note S0 = { s ∈Rn | (s,0) ∈ S } et S1 = { s ∈ Rn | (s,1) ∈ S } . On dit que S est linéairement séparable s'il existe un hyperplan H de Rn tel que les ensembles S0 et S1 soient situés de part et d'autre de cet hyperplan. • Théorème Un perceptron linéaire à seuil à n entrées divise l'espace des entrées Rn en deux sous-espaces délimités par un hyperplan. Réciproquement, tout ensemble linéairement séparable peut être discriminé par un perceptron. • L’algorithme du perceptron • 1/ Initialisation des poids et du seuil θ à des valeurs (petites) choisies au hasard. • 2/ Présentation d'une entrée X = (x1, ... ,xn) de la base d'apprentissage. • 3/ Calcul de la sortie obtenue o pour cette entrée : a = ∑ (wi . xi) o = signe (a) ( si a > 0 alors o = +1 sinon o = 0) • 4/ Si la sortie o du Perceptron est différente de la sortie désirée d pour cet exemple d'entrée X alors modification des poids (μ le pas de modification) : wi(t+1) = wi(t) + μ.((d - o).xi) • Rappel : d = +1 si X est de la classe 1, d = 0 si X est de la classe 2 et (d - o) est une estimation de l'erreur. • 5/ Tant que tous les exemples de la base d'apprentissage ne sont pas traités correctement (i.e. modification des poids), retour à l'étape 2. Exemple de fonctionnement de l'algorithme d'apprentissage du Perceptron • Base d'exemples d'apprentissage : • x1 x2 d • 0 1 1 (1) • 1 0 1 (2) • 1 1 1 (3) • 0 0 0 (4) • Apprentissage par l’ algorithme du perceptron • • μ bien choisi, suffisamment petit • • • Si μ trop grand : risque d’oscillation autour du minimum • • • Si μ trop petit : nombre élevé d’itérations Optimisation : gradient • Problème : • Trouver le minimum de la fonction f continue et dérivable : x → f(x) • On construit la suite : Xn telle que : • • On part d’une valeur initiale X0 quelconque • • Xn+1 = Xn - ε * f ′(Xn), avec ε valeur réelle non nulle « bien choisie » entre 0 et 1 • Remarques : • • Le choix de ε est empirique • • Si ε trop petit : le nombre d’itérations est trop grand • • Si ε est trop grand : les valeurs de la suite risquent d’osciller ⇒ pas de convergence • • Rien ne garantit que le minimum trouvé est un minimum global Apprentissage par descente de gradient • Soient le vecteur des entrées x et le vecteur des coefficients synaptiques w. • La sortie vaut alors : o = X.w = x0.w0 + … + xn.wn, • Soit S la base d ’apprentissage composée de couples (X, d), où d est la sortie attendue pour X. • On définit ainsi l ’erreur sur le réseau pour la base d ’apprentissage S : • E(w) = 1/2 Σ[(X,d) dans S] (d − o)² • Problème : trouver w qui minimise E(w). • ⇒ Méthode du gradient. PERCEPTRON : REGLE DELTA Apprentissage : algorithme de Widrow-Hoff (adaline / règle delta) • 1/ Initialisation des poids et du seuil S à des valeurs (petites) choisies au hasard. • 2/ Présentation d'une entrée X = (x1, ... xn) de la base d'apprentissage. • 3/ Calcul de la sortie obtenue o pour cette entrée : a = ∑ (wi . xi) o = signe (a) ( si a > 0 alors o = +1 sinon o = -1 ) • 4/ Si la sortie o du Perceptron est différente de la sortie désirée d pour cet exemple d'entrée X alors modification des poids (μ le pas de modification) : wi(t+1) = wi(t) + μ.((d - a).xi) • 5/ Tant que tous les exemples de la base d'apprentissage ne sont pas traités correctement (i.e. modification des poids), retour à l'étape 2. • Théorème Le XOR ne peut pas être calculé par un perceptron linéaire à seuil. Démonstration • Démonstration algébrique : Supposons qu'il existe un perceptron défini par les coefficients synaptiques (w0, w1, w2) calculant le XOR sur deux entrées booléennes x1 et x2. On devrait avoir : tp • créer un perceptron qui permet d’apprendre la notion de chiffre pair ou impair