• Aucun résultat trouvé

Modèle de Perception

Définition 8. (Application logarithme) L’application logarithme envoie des éléments du groupe vers l’algèbre

4.2.8 Formalisation

la figure 4.21 en utilisant différents descripteurs images. A chaque image, une seule itération de Gauss-Newton est effectuée. Conformément à l’expérience précédente, les descripteurs issus de couches entièrement connectées sont moins performants que les couches de convolutions les pré-cédant. Nous l’avons également testé sur des séquences du dataset [WLY13], avec les résultats sur la séquenceCar4à la dernière ligne de la figure 4.21. Bien que l’on obtienne des résultats corrects sur certaines séquences, notre algorithme reste limité au petit mouvement et aux objets rigides.

Il est toutefois possible, en effectuant plusieurs itérations de la mise à jour de Gauss-Newton, de suivre de plus grands mouvements mais au prix d’un temps de calcul élevé (calcul numérique des jacobiennes). De plus, pour avoir un véritable algorithme de suivi, il faudrait intégrer une mise à jour du descripteur de référence. L’idée est de resterdata drivenc’est à dire de représenter l’instance suivie par un ensemble de descripteurs et non par un modèle unique que l’on met à jour au fur à mesure. La poursuite de ce travail sera donc de trouver un critère permettant de savoir quand ajouter ou retirer un descripteur représentant un "mode" de l’instance. La formalisation qui va suivre a pour but d’obtenir des expressions permettant d’éviter le calcul numérique des jacobiennes à chaque ité-ration. De plus, elle pourrait également permettre, en utilisant les outils d’analyse matricielles, de mieux comprendre théoriquement les propriétés des descripteurs évoqués dans cette section.

ε x

ij

x

ij

Global Local

Figure 4.22 – Définition des coordonnées globales et locales pour la formalisation Expression du gradient d’un élémentφij0

Nous notons parxIij =h(xeIij)T 1iT les coordonnées homogènes du pixel en position(i, j)dans l’imageI avecxeIij = hi jiT. De même,xijε ses coordonnées dans le repère local courant (figure 4.22).

Définissons la fonctionψεde changement de repère de la région objet (local) vers l’image (glo-bal)

ψε :

[1, H0]×[1, W0]→[1, H]×[1, W]

xε 7→xI =eεxε (4.43)

avece=expSIM(2)l’application exponentielle deSIM(2).

Nous définissons la fonction c qui retourne la valeur d’un pixel à partir de ses coordonnées globales

c:

[1, H]×[1, W]→R

xI 7→c(xI) (4.44)

A partir de (4.43) et (4.44), nous pouvons écrire la valeur d’un pixel dans son repère local

∀(i, j)∈[1, H0]×[1, W0], φij0(ε) = (φ0(ε))ij = (c◦ψε)(xεij) (4.45) Nous en déduisons, en notantεklak-ème coordonnée deεet en utilisant la règle de dérivation

12. En pratique, l’image est redimensionnée par interpolation bilinéaire.

en chaîne

∂φij0

∂εk

(ε) = ∂c

∂x

ψεxεij

!T

∂expSIM(2)

∂εk

(ε)xεij

!

(4.46) Remarquons que le premier terme à droite est relié au gradient de l’image∇Iau pixelψεxεij.

Nous pouvons alors réécrire (4.46) de la façon suivante

∂φij0

∂εk(ε) = ΓTk,ε∇Ig xεij (4.47) avec

∀(i, j)∈[1, H0]×[1, W0], Γk,εxijε = ∂expSIM(2)

∂εk (ε)xεij ∈R3 (4.48)

∀(i, j)∈[1, H]×[1, W], ∇I(xijI) = h∂c

∂x(xijI) ∂c∂y(xIij) 0iT ∈R3 (4.49)

∇Ig = ∇I◦ψε (4.50)

Expression du gradient deφ0sous forme vectorielle

Nous cherchons maintenant à obtenir l’expression vectorielle de ∂φ∂εk0, à savoir V ec∂φ∂ε0

