Vous êtes sur la page 1sur 13

Comparaison mthodes de recherche de minimum local

Formation d'Ingnieur Matre Universit Paris Sud

Formation continue

MEMOIRE DE MATHEMATIQUES

Nom de l'auditeur : Mickal SAUVAGE


Dates : 07 juillet 2003

Libell du projet :

Comparaison de deux mthodes de recherche de minimum local : Mthode du gradient - Mthode du gradient conjugu

Nombre de pages : 13

Notes du destinataire :

Mickal SAUVAGE

Mmoire de mathmatiques

Page 1 sur 13

Comparaison mthodes de recherche de minimum local

Sommaire
INTRODUCTION ................................................................................................................................................. 3 1. LA METHODE DU GRADIENT .................................................................................................................... 4 2. LA METHODE DU GRADIENT CONJUGUE ............................................................................................. 5 3. COMPARAISON DES DEUX METHODES AVEC MATLAB................................................................... 6 3.1. DESCRIPTION DE LA FONCTION UTILISEE ....................................................................................................... 6 3.2. LE PROGRAMME POUR LA METHODE DU GRADIENT ....................................................................................... 8 3.3. LE PROGRAMME POUR LA METHODE DU GRADIENT CONJUGUE.................................................................... 10 CONCLUSIONS ................................................................................................................................................. 13

Mickal SAUVAGE

Mmoire de mathmatiques

Page 2 sur 13

Comparaison mthodes de recherche de minimum local

Introduction
La recherche d'un minimum local sur une fonction est trs utiliss pour trouver des solutions permettant de minimiser une erreur. La phase d'apprentissage supervis d'un rseau de neurones est un cas concret d'application ncessitant de faire des recherches sur le minimum d'une fonction. Dans le cas du rseau de neurone, il faut effectuer des calculs pour optimiser la valeur de chacun des points des entres de chaque neurone et la masse de calcul ncessaire peut devenir trs rapidement importante. Il est donc ncessaire d'avoir des outils de calcul qui soient les plus rapides possible. Je vais comparer deux mthodes de recherche de minimum local d'une fonction : la premire mthode va utiliser l'algorithme du gradient et la seconde, l'algorithme du gradient conjugu. Ces deux mthodes sont des mthodes itratives et nous allons comparer la vitesse avec laquelle ces mthodes convergent et le nombre d'itrations ncessaires pour trouver la solution avec une erreur dtermine.

Mickal SAUVAGE

Mmoire de mathmatiques

Page 3 sur 13

Comparaison mthodes de recherche de minimum local

1. La mthode du gradient
Cette mthode est la plus simple mettre en uvre pour trouver un minimum local sur une fonction. Comme son nom l'indique, on utilise le gradient en un point donn de courbe pour donner la direction de la descente. La distance entre le point x k et le point xk+1 est calcul en fonction de la valeur du gradient gk et d'un pas dtermin l'avance .
xk
1

xk

.g k

Le pas a une influence trs importante sur la vitesse de convergence de la mthode du gradient. Plus est grand, plus la mthode convergera rapidement. Cependant, si est trop grand il y a un risque de divergence de la suite.

Mickal SAUVAGE

Mmoire de mathmatiques

Page 4 sur 13

Comparaison mthodes de recherche de minimum local

2. La mthode du gradient conjugu


La mthode du gradient conjugu utilise, comme son nom l'indique, le gradient de la fonction pour dterminer la direction de la recherche du minimum locale. C'est une mthode itrative tout comme la mthode du gradient, mais elle utilise un algorithme pour que la direction de recherche soit optimise. Cette direction est dtermine en fonction du gradient au point Xn mais aussi en fonction du gradient du point prcdent Xn-1, c'est pour cette raison que l'on parle de gradient conjugu. Pour la premire itration, la direction choisie correspond la valeur ngative du gradient : d0 g0 Pour rduire le nombre d'itration, le point Xn+1 est choisi en trouvant le minimum de la fonction dans la direction dtermine prcdemment.
xk xk .d k

Une mthode pour trouver la valeur minimale de f(xk+1) est de calculer l'ensemble des points dcrit par l'quation ci dessus pour k [0 ; 1] avec un pas dtermin. On calcul ensuite l'ensemble des f(xk+1). On conserve finale xk+1 permettant d'obtenir le minimum de f(xk+1). La direction suivante est dtermine en fonction de la direction prcdente (conjugu de l'une par rapport l'autre). La mthode la plus courante consiste combiner la direction prcdente avec le calcul du gradient au point xk+1 pour calculer la nouvelle direction :
dk gk p k .d k
1

