Modélisation par optimisation sans contrainte
La modélisation par apprentissage consiste à trouver le jeu de paramètres qui conduit à la meilleure approximation possible de la fonction de régression, à partir des couples entrées / sorties constituant l’ensemble d’apprentissage. Le plus souvent, ces couples sont constitués d’un ensemble de vecteurs de variables (descripteurs dans le cas de molécules) {xi ,i = 1…N}, et d’un ensemble de mesures de la grandeur à modéliser {y(xi ),i = 1…N}. La détermination des valeurs de ces paramètres nécessite la mise en œuvre de méthodes d’optimisation qui diffèrent selon le type de modèle choisi. Nous allons tout d’abord présenter les principaux types de modèles faisant appel à l’optimisation paramétrique, sans contrainte, qui consiste à déterminer les paramètres optimaux par minimisation directe d’une fonction de coût par rapport aux paramètres du modèle.
Réseaux de neurones
Les réseaux de neurones formels [38] étaient, à l’origine, une tentative de modélisation mathématique des systèmes nerveux, initiée dès 1943 par McCulloch et Pitts [39]. Un neurone formel est une fonction non linéaire paramétrée, à valeurs bornées, de variables réelles. Le plus souvent, les neurones formels réalisent une combinaison linéaire des entrées reçues, puis appliquent à cette valeur une « fonction d’activation » f, généralement non linéaire. La valeur obtenue y est la sortie du neurone. Un neurone formel est ainsi représenté sur la Figure 2.1. Fig.2.1 : Représentation d’un neurone formel Les sont les variables, ou entrées du neurone, et les sont les paramètres, également appelés synapses ou poids. Le paramètre θ0 est le paramètre associé à une entrée fixée à 1, appelée biais. L’équation du neurone est donc : (1) Les fonctions d’activation les plus couramment utilisées sont la fonction tangente hyperbolique, la fonction sigmoïde et la fonction identité. Les neurones seuls réalisent des fonctions assez simples, et c’est leurs compositions qui permettent de construire des fonctions aux propriétés particulièrement intéressantes. On appelle ainsi réseau de neurones une composition de fonctions « neurones » définies cidessus. La Figure 2.2 représente un réseau de neurones non bouclé, organisé en couches (perceptron multicouche), qui comporte Ne variables, une couche de Nc neurones cachés, et Ns neurones de sortie. Fig.2.2 : Représentation d’un réseau de neurones À chaque connexion est associé un paramètre. Les sorties du réseau sont donc des fonctions non-linéaires de ses variables et de ses paramètres. Le nombre de degrés de liberté, c’est-àdire de paramètres ajustables, dépend du nombre de neurones de la couche cachée ; il est donc possible de faire varier la complexité du réseau en augmentant ou en diminuant le nombre de neurones cachés.
Propriétés des réseaux de neurones
Les réseaux de neurones ont pour but de modéliser des processus, à partir d’exemples de couples entrées / sorties. Ils ont la propriété d’approximation universelle : un réseau de neurones comportant un nombre fini de neurones cachés, de même fonction d’activation, et un neurone de sortie linéaire, est capable d’approcher uniformément, avec une précision arbitraire, toute fonction bornée suffisamment régulière, sur un domaine fini de l’espace de ses variables. De plus, il s’agit d’approximateurs parcimonieux : une approximation par un réseau de neurones nécessite en général moins de paramètres que les approximateurs usuels. Le nombre de paramètres nécessaires pour obtenir une précision donnée augmente en effet linéairement avec le nombre de variables pour un réseau de neurones, alors qu’il croît exponentiellement pour un modèle linéaire par rapport aux paramètres. Cette propriété est très importante, car les réseaux de neurones demandent de ce fait moins d’exemples que d’autres approximateurs pour l’apprentissage.
Apprentissage des réseaux de neurones
Considérons un ensemble d’apprentissage, constitué de N couples entrées / sorties, c’està- dire d’un ensemble de variables {x i ,i = 1…N} et d’un ensemble de mesures de la grandeur à modéliser {y (x i ),i = 1…N}. Pour une complexité donnée (le choix de cette complexité est étudié dans la section 2.2.2 de ce chapitre), l’apprentissage s’effectue par minimisation de la fonction de coût des moindres carrés, définie par : (2) La minimisation de cette fonction s’effectue par une descente de gradient. Cet algorithme a pour but de converger, de manière itérative, vers un minimum de la fonction de coût, à partir de valeurs initiales des poids aléatoires. À chaque étape, le gradient de la fonction est calculé, à l’aide de l’algorithme de rétropropagation. Puis les paramètres sont modifiés en fonction de ce gradient, dans la direction de la plus forte pente, vers un minimum local de J. Cette descente peut être effectuée suivant plusieurs méthodes : gradient simple ou méthodes du second ordre, dérivées de la méthode de Newton. Les méthodes du second ordre, généralement plus efficaces, sont les plus utilisées. La procédure de minimisation est arrêtée lorsqu’un critère est satisfait : le nombre maximal d’itérations est atteint, la variation du module du vecteur des paramètres ou du gradient de la fonction de coût est trop faible…