• Aucun résultat trouvé

2.2 L’apprentissage artificiel

2.2.1 Apprentissage supervisé

2.2.1.5 Réseaux de neurones artificiels

Introduits pour la première fois par McCulloch et Pitts 1943, les réseaux de neurones (parfois appelés réseaux connexionnistes) sont un des piliers de l’intelligence artificielle et de l’apprentissage automatique. Étant très étudiés et présents dans de nombreuses applications, nous nous limitons ici à leur utilisation en apprentissage supervisé, en insistant particulière- ment sur une forme particulière que sont les perceptrons. Ce type de réseau, d’abord proposé par Rosenblatt 1957 puis étendu à une architecture multi-couche (Fiesler 1996), est en effet bien adapté aux problèmes de classification typiques de l’apprentissage supervisé.

Figure 2.8 – Modèle d’un neurone formel.

La figure 2.8 représente l’unité de base du traitement de l’information dans un réseau connexionniste : le neurone formel. Celui-ci dispose d’un ensemble d’entrées appelé source et d’une sortie. Il est représenté par son état σi (i étant l’indice du neurone dans le réseau) et par

sa fonction de sortie g avec laquelle il calcule sa valeur de sortie yi :

yi =g(σi) (2.5)

Le plus souvent, la fonction g est soit la fonction signe, soit une fonction sigmoïde (c’est-à-dire une fonction en forme de s), de formule :

g(x) = 1

1+e−λx (2.6)

Chaque entrée j d’un neurone i est associée à un poids ωji. La valeur de σi est calculée à

partir des d valeurs xj transmises sur les entrées et de leur poids associé ωji, en général avec

la formule simple : σi = d

j=1 ωjixj (2.7)

Toutes les architectures sont imaginables selon la tâche que l’on demande au réseau. Nous nous intéressons ici aux perceptrons multicouches dans lesquels les neurones formels se classent en trois catégories :

– Les neurones d’entrées servent à transmettre les données d’entrées (les exemples de l’échantillon d’apprentissage aussi bien que les futurs exemples à classer). Dans ce cas particulier, σi = xi où xi est la composante d’indice i du vecteur de données x.

– En bout de chaîne, les neurones de sortie sont ceux qui fournissent l’hypothèse d’appren- tissage. Chaque neurone de sortie correspond à une classe.

– Les neurones cachés sont exclusivement connectés à d’autres neurones et non aux en- trées/sorties du réseau. Ils effectuent des traitements intermédiaires.

Les perceptrons sont construits selon la logique du feed-forward, c’est-à-dire que l’information ne se déplace que dans un sens, des neurones d’entrée vers les neurones cachés puis vers les neurones de sortie. Ils sont ainsi constitués en couches successives (couche d’entrée, couches cachées et couche de sortie) dont chaque élément est connecté à tous les éléments de la couche suivante et uniquement à ceux-là. Les neurones d’entrée sont activés en recevant chacun une composante du vecteur x (la donnée d’entrée). Ils effectuent le calcul de leur valeur de sortie (équations 2.5 et 2.7), puis le résultat est transmis à la première couche cachée qui fait de même, et ainsi de suite jusqu’à arriver à la couche de sortie. Le résultat est alors la classe correspondant au neurone de sortie ayant la valeur de sortie la plus grande. Le nombre de couches cachées et de neurones dans ces couches est à définir par le concepteur et influera sur la complexité des frontières qui seront trouvées par le réseau.

Figure 2.9 – Exemple de perceptron à une couche cachée.

Un exemple simple d’un tel réseau est donné par la figure 2.9. Les entrées sont représentées par des carrés et les neurones par des cercles (bleu pour les entrées, gris pour les cachés et jaune pour les sorties). Il s’agit d’un réseau à une couche cachée pour un problème à trois classes avec des données de dimension 4.

Seul, un réseau de neurones n’est pas capable d’apprentissage. Il faut l’agrémenter d’un mécanisme de rétropropagation de l’erreur entre sortie désirée et sortie calculée qui lui permette d’ajuster le poids des connexions, et donc d’apprendre la fonction qu’il doit exécuter (Rumelhart, Hinton et Williams 1986). Les données de l’échantillon d’apprentissage sont passées séquentiellement au réseau qui va ajuster ses poids à chaque passage. Pour permettre

au réseau de converger, il faut répéter ce processus un grand nombre de fois (en général une centaine de passages pour chaque exemple). L’ajustement des poids est dicté par ce que l’on appelle la règle delta, qui exprime la modification à appliquer au poids de la liaison entre le neurone i et le neurone j :

