化合物の構造を表現する記述子
無機化合物の化学式とユニットセルの情報及び原子の座標から物性値(結合エネルギー・バンドギャップ)を予測するKaggleコンペに参加していた。
Nomad2018 Predicting Transparent Conductors | Kaggle
feature engineering の過程で分子および無機結晶の構造から特徴量抽出する手法に関する論文をいろいろ読んだので、以下にまとめておく。 基本的に記述子の作り方の部分しか読んでいないので、詳しくは論文を参照。
分子に対する手法
Coulomb Matrix (CM)
- [1109.2618] Fast and Accurate Modeling of Molecular Atomization Energies with Machine Learning
次のような"Coulomb" Matrix を考える。
ここでは原子Iの形式電荷、は原子Iと原子Jの距離。
分子を構成する原子Iと原子Jの間の反発力を表している。 対角成分については、原子の自己エネルギーを多項式でフィッティングしたもの。
Coulomb Matrix の固有値を絶対値の大きい順で並べ、適当に0でpadding して次元を揃えたものを記述子として使う(分子ごとに原子数が異なるので記述子の次元を揃える必要がある)。
分子の回転・並進移動の元で記述子は不変。
Bag of Bonds (BoB)
- http://pubs.acs.org/doi/abs/10.1021/acs.jpclett.5b00831
- ボンドを単語だと思ってbag of words する。
- 分子を構成するボンドを種類ごとにカウントして、それぞれの個数を成分とするベクトルを記述子とする。
Bonds, angles, machine learning (BAML)
Extended Connectivity Fingerprints (ECFP)
Molecular atomic radial angular distribution (MARAD)
Histogram of distances, angles and dihedral angles (HDAD)
- [1702.05532] Machine learning prediction errors better than DFT accuracy
- 原子間距離のヒストグラムを記述子にする(Histogram of disrances, HD)。
- HDに加えて、結合角のヒストグラムも記述子にする(Histogram of distances and angles, HDA)。
- HDAに加えて、二面角*1のヒストグラムも記述子にする(Histogram of distances and angles, HDAD)。
- ヒストグラムのbinは一つの区間に極値が一つだけ含まれるように選ぶ。
Fourier series of radial distance distributions
- [1307.2918] Fourier series of atomic radial distribution functions: A molecular fingerprint for machine learning models of quantum chemical properties
- 原子の動径分布関数をフーリエ変換する。
- 動径分布関数を考えるので回転のもとで不変。
- フーリエ変換するので並進移動のもとで不変。
Molecular Graph (MG)
- [1704.01212] Neural Message Passing for Quantum Chemistry
- [1603.00856] Molecular Graph Convolutions: Moving Beyond Fingerprints
無機結晶に対する手法
分子に対する手法ほど進展していない印象。 分子の場合は並進移動と回転に対する対称性を考えればよかったが、結晶の場合は更にユニットセルの選び方に関して不変であるべきなのでより難しそう。 crystal net *2を一意に表す方法があればいいのだが、そもそもグラフ同型判定問題はNPに属しているという厳しさがある。
Partial radial distribution function (PRDF)
- [1307.1266] How to represent crystal structures for machine learning: towards fast prediction of electronic properties
- 元素Aを中心とした元素Bの動径分布関数。配位環境が異なるとPRDFも異なるので、等価でないサイトを占める元素A全体で平均を取る。
- (cutoff 半径とビン幅の決め方がはっきりしない)
Atom centered symmetry functions
- https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.98.146401
- http://aip.scitation.org/doi/full/10.1063/1.4966192
- まず次のようなカットオフ関数を定義する。
- 各原子に対して次のような動径分布関数を考える。 をいろいろ変えて記述子とする。
- 各原子に対して次のような角度分布関数を考える。 をいろいろ変えて記述子とする。
Bond orientational order parameter (BOP, BOOP)
- Phys. Rev. B 28, 784 (1983) - Bond-orientational order in liquids and glasses
- 原子の分布関数を動径方向に周辺化して球面調和関数で展開したときのスペクトル。
- pymatgen.analysis.local_env で簡単に計算できる。
Bispectrum
- [0910.1019] Gaussian Approximation Potentials: the accuracy of quantum mechanics, without the electrons
- [1209.3140] On representing chemical environments
- 原子の分布関数を三次元球面に埋め込んで、4次元の球面調和関数で展開する。
F-Fingerprint
- How to quantify energy landscapes of solids. - PubMed - NCBI
- 化合物に含まれる原子A, Bに対して次の関数を考える。
- ここで、は原子と原子の距離、はユニットセル内の原子A,Bの個数、はユニットセルの体積、はこの関数をヒストグラムにするビン幅、はgaussian-smeared delta function
Ewald Sum Matrix
- [1503.07406] Crystal Structure Representations for Machine Learning Models of Formation Energies
- Coulomb Matrix における をサイトIを占めるすべての原子とサイトJを占めるすべての原子との間の静電ポテンシャルの和に修正。
- Ewald法を用いて静電ポテンシャルの総和を計算する。
- pymatgen にEwald法を用いて結晶の静電ポテンシャルの総和を計算する関数があるが、計算する式が少し違う。ただEwald Sum Matrix を実際に実装するときに大いに参考にはなる。
Extended Coulomb-like Matrix
Sine Matrix
Crystal Graph (CG)
- [1710.10324] Crystal Graph Convolutional Neural Networks for Accurate and Interpretable Prediction of Material Properties
- primitive cell 内の原子とボンドを特徴量ベクトルで表現して、Graph Convolution
- 畳み込み層のあとでプーリング層に入れて、primitive cell内の原子数によらない特徴量ベクトルを得る。