Skip to main content

Section 13.3 Approche continue pour les opérateurs neuraux

Dans cette dernière section, on va essayer de développer une approche continue pour l'approximation d'opérateur. Cette approche est plus flexible et utilise des approches récentes d'apprentissage.

L'approche continue consiste finalement à construire une transformation locale en temps en espace entre les paramètres évalués en \(t\text{,}\) \(x\) et la solution (on se rapproche des PINNs). L'avantage de cette transformation locale c'est qu'elle peut être utilisée ensuite sur n'importe quel point en temps et en espace. Si on reprend la même EDP que dans la section précédente, on se retrouve a essayer de construire le réseau suivant:

\begin{equation} G_{\theta}^{+}(g(x),u_0(x),\boldsymbol{\mu}(x,t))\rightarrow u(t,x)\tag{13.2} \end{equation}

ou

\begin{equation} G_{\theta}^{+}(t,x,g(x),u_0(x),\boldsymbol{\mu}(x,t))\rightarrow u(t,x)\tag{13.3} \end{equation}

Dans (ref neural operator) la théorie est détaillé dans le 1er cas. En pratique on peut évidemment utiliser la secondeÒ variante qui se rapproche du PINNs généralisé qu'on à déjà vu précédemment. Comme dans le cas discret on peut maintenant définir deux variantes en fonction de la loss d'entrainement.

Définition 13.4. NO (Neural Operator).

Un opérateur neural pour l'EDP (13.1) est un réseau de neurones \(G_{\theta}^{+}\) prenant les entrées locales de l'EDP et minimisant la loss

\begin{equation*} \mathcal{J}(\theta)= \int_{G}\int_{U_0}\int_{V_{\boldsymbol{\mu)} }}\int_0^T\int_{\Omega}\parallel G_{\theta}^+(t,x,g(x),u_{0}(x),\boldsymbol{\mu}_h(x,t)) - \boldsymbol{u}(x,t)\parallel_2^2 dx dt dg dU_0 d\boldsymbol{\mu} \end{equation*}

avec \(G\) un espace de condition limite, \(U_0\) un espace de condition initiale et \(\boldsymbol{\mu}\) un espace de paramètre.

Définition 13.5. PINO (Physic Informed Neural Operator).

Un opérateur neural discret informé physiquement pour l'EDP (13.1) est un réseau de neurones \(G_{\theta}^{+}\) prenant les entrées globales sur les maillages et minimisant la fonction de coût:

\begin{equation*} \mathcal{J}(\theta)= \mathcal{J}_1(\theta)+\mathcal{J}_2(\theta) \end{equation*}

avec

\begin{equation*} \mathcal{J}_1(\theta)= \int_{G}\int_{U_0}\int_{V_{\boldsymbol{\mu}} }\int_0^T\int_{\Omega} \parallel G_{\theta}^+(t,x,g(x),u_{0}(x),\boldsymbol{\mu}_h(x,t)) - \boldsymbol{u}(x,t)\parallel_2^2 dx dt dg dU_0 d\boldsymbol{\mu} \end{equation*}

et

\begin{equation*} \mathcal{J}_2(\theta)= \int_{G}\int_{U_0}\int_{V_{\boldsymbol{\mu}} }\int_{\Omega} \int_0^T\parallel G_{\boldsymbol{\mu}}( G_{\theta}^+(t,x,g(x),u_{0}(x),\boldsymbol{\mu}_h(x,t))) \parallel_2^2 dx dt dg dU_0 d\boldsymbol{\mu} \end{equation*}

Remarque 13.6.

Comme dans le cas discret ses intégrales sont approchées par une méthode de Monte Carlo. On va donc les remplacer par des sommes sur les exemples du jeux d'apprentissage.

On peut donner aussi en entrée les dérivées en temps et en espace des paramètres. Dans [1.6] les auteurs proposent une forme assez générale d'operateurs neuraux que nous allons re-introduire ici avant de donner plusieurs exemples d'approximation utilisée en pratiques.

Subsection 13.3.1 Introduction aux opérateurs neuronaux

