Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre 3 Unconstrained Convex Optimization New

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 16

CHAPITRE 3

UNCONSTRAINED CONVEX
OPTIMIZATION
GRADIENT D’UNE FONCTION
 Le gradient d’une fonction est un vecteur dont les
coordonnées sont les dérivées partielles par rapport à
chacune des variables de la fonction
 Exemple: 𝑓 = 𝑥 2 + 𝑥𝑦 + 𝑦 2
𝑑𝑓(𝑥,𝑦) 𝑑𝑓(𝑥,𝑦) 𝑑𝑓(𝑥,𝑦) 𝑑𝑓(𝑥,𝑦)
 𝑔𝑟𝑎𝑑(𝑓) = 𝛻𝑓 = , = 𝑖+ 𝑗
𝑑𝑥 𝑑𝑦 𝑑𝑥 𝑑𝑦
 On peut généraliser au cas de n variables
 𝛻𝑓 = 2𝑥 + 𝑦 𝑖 + 2𝑦 + 𝑥 𝑗
 À chaque point de coordonnées (x,y) on associe un vecteur particulier de
coordonnées 2𝑥 + 𝑦 2𝑦 + 𝑥 par exemple le gradient au point A(2,4) est
le vecteur (2 × 2+4)𝑖 + 2 × 4 + 2 𝑗 = 8𝑖 + 10𝑗

10𝑗 8𝑖 + 10𝑗
10𝑗

8𝑖
GRADIENT D’UNE FONCTION
 Le gradient d’une fonction est un vecteur dont les
coordonnées sont les dérivées partielles par rapport à
chacune des variables de la fonction
 Exemple: 𝑓 = 𝑥 2 + 𝑥𝑦 + 𝑦 2
𝑑𝑓(𝑥,𝑦) 𝑑𝑓(𝑥,𝑦) 𝑑𝑓(𝑥,𝑦) 𝑑𝑓(𝑥,𝑦)
 𝑔𝑟𝑎𝑑(𝑓) = 𝛻𝑓 = , = 𝑖+ 𝑗
𝑑𝑥 𝑑𝑦 𝑑𝑥 𝑑𝑦
 On peut généraliser au cas de n variables
 𝛻𝑓 = 2𝑥 + 𝑦 𝑖 + 2𝑦 + 𝑥 𝑗
 À chaque point de coordonnées (x,y) on associe un vecteur particulier de
coordonnées 2𝑥 + 𝑦 2𝑦 + 𝑥 par exemple le gradient au point A(2,4) est
le vecteur (2 × 2+4)𝑖 + 2 × 4 + 2 𝑗 = 8𝑖 + 10𝑗

8𝑖 + 10𝑗
10𝑗

8𝑖
GRADIENT D’UNE FONCTION
Norme par rapport à y
Norme par rapport à x 𝑑𝑓(𝑥, 𝑦)
𝑑𝑓(𝑥, 𝑦) 𝑗
𝑖 𝑑𝑦
𝑑𝑥

𝛻𝑓 𝑐𝑎𝑙𝑐𝑢𝑙é 𝑠𝑢𝑟 𝑝𝑙𝑢𝑠𝑖𝑒𝑢𝑟𝑠 𝑝𝑜𝑖𝑛𝑡𝑠 (𝑥, 𝑦)


𝑑𝑓(𝑥, 𝑦) 𝑑𝑓(𝑥, 𝑦)
𝑖+ 𝑗
𝑑𝑥 𝑑𝑦
Direction à suivre si on veut avoir la pente maximale dans
le direction des Z
GRADIENT D’UNE FONCTION

𝑑𝑓(𝑥, 𝑦)
𝑗
𝑑𝑦

𝑑𝑓(𝑥, 𝑦)
𝑖
𝑑𝑥

𝑣𝑢𝑒 𝑑𝑒 𝑑𝑒𝑠𝑠𝑢𝑠 𝑑𝑓(𝑥, 𝑦) 𝑑𝑓(𝑥, 𝑦)


𝑖+ 𝑗
𝑑𝑥 𝑑𝑦
Direction à suivre si on veut avoir la pente maximale dans
le direction des Z
MÉTHODE DE LA DESCENTE DU GRADIENT
 Soit 𝑓 𝑥1 , 𝑥2 , . . , 𝑥𝑛 𝑢𝑛𝑒 𝑓𝑜𝑛𝑐𝑡𝑖𝑜𝑛 à 𝑚𝑖𝑛𝑖𝑚𝑖𝑠𝑒𝑟
 On commence par choisir un point initial
