Abaixo, apresentarei a rede neural de conhecimento de física incorporada (PINN) para resolver equações diferenciais. Primeiro, o método básico do PINN é introduzido e, com base na estrutura de solução PINN de Pytorch, a equação unidimensional do hambúrguer com termo de tempo é resolvida.
Rede neural de conhecimento físico incorporado (PINN) Introdução e documentos relacionados
Aprendizagem profunda para resolver equações diferenciais Série 1: Estrutura de solução PINN (Poisson 1d)
Aprendizagem profunda para resolver equações diferenciais Série 2: PINN para resolver problemas avançados de equações de hambúrguer
Aprendizagem profunda para resolver equações diferenciais Série 3: PINN resolve o problema inverso da equação do hambúrguer
Deep learning para resolver a equação diferencial série IV: Baseado na função de ativação adaptativa PINN resolve o problema inverso da equação do hambúrguer
Deep learning para resolver a equação diferencial série V: PINN resolve o problema direto e inverso da equação de Navier-Stokes
1. Introdução ao PINN
Como uma poderosa ferramenta de processamento de informações, a rede neural tem sido amplamente utilizada nas áreas de visão computacional, biomedicina e engenharia de petróleo e gás, desencadeando mudanças tecnológicas em muitos campos. A rede de aprendizagem profunda tem uma capacidade de aprendizagem muito forte, não só pode descobrir leis físicas, mas também resolver equações diferenciais parciais. Nos últimos anos, a solução de equações diferenciais parciais com base em aprendizado profundo tornou-se um novo foco de pesquisa. A rede neural informada pela física incorporada (PINN) é uma aplicação de máquinas científicas no domínio numérico tradicional, que pode ser usada para resolver vários problemas relacionados a equações diferenciais parciais (PDE), incluindo resolução de equações, inversão de parâmetros, descoberta de modelos, controle e otimização etc
2. Método PINN
A ideia principal do PINNN é mostrada na Figura 1, primeiro construa um resultado de saída como u ^ \hat{u}você^ 's rede neural, que é usada como um modelo proxy para a solução PDE, e a informação PDE é usada como uma restrição, codificada na função de perda de rede neural para treinamento. A função de perda inclui principalmente quatro partes: perda de estrutura diferencial parcial (perda de PDE), perda de condição de valor de contorno (perda de BC), perda de condição de valor inicial (perda de IC) e perda de condição de dados reais (perda de dados).
Em particular, considere o seguinte problema de EDP, onde a solução da EDP u ( x ) u(x)u ( x )在Ω ⊂ R d \Omega \subset \mathbb{R}^{d}Oh⊂Rd definição, ondex = ( x 1 , … , xd ) \mathbf{x}=\left(x_{1}, \ldots, x_{d}\right)x=( x1,…,xd):
f ( x ; ∂ u ∂ x 1 , … , ∂ u ∂ xd ; ∂ 2 u ∂ x 1 ∂ x 1 , … , ∂ 2 u ∂ x 1 ∂ xd ) = 0 , x ∈ Ω f\left( \mathbf{x} ; \frac{\parcial u}{\parcial x_{1}}, \ldots, \frac{\parcial u}{\parcial x_{d}} ; \frac{\parcial^{2} u}{\parcial x_{1} \parcial x_{1}}, \ldots, \frac{\parcial^{2} u}{\parcial x_{1} \parcial x_{d}} \direita)=0 , \quad \mathbf{x} \in \Omegaf( x ;∂ x1∂ você,…,∂ xd∂ você;∂ x1∂ x1∂2 e,…,∂ x1∂ xd∂2 e)=0 ,x∈ΩAo
mesmo tempo, satisfaça o seguinte limite
B ( u , x ) = 0 em ∂ Ω \mathcal{B}(u, \mathbf{x})=0 \quad \text { on } \quad \partial \OmegaB ( u ,x )=0 sobre ∂ Ω
O processo de solução PINN inclui principalmente:
- O primeiro passo é definir o modelo de rede neural da camada totalmente conectada da camada D:
N Θ : = LD ∘ σ ∘ LD − 1 ∘ σ ∘ ⋯ ∘ σ ∘ L 1 N_{\Theta}:=L_D \circ \ sigma \circ L_{D-1} \circ \sigma \circ \cdots \circ \sigma \circ L_1Nº:=euD∘p∘euD - 1∘p∘⋯∘p∘eu1
式中:
L 1 ( x ) : = W 1 x + b 1 , W 1 ∈ R d 1 × d , b 1 ∈ R d 1 L i ( x ) : = W x + bi , Wi ∈ R di × di − 1 , bi ∈ R di , ∀ i = 2 , 3 , ⋯ D − 1 , LD ( x ) : = WD x + b D , WD ∈ RN × d D − 1 , b D ∈ RN . \begin{aligned} L_1(x) &:=W_1 x+b_1, \quad W_1 \in \mathbb{R}^{d_1 \times d}, b_1 \in \mathbb{R}^{d_1} \\ L_i (x) &:=W_i x+b_i, \quad W_i \in \mathbb{R}^{d_i \times d_{i-1}}, b_i \in \mathbb{R}^{d_i}, \forall i =2,3, \cdots D-1, \\ L_D(x) &:=W_D x+b_D, \quad W_D \in \mathbb{R}^{N \times d_{D-1}}, b_D \ em \mathbb{R}^N . \end{alinhado}eu1( x )eueu( x )euD( x ): =C1x+b1,C1∈Rd1× d ,b1∈Rd1: =Ceux+beu,Ceu∈Rdeu× deu - 1,beu∈Rdeu,∀ eu=2 ,3 ,⋯D−1 ,: =CDx+bD,CD∈RN × dD - 1,bD∈RN. _
e σ \sigmaσ é a função de ativação,WWW ebbb são os parâmetros de ponderação e viés. - A segunda etapa, para medir a rede neural u ^ \hat{u}vocêL ( θ ) = wf LPDE ( θ ; T f ) + wi LIC ( θ ; T i ) + wb LBC ( θ , ; T b ) + wd LD ata(
θ , ; T data ) \mathcal{L}\left(\boldsymbol{\theta}\right)=w_{f} \mathcal{L}_{PDE}\left(\boldsymbol{\theta}; \mathcal{ T}_{f}\direita)+w_{i} \mathcal{L}_{IC}\left(\boldsymbol{\theta} ; \mathcal{T}_{i}\direita)+w_{b} \mathcal{L}_{BC}\left(\boldsymbol{\theta},; \mathcal{T}_{b}\right)+w_{d} \mathcal{L}_{Data}\left(\ boldsímbolo{\theta},; \mathcal{T}_{data}\right)eu( eu )=cfeuP D E( eu ;Tf)+ceueueu C( eu ;Teu)+cbeuB C( eu ,;Tb)+cdeuD a t a( eu ,;Td a t a)
onde:
LPDE ( θ ; T f ) = 1 ∣ T f ∣ ∑ x ∈ T f ∥ f ( x ; ∂ u ^ ∂ x 1 , … , ∂ u ^ ∂ xd ; ∂ 2 u ^ ∂ x 1 ∂ x 1 , … , ∂ 2 u ^ ∂ x 1 ∂ xd ) ∥ 2 2 LIC ( θ ; T i ) = 1 ∣ T i ∣ ∑ x ∈ T i ∥ u ^ ( x ) − u ( x ) ∥ 2 2 LBC ( θ ; T b ) = 1 ∣ T b ∣ ∑ x ∈ T b ∥ B ( u ^ , x ) ∥ 2 2 LD ata ( θ ; T dados ) = 1 ∣ T dados ∣ ∑ x ∈ T dados ∥ u ^ ( x ) − u ( x ) ∥ 2 2 \begin{aligned} \mathcal{L}_{PDE}\left(\boldsymbol{\theta} ; \mathcal{T}_{f}\right) &=\frac{1 }{\left|\mathcal{T}_{f}\right|} \sum_{\mathbf{x} \in \mathcal{T}_{f}}\left\|f\left(\mathbf{x } ; \frac{\parcial \hat{u}}{\parcial x_{1}}, \ldots, \frac{\parcial \hat{u}}{\parcial x_{d}} ; \frac{\parcial ^{2} \hat{u}}{\parcial x_{1} \parcial x_{1}}, \ldots, \frac{\partial^{2} \hat{u}}{\parcial x_{1} \parcial x_{d}} \right)\right\|_{2}^{2} \\ \mathcal{L}_{IC}\left(\boldsymbol{\theta};\mathcal{T}_{i}\direita) &=\frac{1}{\esquerda|\mathcal{T}_{i}\direita|} \sum_{\mathbf{x}\in \mathcal{T }_{i}}\|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_{2}^{2} \\ \mathcal{L}_{BC} \left(\ballsymbol{\theta};\mathcal{T}_{b}\right) &=\frac{1}{\left|\mathcal{T}_{b}\right|}\sum_{\ mathbf{x} \in \mathcal{T}_{b}}\|\mathcal{B}(\hat{u}, \mathbf{x})\|_{2}^{2}\\ \mathcal {L}_{Data}\left(\bold symbol{\theta}; \mathcal{T}_{data}\right) &=\frac{1}{\left|\mathcal{T}_{data} \ direita|} \sum_{\mathbf{x} \in \mathcal{T}_{dados}}\|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_ { 2}^{2} \end{alinhado}=\frac{1}{\left|\mathcal{T}_{b}\right|}\sum_{\mathbf{x}\in \mathcal{T}_{b}}\|\mathcal{B} (\hat{u}, \mathbf{x})\|_{2}^{2}\\ \mathcal{L}_{Data}\left(\bold symbol{\theta}; \mathcal{T} _ {data}\right) &=\frac{1}{\left|\mathcal{T}_{data}\right|} \sum_{\mathbf{x}\in \mathcal{T}_{data} } \|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_{2}^{2} \end{alinhado}=\frac{1}{\left|\mathcal{T}_{b}\right|}\sum_{\mathbf{x}\in \mathcal{T}_{b}}\|\mathcal{B} (\hat{u}, \mathbf{x})\|_{2}^{2}\\ \mathcal{L}_{Data}\left(\bold symbol{\theta}; \mathcal{T} _ {data}\right) &=\frac{1}{\left|\mathcal{T}_{data}\right|} \sum_{\mathbf{x}\in \mathcal{T}_{data} } \|\hat{u}(\mathbf{x})-u(\mathbf{x})\|_{2}^{2} \end{alinhado}euP D E( eu ;Tf)eueu C( eu ;Teu)euB C( eu ;Tb)euD a t a( eu ;Td a t a)=∣ Tf∣1x ∈ Tf∑∥∥∥∥f( x ;∂ x1∂você^,…,∂ xd∂você^;∂ x1∂ x1∂2você^,…,∂ x1∂ xd∂2você^)∥∥∥∥22=∣ Teu∣1x ∈ Teu∑∥você^ (x)−u ( x ) ∥22=∣ Tb∣1x ∈ Tb∑∥ B (você^ ,x ) ∥22=∣ Td a t a∣1x ∈ Td a t a∑∥você^ (x)−u ( x ) ∥22
wf w_{f}cf,wi w_{i}ceu、wb w_{b}cbe wd w_{d}cdé o peso. T f \mathcal{T}_{f}Tf,T i \mathcal{T}_{i}Teu、T b \mathcal{T}_{b}TbE dados T \mathcal{T}_{data}Td a t aRepresenta os pontos residuais do PDE, valor inicial, valor limite e valor verdadeiro. Aqui T f ⊂ Ω \mathcal{T}_{f} \subconjunto \OmegaTf⊂Ω é um conjunto predefinido de pontos para medir a saída da rede neuralu ^ \hat{u}você^ Extensão da correspondência com PDE. - Finalmente, use o algoritmo de otimização de gradiente para minimizar a função de perda até que os parâmetros de rede que atendam à precisão da previsão sejam encontrados. KaTeX parse error: Undefined control sequence: \theat at position 1: \̲t̲h̲e̲a̲t̲^{*} .
Vale a pena notar que para problemas inversos, ou seja, alguns parâmetros na equação são desconhecidos. Se apenas a equação PDE e as condições de contorno forem conhecidas, e os parâmetros PDE forem desconhecidos, o problema inverso é um problema indeterminado, então outras informações devem ser conhecidas, como alguns pontos de observação uuo valor de vc . Nesse caso, o método PINN pode usar os parâmetros na equação como variáveis desconhecidas e adicioná-los ao treinador para otimização. A função de perda inclui a perda de dados.
3. Resolução da definição do problema - problema positivo
ut + uux = vuxx , x ∈ [ − 1 , 1 ] , t > 0 u ( x , 0 ) = − sin ( π x ) u ( − 1 , t ) = u ( 1 , t ) = 0 \begin {alinhado} u_t+u u_x &=v u_{xx}, x \in[-1,1], t>0 \\ u(x, 0) &=-\sin (\pi x) \\ u( -1, t) &=u(1, t)=0 \end{alinhado}vocêt+u u uxu ( x ,0 )u ( − 1 ,t )=vc _x x,x∈[ -1 , _1 ] ,t>0=−pecado ( π x )=u ( 1 ,t )=0
Onde: parâmetro v ∈ [ 0 , 0.1 / π ] v \in[0,0.1 / \pi]v∈[ 0 ,0,1 / π ] . _ _ A solução numérica é obtida pela transformação de Hopf-Cole, conforme mostra a Figura 2.
Requisitos da tarefa:
- A tarefa resolve u para condições de contorno conhecidas e equações diferenciais.
4. Exibição de resultados
Os resultados da previsão são mostrados na Figura 3-5. Além disso, vale ressaltar que o algoritmo utiliza inicialização randômica da rede, quando a inicialização não for boa, aparecerá o erro de treinamento mostrado na Figura 5.
Os resultados da previsão durante o treinamento são mostrados na Figura 4-5.