Contributions pour les réseau de neurones
Algorithme de construction incrémentale du réseau de neurones
L’un des points de départ de nos travaux a consisté en la réalisation d’un état de l’art des différentes techniques d’apprentissage des réseaux neuronaux. Ce travail a eu pour but d’identifier l’algorithme d’apprentissage le plus efficace dans le cadre de notre étude liée à la radiothérapie externe. La solution que nous avons retenue consiste à associer un algorithme d’apprentissage de type RPROP (voir 2.4.1) avec une architecture de réseau du second ordre de type HPU (voir 2.3.2). Cette association d’optimisation nous a permis de mettre au point un algorithme d’apprentissage efficace et rapide mais qui ne nous permet pas de garantir que le réseau final obtenu possède un nombre minimal de neurones. Comme on peut le voir sur les différentes représentations des courbes de dépôt de doses, les caractéristiques des courbes servant de référence à l’apprentissage sont de posséder des zones relativement constantes encadrées par des zones à fortes pentes. Nous nous sommes attachés à mettre au point un algorithme de construction incrémentale. Cet algorithme a pour objectif de conserver les optimisations précédentes tout en limitant le nombre de neurones sur la couche cachée du réseau. Le principe de notre algorithme, schématisé à la figure 3.1 et détaillé de manière complète dans l’algorithme 3.1, est de réaliser un apprentissage de type RPROP sur une architecture de réseau de type HPU. Le nombre d’entrées, comme de sorties, est défini en fonction des données d’apprentissage. Le nombre de neurones sur la couche cachée (NCC) est, quant à lui, choisi en fonction de l’expérience mais toujours le plus petit possible. Ce nombre de neurones sur la couche cachée évoluera au cours de l’apprentissage. Une fois le réseau construit, l’apprentissage proprement dit est lancé. Il s’agit de présenter au réseau les différents ensembles du domaine d’apprentissage et de corriger les différents poids reliant les neurones entre eux de manière à minimiser l’erreur sur le neurone de sortie. A` partir du moment o`u la diminution de l’erreur de sortie stagne et dans le cas o`u l’erreur finale obtenue (Ecourant) est supérieure à celle décidée (Précision), un nouveau neurone est ajouté sur la couche cachée. Ce nouveau neurone est inséré dans le réseau avec des poids nuls afin de ne pas apporter d’erreur supplémentaire, comme il est illustré dans la figure 3.2. Ensuite, l’apprentissage est de nouveau lancé jusqu’à la prochaine période de stagnation. Ce processus d’apprentissage (ApprentissageRprop()) et d’ajouts de neurones sur la couche cachée (ajoutNeuroneCC()) alterne tant que l’erreur voulue n’est pas atteinte ou qu’un ajout de neurones sur la couche cachée n’améliore plus le résultat du réseau de neurones. Comme les autres algorithmes d’apprentissage de réseaux de neurones, celui-ci incorpore un mécanisme permettant de contrôler que le réseau n’entre pas dans un état de sur-apprentissage. De même, une limite maximum (NCCmax) pour le nombre de neurones possible sur la couche cachée a été incluse dans le processus d’apprentissage afin de limiter la taille du réseau de neurones, et ainsi de limiter le temps d’apprentissage dans les cas o`u la convergence est très lente.
La parallélisation
Le principe utilisé pour réaliser la parallélisation de l’algorithme d’apprentissage est le suivant : puisque l’apprentissage d’un domaine de données restreint est pleinement satisfaisant et puisque l’apprentissage d’un domaine complet nécessite un temps trop important, il peut être intéressant de décomposer le domaine d’apprentissage en sousdomaines. Le principe est ensuite de construire un réseau de neurones pour chacun des sousdomaines composant l’ensemble d’apprentissage. Il faut ensuite concevoir un mécanisme permettant d’utiliser cet ensemble de sous-réseaux de neurones de manière à obtenir un méta-réseau pour le domaine complet.
Principe de décomposition du domaine
Le principe de décomposition du domaine d’apprentissage est élémentaire. Dans cette première version de l’algorithme d’apprentissage parallèle, il est possible de construire des ensembles d’apprentissage en décomposant de manière équivalente les différentes entrées choisies. Ce choix de découpage, s’il s’avère simpliste à première vue, a été effectué en rapport à notre application. La plupart des paramètres de notre application ont un domaine assez restreint et seuls les paramètres liés à la description de l’environnement recouvrent un domaine suffisamment étendu pour être découpés. De plus, comme la grille de discrétisation de notre environnement est construite de manière uniforme, un découpage régulier permet de construire des ensembles de données d’apprentissage de tailles équivalentes. La figure 3.3 présente neuf sous-ensembles d’apprentissage qui, regroupés, représentent la courbe de dépôt de doses dans un volume homogène composé d’eau. Le premier intérêt de la décomposition de domaine est de réaliser des apprentissages avec des ensembles de taille relativement restreinte. Un autre intérêt, non négligeable, est que la complexité de chaque sous-domaine est très inférieure à celle du domaine complet, ce qui rend leur apprentissage beaucoup moins complexe.
Rôle et importance du recouvrement
L’inconvénient apporté par ce principe de construire n sous-réseaux de neurones à la place d’un réseau unique vient de la gestion des interfaces entre chaque sous-réseau. Si les réseaux de neurones ont la capacité de généralisation sur un domaine d’apprentissage fini, ils n’ont pas la même précision sur l’ensemble du domaine. Précisément, les zones se trouvant en limite de domaine présentent une erreur supérieure à la moyenne du réseau. Le fait de multiplier le nombre de réseaux augmente les zones de fortes erreurs lors de la généralisation, et donc, nuit à la précision générale. Le principe mis en place pour diminuer ce nouvel apport d’erreur est d’augmenter la taille du domaine d’apprentissage lié à chaque sous-réseau. Ainsi, chaque sous-réseau a un domaine d’apprentissage supérieur à son domaine d’application et les zones à fort pourcentage d’erreur ne sont pas utilisées dans le calcul du réseau global. La figure 3.4 présente la mise en place du recouvrement pour le sous-domaine central de la décomposition présentée à la figure 3.3. Le taux de recouvrement doit être choisi à bon escient afin de minimiser l’erreur aux jointures des sous-réseaux tout en limitant au maximum la zone de recouvrement. Cela est important de minimiser l’augmentation du temps d’apprentissage due à l’augmentation de la taille du domaine d’apprentissage.