본문 바로가기

Machine Learning

Equivariances

[Korean translated ver. for https://dmol.pub/dl/data.html]

 

이 소개 글에서 Molecular graph와 structure를 표현하는 데 필수적인 operation의 성질인 equivriance 3가지에 대해 알아보자.

  • Invariance vs. Equivariance란 무엇인가?
  • Translation, rotation, permutation equivariance란 무엇인가?
  • 어떻게 invariance를 만족하는 features를 선택할 것인가?

특정 분자의 molecular descriptor X가 N (n atoms) x 3 (xyz 좌표)의 크기의 행렬이라고 정의한다.

특정 Equivariance를 만족하지 않는 operator를 정의해볼 것이다. 우리의 목표는 분자의 위치로부터 potential energy $\hat E$을 얻는 것이다.

$$\vec{x} = \text{flatten} (X)$$

$$\hat E = \vec{x} \cdot \vec{w} + b$$

X의 좌표를 완전히 펼쳐서 vector x를 정의하였더니, X의 좌표 이동에 따라 $\hat E$의 값이 변한다. 이런 경우를 "translational variance"라고 한다.

Permutational Equivariance

각 atom의 partial charge를 계산하는 모델 $f(X)$을 정의한다. Permutation operator $P_{ij}$는 tensor의 0번째 차원에서 i와 j 번째 원소를 swap한다.

Permutation equivariant한 model은 다음과 같이 정의된다.

$$f(P_{ij} [X]) = P_{ij} [\vec{y}], \forall i, j$$

예를 들어, 물 분자 ($H_2O$)의 partial charge를 구하는 모델 $f(X)$로부터 HOH 순서의 input에서 $f(X) = (0.3, -0.6, 0.3)$을 얻었다고 하자. 우리가 정의한 모델이 permutation equivariant하다면 $f(P_{01}[X]) = P_{01} [\vec{y}] = (-0.6, 0.3, 0.3)$을 만족한다.

하나의 input 원자 좌표로부터 하나의 scalar 값(e.g. 에너지)을 얻는 함수를 정의하고자 한다 permutation operator는 아무 효과가 없으며 permutation invariance를 만족한다.

$$f(P_{ij} [X]) = P_{ij} [\hat E] = \hat E, \forall i, j$$

Invariance vs. Equivariance

Invariance는 equivariance의 특별한 케이스이다. 따라서, Equivariant한 경우에 invariant하게 만드는 것은 쉽다. 예를 들면, Equivariace를 만족하는 축 전부에 대해 평균을 취하면 된다.

Equivariances of Coordinates

분자의 좌표를 feature로 사용하는 모델을 개발할 때, element identity와 공간에서 위치를 구분하는 feature를 구분하면 좋다.

Point clouds라고 하는 데이터 타입으로 나타낼 수 있는데, feature를 $(\vec{r}, \vec{x})$로 구분하여 나타낸다. $\vec{r}$이 atom의 위치이고, $\vec{x}$가 element, charge, spin 등의 원자의 특성이다.

Translation Equivariance

모든 point (atom) 들에 대하여 label을 $(\vec{r}', \vec{x})$이라고 나타낸다. $\vec{r}'$는 방향, $y$는 힘의 양이 될 것이다. Scalarar 값인 에너지를 예측할 때면 $\vec{r}'$는 필요 없을 것이다.

Translation equivariance가 만족하는 경우:

$$ f(\vec{r} + \vec{t}, \vec{x}) = (\vec{r}' + \vec{t}, \vec{y}), \forall \vec{t} $$

분자(Molecule)와 같이 여러 개의 원자(atom)로 이루어진 경우 위의 식을 matrix 형태로 바꿀 수 있다.

$$f(\mathbf{R} + \vec{t}, \mathbf{X}) = (\mathbf{R}' + \vec{t}, \vec{y}_i), \forall \vec{t}$$

$\mathbf{R}$은 모든 position vector $\vec{r}_i$로 이루어진 행렬이다.

Output coordinate $\vec{r}'$이 없는 경우엔 다음을 만족하며, translation invariance라고 한다.

$$f(\mathbf{R} + \vec{t}, \mathbf{X}) = \vec{y}_i, \forall \vec{t}$$

Rotation Equivariance

위의 섹션을 참고하여 rotation equivariance를 정의할 수 있다. 추가로, quaternion과 같은 rotation operator $\mathcal{R}$을 정의한다.

$$f(\mathcal{R}[\mathbf{R}], \mathbf{X}) = (\mathcal{R}[\mathbf{R}'], \vec{y}_i), \forall \mathcal{R}$$

$(\mathcal{R}[\mathbf{R}'], \vec{y}_i)$가 field를 정의하면 우리가 정의한 equivariance에 따라 input point들을 회전시키면 output point들도 같은 회전을 따른다. $\mathbf{R}'$를 출력할 필요가 없는 모델을 설계할 때면, translation invariance를 정의할 때와 마찬가지로 rotation invariance를 정의할 수 있다.

Equivarianct Model 정의하기

[To be continued...]

반응형