Problème de Kaplan sous Forme de Moindres Carrés
Le problème de Kaplan peut être formulé comme un problème d’optimisation aux moindres carrés. L’objectif est d’estimer les paramètres et la condition initiale d’une équation différentielle linéaire vectorielle en minimisant l’écart entre les mesures observées et les prédictions du modèle.
Formulation Mathématique
Considérons le problème de Cauchy linéaire décrit par :
x'(t) = Ax(t) + Bu(t), \quad x(0) = x_0
où :
- x(t) \in \mathbb{R}^n est le vecteur d’état à l’instant t.
- A \in \mathcal{M}_{n}(\mathbb{R}) est la matrice des coefficients.
- B \in \mathcal{M}_{n, m}(\mathbb{R}) est la matrice d’entrée.
- u(t) \in \mathbb{R}^m est le vecteur des entrées.
Nous disposons de mesures x_i à des instants t_i pour i = 1, 2, \ldots, N. Nous cherchons à estimer les paramètres
\theta = (A, B, x_0) en minimisant la fonction coût suivante :
F(\theta) = \frac{1}{2} \sum_{i=1}^{N} \| x_i - x(t_i, \theta) \|^2
où :
- x(t_i, \theta) est la prédiction du modèle, c’est-à-dire la solution du problème de Cauchy, à l’instant t_i avec les paramètres \theta.
- \| \cdot \| désigne la norme euclidienne.
Les matrices A et B et le vecteur x_0 sont ici considérés comme des paramètres à estimer. Dans certains cas, seuls certains paramètres peuvent être inconnus. Il est aussi possible de ne chercher qu’à estimer une partie des paramètres. Dans ce cas, si nous notons \theta \in \mathbb{R}^l les paramètres à estimer, nous pouvons écrire la dépendance de A, B et x_0 en fonction de \theta, et le problème de Cauchy devient :
x'(t) = A(\theta)\, x(t) + B(\theta)\, u(t), \quad x(0) = x_0(\theta).
Nous parlons de problème aux moindres carrés linéaire si \theta \mapsto x(t_i, \theta) est linéaire pour toute donnée t_i, sinon on parle de problème aux moindres carrés non linéaire.
Algorithme de Gauss-Newton
Description de la méthode
L’algorithme de Gauss-Newton est une méthode itérative utilisée pour minimiser la fonction coût F. Cette algorithme est utilisé pour la résolution de problèmes aux moindres carrés non linéaires. Si le problème est linéaire, seul la première itération suffit. A partir d’un itéré initial \theta_0, l’algorithme va construire une suite d’itérés (\theta_k)_{k\ge 0} qui on l’espère converge vers un minimum de F.
L’idée principale de l’alogrithme de Gauss-Newton est de résoudre à chaque itération un problème aux moindres carrés linéaire. Notons \theta_k l’itéré courant. Nous pouvons approcher pour chaque instant t_i le modèle :
\theta \mapsto x(t_i, \theta)
par son approximation linéaire au voisinage du point courant \theta_k :
\Delta\theta \mapsto x(t_i, \theta_k) + \frac{\partial x}{\partial \theta}(t_i, \theta_k)\, \Delta \theta.
Ceci nous amène, à chaque itération, à devoir résoudre un problème aux moindres carrés linéaire :
\mathrm{minimiser}~ F_k(\Delta \theta) = \frac{1}{2} \sum_{i=1}^{N} \left\| x_i - x(t_i, \theta_k) - \frac{\partial x}{\partial \theta}(t_i, \theta_k)\, \Delta \theta \right\|^2.
A chaque itération, la fonction à minimiser dépend de \Delta \theta, la valeur du paramètre \theta est fixée à \theta_k.
Le prochain itéré s’écrit :
\theta_{k+1} = \theta_k + \Delta \theta_k
où \Delta \theta_k est la solution du problème aux moindres carrés linéaires faisant intervenir F_k.
Solution du problème linéaire
Le point \Delta \theta_k \in \mathbb{R}^l est obtenu en annulant le gradient de F_k, c’est-à-dire en résolvant :
\begin{aligned} \nabla F_k(\Delta \theta) &= \sum_{i=1}^{N} {\frac{\partial x}{\partial \theta}(t_i, \theta_k)}^T \left( x_i - x(t_i, \theta_k) - \frac{\partial x}{\partial \theta}(t_i, \theta_k)\, \Delta \theta \right) \\ &= \sum_{i=1}^{N} {J_{i,k}}^T \left( x_i - x(t_i, \theta_k) \right) - \left( \sum_{i=1}^{N} {J_{i,k}}^T J_{i,k} \right) \Delta \theta = 0, \end{aligned}
où l’on a introduit la notation
J_{i,k} = \frac{\partial x}{\partial \theta}(t_i, \theta_k).
Si l’on regarde attentivement l’équation ci-dessus en \Delta \theta, nous pouvons remarquer que nous devons résoudre un simple système linéaire de la forme :
A_k \Delta \theta = b_k,
où
A_k = \sum_{i=1}^{N} {J_{i,k}}^T J_{i,k} \in \mathcal{M}_{l}(\mathbb{R}) \quad \text{et} \quad b_k = \sum_{i=1}^{N} {J_{i,k}}^T \left( x_i - x(t_i, \theta_k) \right) \in \mathbb{R}^l.
Présentation de l’algorithme
Voici les étapes principales :
Initialisation : Choisir une estimation initiale \theta_0 des paramètres.
Itération : Pour chaque itération :
Calculer la prédiction x(t_i, \theta_k) pour chaque instant t_i.
Calculer les matrices jacobiennes J_{i,k} des dérivées partielles de x(t_i, \theta) par rapport à \theta, évaluée en \theta_k :
J_{i,k} = \frac{\partial x}{\partial \theta}(t_i, \theta_k) = \begin{pmatrix} \displaystyle\frac{\partial x_1}{\partial \theta_1}(t_i, \theta_k) & \displaystyle\frac{\partial x_1}{\partial \theta_2}(t_i, \theta_k) & \displaystyle\ldots & \displaystyle\frac{\partial x_1}{\partial \theta_l}(t_i, \theta_k) \\[1em] \displaystyle\frac{\partial x_2}{\partial \theta_1}(t_i, \theta_k) & \displaystyle\frac{\partial x_2}{\partial \theta_2}(t_i, \theta_k) & \displaystyle\ldots & \displaystyle\frac{\partial x_2}{\partial \theta_l}(t_i, \theta_k) \\[1em] \displaystyle\vdots & \displaystyle\vdots & \displaystyle\ddots & \displaystyle\vdots \\[1em] \displaystyle\frac{\partial x_n}{\partial \theta_1}(t_i, \theta_k) & \displaystyle\frac{\partial x_n}{\partial \theta_2}(t_i, \theta_k) & \displaystyle\ldots & \displaystyle\frac{\partial x_n}{\partial \theta_l}(t_i, \theta_k) \end{pmatrix} \in \mathcal{M}_{n, l}(\mathbb{\R})
Mettre à jour les paramètres en utilisant la formule :
\theta_{k+1} = \theta_k + \Delta \theta_k
où \Delta \theta_k est la solution du système linéaire :
A_k \Delta \theta = b_k
avec A_k et b_k définis ci-dessus.
Convergence : Répéter jusqu’à ce que les changements dans \theta soient négligeables ou qu’un critère de convergence soit satisfait.
Fonctions Nécessaires
Pour implémenter cet algorithme, deux fonctions principales sont nécessaires :
Fonction de Prédiction :
- Entrée : Paramètre \theta et instant t_i.
- Sortie : Prédictions x(t_i, \theta) en résolvant le problème de Cauchy jusqu’au temps t_i.
Fonction de Dérivée :
- Entrée : Paramètre \theta et instant t_i.
- Sortie : Matrice jacobienne des dérivées partielles de x(t_i, \theta) par rapport à \theta.
Ces fonctions permettent de calculer les prédictions du modèle et les dérivées nécessaires pour mettre à jour les paramètres à chaque itération de l’algorithme de Gauss-Newton. La suite du cours est consacrée à l’implémentation de ces fonctions pour résoudre des problèmes de Kaplan concrets.
Exercice
Considérons le modèle linéaire suivant :
x(t, \theta) = a + b\, t
où :
- x(t, \theta) est la sortie du modèle à l’instant t pour les paramètres \theta.
- \theta = (a, b) sont les paramètres à estimer.
Supposons que nous avons les observations suivantes :
\begin{array}{c|c} t & x \\ \hline 1 & 2 \\ 2 & 3 \\ 3 & 5 \\ \end{array}
Nous cherchons à estimer les paramètres a et b en minimisant la somme des carrés des résidus entre les observations et les prédictions du modèle.