INTRODUCTION AUX RÉSEAUX DE...

30
INTRODUCTION AUX RÉSEAUX DE NEURONES Rétropropagation du gradient Pascal Germain*, 2019 * Merci spécial à Philippe Giguère pour m’avoir permis de réutiliser une partie de ces transparents.

Transcript of INTRODUCTION AUX RÉSEAUX DE...

  • INTRODUCTION AUXRÉSEAUX DE NEURONESRétropropagation du gradient

    Pascal Germain*, 2019

    * Merci spécial à Philippe Giguère pour m’avoir permis de réutiliser une partie de ces transparents.

    http://www2.ift.ulaval.ca/~pgiguere/index.html

  • Illustration et nomenclature

    2

    x1

    x2

    x3

    ŷ1

    ŷ2…

    couches cachéescouche

    d’entrée

    couche de sortie

    Couches du réseau

    largeu r

    (3) (2) (1)ŷ f f f x

  • Choix à faire• Architecture– # couches– # neurones (cachés) par couche– type de couche

    • Forme de la sortie & fonction de sortie• Fonction de perte• Optimiseur – et autres « détails »

    3

  • Comparaison avec les méthodes «classiques»• Beaucoup de méthodes d’apprentissage

    sont convexes–Moindre carrés– Regression logistique– SVM

    • Les réseaux de neurones sont non-convexes– Abandon de garanties théoriques– Le résultat varie selon l’initialisation de la descente en

    gradient.– On doit accepter que les minimums locaux peuvent être de

    bonnes solutions.– La recherche montre que les solutions sont en fait souvent

    points de selle• ratio (points de selle)/(minimum locaux) augmente

    exponentiellement avec nombre paramètres à optimiser5

    Voir Goodfellow et al.

    Section 8.2.3

  • Exemple point de selle• Dérivées partielles nulles au point de selle

    6https://www.safaribooksonline.com/library/view/fundamentals-of-deep/9781491925607/ch04.html

  • Profil de la fonction de perte

    7Adapté de cs231n

    Minimum

  • Algorithme de rétropropagation («backprop»)

  • Règle de dérivation en chaîne

    9

    Par exemple:

    Donc :

  • 10

    xx v h w f

  • Règle de dérivation en chaîne

    11

    On écrit aussi:

  • 12

    xx v h w f

  • 13

    x

    w1

    a1*

    ɸ1f1

    w2

    a2*

    ɸ2f2

    wK

    aK*

    ɸKfK

    y

    LF

    f1 f2w1 w2x

    Étape 1: Propagation avant Étape 2: Rétropropagation du gradient

  • 14

    x

    w1

    a1*

    ɸ1f1

    w2

    a2*

    ɸ2f2

    wK

    aK*

    ɸKfK

    y

    LF

    f1 f2w1 w2x

  • 15

    ɸD

    wD

    *

    ɸk+1fkak

    *

    ɸ1

    w1

    **

    +

    W(k)fkfk-1

  • f

    f

    f

    f

    W11W 12

    W 13

    ( 1)1

    kh

    ( 1)2

    kh

    ( 1)3

    kh

    ( )1

    ka

    ( )2

    ka

    ( )3

    ka

    ( )4

    ka

    ( )1

    kh

    ( )2

    kh

    ( )3

    kh

    ( )4

    kh

  • f

    f

    f

    f

    W11W 12

    W 13

    ( 1)1

    kh

    ( 1)2

    kh

    ( 1)3

    kh

    ( )1

    ka

    ( )2

    ka

    ( )3

    ka

    ( )4

    ka

    ( )1

    kh

    ( )2

    kh

    ( )3

    kh

    ( )4

    kh

  • Différentiation automatique dans un graphe de calcul

  • • Algorithme qui calcule tous les gradients dans un graphe de calcul quelconque.

    • N’est pas l’algo d’optimisation!• Mais tous les algos d’optimisation des réseaux de

    neurones utilisent les gradients calculés par backprop.• Basé sur la règle de dérivation en chaîne• Les librairies modernes de réseau de neurones

    effectuent le calcul des dérivés automatiquement(comme pyTorch et TensorFlow).

    19

    «Backprop» et différentiation automatique

  • 20

    f = (u+v)w

    =

    u=

    f=

    w=

    + *v=

    Instanciation des les variables:u=2v=3w=4

    2

    3

    4

    5 20

    nœud : variablearête : opération

    Évalue le graphe pour avoir f : Propagation avant (forward pass)

    Exemple sur un graphe de calcul simple

  • Exemple sur un graphe de calcul simple

    21

    f=(u+v)w

    À partir d’un graphe de calcul évalué :

    On ajoute une variable pour stocker les gradients :

    t1=5

    u=2

    f=20

    w=4

    + *v=3

    df/dudf/dw

    df/dfdf/dv df/dt1t1=5

    u=

    f=

    w=

    + *v=

    2

    3

    4

    20

  • Exemple sur un graphe de calcul simple

    22

    f=(u+v)w

    t1=5

    u=2

    f=20

    w=4

    + *v=3

    df/dudf/dw

    df/dfdf/dv df/dt1

    u=

    f=

    w=

    + *v=

    2

    3

    4

    t1=5 20

    1

    4 4

    4 5

    1

    f=t1w, t1=u+v

    (Pourquoi /df? On cherche les dérivées partielle p.r. à la sortie, f)

    ff

    fw

    1( ) ft w

    w f 1

    1t 1

    ft

    11( ) ft w

    t f

    1w

    fu

    fv

    11 4f

    t

    1

    1

    t fu t

    1

    1

    t fv t

    1

    1 4ft

    À partir d’un graphe de calcul évalué :

    On ajoute une variable pour stocker les gradients :

  • Déduisons les règles de base

    23

    t1=5

    u=2

    f=20

    w=4

    + *v=3

    df/dudf/dw

    df/dfdf/dv df/dt1+

    g

    somme a+ba

    b

    g

    g

    fw

    1( ) ft w

    w f 1

    1t 1

    ft

    11( ) ft w

    t f

    1w

    fu

    fv

    11 4f

    t

    1

    1

    t fu t

    1

    1

    t fv t

    1

    1 4ft

  • *g

    a

    b

    produit a*b

    24

    t1=5

    u=2

    f=20

    w=4

    + *v=3

    df/dudf/dw

    df/dfdf/dv df/dt1+

    g´a

    ´b

    somme a+ba

    b

    g

    g

    produit a*b

    bg

    ag

    fw

    1( ) ft w

    w f 1

    ftf

    1

    ft

    11( ) ft w

    t f

    fwf

    fu

    fv

    11 4f

    t

    1

    1

    t fu t

    1

    1

    t fv t

    1

    1 4ft

    Déduisons les règles de base

  • Dérivées des fonctions de d’activation et de perte classiques

  • 26

    Dérivées de fonctions de perte

  • 27

    Dérivées de fonctions de perte

  • 28

    Dérivées de fonctions d’activation

  • 29

    Dérivées de fonctions d’activation

  • 30

    Dérivées de fonctions d’activation

  • 31

    Dérivées de fonctions d’activation

    Slide 1Illustration et nomenclatureChoix à faireComparaison avec autres méthodesExemple point de selleProfil de la fonction de perte L(q)_clipboard0Slide 8Choix à faire_clipboard0Slide 10Choix à faire_clipboard0_clipboard0Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18backpropExemple graphe calculExemple sur graphe calcul simpleExemple sur graphe calcul simpleTirer des règles de baseTirer des règles de baseSlide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31