NN쪽은 사실상 문외한이고 예제 몇 번 해 본게 다인 수준임
현재 내가 있는 분야에서 함수 f, g, k를 인자로 하는 선형 연립 미분방정식을 풀어내는 코드가 있는데, 이 미분방정식의 해를 ML을 이용해서 풀어낼 방법이 있을까 찾아보고 있었음.
그런데 gpt한테 이걸 물어보니까 PINN을 계속 추천해 주는 거임
처음에는 그럴 듯 했는데, 들어볼수록 이건 학습 데이터를 실험으로만 얻을 수 있으며, 데이터 수가 부족한 경우에만 사용 가능한 것으로 보이더라고. 실제 측정치가 물리법칙을 지키지 않으면 그걸 보정해 주는 느낌?
그런데 이론적인 코드 같은 경우에는 애초에 완벽히 일치하는 해가 주어지잖아? 이래서 PINN이 딱히 의미가 없어보여.
내가 이해한 PINN은 대충 이런 느낌이야:
예를 들어 y'' = y를 학습하는 경우, NN과 PINN 모두 100개의 (x, y', y) 점을 학습 데이터로 사용한다 하자.
PINN이 y'과 y를 예측하면 그 예측 결과를 y'' = y에 맞춰서 비교함으로서 학습할 수 있을 거야.
그리고 NN의 경우에도 y'과 y를 예측하는데, 그 결과를 주어진 y_given 와 y'_given을 가지고 loss를 구하는 거지.
그런데 만약 이게 실험으로 얻어진 y, y'_given들이면 실험적 오차가 있어서 y''=y를 직접 넣은 PINN에 비해 정확도가 떨어지겠으나, 우리가 얻은 y, y'_given의 경우에는 수치적으로 풀어낸 해잖아? 이러면 PINN에서 loss를 구하건 y', y_given을 사용해 loss를 구하건 큰 차이가 없는 거 같거든.
그래서 질문이 두 가지 있어.
1. 위의 내 생각대로 나의 문제에 대해서는 PINN이 의미 없는게 맞을까?
2. PINN이 의미 없다면 어떤 방법론을 사용하는 게 좋을까? 이에 대한 관련된 책이나 논문이 있을까?
헛소리일가능성99.99%지만대답해봄 1. 문제설명을 정확히 들어봐야 알겠지만 PINN은 벡터공간 자체가 어떤 물리법칙에 의해 지배받고 있을때 쓰는거고 (boundary condition이 있거나 vector field 같은게 내부에 있거나 뭐 이런경우) 지금 케이스하고는 조금 다른거같음 2. 선형(이 아니더라도) 미방이 주어졌을때 계산자원의 한계가 없다치면 가장 무식하게 목적함수 때려박는 방법은 NODE 논문에도 쓰이고 요새도 종종 쓰이는 self-adjoint method인데, 문제에 적용 가능한지 확인해봐... 나도 해봤지만 일차미방에 대해서만 유의미하게 동작하는 경우가 많아서
논문 한번 읽어보고 적용 가능한지 체크해보는게 좋을듯
일단 ㄱㅅㄱㅅ 좀 더 찾아볼게
물리식을 제약조건으로 학습시키는 것도 PINN이고 그걸 이용해서 미분방정식의 근사해를 구하는 것도 PINN임
미안한데 좀 더 자세히 설명해줄 수 있을까
어떻게 구성 하냐는 사람마다 다르긴 한데 대략 설명해주면 일반해를 NN모델 f(x)로 정의하고 f(x)의 자동 미분으로 계산한 미분방정식 값과 실제 미분방정식의 값이 같아지도록 학습하는 거임. 그러니까 "데이터 손실"와 "물리 손실"가 있다고 하면 "데이터 손실"는 초기 조건이 되는 거고 "물리 손실"는 미분방정식의 근사회를 학습시키는 파트인거지
음 그러면 나 같은 경우에는 딱히 물리손실로 따로 정의할만한 condition 예를 들면 nabla v =0 같은 식이 존재하지는 않으니까 사용이 애매한건가
아니 음 댓으로 대충 설명하려니까 좀 번거롭긴 한데 그 니가 알고 있는 미분방정식이 g이고 그 미분 방정식의 일반해를 f라고 하자 그럼 너는 NN모델로 f_hat을 정의하고 자동미분으로 심볼릭하게 g_hat이라는 식을 만드는거임 그 후 g - g_hat이 0이 되도록 학습을 하면 일반해 f를 근사화한 f_hat을 구할 수 있다는 거지
내가 찾아본걸로는 NN은 /입력층/은닉층/출력층/이렇게 구성되어있는데 PINN의 경우/입력층/은닉층/출력층/은닉층2/결과층2 이런 식으로 구성되고 은닉층2에다가 내가 원하는 g라는 미분방정식을 자동미분으로 구현해서 넣어놓고 저 결과층2의 loss가 0이 되도록 만드는 것이다 이렇게 이해하면 되나?
거기를 은닉층, 결과층 그런식으로 부르지 않지만... 그냥 일단은 대충 그렇게 이해해라... 공부해보다면 알거다. 어찌됬건 니가 말한거 되긴 한다.
ㄱㅅㄱㅅ 저걸 뭐라 부를 지 모르겠어서 일단 은닉층2 결과층2라고 불렀음 ㅈㅅ