Académique Documents
Professionnel Documents
Culture Documents
L’apprentissage de réseaux
connexionnistes
Sommaire
1 Les différents éléments d’un réseau connexionniste . . . . . . . . . . 328
2 L’architecture multicouche . . . . . . . . . . . . . . . . . . . . . . . . . 330
2.1 La transmission de l’information dans un réseau multicouche . . . . . . 330
2.2 Le protocole d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . 334
2.3 Le codage des exemples d’apprentissage . . . . . . . . . . . . . . . . . . 335
3 L’algorithme d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . 335
3.1 Retour sur le perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
3.1.1 Le perceptron pour deux classes . . . . . . . . . . . . . . . . . 335
3.1.2 Le perceptron pour plus de deux classes . . . . . . . . . . . . . 337
3.1.3 Plus de deux classes et une sigmoïde en sortie . . . . . . . . . 339
3.2 L’apprentissage par rétropropagation du gradient de l’erreur . . . . . . . 340
3.3 L’organisation des calculs . . . . . . . . . . . . . . . . . . . . . . . . . . 341
3.4 Une variante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
3.5 Quand arrêter l’apprentissage ? . . . . . . . . . . . . . . . . . . . . . . . 344
3.6 Le problème des minima locaux . . . . . . . . . . . . . . . . . . . . . . . 344
4 Quelques résultats théoriques sur les réseaux connexionnistes . . . 344
4.1 Pouvoir d’expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
4.2 Complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
5 Comment choisir l’architecture d’un réseau ? . . . . . . . . . . . . . . 345
6 Les réseaux à architecture profonde . . . . . . . . . . . . . . . . . . . 346
7 Réseaux et régime dynamique : le Reservoir Computing . . . . . . . 348
7.1 Les réseaux de neurones récurrents . . . . . . . . . . . . . . . . . . . . . 348
7.2 Le traitement de données temporelles . . . . . . . . . . . . . . . . . . . 349
7.3 Le Reservoir Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
7.4 Bilan très provisoire et perspectives . . . . . . . . . . . . . . . . . . . . 350
L
es eiders (Somatiera mollissima) sont des canards marins pour lesquels les guides
ornithologiques1 sont pour une fois assez péremptoires : « Le mâle est le seul canard
qui paraisse blanc quand on le voit de face et noir quand il est vu de dos. . . Le plumage
de la femelle est brun. » Supposons qu’une bande d’eiders vogue à quelque distance
des côtes. Comment un avimateur peut-il distinguer un eider mâle d’un eider femelle uniquement
sur la couleur2 ?
Le problème est en apparence assez simple. Il faut définir une échelle qui va du blanc au noir
et y définir trois zones. On aura une décision du type de celle de la figure 10.1.
Notons x le niveau de gris d’un eider dont on cherche à déterminer le sexe. Les connaissances
sont les suivantes :
• Si x ≤ 1 ou x ≥ 2 alors mâle.
• Si 1 ≤ x ≤ 2 alors femelle.
1
H. Heintzel, R. Fitter and J. Parslow Oiseaux d’Europe. Delachaux et Niestlé, 1972.
2
On suppose bien sûr qu’il n’y a que des eiders dans la zone observée et qu’aucun mâle ne seprésente de profil.
Chapitre 10 L’apprentissage de réseaux connexionnistes 327
1 2
blanc noir
Le concept « sexe de l’animal observé » ne peut donc pas se traduire directement par une seule
comparaison.
Les techniques des surfaces séparatrices linéaires que nous avons vues au chapitre précédent
sont-elles valables ici ? Non, car ce concept est impossible à décrire de cette façon. En effet, une
décision linéaire dans un espace à une seule dimension (ici, la couleur x est le seul attribut du
problème) revient à comparer l’attribut à un seuil. Mais ici, deux seuils interviennent et non pas
un seul. Il va falloir trouver une technique de décision plus élaborée.
Nous allons décomposer le problème en deux étages de décision linéaire. Le premier produira
deux valeurs binaires notées y1 et y2 . La première indique si oui ou non x est inférieur au seuil
de valeur 2, la seconde si x est supérieur au seuil de valeur 1. Le deuxième étage combinera ces
deux valeurs binaires pour décider si le concept est satisfait ou non. C’est ce que montrent le
tableau ci-dessous et la figure 10.2.
y1 est V RAI
y2 est V RAI
1 2
blanc noir
y1 y2 Concept
1
V RAI V RAI Femelle
V RAI F AU X Mâle
F AU X V RAI Mâle
F AU X F AU X (impossible)
328 PARTIE 3 : Apprentissage par optimisation
Ce problème a été présenté jusqu’ici dans le cadre de la logique, mais il est facile de le trans-
former en une décision numérique. Il suffit pour cela d’attribuer les valeurs réelles 0 et 1 à y1 et
y2 selon qu’ils sont V RAI ou F AU X. Il est en effet peu intuitif, mais immédiat de vérifier que
la valeur numérique z
z = y1 + y2 − 1.5
est positive quand l’eider est femelle (elle vaut z = 1 + 1 − 1.5 = 0.5) et négative quand il est
mâle (elle vaut z = 1 + 0 − 1.5 = −0.5 ou z = 0 + 1 − 1.5 = −0.5). Donc, le concept est aussi
exprimé par le signe de la valeur z.
Le concept appris est par conséquent ramené à une décision par surface séparatrice linéaire,
non pas dans l’espace de représentation de départ, réduit à x, mais sur deux valeurs binaires y1
et y2 , extraites elles-mêmes de décisions linéaires sur x.
En quoi cette technique de décision est-elle conforme aux premières notions que nous avons
données sur les réseaux connexionnistes ? Il suffit pour le voir de se placer dans une représentation
graphique (figure 10.3). L’information se propage de la gauche vers la droite. Les deux cercles
centraux ont pour valeur de sortie y1 et y2 , celui de droite a pour valeur de sortie z ; il exprime
donc le concept cherché. Cette représentation sera bien sûr plus longuement expliquée dans ce
chapitre.
1
-1,5
x -1
1
2
1
1
1 -1
neurone de biais
Fig. 10.3: Un réseau connexionniste qui distingue les eiders mâles des eiders femelles.
Détaillons d’abord les différentes notions nécessaires à la compréhension des réseaux connexion-
nistes, en particulier des réseaux multicouches que nous étudions dans ce chapitre.
L’espace de représentation
Les données d’entrée sont des vecteurs de IRd , notés comme d’habitude (en transposition)
x� = (x1 , . . . , xd ). Les réseaux connexionnistes que nous présentons dans ce chapitre sont donc
des règles de classification de données numériques.
Chapitre 10 L’apprentissage de réseaux connexionnistes 329
Le neurone formel
L’unité de traitement élémentaire dans un réseau connexionniste n’est capable que de réaliser
certaines opérations simples. Ces unités sont souvent appelées neurones formels pour leur simi-
litude grossière avec les neurones du cerveau. Les modèles de réseaux connexionnistes qui nous
intéressent particulièrement, les réseaux multicouches, classent les unités selon qu’elles sont des
neurones d’entrée, cachés, ou de sortie.
• Un neurone d’entrée ou, simplement, une entrée, est une unité chargée de transmettre une
composante du vecteur x des données (en particulier, les données d’apprentissage pendant
la phase d’apprentissage).
• Un neurone de sortie est une unité qui fournit une hypothèse d’apprentissage, par exemple
dans un problème de classification, une décision sur la classe à laquelle est attribué x.
• Enfin, un neurone caché est un neurone qui n’est ni un neurone d’entrée, ni un neurone de
sortie. Sa fonction est de faire des traitements intermédiaires.
Il existe d’autres modèles, par exemple la machine de Boltzmann pour laquelle tous les neurones
formels, y compris d’entrée et de sortie, sont connectés les uns aux autres.
On peut envisager plusieurs sortes de fonctions de sortie, mais le plus souvent on utilise soit
la fonction signe (comme dans l’exemple d’introduction), soit une fonction sigmoïde3 d’équation
1
yi = g (σi ) =
1 + e−λσi
La figure 10.4 montre le graphe de cette fonction pour les valeurs λ = 0.1, 1, 2 et 10.
3
C’est-à-dire en forme de s.
330 PARTIE 3 : Apprentissage par optimisation
Fig. 10.4: Graphe de la fonction sigmoïde d’équation yi = g (σi ) = 1+e1−λσi . Cette fonction est
paramétrée par sa pente à l’origine λ. Pour λ très grand, on approche de la fonction
seuil. Pour λ très petit, cette fonction est pratiquement linéaire dans une vaste région
autour de l’origine. Les sigmoïdes de cette figure correspondent à λ = 0.1, 1, 2 et 10
pour σi ∈ [−5, 5].
2. L’architecture multicouche
Un réseau est caractérisé par son architecture, c’est-à-dire la structure selon laquelle les neu-
rones formels qui le composent sont reliés les uns aux autres. Certains réseaux, comme les ma-
chines de Boltzmann, ont une connectivité complète (chaque neurone formel est relié à toutes
les autres unités) ; d’autres, ceux dont on va parler dans ce chapitre, ont une architecture en
couches successives. La caractéristique de ces réseaux est que les unités d’une couche sont reliées
à toutes celles de la couche suivante mais à aucune autre. À chaque lien entre deux unités i et j,
on associe un poids correspondant à la force de la connexion entre ces deux unités, noté w(i, j),
ou wij .
Dans ces modèles, la couche d’entrée sert à la lecture des données et la couche de sortie à
traduire la décision. En général, il s’agit d’une décision de classification.
Cette règle n’est pas utilisée pour calculer l’état d’activation des neurones d’entrée, puisque
leur rôle est simplement de transmettre les entrées. Dans leur cas, on a donc simplement σj = xj .
De plus, on doit ajouter au vecteur d’entrée une composante supplémentaire, appelée offset4 ,
4
Le mot français serait malheureusement « biais », qui a un autre sens en apprentissage.
Chapitre 10 L’apprentissage de réseaux connexionnistes 331
neurone de biais
y0 1 !
w0i σ(j) = wij yi
y1 w1i i
y2 w2i
w3i
y3
yj = g(σ(j))
wdi
yn
��
�� � �
��
� � �
Fig. 10.6: Le réseau multicouche général. Chaque entrée est reliée à tous les éléments de la pre-
mière couche cachée et seulement à eux. Chaque élément d’une couche cachée est relié
à tous les éléments de la couche cachée suivante et seulement à eux. Chaque élément
de la dernière couche cachée est relié à tous les éléments de la couche de sortie et
seulement à eux.
noté y0 dans la figure 10.5 et dont la valeur est le plus souvent fixée arbitrairement à 1. Bien que
ce ne soit pas nécessaire, une entrée du même type est souvent ajoutée à chaque couche cachée,
pour des raisons d’homogénéité dans les algorithmes de reconnaissance et d’apprentissage. Pour
chaque couche, on ajoute donc un neurone formel dans lequel n’arrive aucune connexion, dont
l’activité est toujours égale à 1 et dont les transitions vers les neurones formels j de la couche
supérieure sont notées w(0, j).
Finalement, chaque neurone j prend l’état :
�
σj = w(0, j) + w(i, j) yi (10.2)
i∈source(j)
2
et produit la sortie :
yj = g(σj ) (10.3)
En résumé, dans le cas d’un réseau à couches, la couche d’entrée est activée par l’arrivée d’une
donnée, en recevant une composante du vecteur x sur chacune de ses unités. La première couche
332 PARTIE 3 : Apprentissage par optimisation
cachée effectue le calcul ci-dessus (équations 10.2 et 10.3) pour chacune de ses unités, puis c’est au
tour de la seconde couche cachée, etc. Finalement, l’unité de la couche de sortie ayant la valeur la
plus forte indique la classe calculée pour l’entrée. Un réseau connexionniste multicouche général
est représenté sur la figure 10.6.
���� ��
�� �
�
��
�� �
� ��
� ��
�� �
��
�
���� �� ���� ��
�� � �
� ��
� �
�� ��
� ��
�� ��
� �
� �
Fig. 10.7: Un exemple de réseau multicouche : la notation des neurones formels et des poids des
connexions. Les entrés sont des carrés, les neurones sont des cercles (leur numéro est
en gras).
Considérons le réseau à deux entrées x1 et x2 de la figure 10.7. Il possède une couche cachée
composée des neurones formels numérotés 3 et 4. Sa couche de sortie est composée d’un seul
neurone formel, numéroté 5. Il y a une valeur d’offset fixée à 1 pour le vecteur d’entrée et
une autre pour la couche cachée.
Fixons maintenant (figure 10.7) la valeur des poids comme suit :
w(0, 3) = 0.2 w(1, 3) = 0.1 w(2, 3) = 0.3
w(0, 4) = −0.3 w(1, 4) = −0.2 w(2, 4) = 0.4
w(0, 5) = 0.4 w(3, 5) = 0.5 w(4, 5) = −0.4
� �
1
et prenons pour vecteur d’entrée x =
1
La propagation des calculs s’effectue alors comme indiqué dans la table ci-dessous :
Neurone formel j σj yj
1
3 0.2 + 0.1 × 1 + 0.3 × 1 = 0.6 1+e−0.6 � 0.65
1
4 −0.3 + −0.2 × 1 + 0.4 × 1 = −0.1 1+e0.1 � 0.48
1
5 0.4 + 0.5 × 0.65 − 0.4 × 0.48 = 0.53 1+e−0.53 � 0.63
L’intérêt des couches cachées avec neurones à fonction d’activation non linéaire est qu’elle
permettent une redescription des entrées dans un autre espace. Les neurones de la dernière
couche, même s’ils sont linéaires, peuvent alors simplement effectuer la séparation ou la régression
nécessaire. C’est ce que nous allons illustrer avec le cas de la fonction XOR.
Chapitre 10 L’apprentissage de réseaux connexionnistes 333
x2
! "
" !
x1
Fig. 10.8: Le problème XOR : les deux points � sont des exemples de la même classe, les deux
points � des exemples d’une autre classe. Les deux classes ne sont pas linéairement
séparables dans le plan {x1 , x2 }.
���
�� �
��
� �
��
�
�
��
�
��� ���
�� � �
��
��
� �
�� ��
� �
x1 x2 σ3 y3 σ4 y4 σ5 y5
0 0 -0.5 0 -1.5 0 -0.5 0
0 1 0.5 1 -0.5 0 0.5 1
1 0 0.5 1 -0.5 0 0.5 1
1 1 1.5 1 0.5 1 -0.5 0
On voit dans ce tableau que les points d’entrée ont été re-décrits dans le plan {y3 , y4 }. Les
deux points � ont conservés leurs coordonnées (0, 0) et (1, 1). Mais les deux points � sont
maintenant confondus en (1, 0). Il devient ainsi possible de les séparer des points par une
séparatrice linéaire.
334 PARTIE 3 : Apprentissage par optimisation
y3 = x1 ∨ x2
y4 = x1 ∧ x2
y5 = y3 ∧ ¬y4 = x1 XOR x2
��
�� �
�� x2
�
��
��
�� �� ! "
�� � �
��
� � " !
��
�� ��
� �
x1
� �
Fig. 10.10: Une des façons de résoudre le problème XOR avec un réseau connexionniste à une
couche cachée. La zone affectée à la classe � est le « couloir » compris entre les deux
droites en pointillé, celle affectée à la classe � est à l’extérieur. La première droite
répond à l’équation x1 + x2 − 0.5 = 0 et réalise un OU logique. La seconde répond
à l’équation x1 + x2 − 0.5 = 0 et réalise un ET logique. Elles sont réalisées par la
première couche du réseau. La seconde couche combine les deux décisions linéaires
en une décision non linéaire.
3. L’algorithme d’apprentissage
La caractéristique la plus intéressante d’un réseau de neurones artificiels est sa capacité d’ap-
prendre, c’est-à-dire de modifier les poids de ses connexions en fonction des données d’appren-
tissage, de telle sorte qu’après un certain temps d’entraînement il ait acquis une faculté de
généralisation.
Pour procéder graduellement, nous allons d’abord redécrire l’algorithme du perceptron, en
le considérant comme un réseau connexionniste. Nous montrerons ensuite que cet algorithme
d’apprentissage peut être considéré comme un problème d’optimisation qui se résout par une
méthode de gradient. Ce qui permettra de généraliser d’abord à un perceptron travaillant avec
plus de deux classes, puis au réseau connexionniste multicouche.
σ ≥ 0 ⇔ y = g(σ) = 1
σ ≤ 0 ⇔ y = g(σ) = 0
5
Il existe d’autres codages dans lesquels une classe est associée à un sous-ensemble de neurones de sortie. Ceci
permet en particulier d’utiliser la technique des codes correcteurs d’erreur (voir le chapitre 17).
336 PARTIE 3 : Apprentissage par optimisation
w0
biais
w1 1
w2 wd x0
w3 w4 w5
x1 x2 x3 x4 x5 xd
{
Fig. 10.11: Le perceptron de Rosenblatt
x
�dest le réseau connexionniste le plus simple. Il effectue le
calcul : y = g(σ) = w0 + i=1 wi xi où xi est la i-ème composante de x.
L’apprentissage dans le perceptron se fait par la règle de modification des poids qui a été
décrite au chapitre 9. Dans le cas de deux classes, il n’y a qu’une seule sortie, et la décision
d’appartenance à une des deux classes est prise en comparant la valeur de sortie à un seuil.
L’algorithme d’apprentissage se contente de modifier le vecteur des poids en lui ajoutant ou lui
enlevant un vecteur proportionnel à l’entrée x, dans le cas où celle-ci conduit à une valeur du
mauvais côté du seuil ; dans le cas contraire, il n’effectue aucune action.
Au chapitre 9, nous avons formalisé cet apprentissage, pour deux classes ω1 et ω2 par l’algo-
rithme 10.
Récrivons-le un peu différemment pour nous placer dans les notations de ce chapitre. Le vecteur
a du chapitre 9 correspond directement à l’ensemble des poids des connexions. Nous notons ici
w(i) le poids de la connexion menant de l’entrée xi au neurone de sortie.
u, σ et y sont pour le moment des vecteurs ayant une seule composante. Le perceptron effectue
donc le calcul fondé sur l’équation 10.2 :
� d
�
�
y = g(σ) = g w(0) + w(i) xi
i=1
Idéalement, un perceptron ayant parfaitement appris les données d’apprentissage devrait fournir
pour chacune d’elles une sortie y = σ égale à la sortie désirée u.
Notons ici que les surfaces séparatrices produites par le perceptron pour C classes sont encore
de nature linéaire : chaque classe est délimitée par une frontière convexe composée par l’inter-
section d’hyperplans. En dimension 2, pour C = 5, on a des séparatrices du type de celles de la
figure 10.13.
338 PARTIE 3 : Apprentissage par optimisation
�� �
���� ��
�� �
�� �
j=C
1�
D(u, y) = D(u, σ) = (uj − σj )2 (10.6)
2
j=1
Ceci revient encore à appliquer la technique de l’optimisation par gradient (voir l’annexe 8),
qui consiste ici à constater que la contribution du poids w(i, j) à l’erreur D(u, y) peut s’écrire :
∂
D(u, σ)
∂w(i, j)
Puisque l’on a :
i=d
�
σj = w(0, j) + w(i, j) xi
i=1
et :
j=C
1�
D(u, y) = D(u, σ) = (uj − σj )2
2
j=1
Selon la technique du gradient, w(i, j) doit être modifié d’une valeur ∆ij proportionnellement et
en sens inverse à la contribution du poids w(i, j) à l’erreur D(u, y). D’où la formule 10.7 donnée
ci-dessus pour la règle delta.
La règle delta est donc à la fois une généralisation de la règle d’apprentissage du perceptron
pour le cas à deux classes et une technique de minimisation par gradient de l’erreur quadratique
moyenne.
1
yj = g(σj ) =
1 + e−σj
On a alors :
∂ 1 1 ∂ ∂yj ∂σj
( (uj − yj )2 ) = ( (uj − yj )2 ) · · = (yj − uj ) yj (1 − yj ) xi
∂w(i, j) 2 2 ∂yj ∂σj ∂w(i, j)
D’où :
∆ij = α(uj − yj ) yj (1 − yj ) xi (10.8)
En effet, comme indiqué dans l’annexe 9, la fonction f répond à l’équation différentielle :
g � = g(1 − g)
340 PARTIE 3 : Apprentissage par optimisation
{
x2 ys(1) (x)
x
x3
} y u
Rappellons qu’un réseau à couches est composé d’un ensemble de neurones formels groupés
en sous-ensembles distincts (les couches) de telle sorte qu’il n’y ait aucune connexion entre deux
neurones d’une même couche7 .
À la fin de l’apprentissage, lorsque le réseau a appris à modéliser son environnement, le com-
portement souhaité du réseau est le suivant : on présente un vecteur d’entrée au réseau, celui-ci
propage vers la sortie les valeurs d’activation correspondantes (en utilisant une règle de propa-
gation), afin de générer, par l’intermédiaire des neurones de sortie, un vecteur de sortie. Celui-ci
devrait correspondre à la sortie désirée, telle qu’apprise lors de la phase d’apprentissage.
La généralisation de la règle delta aux réseaux multicouches utilise une méthode de descente
du gradient, permettant de calculer la modification des poids des connexions entre les couches
cachées (pour plus de détails, voir l’annexe 9 ou la référence [RHW86]). Afin de pouvoir calculer
le gradient de l’erreur par rapport aux poids du réseau, la fonction de sortie d’un neurone doit être
différentiable et non linéaire (sinon, on pourrait réduire le réseau à un perceptron). La fonction
la plus souvent utilisée est, comme on l’a déjà dit, la sigmoïde :
7
Une amélioration de la règle de rétropropagation permet l’introduction de cycles entre les couches, pour obtenir
des réseaux récurrents.
Chapitre 10 L’apprentissage de réseaux connexionnistes 341
1
yj = g(σj ) = (10.9)
1 + e−σj
La règle delta généralisée dicte alors le changement de poids entre le neurone i et le neurone
j de la façon suivante :
∆w(i, j) = α δj yi (10.10)
c’est-à-dire de façon proportionnelle à une mesure d’erreur δj caractéristique du neurone j et
à la valeur d’entrée notée ici8 yi . Pour les connexions aboutissant aux neurones de sortie, cette
mesure d’erreur est évidemment calculée ainsi :
δj = (uj − yj ) yj (1 − yj ) (10.11)
Le calcul de l’erreur aux unités cachées se fait ensuite récursivement par la descente du gradient.
Soit dest(j) l’ensemble des neurones auxquels j se connecte :
�
δj = yj (1 − yj ) δk w(j, k) (10.12)
k∈dest(j)
Exemple revisité. . .
Reprenons l’exemple du paragraphe 10.7 en supposant que la sortie désirée au vecteur d’en-
trée x� = (1, 1) vaille u = 0. Après modification des poids sur cet exemple, son nouveau
passage dans le réseau doit conduire à une sortie inférieure à la valeur précédente, qui était
de 0.63.
Pour le neurone formel de sortie, on a :
∆w(i, j) = α δj yi
avec :
δj = (uj − yj ) yj (1 − yj )
d’où :
∆w(3, 5) = −0.147 × 0.65 � −0.1
8
C’est en effet la sortie du neurone i.
342 PARTIE 3 : Apprentissage par optimisation
D’où :
D’où :
Dans le réseau modifié, le calcul sur le vecteur d’entrée devient par conséquent :
Neurone formel j σj yj
1
3 0.183 + 0.083 × 1 + 0.283 × 1 = 0.55 1+e0.65 � 0.63
1
4 −0.285 + −0.185 × 1 + 0.415 × 1 = −0.055 1+e−0.055 � 0.51
1
5 0.25 + 0.4 × 0.63 − 0.47 × 0.51 = 0.26 1+e0.205 � 0.56
Si on compare la valeur de sortie à celle du tableau de la section 2.1 on constate qu’elle est
passée de 0.63 avant apprentissage à 0.56 après : elle s’est rapprochée de la valeur désirée 0.
C
� �C
u ui −uj
P (X1 = u1 , . . . , XC = uC ) = yj j (1 − yj ) i=1
j=1
Au maximum de vraisemblance, chercher les paramètres qui maximisent cette quantité est équi-
valent à minimiser la fonction d’erreur entropie croisée :
C
�
E= −uj · Log(yj ) − (1 − uj ) · Log(1 − yj ) (10.13)
j=1
Il faut calculer :
∂E ∂E ∂yj ∂σj
= · ·
∂w(i, j) ∂yj ∂σj ∂w(i, j)
344 PARTIE 3 : Apprentissage par optimisation
On a :
∂E uj 1 − uj yj − u j
= − + =
∂yj yj 1 − yj yj (1 − yj )
∂yj
= yj (1 − yj )
∂σj
∂σj
= yi
∂w(i, j)
Finalement :
∂E
= (yj − uj ) · yi (10.14)
∂w(i, j)
Il ne reste plus qu’à appliquer la règle de rétropropagation du gradient de l’erreur avec cette
valeur, au lieu de la règle delta de l’équation 10.8, qui minimise la distance euclidienne entre la
sortie calculée et la sortie désirée.
Plusieurs résultats théoriques sur l’apprentissage des réseaux connexionnistes ont été obte-
nus, particulièrement sur leur pouvoir d’expression, leur complexité, ainsi que leur capacité de
généralisation. Nous donnons dans cette section quelques-uns de ces résultats.
surfaces de décision. Plusieurs résultats montrent par exemple qu’un réseau de neurones artifi-
ciels multicouche peut approximer avec une précision arbitraire n’importe quelle transformation
continue d’un espace à dimension finie vers un autre espace à dimension finie, s’il possède suffi-
samment de neurones formels cachés (voir [Hay99]). En ce sens, on dit qu’il est un approximateur
universel. Certains résultats montrent même qu’à l’exception de cas extrêmes, une seule couche
cachée est suffisante.
Il faut cependant noter que ces résultats ne fournissent aucun indice sur la méthode à utiliser
pour trouver directement les poids correspondant à l’approximation d’une fonction donnée. On ne
sait les calculer que par apprentissage. Ce résultat était connu avant la découverte de l’algorithme
de rétropropagation du gradient de l’erreur, qui a alors permis de l’utiliser en pratique.
4.2 Complexité
Les réseaux connexionnistes ayant un si grand pouvoir d’expression, il devient intéressant de
connaître les aspects de complexité reliés à ce modèle (voir [Orp92] pour une revue). Ainsi, il a
été montré le résultat suivant :
Étant donné un réseau de neurones artificiels arbitraire R et une tâche arbitraire
T devant être résolue par R, le problème consistant à décider si dans l’espace de
tous les paramètres de R (ses poids, sa structure) il existe une solution qui résout
adéquatement T , est NP-difficile.
Malgré cela, il est possible [Bau89] de trouver une solution (un ensemble de poids) pour T en
temps polynomial si on peut utiliser des algorithmes d’apprentissage constructifs9 . Il existe un
certain nombre de ces algorithmes mais aucune preuve de convergence en temps polynomial
n’existe actuellement pour eux.
D’un point de vue pratique, certaines expériences empiriques (dont [Hin89]) montrent qu’on
peut faire apprendre une tâche complexe à un réseau� de neurones
� artificiels en utilisant l’algo-
rithme de la rétropropagation de l’erreur en temps O W 3 où W représente le nombre de poids
du réseau. En effet, bien qu’il faille un temps exponentiel (sur le nombre de poids) pour obte-
nir la solution optimale, on peut souvent en pratique se contenter d’une solution sous-optimale
satisfaisante obtenue en temps polynomial.
Un des problèmes majeurs des réseaux connexionnistes est la difficulté de décider de leur ar-
chitecture. Devant une tâche à résoudre par un réseau connexionniste, l’ingénieur doit prendre
des décisions d’architecture non évidentes et pourtant très importantes : par exemple, il faut
décider du nombre de neurones cachés, du nombre de couches cachées, et de leur interconnexion.
Ceci se fait souvent de façon ad hoc ou en utilisant quelques règles heuristiques simples. Souvent
on procède en essayant diverses architectures pour un problème donné et en calculant l’erreur
de généralisation pour chacune sur un ensemble de validation. En effet, hormis une recherche
exhaustive, aucune méthode n’est connue pour déterminer l’architecture optimale pour un pro-
blème donné. Or tous les résultats théoriques sur les réseaux connexionnistes (leur puissance de
calcul ou leur faculté de généralisation) ne tiennent que si l’on utilise l’architecture idéale (ou
tout au moins suffisante et nécessaire).
9
Ayant la possibilité d’ajouter des neurones et des connexions durant l’apprentissage.
346 PARTIE 3 : Apprentissage par optimisation
Une solution à ce problème consiste à utiliser des algorithmes constructifs qui commencent avec
une architecture minimale et ajoutent des neurones et des connexions au fur et à mesure de l’ap-
prentissage. D’autres solutions utilisent plutôt une technique inverse : à partir d’une architecture
complète, ils éliminent certains neurones et/ou connexions qui semblent non essentiels.
Il a également été proposé d’utiliser des méthodes d’optimisation pour chercher l’architecture
idéale. Ainsi, plusieurs travaux font appel à des algorithmes génétiques pour optimiser l’archi-
tecture des réseaux de neurones (voir le chapitre 8).
Un autre problème tient au choix des paramètres des divers algorithmes d’apprentissage. En
effet, chaque règle d’apprentissage utilise généralement un certain nombre de paramètres pour
guider l’apprentissage. Ainsi, la règle de la rétropropagation de l’erreur est basée notamment sur
le taux d’apprentissage noté α dans ce chapitre. Ce taux varie d’une tâche à l’autre, et, encore
une fois, on utilise souvent des règles heuristiques simples pour déterminer sa valeur idéale. Dans
la même veine que pour le choix des architectures, on utilise maintenant des méthodes comme
les algorithmes génétiques pour choisir ces paramètres.
Lorsque l’on cherche à apprendre des dépendances complexes, il faut naturellement que le
système apprenant puisse les représenter, donc ait accès à un espace d’hypothèses suffisamment
expressif.
Dans le cas des réseaux connexionnistes, cela signifie grossièrement posséder suffisamment de
neurones cachés. Il existe deux approches : soit utiliser plusieurs couches en espérant que les
neurones des couches internes vont calculer les sous-dépendances utiles à la tâche, soit mettre
beaucoup de neurones sur la couche cachée. Le premier cas, sans précaution, conduit généralement
à l’obtention de piètres minima locaux, le second demande énormément de neurones cachés, et
donc un nombre encore plus grand de connexions, donc de paramètres à régler. L’apprentissage
de dépendances complexes nécessite alors le plus souvent une grande quantité d’exemples.
Pourtant ces dépendances complexes peuvent souvent se décomposer en dépendances plus
simples, mettant en jeu des corrélations locales et des relations plus globales. Il existe souvent des
invariances, par exemple en traitement d’images, ou en analyse de texte. De même qu’une fonction
booléenne complexe peut être réalisée par des circuits mettant en jeu une combinaison bien pensée
de portes logiques simples, de même on aimerait pouvoir approcher une dépendance complexe
par des réseaux connexionnistes à architecture profonde dans lesquels les couches cachées seraient
organisées de telle manière à décomposer le problème, en partant de descripteurs de bas niveau
et en les combinant progressivement en des relations plus abstraites et de plus haut niveau.
Si le concept est séduisant, le défi est de trouver comment apprendre automatiquement, en
limitant au maximum l’intervention des experts, ces réseaux connexionnistes complexes.
Les recherches sur cette question importante en sont encore à leurs débuts, et toutes les idées
des jeunes pionniers sont les bienvenues. Deux approches ont été proposées.
La première reprend l’idée des réseaux à convolution mis au point par Yann Le Cun et ses
collègues dans les années quatre-vingt-dix pour la reconnaissance des chiffres manuscrits. Une
idée essentielle pour la conception de ces réseaux est d’identifier les invariances de la tâche de
reconnaissance pour concevoir des détecteurs adaptés. Ainsi, s’il est important de découvrir un
certain type de corrélation locale n’importe où dans une image, on peut utiliser des neurones en
couche caché qui ne perçoivent qu’une sous-partie de l’image, et avoir autant de tels neurones,
Chapitre 10 L’apprentissage de réseaux connexionnistes 347
Fig. 10.15: Architecture d’un réseau connexionniste utilisé pour traiter des images de la base
NORB. L’entrée consiste en une paire d’images, dont le système extraie 8 descripteurs
de taille 92 × 92 calculés sur des imagettes 5 × 5. Les sorties de ces descripteurs sont
reprises par 8 descripteurs 23 × 23, 24 descripteurs 18 × 18, 24 descripteurs 6 × 6
et une couche de 100 neurones complètement connectés aux 5 neurones de sortie qui
donnent la distance avec les vecteurs cibles. (Repris de [BL07].)
partageant les mêmes poids et percevant chacun une sous-région de l’image. En empilant de tels
« détecteurs » dans les couches cachées, et en les combinant de manière non locale, on peut ainsi
concevoir un système très performant avec relativement peu de paramètres à régler (typiquement
quelques milliers), et qui peut être entraîné en utilisant l’algorithme de rétro-propagation de
gradient standard (voir figure 10.15).
La deuxième approche est plus générale et porte le nom de réseaux à croyance profonds (deep-
belief networks). Introduite par Hinton et ses collègues, [HOT06], elle consiste à modifier l’al-
gorithme d’apprentissage en introduisant une première étape d’apprentissage non supervisé suc-
cessivement dans chaque couche, avant d’utiliser pour finir la retro-propagation de gradient sur
les paramètres initialisés grâce à la première étape. L’idée principale de l’étape non supervisée
est d’apparier les entrées et les sorties des couches cachées successives de telle manière que les
entrées puissent être reconstruites à partir des sorties. Ce critère de reconstruction garantit ainsi
que l’essentiel de l’information est préservé après le passage par les neurones des couches cachées.
L’adaptation de l’algorithme d’apprentissage est simple et les résultats obtenus sur plusieurs
bases d’apprentissage surpassent ceux obtenus avec des réseaux connexionnistes classiques ou
avec des méthodes à noyaux (voir chapitre 14).
Globalement, la réflexion sur les réseaux connexionnistes à architecture profonde renouvelle les
questions sur l’apprentissage bien au-delà des réseaux connexionnistes. Sans préjuger des nou-
velles méthodes d’apprentissage qui verront peut-être le jour, ces réflexions valent la peine d’être
connues. Nous renvoyons le lecteur par exemple à [BL07] qui est d’une lecture très stimulante.
348 PARTIE 3 : Apprentissage par optimisation
beaucoup plus proches d’une modélisation réaliste des réseaux de neurones biologiques que
ne le sont les réseaux à couches.
L’approche maintenant dénommée Reservoir Computing a été proposée initialement à peu
près simultanément par Wolfgang Mass, sous le nom de Liquid State Machines et par Herbert
Jaeger, sous le nom de Echo State Networks. Elle est caractérisée par une innovation radicale.
L’idée est de considérer le circuit récurrent comme une partie à part et générique du réseau,
sans apprentissage, le réservoir, et de confier l’apprentissage à un réseau linéaire à une couche
prenant ses entrées en certains neurones du réservoir (voir figure 10.16).
Réservoir
Entrée
{ } Sortie
Fig. 10.16: Un réseau connexionniste à « réservoir ». L’apprentissage ne se fait que sur la couche
de sortie.
Ainsi, le signal entrant excite le système dynamique et provoque une trajectoire dans l’espace
des états possibles de ce système. La partie apprenante du réseau mesure cet état continuement
ou de temps en temps et apprend à lui associer des sorties désirées. Ainsi, la source des difficultés
rencontrées dans les réseaux récurrents classiques est évacuée, et l’apprentissage peut se faire
avec des méthodes éprouvées.
On peut considérer ces réseaux à l’aune des SVM et autres techniques utilisant une redes-
cription des entrées dans un nouvel espace permettant une détection plus aisée des régularités
recherchées. Ici, l’espace de redescription est calculé grâce au « réservoir », et si celui-ci est à
la fois assez complexe et en même temps doté de bonnes propriétés dynamiques, il peut faire
apparaître des motifs caractéristiques exploitables par le système d’apprentissage en aval, de la
même manière que la redescription grâce à l’emploi de fonctions noyau permet aux SVM de
trouver des régularités linéaires dans l’espace de redescription.
Comme cette fonction a un nombre de paramètres� a priori non � borné, on utilise souvent en
lieu et place une formalisation récursive : Φ(xt ) = f Φ(xt−1 ), xt .
De la même manière que l’on peut voir les redescriptions classiques de points d’entrées {xi }(1≤i≤m)
comme des projections sur des sous-variétés de Φ(X ), on peut voir ces redescriptions du signal
dans le cas temporel comme des projections sur des sous-variétés correspondant à des attracteurs
dynamiques.
L’ouvrage de Dreyfus et al. ([DMS+ 02], seconde édition [DMS+ 08]) est recommandé : ency-
clopédique, écrit en français et récent. Les livres de R. Golden [Gol96], C. Bishop [Bis95] et
B. Ripley [Rip96] fournissent des panoramas sur la théorie et de la pratique de ces outils. Le
chapitre 6 du livre de R. Duda, P. Hart et R. Stork [DHS01] est une remarquable introduction
théorique et pratique. Les deux livres de S. Haykin [Hay99] et [Hay08] sont originaux dans leur
point de vue et couvrent une grande partie de l’apprentissage par réseaux connexionnistes et
au-delà. Ils sont absolument à lire. On pourra aussi consulter les ouvrages suivants, intéressants
à divers titres : [Sch92], [WK91], [HKP91].
Le travail fondateur le plus souvent cité est celui de W. Mc Culloch et W. Pitt [MP43] bien
que l’apprentissage n’y soit pas réellement abordé. Encore une fois, on ne peut qu’admirer la
clairvoyance de A. Turing, en 1948, étudiant une organisation d’unités logiques élémentaires
en un ensemble au comportement complexe [Tur92]. Les travaux sur les réseaux de neurones
formels, souvent inspirés par des motivations de modélisation biologique, n’ont pas cessé depuis
cette époque jusqu’à nos jours. On citera comme étapes majeures, la description du perceptron
par Rosenblatt [Ros62] en 1962, la parution du livre de Minsky et Papert, Perceptrons, en 1969
[MP69] remarquable mais qui eut l’effet d’une douche froide sur le connexionnisme, puis en
1982, la découverte de réseaux échappant aux limites dénoncées dans [MP69], les réseaux dus au
physicien Hopfield [Hop82]. Leur effet psychologique fut considérable, libérant les esprits pour
chercher de nouveaux types de réseaux et de règles d’apprentissage.
C’est ainsi que se produisit en 1986 un tournant majeur, avec la découverte indépendante et
quasi simultanée d’un résultat important, en l’occurence, les formules de la rétropropagation de
gradient de l’erreur. Le livre de P. Werbos [Wer84] et l’article de B. Widrow [Wid94] relatent
l’historique de cette découverte et des réseaux connexionnistes en général.
Une véritable explosion de publications et d’applications très diverses a suivi et continue de nos
jours, couvrant aussi bien les améliorations des techniques d’apprentissage que leur généralisation
à des modèles plus complexes, ou leur application à des données séquentielles ou bidimension-
nelles : signaux et images. Les liens des réseaux connexionnistes avec la théorie bayésienne, les
théories de l’apprentissage et l’analyse (au sens mathématique du terme) ont aussi été éclaircis.
Les travaux de modélisation biologiques et situés dans le domaine des sciences cognitives sont
également très nombreux. L’apparition des SVM (Séparateurs à Vastes Marges) en 1995 (voir
chapitre 14) avait semblé s’accompagner du déclin des méthodes connexionnistes, mais la capa-
352 Chap.11 : Apprentissage de réseaux bayésiens
cité de ces derniers à réaliser de l’apprentissage hiérarchique et en-ligne les a remis en selle, de
même que l’étude de réseaux à neurones plus complexes, comme les spiking neurons qui laisse
espérer de nouvelles possibilités.
Résumé