k

(cf Définition 19, annexe B). Après arrangement, nous arrivons au résultat suivant

Proposition 1. Le gradient vectorisé d’une régionφ0(ε)⊂I, de poseε ∈sim(2), peut se factoriser sous la forme

V ec ∂φ0

k

!

= Mk(ε)∇Iˆ0(ε)) (4.51)

Mk(ε) = RTH0W0IH0W0DΓk,ε(RH0W0I3) (4.52) avec

DΓk,ε =

"

Dx IH0W0∂expSIM(2)

∂εk (ε)

!#

, Dx =

x11T . ..

xTH

0W0

(4.53)

∇Iˆ0(ε)) = h∇IgT(xε11) . . . ∇IgT(xεH

01) ∇IgT(xε12) . . . ∇IgT(xHε

0W0)iT (4.54) avecRH0W0 défini au théorème 11, annexe B.1.

Démonstration. Voir annexe B.3.1

Avec l’utilisation du produit de Kronecker, on aboutit à une expression relativement concise.

Un point intéressant de cette factorisation est que seul le second terme est dépendant de l’image, le second n’étant que fonction de la pose ε. Nous allons maintenant voir comment propager ce gradient à travers les différentes couches du réseau.

Expression du gradient d’un élément d’une couche supérieurφijl

En général, chaque couche de convolution d’un CNN est en fait une composition de "sous-couches" : convolutionφcl, unité de rectification linéaire ReLU φReLUl et poolingφpl. Pour les pre-mières couches, certains réseaux utilisent également une couche de normalisation locale LRN φLRNl . Nous ignorons ici l’effet du pooling, ce qui nous donne une expression générale :

φl=φlnrlφrelulφcl (4.55) Dans la suite, nous allons développer les expressions du gradient à travers chaque type de sous-couche.

Couche de convolution :Soientkl, slrespectivement la taille et le décalage du filtre de convo-lution de la coucheφcl. Afin de ne pas trop complexifier nos expressions , nous supposons icisl = 1. Nous supposons également des noyaux carrés. SoitWlMkl,kl la matrice des poids du filtre de convolution13. On a alors :

Proposition 2. L’expression vectorielle d’une couche de convolution fonction de la couche précé-dente est donnée par

V eccl) = ΩlV ecl−1) (4.56) Ωl = IHlWlV ec(Wl)T SˆβSˆα (4.57) avec

Sˆβ =

Sβ1

... SβWl,

, βi ={i−kl−1

2 , . . . , i+kl−1

2 } (4.58)

Sˆα =

Sα1

... SαHl

, αj ={j− kl−1

2 , . . . , j+kl−1

2 } (4.59)

13. Nous considérons un biais nul

Sαj, Sβi sont des matrices de permutation partielle (Définition 18, annexe B.1) etle produit de Khatri-Rao (cf Définition 16, annexe B.1).

Démonstration. Voir annexe B.3.2.

On en déduit :

Proposition 3. Le gradient vectorisé d’une couche de convolution en fonction du gradient de la couche précédente est donné par

V ec ∂φcl

∂εk

!

= ΩlV ec ∂φl−1

∂εk

!

(4.60) Démonstration. On utilise le fait que pour toute matriceAfonction d’un réelx:

V ec dA dx

!

= dV ec(A) dx

Couche ReLU

On note parHla fonction de Heaviside14. Par définition, on a

φrelu,ijl = max(0, φc,ijl ) (4.61)

Proposition 4. Le gradient vectorisé d’une couche ReLU en fonction du gradient de la couche précédente est donné par

V ec ∂φrelul

∂εk

!

=HlV ec ∂φcl

∂εk

!

(4.62) oùest le produit de Hadamard et avec

Hl=hHφc,11l . . .Hφc,Hl lWliT (4.63) Démonstration. Voir annexe B.3.3.

14. H:R7→ {0,1}qui vaut1pour les valeurs positives et0ailleurs.

Couche LNR

