[PINN] 물리 정보 신경망 - PINN 이란?
PINN(Physics-Informed Neural Network)란 이름 그대로 물리적 정보를 담는 신경망을 의미합니다.
예를 들면 heat equation을 Neural Network로 나타내는 것을 PINN이라고 할 수 있습니다.
heat equation은 편미분방정식으로 표현됩니다. 저는 PINN을 PDE solver로 이해했습니다.
PINN의 아이디어에 대한 간단한 예제로 소개를 드리도록 하겠습니다.
다음의 블로그를 참고하였음을 미리 밝힙니다.
우선 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)$를 찾아낼 수 있습니다.