Ici on cherche a construire \(G_{\theta}^+\text{.}\) Dans toute nos applications, il s'agit d'approcher l'inverse d'un operateur différentiel. On souhaite donc

  1. approcher correctement l'inverse du EDP/EDO potentiellement nonlinéaire,

  2. on souhaite un réseau qui prend en sortie une fonction et renvoie aussi une fonction, pour cela on souhaite un réseau qui prend les paramètres à n'importe quel point du maillage et renvoie la solution au même point.

Par exemple, on considère:

\begin{equation*} \left\{\begin{array}{l} -\nabla \cdot (a(\boldsymbol{x}) \nabla u)=f(\boldsymbol{x}), \quad \forall x\in \Omega \\ u(x)=0, \quad \forall x\in \partial\Omega \end{array}\right. \end{equation*}

On essaye donc de construire

\begin{equation*} G_{\theta}^+(x,a(x),f(x)):\rightarrow u(x), \quad \forall x\in \Omega \end{equation*}

On voit donc que contrairement au cas discret ou on essaye de construire un opérateur entre de grands vecteurs ici il s'agit de faire de même entre n'importe quelles valeurs locales. Un énorme avantage de cette approche est qu’ elle est indépendante du maillage, de la discrétisation contrairement à l'approche discrète. L'enjeu maintenant va être de voir quel réseau de neurones peut être utilisé pour représenter \(G_{\theta}^+\text{.}\) La première approche est de faire comme pour les PINNs et utiliser un réseau totalement connecté. Cependant cela peut être limité. En effet, si on reprend notre exemple, l'inverse de l'opérateur (que l'on souhaite approcher) est donné par

\begin{equation*} u(x)=\int_{\Omega}G_a(x,y)f(y)dy \end{equation*}

avec \(G_a\) un noyau de Green associé à l'opérateur elliptique \(-\nabla \cdot (a(\boldsymbol{x}) \nabla)\text{.}\) Il s'agit d'un opérateur intégrale et donc nonlocal en espace. Représenter cette nonlocalité juste avec réseau totalement connecté qui ne prendront en entrées que des données locales en \(x\) est possible, mais paraît difficile. En effet, le modèle devra émuler cette nonlocalité ce qui va utiliser probablement beaucoup de neurones et de couches Dans [1.6] les auteurs proposent, un nouveau type d'architecture, assez général, pour lequel ensuite il faudra donner des exemples d'implémentation. Avant d'introduire une nouveau type de couche on va proposer quelques définitions. De façon générale on suppose que les paramètres \(\bs{\mu}(x)\) sont des fonctions de type

\begin{equation*} \bs{\mu}(x):D_{\mu} \rightarrow \mathbb{R}^{d_{\mu}} \end{equation*}

Définition 13.7. Opérateur à noyau intégral.

On appelle noyau intégral l'opérateur une fonction \(v(y)\in C^0(D_t;\mathbb{R}^{n_t})\)

\begin{equation*} \mathcal{K}(v)(x)=\int k(x,y)v(y) d\nu(y),\quad \forall x\in D_{t+1} \end{equation*}

avec \(k(x,y)\in C^p(D_{t+1}\times D_t;\mathbb{R}^{n_{t+1}}\times \mathbb{R}^{n_{t}})\) et \(\nu\) une mesure. En pratique on choisit souvent la mesure de Lebesgue.

On peut proposer deux variantes de ce noyau intégral:

Définition 13.8. Opérateur à noyau intégral dépendant de paramètres.

On appelle opérateur à noyau intégral dépendant de paramètres l'opérateur qui transforme une fonction \(v(y)\in C^0(D_t;\mathbb{R}^{n_t})\) en

\begin{equation*} \mathcal{K}(v)(x)=\int k(x,y, \bs{\mu}((\Pi_{t+1}(x)),\bs{\mu}(\Pi_{t}(y)) ))v(y) d\nu(y), \quad \forall x\in D_{t+1} \end{equation*}

avec \(k(x,y,a,b)\in C^p(D_{t+1}\times D_t \times \mathbb{R}^{\mu} \times \mathbb{R}^{\mu}; \mathbb{R}^{n_{t+1}}\times \mathbb{R}^{n_{t}})\) et \(\nu\) une mesure. En pratique on choisit souvent la mesure de Lebesgue. \(\Pi_t: D_{t+1}\rightarrow D_{\mu}\) est un projecteur.

Définition 13.9. Opérateur à noyau intégrale nonlinéaire.

On appelle noyau intégrale l'opérateur non linéaire l'opérateur qui transforme une fonction \(v(y)\in C^0(D_t;\mathbb{R}^{n_t})\)

\begin{equation*} \mathcal{K}(v)(x)=\int k(x,y, v(\Pi_t(x)),v(y) )v(y) d\nu(y), \quad \forall x\in D_{t+1} \end{equation*}

avec \(k(x,y,a,b)\in C^p(D_{t+1}\times D_t \times \mathbb{R}^{n_{t}} \times \mathbb{R}^{n_{t}};\mathbb{R}^{n_{t+1}}\times \mathbb{R}^{n_{t}})\) et \(\nu\) une mesure. En pratique on choisit souvent la mesure de Lebesgue. \(\Pi_t: D_{t+1}\rightarrow D_t\) est un projecteur.

Maintenant ces définitions introduites on va définir la couche principale de ces réseaux d'apprentissage d'opérateur. L'idée est de combiner un noyau intégral et une fonction linéaire classique d'avant d'intégrer une nonlinearité. Cet opérateur intégral à noyau va permettre a priori de mieux capturer la nonlocalité du problème.

Définition 13.10. Couche d'opérateur à noyau intégral.

On appelle une couche de noyau intégrale: une fonction qui transforme une fonction \(v_t(x)\) en une fonction \(v_{t+1}(x)\) au point \(x\) de la forme:

\begin{equation*} v_{t+1}(x) = \sigma_{t+1}\left( W_t v(\pi_t(x))+ b(x) + \mathcal{K}^t(v)(x) \right) \end{equation*}

avec \(\mathcal{K}^t\) un opérateur intégral à noyau dépendant d'un noyau \(k_t\) et \(W_t \in \mathcal{M}_{d_{t+1},d_t}(\mathbb{R})\) une matrice de poids.

Si on prend pas de noyau donc \(\mathcal{K}^t(v)(x)\) on voit qu'on se retrouve avec quelque chose qui s'approche d'un réseau totalement connecté ou l'entrée une fonction spatiale \(v(x)\) au lieu d'être des données discrètes. C'est le point clé de cette théorie. Évidemment tout cela en pratique sera évalué des points, mais l'enjeu est de rendre ses opérations indépendantes de la discrétisation (nombre de points, uniforme ou non etc).

Définition 13.11. Réseau de type opérateur.

Un réseau de type opérateur est un réseau de neurones composé des couches suivantes

  1. une couche d'extrapolation \(E\) qui transforme la fonction:

    \begin{equation*} \bs{\mu}(x): D_{\mu} \rightarrow \mathbb{R}^{d_{\mu}} \end{equation*}

    en une fonction

    \begin{equation*} v_0(x): D_{\mu} \rightarrow \mathbb{R}^{d_{v_0}} \end{equation*}

    avec \(d_{v_0}>d_{\mu}\) tel que \(E(\bs{\mu}(x))=E(\bs{\mu})(x)\text{.}\)

  2. \(K\) couches d'opérateur à noyau intégral

  3. une couche de projection \(P\) qui transforme la fonction:

    \begin{equation*} v_K(x): D_K \rightarrow \mathbb{R}^{d_{v_K}} \end{equation*}

    en une fonction

    \begin{equation*} u(x): D \rightarrow \mathbb{R}^{d} \end{equation*}

    avec \(d_{v_K}>d\) tel que \(P(v_K(x))=P(v_K)(x)\)

La couche d'extrapolation est fait pour plonger les données dans un espace plus grand en espérant que la nolocalité sera plus facile à capturer. C'est la même idée que dans la régression à noyau ou on plonge les données en grande dimension avec des fonctions de redescription pour simplifier la non-linéarité. Ensuite on enchaîne les couches qui vont capturer la nonlocalité et la non-linéarité. Et la projection nous permet donc de revenir à l'espace voulu. On va maintenant détailler comme fonction ses couches.

On se donne le problème:

\begin{equation*} -\partial_x( a(x)\partial_x u(x))=f(x) \end{equation*}

Un opérateur neural serait de la forme:

\begin{equation*} G_{\theta}^{+}(f(x),a(x))\rightarrow u(x) \end{equation*}

La première couche, celle d'extrapolation, va donc transformer les deux fonctions \(f(x),a(x)\) en \(d_1\) fonctions \((v_1(x),....v_{d_1}(x))\text{.}\) Pour cela on va utiliser un MPC. On va donc obtenir comme première couche d'extrapolation:

\begin{equation*} [(v_1(x),....v_{d_1}(x))]= W [f(x),a(x)]+ b \end{equation*}

avec \(W\in \mathcal{M}_{d_1,2}(\mathbb{R})\) et \(b\in \mathbb{R}^{d_1}\) et les suivantes sont données par:

\begin{equation*} [(v_1(x),....v_{d_{L+1}}(x))]= W [(v_1(x),....v_{d_l}(x))]+ b \end{equation*}

avec \(W\in \mathcal{M}_{d_{l+1},d_{l}}(\mathbb{R})\) et \(b\in \mathbb{R}^{d_{l+1}}\text{.}\)

Avant d'introduire différent type d'opérateur neuraux on va essayer de les caractériser en pratique. La théorie introduite si dessous travaille sur des espaces de fonctions. En pratique lors de l'entrainement on va devoir discretiser les fonctions d'entrée et de sorties. Lorsqu'on parle de réseau qui vont travailler sur des espace de fonctions, ce que l'ont recherche en pratiquer ce sont des réseaux qui sont invariants par changement de discretisation des entrées et des sorties. On entend par la que

  • Condition minimiale:les résultats du réseau doivent être en gros invariant par changement de résolution

  • Condition plus forte si possible les résultats réseau doivent être en gros invariant par changement de distribution et de résolution.

Dans les deux cas on se donne une résolution minimale. En effet on peut supposer qu'il faut quand même que le gros de la fonction soit capter par la discrétisation. On peut essayer de formaliser un petit peu cela. On note \(\boldsymbol{\mu}(t,x)\) les paramètres de l'EDP.

On peut supposer que notre solution \(u(t,x)\) va être approchée par le processus suivant:

\begin{equation*} u(t,x)\approx \circ f_{\theta} \circ P_{N}( \boldsymbol{\mu}(t,x)) \end{equation*}

sur un ensemble de point \((t,x)\text{.}\) On note \(P_{\nu,N}\) un opérateur de projection des \(\boldsymbol{\mu}(t,x)\) sur un ensemble de \(N\) points tirée selon une loi de probabilité \(\mu\) et donc qui renvoit un vecteur, \(f_{\theta}\) est le réseau. La condition minimal revient a demander que

\begin{equation*} \parallel f_{\theta} \circ P_{\mathcal{E},N_1}( \boldsymbol{\mu}(t,x))- f_{\theta} \circ P_{\mathcal{E},N_2}( \boldsymbol{\mu}(t,x)) \parallel \lt \epsilon ,\forall N_1,N_2 \quad \mbox{ tel que } N_1,N_2 \gt C \end{equation*}

avec \(\mathcal{E}\) la loi qui donne une grille équi-répartie. La condition plus forte revient à

\begin{equation*} \parallel f_{\theta} \circ P_{\mathcal{E} ,N_1}( \boldsymbol{\mu}(t,x))- f_{\theta} \circ P_{\mathcal{U},N_2}( \boldsymbol{\mu}(t,x)) \parallel \lt \epsilon ,\forall N_1,N_2,\quad \mbox{ tel que } N_2, N_2 \gt C \end{equation*}

avec \(\mathcal{U}\) la loi uniforme.

Ces conditions reviennent a demander que les points appris ne dependent pas ou peu de la discrétisation et soit donc vraiment associés aux caractéristiques de la fonction. C'est pour cela qu'on parle de réseaux qui agissent sur des fonctions entre espace de Hilbert.