Soient nl > 0 la taille des régions pour la normalisation et αl, βl > 0 deux paramètres. La couche LNR est définie par

φlnr,ijl = φrelu,ijl

dβijl (4.64)

avec le dénominateur :

dij = 1 +αl nl

i+nl2−1

X

p=i−nl2−1

j+nl2−1

X

r=j−nl2−1

φrelu,prl 2 (4.65)

Proposition 5. De manière similaire à la couche précédente, le gradient de la couche LNR a pour expression

V ec ∂φlnrl

∂εk

!

= ∂V ecφlnrl

∂V ecφrelul

∂V ecφrelul

∂εk (4.66)

avec

∂V ecφlnrl

∂V ecφrelul =diagKlnrβl−2αl nl

βldiagV ecφrelul Klnrβl+1

IWlHlV ecφrelul T

β∗Λα)

=Ll

(4.67)

et

Klnrrelul ) =

1 d11

...

1 dWlHl

∈RWlHl (4.68)

Λβ =

Sβlnr

1

TSβlnr .. 1

. Sβlnr

Wl

TSβlnr

Wl

, Λα=

Sαlnr

1

TSαlnr .. 1

. Sαlnr

Hl

TSαlnr

Hl

(4.69)

Démonstration. Voir annexe B.3.4.

Nous avons donc maintenant l’expression recherchée :

∂V ecl)

k =Lll∂V ecl−1)

k Hl

!

(4.70)

Remarque : Les matricesHl, Llsont des fonctions deφl−1 et donc deφ0. Expression du gradient deφlfonction deφ0

L’équation 4.70 nous donne une expression du gradient de φl en fonction du gradient de la couche précédenteφl−1. Cependant, elle ne permet pas de remonter jusqu’au gradient de la couche d’entrée φ0. Nous introduisons un nouvel opérateur et réexprimons 4.70 de façon à pouvoir remonter en cascade au gradient initial.

Définition 12. SoientA=

aT1 ... aTn

Mn,m etx∈Rm. On notele produit entreAetxdéfini par

Ax=A1nxT=

a1T xT ... anT xT

(4.71)

avec1n ∈Rnun vecteur de1.

Théorème 2. SoientAMn,m etx, y∈Rm. Alors

A(xy) = (Ay)x= (Ax)y (4.72) Démonstration. La propriété est immédiate en développant les expressions de chaque côté du signe égal. La seconde égalité est une conséquence directe de la commutativité du produit de Hadamard.

Théorème 3. Soitu∈Rn. On a

diag(u) =Inu (4.73)

L’application du théorème 2 à (4.70) nous donne

∂V ecl)

∂εk = (LlHl) Ωl∂V ecl−1)

∂εk

= ˆΩl∂V ecl−1)

∂εk

(4.74)

D’où l’on déduit par itération

∂V ecl)

∂εk =

l

Y

i=1

Ωˆl−i+1

!∂V ec0)

∂εk (4.75)

En posantAl =Qli=1Ωˆl−i+1

etM =hM1 M2 M3 M4ion obtient l’expression finale de la jacobienne

∂V ecl)

∂ε = hAlM1∇Iˆ . . . AlM4∇Iˆ i (4.76)

= AlM( ˆ∇I⊗I4) (4.77)

Application

Une première application de cette formalisation va nous permettre, en ajoutant des couches ap-propriées au réseau, de directement calculer le plan tangent courant∂V ec(φ∂ε l)au descripteurV ecl). Nous ignorons pour l’instant les couches LNR. En reprenant l’équation (4.74) avecLl =IHlWl, on obtient

∂V ecl)

∂εk = (IHlWlHll−1)) Ωl∂V ecl−1)

∂εk (4.78)

= diag(Hll−1))Ωl∂V ecl−1)

∂εk (4.79)

On doit cependant également prendre en compte en pratique le pooling P qui consiste dans la plupart des réseaux à conserver le maximum sur une région autour d’un point

∀x, P(x) = max

i,j φij(x) (4.80)

On a alors ses dérivées

∂P

