본문 바로가기
지능형시스템/머신러닝

[머신 러닝/딥 러닝] CGCNN: 인공지능과 소재 개발 (Artificial Intelligence and Material Discovery)

by CHML 2020. 3. 20.
1. 결정 구조 및 구조에 대한 그래프 기반 표현

과학이나 공학에서 흔히 일컬어지는 소재 (material)는 원자들이 일정 패턴으로 배열된 결정 구조 (crystal structure)를 의미한다. 흔히 말하는 흑연, 다이아몬드, 페로브스카이트 등이 이러한 결정 구조를 의미하며, 결정은 반도체나 배터리 등의 다양한 응용을 제작하기 위한 기본적이면서도 필수적인 재료로 이용되고 있다. 이러한 이유로 목적에 맞는 새로운 소재를 찾는 것, 즉 소재 개발 (material discovery)은 물리 및 화학 분야에서 가장 중요하게 연구되고 있다.

 

그림 1. 결정 구조 (Crystal structure) 예시 (출처: https://materialsproject.org).

그러나 하나의 결정 구조는 그림 1과 같이 결정을 구성하는 각 원자들의 종류, 구성비, 배열 등, 거의 무한대에 가까운 조합으로 만들어지기 때문에 지금까지 소재 개발은 전문가의 직관과 반복적인 실험을 통해 진행되어왔다. 이러한 문제를 해결하기 위해 최근에는 물리 및 화학 분야에서도 그래프 인공신경망 (graph neural ntework, GNN)을 이용하기 시작했다.

기본적으로 결정 구조는 원자와 원자들 간의 연결로 표현되기 때문에 추가적인 변환 없이 그래프로 변환될 수 있다. 하나의 결정 구조를 표현하기 위한 결정 그래프 $G = (\mathcal{V}, \mathcal{E}, X, S)$는 원자의 집합 $\mathcal{V}$, 원자간 연결의 집합 $\mathcal{E}$, 원자 속성 행렬 (atom-feature matrix) $\mathcal{X}$, 결합 속성 행렬 (bond-feature matrix) $\mathcal{S}$로 구성된다. 예를 들어, 5개의 규소와 3개의 탄소로 구성된 결정 구조의 구성 요소는 아래와 같다.

  • $\mathcal{V} = \{\text{Si}_1, \text{Si}_2, \text{Si}_3, \text{Si}_4, \text{Si}_5, \text{C}_1, \text{C}_2, \text{C}_3\}$
  • $\mathcal{E} = \{(\text{Si}_1, \text{C}_1), ..., (\text{Si}_5, \text{C}_3)\}$
  • $X \in \mathbb{R}^{|\mathcal{V}| \times d}$
  • $S \in \mathbb{R}^{|\mathcal{E}| \times l}$

Edge의 집합인 $\mathcal{E}$는 결정의 구조를 보고 어떠한 원자 간에 연결이 형성되었는지를 기준으로 결정된다. 또한, $d$와 $l$은 각각 원자와 결합이 갖는 feature의 수를 의미하며, 어떠한 feature를 이용할지는 예측하고자 하는 결정의 속성에 따라 연구자나 엔지니어에 의해 결정된다.

 

2. Crystal Graph Convolutional Neural Network (CGCNN)

Crystal graph convolutional neural network (CGCNN)은 결정 구조가 그래프로 표현될 수 있다는 점을 바탕으로 그래프의 형태로 입력되는 결정의 속성을 예측하기 위해 제안된 인공신경망이다.[link] 따라서, CGCNN은 $f: \mathcal{G} \rightarrow \mathbb{R}^r$으로 정의되며, $\mathcal{G}$는 그래프의 집합이고 $r$은 예측하고자 하는 속성의 차원이다.

CGCNN은 결정 그래프를 벡터로 변환하는 graph convolutional layer와 변환된 벡터를 기반으로 결정의 속성을 예측하는 fully-connected layer로 구성된다. 그림 2는 이러한 CGCNN의 구조를 나타내며, 그림에서 crystal graph convolutional layer (CGConv)는 CGCNN에 특화된 graph convolutional layer이다. CGCNN은 그래프에 포함된 node나 edge의 속성이 아닌, 그래프 전체의 속성을 예측하기 위한 모델이기 때문에 readout이라는 계층을 통해 node 및 edge embedding들로부터 그래프 전체에 대한 벡터 표현을 추출한다.

 

그림 2. CGCNN의 구조.

CGCNN의 graph convolutional layer인 CGConv는 아래와 같이 정의된다.

$$\boldsymbol{v}_i^{(t+1)} = \boldsymbol{v}_i^{(t)} + \Sigma_{j,k} \sigma \left(\boldsymbol{z}_{(i,j)_k}^{(t)} \textbf{W}_f^{(t)} + \boldsymbol{b}_f^{(f)} \right) \odot g\left(\boldsymbol{z}_{(i,j)_k}^{(t)} \textbf{W}_s^{(t)} + \boldsymbol{b}_s^{(t)} \right) \tag{1}$$

식에 있는 각 기호의 의미는 다음과 같다.

  • $\odot$: Element-wise multiplication.
  • $\oplus$: Vector concatenation.
  • $\sigma$, $g$: Nonlinear activation function.
  • $\boldsymbol{v}_i^{(t)}$: $t$번째 CGConv에 의한 $i$번째 원자의 representation.
  • $\boldsymbol{u}_{(i,j)_k} \in \mathbb{R}^l$: $i$와 $j$번째 원자간의 $k$번째 결합에 대한 feature.
  • $\boldsymbol{z}_{(i,j)_k}^{(t)} = \boldsymbol{v}_i^{(t)} \oplus \boldsymbol{v}_j^{(t)} \oplus \boldsymbol{u}_{(i,j)_k}$

또한, 결정 그래프의 정의에 의해 $\boldsymbol{v}_i^{(0)}$는 $X_i$이며, $\boldsymbol{u}_{(i,j)_k}$는 $S$의 한 행이다.

CGCNN 논문에서는 Materials Project라고 하는 결정 구조 데이터베이스를 이용하여 여러 결정에 대한 formation energy, band gap, bulk modulus 등의 속성을 예측했으며, 막대한 양의 계산을 필요로 하는 기존의 방법론과 비슷하거나 더 좋은 예측 결과를 보여주었다. CGCNN의 구현과 코드는 논문의 저자가 공개한 GitHub repositoryPyTorch Geometric Library에서 구할 수 있다.