기계학습 포텐셜은 재료 내 원자들의 3차원 좌표를 벡터 형태로 변환해 주는 변환 함수와 이를 통해 나온 벡터를 우리가 원하는 원자 당 에너지값으로 바꿔 주는 기계학습 알고리즘 두 부분으로 이루어져 있다. 우리가 지금까지 살펴본 두 가지 기계학습 포텐셜, GAP 및 NNP는 모두 이러한 형태를 따르고 있다. GAP의 경우 변환 함수로는 SOAP(본 블로그에서는 다루지 않았다!)을, 기계학습 알고리즘으로는 Gaussian Process를 사용하며, NNP의 경우 변환 함수로는 Atom Centered Symmetry Function을, 기계학습 알고리즘으로는 인공신경망을 사용한다. 자, 그럼 이제 기계학습 포텐셜을 연구하는 연구자의 입장이 되어 보자. 만약 우리가 이 방법론들을 개선해야 한다면 어느 부분을 먼저 개선하는 것이 좋을까? 답은 변환 함수이다.
위 기계학습 포텐셜에서, 기계학습 알고리즘은 단순히 주어진 점을 가지고 함수를 만드는, Function Approximator의 역할을 수행할 뿐이다. 그리고, 우리가 사용한 Feed Forward Network만으로도 어떤 함수든 표현 가능하다는 사실이(물론 가중치를 많이 써야겠지만) 이미 밝혀져 있다. 따라서, 기계학습 알고리즘 부분을 바꾸었을 때 얻는 이득은 크지 않다. 반면 변환 함수는 어떨까? 우리가 SOAP에 대해 살펴보지는 않았지만, SOAP, Atom Centered Symmetry Function 모두 고정된 함수를 사용하며, 이는 Classical Force Field를 사용하는 것과 유사하다는 설명을 저번 포스팅에서 한 바 있다. 결국, 우리가 사용한 기계학습 포텐셜에서 Function Approximator는 자유도가 상당히 높아졌지만 변환 함수는 고정되어 있다는 의미이다. 그런데 앞에서 설명한 기계학습 포텐셜의 구조를 다시 살펴보면 기계학습 포텐셜의 성능은 변환 함수에 상당히 의존할 수밖에 없다. 결국 기계학습 알고리즘은 변환 함수에서 나온 벡터와 그 벡터에 해당하는 원자 당 에너지값을 가장 잘 설명할 수 있는 함수를 만드는 역할이기 때문이다. 따라서 변환 함수가 재료의 3차원 좌표를 벡터로 변환하는 과정이 제대로 이루어지지 않았다면 기계학습 알고리즘 단계에서 무슨 수를 쓰더라도 제대로 된 포텐셜을 만들 수는 없다. 예를 들어, 어떤 변환 함수 A가 산소의 원자 당 에너지가 -10.0eV인 물 분자 하나를 (0.0, 0.0)으로 변환했는데 원자 당 에너지가 -20.0eV인 다른 물 분자 역시 (0.0, 0.0)으로 변환했다고 생각해 보자. 우리가 앞서 살펴본 Gaussian Process나 인공신경망 알고리즘으로 이러한 점들을 잘 표현하는 함수를 만들 수 있을까? 위 두 점은 서로 모순된 점(입력값이 같은데 출력값이 다른 점)이므로 원칙적으로 이 점들을 모두 지나는 함수를 만드는 것이 불가능할 것이다. 물론 위 예는 극단적인 예지만, 우리가 알아보았던 SOAP이나 Atom Centered Symmetry Function에도 이러한 경우가 없을 것이라 장담할 수는 없다. 두 함수 모두 좌표에서 벡터로 변환은 가능하지만 벡터에서 다시 3차원 좌표를 얻는 것이 불가능하기 때문에, 변환 함수의 성능을 엄밀하게 측정하기는 어렵기 때문이다. 따라서, GAP이나 NNP 등 이미 발표된 기계학습 포텐셜 방법론을 개선하기 위해서는 이 변환 함수를 개선하는 것이 유리하다. 그렇다면 어떻게 개선할 수 있을까? 앞서 SOAP이나 Atom Centered Symmetry Function은 고정된 함수이기 때문에 성능에 제한이 있다고 설명했다. 그리고 우리는 이와 비슷한 이유로 Classical Force Field를 기계학습 포텐셜로 대체하는 과정을 이미 보았다. 이제 답을 알겠는가? 그렇다. 변환함수 역시 기계학습 알고리즘으로 변환하면 된다.
사실, 최근 주목받고 있는 기계학습 연구들은 이 변환 함수에 해당하는 경우가 대부분이다. 우리가 먼저 알아보았던 Feed Forward Network의 경우 맨 마지막 단계에서, 앞선 기계학습 알고리즘을 통해 나온 벡터를 최종적으로 회귀분석 혹은 분류하기 위해 사용되는 경우가 대부분이다. 그렇다면 변환 함수를 대체하기 위해서는 어떤 기계학습 알고리즘을 사용하는 것이 좋을까? 이를 위해서는 먼저 변환 함수의 입력값으로 들어가는 원자의 3차원 좌표의 특성에 대하여 살펴보아야 한다. 3차원 좌표의 가장 중요한 특성은 바로 입력값의 수가 가변적이라는 것이다. 앞서 살펴보았듯, 우리가 원자 당 에너지를 계산할 때 변환 함수에는 중심 원자 및 그 원자로부터 일정 간격 내에 있는 주변 원자들의 좌표를 대입하는데, 이 주변 원자들의 수는 재료마다 달라지기 때문에 입력값의 수가 가변적일 수밖에 없다. 또한 평행 이동(Translation), 회전 이동(Rotation) 및 원자 간 순서 변화(Permutation)에 자유롭다. 마지막으로 당연한 말이지만 3차원 공간상에 배치되어 있다. 따라서, 우리가 변환 함수 대신 사용할 기계학습 알고리즘은 입력값의 수가 가변적이더라도 이를 처리 가능해야 하고, 평행 이동, 회전 이동 및 원자 간 순서 변화에 무관하게 같은 값을 출력(invariant)하거나 회전 이동에 따라 결과 벡터 역시 회전해야 한다(equivariant). 이러한 조건을 전부 만족하기는 어렵기 때문에, 일반적으로 Translation, rotation, permutation invariant 한 조건은 무시하기도 하는데, 원칙적으로는 이 조건을 만족하지 못하면 나중에 문제가 생길 수밖에 없다. 다음 포스팅부터는 이들 조건을 만족하는, 혹은 일부만 만족하는 기계학습 알고리즘을 살펴보고, 이들이 어떤 식으로 변환 함수를 대체할 수 있는지 확인해보도록 하겠다.
'과학 > 재료공학' 카테고리의 다른 글
Graph Model을 활용한 재료의 3차원 구조 묘사 (0) | 2022.06.24 |
---|---|
Convolutional Neural Network를 활용한 재료의 3차원 구조 묘사 (0) | 2022.06.23 |
Atom Centered Symmetry Function 소개 (0) | 2022.06.22 |
Neural Network 소개 및 장단점(Gaussian Process와 비교하여) (0) | 2022.06.21 |
Gaussian Process 소개 및 장단점 (0) | 2022.06.21 |
댓글