티스토리 뷰

1. Introduction

 

Data에 100% 의존하지 않고, 우리가 선험적으로 알고 있는 지식을 활용해서

보다 적은 수의 데이터를 활용하면서 동시에 기존 Domain knowledge를 잘 융합하는 것에 대한 키워드이다.

Brown 대학에서 publish한 논문이 꽤 유명하다.

"Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations"

19년도에 나온 논문인데 인용수가 3천이 넘었다.

위 논문에서 여러 가지 analytical solution이 존재하는 ODE/PDE를 PINN으로 구현하고 코드를 공개해두었다.

해당 링크: https://github.com/maziarraissi/PINNs

 

GitHub - maziarraissi/PINNs: Physics Informed Deep Learning: Data-driven Solutions and Discovery of Nonlinear Partial Differenti

Physics Informed Deep Learning: Data-driven Solutions and Discovery of Nonlinear Partial Differential Equations - GitHub - maziarraissi/PINNs: Physics Informed Deep Learning: Data-driven Solutions ...

github.com

 

그리고:  Deepxde라는 라이브러리를 개발하여 PINN을 구현하는데 필요한 라이브러리를 공개하면서 SIAM저널에 낸 논문을 발견할 수 있다.

21년도에 나온 논문인데 인용수가 489..!

 

PINN은 어쩌면 디지털 트윈에서의 가장 핵심적인 기술이 될 수 도 있을 것 같다.

 

포항공대의 이승철 교수님 연구팀에서 관련 연구를 follow-up하다는 것을 알게 되었고,

 

유튜브에 관련 영상 몇개가 올라와서 그것을 바탕으로 내 컴퓨터 GPU 세팅에서 실습을 해보았다.

 

내가 보려고 올리는 유튜브 링크: https://www.youtube.com/watch?v=vFghJ0r39K4 

물리지식기반 인공신경망 (PINN) 소개 및 구현 자료

 

2. 실습 예제 및 코드

여기에 full-code가 공개되어 있다.

출처: https://drive.google.com/file/d/1K608M2fwNwUOmhv-ouovVc0AImaPVvRQ/view

 

09_PINN_tf2.pdf

 

drive.google.com

 

Step 1. Import library

Step 2. Define Network and hyperparameters

Hidden layer = 2^5, activation function = tanh를 사용했다.
ADAM optimizer LR = e-3

 

Step 3. Define ODE system

ode_system이라는 function define - ODE LOSS가 들어가있다.

Step 4. Train & Prediction

수렴이 잘 되었는지 확인해보자.

Step 5. Test

Test 결과를 3가지 비교할 수 있다. (exact solution이 있는 특별한 경우이기 때문)

 

Results: 오차가 꽤 크지만 얼추 따라간다는 정도 확인이 가능하다.

 

여러 가지 하이퍼 파라미터를 더 조절해서 읨의로 SIMULATION을 더 해보았다.

 

Case study: hidden layer를 2배 늘린 경우 (= 2^6)

 1차 시도: 실패: Score가 떨어지지 않았다.

 2차 시도: hidden layer의 층을 2배 늘린 경우 (뉴런 갯수 고정) 성공: accuracy가 좋아졌다.

 

불과 한층만 같은 갯수의 뉴런으로 쌓았을 뿐인데도, accuracy가 훨씬 좋아진 모습이다.

 

 

3. 짧은 포스팅을 마치며 후기

짧은 실습 후기로 몇 가지 insights를 얻었다.

 

 1. 방법론이 working 한다는 것 자체는 이미 학계에서 관심을 끌었다. 다시 말하여, 내 분야에 잘 접목하여 이를 적용할 수 있으면 충분히 융합 연구 및 분야 확장성 측면의 큰 강점을 가져갈 수 있다. 왜냐하면 나만의 "domain knowledge"가 있기 때문이다.

 

 2. Hyper parameter optimization이 굉장히 중요하다.

 경험적인 부분이 굉장히 크게 작용한다는 점을 알 수 있었다. 손을 많이 탄다는 것은, case-by-case로 NN이 적용될 수 있다는 것을 뜻하기도 한다. Universial approximator를 얼마나 잘 활용하느냐는 것은 결국 DL engineer의 역량이 될 것이다.

 

3. HP optimization platform & methodology 연구에 대해서도 관심을 기울이자.

 PINN이 WORKING 한다는 것에 대해서는 어느 정도의 consensus가 모아진 상황이다. 그 다음으로는? accracy를 얼마나 보장해줄 수 있을 것인지 다시 말하여, local 문제들에 대해서도 적용할 수 있는 generalized hyperparameter optimization이 큰 키워드로 떠오르게 된다. 논리상 그게 맞다.

 

4. Big group에서의 최신 연구를 계속 follow-up 해보자.

 CS 분야라 그런지 업데이트 속도가 굉장히 빠르고 많은 사람들이 관심을 갖는 것 같다. 브라운 대학의 최신 연구들을 잘 팔로우업 해보면 leading researcher는 아니더라도 fast-follower는 가능할 것이라고 생각이 든다.

 

다음 포스팅에서는 HP optimization에 대해 포스팅할 예정이다.

 

오늘의 일기 끝.