지난 포스팅에서는 기계학습 포텐셜 알고리즘 중 가장 많이 사용되는 두 가지 알고리즘인 GAP과 NNP의 공통점에 대해 알아보았다. 두 방법 모두 시스템의 전체 에너지를 원자 당 에너지의 합으로 나타내며, 원자 당 에너지는 각 원자 및 주변 원자들의 3차원 좌표를 벡터로 전환한 뒤, 이를 기계학습 알고리즘의 입력값으로 넣었을 때 출력된 값을 이용한다. 하지만 GAP과 NNP는 각각 사용하는 기계학습 알고리즘이 달라, 방법론별로 특성에 약간 차이가 있다. 이번 포스팅에서는 GAP에서 사용하는 기계학습 알고리즘인 Gaussian Process에 대해 알아보고, Gaussian Process를 사용했기 때문에 생기는 장점 및 단점에 대해 알아보도록 하겠다.
먼저, 우리가 좌표 공간상에 임의의 함수를 지정해 주었다고 생각해 보자. z = f(x, y)와 같은 식이다. 하지만, 우리는 f가 정확히 어떤 식인지는 모르고, 이 함수에 포함되는 좌표 공간상의 점 (x, y, z)를 몇 개 알고 있다고 가정하자. 이 경우 우리가 모르는 x', y'에 대하여 z'를 구하려면 어떻게 해야 할까? 이 예제는 사실 다른 기계학습에도 동일하게 적용될 수 있는 예제이므로, 이후 NNP에 사용되는 인공신경망(Neural Networ)을 설명하는데도 동일하게 사용될 테니 기억해 두자. 다시 Gaussian Process로 넘어와서, 처음부터 좌표공간을 상상하면 어려우니 1차원 직선 위에 점 두 개를 기준으로 다시 생각해보자. 우리는 x=0인 지점에 점 하나, x=1인 지점에 점 하나가 있고, f(0)=0, f(1)=1인 점을 가지고 있고, 임의의 x 좌표에 대한 함숫값을 예측해야 한다. 이때, 만약 우리가 x=0.00000001일 때의 함숫값을 예측한다면 어떻게 예측할 수 있을까? f(0)=0이었으니, f(0.00000001) 역시 0에 매우 가까운 값일 것이라 추측할 수 있다. 그리고 그 정확도는 상당히 높을 것이라 예측할 수 있다. x=0.99999999 같은 경우도 유사하게, f(1)의 값과 유사한 값을 가질 것이다. 반면, x=0.5일 때 함숫값은 어떨까? 가장 쉽게 예측한다면 x=0인 점과 x=1인 점을 직선으로 잇고, 그 직선을 우리가 예측한 함수 f'라고 한 다음 f'(0.5)=0.5라고 구해볼 수 있을 것이다(이 경우 f'(x)=x). 하지만, f'(x)=x^n인 형태라면 n이 어떤 값을 갖든 간에 f(0)=0, f(1)=1을 만족하므로, f(0.5)를 예측하는 경우 예측값의 정확도가 상당히 떨어진다는 것을 알 수 있다. 결과적으로, 위 예제에서 우리가 알 수 있는 것은, 임의의 함수가 있고, 우리가 그 함수를 지나는 점 몇 개(데이터)를 알고 있을 경우, 임의의 점에 대한 함숫값을 예측할 때는 임의의 점이 우리가 알고 있는 데이터에 가까울수록 정확도 높게 예측할 수 있다는 것이다. 그렇다면, 이를 조금 더 확장하면 우리가 우리의 데이터와 임의의 점 간의 좌표 공간상의 거리에 대해 알고 있을 경우 이를 바탕으로 임의의 점의 함숫값을 예측할 수 있다는 식으로 생각해볼 수 있을 것이다. 수식으로 나타내면 y'=a1*f(x1)+a2*f(x2)+... 와 같이 된다. 여기서 an은 데이터에 포함된 점 각각에 적용되는 가중치를 의미하는데, 이는 각 점과 x 거리를 고려하여 결정된다. 그리고 이미 알고 있는 점과 가까울수록 우리가 예측한 함숫값의 신뢰도가 커진다. 여기서 우리가 모르는 값들은 an(n=1,2,...) 인데, 이 값들은 행렬로 구성된 방정식을 해석적으로 풀어 바로 얻을 수 있으므로, 구하는 것이 어렵지 않다. 또한, 수식을 통해 각 예측값의 분산(작을수록 신뢰도가 높다) 역시 구할 수 있다. 이것이 복잡한 수식을 최대한 배제하고 설명한 Gaussian Process의 원리이다.
그렇다면 이러한 방법을 사용할 경우 장점이 무엇일까? 앞서 설명한 것처럼 각 예측값의 신뢰도를 알 수 있다는 점이다. 나중에 인공신경망에 대하여 설명할 때 추가로 논의하겠지만, 기계학습 알고리즘 중에서 예측값의 신뢰도까지 쉽게 구할 수 있는 알고리즘은 그렇게 많지 않다. 그런데, 기계학습의 경우 일반적으로 알고리즘 자신의 예측을 과신하는 경향이 있기 때문에 신뢰도를 같이 알려주지 않는다면 이 결과를 보는 우리 연구자들 역시 잘못된 인상을 받을 위험이 있다. 따라서, 예측값의 신뢰도를 쉽게 파악할 수 있는 Gaussian Process는 확실한 장점이 있다고 할 수 있다. 반면, 위 수식을 보면 Gaussian Process의 경우 우리가 가지고 있는 모든 데이터의 정보를 전부 활용하여 예측값을 구하기 때문에, 우리가 데이터를 많이 쌓으면 쌓을수록 예측값을 얻어내는 데 필요한 계산량이 증가한다는 단점이 있다. 일반적으로 기계학습의 성능은 우리가 투입한 데이터의 양과 질에 좌우되기 때문에, 데이터 수가 증가했을 때 계산량이 늘어난다는 것은 기계학습의 일반론에 역행한다고 볼 수 있다. 물론, 이를 해결하기 위해 Sparcification 같은 테크닉을 쓰기도 하나, 이를 사용할 경우 정확도가 떨어질 수 있다.
이렇게, 우리는 GAP에서 사용하는 기계학습 알고리즘인 Gaussian Process에 대해 알아보았고, 이 알고리즘의 장단점 역시 확인하였다. 그렇다면 이와는 다른 방법론인 인공신경망의 장단점은 무엇일까? Gaussian Process와 정반대일까? 자세한 내용이 궁금하다면 다음 포스팅 역시 확인해 주기 바란다.
'과학 > 재료공학' 카테고리의 다른 글
Atom Centered Symmetry Function 소개 (0) | 2022.06.22 |
---|---|
Neural Network 소개 및 장단점(Gaussian Process와 비교하여) (0) | 2022.06.21 |
기계학습 포텐셜(Machine Learning Potential, MLP)의 대표 알고리즘, Gaussian Approximation Potential(GAP), Neural Network Potential(NNP)의 공통점 소개 (0) | 2022.06.19 |
기계학습을 이용한 Force Field(Machine Learning Force Field, MLFF) 소개 (0) | 2022.06.19 |
분자동역학의 응용 분야 및 한계 (0) | 2022.06.18 |
댓글