Il existe plusieurs versions de la mthode du gradient conjugu, elles se distinguent par la manire dont la constante pk est calcule. Voici la mthode de calcul de Fletcher-Reeves :

Pk

T g k .g k T g k 1 .g k 1

Pk reprsente alors le rapport entre la norme au carr du gradient actuel et la norme au carr du gradient prcdent. Voici la mthode de calcul de Polak-Ribire :
T g k 1 .g k T g k 1 .g k 1

Pk

Mickal SAUVAGE

Mmoire de mathmatiques

Page 5 sur 13

Comparaison mthodes de recherche de minimum local

Avec cette mthode, la constante Pk prend en compte la variation du gradient.

3. Comparaison des deux mthodes avec matlab


3.1. Description de la fonction utilise Pour comparer les deux mthodes, j'utilise une fonction drivable et disposant d'un minimum local facile calculer. Voici la fonction choisie :
f ( x, y ) ( x 2) 4 ( x 2. y ) 2

Voici la surface reprsentant cette fonction :

Voici son diagramme de courbes iso niveau :

Mickal SAUVAGE

Mmoire de mathmatiques

Page 6 sur 13

Comparaison mthodes de recherche de minimum local

Le minimum de la fonction f(x,y) = (x-2)4 + (x-2.y)2 correspond au point de coordonne (2,1). Le gradient de cette fonction ce calcul de la manire suivante :

df ( x, y) dx

4.(x 2) 3

2.(x 2. y)

df ( x, y ) dy

4.( x 2. y )

La norme du gradient ce calcul de la manire suivante :


G
2 Gx 2 Gy

Gx et Gy reprsentent la composante en x et en y du gradient G

Mickal SAUVAGE

Mmoire de mathmatiques

Page 7 sur 13

Comparaison mthodes de recherche de minimum local

3.2. Le programme pour la mthode du gradient J'ai baptis le programme utilisant la mthode du gradient Mick1_grad.m
clear all close all [x,y] = meshgrid(-2:0.1:2); hold on z = (x-2).^4 + (x-2*y).^2; % plot3(x,y,z); % affichage de la courbe mesh(x,y,z); pas = 0.01; n = 1; % On demande les coordonnes d'un point de dpart [xx(n),yy(n)]=ginput(1); zz(n) = (xx(n)-2).^4 + (xx(n)-2*yy(n)).^2; plot3(xx(n),yy(n),zz(n),'+r'); dx(n) = 4*(xx(n)-2).^3 + 2*(xx(n)-2*yy(n)); dy(n) = -4*(xx(n)-2*yy(n)); % On affiche le point de dpart % calcul de la drive par rapport x % calcul de la drive par rapport y

while sqrt(dx(n)^2 + dy(n)^2) > 0.001 % calcul du point suivant xx(n+1) = xx(n) - pas*dx(n); yy(n+1) = yy(n) - pas*dy(n); n = n + 1; zz(n) = (xx(n)-2).^4 + (xx(n)-2*yy(n)).^2; plot3(xx(n),yy(n),zz(n),'+r'); dx(n) = 4*(xx(n)-2).^3 + 2*(xx(n)-2*yy(n)); dy(n) = -4*(xx(n)-2*yy(n)); end n xx(n) yy(n) % nombre d'itrations % position du dernier point x % position du dernier point y

% On continu tant que la norme du gradient > 0.001

% On affiche le point de dpart % calcul de la drive par rapport x % calcul de la drive par rapport y

Mickal SAUVAGE

Mmoire de mathmatiques

Page 8 sur 13

Comparaison mthodes de recherche de minimum local

Voici le rsultat de la simulation avec Matlab :

Voici les paramtres de simulation : Pas rgl 0.01 Arrt de l'algorithme quand la norme du gradient est infrieur 0.001 Point de dpart = (-1,5 ; -1,5) La simulation donne les rsultats suivants : Solution trouve au point (1.9346 ; 0.9673) Nombre d'itrations = 3686 On remarque que le nombre d'itrations est important. Celui ci aurait pu tre rduit en choisissant un pas suprieur mais avec un risque de divergence de la solution trouve.

Mickal SAUVAGE

Mmoire de mathmatiques

Page 9 sur 13

Comparaison mthodes de recherche de minimum local

