잡다구리 너구리

[PINN] Physics-Informed Neural Network란?? 본문

인공지능/Deep Learning

[PINN] Physics-Informed Neural Network란??

너굴뽀이 2023. 8. 15. 02:48

 현재 인공지능이 화두가 되며, 기계공학과에서도 한창 기존의 산업에 이를 적용시키려는 연구가 진행 중이다. 그중 가장 뜨거운 주제는 Physics-Informed Neural Network, 일명 PINN이다. PINN에 관한 연구는 대한기계학회를 비롯한 기계 쪽의 학회에 가면 심심찮게 찾아볼 수 있다. 본문에서는 PINN이 왜 기계공학과에서 각광받게 되었는지와 PINN의 개념에 대해 간단하게 살펴보고자 한다. 기계공학뿐만 아니라 여러 분야에서도 쓰이겠지만, 어디까지나 내가 경험해 본 기계공학의 입장에서만 서술해 본다.

 

PINN의 배경

 충돌 분석, 유체의 흐름 등의 여러 공학적 문제를 모델링하고 해석할 때 Comsol, Abaqus와 같은 여러 해석 툴들이 사용된다. 이러한 해석 툴들은 다 편미분 방정식(Partial Differential Equation, PDE)를 기반으로 한다. 즉, 이 세상의 모든 문제에는 일종의 지배 방정식이 작용을 하며, 이를 품으로써 원인에 대한 인과 관계를 파악하는 것이다. 그렇다면 우리는 이러한 편미분 방정식을 푸는 데에 집중을 하여야 하는데, 기존에는 주로 수치해석적 방법을 통해 이를 풀었다. 이러한 전통적인 수치해석 방법에는 유한요소법(FEM), 유한차분법(FDM), 유한체적법(FVM) 등이 있다. 해석 툴을 다뤄본 경험이 있는 사람이라면 Mesh를 어떻게 구성하냐에 따라 결과에 큰 영향을 끼치는 것을 알고 있다. 이로써 알 수 있듯이 전통적인 수치해석 방법은 다 Mesh를 기반으로 한다. 그러다 보니 계산 비용(Computation cost)가 매우 높으며, 미세하고 복잡한 형상에는 Mesh를 적용하기가 어렵다.

 

 이러한 배경으로 물리적 정보를 기반으로 편미분 방정식을 푸는 PINN이 기계공학과에서 유행을 선도하고 있다. 이전의 데이터 기반으로 많은 데이터를 필요로 했던 신경망들과는 달리 편미분 방정식의 물리적 정보를 고려하여 훈련을 하기 때문에 학습 데이터가 많이 필요하지도 않으며, 학습 속도 또한 매우 빠른 편에 속한다. 마지막으로 Mesh-free 방법이기 때문에 복잡한 형상에서도 효과적으로 사용이 가능하다. 그렇기 때문에 최근에는 PINN을 시작으로 다양한 물리적 정보를 적용하며, 더 나아가 학습 데이터를 필요로 하지 않는(Unsupervised 한 특성을 가진) 알고리즘에 대한 연구가 많이 진행되고 있다. 특히 이러한 딥러닝 프레임워크들이 추후 해석 툴들을 대체할 수 있는가에 대해 기계공학과 내에서는 여러 의견들이 나오고 있다. 이에 대해 개인적인 생각을 나중에 따로 작성해 보도록 하겠다.

 

PINN의 구조

 이것이 PINN의 기본적인 프레임워크로 Burger's Equation에 관한 Figure이다. 그림을 통해 확인을 해보면 Input으로 x, t를 넣어 u가 나온다. 이때 u에서 나오는 Loss function(빨간 화살표)이 Data로부터 나온 Loss 값이다. 일반적인 신경망은 이것만 가지고 Optimization 과정을 거치겠지만, PINN은 물리적 정보를 통해 편미분 방정식을 충족하도록 강제하기 때문에 물리적 정보에 대한 Loss function이 사용된다. 이것이 파란 네모 박스의 부분이다. 만약 input으로 넣은 x와 t에 대해 PINN이 올바른 u를 예측해낸다면 연두색 네모 박스 안에 있는 Burger's Equation의 결괏값이 0이 나올 것이다.(Burger's Equation에 대한 자세한 내용은 구글에 검색하도록 하자). 예측이 부정확할수록 해당 값은 0과 점점 멀어지는데, 이 값이 PDE의 Loss function이다.

 

 Data를 통해 얻은 Loss + PDE로부터 얻은 Loss = Total Loss 가 되어 이를 바탕으로 신경망이 손실 함수를 최소화시키는 방향으로 업데이트되는 것이다. 

 

글을 마치며

 사실 내가 현재 다루고 있는 알고리즘은 PINN이 아니지만, 워낙 PINN이 유명하기도 하고, 흐름상 PINN이 먼저 나와줘야 될 것 같아, 1년 전의 기억을 더듬어 적어보았다. 언제나 그렇듯이 잘못된 정보에 대한 태클은 환영이다. 사실 해당 알고리즘에 대해 가장 확실하게 아는 법은 코드를 직접 봐야 된다고 생각하기 때문에 추후 PINN에 대한 Burger's Equation의 예제 코드를 통해 코드를 분석하는 글을 올려보고자 한다.