∂εk(φ) = ∂φij

∂εk aveci, j =argmax

i,j φij (4.81)

Finalement, on passe du plan tangent à la couchel−1à la couchelpar

∂V ecl)

∂εk

= ∂P

∂εk

diag(Hll−1))Ωl∂V ecl−1)

∂εk

!

(4.82) Comme on le verra par la suite, ceci peut se calculer directement dans le réseau de neurones en

rajoutant certaines couches. Maintenant il reste à calculer la jacobienne initiale ∂V ec(φ∂ε 0). Partons de l’équation (4.47). Sans perte de généralité, on considère que la position courante représentée par ε0 est l’origine, c’est à dire queε0 = h0 0 0 0iT et par conséquencexεij = xijI (autrement dit, la transformation de similarité considérée ici est relative à la position précédente et non exprimée par rapport au repère global de l’image). On a alors

Γ0,ε0(xijε) = xεij =xijI (4.83)

Γ1,ε0(xijε) = h−j i 0iT (4.84)

Γ2,ε0(xijε) = h1 0 0iT (4.85) Γ3,ε0(xijε) = h0 1 0iT (4.86) Finalement on obtient donc

∂φij0

∂ε =

∂c

∂i(xIij)i+∂c∂j(xIij)j

∂c

∂j(xIij)i− ∂c∂i(xIij)j

∂c

∂i(xIij)

∂c

∂j(xIij)

T

(4.87)

Le plan tangent nécessite donc seulement le calcul du gradient spatial de l’image à la position (échelle et rotation comprises) actuelle.

Voyons maintenant son implémentation pratique. Nous utilisons la bibliothèque Caffe [JSD+14]

mais le principe est adaptable de manière générale à d’autres frameworks. On rappelle qu’une couche est définie par un tenseur 3DD×H×W (profondeur, hauteur, largeur). Dans Caffe, ce sont en fait des tenseurs 4DN×D×H×W avec le premier axe correspondant au batch. En effet, il est plus efficace de traiter plusieurs images d’un coup que de répéter le traitement pour chaque image.

La figure 4.23 présente un schéma des couches nécessaires pour le calcul de la jacobienne initiale.

On part de l’image d’entrée qui est une couche de dimension1×3×H×W. Le gradient spatial

1 X 3 x H x W

3 X 1 x H x W 3 X 2 x H x W 3 X 4 x H x W 4 X 3 x H x W

Reshape Gradient spatial Reshape

(Filtre de Sobel) Jacobienne

Figure 4.23 – Schéma des couches à ajouter à un CNN afin de calculer le plan tangent initial

de l’image va être calculé indépendamment pour chaque canal (la profondeur, ici, correspond aux couleurs). L’astuce consiste à considérer chaque canal comme une donnée et de les traiter en bloc comme un batch. Autrement dit, il faut permuter l’axe correspondant au batch et aux canaux d’où l’utilisation d’une coucheReshape, qui comme son nom l’indique, permet de permuter les données.

On obtient alors en sortie un tenseur3×1×H×W. Celui-ci est envoyée ensuite dans une couche qui va calculer le gradient spatial de l’image à partir d’un filtre de Sobel (couche de convolution dont on a fixé le noyau pour être celui de Sobel). On a deux filtres (dérivée horizontale et verticale) d’où une sortie de dimension3×2×H×W. La jacobienne ∂V ec(φ∂ε 0) est ensuite calculée à partir des équations (4.87) où chaque canal va correspondre à la dérivée par rapport à un paramètre de similarité. La sortie obtenue a donc une profondeur égale à4. Enfin, pour pouvoir propager cette jacobienne dans la suite du réseau, il faut repasser les canaux de couleurs (actuellement en tant que batch) en tant qu’axe de profondeur. C’est pourquoi nous réutilisons une seconde coucheReshape pour effectuer l’opération inverse de la première transformation.

Le réseau CNN original est ensuite modifié selon la figure 4.24.

Figure 4.24 – Adaptation des couches de convolutions pour le calcul de la jacobienne du descripteur à la couche l

