Réseaux de neurones artificiels «la rétropropagation du gradient» S. Canu, laboratoire psi, insa de Rouen



Yüklə 445 b.
tarix29.10.2017
ölçüsü445 b.
#19622


Réseaux de neurones artificiels « la rétropropagation du gradient »

  • S. Canu,

  • laboratoire PSI, INSA de Rouen

  • équipe « systèmes d’information pour l’environnement »

  • asi.insa-rouen.fr/~scanu


Histoire …

  • 1940 : La machine de Turing

  • 1943 : Le neurone formel (McCulloch & Pitts)

  • 1948 : Les réseaux d'automates (Von Neuman)

  • 1949 : Première règle d’apprentissage (Hebb)

  • 1958-62 : Le perceptron (Rosenblatt)

  • 1960 : L'adaline (Widrow & Hoff)

  • 1969 : Perceptrons (Minsky & Papert)  les limites du Perceptron  besoin d'architectures + complexes, Comment effectuer l'apprentissage ? On ne sait pas !

  • 1974 : Rétropropagation (Werbos)

  •  pas de succès !?!?



Histoire … (suite)

  • 1986 : Rétropropagation (Rumelhart & McClelland)

  •  nouvelles architectures de Réseaux de Neurones

  •  applications : - reconnaissance de l’écriture - reconnaissance/synthèse de la parole - vision (traitement d’images)

  • 1990 : « Société de l’Information »

  •  nouvelles applications - recherche/filtrage d’information dans le Web - extraction d’information / veille technologique - multimedia (indexation, …) - data mining

  •  besoin de combiner différents modèles



Plan

  • Rappels :

    • Moindres carrés stochastiques
    • Algorithmes de gradient
    • Perceptron Multicouches
  • Principe de la rétropropagation

  • Algorithmes de rétropropagation



Moindres carrés « stochastiques » ADALINE (Widrow Hoff 1960)

  • impossible (’ ! )  méthode itérative :

    • winit
    • Répéter
    • wnew = wold - 
    • Tant qu ’il reste des mals classés ou que le coût n’évolue plus


Algorithme de gradient

  • Illustration dans le plan (w1 ,w2)



Algorithme de gradient

  • Illustration dans le plan (J(w),w) : la « descente » de gradient



3 solutions

  • Le gradient :

  • Approximation linéaire (Adaline)

  • Perceptron :  ’=1

  • Neurone formel : on remplace  par une fonction  dérivable ex : (x)=th(x) fonction sigmoïde



Perceptron Multi-Couches

  • Réseau feedforward (1986)

  • Fonction de transfert tanh(.) (sauf couche de sortie linéaire)

  • Méthode d’apprentissage (supervisé) usuelle :

    • rétropropagation du gradient


Notations

  • Biais :

    • avec x0=1
    • idem pour toutes les couches (ex : PMC à une couche cachée)
    • W1=[wji]
    • W2=[wkj]


Propagation

  • Calcul des sorties du réseau en propageant les valeurs de x de couche en couche :



Algorithme de propagation

  • Function y = propag(x,w1,w2) a1 = [x ones(n,1)]*W1; x1 = tanh(a1); a2 = [x1 ones(n,1)]*W2; y = a2;



Calcul de l ’erreur

  • Fonction de coût :

    • on présente un exemple x=[x1... xn0] (avec ydes sortie désirée)
    • on calcule la sortie correspondante y =[y1... yn2]
    • erreur :
    • coût associé à l ’exemple :
    • coût global :


Calcul du gradient

  • Mise à jour de wji et wkj selon une règle delta:

  • Problème = calcul de et



Couche de sortie

  • Calcul de pour un exemple fixé

    • posons


Couche cachée

  • Calcul de pour un exemple fixé



