기계학습 알고리즘을 사용할 때, 기계학습 알고리즘의 성능을 높이기 위해서는 문제에 맞는 모델을 사용하는 것도 중요하지만 적절한 데이터를 준비하는 것 역시 매우 중요하다. 일반적으로 기계학습 알고리즘이 적용되는 분야인 컴퓨터를 이용한 이미지 처리, 자연어 처리, 음성 처리 같은 경우 각 데이터 간의 연관성(Correlation)이 적고, 데이터를 준비하는 데 걸리는 시간이 상대적으로 짧기 때문에 많은 데이터를 준비하기 용이하고 데이터의 분포 역시 비교적 평탄하게 만들 수 있다. 또한 데이터의 일부를 치환하는 등의 Data Augmentation 역시 그리 어렵지 않기 때문에 특정 목적에 맞게 데이터를 늘리는 것 역시 아주 어렵지 않다. 따라서, 필자가 아는 범위 내에서는 이러한 분야의 경우 기계학습 모델에 대한 연구가 데이터에 대한 연구보다 상대적으로 많이 이루어지고 있다. 하지만, 재료 시뮬레이션의 경우 상황이 조금 다르다. 특히, 기계학습 포텐셜의 경우 모델도 중요하지만, 적절한 데이터를 얻는 것이 상대적으로 어렵기 때문에 기계학습 포텐셜을 사용하고자 하는 연구자는 훈련용 데이터를 어떻게 준비할 것인지 많이 고민해야 한다. 이번 포스팅에서는 기계학습 포텐셜을 훈련할 때 사용하는 데이터를 어떻게 준비하는지, 그리고 그 특성은 무엇인지, 그리고 데이터의 질을 높이기 위해서는 어떤 방법을 사용하는지 등에 대해 알아보도록 하겠다.
기계학습 포텐셜의 경우 우리가 시뮬레이션하기를 원하는 환경(압력, 온도 등) 내에서 나타날 수 있는 모든 원자 배치에 대한 에너지를 안정적으로 모사할 수 있어야 한다. 그렇지 않으면 분자동역학 시뮬레이션 과정에서 시뮬레이션에 에러가 생겨 제대로 된 결과를 얻을 수 없게 된다. 따라서, 이 목적을 위해 일반적으로는 제일원리 계산을 활용한 분자동역학 시뮬레이션을 일정 시간 수행한 뒤, 이 Trajectory 안의 Snapshot 들을 일정 간격으로 선택한다. 영화, 혹은 애니메이션을 프레임 단위로 쪼갠 뒤 일정 프레임 간격으로 선택한다고 생각하면 이해하기가 쉬울 것이다. 이렇게 할 경우 비교적 촘촘하게 Sampling이 가능하기 때문에 해당 방법으로 데이터를 구성한 뒤 기계학습 포텐셜을 만들 경우 무난하게 훈련이 가능하다. 하지만, 이렇게 만든 데이터에는 몇 가지 문제가 있다. 먼저, 분자동역학 시뮬레이션으로 만든 데이터의 경우 데이터의 분포가 상당히 치우쳐져 있다는 문제가 있다. 이는 분자동역학 시뮬레이션의 특성이라고 보아도 무방하다. 아무래도 재료는 가장 안정한 상태로 움직이려고 하기 때문에, 그 부근에 해당하는 Snapshot이 상대적으로 많이 Sampling 될 수밖에 없다. 이렇게 되면 상대적으로 빈도가 낮은 데이터의 경우 훈련이 잘되지 않는다. 또한, 유사한 문제로 우리가 특정 반응에 대한 시뮬레이션을 기계학습 포텐셜로 보고 싶다고 할 때, 이 반응에 대한 데이터를 얻기가 쉽지 않다. 이러한 반응 같은 경우, 전체 시뮬레이션 시간 중 극히 짧은 시간에만 보이는 현상이기 때문에 단순히 일정 시간 시뮬레이션만 하는 것으로는 얻기 어렵다. 마지막으로, 데이터가 시간에 따른 Trajectory를 일정 간격으로 선택한 것이다 보니 데이터 간 연관성이 높다. 보통 이러한 경우 기계학습 알고리즘 훈련에 좋지 않다는 사실이 알려져 있다.
그렇다면 이러한 문제를 해결하기 위해서는 어떻게 해야 할까? 분자동역학을 이용한 데이터 생성의 문제점은 Rare Event를 얻기가 어렵다는 점이기 때문에, 이를 보완하는 방법을 많이 사용하게 된다. 첫 번째는 Rare Event를 더 많이 Sampling 하는 방법이다. 일반적으로 분자동역학 단계에서 이러한 목적으로 사용하는 방법으로는 Metadynamics, Umbrella sampling 등의 방법이 있다. 이 방법들은 시뮬레이션 중 이미 나온 구조들에 추가로 에너지를 더해 주어, 그 구조들이 실제보다 높은 에너지를 갖도록 만드는 것이다. 이렇게 할 경우 기존에 보지 않았던 구조들이 나올 가능성이 커진다. 그 외에는 이미 가지고 있는 Rare Event를 잘 활용하는 방법이 있다. 가장 대표적인 방법으로는 Rare Event에 해당하는 구조들에 가중치를 주는 방법이 있다. 이 방법은 기계학습 알고리즘의 손실 함수를 계산할 때, Rare Event가 차지하는 비중을 높여 이 구조들에 대한 훈련 정확도를 높인다. 이러한 방법을 이용해서 분자동역학 시뮬레이션을 이용한 데이터의 질을 높이는 것이 가능하다.
이렇게 기계학습 포텐셜을 제대로 훈련하기 위해 꼭 필요한 데이터를 준비하는 방법에 대해 알아보았다. 그리고, 이번 포스팅을 마지막으로 기계학습 포텐셜에 대한 설명을 마무리 지었다. 지금까지 여러 포스팅을 거쳐 기계학습 포텐셜 전반에 대해 다루었는데, 기계학습 포텐셜의 경우 Classical Force Field 기반으로 제일원리 계산 수준의 정확도를 낼 수 있기 때문에 다양한 분야에서 주목받고 있다. 하지만, 기계학습 포텐셜을 제대로 활용하기 위해서는 그 원리에 대하여 알아야 하고, 각 방법론에 대한 장단점 역시 숙지해야 한다. 또한, 이번 포스팅에서 살펴본 것처럼 적절한 데이터를 제작하는 것 역시 중요하다. 아직은 기계학습 포텐셜을 활용하여 실제로 산업에서 사용할 정도의 시뮬레이션을 수행한 연구는 없었지만, 기계학습 포텐셜의 발전이 지속된다면 산업계에서도 충분히 사용할 수 있을 것이라 본다.
'과학 > 재료공학' 카테고리의 다른 글
Hartree-Fock 방법에 대한 상세 설명 (0) | 2022.07.05 |
---|---|
밀도범함수이론(Density Functional Theory) 상세 설명 (0) | 2022.07.05 |
분자동역학에서 사용하는 Monte Carlo 방법론에 대하여 (0) | 2022.06.26 |
Graph Model을 활용한 재료의 3차원 구조 묘사 (0) | 2022.06.24 |
Convolutional Neural Network를 활용한 재료의 3차원 구조 묘사 (0) | 2022.06.23 |
댓글