• Aucun résultat trouvé

Apprentissage de systèmes modulaires

8 Algorithmes modulairesd’apprentissage

8.2 Apprentissage de systèmes modulaires

Un formalisme Lagrangien permet alors de calculer aisément le gradient coût local

J(x,w)

de façon peu dépendante de la forme des modules. Ce gradient peut être calculé efficacement au cours d’une simple passe arrière.

Les liens entre ce calcul du gradient, le “credit assignment problem”, et l’algorithme de rétro-propagation du gradient, sont également soulignés.

8.2.2 Calcul des dérivées du coût local.

Afin de calculer facilement les dérivés de

J

par˚rapport à tous les paramètres d’un système modulaire, il est utile d’introduire un formalisme Lagrangien.

8.2.2.1 Un formalisme Lagrangien.

Considérons deux fonctions,

f(x)

de

Ivers

M et

g(y)

de

M vers

. On calcule d’habitude les dérivées de la composée

gοf

à l’aide de la règle de la dérivation en chaîne. Une autre façon consiste à écrire le Lagrangien de

gof

, avec la contrainte.

y=f(x)

:

L(x,y,β) = g(y) -

m

˚ß

(˚y

m

-f

m

(x)˚) (8.4)

Un calcul simple montre que choisir

β

en résolvant les équations

∀ m, ˚ ∂L

∂y

m

   ˚

˚ x,f(x),ß(x)

= 0

implique

∂L

Cette propriété simplifie considérablement le calcul des dérivées de notre coût local

J

. Cela introduit automatiquement les multiplicateurs de Lagrange

β

, qui sont les quantités conjuguées des variables internes

y

.

8.2.2.2 Formules pour le gradient.

Calculer les dérivées est alors très simple. Les équations (8.1) et (8.2) sont les contraintes de notre système. On peut alors écrire le Lagrangien, en prenant garde aux conventions d’indiçage:

L = J - ∑

k

˚ β

(x

k

-y

φ(k)

) - ∑

j

˚ α

( y

j

j

(˚(x

k

)

kX-1Y(j)

,˚(w

i

)

iW-1Y(j)

) ) (8.6)

Les quantités conjuguées

β

et

α

sont déterminées par les équations:

∂y ∂L

j

= 0 = - α

l

+ ∑

k∈φ-1(j)

˚ ˚ β

k

(8.7)

∂x ∂L

k

= 0 = - β

k

+ ∂J

∂x

k si l’entrée

k

appartient au dernier module.

- β

k

+ ∑

jY-1X(k)

˚ ˚ α

j

˚ ∂ƒ

j

∂x

k sinon

. (8.8)

Dans l’équation (8.8), on distingue le cas particulier où

k

est l’indice d’une entrée du dernier module, dont le rôle est de calculer le coût local

J

.

Les multiplicateurs de Lagrange

α

jet

β

k sont les quantités conjuguées des sorties et entrées de nos modules, i.e.

α

j

= ∂J / ∂y

j , and

β

k

= ∂J / ∂x

k.

Dans chaque module, les conjuguées des entrées

β

k sont calculées à partir des conjuguées des sorties

α

j grâce à l’équation (8.8). L’équation (8.7) combine à son tour ces conjuguées

β

k, pour calculer les conjuguées

α

j des sorties des modules précédents, le long des connexions.

Ainsi, tous les multiplicateurs de Lagrange peuvent être calculés alternativement au cours d’une unique récurrence arrière. Il est alors facile d’obtenir la dérivées

i de

J

par rapport au paramètre

w

i:

En résumé,

β

k

= ∂J

∂x

k

si l’entrée

k

appartient au dernier système,

β

k

= ∑

jY-1X(k)

˚ ˚ α

j

˚ ∂ƒ

j

∂x

k

˚

dans les autres cas

. α

j

= ∑

k∈φ-1(j)

˚ ˚ β

k

i

= ∂J

∂w

i

= ∑

j∈Y-1W(i)

˚ α

j

˚ ∂ƒ

j

∂w

i

(8.10)

Ces formules décrivent de façon générale les échanges d’information entre modules nécessaires pour effectuer l’apprentissage global de notre système. Il suffit donc de savoir effectuer trois opérations sur chaque module:

• Calculer ses sorties

y

j, connaissant ses entrées

x

k et ses paramètres

w

i.

• Calculer les conjugués

β

k de ses entrées, connaissant les conjugués

α

j de ses sorties, ses entrées

x

k et ses paramètres

w

i.

• Calculer les dérivées de ses paramètres

i, connaissant les conjuguées

α

j de ses sorties, ses entrées

x

k et ses paramètres

w

i.

Le reste de l’algorithme ne dépend pas de la nature des modules.

8.2.2.3 Le calcul du hessien est il possible?.

Dans le chapitre 5, on a expliqué comment les dérivées secondes du coût local

J

donnaient divers indices pour améliorer la vitesse de convergence des algorithmes de descente de gradient, et améliorer leurs performances.

Une méthode pratique de calcul des dérivées secondes dans un système modulaire donnerait des indices comparables.