Algorithme de rétropropagation

  • Function grad = retropropag(x,yd,w1,w2)

  • ...

  • a1 = [x ones(n,1)]*W1; x1 = tanh(a1);

  • a2 = [x1 ones(n,1)]*W2; y = a2;

  • ERRk = -(yd-y).*(1-y.*y);

  • GradW2 = [x1 ones(n,1)]'* ERRk ;

  • ERRj = (w2(1:n2-1,:)*ERRk')'.*(1-x1.*x1);

  • GradW1 = [x ones(n,1)]'* ERRj ;

  • w1 = w1 - pas1 .* GradW1;

  • w2 = w2 - pas2 .* GradW2;



Exemple 1/4

  • x = [0.5 1] ydes = [0.5 1]

  • W1=[0.5 0.5 ; 0.5 0.5] (pas de biais)

  • W2=[1 1 ; 1 1]



Exemple 2/4



Exemple 3/4

  • MAJ de W1 et W2

  • Nouvelle propagation, etc...



Exemple 4/4

  • Evolution de y1 et y2



Gradient batch / séquentiel

  • 2 façons d ’appliquer l’algorithme de rétropropagation :

    • « batch » : mise à jour des poids après la présentation de tous les exemples
      • calculs et stockage plus lourds si trop d ’exemples
    • séquentiel : (on-line, stochastique) mise à jour des poids après chaque exemple


Gradient batch / séquentiel

  • 2 façons d ’appliquer l’algorithme de rétropropagation :

    • « batch » : mise à jour des poids après la présentation de tous les exemples
      • calculs et stockage plus lourds si trop d ’exemples
    • séquentiel : (on-line, stochastique) mise à jour des poids après chaque exemple
      • besoin de tirer l ’exemple au hasard
      • problèmes de convergence


Pas d’apprentissage

  • Pas d’apprentissage :

    • trop petit = convergence « lente » vers la solution
    • trop grand = risque d’oscillations…
  • heuristiques courantes :

    • diminuer le pas d’apprentissage au fur et a mesure
      • « à la main »
      • en fonction de la forme de la surface d ’erreur
    • approximations :
      • premier ordre
        • Rétropropagation avec un moment d’inertie
        • Delta-Bar-Delta, Rprop, ...
      • second ordre
        • Quickprop
        • Levenberg Marquard


Premier ordre 1/2

  • Moment d’inertie (Rumelhart et al. 1986)

    • avec ||<1
  • Delta-Bar-Delta (Jacobs 1988)

    • calcul d ’un « gradient  moyen »
    • modification du pas d’apprentissage selon la direction du gradient par rapport au gradient moyen


Premier ordre 2/2

  • Rprop (Riedmiller and Braun 1993)

    • modification du pas d’apprentissage selon la direction du gradient par rapport au gradient précédent
    • on borne le pas d ’apprentissage
    • un poids n’est modifié que s ’il va « dans le bon sens »


Second ordre 1/2

  • Développement de Taylor de la fonction de coût :

    • H = matrice Hessienne, « le Hessien » de du coût
    • Calcul du gradient :
    • on cherche h / le gradient soit nul


Second ordre 2/2

  • Approximation du Hessien :

    • hessien = matrice diagonale
    • Quickprop (Fahlman 1988)
      • on évite de calculer H
    • Il existe d’autres méthodes qui calculent (partiellement) les informations du 2nd ordre
    • méthodes de gradient conjugué


Conclusion

  • La rétropropagation est une méthode de gradient

  • on a un problème d’optimisation à résoudre,….. …. Et tous les coups sont bon !

  • On a un problème d’optimisation non linéaire convexe si la fonction coût est quadratique

  • Soft : matlab (petits problèmes) - SN (gros problèmes)



Bibliographie

  • Neural Networks : a comprehensive foundation - S. Haykin (Prenctice Hall)

  • Neural Networks : a systematic introduction R. Rojas (Springer)

  • The Handbook of Brain Theory and Neural Networks - M.A. Arbib (MIT Press)

  • Self-Organizing Maps - T. Kohonen (Springer)

  • Réseaux Neuronaux et Traitement du Signal - J. Hérault & C. Jutten (Hermès)

  • Backpropagator ’s review :

    • des informations sur la rétropropagation
      • http://www.dontveter.com/bpr/bpr.html
    • un petit tutoriel :
      • http://www.dontveter.com/bpr/public2.html


Yüklə 445 b.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin