Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 6 · Optimisation

Points critiques, Hessien et descente de gradient

Points critiques

Un point critique est un point où ∇f(x,y)=0\nabla f(x,y)=0. Ce sont les candidats à un minimum local, un maximum local ou un point-selle. Pour f(x,y)=x2+y2f(x,y)=x^2+y^2 : ∇f=(2x,2y)=0\nabla f=(2x,2y)=0 donne (0,0)(0,0).

Dérivées secondes et Hessien

On définit fxx,fyy,fxy,fyxf_{xx}, f_{yy}, f_{xy}, f_{yx} et la matrice Hessienne :

Hf=(fxxfxyfyxfyy).H_f=\begin{pmatrix} f_{xx} & f_{xy} \\ f_{yx} & f_{yy} \end{pmatrix}.

Elle sert à analyser la convexité/concavité et la nature des points critiques. Elle est symétrique si les dérivées secondes sont continues ; une matrice symétrique a des valeurs propres réelles, une base de vecteurs propres et une diagonalisation orthogonale.

Vérifie que tu as compris

Quelle condition caractérise un point critique ?

Lire le Hessien avec ses valeurs propres

Soit HH le Hessien évalué en un point critique. Le signe de ses valeurs propres indique directement la courbure :

valeurs propres de HHconclusion
toutes >0> 0Hessienne définie positive : strictement convexe, minimum local (unique)
toutes <0< 0définie négative : strictement concave, maximum local (unique)
au moins une >0>0 et une <0<0point-selle (ni minimum ni maximum)
une valeur propre =0=0cas indécidable : le test ne conclut pas

Dans le cours, ces tests s'écrivent avec NumPy : np.all(eigvals > 0), np.all(eigvals < 0), np.any(eigvals < 0) and np.any(eigvals > 0), np.any(np.isclose(eigvals, 0)).

Exemple 1 : f=x2+y2f=x^2+y^2, H=(2002)H=\begin{pmatrix}2&0\\0&2\end{pmatrix}, valeurs propres 2,22,2 : minimum global. Exemple 2 : f=x2−y2f=x^2-y^2, H=(200−2)H=\begin{pmatrix}2&0\\0&-2\end{pmatrix}, valeurs propres 22 et −2-2 : point-selle en (0,0)(0,0).

Vérifie que tu as compris

Pour f(x,y)=x2+y2−4xf(x,y)=x^2+y^2-4x, quel est le point critique ?

Cas indécidable et descente de gradient

Si une valeur propre est nulle, le test du Hessien ne permet pas de conclure : le point peut être un minimum non strict, un maximum non strict ou un point-selle. Il faut alors étudier la fonction autrement.

Exemple du cours : f(x,y)=x2−y4f(x,y)=x^2-y^4 en (0,0)(0,0). Le gradient (2x, −4y3)(2x,\,-4y^3) s'annule en (0,0)(0,0), et le gradient est quasi nul tout près de y=0y=0 puisque y3y^3 est minuscule. Pour la descente de gradient (on avance de −η ∇f-\eta\,\nabla f à chaque étape, avec un pas η\eta), c'est un problème : la pente disparaît, l'algorithme ralentit puis s'arrête sans avoir trouvé de minimum. (Ici le point est en réalité un selle : ff monte en xx et descend en yy, mais le Hessien diag(2,0)\mathrm{diag}(2,0) ne le voit pas. Précision hors cours.)

Autre exercice du cours : f(x,y)=x3−3xy2f(x,y)=x^3-3xy^2 (fonction « classique en optimisation ») a un gradient (3x2−3y2, −6xy)(3x^2-3y^2,\,-6xy) qui s'annule en (0,0)(0,0), avec un Hessien nul en ce point : cas indécidable.

En dimension supérieure, on raisonne de même sur les valeurs propres du Hessien : le cours donne une fonction analyse_hessienne(H) qui conclut convexe/min local, concave/max local, selle ou test inconcluant.

Vérifie que tu as compris

Pourquoi le gradient de f(x,y)=x2−y4f(x,y)=x^2-y^4 « chute-t-il vers 00 » en (0,0)(0,0) ?

À toi de coder

Descente de gradient en 1D

On minimise f(x)=(x−3)2f(x)=(x-3)^2, de dérivée f′(x)=2(x−3)f'(x)=2(x-3). À chaque étape : x←x−η f′(x)x \leftarrow x - \eta\, f'(x). Écris descente_1d(df, x0, eta, n) qui applique cette mise à jour n fois et renvoie le xx final. Avec x0=0x_0=0, η=0,1\eta=0{,}1, n=100n=100 on doit approcher 33.

Ctrl/⌘+Entrée

À toi de coder

Descente de gradient en 2D

On minimise f(x,y)=x2+3y2f(x,y)=x^2+3y^2, de gradient (2x,;6y)(2x,;6y). Écris descente_2d(x, y, eta, n) : à chaque étape, x←x−η 2xx \leftarrow x-\eta\, 2x et y←y−η 6yy \leftarrow y-\eta\, 6y (mets à jour les deux avec les anciennes valeurs). Renvoie la liste [x, y]. De (4,2)(4, 2) avec η=0,1\eta=0{,}1 et n=200n=200, on tend vers (0,0)(0,0).

Ctrl/⌘+Entrée

À toi de coder

Classer un point critique (Hessien 2x2)

Pour un Hessien symétrique (abbc)\begin{pmatrix}a&b\\b&c\end{pmatrix}, les valeurs propres valent λ=a+c2±(a−c2)2+b2\lambda=\frac{a+c}{2}\pm\sqrt{\left(\frac{a-c}{2}\right)^2+b^2} (formule hors cours). Écris classer(a, b, c) qui renvoie "minimum" (deux valeurs propres &gt;0), "maximum" (deux &lt;0), "selle" (signes mélangés) ou "indecidable" (une valeur propre nulle, tolérance 10−910^{-9}).

Ctrl/⌘+Entrée