700 likes | 958 Views
Les réseaux de neurones (artificiels = ANN). J.Schwindling CEA Saclay. Introduction. Introduits dans notre domaine il y a juste 20 ans Pendant ~ 10 ans, souvent considérés avec méfiance (boîte noire) Mieux compris (et utilisés) depuis 10 ans
E N D
Les réseaux de neurones(artificiels = ANN) J.Schwindling CEA Saclay
Introduction • Introduits dans notre domaine il y a juste 20 ans • Pendant ~ 10 ans, souvent considérés avec méfiance (boîte noire) • Mieux compris (et utilisés) depuis 10 ans • De nombreuses applications des réseaux de neurones dans notre domaine • http://www.slac.stanford.edu/spires/find/hep/wwwcitesummary?rawcmd=FIND+T+NEURAL+NETWORK&FORMAT=www&SEQUENCE=ds%28d%29 • http://cdsweb.cern.ch/search?cc=Articles+%26+Preprints&ln=fr&jrec=11&p=neural+network
IEEE Transactions on Neural Networks 1995 - 1998 Avertissement • Ce cours ne parlera que d’un type d’ANN: le perceptron multi-couches (MLP = Multi-Layer Perceptron) • Simple… mais permet de résoudre de nombreux problèmes • Le plus utilisé (je crois) • … le seul que je connaisse
Les deux visions des MLP • La vision neurobiologique: • Historiquement à l’origine des ANN • Souvent la seule décrite dans les livres / articles • Parfois utile comme « image » du fonctionnement d’un ANN • La vision mathématique: • Assez simple • Beaucoup plus précise • Permet de répondre à un certain nombre de questions • Pour chacune de ces visions, je décrirai: • Ce qu’est un MLP • Ce qu’est l’ apprentissage • Conséquences / applications
Vrai ou faux ? • Les MLP sont utilisés pour la classification de données • La sortie d’un MLP est binaire (0 / 1) • Pour certains problèmes, il est nécessaire d’utiliser 2 couches cachées • Un MLP est entraîné par la méthode de rétro-propagation des erreurs Incomplet Faux Faux Charabia
Pour ceux qui veulent essayer… • … les exemples (simples) montrés dans ce cours sont disponibles dans /afs/cern.ch/user/s/schwind/public/sos2008/cours_mlp.tgz (12 Mo) • Définir le chemin vers root (cf source setup.csh dans cours/ ) • Dans chaque répertoire, compiler avec gmake • Ils utilisent MLPfit comme librairie MLP et root pour la partie graphique • On peut probablement utiliser aussi TMultiLayerPerceptron dans root directement • Les transparents du cours + les films sont dans cours.zip
Lectures conseillées • Neural Networks for Pattern Recognition Christopher M. Bishop Clarendon Press Oxford (1995) • Practical Methods of Optimization R.Fletcher 2nd edition, Wiley (1987) • Sur le web: ftp://ftp.sas.com/pub/neural/FAQ.html
Si somme < 0: 0 Sinon : 1 x * +1 y * +1 x + y -2 1 * -2 entrées somme sortie poids Qu’est-ce qu’un réseau de neurones artificiel ? W.S. McCulloch & W. Pitts (1943). “A logical calculus of the ideas immanent in nervous activity”, Bulletin of Mathematical Biophysics, 5, 115-137. • Ensemble d’unités de calcul simples (les neurones) reliées de façon complexe (cerveau humain 1011 neurones, 104 connexions par neurone) • Imaginés dans les années 40 (Mac Culloch et Pitts, Turing, …) • Comprendre comment le cerveau peut réaliser certaines tâches qu’un ordinateur à du mal à réaliser • Un modèle simple de neurone peut réaliser des fonctions logiques de base (ET, OU, NON)
j wij i k x1 wjk xn xk = w0k + Sjwjkyj yk = A(xk) Le perceptron multi-couches Couche d’entrée Couche de sortie Couche(s) cachée(s) • Neurones organisés en couches • 0, 1, 2… couches cachées • Réseau n1 – n2 – n3 • Information se propage dans un seul sens (« feed-forward ») • La fonction A(x) (fonction d’activation) est • linéaire ou non pour le (ou les) neurone(s) de la couche de sortie • non-linéaire pour les neurones cachés, de type 1/(1+e-x) (« sigmoïde ») • Les paramètres w s’appellent les poids (« weight ») • y = mlp(x, w)
La détermination des poids w • Les paramètres w sont déterminés de façon itérative durant une phase d’apprentissage afin de résoudre un problème donné • Méthode: • Boucler sur les exemples d’un lot d’apprentissage (= 1 époque) • Comparer pour chaque exemple la sortie du réseau et la sortie désirée (« apprentissage supervisé ») • Modifier après chaque exemple les poids du réseau (cf transparent suivant) • Recommencer en 1 « plusieurs fois » • Après la phase d’apprentissage, le réseau doit être capable de généraliser (donner une réponse correcte sur un exemple nouveau)
Modifier les poids du réseau • La méthode pour modifier les poids du réseau est (malheureusement) souvent appelée « méthode de la rétropropagation de l’erreur » • Sans doute dû à Learning representations by back-propagating errors, D.E.Rumelhart et al., Nature vol. 323 (1986), p. 533
j k i wij wjk yk = A(xk) xk = Sjwjkyj dkwjk dj wij dk dj wij = wij – hdj yi La rétropropagation de l’erreur 1.Présenter un exemple au réseau, calculer la sortie yk, comparer à la réponse attendue dk dk = A’(xk)(yk – dk) Poids initiaux aléatoires petits autour de 0 (dans nos exemples uniformes entre -0.5 et 0.5) 2. Calculer dj = A’(xj) Skdk wjk « Rétropropagation de l’erreur » Paramètre d’apprentissage < 1, à optimiser selon le problème 3. Modifier les poids selon la formule: wijt+1 = wijt – hdj yi • P.Werbos, thèse de l’université de Harvard (1974), publiée dans • The Roots of Backpropagation, Wiley-IEEE (1994) • Learning representations by back-propagating errors • D.E.Rumelhart et al., Nature vol. 323 (1986), p. 533 • Learning processes in an assymetric threshold network • Y. le Cun, Disordered Systems and Biological Organization, • Springer Verlag, Les Houches, France (1986), p. 233
1 0 0 1 Le perceptron multi-couches ..sans couche cachée… 1 • F. Rosenblatt (1960) • La surface w0 + Siwijxi = 0 est un hyperplan dans l’espace des n variables d’entrée le réseau réalise donc une séparation linéaire discrimante • Remarques: • Le vecteur w = (w1, …, wn) est orthogonal à l’hyperplan • La distance de l’hyperplan à l’origine est – w0 / ||w|| • Un réseau sans couche cachée ne peut donc pas résoudre des problèmes non linéairement séparables (ex: xor) w1 : x = w0 + Siwixi y = A(x) i wi : wn n Vecteur w = (w1, … wn) x2 Hyperplan w0 + Siwijxi = 0 x1 cours/linear
Classification dans plusieurs catégories i • Dans le cas où l’on souhaite classer des événements dans plusieurs catégories K: • K neurones de sortie, dont la réponse est yk • On entraîne le réseau à répondre yk = 1 si l’exemple appartient à la catégorie k, 0 sinon • Après entraînement du réseau, on associe à un événement la classe du neurone qui donne la plus grande sortie • Dans le cas d’un réseau sans couche cachée, on peut montrer que le réseau divise l’espace en k régions convexes: yk(x) = a yk(xA) + (1-a) yk(xB) > yj(x) pout tout j ≠ k • Rq: en réalité K-1 neurones sont suffisants k wik Rj Rk xA xB x = a xA + (1-a) xB avec 0 ≤ a ≤ 1
Classification de données (la vision traditionnelle) • Chaque neurone de la 1ere couche cachée sépare l’espace des variable par un hyperplan • Les neurones de la (ou des) couche(s) suivante(s) réalisent une fonction logique quelconque de ces ½ espaces • Exemple 1: reproduction de 2 coupures simples • Réseau 2-10-1, 2000 exemples • Mauvaise classification (coupure à 0.5) = 0.4% (dépend de la taille du réseau, du nombre d’exemples, de la durée de l’apprentissage) cours/classify_square
Exemple du « xor » cours/xor 100 exemples, 2-3-1 100 exemples, 2-5-1 Courbe mlp(x, w) = 0.5 (« decision boundary ») Un très petit réseau réalise une assez bonne séparation du petit lot d’exemples Trop de paramètres, trop peu d’exemples des zones où le réseau se trompe
Exemple du xor (2) 1000 exemples, 2-5-1 1000 exemples, 2-10-1 …solution: augmenter le nombre d’exemples en peuplant au mieux l’espace des variables …puis augmenter la taille du réseau.
Un autre exemple cours/classify_square • Avec un réseau 2-20-1, taux d’erreur = 2.5%
Un danger: le sur-apprentissage • Apparaît lorsqu’il y a trop de paramètres • Attention: • Il peut ne pas y avoir sur-apprentissage même si le nombre de paramètres est > nombre d’exemples • il peut y avoir sur-apprentissage même si le nombre d’exemples est > nombre de paramètres • Solutions: • Augmenter le nombre d’exemples • Tester la performance du réseau sur un lot indépendant (lot de test) Modèle trop simple Modèle correct Sur-apprentissage Sp(mlp(xp,w) – dp)2 Lot de test Lot d’apprentissage
Un exemple grandeur nature: un réseau qui apprend à lire • Reconnaissance de chiffres manuscrits • Base de données de 60000 + 10000 chiffres manuscrits (taille 28 x 28 pixels) disponible sur: http://yann.lecun.com/exdb/mnist/ • Entrées = 784 pixels, valeurs entre 0 et 255 (ramenées entre 0 et 1 en entrée du réseau) • Classification dans 10 catégories 10 neurones de sortie cours/digits
Résultats Taux d’erreur (%) • Exemple: réseau 784 – 300 – 10 ~ 238000 paramètres ! • Taux d’erreur: • On attribue à chaque exemple de test la classe du neurone de sortie qui donne la plus grande valeur • Taux d’erreur ~ 3.6% après 50 époques (~ 2.5 heures) • Erreurs sur des cas difficiles, mais aussi sur des exemples faciles… 3.6 (%) Des exemples de chiffres mal classés
Gradient-Based Learning Applied to Document Recognition Intelligent Signal Processing, 306-351, IEEE Press, 2001 Y. LeCun, L. Bottou, Y. Bengio and P. Haffner http://yann.lecun.com/exdb/publis/index.html Résultats (2) • Classification linéaire: taux d’erreur = 12% • MLP: 2.5 – 5% • Réseaux spécifiques (utilisent le caractère 2d du problème): 0.7 – 1% Remarque: ce genre de techniques est utilisé par les banques pour la lecture automatique des chèques, la poste pour la lecture des adresses, …
En résumé • Un perceptron multi-couches peut être entraîné à « reconnaître » des formes (écriture manuscrite, signal / bruit de fond, …) • Il sélectionne un sous-espace de l’espace des variables par combinaison logique de demi-espaces • Les poids sont fixés de façon itérative pendant la phase d’apprentissage
j wij i x1 wjk k xn yk = A(xk) xk = w0 + Sjwjkyj Qu’est-ce qu’un perceptron multi-couches ? • Un MLP avec une couche cachée et un neurone de sortie linéaire est une combinaison linéaire de fonctions sigmoïdes • Théorème: toute fonction continue de Rn R peut être approximée, à une précision quelconque, par une combinaison linéaire de sigmoïdes • Remarques: • Généralisation à Rn Rm immédiate • Vrai avec toute fonction croissante bornée (« squashing function ») vous pouvez utiliser atan, tanh si vous préférez • Ne dit pas combien de neurones sont nécessaires • Une couche cachée suffisante • Justifie d’utiliser un neurone de sortie linéaire Multilayer Feedforward Networks are Universal Approximators K.Hornik et al., Neural Networks, Vol. 2, pp 359-366 (1989)
Noir: f(x) = sin(x)/x Bleu: mlp(x) Rouge: 10 * (mlp(x) – f(x)) Exemple de sin(x)/x • Approximation de la fonction f(x) = sin(x)/x par un réseau 1-6-1 dans le domaine 0 – 20 • Lot d’apprentissage = 100 points équidistants, lot de test = 100 points décalés des précédents • On constate que: • L’ajustement commence par le plus haut pic (le réseau « apprend » d’abord le trait le plus caractéristique) • Il y a des paliers dans l’apprentissage (« ravins » dans la fonction d’erreur) cours/fun1d
Application: mesure de la position des photons dans ATLAS • Mesure de la position des photons dans le calorimètre électromagnétique par barycentre de l’énergie déposée dans 3x3 cellules • Taille finie des cellules la position reconstruite est biaisée vers le centre des cellules forme en « S » (S-shapes) • La forme exacte des S-shapes dépend de la position dans le détecteur et de la profondeur de la gerbe f(h*, h, p) h
Mesure de la position des photons dans ATLAS: résultats • Réseau ~ 3-10-1 entraîné avec quelques milliers de photons simulés à différents h • La résolution en position obtenue est environ 10-15% meilleure que les corrections « manuelles »
Et la classification de données ? • Préliminaire: • On a déjà vu (fit des s-shapes) qu’un réseau approxime la fonction f(x) = <yi>(x) • Démonstration: Si(mlp(xi) – yi)2 = Si(mlp(xi) - <yi> + <yi> - yi)2 = Si(mlp(xi) - <yi>)2 + Si(<yi> - yi) 2 + 2 Si(mlp(xi) - <yi>)(<yi> - yi) • Exemple: • Exemples = 200 points sin(x)/x + rand(-0.05, +0.05) • Variance = 0.159 • Test: 200 points sans smearing le réseau apprend bien la fonction sous-jacente Lot d’apprentissage Lot de test variance tend vers 0 cours/fun1d_smear
Rq: ajustement de mlp(x) sur des mesures avec erreurs • Si votre package MLP permet de pondérer les exemples: E = Spwp (mlp(xp,w)- dp)2 alors vous pouvez ajuster la fonction mlp(x, w) sur des mesures (xp, sp) en posant wp = 1 / sp2
Oui mais… la classification de données ? • Entraîné avec dp(x) =1 quand l’exemple S et dp(x) = 0 quand l’exemple B, le fonction ajustée par le réseau est la probabilité p(S | x) de signal sachantx • En effet, <dp>(x) = 1 x p(S | x) + 0 x p(B | x) • Exemple à une variable: • Signal gaussien (1, 1) x 30% • Bdf gaussien (0, 1) x 70% • Réseau 1-2-1, 500 époques 70% Bruit de fond 30% Signal P(S | x) mlp(x) Sortie du réseau P(x | B) * P(B) cours/classify P(x | S) * P(S)
Attention • La fonction mlp(x, w*) approxime la « vraie » (= dans les données) valeur de p(S|x) uniquement si les probabilités a priori P(S) et P(B) sont exactes (section efficaces). • En général (recherche d’un signal rare), ce n’est pas possible (besoin de couvrir tout l’espace des entrées avec un nombre suffisant d’événements) • Mais on peut recalculer la vraie valeur de p*(S|x) par la formule: p*(S|x) / (1-p*(S|x)) = P*(S) / P*(B) * P(B) / P(S) * p(S|x) / (1-p(S|x)) Vraies prob. a priori Prob. a priori utilisées pendant l’apprentissage
Quelques conséquences • La sortie du réseau n’est pas binaire, ni nécessairement comprise strictement entre 0 et 1 (approximation de la probabilité) • Une sortie différente de 0 ou 1 n’indique pas que le réseau n’a pas convergé (zones de l’espace ou le signal et le bdf se superposent) • En particulier, une sortie toujours différente de 1 pour le signal (par exemple) est possible (pas de région ou il y a seulement du signal) • Insister sur les exemples mal classés après une première phase fait perdre la propriété d’approximation de p(S|x) • Classification dans K catégories: Skmlpk(x, w*) = 1
Utilisation de la sortie du réseau • Minimiser le taux d ’erreur: • Si le réseau est entraîné avec les probabilité a priori attendues, une coupure à 0.5 (ou attribuer à l’exemple considéré la classe du neurone de sortie le plus grand) minimise le taux d’erreur • Minimiser le risque: • Prendre du signal pour du bruit de fond ou inversement n’a pas forcément les mêmes conséquences on peut choisir une coupure différente • Seuil: • Dans certains cas, on n’attribue l’exemple à une certaine classe que si la valeur du neurone correspondant est > seuil. Si aucun neurone ne donne une sortie > seuil, traitement particulier.
Estimation de l’erreur • La fonction mlp(x, w*) (w* = poids après apprentissage) est une estimation de la fonction ajustée par la réseau • L’erreur sur cette estimation peut: • Se calculer analytiquement(voir par exemple Confidence Interval Prediction for Neural Network Models, George Chryssoloiuris et al., IEEE Transaction on Neural Networks, Vol. 7, No. 1, January 1996) • Etre estimée expérimentalement, par exemple par une méthode de bootstrap: • Tirer N exemples au hasard parmi les N exemples d’apprentissage • Entraîner le réseau • Calculer la sortie du réseau sur les exemples de test • Retourner en 1, faire B expériences • Calculer la moyenne et la variance des B résultats cours/fun1d_bootstrap
La vision mathématique de l’apprentissage • Trouver les poids w consiste à minimiser l’erreur E(w) sur le lot d’apprentissage • On pourrait essayer de minimiser E(w) avec Minuit mais: • Grand nombre de paramètres (réseau 2-3-1 = 13 paramètres, 784-300-10 238510 paramètres) • On peut calculer la dérivée de E par rapport aux wij (= le gradient ) P exemples ep = erreur sur l’exemple p
dj wij = wij – hdj yi Le calcul du gradient • Pour la couche de sortie: • Pour la couche précédente: • La « rétropropagation des erreurs » n’est autre que le calcul du gradient • E minimum gradient = 0
La méthode de Robbins-Monro A Stochastic Approximation Method H.Robbins et S.Monro, Annals of Math. Stat. 22 (1951), p. 400 • But: trouver le 0 d’une fonction f inconnue à partir de mesures de f(x) entachées d’erreur • Solution: mesurer f en des points successifs xt+1 = xt - ht f(xt) • Méthode de minimisation appelée « minimisation stochastique »: remplacer: • Trouver le 0 d’une fonction f par 0 du gradient de E(w) • Estimation de f par f(xt) par
Minimisation stochastique: conditions de convergence On Stochastic Approximation, A.Dvoretsky, Proc. 3rd Berkeley Sym. on Math. Stat. and Prob., J.Neyman (ed.) (Berkeley: University of California Press, 1956), p. 39 • mesures successives non corrélées -> mélanger les exemples • assurer la décroissance de l’erreur: • tout en laissant le temps aux erreurs de se moyenner: • donc ht = h0 / tk avec 1/2 < k < 1 convient • en pratique, ht souvent pris constant: pas de garantie de convergence
Minimisation stochastique: vitesse de convergence • Méthode lente, connu depuis longtemps: • «This method does not converge as rapidly as methods which make use of second derivatives, but is much simpler and can be easily implemented by local computations in parallel hardware» D.E.Rumelhart et al., Nature • «L’erreur due au hasard a essentiellement pour effet de diminuer la vitesse à laquelle on peut conduire une recherche tout en gardant la certitude de trouver finalement l’optimum. En l’absence d’erreur expérimentale, il importe donc de ne pas utiliser les méthodes stochastiques, trop lentes, et de recourir aux techniques déterministes, plus rapides. C’est là un point qu’on n’a pas très bien compris dans le passé, et l’application de méthodes stochastiques à des problèmes déterministes à parfois donné des résultats décevants» D.J. Wilde: Méthodes de recherche d’un optimum, Dunod, 1966
Exemple de l’ajustement d’une droite • But: trouver les paramètres a et b de la droite y = 2 x + 1 à partir de 10 points (xi, yi) sur [0, 1] • Fonction à minimiser: E(a, b) = S(a xi +b – yi)2 • Remarque: quadratique en a et b (problème linéaire) • Une époque = boucler sur tous les exemples = 10 pas dans l’animation • On calcule donc pour chaque exemple ide/db = axi + b – yi, de/da = xi * de/db, et on modifie a et b selon a a – hde/da b b – hde/db ( h = 0.5 dans le film) cours/minim/fit_droite_stoch
Un exemple non quadratique • Ajustement de la fonction • Sur 10 points (xi sur [-1,1], yi = f(xi; a =0.3, b=4) • Départ de a = 5, b = 2, h ajusté pour permettre une convergence pas trop lente
Minimisation stochastique: des variantes • Terme de moment ne pas défaire ce qui a été fait sur l ’exemple précédent • Ne modifier les poids qu’après avoir vu tous les exemples (« batch » ou « offline » backpropagation) cumule tous les défauts: mauvaise direction et mauvaise longueur des pas • Adaptation de la longueur des pas (« adaptive step size method ») • Attribué à F.M. Silva, L.B. Almeida: Acceleration techniques for the backpropagation algorithm, Neural Networks, ed.: L.B.Almeida, C.J.Wellekens (1990) Springer. Speeding up backpropagation, Advanced Neural Computers, Ed: R.Eckmiller (1990) Elsevier • Idée plus ancienne: H.Kesten: Accelerated Stochastic Approximation, Annals of Math.Stat. 29 (1958), pp. 41-59
Les méthodes de minimisation sans contrainte • Practical Methods of Optimization • R.Fletcher, 2nd edition, Wiley (1987) • Programmation Mathématique • M.Minoux, Dunod (1983) • Utilisent toutes le calcul du gradient de l’erreur totale, noté g(w) dans la suite • Méthodes itératives • calculer le gradient g(wt) • en déduire une direction dt • trouver l* qui minimise E(wt + ldt) • faire wt+1 = wt + l* dt • Sont construites et convergence démontrée pour des formes quadratiquesq(x) = xT A x + bT x + c • approximation locale de E(w) • peut nécessiter de réinitialiser la direction de temps en temps (> Nw) • la recherche le long de la direction garantit la décroissance Une époque • Choix de la direction: • plus grande pente • gradients conjugués • Méthode(s) quasi-Newton
La méthode de la plus grande pente (steepest descent) Méthode générale pour la résolution des systèmes d’équations simultanées A.L. Cauchy, Comptes Rendus Acad. Sc. Paris, XXV, (1847), p.536 • dt = -g(wt) • Recherche du minimum le long de la direction dt • Les pas successifs sont donc perpendiculaires oscillations Vallée étroite et presque horizontale
Méthode des gradients conjugués Methods of conjugate gradients for solving linear systems M.R.Hestenes, E.Stiefel, J. Res. Nat. Bureau of Standards,49, (1952), p.409 • Définition: si A est une matrice définie positive, on dit que deux vecteurs u et v sont conjugués par rapport à A si uT A v = 0 • Pour une forme quadratique q(x) = xT A x + bT x + c avec A définie positive (minimum local), on peut montrer que: • Si on part d’un point w0 et que, à chaque étape t, on sait générer une direction dt conjuguée par rapport aux directions précédentes (d0 = -gradient, par exemple) • Si de plus les points wt successifs sont obtenus par minimisation le long de dt-1 • Alors, à chaque étape t, le gradient en tout point wt + ldt est perpendiculaire à l’espace engendré par les di , i<t • Conséquence: à n dimensions, on arrive au minimum en n étapes • Choix des directions conjuguées: • dt+1 = -gt + bt dt • équivalentes pour problème quadratique • non équivalente en général
Méthode de Newton • Idée: approximer localement l’erreur par une forme quadratique q(x) = xT A x + bT x + c • Pour une forme quadratique dont le minimum est x*: • g(x) = A x + b • g(x*) = 0 = A x* + b • D’où x* = x – A-1 g • Si la matrice H des dérivées secondes (le Hessien) est connue, on peut utiliser la méthode de Newton dt = H-1 gt • Dans le cas des MLPs, le Hessien est en principe calculable, mais calcul de H-1 difficile (n3 opérations, stabilité numérique), d’où méthodes quasi-Newton
BFGS = Broyden Fletcher Goldfarb Shanno The Convergence of a Class of Double-rank Minimization Algorithms Broyden, C. G. Journal of the Institute of Mathematics and Its Applications 1970, 6, 76-90 A New Approach to Variable Metric Algorithms Fletcher, R. Computer Journal 1970, 13, 317-322 A Family of Variable Metric Updates Derived by Variational Means Goldfarb, D., Mathematics of Computation 1970, 24, 23-26 Conditioning of Quasi-Newton Methods for Function Minimization Shanno, D. F. Mathematics of Computation 1970, 24, 647-656 • Idée: approximer H-1 itérativement par Gt en partant d’une matrice G0 définie positive(l’identité, par exemple) • Formule de Broyden, Fletcher, Goldfarb, Shanno:si dt = wt+1 - wt, gt = gt+1 - gt • Propriétés: • si les wt sont obtenus par recherche unidimensionnelle, alors Gt reste définie positive • pour une fonction quadratique avec A définie positive, Gt -> A-1 en n itérations
Illustration de la convergence de ces méthodes • Gradients conjugués ou BFGS (pas de différence sur ces petits exemples) Potentiel quadratique à 2d converge en 2 itérations