잡다구리 너구리

[수치해석] Forward Problem vs Inverse Problem 본문

이론적 배경

[수치해석] Forward Problem vs Inverse Problem

너굴뽀이 2025. 5. 24. 20:15

 학부 때 주 연구가 Inverse Problem, 역문제를 해석하는 연구였다. 당시에는 Forward Problem(순방향 문제)와 Inverse Problem(역문제)에 대한 구분이 코에 걸면 코걸이, 귀에 걸면 귀걸이 느낌이 강했던 것 같다. 단순히 원인과 결과를 기준으로 원인을 바탕으로 결과를 예측하면 순방향 문제이고, 결과로 원인을 예측하면 역문제이기에 A에서 B를 예측한다는 점에서 비슷하지 않았나 하는 느낌. 그래서 다른 연구에도 역문제라고 생각되는 문제에 인공 신경망을 도입해서 해결해보려 한 적도 있는데, 쉽게 되지 않았다. 이는 역문제의 특성 때문이라는 걸 알게 되었는데, 한 번 순방향 문제와 역문제에 대한 차이점을 정리해볼까 한다.

 

Forward Problem(순방향 문제)란?

 

  Forward Problem, 순방향 문제는 우리가 쉽게 접하는 문제이다. 역학 수업에서 듣는 지배 방정식을 통해 답을 모든 문제가 순방향 문제이기 때문이다. 순방향 문제를 정의하면, 지배 방정식, 경계 조건, 초기 조건, 물성치 등이 주어졌을 때, 그 시스템의 출력(응답)을 계산하는 문제이다. 즉, 원인을 알고 있을 때 결과를 구하는 문제이다. 물체에 힘을 주었을 때 얼마만큼 변형되는지, 어떤 부위에 응력이 집중되는지 이런 문제들이 모두 순방향 문제이다. 집중 하중이 걸린 단순 지지 보의 최대 처짐을 예로 들어보겠다.

 

$$\delta_{\text {max}} = \frac {P L^3}{48 E I}$$

 

 우리는 위와 같이 단순 지지보의 최대 처짐에 대한 지배방정식을 알고 있다. 또한 문제에 대한 계수인 탄성 계수(Young's Modulus) $E$와 단면 2차 모멘트 $I$도 알고 있다. 이제 입력 값인 보의 길이 $L$과 집중 하중 $P$만 알고 있으면, 자동적으로 방정식을 통해 최대 처짐 값인 $\delta$를 구할 수 있다. 이와 같이 일반적으로 지배 방정식을 푸는 문제가 순방향 문제이며, 자연적으로 우리가 해석을 하는 대부분 문제가 순방향 문제이다. 때문에 well-posed, 해가 존재하고 유일하며, 입력에 대해 연속적으로 변화한다는 특성을 가지고 있다. 

 

 

Inverse Problem(역문제)란?

 

 그렇다면 Inverse Problem(역문제)란 무엇일까? 순방향 문제가 원인으로부터 결과를 추정하는 문제라면, 반대로 역문제는 결과로부터 원인을 추정하는 문제이다. 원인이란 입력값이 될 수도 있고, 해당 시스템의 계수가 될 수도 있다. 수학적으로 정의하면 다음과 같다.

 

$$\mathcal{F}(u) =y$$

 

 위의 연산자 $\mathcal{F}$에 대해, $y$는 관측값(output), $u$는 원인(input 또는 계수)이 된다. 관측된 $y$를 바탕으로 $u$를 추정하는 것이 Inverse Problem이고, $u$를 바탕으로 $y$를 구하는 것이 Forward Problem이다. 위의 처짐 방정식을 예로 들면, $\delta$를 바탕으로 계수인 $E, I$나 입력 값인 $L, P$를 구하는 것이 역문제이다. 때문에 역문제를 처음 접했을 때는 개인적으로 순방향 문제보다 유용하다는 생각이 들었다. 단순하게만 생각해도 역문제를 자유자재로 풀 수 있다면 할 수 있는 것이 많기 때문이다. 센서 데이터만을 바탕으로 시스템에 대한 입력값을 구할 수도 있고, 내가 원하는 값을 유도할 수 있는 시스템을 만들 수도 있기 때문이다.

 

 하지만 이것이 어려운 이유가 있다. 해가 무조건 존재하고 유일한 well-posed한 특성을 갖는 순방향 문제와는 달리, 역문제는 다음과 같은 문제가 있다. 첫 번째로는 해의 존재성이 없을 수도 있다는 점이다. 현실 상황을 생각하면, 관측된 값인 $y$는 센서로부터 얻은 값일 수도 있다. 그렇다면 센서에 대한 오류를 포함한 값일 수도 있다는 것이다. 관측값 $y$가 오차를 포함하거나 이상치(error) 일 경우, $u$를 찾지 못할 수 있다. 두 번째로는 해의 유일성이 없다는 점이다. 이것이 글 시작에 언급했던 입력값을 찾기 위해 아무 문제나 역문제를 풀려했다가 실패한 이유인데, 관측값인 $y$에 대해 단 하나의 $u$가 있을지 보장하지 못한다는 점 때문이다. 즉 다양한 $u$가 동일한 $y$를 만들 수 있다는 것인데, 이 때문에 인공 신경망으로 풀려고 했다가 신경망 자체가 수렴하지 못하였다. 세 번째는 해의 불안정성인데, 작은 관측 오차가 큰 추정 오차를 유발할 수 있다는 점이다. 즉 약간의 오차에도 민감도가 크다. 이런 부분들을 묶어서 ill-posed problem이라 부른다.

 

 이런 어려움에도 불구하고 Inverse Problem에 대한 연구가 다양하게 진행되는 이유는 다음과 같다. 대부분의 현실에서 발생하는 문제는 Inverse Problem이라는 점 때문이다. 물리 법칙, 시스템 모델, 초기 조건 같은 부분들을 완벽하게 아는 경우가 없고, 센서, 영상, 신호, 측정값 같은 관측 데이터만으로 무슨 일이 일어났는지를 추정해야 되는 문제가 많다. 예를 들어, CT 촬영에서 X-ray 이미지를 가지고 인체 내부 구조를 구하거나, 항공 우주 분야에서는 레이더 반사 신호만을 가지고 목표물의 위치, 속도 등을 구한다던가. 기술적인 문제에서도 디자인, 최적화, 제어 등은 모두 Inverse Problem의 관점이다. 목표 성능을 위해서 어떤 설계를 해야 될지, 목표 거동을 위해 어떤 매개 변수들을 사용할지 모두 역문제인 것이다.

 

글을 마치며

 

 내가 수치 해석에 대한 깊이가 부족한 것일 수도 있지만, 개인적으로 생각하기에는 역문제의 어려운 점은 ill-posed 하다는 점 때문이다. 문제를 풀어보기 전에는 해당 문제가 well-posed 한 문제인지, ill-posed 문제인지 알 수 없다는 점이다. 뭐 당연히 어느 정도는 이를 판별하기 위한 방법까지는 있겠지만은, 결국은 확인을 해봐야 알 수 있기 때문이다.