Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nishika_Bussei_大好きオフトゥン_1st_solution.pdf

Nishika-Inc
April 10, 2023
120

 Nishika_Bussei_大好きオフトゥン_1st_solution.pdf

Nishika-Inc

April 10, 2023
Tweet

Transcript

  1. 解法概要 ・前処理 train, test.csv内のCIFデータを用いてpymatgenで各結晶構造のCIFファイルを作成 ・モデル CGCNN : チュートリアル掲載の元論文実装を使用  GitHub MEGNet : Matdeeplearn からMEGNetを選択 GitHub

    SchNet  : Kgcnn(Kerasベースの各種結晶物性予測モデル)から SchNetを選択 GitHub ・CV Stratified Kfoldで10分割 train : validation : test = 8 : 1 : 1の割合で分割し、 各モデルのアンサンブルは testのスコアを参考にざっくり
  2. 各モデル 簡単に紹介 • CGCNN : arxiv論文 グラフ畳み込みネットワークを結晶構造に適用したもの。 ノードに結晶内の原子、エッジに一定の距離を閾値として間引いた原子間の結合を充てて、ノード自身 と周辺ノードの情報を集約して更新する。 日本語で分かりやすいCGCNNの解説 • MEGNet : arxiv論文

    ノード、エッジ以外にグローバル状態量を用意しノード、エッジの両方を用いて更新する • SchNet : arxiv論文 continuous-filter convolutional layersを導入したGNN エッジの特徴量として e = exp(-(r-μ)^2) を用意しone-hotベクトルのように扱うのが特徴
  3. CVとアンサンブル ・CV 目的変数のエネルギーが非常に大きいもの、小さいものが一 定数あったので、ざっくりでまとめて6つラベル付けし、そのラベ ルをもとにStratified Kfoldにより10分割 train : validation :

    test = 8 : 1 : 1にて学習、評価 ・アンサンブル 各モデルでfoldそれぞれで予測し平均 3つのモデルを以下のようにアンサンブル CGCNN : 20 % (public LB 0.0679) MEGNet : 10% (public LB 0.0758) SchNet : 70% (public LB 0.0615) 上記アンサンブルでpublic : 0.0583, private : 0.0605 ※ SchNet単でpublic2位、pribate1位相当 3モデルのアンサンブルにより public, privateともに1位のスコアに
  4. 他トライしたこと、やったけど効かなかったこと • テーブルデータとしてトライ 初期は元データの組成、原子の特徴量をもとにした構成元素の電気陰性度の差、原子量などの統計 量、ディスカッションにあったような matminerなどのライブラリから生成できる特徴量を用いて LightGBM、MLP  →LBでだいたいpublic 0.130くらいまでしかスコア下がらず •

    SOAP記述子 DScribeというライブラリを用いてSOAP記述子を作成しMLP  →LBでだいたいpublic : 0.090, private 0.089 • CIFからグラフ特徴量を作成し利用 結晶グラフをなんやかんやで作成し、ネットワーク特徴量として リンク密度、クラスター密度や平均結合次数など作成して利用  →LB改善なし(グラフの作り方など工夫必要そう)