-- Views
December 16, 25
スライド概要
回帰問題の分類問題への変換
決定木回帰とその応用
推薦システム
Scaling則
マテリアルズインフォマティクスチュートリアル
KNIMEによるマテリアルズ・イ ンフォマティクスハンズオン 第三回 2025/11/30版 木野日織 (きのひおり)
目次 回帰問題の分類問題への変換 決定木回帰とその応用 推薦システム Scaling則
回帰問題と分類問題 予測値 Ye s ある 閾値 No No 観測値 妥当な回帰モデル 妥当な回帰モデル? ある 閾値 Ye s 妥当な分類モデル
二値問題の分類問題の評価指標 病気の検査の場合 Positive(病気), Negative(健康) 予測値 観測値 Positive Negative Positive True Positive False Negative Negative False Positive True Negative True Positive (TP:真陽性) 正しく「陽性だ」と判定できたケース False Negative (FN:偽陰性) 本当は陽性なのに見逃してしまったケース(危険) False Positive (FP:偽陽性) 健康なのに「陽性」と誤判定(不要な追加検査が必 要) True Negative (TN:真陰性) 正しく「陰性だ」と判定できたケース(問題なし)
観測データ 二元合金の閃亜鉛鉱構造構造(Zinc Blende: ZB)とウルツ鉱構造(Wurtzite:WZ)の エネルギー差。 どちらも組成A:B =1:1。様々なA,B元素を取る。 閃亜鉛鉱構造:A元素のFCC構造+B元素のFCC構造 ウルツ鉱構造:A元素のHCP構造+B元素のHCP構造 説明変数 二元合金(A,B)の元素の説明変数 IP,EA, Highest_occ state energy Lowest_unocc state energy, s,pの原子半径 (rs,rp) Zinc Blende 'IP_A', 'EA_A', 'EN_A', 'Highest_occ_A','Lowest_unocc_A', 'rs_A', 'rp_A', 'rd_A’, 'IP_B', 'EA_B', 'EN_B‘,'Highest_occ_B', 'Lowest_unocc_B', 'rs_B', 'rp_B', 'rd_B’ 目的変数 エネルギー差 dE 参考文献 Luca M. Ghiringhelli, Jan Vybiral, Sergey V. Levchenko, Claudia Draxl, and Matthias Scheffler, "Big Data of Materials Science: Critical Role of the Descriptor", Phys. Rev. Lett. 114, 105503 (2015) 可視化ソフト:Momma, K., & Izumi, F, “VESTA 3 for three-dimensional visualization of crystal, volumetric and morphology data”, Journal of Applied Crystallography, 44, 1272–1276 (2011). DOI: 10.1107/S0021889811038970. Wurtzite
分類問題とするワークフロー ②Tableの表示 ⑤規格化 ⑦訓練データ での分類モデ ル学習 ⑧最適化の出力 ⑨線形回帰モデルの係数 ①CSVファイ ルの読み込み ⑫混同行列 ⑬分類評価指標表示 ③目的変数(連続 値)を離散地 Stable|unstableに 変換 ④Tableの表示 ⑥訓練・テスト データに分割 ⑪分類評価指標計算 ⑩テストデー タに対する分 類モデル予測 ⑫テスト予測値を加えたTable
カラム値の変換 ②dE“stable”,“unstable” へ変換 ①data¥ZB_WZ_dE_rawdescriptor.csv ③dEの出力を “stable”,“unstable”にする
変換後のdE値
Logistic Regression Learner ①Target column: dE ④dE ⑤Prediction (dE) ③カラム名確認 ②ABをExclude側へ
Logistic Regression Learner ①全選択 ②Show Row IDs
関数同定問題( symbolic regression) 未知の関数 𝑓をデータから推定する問題の総称 マテリアルズインフォマティクスでも関数同定問題 が行われています。 例)地上の物体の落下データから、上向きを正、 初期速度𝑣0 ,初期高さ𝑥0として時間𝑡の高さ𝑥(𝑡) に対して以下の形を導き出すこと。 1 𝑥 𝑡 = 𝑥0 + 𝑣0 𝑡 – 𝑔𝑡 2 2 二元合金の閃亜鉛鉱構造構造(Zinc Blende: ZB)と ウルツ鉱構造(Wurtzite:WZ)のエネルギー差データ に対して、文献では生説明変数から3つの非線形な 説明変数を作成しています。 |𝐼𝑃 𝐵 −𝐸𝐴(𝐵)| 1. 2. 3. 𝑟𝑝2 (𝐴) |𝑟𝑠 𝐴 −𝑅𝑝 𝐵 | exp(𝑟𝑠 (𝐴)) 𝑟𝑝 𝐵 −𝑟𝑠 𝐵 exp(𝑟𝑑 𝐴 ) ワークフローでこれを行い回帰性能の向上具合を確 認します。
Hyperparamterを最適化してLassoモデル を学習する ①data¥ZB_WZ_dE_rawdescriptor.csv
Hyperparamterを最適化してLassoモデル を学習する 目的:右の表をつくること
Hyperparamterを最適化してLassoモデル を学習する ①alphaのとる値 の設定。 log mesh ③Numeric Scorerの 出力が列ベクトルな ので転置する。 ②alpha でloopを 回す。 ④flow variable alphaを 行に追加する。 ⑤カラム名の位置変更
変数変換後Hyperparameterを最適化して Lassoモデルを学習するワークフロー
変数変換後Hyperparamterを最適化して Lassoモデルを学習するワークフロー 元の16変数から 3変数に減らして、 𝑅2が0.835から 0.979へ向上した。
最適なhyperparameterのflow variableへの変換 [Loop End]の出力 1. R^2の降順にソートする。 2. 1行目(最もR^2が大きい)を選択 3. alpha値をflow variableに
行ったこと 16の生の特徴量 'IP_A', 'EA_A', 'EN_A', 'Highest_occ_A’, 'Lowest_unocc_A', 'rs_A', 'rp_A', 'rd_A’, 'IP_B', 'EA_B', 'EN_B‘,'Highest_occ_B’, 'Lowest_unocc_B', 'rs_B', 'rp_B', 'rd_B’ 2. 3. 物理的な意味は?何かの示唆は? そこまでは行えていないが、物理的に正しい 特徴をとらえているとすると妥当な外挿問題 を行えるはず。 関数同定 1. 結果: 予測「線形」回帰モデル性能が向上 |𝐼𝑃 𝐵 −𝐸𝐴(𝐵)| 𝑟𝑝2 (𝐴) |𝑟𝑠 𝐴 −𝑅𝑝 𝐵 | exp(𝑟𝑠 (𝐴)) 𝑟𝑝 𝐵 −𝑟𝑠 𝐵 exp(𝑟𝑑 𝐴 ) 文献では最後に3つの説明変数で外れ値 (A=C, B=C, dE=2.68)の予測ができることを 示している。 参考文献 Luca M. Ghiringhelli, Jan Vybiral, Sergey V. Levchenko, Claudia Draxl, and Matthias Scheffler, "Big Data of Materials Science: Critical Role of the Descriptor", Phys. Rev. Lett. 114, 105503 (2015)
目次 回帰問題の分類問題への変換 決定木回帰とその応用 推薦システム Scaling則
決定木回帰 回帰モデル Level=1(if文の階層が1)まで x1<3.2 yes no 観測データ:赤 予測値:緑 y=0.611 y= 0.6111 for x1≥3.2 y= -0.724 for x1<3.2 y=-0.722
決定木回帰 Level=2 回帰モデル x1<3.2 yes no x1<3.8 x1<2.7 観測データ:赤 予測値:緑 yes y=0.691 y= 0.691 for x1≥ 2.7 y= 0.180 for 2.7 < x1≤3.2 y= -0.364 for 3.2 <x1 ≤ 3.8 y= -0.904 for x1 ≥ 3.8 no y=0.180 yes no y=-0.364 y=-0.904
決定木回帰 Level=10まで 回帰モデル … … 観測データ:赤 予測値:緑 … 離散プロットではほぼ点が 重なる。 説明変数は1つではないので、 条件分岐に使用する説明変数を選択しながら、 この木を作成する。
Random forest regression 観測データ(N) ①サンプルを「重複あり」でランダムに取り出し」 ④ランダムフォレストの最終予測値は: 𝑇 Nデータイ ンスタンス Nデータイ ンスタンス 異なるサンプル Nデータイ ンスタンス ②使用する説明変数をいくつか選択して(scikitではdefaultで全部) ③それぞれに分解木モデルを作成する 分解木 モデル1 分解木 モデル2 分解木 モデル100 𝑦ො = 1 𝑦ො𝑡 𝑇 𝑡=1 •𝑇 :決定木の本数(左図の場合は100) •𝑦ො𝑡 :t 番目の木の予測値
観測データ MAX相 組成式Mn+1 A Xnの組成式を持つ。 • M: early transition metal • A: カラム13 or 14の元素 • X: C or N とても硬い、かつ電気伝導度が高いことで知られている。 n=2,3,4,... が知られている。n≥3では同じ組成式 でalpha構造とbeta構造がある。 説明変数 - 構成元素M, A, Xの特徴量、組成式としての特徴量(組成比で最大、最 小、平均、標準偏差)を加えている。 - n≥3に対してはalpha, betaに対してdummy変数(adirection, bdirection)を加えている。 目的変数 文献には • 𝜌0𝜆𝜆 (rho0 lambda lambda): bulk resistivity x mean free path, no kdependent mean free path approximation が2つの近似で計算されている。 𝜌0𝜆 は線幅が小さくなったときの抵抗 増加のしにくさの指標であり、これは小さい方が良い。 データ取得文献: Kiroubanand Sankaran , Kristof Moors, Zsolt T˝okei,1 Christoph Adelmann, and Geoffrey Pourtois, " Ab initio screening of metallic MAX ceramics for advanced interconnect applications", PHYSICAL REVIEW MATERIALS 5,056002(2021), DOI: 10.1103/PhysRevMaterials.5.056002 alpha-Ti4CdC3 beta-Ti4CdC3 n=3の結晶構造例
Random forest回帰でhyperparameterを自動決定す るワークフロー 妥当な予測ができるモデルが学習できるかの検討を行う。 ③外れ値の削除 ④全データで回帰モデル 作成、性能評価 ①(解析時に混乱し ないように)不要な ②目的変数の分布 カラムを削除 確認 ③規格化 ⑤訓練・テストセット 分割して回帰モデル作 成、性能評価
Random forest回帰でhyperparameterを自動決定す るワークフロー 全データで回帰モデル作成、性能評価 hyperparameter探索 最良のhyperparameterを 用いた予測
Random forest回帰でhyperparameterを自動決定す るワークフロー ①Hyperparameter最適化 ⑤最適パラメタのflow variableへの出力 ⑥最適パラメタを用いたランダム フォレスト回帰モデルを使った学習 ⑦学習されたモデルを使った予測 ⑧回帰評価指標値の出力 ②ランダムフォ レスト回帰モデ ルを使った学習 ③学習されたモデ ルを使った予測 ④予測値の可視化(ただし、 最後のhyperparameter) ⑨予測値の可視化
Random forest回帰でhyperparameterを自動決定す るワークフロー 訓練・テストセット分割して回帰モデル作成、性能評価 hyperparameter探索 最良のhyperparameterを 用いた予測 ①訓練・テストデータ セットを作成
データ読み込み、前処理 ②利用しない カラムを除く。 ⑤目的変数<30 ①data¥maxphase_property.csv を読み込む。 ③一件だけ非常に大き な値のデータがある。 ④誤りではないが除く ⑥説明変数をZ-score normalization
回帰モデル訓練と予測、回帰性能評価 ①Materialを除く ②指定しないと ’Prediction (予測値名)‘ となる。 ③rho0 lambda lambda ④Prediction( rho0 lambda lambda)
Hyperparameter最適化(1) ②Param, Start, Stop Type がTable Creatorのカラム名 と対応していることを確認 ①Random forest regressionのパラメタを変える。 ③Brute Force ④ seed: randomseed maxLevels: levels minNodeSize: minnodesize nrModels: nmodels seedは機能していない かもしれない。
Random Forest回帰モデルのhyperparemeter 観測データ(N) Nデータイ ンスタン ス Nデータイ ンスタン ス Nデータイ ンスタン ス … あるノードのサンプル数が minNodeSize未満の場合は maxLevels未満でも、それ 以上葉を分割しない。 分解木 モデル1 分解木 モデル2 T = nrModels 分解木 モデルT 分割の最大深 さ:maxLevels …
Hyperparameter最適化(2) [Node Monitor] ②MAEの最小値を与えるパラメタとその時のMAE値が出力される。 ①Mean absolute error Minimizedを選択 ③全部flow variableと して使用する。
最適なhyperparameterを用いた回帰モデル ①同じ設定 予測値 観測値
訓練・テストデータに分割した場合 予測値 観測値
回帰評価指標値の比較 全データを用いて回帰して、全データ を用いて性能評価した場合 訓練全データを用いて回帰して、テス トデータを用いて性能評価した場合 ①𝑅 2 が大きく悪化する。 ②全データを 用いた場合は、 よいfitができ るが、 予測値 観測値 ③妥当な予測 回帰モデルで はないと思う。 予測値 観測値
目次 回帰問題の分類問題への変換 決定木回帰とその応用 推薦システム Scaling則
推薦システム 回帰、次元圧縮、分類、クラスタリングではない。 一般的には、それらを組み合わせた手法 他者の購入履歴から次の購買品の推薦によく用いられる。 (1) 協調フィルタリング(Collaborative Filtering) ユーザーの行動履歴(閲覧・購入・評価)から似たユーザー・似たアイテムを見つけて推薦する方式。 •ユーザー×アイテム行列(例:ユーザーが映画に付けた★評価) •典型的には 行列が疎(sparse)であり、空欄を予測することが目的。 (2) 内容ベースフィルタリング(Content-based Filtering) アイテムの特徴(ジャンル、価格、説明文の embedding など)をもとに似たアイテムを推薦。
協調フィルタリングの問題設定 文献からX a Y1−𝑎 の存在(yes)/非存在(no)を調べた結果。 0.1 0.2 0.3 0.4 0.5 0.6 Na-Y yes yes yes no no no K-Y yes yes ? ? ? ? 物理的知識があると、NaとKはどちらもアルカリ元素なので似ている。した がって、 0.1 0.2 0.3 0.4 0.5 0.6 Na-Y yes yes yes no no no K-Y yes yes yes no no no を予想する。 問題: 数学的に どうやる のか?
協調フィルタリングの問題設定 例)低ランク行列による推薦 Singular value decomposition (SVD): 任意の行列 𝑅を 𝑅 = 𝑈S𝑉 ⊤ に分解できる。 •𝑈:ユーザー固有ベクトル •𝑆:特異値(重要度) •𝑉:アイテム固有ベクトル 𝑆は対角行列、対角項(𝑠𝑖 )は非負値に できる。 つまり、𝑖𝑗成分は 𝑆𝑖𝑗 = 𝑠𝑖 𝛿𝑖𝑗 一般的に𝑠𝑖 は降順(𝑠1 ≥ 𝑠2 ≥ ⋯ ≥ 0)に 並べることができる。 𝑅の𝑖𝑗成分は 𝑅𝑖𝑗 = 𝑠𝑘 (𝑈𝑖𝑘 𝑉𝑗𝑘 ) 𝑘 行列で書くと 𝑅 = 𝑠𝑘 𝑊 (𝑘) 𝑘 Rを𝑠𝑘 を用いて𝑊 (𝑘) で展開していく形を持つ。 これをKまでで打ち切る。 𝐾 𝑅 (𝑘) = 𝑠𝑘 (𝑈𝑖𝑘 𝑉𝑗𝑘 ) 𝑘=1 = 𝑈𝑆’𝑉 𝑇 𝑅𝑘 を低ランク行列、低ランク近似行列と呼ぶ。
観測データ 0=存在しない。もしくは観測デー タがない。 1=存在する。 を行列表示で表した、とする。 これは右のような長方形の行列。 部分が「存在」で はないのだろう か?
SVDを利用した協調フィルタリングワークフロー ②Sの対角項のみのTable から対角行列を作る。 𝑆′ 𝑈𝑆’𝑉 − 𝑅 𝑅 S𝑑𝑖𝑎𝑔 𝑉 𝑈 ①SVD分解 Kまで出力 𝑈𝑆′ 𝑉𝑇 𝑈𝑆′𝑉 𝑇
SVDを利用した協調フィルタリングワークフロー ④𝑈𝑆′𝑉 𝑇 − 𝑅の降 順でのソート結 果表示 ①Rの可視化 𝑅 𝑈𝑆’𝑉 − 𝑅 ③𝑈𝑆′𝑉 𝑇 − 𝑅 の可視化 𝑈𝑆′𝑉 𝑇 ②𝑈𝑆′𝑉 𝑇 の可視化
用語説明 Pivoting/unpivoting wide 形式 long 形式 Name Feature Value A x 1 A y B B Feature Name x y 2 A 1 2 x 3 B 3 4 y 4 pivoting unpivoting KNIME Modern UIではlong形式を計算 に用いる仕様。しかし、かなり面倒 (workflowでの変換例を示す) 今回、行列計算には Python(Numpy)を利用してwide 形式を用いる。
𝑆𝑑𝑖𝑎𝑔 から𝑆’へ変換 (K,1) (K*K,4) (K, K+1) (row, column)=0 for row ≠ column 𝑆𝑑𝑖𝑎𝑔 𝑆′ 非対角row,column のSingular Valueを 0に ↑不要なカラムが入る。 ’row‘,’column‘カラムを作成 (K, K)
ファイル読み込み ①data\simple_existence.csv ②Has RowIDはチェックしない。
Spark SVDの設定 ① Kの値 ②全部選択
存在有無の行列表示 元の存在有無を行列形式で表した 低ランク行列 ①赤部分の存在が推薦さ れる。 低ランク行列ー元の行列 ②見やすくするために元 画像との差を取る。
差が大きなセルの行と列を出力 目的:図から読み取るのではなく、具体的にrow, column名を読み取る。 ②ColumnValuesを降 順(↓)で並び替え ①全部選択 ③黄色い部分が選 ばれる。
Unpivotが行っていること column 0 column 1 row0 value1 value2 row1 value3 value4 row2 value5 value6 row3 value7 value8 RowIDs ColumnNames ColumnValues row0 column0 value1 row0 column1 value2 row1 column0 value3 row1 column1 value4 row0 column0 value5 row0 column1 value6 row1 column0 value7 row1 column1 value8 ColumnValuesカラムの値でソートするため。
低ランク行列と元画像の差 元画像 K=1 K=2 K=3 Kを増やすにつれ、低ランク行列が次第に細かい構造を再構成する。 (元画像が観測されていてno=0なのか、観測されていないので0なのかの区別がつかない。) ✓ 観測の初期はK=1で図の大まかな構造から推薦できる,観測データが集まるにつれKを大きくし て細部の構造に対応した物質の推薦をするという戦略をとるとよいだろうこともわかる。
物質データ 構造データベースから 例えば、InとPからなる二 元物質を検索すると •InP, F-43m •InP3, R-3m •InP, Fm-3m などの構造が見つかる。 これは、構成元素、その比率、空間群で分けると formula element1 element2 ratio1 ratio2 spacegro up InP In P 1 1 F-43m InP3 In P 1 3 R-3m InP In P 1 1 Fm-3m element1, element2, ratio1, ratio2, spacegroupと いう5次元のデータ。比率は更に和が10の整数 比のヒストグラムに変換する。 5次元空間で セル(In, P, 5, 5, F-43m)=1 セル(In, P, 3, 7, R-3m)=1 {Al, Si, P, Ga, Ge, As, In, Sn, Sb}から成る 二元物質を Crystallography Open Database (http://www.crystallography.net/cod/) から得たデータを用い ます。 次元圧縮をSVDとNMFを用いて行うために更に二次元行列に変 換します。 行を“element1^element2”、列を “ratio1^ratio2^spacegroup”という表記を用いて該当物質がデー タベースに存在したら=1、存在し無い場合は=0とします。 (観測データ存在しない場合と、観測したが存在しない場合はど ちらも0です。) 左の表の場合は セル(In^P, 5^5^F-43m)が1 セル(In^P, 3^7^R-3m)が1 とする。
ファイルの読み込み ①data\group131415_div1.csv ③Has RowID ②RowIDに意味がある。
画像の差 元画像 K=10、低ランク行列 低ランク行列ー元の行列
物質存在推薦 ①値が大きい推薦物質のうちAtomwork databaseで似た物質を探す。 差 0.308 0.190 0.122 0.024 推薦物質 Sn0.5As0.5 In0.5Sb0.5 In0.6Sb0.4 In0.2Sb0.8 推薦空間群 R-3m P6/mmm I41/amd R-3m 観測物質 Sn3.6As3 In0.7Sb0.3 In0.5Sb0.5 In0.4Sb0.6 観測空間群 R-3m P6/mmm I41/amd R-3m K=10のみでしたが、本来はKをtuningすべき。
参考文献 element1, element2, ratio1, ratio2, spacegroupを、行element1^element2”、列を “ratio1^ratio2^spacegroup”と二次元に分解しましたが、多次元のままテンソル分解するした方 がより妥当な推薦が可能であることを文献1では示しています。 1. “Matrix- and tensor-based recommender systems for the discovery of currently unknown inorganic compounds”, Atsuto Seko, Hiroyuki Hayashi, Hisashi Kashima, Isao Tanaka, Phys. Rev. Materials 2, 013805 (2018), DOI: https://doi.org/10.1103/PhysRevMaterials.2.013805 2. COD http://www.crystallography.net/cod/ 3. atomwork https://crystdb.nims.go.jp/
目次 回帰問題の分類問題への変換 決定木回帰とその応用 推薦システム Scaling則
Scaling則 1.SMILES 3.QM9 Dataset 2.MSE(N), MAE(N) 4.KNIMEでのScaling則評価
大規模言語モデルのscaling則 𝐿(𝑁) パラメタ数~計算量 GPU コスト・電力消費が高いため、 「無駄に大きなモデル」は非効率 𝑝≫𝑁 データ数が決まっている→パラメタ数 を増やしすぎても性能が向上しない。 20𝑝~𝑁𝑜𝑝𝑡 𝑝≪𝑁 𝑁 図:大規模言語モデルのニューラルネットワークモデルのパラ メタ数(𝑝)とTOKEN数(N~データ数)の関係。(文献2) 𝑝 ≫ 𝑁:LLMなどの領域では、綺麗な scaling lawに従い、性能向上が見込め る。 𝑝 ≪ 𝑁は減衰が途中で一定値になるのが 見えることが多い。
SMILES 分子例)エタノール CH3-CH2-OH, • 分子を直線状に記述する。 • 分岐を括弧で表す。 • 必要の無いHは書かない。 CH2 CH3 SMILES: CCO
SMILES トルエン • 芳香炭素族を小文字 • 直線にするために切断した炭 素をc1 • (閉じる配置を表すために番 号を1からつける) 最後につ なげる ⑦ SMILES: Cc1ccccc1 C① c1 ② c1 c ③ c ⑥ c ④ c ⑤
SMILES • 二重結合は= • cisとtransを区別できる。 Cl/C=C Cl Cl/C=C/Cl
SMILES表記とfingerprint Morgan Fingerprint :分子の固定長特徴量 SMILESから変換可能 分子例)エタノール CH3-CH2-OH, 半径0:中心原子の特徴 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 を表す。 以下、簡単なFingerprint作成例を考える。 (Morgan Fingerprintではない) SMILES: CCO
SMILES表記とfingerprint:半径0 半径0(中心原子の特徴) CCO CCO CCO C 1 1 0 N 0 0 0 O 0 0 1 形式電荷0 1 1 1 芳香性フラグ 0 0 0 付加水素数1 0 0 1 付加水素数2 0 1 0 付加水素数3 1 0 0 エタノール CH3-CH2-OH, SMILES: CCO 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 8 bitsで表すことが可能。つまり CCO = 10010001 CCO = 10010010 CCO = 00110100
SMILES表記とfingerprint:半径1 半径1(中心の隣との原子の関係) エタノール CH3-CH2-OH, SMILES: CCO 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 CCO CCO CCO 隣がCH3 0 1 0 隣がCH2 1 0 1 隣がCH 0 0 0 隣がOH 0 1 0 隣が芳香環の 側鎖 0 0 0 5 bitsで表すことが可能。つまり CCO = 01000 CCO = 10010 CCO = 01000
SMILES表記とfingerprint:半径2 エタノール CH3-CH2-OH, SMILES: CCO 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 半径2 ( 中心の2つ隣との原子の関係) CCO CCO CCO 2 step先がC 0 0 1 2 step先がO 1 0 0 2 step先がN 0 0 0 5 bitsで表すことが可能。つまり CCO = 010 CCO = 000 CCO = 100
SMILES表記とfingerprint エタノール CH3-CH2-OH, SMILES: CCO ①半径0, 1, 2のbitsをつなげて書くと全部書くと、 ③分子内原子表現 図は https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%B F%E3%83%8E%E3%83%BC%E3%83%AB から取得 Nov. 26, 2025 Morgan Fingerprint 半径0:中心原子 半径1:隣との原子の関係 半径2:2つ隣との原子の関係 ④Bitsの文字表現 CCO = 010 01000 10010001 CH3、隣がCH2、2つ隣がO CCO = 000 10010 10010010 CH2、隣がCH3とOH CCO = 100 01000 00110100 OH、隣がCH2、2つ隣がC 半径2 半径1 半径0
SMILES表記とfingerprint ①分子のfingerprintは構成原子のORを取る。 CCO = 010 10010 00101000 CCO = 000 10010 01010010 CCO = 100 00110 10001000 -----------------------CCO = 110 10110 11111010 ②この場合16 bitで分子を表現している。 ③細かい特徴を入れればいくらでもbits数は増 える。 ④分子により長さが異なると使いにくいので、 固定長にする。→次ページ
SMILES表記とfingerprint ①固定長の仕方(上位bitsを無視する。 右側の11bits使う CCO = 110 10110 11111010 右側の14bits使う CCO = 110 10110 11111010 ②固定長のbitsにすることをハッシュ化するという。 ハッシュ化すると… 11bitsの場合: 隣がCH,CH2,CH3かの区別がなくなり、2つ隣 の区別がなくなる。(それらが同じ表現にな る。) 14bitsの場合: 2つ隣の区別がなくなる。 →一つのfingerprintで複数の構造を表すことになる。 ③右側のbitほど重要な特徴を入れるように特 徴量を配置する。 分子のSMILESから作るfingerprintは多種 ある。 Morgan fingerprint(FP): Functional Class FP, Extended Connectivity FP, Topological FP, Atom Pair FP, Topological Torsion FP, MACCS Keys, Avalon FP, … ④1024, 2049 bitsなど多くの特徴を用いる。
QM9データセット $ pip install torch $ pip install torch_geometric ```Python from torch_geometric.datasets import QM9 root = "./data/QM9" # ダウンロード先 dataset = QM9(root) print(dataset) print(len(dataset)) print(dataset[0]) ```
データサイズと回帰性能 記述子サイズ(P)を1024とする。 データサイズ(N)は? N最大 ~130,000 ① N<Pでは解が一意にも止まらないので penalty termがある線形回帰モデルを用いる。 ②ただし、KNIMEのSpark Ridge回帰にNの大 きさの強い制限あるのでSklearn Lassoを用い る。αは固定する。 問題: 線形回帰モデルで 1. Nを変えると回帰性能は向上するか? 2. どこまで向上するか? RMSEやMAEを 𝐿(𝑁) = 𝐿0 + 𝑎 𝑁 −𝑏 でフィットする。
自動パラメタ変更性能評価ワークフロー ⑦Loopのパラメ タ作成 ⑧Loopの終了 ⑤結果のファイ ルへの書き出し、 読み込み。 ①データ読み込 み、説明変数作 成 ②サンプル取 得、訓練・テ ストデータ分 割 ③Lasso訓練、 テスト予測 ④評価スコ アまとめ 後で結果だけ見 れるようにファ イル保存。 ⑥結果図示
自動パラメタ変更性能評価ワークフロー ④Morgan ⑤ SMILES ⑥Smiles (Fingerprint) ①{QM9をダウンロードした フォルダ}/qm9.csv ②SMILES ③Smiles ⑦1024 ⑧2
自動パラメタ変更性能評価ワークフロー ① smiles (Fingerprint) ② 元のカラムは不要なの で削除する。 ③ (今の場合1024個の) bitvector{N} というカラム が作成される。 ①全て”Remove Row*” (SMILESに方言かあるか らか)変換できていない行 を削除する。
自動パラメタ変更性能評価ワークフロー ③出来上がった Tableを各自確認 ① Seed 1,2,3,4 ④ seed, N ② N 100, 200, … 50000
自動パラメタ変更性能評価ワークフロー ③ Relative ④ 70% ①Flow variable からNを選択 ② Flow variable からseedを選択 ⑤ 乱数固定した方が良い。 (値は何でもよい)
自動パラメタ変更性能評価ワークフロー ③ 予測値カラム名を確認 ④ GAP ⑤ Prediction (GAP) ① bitvector{N}をす べて選択 ②Lasso hyperparameter: α=0.0001 (p>Nのモデルを一意にするため)
自動パラメタ変更性能評価ワークフロー ⑤ Create Varible: filename ② Generate new RowIDs ② Add iteration column ③ ファイル名選択 ④ Write column header ① seed, N
自動パラメタ変更性能評価ワークフロー ①Flow variableから filenameを選択 ③N ④ mean absolute error ② Has column header
自動パラメタ変更性能評価ワークフロー N vs mean absolute error ① 𝑁~𝑃(= 1024 )でMAEが大きくなる。 ② Nを増やすと下がる領域を 選択してfitしたい。
自動パラメタ変更性能評価ワークフロー ③データとfit結果を表示する Python script ① N >= 2200 ②𝐿 𝑁 = 𝐿0 + 𝑎 𝑁 −𝑏 をfitする𝑃𝑦𝑡ℎ𝑜𝑛スクリプト
HOMO-LUMO GAP, Scaling law結果 より正確なfittingとしてPythonのScikit Ridge回帰で hyperparameterを最適化して回帰性能を評価し、Bayesian fitを実行。(データもPythonで取得している。) MAP 例えば、94% Highest Density Interval (大体±2σ相当)は b: [0.084, 0.42] L0: [0.20,0.46] MAEは右図。 R2(N=103)=0.4 から R2(N=2 × 104)=0.77へ性能向上。 𝐿 𝑁 ~𝐿0 + 𝑂 𝑝 𝑁 , 𝑅𝑀𝑆𝐸, 𝑀𝐴𝐸は~最低値+𝑂(1/𝑁 0.5)である といわれるが、あまりそうはならない。 ただ、右図のデータでは、値のばらつきが多きすぎる。 また、データを増やして、うまくscaling則に従うとも限り ません。 𝑁
HOMO-LUMO GAP, Scaling law結果 問題: 線形回帰モデルで 1. Nを変えると回帰性能は向上するか? 2. どこまで向上するか? 答え: Ridge回帰を用いると MAE(𝑁) = 0.386 + 1.045 𝑁 −0.252 予測回帰性能が悪い。 データ数が足りない? モデルが悪い? 𝐿0 =データ数が無限大時の値。 Q. 𝐿0 よりMAE最小値を小さくするには? A. 記述子や、モデルを変える。 ただし、外挿領域を含める場合はこの式に従 わない。 MAE最小値 減衰の様子
参考文献 1と2.大規模言語モデルの例がよく知られている。TOKENがデータインスタンス数に対応する。 3.人工合成した画像 データ(化学合成データではない)の例。 4.転移学習の例 1. Scaling Laws for Neural Language Models, Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei, https://arxiv.org/abs/2001.08361 2. Training Compute-Optimal Large Language Model, Hoffmann, J., Borgeaud, S., Mensch, A., Buchatskaya, E., Cai, T., Rutherford, E., … Sifre, L. (2022). arXiv preprint arXiv:2203.15556. 3. Mikami, H. et al. (2023). A Scaling Law for Syn2real Transfer: How Much Is Your Pre-training Effective?. In: Amini, MR., Canu, S., Fischer, A., Guns, T., Kralj Novak, P., Tsoumakas, G. (eds) Machine Learning and Knowledge Discovery in Databases. ECML PKDD 2022. Lecture Notes in Computer Science(), vol 13715. Springer, Cham. https://doi.org/10.1007/978-3-031-26409-2_29, also https://arxiv.org/abs/2108.11018 4. Scaling law of Sim2Real transfer learning in expanding computational materials databases for real-world predictions, Mikami et al., https://www.nature.com/articles/s41524-025-01606-5