Chaque couche est constituée de deux parties :

− La première est exactement celle du réseau original, à savoir l’enchaînement des couches conv+ReLU+poolcalculant le descripteurφl(en gris dans la figure 4.24)

− La seconde s’occupe de calculer la jacobienne deφlsuivant l’équation (4.82). Elle prend en entrée la jacobienne de la couche précédente ∂φ∂εl−1 qui passe à travers la même couche de convolution. Les sorties de la couche conv pour φl et ∂φ∂εl−1 sont ensuite passées en entrée de la couche Heaviside. La dernière couchepool dérivéimplémente l’équation (4.81) : elle nécessite en entrée un masque indiquant les indexi, jcorrespondant aux maximum locaux de φl, la sortie de la couche Heavisideainsi que les dimensions (hauteur et largeur) de la sortie.

Il est également possible d’obtenir la jacobienne, autrement dit l’espace tangent au descripteur, de manière dense en utilisant la méthode FCN.

Opérateur de K-dérivation

On définit ici l’opérateur de K-dérivation (ou dérivation de Kronecker) [Ter03] [DB15]

Définition 13. Soitf :Rn →Rmtelle que

∀x= [x1. . . xn]T ∈Rn, f(x) = [f1(x). . . fm(x)]T L’opérateur différentiel est noté Dx = h∂x

1 . . .∂x

n

iT

. L’opérateur de K-dérivation noté Dx est défini par

Dxf(x) =f(x)⊗Dx =V ecJfT(x)Mnm,1 (4.88) avec Jf =h∂x∂fi

j

ila matrice jacobienne def. En utilisant la notation (B.4), la dérivation à l’ordre k est définie par

Dx⊗kf =Dx Dx⊗k−1fMnkm,1 (4.89) Quelques nouvelles propriétés de cet opérateur et leur démonstration sont données en annexe B.2. L’application principale de la K-dérivation est de permettre une expression de série de Taylor multivariée [DB15] similaire au cas univarié

Théorème 4. Soientf :Rn →Rmetx0 ∈Rn. La série de Taylor def au pointx0est donnée par

∀x∈Rn, f(x) =

+∞

X

i=0

1 i!

Dx⊗if(x0)T (x−x0)⊗i (4.90)

On obtient donc une approximation du premier ordre enε0 à partir de l’expression (4.76) V ecl) (ε) = V ecl) (ε0) +DεV ecl) (ε0)T (ε−ε0) (4.91)

= V ecl) (ε0) + V ec ∂V ecl)

∂ε0)

T!!T

(ε−ε0) (4.92)

= V ecl) (ε0) +

V ec

∇Iˆ T0)MT0)ATl

T

(ε−ε0) (4.93)

= V ecl) (ε0) +

Al⊗∇Iˆ TI4

V ecMT

T

(ε−ε0) (4.94)

= V ecl) (ε0) +

V ecMTT ATl ⊗∇Iˆ ⊗I4

(ε−ε0) (4.95)

Les approximations d’ordres supérieures sont également calculables à partir de la règle de dé-rivation en chaîne et de la mise à l’échelle présentées et démontrées en annexe B.2.

Discussion : La formalisation proposée ici a permis d’obtenir des expressions matricielles concises en évitant la complexité engendrée par l’écriture tensorielle. On a notamment montré que la jacobienne du descripteur à la couchel peut se factoriser sous la formeAl0)M(ε)∇I(φ0,ε). Bien que les expressions obtenues soient difficilement exploitables en pratique dans leur forme ac-tuelle, elles sont un point de départ pour de futurs développements. La première application de cette formalisation a permis de modifier un CNN afin qu’il calcule également directement la jacobienne.

L’idée derrière ceci est de séparer les variations du descripteur dues à un changement non rigide d’apparence∆φN Ret celles dues à une transformation de similarité∆φSIM2. La figure 4.25 illustre ce point.

Figure 4.25 – Décomposition de la variation d’un descripteur