본문 바로가기
과학/재료공학

Atom Centered Symmetry Function 소개

by NC_ 2022. 6. 22.

지금까지 우리는 기계학습 포텐셜에 대해 알아보았다. 먼저, 기계학습 포텐셜에 공통으로 적용되는 수식 두 가지, E=sum(E_atom), E_atom=f(G({R}))에 대해 논의하였고, GAP 및 NNP 각각에 대하여 f에 해당하는 기계학습 알고리즘인 Gaussian Process와 인공신경망(Neural Network)에 대하여 알아보았다. 하지만, 아직 우리가 기계학습 포텐셜에 대하여 다 안다고 할 수는 없다. 아직 G에 해당하는, 원자들의 3차원 좌표를 기계학습 포텐셜에 넣을 수 있는 벡터 형태로 변환하는 함수에 대해서는 모르기 때문이다. 따라서, 이번 포스팅에서는 이 변환 함수에 해당하는 Atom Centered Symmetry Function에 대하여 알아보도록 하겠다. 이 방법론은 기본적으로 Jurg Behler의 논문(https://doi.org/10.1063/1.3553717)을 기반으로 하나, 자세한 수식은 생략하고 원리만 간략하게 설명할 예정이다. 혹시 자세한 수식에 관심이 있는 사람은 Atom Centered Symmetry Function을 검색 사이트에 검색할 경우 확인할 수 있으니 참고 바란다.

 


지난번에 설명했던 내용을 기억하는 사람이라면, 이 변환 함수 G는 원자의 3차원 좌표의 평행이동(Translation), 회전(Rotation) 및 원자의 3차원 좌표들의 순서가 바뀌는 경우(Permutation)에도 동일한 결과를 출력해야 한다는 것을 알고 있을 것이다. 이는 위 세 가지 변환이 이루어져도 재료의 에너지는 동일해야 하기 때문이다. 우리가 물 분자 하나를 평행 이동시키든, 돌리든 물 분자를 통째로, 한꺼번에 움직인다면 물 분자를 이루는 H와 O의 결합 길이 및 각도에는 변화가 없을 것이므로 에너지는 동일해야 할 것이고, 우리가 물 분자를 이루는 세 개의 원자를 HHO순으로 쓰든, HOH순으로 쓰든 역시 에너지는 동일해야 할 것이니까 말이다. 이 조건을 만족시키기 위한 방법은 여러 가지가 있겠지만, Atom Centered Symmetry Function에서는 각 상호작용에 대한 값을 전부 더하는 방식을 사용해서 Permutation invariant(Permutation에 무관하게 결괏값이 동일하다는 의미이다) 한 함수를 만들고, 각 중심 원자를 기준으로 한 상대 좌표를 계산하는 방식으로 Translation 및 Rotation invariant 한 함수를 만들게 된다. 좀 더 자세히 설명하기 위해, Atom Centered Symmetry Function에 대한 수식을 간단히 적어 보면 다음과 같다. G_rad=sum(f_rad(r, coeffs)), G_ang=sum(f_ang(theta, coeffs)). 여기서 rad는 radius, 즉 원자 간 거리를 의미하며, ang는 angle, 원자들이 이루는 각도를 의미한다. 또한 coeffs는 각 함수에 추가로 들어가는 상수들을 의미하는데, 이 상수들을 변경해서 다양한 형태의 함수를 만들 수 있다. 이때, f_rad에는 r이, f_ang에는 theta가 입력값으로 들어가는데, 여기서 r이 원자 간 거리, theta가 원자들이 이루는 각도가 된다. 이때 r 및 theta는 주어진 원자들로 만들 수 있는 모든 조합에 대하여 전부 계산하게 되고, 이를 더하기 때문에 G_rad 및 G_ang에 합을 뜻하는 sum 역시 있어야 하는 것이다. 이 모든 조합이라는 말을 조금 더 자세히 설명하면, 우리가 물 분자 하나(H1-O-H2)를 가지고 있을 때, r은 H1-O, H2-O, H1-H2 세 가지가 나오게 되고, theta는 H1-O-H2, O-H1-H2, H1-H2-O 세 가지가 나오게 된다. 말 그대로 주어진 원자들을 가지고 만들 수 있는 모든 조합을 다 고려해야 한다는 의미이다. 이렇게 G_rad 및 G_ang를 계산하고 나면, 이 값들을 모아 하나의 벡터로 만들게 된다. [G_rad1, G_rad2,...,G_ang1, G_ang2,...] 와 같이 말이다. 이렇게 해서 최종적으로 우리는 기계학습 알고리즘에서 입력값으로 활용할 수 있는 벡터를 얻을 수 있다. 본 블로그에서는 설명하지 않겠지만,GAP에서 사용하는 Smooth Overlap of Atomic Positions(SOAP) 역시 이와 비슷한 방법으로 벡터를 만들게 된다.

 


이렇게 우리는 몇 회의 포스팅을 거쳐 기계학습 포텐셜이 어떻게 동작하는지 알아보았다. 하지만, 우리가 지금까지 살펴본 내용은 말 그대로 기본에 해당하는 내용이고, GAP 및 NNP의 개념이 처음 소개된 뒤로 지금까지 각 방법론에 대한 다양한 개선안들이 발표되었다. 그중에서도 가장 많은 변화를 줄 수 있는 부분이 바로 오늘 알아본 Atom Centered Symmetry Function이다. Atom Centered Symmetry Function 역시 이 방법론을 고안한 연구자의 직관을 통해 만들어진 함수이므로, Classical Force Field와 단점을 공유하는 부분이 있기 때문이다. 따라서 이 부분 역시 기계학습 알고리즘으로 대체하려는 연구들이 많이 발표되었는데, 다음 포스팅부터는 이러한 연구들에 대하여 간단히 소개하도록 하겠다.

댓글