𝑥0 ∈ ℝ𝑛 , 𝑢𝑛 𝑡𝑎𝑢𝑥 𝑑′ 𝑎𝑝𝑝𝑟𝑒𝑛𝑡𝑖𝑠𝑠𝑎𝑔𝑒 𝛼 𝑙𝑜𝑛𝑔𝑢𝑒𝑢𝑟 𝑑𝑢 𝑝𝑎𝑠
𝑒𝑡 𝑢𝑛 𝑠𝑒𝑢𝑖𝑙 𝑑𝑒 𝑡𝑜𝑙é𝑟𝑒𝑛𝑐𝑒 𝜀 ≥ 0
𝑥𝑘 ← 𝑥0
𝑘←0
répéter
calcul de 𝛻𝑓(𝑥𝑘 )
𝑥𝑘+1 = 𝑥𝑘 − 𝛼𝛻𝑓(𝑥𝑘 ) aller dans le sens négatif du gradient
𝑘 ←𝑘+1
jusqu’à 𝛻𝑓(𝑥𝑘 ) ≤ 𝜀
MÉTHODE DE LA DESCENTE DU GRADIENT
 On suit itérativement le sens inverse du gradient pour se diriger à chaque
fois vers la plus forte pente dans le sens de la descente

Vue 2D Vue 3D
MÉTHODE DE LA DESCENTE DU GRADIENT
1 1
 Exemple: Nous voulons minimiser la fonction 𝑓 𝑥, 𝑦 = 𝑥 2 + 𝑥 + 𝑦 2 − 2
2 4
𝑑𝑓(𝑥,𝑦) 𝑑𝑓(𝑥,𝑦) 1
 = 𝑥 + 1, = 𝑦
𝑑𝑥 𝑑𝑦 2

 On part du point 𝐴 𝑥 = 1, 𝑦 = 1 avec 𝑙𝑒 𝑡𝑎𝑢𝑥 𝑑′ 𝑎𝑝𝑝𝑟𝑒𝑛𝑡𝑖𝑠𝑠𝑎𝑔𝑒 𝛼 =


0.1 𝑒𝑡 𝑙𝑒 𝑠𝑒𝑢𝑖𝑙 𝜀 = 0,02
itération x y Z=f(x,y) 1
𝛻𝑓(𝑥𝑘 ) = (𝑥 + 1)2 +( 𝑦)2
2

1 0.800 0.950 -0.250 2.062

2 0.620 0.902 -0.654 1.862


3 0.458 0.857 -0.984 1.682
… … … … …
61 0.997 0.042 -2.500 0.022

62 0.997 0.039 -2.500 0.021


63 0.998 0.038 -2.500 0.020
MÉTHODE DE LA DESCENTE DU GRADIENT
1 1
 Exemple: Nous voulons minimiser la fonction 𝑓 𝑥, 𝑦 = 𝑥 2 + 𝑥 + 𝑦 2 − 2
2 4
MÉTHODE DE LA DESCENTE DU GRADIENT
RÉSOLUTION AVEC PYTHON
MÉTHODE DE LA DESCENTE DU GRADIENT
RÉSOLUTION AVEC PYTHON
MÉTHODE DE LA DESCENTE DU GRADIENT
RÉSOLUTION AVEC PYTHON
MÉTHODE DE LA DESCENTE DU GRADIENT
RÉSOLUTION AVEC PYTHON
MÉTHODE DE LA DESCENTE DU GRADIENT
RÉSOLUTION AVEC PYTHON
MÉTHODE DE LA DESCENTE DU GRADIENT
RÉSOLUTION AVEC PYTHON
 Travail à faire (à envoyer par mail avant le 16 mai 2020)
 Tester le programme du gradient fourni gradient2.py
 Améliorer le programme du gradient pour qu’il s’arrête
lorsque 𝛻𝑓(𝑥𝑘 ) < 𝜀
 Tester le programme sur une ou deux fonctions convexes
parmi les fonctions suivantes:

𝑓 𝑥1 , 𝑥2 = 𝑥1 − 𝑥2 2
𝑓 𝑥1 , 𝑥2 = −2𝑥1 − ln 𝑥2 + 1
f(x,y) = x2+y2
1
f ( x, y )  x y
xy

Vous aimerez peut-être aussi