Le formalisme Lagrangien de dérivation de fonctions composées ne s’étend malheureusement pas aisément aux dérivées secondes. Il est cependant possible de calculer ces dérivées à la main.

Si, pour chaque module

F

n, nous connaissons les dérivées croisées de

J

par˚rapport aux sorties de ce module, les dérivées croisées par rapport aux entrées et aux paramètres de ce même module sont données par:

∂x

k1˚

∂2J ∂x

k2

= ∑

Il n’est pas facile, en revanche, de propager de façon générale ces blocs de dérivées secondes entre modules. En effet:

• Lorsque toutes les sorties d’un système sont connectées aux entrées du suivant, les dérivées croisées par rapport aux sorties du module amont sont égales aux dérivées croisées par rapport aux entrées du système aval.

• Lorsque les sorties d’un module sont partagées en plusieurs groupes, connectés en aval à autant de modules différents, on ne peut plus calculer les dérivées croisées entre deux sorties appartenant à deux groupes différents. Le hessien du coût local par rapport aux sorties de ce module ne peut plus être déterminé exactement, bien qu’une approximation en blocs diagonaux soit possible.

• Si une sortie d’un module est utilisée plusieurs fois comme entrée par les modules suivants, nous devons ajouter les dérivées croisées correspondantes. Or, quelques termes de ces sommes manqueront.

Or, dans le cas le plus général, tous les termes du hessien du coût local par rapport aux sorties sont nécessaire pour appliquer les formules (8.11). Il est parfois possible, comme dans le cas de la rétro-propagation du gradient, d’évaluer exactement la diagonale de ce hessien.

Bien que peu satisfaisante, la situation n’est pas désespérée: Une connaissance approximative du hessien peut donner malgré tout assez d’informations pour être utile en pratique.

8.2.3 Liens avec les approches usuelles.

Il est important de souligner que ce formalisme modulaire ne constitue pas un nouvel algorithme, mais une expression modulaire des algorithmes d’optimisation. Cette expression est en particulier reliée à quelques algorithmes existants, dont bien sûr la rétro-propagation du gradient.

8.2.3.1 Le “credit assignment problem”.

La problématique du credit assignment problem a constitué le fondement de plusieurs algorithmes classiques destinés à des systèmes en étages, comme les perceptrons multi-couches.

i Modélisation.

Considérons un système en étages, constitué d’une chaîne de modules, dont les sorties servent d’entrées aux suivants. Chaque élément de notre chaîne est décrit par la dépendance paramétrique entre entrées

X

et sorties

Y

,

Y = ƒ( X , w) (8.12)

et par son algorithme d’apprentissage,

w’ = Ψ

tw

( X, Y , w ) (8.13)

qui calcule un nouveau jeu de paramètres

w’

à l’aide d’une fonction

Ψ

tw de l’exemple présenté

( X, Y )

et des paramètres courants

w

.Supposons maintenant que les sorties

Y

de ce module servent d’entrées à un autre module,

Z = g( Y , v) (8.14)

v’ = Ψ

tv

( Y , Z , v ) (8.15)

Notre but est d’entraîner le système complet, décrit par les équations (8.12) et (8.14), en ne disposant que d’exemples de la forme

( X , Z )

. Malheureusement, les algorithmes (8.13) and (8.15) requièrent la connaissance des états internes

Y

pour chaque exemple.

Dans l’équation (8.14), comme dans l’équation (8.12), les arguments de la fonction

g

ont été arbitrairement partitionnés en entrées

X

et paramètres

w

. La formule de réestimation (8.15) s’applique seulement aux paramètres. Supposons alors que l’on puisse obtenir une formule symétrique de réestimation des entrées, de la forme

Y’ = Ψ

t

Y( Y , Z , v ) (8.16)

Ayant un exemple

( X, Z )

, on peut alors opérer en trois étapes:

• Obtenir une paire

( Y , Z )

en appliquant la fonction

ƒ

à l’exemple

X

, et aux paramètres

w

t,

• Utiliser ce couple

( Y , Z )

comme exemple, pour appliquer (8.15) et (8.16), et déterminer de nouveaux paramètres

v’

pour le système

g

, et de nouveaux états internes

Y’

.

• Appliquer une fois (8.13) à l’exemple

( X , Y’ )

, pour déterminer de nouveaux paramètres

w’

pour le système

ƒ

.

Cette méthode intuitive, appelée propagation des états désirés [1] soulève quelques problèmes sérieux:

Le premier consiste à savoir quelles garanties de convergence et de stabilité possède un tel algorithme.

Le second est plus fondamental: S’il converge, vers quoi converge-t’il?

Jusqu’à présent, nous avons introduit les algorithmes en définissant une fonction de coût, pour appliquer ensuite un algorithme itératif d’optimisation. L’objectif de cette méthode consiste à atteindre l’optimum d’une mesure d’adéquation de notre système à ses spécifications, c’est à dire à la tâche que l’on attend de lui.

Avec la problématique du credit assignment problem, cet objectif essentiel a été évacué. Dans quelques cas particulier, cependant, on peut définir un coût global.