Lecture 2: Optimisation, Géométrie inverse
Optimisation convexe
- Minimum local $x^\ast$ de $f$:
-
si $∃𝒩(x^\ast); \; ∀x∈𝒩, f(x)> f(x^\ast)$
Th: Optimalité d’ordre 1
Si $x^\ast$ est un minimum local, alors $\nabla f^\ast = 0$
Th: Optimalité nécessaire ordre 2
Si $x^\ast$ est un minimum local, alors
- $\nabla f^\ast = 0$
- $\nabla^2 f^\ast ≥ 0$
Th: Optimalité suffisante ordre 2
Si
- $\nabla f^\ast = 0$
- $\nabla^2 f^\ast > 0$
alors $x^\ast$ est un minimum local
Descente de gradient
line 0
Δx = -∇f
α un pas
x -= α Δx
GOTO line 0
Newton à l’ordre 2
Taylor à l’ordre 2:
\[f(x + Δx) ≃ \underbrace{f(x) + Δx^T \nabla f + \frac 1 2 Δx^T \nabla^2 f Δx}_{≝ m_x(Δx)}\]∇f = - ∇^2f Δx
line 1
Δx = - ∇^2f^{-1} Δx
x += Δx
GOTO line 1
Quasi-Newton
\[Δx = - B \nabla f\]Si avec $B ⟶_{n ⟶ +∞} \nabla^2 f^{-1}$ (dans la direction du gradient), alors convergence super-linéaire.
BFGS
Très efficace, quand elle s’applique ⟶ règle d’update de $B$.
cf scipy.optimize.fmin_bfgs
Gauss-Newton
\[f(x) = \frac 1 2 \Vert r(x) \Vert^2 = \frac 1 2 r(x)^T r(x)\]avec $r: ℝ^m ⟶ ℝ$
\[f = \frac 1 2 r^T r \\ \nabla f = \underbrace{\nabla r^T}_{\text{jacobien}} r\\ \nabla^2 f = \underbrace{\underbrace{\nabla^2 r}_{\text{tenseur}} r}_{\text{ = 0 }} + \nabla r^T \nabla r\\ Δx = - \underbrace{(\nabla r^T \nabla r)^{-1} \nabla r^T}_{= \nabla r^{\dagger} \text{ (pseudo-inverse)}} r\]Levenberg-Marquardt
\[Δx^\ast = \min_{\Vert Δx \Vert ≤ ρ} m_x(Δx)\]où $ρ$ est un rayon de confiance.
Ceci est équivalent à:
\[∀ρ, ∃λ; \; Δx^\ast = \min m_x(Δx) + λ Δx^2\\ = - (\nabla^2 f + \underbrace{λ I}_{\rlap{\text{régularisation de Tychonov}}})^{-1} \nabla f\] \[Δx = α(\nabla^2 f + λ I)^{-1} \nabla f\]- Rayon de confiance:
- \[r ≝ \frac{f(x)-f(x+Δx)}{f(x)-m_x(Δx)}\]
- Si $r ≃ 1$ ⟶ accepte
-
Sinon $α ← α/10$
- Si $α < 10^{-6}$: $λ ← 10 λ$
Variétés différentielles
- $SE(3)$: déplacement rigide ≃ $SO(3) × ℝ^3$
Problème:
on ne plus faire $\underbrace{x}{∈ ℝ^n} + \underbrace{Δx}{∈ℝ^n}$ ⟶ ici :
- $\underbrace{R}{∈ ℝ^{3×3}} + \underbrace{ω}{∈ ℝ^n}$
- $\underbrace{q}{\text{quaternion: en dim 4}} + \underbrace{ω}{\text{en dim 4}}$
Géométrie inverse
\[\begin{pmatrix} q_1 \\ \vdots\\ q_n \end{pmatrix} = q ∈ Q ≝ Q_1 × ⋯ × Q_n\] \[v_q ≃ \dot{q}\]NB: $ω$ ne s’écrit pas comme une différentielle
\[K: q ∈ \underbrace{Q}_{\dim = 30}⟶ \underbrace{ {}^0 M_n}_{\rlap{\text{matrice de rotation+translation pour passer de la partie } 0 \text{ à } n}} = K(q) ∈ \overbrace{SE(3)}^{\dim = 6}\] \[\min_{v_q} \Vert \log ({}^0 M_\ast^{-1} × {}^0 M_n(q \oplus v_q)) \Vert^2\]où
- \[{}^0 M_\ast^{-1} × {}^0 M_n = {}^\ast M_0 {}^0 \; M_n = {}^\ast M_n\]
- $\oplus$ est l’opérateur d’intégration
- $q \underbrace{\otimes}_{\text{op groupe}} \exp(v_q)$
Leave a comment