3.3. Le programme pour la mthode du gradient conjugu J'ai baptis le programme utilisant la mthode du gradient conjugu Mick2_grad.m. Voici le listing du programme Mick2_grad.m :
clear all close all % Constrtuction de la reprsentation de la fonction [x,y] = meshgrid(-2:0.1:2); z = (x-2).^4 + (x-2*y).^2; figure(1) surf(x,y,z) shading interp title('f(x,y) = (x-2)^4 + (x-2y)^2 en trois dimensions') figure(2) contour(x,y,z,50) title('Courbes isovaleur de la fonction f(x,y) = (x-2)^4 + (x-2y)^2') hold on clear x; % Choix du point de dpart de la mthode [x(1),x(2)]=ginput(1); % x(1) = x0 et x(2) = y0 plot(x(1),x(2),'+r') x=x'; % transformation en vecteur xinit=x go = [1,1]'; % initialisation du vecteur du gradient avec une matrice vide i = 1; while sqrt(go(1)^2 + go(2)^2) > 0.001 % Norme du gradient > 0.001 % Evaluation de la fonction et de son gradient par le biais de fonctions ddies f=(x(1)-2).^4 + (x(1)-2*x(2)).^2; g(1)= 4*(x(1)-2).^3 + 2*(x(1)-2*x(2)); % drive par rapport x g(2)= -4*(x(1)-2*x(2)); % drive par rapport y

Mickal SAUVAGE

Mmoire de mathmatiques

Page 10 sur 13

Comparaison mthodes de recherche de minimum local

if i == 1 % si premier passage g=g'; p = 1; d = 0*g; else p = g'*g/(go'*go); % Critre de descente de Fletcher-Reeves % On met la valeur du gradient sous forme d'un vecteur

%p = (g-go)'*g/(go'*go); % Critre de descente de Polak-Ribire end d = -g+p*d; % vecteur direction

% Dtermination du rel s tel que x+s*d minimise la fonction f selon la direction choisie lambda = 0:0.001:1; for j=1:length(lambda) % on gnre un tableau fn correspondant aux valeurs de la courbes suivant la direction donne xn = x + lambda(j)*d; % calcul des points qui vont suivre la direction fn(j)=(xn(1)-2).^4 + (xn(1)-2*xn(2)).^2; % valeur de la fonction sur ces points end % Rcupration de la valeur minimale ainsi que de l'indice correspondant [aa ind]=min(fn); % aa = valeur minimum, ind = indice pour laquel la valeur est minimale

% On rajuste x selon la valeur de lambda trouve x = x + lambda(ind)*d; % On attribue go la valeur courante de g avant rvaluation de ce dernier go = g; plot(x(1),x(2),'+r') hold on i = i +1; end x i plot(x(1),x(2),'o') hold off % On affiche la solution % On affiche le nombre d'itrations % On incrmente le compteur d'itration

Mickal SAUVAGE

Mmoire de mathmatiques

Page 11 sur 13

Comparaison mthodes de recherche de minimum local

Voici le rsultat de la simulation avec matlab :

Les paramtres de simulation taient identique par rapport ceux utiliss avec l'algorithme du gradient soit : Arrt de l'algorithme quand la norme du gradient est infrieur 0.001 Point de dpart = (-1,5 ; -1,5) La simulation donne les rsultats suivants : Solution trouve au point (1.9634 ; 0.9816) Nombre d'itrations = 40 On remarque immdiatement la rapidit de convergence de l'algorithme du gradient conjugu par rapport l'algorithme du gradient simple. Le nombre d'itrations est beaucoup plus faible.

Mickal SAUVAGE

Mmoire de mathmatiques

Page 12 sur 13

Comparaison mthodes de recherche de minimum local

Conclusions
Nous venons de voir la supriorit de l'algorithme du gradient conjugu par rapport l'algorithme du gradient simple au niveau de la rapidit de convergence et du nombre d'itrations ncessaires pour trouver la solution. De plus, l'algorithme du gradient conjugu n'est pas beaucoup plus compliqu et ne ncessite donc pas beaucoup plus de ressource machine que l'algorithme du gradient simple et les temps de calcul sont du coup fortement rduits. Dans le programme j'ai intgr deux critres de descente : le critre de FletcherReeves et celui de Polak-Ribire. Ces deux critres donnent des rsultats a peu prs similaires.

Mickal SAUVAGE

Mmoire de mathmatiques

Page 13 sur 13

Vous aimerez peut-être aussi