モーメントテンソルポテンシャル
概要および要約
モーメントテンソルポテンシャルmoment tensor potentialは、2016年にAlexander V. Shapeevが提案した🔒(26/11/17)機械学習原子間ポテンシャルの一種である。論文「Moment Tensor Potentials: a class of systematically improvable interatomic potentials」1において、局所的な原子環境をモーメントテンソルで記述し、テンソル縮約を通じて🔒(26/11/13)回転不変性を満たすスカラー多項式基底を構成する方法を提案した。
密度汎関数理論のような量子力学計算は正確だが、原子数$N$に対して$\mathcal{O}(N^{3})$のコストがかかるため、大きな系では🔒(26/11/07)原子間ポテンシャルを用いる。著者は、🔒(26/12/11)レナード・ジョーンズポテンシャルなどの🔒(26/11/07)経験的ポテンシャルはいずれも関数形が固定されており、精度を体系的に高めることができないと指摘し、基底を増やすことで望む精度まで近似できるポテンシャルを提案する。このとき、🔒(26/11/05)原子環境$\mathbf{u} = (\mathbf{u}_{1}, \dots, \mathbf{u}_{n})$に対するポテンシャル$V(\mathbf{u})$は次の三つの条件を満たさなければならない。
- (R1) 隣接原子の順序を入れ替えても値が同じである(置換不変)。
- (R2) すべての$Q \in \operatorname{O}(3)$に対して$V(Q\mathbf{u}_{1}, \dots, Q\mathbf{u}_{n}) = V(\mathbf{u}_{1}, \dots, \mathbf{u}_{n})$である(回転、反射不変)。
- (R3) 原子がカットオフ半径の境界を出入りするとき滑らかである。
核心となるアイデアは次の通りである。滑らかな$V$は多項式で近似できるので、(R1)と(R2)を満たす多項式を構成する方法を考えるのである。そのためのものがモーメントテンソルである。
$$ M_{\mu, \nu}(\mathbf{u}) = \sum_{i=1}^{n} \left| \mathbf{u}_{i} \right|^{2\mu} \mathbf{u}_{i}^{\otimes \nu} $$
モーメントテンソルは一つの和で計算されるので、原子数$n$に対して線形時間がかかる。これらのテンソルの添字を互いに縮約して回転不変なスカラー$B_{\alpha}$を作り、その線形結合でポテンシャルを定義する。$B_{\alpha}$についての詳しい説明は下の本文を参照せよ。
$$ V(\mathbf{u}) = \sum_{\alpha \in \mathcal{A}} c_{\alpha} B_{\alpha}(\mathbf{u}) $$
論文の主要な結果は次の通りである。
定理 3.1: $B_{\alpha}$たちは置換不変かつ回転不変な多項式全体の空間を生成する。すなわち、適切な添字集合$\mathcal{A}$が存在して、$B_{\alpha}$たちの線形結合で原子間ポテンシャル$V$を表すことができる。
定理 3.2: 簡単な強結合tight-bindingモデルのsite energyを次数$m$の不変多項式で近似すると、誤差が$C\rho^{-m}$ $(\rho \gt 1)$で減少する。
$V$が係数$c_{\alpha}$について線形なので、係数は線形回帰で学習する。
実際の実装では、(R3)を満たすために$\left| \mathbf{u}_{i} \right|^{2\mu}$を、🔒(26/11/07)カットオフ関数を掛けた動径関数$f_{\mu, \nu}(\left| \mathbf{u}_{i} \right|)$に置き換える。
定義
$N$個の原子からなる系の原子位置を$\mathbf{x} = (\mathbf{x}_{1}, \dots, \mathbf{x}_{N}) \in (\mathbb{R}^{3})^{N}$とし、カットオフ半径$r_{c}$に対する原子$k$の🔒(26/11/05)原子近傍を$\mathcal{N}_{k}$としよう。
$$ \mathcal{N}_{k} = \left\{ \mathbf{u}_{i} \right\}_{i \in \mathcal{I}_{k}}, \quad \mathbf{u}_{i} = \mathbf{x}_{i} - \mathbf{x}_{k}, \quad \mathcal{I}_{k} = \left\{ i : 0 \lt \left| \mathbf{x}_{i} - \mathbf{x}_{k} \right| \le r_{c} \right\} $$
下で定義する基底多項式$B_{\alpha}$の線形結合として次のように表される🔒(26/11/07)原子間ポテンシャル$V$をモーメントテンソルポテンシャルmoment tensor potential, MTPという。
$$ E(\mathbf{x}) = \sum_{k=1}^{N} V(\mathcal{N}_{k}), \qquad V(\mathcal{N}_{k}) = \sum_{\alpha \in \mathcal{A}} c_{\alpha} B_{\alpha}(\mathcal{N}_{k}) $$
ここで$\mathcal{A}$はあらかじめ定めておいた行列添字$\alpha$たちの有限集合であり、$c_{\alpha} \in \mathbb{R}$は学習によって定める係数である。
論文での表記法
論文は同じ内容を次のように表記する。
| 対象 | この記事 | 論文 |
|---|---|---|
| 原子数 | $N$ | $N_{\text{tot}}$ |
| 原子位置 | $\mathbf{x}_{k}$ | $x_{k}$ |
| カットオフ半径 | $r_{c}$ | $R_{\text{cut}}$ |
| 原子$k$の原子近傍 | $\mathcal{N}_{k}$ (集合) | $Dx_{k}$ (タプル)、原子環境atomic environment |
| 原子近傍を変数として用いるとき | $\mathcal{N}_{k} = \left\{ \mathbf{u}_{i} \right\}_{i \in \mathcal{I}_{k}}$ | $u = (u_{1}, \dots, u_{n})$ |
| ベクトルの大きさ | $\left\Vert \mathbf{u}_{i} \right\Vert$ | $\left\vert u_{i} \right\vert$ |
原子環境とエネルギーは次の通りである。
$$ Dx_{k} := (x_{i} - x_{k})_{1 \le i \le N_{\text{tot}},\ 0 \lt \left\vert x_{i} - x_{k} \right\vert \le R_{\text{cut}}} \tag{2.1} $$
$$ E(x) := \sum_{k=1}^{N_{\text{tot}}} V(Dx_{k}) \tag{2.2} $$
$$ V(u) = \sum_{\alpha \in A} c_{\alpha} B_{\alpha}(u) $$
論文は原子近傍をタプルとして置くため、$V$を引数の個数が互いに異なる関数たちの集まりとみなし、その代わりに置換不変性(R1)を別途要求する。この記事のように集合として置けば順序がないので、置換不変性は表記にすでに含まれている。また、論文は空間の次元を一般の$d$として展開するが、この記事は$d = 3$に固定する。
モーメントテンソル$M_{\mu, \nu}$
$N$個の原子からなる系で原子を一つ固定しよう。固定した原子から半径$r_{c}$内にある$n$個の原子の相対位置ベクトルを$\mathbf{u}_{i}$ $(i = 1, \dots, n)$とし、これらを集めたタプルを$\mathbf{u} = (\mathbf{u}_{1}, \dots, \mathbf{u}_{n}) \in (\mathbb{R}^{3})^{n}$としよう。二つの整数$\mu$、$\nu \ge 0$に対して次のように定義される$M_{\mu, \nu}$を$\mathbf{u}$のモーメント多項式moment polynomialという。
$$ M_{\mu, \nu}(\mathbf{u}) = \sum_{i = 1}^{n} \left| \mathbf{u}_{i} \right|^{2\mu} \mathbf{u}_{i}^{\otimes \nu} $$
ここで$\mathbf{v} \otimes \mathbf{w}$は下のように定義されるテンソル積であり、$\mathbf{v}^{\otimes \nu}$はこれを$\nu$回繰り返したものである。
$$ \mathbf{v} \otimes \mathbf{w} = \left[ v_{i}w_{j} \right] \in \mathbb{R}^{3 \times 3}, \quad i,j \in \set{1, 2, 3} $$
$$ \mathbf{v}^{\otimes \nu} = \left[ v_{i_{1}} \cdots v_{i_{\nu}} \right] \in \mathbb{R}^{\overbrace{3 \times \cdots \times 3}^{\nu}}, \quad i_{1}, \dots, i_{\nu} \in \set{1, 2, 3} $$
すなわち$\mathbf{v}^{\otimes \nu}$は添字の個数が$\nu$個の多次元配列である。$\mu$は各位置ベクトルの大きさに対する重みであり、$\nu$はモーメントテンソルの次元を決定する。上の式を見ればわかるように、モーメントテンソルの次元は$\nu$のみに依存する。$\nu = 0$のときは$1$と定義する。
| $\nu$ | $\mathbf{v}^{\otimes \nu}$ | 成分 | 対象 |
|---|---|---|---|
| $0$ | $1$ | $1$ | スカラー |
| $1$ | $\mathbf{v}$ | $v_{i}$ | ベクトル |
| $2$ | $\mathbf{v} \otimes \mathbf{v} = \mathbf{v}\mathbf{v}^{\mathsf{T}}$ | $v_{i} v_{j}$ | $3 \times 3$行列 |
| $3$ | $\mathbf{v} \otimes \mathbf{v} \otimes \mathbf{v}$ | $v_{i} v_{j} v_{k}$ | $3 \times 3 \times 3$配列 |
基底多項式$B_{\alpha}$
二つのベクトルの内積は、各成分どうしを掛けてからすべて足した値である。
$$ \braket{\mathbf{u} \vert \mathbf{v}} = \mathbf{u} \cdot \mathbf{v} = u_{1}v_{1} + u_{2}v_{2} + u_{3}v_{3} = \sum_{i=1}^{3} u_{i} v_{i} \tag{asdf} $$
これと同様に、$k$個のモーメントテンソル$M$の各成分どうしを掛けてからすべて足す一般的な演算を定義しようとする。$\alpha$を$0$以上の整数を成分にもつ$k \times k$対称行列としよう。対角成分を$\mu_{i} = \alpha_{ii}$と表記し、$i$行のすべての非対角成分の和を$\nu_{i} = \sum_{j \ne i} \alpha_{ij}$と表記しよう。察しの通り、これらはそれぞれモーメントテンソル$M_{\mu, \nu}$の添字を意味する。$\alpha$の非対角成分$\alpha_{ij}$は、$i$番目のモーメントテンソルと$j$番目のモーメントテンソルが共有する添字の個数を意味する。ここで共有する添字とは、式$(asdf)$の右辺におけるように、和記号の中で同じ添字であることを意味する。
具体的な例として$\alpha = \begin{bmatrix} \mu_{1} & 1 \\ 1 & \mu_{2} \end{bmatrix}$を考えよう。$\alpha$の大きさが$2 \times 2$なのでモーメントテンソルが二つあるという意味であり、$\nu_{1} = \nu_{2} = 1$なのでそれぞれベクトルである。便宜上$\mathbf{u}$を省略しよう。
$$ M_{\mu_{1}, 1}, M_{\mu_{2}, 1} \in \mathbb{R}^{3} $$
$\alpha = \begin{bmatrix} \mu_{1} & 2 \\ 2 & \mu_{2} \end{bmatrix}$ならば、行列であるモーメントテンソルが二つあるという意味である。
$$ M_{\mu_{1}, 2}, M_{\mu_{2}, 2} \in \mathbb{R}^{3 \times 3} $$
最後に$\alpha = \begin{bmatrix} \mu_{1} & 1 & 1 \\ 1 & \mu_{2} & 0 \\ 1 & 0 & \mu_{3} \end{bmatrix}$ならばモーメントテンソルが三つあるという意味であり、$\nu_{1} = 2$、$\nu_{2} = 1$、$\nu_{3} = 1$なのでそれぞれ行列一つとベクトル二つである。
$$ M_{\mu_{1}, 2} \in \mathbb{R}^{3 \times 3}, \quad M_{\mu_{2}, 1}, M_{\mu_{3}, 1} \in \mathbb{R}^{3}, \quad $$
添字集合$\mathcal{B}$
これから与えられた$\alpha$に対して添字集合$\mathcal{B} = \mathcal{B}(\alpha)$を定義する。$\mathcal{B}$は、$k$個のモーメントテンソルの各成分どうしを掛けてからすべて足すとき、和記号が適用される添字たちの集合である。先の説明で、$\alpha$の非対角成分$\alpha_{ij}$は$i$番目のモーメントテンソルと$j$番目のモーメントテンソルが共有する添字の個数であると述べた。$\alpha = \begin{bmatrix} \mu_{1} & 2 \\ 2 & \mu_{2} \end{bmatrix}$ならば二つのモーメントテンソルが共有する添字が二つなので、それぞれを$\beta_{1}^{(1,2)}$、$\beta_{2}^{(1,2)}$としよう。一般に、$i$番目のモーメントテンソルと$j$番目のモーメントテンソルが共有する添字は下のように表すことができる。添字の共有は対称なので$\beta_{m}^{(j,i)} = \beta_{m}^{(i,j)}$である。
$$ \beta_{1}^{(i,j)}, \dots, \beta_{\alpha_{ij}}^{(i,j)} $$
$i$番目のモーメントテンソルの成分は下のように表される。表記が複雑なので、$i$番目のモーメントテンソルの添字の組を簡単に$b_{i}$としよう。
$$ \left[ M_{\mu_{i}, \nu_{i}} \right]_{b_{i}} = \left[ M_{\mu_{i}, \nu_{i}} \right]_{\beta_{1}^{(i,1)}, \dots, \beta_{\alpha_{i1}}^{(i,1)}, \dots, \beta_{1}^{(i,i-1)}, \dots, \beta_{\alpha_{i,i-1}}^{(i,i-1)}, \beta_{1}^{(i,i+1)}, \dots, \beta_{\alpha_{i,i+1}}^{(i,i+1)}, \dots, \beta_{1}^{(i,k)}, \dots, \beta_{\alpha_{ik}}^{(i,k)} } $$
$$ b_{i} = (\beta_{1}^{(i,1)}, \dots, \beta_{\alpha_{i1}}^{(i,1)}, \dots, \beta_{1}^{(i,i-1)}, \dots, \beta_{\alpha_{i,i-1}}^{(i,i-1)}, \beta_{1}^{(i,i+1)}, \dots, \beta_{\alpha_{i,i+1}}^{(i,i+1)}, \dots, \beta_{1}^{(i,k)}, \dots, \beta_{\alpha_{ik}}^{(i,k)} ) $$
全体のモーメントテンソルの添字は$b = (b_{1}, b_{2}, \dots, b_{k})$と表すことができる。$3$次元と仮定したので、各$\beta_{m}^{(i,j)}$は$1$、$2$、$3$の値をとることができ、この可能なすべての組み合わせの集合を$\mathcal{B}$としよう。
$$ \mathcal{B} = \left\{ b = (b_{1}, \dots, b_{k}) : \beta_{m}^{(i,j)} \in \set{1, 2, 3},\ 1 \le i \lt j \le k,\ 1 \le m \le \alpha_{ij} \right\} $$
添字集合を形式的に説明するために定義はやや複雑だが、実際の例を見れば難しくない。$\alpha = \begin{bmatrix} \mu_{1} & 1 \\ 1 & \mu_{2} \end{bmatrix}$ならばモーメントテンソルはベクトル二つであり、共有する添字は一つである。
$$ b_{1} = (\beta_{1}^{(1,2)}) = b_{2} $$
$$ \mathcal{B} = \set{ \big((\beta_{1}^{(1,2)}), (\beta_{1}^{(1,2)})\big) : \beta_{1}^{(1,2)} \in \set{1, 2, 3} } = \set{ ((1),(1)), ((2),(2)), ((3),(3)) } $$
$\alpha = \begin{bmatrix} \mu_{1} & 2 \\ 2 & \mu_{2} \end{bmatrix}$ならばモーメントテンソルは行列二つであり、共有する添字は二つである。
$$ b_{1} = (\beta_{1}^{(1,2)}, \beta_{2}^{(1,2)}) = b_{2} $$
$$ \begin{align*} \mathcal{B} &= \set{ \big( (\beta_{1}^{(1,2)}, \beta_{2}^{(1,2)}), (\beta_{1}^{(1,2)}, \beta_{2}^{(1,2)}) \big) : \beta_{1}^{(1,2)}, \beta_{2}^{(1,2)} \in \set{1, 2, 3} } \\ &= \big\{ \big( (1, 1), (1, 1) \big), \big( (1, 2), (1, 2) \big), \big( (1, 3), (1, 3) \big), \\ &\qquad \big( (2, 1), (2, 1) \big), \big( (2, 2), (2, 2) \big), \big( (2, 3), (2, 3) \big), \\ &\qquad \big( (3, 1), (3, 1) \big), \big( (3, 2), (3, 2) \big), \big( (3, 3), (3, 3) \big) \big\} \end{align*} $$
ともかく$\mathcal{B}$はすべてのモーメントテンソルの可能なすべての添字の集合であり、定義のための定義なので、よく理解できなくても定義そのものにあまりとらわれないようにしよう。下で実際の基底多項式がどのように足されるかを見れば、その意味が腑に落ちるだろう。
テンソル縮約による基底多項式の定義
上の添字集合の定義に基づいて、基底多項式$B_{\alpha}$を次のように定義する。
$$ B_{\alpha} := \sum_{b \in \mathcal{B}} \prod_{i=1}^{k} \left[ M_{\mu_{i}, \nu_{i}} \right]_{b_{i}} $$
$\alpha = \begin{bmatrix} \mu_{1} & 1 \\ 1 & \mu_{2} \end{bmatrix}$ならば、一つ目のモーメントテンソルと二つ目のモーメントテンソルが共有する添字一つ$\beta_{1}^{(1,2)}$がすべてである。基底多項式は二つのベクトルの内積に等しい。
$$ B_{\alpha} = \sum_{\beta_{1}^{(1,2)} = 1}^{3} \left[ M_{\mu_{1}, 1} \right]_{\beta_{1}^{(1,2)}} \left[ M_{\mu_{2}, 1} \right]_{\beta_{1}^{(1,2)}} = \braket{ M_{\mu_{1}, 1} \vert M_{\mu_{2}, 1} } = M_{\mu_{1}, 1} \cdot M_{\mu_{2}, 1} $$
$\alpha = \begin{bmatrix} \mu_{1} & 2 \\ 2 & \mu_{2} \end{bmatrix}$ならば、二つのモーメントテンソルが共有する添字は二つで$\beta_{1}^{(1,2)}$、$\beta_{2}^{(1,2)}$である。基底多項式は二つの行列の(フロベニウス)内積に等しい。
$$ B_{\alpha} = \sum_{\beta_{1}^{(1,2)} = 1}^{3} \sum_{\beta_{2}^{(1,2)} = 1}^{3} \left[ M_{\mu_{1}, 2} \right]_{\beta_{1}^{(1,2)}, \beta_{2}^{(1,2)}} \left[ M_{\mu_{2}, 2} \right]_{\beta_{1}^{(1,2)}, \beta_{2}^{(1,2)}} = \braket{ M_{\mu_{1}, 2} \vert M_{\mu_{2}, 2} }_{F} $$
$\alpha = \begin{bmatrix} \mu_{1} & 1 & 1 \\ 1 & \mu_{2} & 0 \\ 1 & 0 & \mu_{3} \end{bmatrix}$ならば添字は二つであり、二つのベクトル$M_{\mu_{2}, 1}$、$M_{\mu_{3}, 1}$と行列$M_{\mu_{1}, 2}$の双線形形式である。
$$ \begin{align*} B_{\alpha} &= \sum_{\beta_{1}^{(1,2)} = 1}^{3} \sum_{\beta_{1}^{(1,3)} = 1}^{3} \left[ M_{\mu_{1}, 2} \right]_{\beta_{1}^{(1,2)}, \beta_{1}^{(1,3)}} \left[ M_{\mu_{2}, 1} \right]_{\beta_{1}^{(1,2)}} \left[ M_{\mu_{3}, 1} \right]_{\beta_{1}^{(1,3)}} \\ &= M_{\mu_{2},1}^{\mathsf{T}} M_{\mu_{1},2} M_{\mu_{3},1} \end{align*} $$
表現可能性定理
主張
$n$個のベクトル$\mathbf{u}_{1}, \dots, \mathbf{u}_{n} \in \mathbb{R}^{3}$の成分、すなわち$3n$個の実変数についての多項式全体の集合を$\mathcal{P}$としよう。$\mathcal{P}$の部分集合$\mathcal{P}_{\text{perm}}$、$\mathcal{P}_{\text{rot}}$を次のように定義しよう。
$$ \begin{align*} \mathcal{P}_{\text{perm}} &= \set{ p \in \mathcal{P} : p(\mathbf{u}_{\sigma(1)}, \dots, \mathbf{u}_{\sigma(n)}) = p(\mathbf{u}_{1}, \dots, \mathbf{u}_{n}),\ \forall \sigma \in S_{n} } \\ \mathcal{P}_{\text{rot}} &= \set{ p \in \mathcal{P} : p(Q\mathbf{u}_{1}, \dots, Q\mathbf{u}_{n}) = p(\mathbf{u}_{1}, \dots, \mathbf{u}_{n}),\ \forall Q \in \operatorname{O}(3) } \end{align*} $$
すなわち$\mathcal{P}_{\text{perm}}$は置換不変な多項式の集合であり、$\mathcal{P}_{\text{rot}}$は回転、反射不変な多項式の集合である。 すると、基底多項式$B_{\alpha}$たちは$\mathcal{P}_{\text{rot}} \cap \mathcal{P}_{\text{perm}}$の生成集合である。すなわち、任意の$p \in \mathcal{P}_{\text{rot}} \cap \mathcal{P}_{\text{perm}}$は$B_{\alpha}$たちの有限な線形結合で表すことができる。ただし、その線形結合は一般に一意ではない。
$$ p(\mathbf{u}_{1}, \dots, \mathbf{u}_{n}) = \sum_{\alpha \in \mathcal{A}} c_{\alpha} B_{\alpha}(\mathbf{u}_{1}, \dots, \mathbf{u}_{n}) $$
説明
論文の定理3.1である。置換不変かつ回転、反射不変な多項式は$B_{\alpha}$たちの線形結合で正確に表すことができるという意味である。この定理がMTPの根拠となる理由は次の通りである。原子間ポテンシャル$V$を滑らかな関数と仮定すると、$V$はワイエルシュトラスの近似定理により多項式で近似できる。このとき近似する多項式も$V$と同じ対称性をもつように選ぶことができ2、そのような多項式はこの定理により$B_{\alpha}$たちの線形結合で表される。したがって$\mathcal{A}$を十分大きくとれば、$V$を望む精度で近似できる。
$$ V(\mathbf{u}) \approx \sum_{\alpha \in \mathcal{A}} c_{\alpha} B_{\alpha}(\mathbf{u}) $$
なお、各$B_{\alpha}$が$\mathcal{P}_{\text{rot}} \cap \mathcal{P}_{\text{perm}}$に属することは定義から直ちにわかる。モーメントテンソル$M_{\mu, \nu}$はすべての隣接原子についての和なので隣接原子の順序と無関係であり、$\mathbf{u}_{i}$を$Q\mathbf{u}_{i}$に置き換えるとテンソルとして一緒に回転する。$B_{\alpha}$はこのようなテンソルの添字を残らず縮約したスカラーなので、ベクトルの内積が回転に対して不変であるのと同じ理由で不変である。
名前は基底多項式だが、線形結合が一意でないということは$B_{\alpha}$たちが線形独立でないという意味なので、線形代数でいう基底ではない。例えば、$\alpha$の行と列を同じ置換で入れ替えても同じ$B_{\alpha}$が得られる。
Alexander V. Shapeev, Moment Tensor Potentials: a class of systematically improvable interatomic potentials, Multiscale Modeling & Simulation 14 (2016), p1153-1173. https://doi.org/10.1137/15M1054183 (arXiv:1512.06054) ↩︎
近似多項式$p$をすべての置換$\sigma \in S_{n}$とすべての$Q \in \operatorname{O}(3)$について平均すると、対称性をもつ多項式になる。$V$がすでに対称なので、平均をとっても近似誤差は大きくならない。 ↩︎