∆ωij = αδjyi

où yi est la sortie du neurone i (une des entrées du neurone j), α est un coefficient positif entre

0 et 1, et δj est une valeur qui dépend de l’erreur. Pour un neurone de sortie, elle s’exprime

de la manière suivante (en supposant que la fonction g choisie est une sigmoïde paramétrée avec λ=1) :

δj = (uj−yj)yj(1−yj)

où uj est la sortie désirée (correspondant à l’étiquette de l’exemple passé en entrée du réseau),

et yj la sortie calculée. On obtient récursivement la valeur de δ pour les neurones cachés : δj =yj(1−yj)

k∈dest(j)

δkωjk

où dest(j)est l’ensemble des neurones recevant la sortie de j. Le calcul de δ provient direc- tement de la dérivation de la fonction de sortie des neurones. C’est pourquoi cette fonction doit être différentiable et non linéaire. En outre, on remarque que l’ajustement des poids d’une couche n’est possible que si celui de la couche inférieure a été effectué. Cette méthode d’ajustement est ainsi appelée règle de rétropropagation du gradient de l’erreur.

L’apprentissage de réseaux connexionnistes multicouches donne de bons résultats malgré une certaine lenteur de l’apprentissage. Un des problèmes ouverts concerne l’arrêt de l’ap- prentissage puisque le réseau ne se stabilise jamais complètement. La solution apportée est généralement l’utilisation d’un ensemble d’exemples de validation. Un autre problème pro- vient de l’initialisation des poids, certaines conditions initiales pouvant mener à un minimum local.

D’autres types de réseaux sont possibles, notamment ceux présentant des cycles. On parle alors de réseaux connexionnistes récurrents. Cependant de tels réseaux sont difficiles à com- prendre et trouver une règle permettant d’ajuster les poids pour parvenir à un apprentissage devient ardu. Parmi ceux utilisés en mode supervisé citons les réseaux connexionnistes à réservoir (reservoir computing, Lukoševi ˇcius et Jaeger 2009). Découverts simultanément sous les appellations différentes de Echo State Networks (Jaeger 2001) et Liquid States Machines (Maass, Natschläger et Markram 2002) l’idée derrière ce type de réseaux est de regrouper la composante récurrente (celle présentant des cycles) dans une partie à part du réseau, le réservoir. L’apprentissage est alors uniquement effectué sur un réseau linéaire à une couche dont les entrées sont des neurones choisis dans le réservoir. Cela se rapproche de l’idée de redescription des données d’entrées que l’on a vue avec les SVM (voir 2.2.1.3). Cette approche est encore récente et peu explorée. Cependant, certaines caractéristiques nécessaires aux réser- voirs semblent se détacher. Ils doivent être suffisamment grands et posséder des connexions clairsemées pour pouvoir présenter une dynamique riche. Cela signifie des réservoirs de dizaines de milliers de neurones avec un faible taux de connexion (inférieur à 20%) dont

les poids sont tirés aléatoirement. Néanmoins, il reste encore à comprendre comment mieux adapter les réservoirs aux situations d’apprentissage concrètes.

Cela nous amène à une question cruciale des réseaux de neurones artificiels : comment choisir l’architecture d’un réseau ? Une réponse provient de l’utilisation des algorithmes génétiques (voir 2.2.1.4) avec la neuro-évolution. Il s’agit de représenter un réseau de neurones (aussi bien sa topologie que ses poids) sous la forme d’un génotype et de le faire évoluer jus- qu’à arriver à une solution acceptable. Il existe plusieurs techniques qui diffèrent notamment par leur méthode d’encodage des réseaux en gènes et par la variante d’algorithme génétique utilisée et qui partagent leur coût très important (Floreano, Dürr et Mattiussi 2008).

Les réseaux de neurones sont encore très étudiés, et si les classiques multicouches semblent avoir livré la plus grande partie de leurs secrets, les réseaux récurrents sont encore à défricher. De manière générale, les réseaux connexionnistes donnent de bons résultats, mais sont limités par le temps que nécessite l’apprentissage ainsi que par la difficulté que représente leur mise en œuvre sur un problème particulier (choix de la topologie, etc). Néanmoins ils pré- sentent l’intérêt de promouvoir l’idée qu’un ensemble d’entités simples mais judicieusement connectées entre elles peuvent accomplir des tâches complexes. Enfin, les réseaux de neurones sont souvent considérés comme un cas particulier des réseaux bayésiens que nous présentons dans la prochaine section (Griffiths et Yuille 2008).