Skip to main content

Section 11.3 Méthode parcimonieuse pour l'apprentissage d'ODE

Apprendre une ODE par réseau de neurones peut être très efficace cependant il s'agit d'une méthode peu explicative. En effet on ne connait la forme de l'équation différentielle. Ici on va introduire une méthode permettant de construire une ODE nonlinéaire à partir de données ou la forme est explicitement connue.

Subsection 11.3.1 méthode SINdy

Le problème est ici le même que précédemment. On se donne des données \(\left\{x(t_1),..,x(t_n)\right\}\) avec \(x(t)\in\mathbb{R}^q\) qui correspond a une dynamique temporelle et on cherche une ODE du type:

\begin{equation*} \frac{d x(t)}{dt}=F_{\theta}(x(t)) \end{equation*}

permettant d'expliquer ses données. Avant d'introduire la méthode on va rappeler quelques ODe classiques

Soit \(S(t), I(t), R(t)\) des populations de gens sains, infectés et retirés alors leurs dynamique est donnée par
\begin{equation*} \left\{\begin{array}{l} \frac{d S(t)}{dt}=-\frac{\beta S(t)I(t)}{N}\\ \frac{d I(t)}{dt}=\frac{\beta S(t)I(t)}{N}-\gamma I(t)\\ \frac{d R(t)}{dt}=\gamma I(t) \end{array}\right. \end{equation*}
avec \(\beta\) de taux d'infection et \(\frac{1}{\gamma}\) la durée moyenne d'infection.
Soit \(x(t), x(t), x(t)\) des coordonnées au fur et mesure du temps. La dynamique est donnée par
\begin{equation*} \left\{\begin{array}{l} \frac{d x(t)}{dt}=\sigma(y(t)-x(t)) \\ \frac{d y(t)}{dt}= x(t)(\rho-z(t))-y(t)\\ \frac{d z(t)}{dt}= x(t)y(t)-\beta z(t) \end{array}\right. \end{equation*}
avec \(\sigma\) et \(\beta\) des paramètres physiques.
A travers ses exemples et un certains nombres d'autres, on peut voir que les nonlinearités sont assez simple. Il va souvent s'agir de nonlinéarité cubique et quadratique ou issu de fonctions classiques. L'idée de l'approcge SINDy part de ce principe.

L'approche SINDy consiste a proposer comme fonction paramétrique et combinaison linéaire de nonlinéarité qu'on se donne en avance.

Modèle paramétrique de l'approche SINDy.

On se donne un certains nombre de fonction \((f_1(x),....,f_m(x))\text{.}\) Le modèle paramétrique utilisé dans l'approche SINDy est donnée par

\begin{equation*} f_{\boldsymbol{\xi}}(x)=\sum_{i=1}^m \xi_i f_i(x) \end{equation*}

avec comme paramètres \(\boldsymbol{\xi}=(\xi_1,....\xi_m)\)

A partir du moment ou on utilise ce type de représentation, la construction des coefficients peut se réaliser avec une régression linéaire sur des entrées qui sont obtenues en appliquant les nonlinearités aux données d'origine. Afin que le système soit le plus interprétable et le plus simple possible on va chercher la répresentation la parcimonieuse possible. On va maintenant formaliser cela. On commence par introduire la matrice des données:

\begin{equation*} \mathbf{X}=\left[\begin{array}{c} \mathbf{x}^T\left(t_1\right) \\ \mathbf{x}^T\left(t_2\right) \\ \vdots \\ \mathbf{x}^T\left(t_m\right) \end{array}\right]=\left[\begin{array}{cccc} x_1\left(t_1\right) \amp x_2\left(t_1\right) \amp \cdots \amp x_n\left(t_1\right) \\ x_1\left(t_2\right) \amp x_2\left(t_2\right) \amp \cdots \amp x_n\left(t_2\right) \\ \vdots \amp \vdots \amp \ddots \amp \vdots \\ x_1\left(t_m\right) \amp x_2\left(t_m\right) \amp \cdots \amp x_n\left(t_m\right) \end{array}\right] \in \mathcal{M}_{n,q}(\mathbb{R}) \end{equation*}
\begin{equation*} \dot{\mathbf{X}}=\left[\begin{array}{c} \dot{\mathbf{x}}^T\left(t_1\right) \\ \dot{\mathbf{x}}^T\left(t_2\right) \\ \vdots \\ \dot{\mathbf{x}}^T\left(t_m\right) \end{array}\right]=\left[\begin{array}{cccc} \dot{x}_1\left(t_1\right) \amp \dot{x}_2\left(t_1\right) \amp \cdots \amp \dot{x}_n\left(t_1\right) \\ \dot{x}_1\left(t_2\right) \amp \dot{x}_2\left(t_2\right) \amp \cdots \amp \dot{x}_n\left(t_2\right) \\ \vdots \amp \vdots \amp \ddots \amp \vdots \\ \dot{x}_1\left(t_m\right) \amp \dot{x}_2\left(t_m\right) \amp \cdots \amp \dot{x}_n\left(t_m\right) \end{array}\right] \in \mathcal{M}_{n,q}(\mathbb{R}) . \end{equation*}

Les derivées vont être estimées des différences finis sur les données. Ensuite on va construire la matrice des nonlinarité:

\begin{equation*} \Theta(\mathbf{X})=\left[\begin{array}{llllll} 1 \amp \mathbf{X} \amp f_1(\mathbf{X}) \amp f_2(\mathbf{X}) \amp \cdots \amp f_m(\mathbf{X}) \end{array}\right] \in \mathcal{M}_{n,m}(\mathbb{R}) \end{equation*}

Lorsqu'on note \(f_1(\mathbf{X})\) il s'agit du vecteur contenant la nonlinarité pour chaque donnée en temps. Les nonlinearités seront du type \(x_1^2\text{,}\) \(x_1x_2...x_d\text{,}\) \(sin(x_4)\) etc.

Définition 11.3. Problème de minimisation de la méthode SINDy.

La méthode SINDy revient a minimiser le problème suivant:

\begin{equation*} \boldsymbol{\xi}=\underset{\xi}{\operatorname{argmin}} \frac{1}{2}\left\|\dot{\mathbf{x}}-\boldsymbol{\Theta}\left(\mathbf{x}^T\right) \boldsymbol{\xi}\right\|_2^2 +\lambda\left\|\boldsymbol{\xi}\right\|_1, \end{equation*}
La pénalisation en norme un permet d'assurer une représentation parcimonieuse de la nonlinéarité. Le principe de la méthode SINDy
Figure 11.4. Principe de la méthode SInDy.

Subsubsection 11.3.1.1 Algorithme d'apprentissage

En construction

Subsection 11.3.2 Méthode SINDy pour les ODE metriplectique

En construction