概要
CGCNNは、結晶構造から材料特性を予測するための結晶グラフ畳み込みニューラルネットワークのソフトウェア実装です。主に2つのワークフローに対応しています。ユーザーが用意した構造–特性データセットでモデルを学習する方法と、事前学習済みモデルを新しい結晶に適用する方法です。リポジトリでは、回帰と分類の両方を説明しており、原子あたりの生成エネルギーの予測と、金属・半導体の分類を例として示しています。材料データベースではなく、予測モデリング用のコンポーネントです。
どちらのワークフローでも、結晶構造を ID.cif ファイルとして格納し、結晶識別子と目的値を対応づける2列の id_prop.csv と、元素の初期化ベクトルを含む atom_init.json を備えたデータセットディレクトリが必要です。推論には実際の目的値測定は不要ですが、目的値の列にはプレースホルダーの数値が必要です。付属のサンプルデータセットは回帰と分類の入力例を示しています。上級ユーザーは、説明されている CIFData インターフェースを使わずに、カスタムのPyTorchデータセットを実装することもできます。
学習では、学習・検証・テスト用の分割に対応しており、件数または比率で指定できます。出力には、検証時の最良モデル、最終エポックのチェックポイント、テスト識別子・目的値・予測値を含むCSVが含まれます。事前学習済みモデルによる推論でも test_results.csv が生成されます。分類の予測値はクラス1に属する確率です。READMEでは、依存関係としてPyTorch、scikit-learn、pymatgenが挙げられています。出典の抜粋からは、前向きデータセットにおける予測精度や、あらゆる結晶ファミリーへの適合性は確認できないため、予測を材料選定に用いる前に、対象に応じた評価が必要です。
主な機能
- CIF結晶構造と材料特性の目的値を対応づけたカスタムデータセットでCGCNNモデルを学習します。
- 回帰と分類に対応し、それぞれのタスク用のサンプルデータセットが用意されています。
- 事前学習済みチェックポイントを新しい構造に適用します。文書では、生成エネルギーと金属・半導体分類の例が説明されています。
- 学習・検証・テストの分割を件数または比率で設定できます。この2種類の設定方法は併用できません。
- 検証時の最良モデルと最終エポックのモデルチェックポイントに加え、結晶識別子、目的値、予測値を含むCSV結果を出力します。
- `CIFData` データセットインターフェースを提供し、代替の入力方法としてカスタムPyTorchデータセットクラスについて説明しています。
用途
- 評価の提案:ラベル付き結晶コレクションで特性回帰モデルを学習し、候補の優先順位付けに用いる前に、ホールドアウトデータで予測を評価します。
- 評価の提案:付属の生成エネルギーチェックポイントを代表的なCIF構造に適用し、予測値を利用可能な参照値と比較します。
- 評価の提案:ラベル付き結晶セットで金属・半導体の分類確率を調べ、電子材料のスクリーニングワークフローへの適合性を評価します。
使い方
- 公式READMEを読み、カスタム学習または事前学習済みモデルによる推論を選択します。環境を準備する前に、文書に記載されたPyTorch、scikit-learn、pymatgenの前提条件を確認してください。
- 結晶ごとに1つの
ID.cifを含み、id_prop.csvの識別子と対応するデータセットディレクトリを用意し、元素ベクトルファイルatom_init.jsonを配置します。形式の参考として、文書に記載されたサンプルデータセットを使用してください。測定値がない場合でも、推論には数値の目的値列が必要です。 - 学習する場合は、回帰または分類を選び、学習・検証・テストの分割を設定します。READMEに記載された件数ベースまたは比率ベースの設定に従い、両方の方法を混在させないでください。
- 推論する場合は、目的特性に適した事前学習済みチェックポイントを選び、READMEに記載された
predict.pyの手順に従います。文書の例では、原子あたりの生成エネルギーと金属・半導体の分類が扱われています。 test_results.csvを確認し、学習後は保存されたチェックポイントも確認します。推論時のプレースホルダーを測定値として扱わず、分類出力はクラス1の確率として扱ってください。評価手順の提案として、下流で使用する前に予測値を独立した参照ラベルと比較します。手法の背景については枠組み論文を参照してください。