[딥러닝]/[PINN]

[PINN] 물리 정보 신경망 - PINN 이란?

딥러닝 도전기 2022. 1. 1. 23:25

[PINN] 물리 정보 신경망 - PINN 이란?

PINN(Physics-Informed Neural Network)란 이름 그대로 물리적 정보를 담는 신경망을 의미합니다.

예를 들면 heat equation을 Neural Network로 나타내는 것을 PINN이라고 할 수 있습니다.

 

heat equation은 편미분방정식으로 표현됩니다. 저는 PINN을 PDE solver로 이해했습니다.

 

PINN의 아이디어에 대한 간단한 예제로 소개를 드리도록 하겠습니다.

다음의 블로그를 참고하였음을 미리 밝힙니다.

https://towardsdatascience.com/using-neural-networks-to-solve-ordinary-differential-equations-a7806de99cdd

 

Using Neural Networks to solve Ordinary Differential Equations

A fast guide to how to use Neural Networks to solve ODEs. Mathematical description and a Tensorflow implementation.

towardsdatascience.com


우선 PDE로 접근하기 전에 ODE로 접근을 해보도록 하겠습니다.

이번 포스팅에서는 ODE만 다루고 다음 포스팅에 PDE를 다루도록 하겠습니다.

 

다음의 ODE system이 있다고 생각해봅시다.

$$u' = f(u, t), t\in [0, 1]$$

$$ u(0) = u_0 $$

 

우리의 목표는 여기에서 $u(t)$를 근사하는 Neural Network를 찾는 것 입니다.

찾으려는 Neural Network를 $NN(t)$라고 한다면

 

$$NN(t) \approx u(t)$$ 이며, $u' = f(u, t)$이기 때문에 $NN(t)$의 도함수를 다음과 같이 쓸 수 있습니다..

$$NN'(t) = f(NN(t), t)$$

 

여기에서 $NN(t)$가 정말로 $u(t)$에 잘 근사한다면 다음이 성립합니다.

$$NN'(t) \approx f(u, t)$$

 

여기에서 도함수를 사용하여 Loss function을 정의하는 것이 포인트입니다.

Loss function을 다음과 같이 정의해보도록 하겠습니다.

 

$$L = \sqrt{\sum_i ((\frac{dNN(t_i)}{dt} - f(u, t_i))^2}$$

 

위 식을 생각해보면 Neural Nework인 $NN(t)$의 미분계수를 $u(t)$의 미분계수에 근사시키는 방법으로 생각하시면 될 것 같습니다.

위의 Loss값으로 학습을 시키게 되면 $NN(t)$의 미분계수가 $u(t)$의 미분계수에 근사하게 될 것으로 기대합니다.

 

하지만 위에서 사용한 방법으로는 $ u(0) = u_0 $로 주어진 초기조건을 사용하지 않았기 때문에 기울기는 근사하게 되지만, 무수히 많은 해가 탄생할 것입니다.

이 문제를 해결하기 위해서 Loss function을 다음과 같이 다시 정의해보겠습니다.

$$L = \sqrt{(NN(0)-u_0)^2} + \sqrt{(\sum_i (\frac{dNN(t_i}{dt} - f(u,t_i))^2)}$$

 

이렇게 정의하고 보면 초기값 $NN(0)$ 또한 $u_0$에 근사하게 되어 한 개의 해가 탄생하게 됩니다.

 


방향을 약간 바꾸어서, 새로 정의하는 함수 $g(t)$를 $u(t)$에 근사시켜보도록 하겠습니다.

(여기에서는 $NN(t)$를 $u(t)$에 근사하는 것이 아니고, $g(t)$를 $u(t)$에 근사하는 것입니다. $NN(t)$는 여전히 Neural Network의 함수입니다.)

 

초깃값을 해결하기 위해, 약간의 트릭을 사용하여 $g(t)$라는 함수를 다음과 같이 정의해보겠습니다.

$$g(t) = u_0 + tNN(t)$$

그러면 $t = 0$일 때, $g(0) = u_0$을 만족하기 때문에 초기값 조건을 만족합니다.

 

Loss function을 이에 맞게 다시 정의하면

$$L = \sqrt{\sum_i (\frac{dg(t_i)}{dt} - f(u(t_i), t_i)^2}$$

입니다.

 

위의 Loss function을 사용하여 $u(t)$를 근사하는 함수 $g(t)$를 찾아낼 수 있습니다.

 

 

반응형