Modèle d’un neurone : le perceptron P −10 −5 5 10 −1 −0.5 0.5 1 aj a0 a1 ai−1 a
Modèle d’un neurone : le perceptron P −10 −5 5 10 −1 −0.5 0.5 1 aj a0 a1 ai−1 ai w1,j w2,j ... wi−1,j wi,j Σ Σ Σ Σ Agrégation des inputs i X i=0 wi,jai Fonction d’activation Output M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 1 Apprendre pour un perceptron linéaire On veut apprendre un vecteur de poids − → w on va utiliser le principe la descente de gradient (la plus grande pente) L’erreur d’apprentissage est souvent mesurée par E(− → w) = 1 2 X d∈D (td −od)2 où D est l’ensemble de exemples d’apprentissage td est la vraie classification de l’instance d od est la réponse du peceptron pour l’instance d M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 2 Descente de gradient de l’erreur w[0] w[1] w[2] w[3] w[4] le gradient indique la direction de la pente la plus forte La règle de mise à jour sera donc : − → w ←− → w +∆− → w wi ←wi +∆wi où ∆− → w = −η∇E(− → w) ∆wi = −η ∂E ∂wi η est le taux d’apprentissage qui determine la taille du pas que l’on fait en descendant le signe négatif indique que l’on veut descendre Heureusement, calculer la dérivée est facile ici ! M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 3 Descente de gradient avec fonction d’activation linéaire ∂E ∂wi = ∂ ∂wi 1 2 X d∈D (td −od)2 ! = 1 2 X d∈D ∂ ∂wi (td −od)2 = 1 2 X d∈D 2(td −od) ∂ ∂wi (td −od) = X d∈D (td −od) ∂ ∂wi (td −− → w ·− → x d) ∂E ∂wi = X d∈D (td −od)(−xi,d) La règle de mise à jour est donc ∆wi = η X d∈D (td −od)xi,d M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 4 Algorithme de descente de gradient avec fonction d’activation linéaire 1 initialise chaque wi avec une valeur au hasard 2 tant que l’erreur est trop grande 3 Pour chaque i ∈{1,...,n} 4 ∆wi = 0 5 Pour chaque example (− → x ,t) ∈D 6 calculer la sortie o 7 Pour chaque i ∈{1,...,n} 8 ∆wi = ∆wi +η(t−o)xi 9 Pour chaque i ∈{1,...,n} 10 wi ←wi +∆wi Algorithme pour une unité avec une fonction d’activation linéaire Avec la fonction d’activation linéaire et un seul neurone, on a garanti d’un seul minimum global, mais ce ne sera pas toujours le cas. M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 5 Descente de gradient stochastique la descente peut être lente s’il y a plusieurs minimaux locaux, on n’a pas de garantie de trouver le minimum global On utilise souvent une variante qui consiste à mettre à jour les poids après l’examen de chaque point (et pas après de les avoir tous examinés) c’est souvent une bonne approximation demande un peu moins de calculs permet parfois d’éviter de tomber dans un minimum local ´ plus de chances de tomber dans me minimum global M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 6 On veut apprendre des fonctions non linéaires on veut représenter des fonctions non linéaires avec la discontinuité du perceptron, on ne peut pas calculer de dérivées on remplace la fonction d’activation par une fonction sigmoïde (ou fonction logistique) qui est une approximation continue et différentiable de la fonction seuil σ(y) = 1 1+e−y on peut aussi utiliser la fonction tangente hyperbolique tanh(y) = ey −e−y ey +e−y On peut refaire les calculs précédents pour calculer la nouvelle fonction de mise à jour pour ces fonctions d’activation. M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 7 Il faut passer au réseau de neurones! Le deep learning consiste à avoir beaucoup de couches de neurones (ex DeepMind utilise des réseaux de 13 couches). On va avoir des réseaux multi-couches une "couche" pour accéder aux données (ex pixels d’une image) couche cachée 1 : une couche de neurones connectés aux neurones de la couche d’entrée couche cachée 2 : couche de neurones connectés aux neurones de la couche d’entrée ou au neurones de la couche cachée 1 ... couche cachée k : couche de neurones connectés aux neurones de la couche d’entrée, des couches 1, 2, ..., k-1 ... couche de sortie Problème : on sait mesurer l’erreur pour la couche de sortie (en compa- rant avec les étiquettes) ´ comment mesurer l’erreur pour les neurones des couches cachées ? M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 8 Fonction d’erreurs L’erreur d’apprentissage est mesurée par E(− → w) = 1 2 X d∈D X k∈sorties (tk,d −ok,d)2 où D est l’ensemble des exemples d’apprentissage tk,d est la vraie classification de l’instance d pour la sortie k ok,d est la valeur de la sortie k pour l’instance d M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 9 Backpropagation couche cachée Entrées Sorties x1 x2 z1 z2 z3 y2 y1 on peut calculer l’erreur aux sorties mais il faut calculer une erreur pour les neurones de la couche interne ! M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 10 Backpropagation couche cachée Entrées Sorties x1 x2 z1 z2 z3 y2 y1 idée : on partage l’erreur en fonction des poids M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 11 Backpropagation couche cachée Entrées Sorties x1 x2 z1 z2 z3 y2 y1 w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 z3 contribue à la décision sur y2 avec un poids de w7 ´on attribue à z3 une partie de l’erreur de y2 avec un poids de w7 z3 contribue à la décision sur y1 avec un poids de w8 ´on attribue à z3 une partie de l’erreur de y1 avec un poids de w8 L’erreur de z3 sera donc w7 ×erreur(y2)+w8 ∗erreur(y1) M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 12 Backpropagation algorithm Cet algorithme suppose que la fonction d’activation est la fonction sigmoïde. xji est l’entrée du noeud j venant du noeud i et wji est le poids correspondant. δn est l’erreur associée à l’unité n. Cette erreur joue le rôle du terme t−o dans le cas d’une seule unité. 1 initialise chaque wi avec une valeur au hasard 2 tant que l’erreur est trop grande 3 Pour chaque example (− → x ,t) ∈D 4 1- calcul de l’état du réseau par propagation 5 2- rétro propagation des erreurs 6 a- pour chaque unité de sortie k, calcul du terme d’erreur 7 δk ←ok(1−ok)(tk −ok) 8 b- pour chaque unité cachée h, calcul du terme d’erreur 9 δh ←oh(1−oh) X k∈Neurones en aval de j wk,hδk 10 c- mise à jour des poids wji 11 wj,i ←wj,i +ηδjxji M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 13 Propriétés backpropagation converge vers un minimum local (aucune garantie que le minimum soit global) en pratique, il donne de très bons résultats dans la pratique, le grand nombre de dimensions peut donner des opportunités pour ne pas être bloqué dans un minimum local pour le moment, on n’a pas assez de théorie qui explique les bons résultats en pratique ajouter un terme de "momentum" entrainer plusieur RNA avec les mêmes données mais différents poids de départ (boosting) M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 14 Quelles fonctions peut on représenter avec un RNA ? fonctions booléennes fonctions continues (théoriquement : toute fonction continue peut être approximée avec une erreur arbitraire par un réseau avec deux niveaux d’unités) fonctions arbitraires (théoriquement : toute fonction peut être approximée avec une précision aribitraire par un réseau avec 3 niveaux d’unités) M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 15 Exemple : reconnaissance de forme ... ... 20 personnes, environ 32 photos par personnes, leur tête peut être de face, tournée à gauche, droite, regardant en haut, différentes expressions (content, triste, en colère, neutre), avec ou sans lunettes de soleil. image de 120x128 pixels, noire et blanc, intensité entre 0 et 255. taux de réussite de 90% pour apprendre l’orientation de la tête et recon- naître une des 20 personnes M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 16 M1 Informatique 2018–2019 Intelligence Artificielle– (Stéphane Airiau) Réseaux de Neurones Artificiels 17 uploads/Ingenierie_Lourd/ ia-09-ann 2 .pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 08, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.2263MB