20.1K Views
January 23, 23
スライド概要
マテリアルズ・インフォマティクス 連続セミナー 第六回
ソースコード:https://bitbucket.org/kino_h/python_mi_seminar_2023/src/master/ .
動画:https://youtu.be/bE-kfA_Z3z0 (160[A]修正版)
右側の「ダウンロード」からpdfダウンロード可能。
マテリアルズインフォマティクスチュートリアル
2022年度 マテリアルズ・インフォマティクス 連続セミナー 第六回 木野日織(きのひおり)
内容 150.ベイズ最適化 160. 推薦システム
セミナーダイアグラム表示 第四、五、六 回目の内容 001.contens 第四回目内容 第五回目内容 第六回目内容
第六回セミナーダイアグラム表示 第六回目内容 150. ベイズ最 適化 全体の説明 150.001 160. 推薦シス テム 個別スクリプ トとその説明 150.050 150.120 個別スクリプ トとその説明 全体の説明 160.001 160.050 160.110 160.120
150.ベイズ最適化
[A]問題背景 ①観測データ数が少ない時点で、 ある目的(最大値を得る)のために 効率的に逐次観測を行いたい。 ②観測データを追加●すると a ③近傍データが存在しない領域 は不確かさが大きくなるような予測 も行えないのか? 例えば、RBFカーネルのガウス過程 回帰で行える。 b 目的変数 目的変数 x c d 説明変数 近傍データが存在しない領域 x x x x 説明変数 矢印位置が最大値、となるかもしれない。
[B]不確かさを含めた予測を用いた探索 ①予測値 ②方法 目的変数 1. 近傍データが存在する内挿領域では回 帰モデルの予測平均値を用いたい。 2. 近傍データが存在しない領域では回帰 モデルの予測の不確かさも用いたい。 x x x x x 両者の特徴を満たす評価指標で説明変数 を順位付けをし、次探索点を得る。 この評価指標を与える関数=獲得関数 説明変数
[C]獲得関数例 ガウス過程回帰モデルを用います。取りうる観測データのindex:iに対して、予測期待値𝑦𝑚𝑒𝑎𝑛,𝑖 , 標準偏差𝜎𝑖 Upper confidential bound (UCB): 𝑘𝑡 = 𝑣𝑡, constant, …, t:繰り返し回数 𝑎𝑈𝐶𝐵,𝑖 = 𝑦𝑚𝑒𝑎𝑛,𝑖 + 𝑘𝑡 𝜎𝑖 𝑎𝑈𝐶𝐵,𝑖 の最大値を与えるiを選ぶ この方向には、他にも、EI(Expected Improvement)、PI(Probability of Improvement)などがある。 Thompson sampling (TS): 回帰モデルが学習されると、 𝑌 = 𝑦𝑚𝑒𝑎𝑛,1 , 𝑦𝑚𝑒𝑎𝑛,2 , … , 𝑦𝑚𝑒𝑎𝑛,𝑁 1 と分散共分散行列Σに対して 𝑇 𝑌の分布 𝑓 𝑌 ∼ exp(− 𝑌 − 𝑀 Σ −1 𝑌 − 𝑀 ) 2 も得ることが出来ます。その分布からランダムに一点選ぶ。 (Stochastic Samplingとも言う。)
[D]ベイズ最適化過程 以下の逐次探索過程を指すことが多い。 1. 既知の観測データ集合𝐷𝑛 ( (𝑥Ԧ𝑖 , 𝑦𝑖 ) (i = 1, ..., n))が存在する 。 2.代理モデルで探索候補点 j の 𝑥𝑗 (𝑗 = 𝑛 + 1, … , 𝑁) に対し不確かさを含めて目的変数の値を予測する。 3. 予測値を利用した獲得関数により,候補点 (𝑗 = 𝑛 + 1, … , 𝑁) の獲得関数値を評価する。 4. 候補点の中で最も高い獲得関数値を与える候補点の目的変数値 𝑦𝑛+1 を実際に観測し観測データ集合に加 える. 𝐷𝑛+1 とする。 5. 𝐷𝑛+1 を𝐷𝑛 に変えて最初に戻る. 代理モデル(surrogate model) =パラメタの変化結果を容易に得られるモデル(としておく) 既知の観測データの範囲内で帰納的に求めたモデルの場合は回帰モデル。 a.原理による予測値とほぼ同じ値 高コスト、予測が低速 b.原理による予測値とはずれる 低コスト、予測が高速 の場合がある。 (原理から1.の既知データに合う解法を得て、2.を行うと網羅探索とよばれる。)
[E]ベイズ最適化 前ページの逐次探索過程にはベイズ的な要素が見当たらないが、なぜベイズ最適化なのだろうか? (元々は)n点の観測データ𝐷𝑛 にn+1番目の観測データ(𝑥𝑛+1 , 𝑦𝑛+1 )を追加してモデルパラメタ𝑤を得 る際にベイズの定理でパラメタ𝑤を更新している、と書ける代理モデルを用いるかららしい。 ベイズの定理を 何度か使うと 𝑝 𝑤 𝐷𝑛+1 = 𝑝((𝑥𝑛+1 , 𝑦𝑛+1 ) 𝑤 𝑝 𝑤 𝐷𝑛 𝑝 (𝑥𝑛+1 , 𝑦𝑛+1 ) 例えば、係数𝑤に対して線形な回帰モデルの形(例:線形回帰モデル、カーネル回帰モデル)はこの形で書けて 不確かさの予測も可能になる。 Ref. Bobak Shahriari, Kevin Swersky, Ziyu Wang, Ryan P. Adams, and Nando de Freitas, “Taking the Human Out of the Loop: A Review of Bayesian Optimization”, Proceedings of the IEEE 104, 148, (2016).
[F]ベイズ最適化 ベイズ最適化を 一過程行う ベイズ最適化で 次探索点を得る 観測データに追 加する 予測値平均と不 確かさが得られ る予測モデルを 得る 観測データを得 る 観測済み全観測 データを用いる 次探索点の目的 変数値を観測す る 回帰モデルを選 ぶ ガウス過程回帰 一般化線形モデ ル 予測値平均と不 確かさから獲得 関数を選択する ハイパーパラメ タの最適化を 行ってモデル学 習する ハイパーパラメ タの最適化を毎 回行わずにモデ ル学習する 平均値と分散共 分散行列を用い る獲得関数を選 択する 平均値と標準偏 差を用いる獲得 関数を選択する モデル学習する (upper) confidential bound (UCB) Expected Improvement (EI) 獲得関数を評価 して次探索点を 得る Probability of Improvement (PI) トンプソンサン プリング (TS)
[G] 150.050 観測データ:Toy model 150.120 観測データ:物質データ
150.050
[H]UCB 150.050で確認事項
[I]Kernel最適化 カーネル最適化を行ってみる。
[J]TSの場合
150.120
[K]150.120の他の獲得関数定義 search_candidate_TS search_candidate_EI search_candidate_PI あり。
[L]ベイズ最適化の特徴 探索と活用をバランスよく行う手法と呼ばれる。 注意点: 説明変数と観測値によっては代理モデルが過学習しがち。 対処法:詳細が決まっている手法ではないので、例えば、RBFカーネルパラメ タを(毎回)最適化する必要はない。
[M]応用:目的に応じた獲得関数の加工例 最大値 目的変数 ある値 ある範囲の値 目的変数 目的変数 折り返す 𝑦𝑡 −|𝑦𝑡 − 𝑓 𝑥Ԧ | argmax 説明変数index argmax argmax
[N]多目的ベイズ最適化例 目的:(母集団データをほぼ全て持っている いる四元等比固溶体データ。)現実の物質で の磁気相転移温度(TC、横軸)と電気抵抗 率(resistivity、縦軸)に対する多目的探索の 性能を評価する。 ➢ 目標領域を薄紫色で示す。 ➢ 既観測物質を緑色で示す。 ➢ 一度に20物質提案を行い、赤色の物性値 を観測する。観測済の結果をオレンジ色で 示す。 Baysian Ridge回帰を用いた。 ➢ 物性の知識を用いずにデータだけからベイ ズ最適化を行う。(かなり悪い条件) 母集団 目標領域 既観測物質
[O]多目的ベイズ最適化例 目的:(母集団データをほぼ全て持っている いる四元等比固溶体データ。)現実の物質で の磁気相転移温度(TC、横軸)と電気抵抗 率(resistivity、縦軸)に対する多目的探索の 性能を評価する。 ➢ 目標領域を薄紫色で示す。 ➢ 既観測物質を緑色で示す。 ➢ 一度に20物質提案を行い、赤色の物性値 を観測する。観測済の結果をオレンジ色で 示す。 Baysian Ridge回帰を用いた。 ➢ 物性の知識を用いずにデータだけからベイ ズ最適化を行う。(かなり悪い条件)
[P]ベイズ最適化パッケージ skopt: sklearn関係 COMBO PHYSBO GPyOpt PyGPGO BOTorch
160. 推薦システム
[A]問題の背景 物質データベース:存在が記してある。存在しないことは通常記さない。 AxB1-xのデータベース検索結果 1:存在 ある共通のBに対して A x Li 0.1 Li 0.2 Li 0.4 Li 0.5 Na 0.1 Na 0.2 0.1 として 0:不明 0.2 0.3 0.4 0.5 Li Na という表示になる。 LiとNaはどちらもアルカリ金属なので、 Na 0.4, Na 0.5を推薦して欲しい。
[B]特徴量抽出と元の変数空間での表示 ① 0.1 0.2 0.3 0.4 0.5 ③ ② 0.1 0.2 0.3 0.4 0.5 ④ 0.1 0.2 0.3 0.4 0.5 Li Li Li Na Na Na 推薦 特異値分解を用いる場合 𝑋= 𝑈𝑆𝑉 𝑇 𝑠1 𝑆= 0 0 0 𝑠2 0 0 0 ⋱ 上の例では3次元目は 無いですが。 𝑠1 𝑆′ = 0 0 0 𝑠2 0 0 0 0 代表的な規則 の抽出 𝑋′ = 𝑈𝑆′𝑉 𝑇 Δ𝑋 = 𝑋′ − 𝑋 低ランク 近似行列 線形代数で得られる規則 を用いて推薦できる。 𝑋𝑗𝑘 = 𝑠𝑖 (𝑈𝑗𝑖 𝑉𝑘𝑖 ) 𝑖 という展開 (モデルベース)協調フィルタリングとも呼ばれる。
[C]160の内容 160.050 Toy modelデータを用いる。 SVD(特異値分解)を行って低ランク行列を作り推薦を行ってみる。 160.110 同じToy modelデータを用いる。 低ランク近似の次元の選択 SVDとNMF(非負値行列分解)の選択が可能。 160.120 二元物質の存在データを用いる。
160.050
人間が推薦できる 赤枠領域を推薦できるか?
160.110
[D]SVDの規則 nrank=1は人間が分かる規則 探索初期はこのような推薦が欲しい。 nrankが大きい場合は、人間には理解できない 規則で推薦している。 探索後期はこのような推薦して欲しい。 枠組みとして教師あり学習では無く次元圧縮。 nrankは推薦モデル学習過程で決める“ハイパーパラ メタ”
160.120
[E]物質データ取得 1. データベース1から二元結晶データを取得する。 2. SVDで未知結晶を推薦する。 3. より収録数が多いデータベース2の二元結晶データで、妥当 な推薦かを評価する。 データベース1: Crystallography Open Database(COD) データベース2:Atomwork
[F] 観測データの行列への変換 1. {Al, Si, P, Ga, Ge, As, In, Sn, Sb}から成る二元結晶観測データベースには 「Element1ratio1Element2ratio2の取る結晶空間群」というデータがある。 存在データは (element1, element2, ratio1, ratio2, spacegroup)という形式 2. ratio1:ratio2は全部で10になるようdigitizeする。 例) GaAs、F-43m → (Ga, As, 5,5, F-43m) Al0.998Si0.012、Fm-3m → (Al, Si, 10,0, Fm-3m) 3. 五次元配列なので二次元配列にしたい。 Element1,element2を対称にして(element1^element2, ratio1^ratio2^spacegroup)という二次元 配列に変換する。
Xticks, yticksの 全部は表示され ていない。
[G]データベース間の比較 ①CODとSVDによる推薦結果 Atomworkの類似物質 近い組成、 同じ空間群 近い組成、 同じ空間群 ③比率を10に規格化 ②似た結晶生データ Sn^As, 5^5^R-3m In^Sb, 4^6^R-3m In^Sb, 4^6^Pm-3m In^Sb, 5^5^ I41/amd In^Sb, 7^3^ P6/mmm Sn^Sb, 9^1^ I41/amd Sn3.6As3 (R-3m) In0.4Sb0.6 (R-3m) In0.4Sb0.6 (Pm-3m) In0.5Sb0.5 (I41/amd) In0.7Sb0.3 (P6/mmm) Sn0.9Sb0.1 (I41/amd) →④組成範囲を広げると2件妥当に推薦出来た。 ランダムに探索するより効率的。 6件(元素1,2が対称)推薦された。
[H]文献例 二次元配列で行ったが、高次元配列のまま低ランク近似した配列を求め る手法もある。(テンソル分解) Atsuto Seko, Hiroyuki Hayashi, Hisashi Kashima, and Isao Tanaka, “Matrix- and tensor-based recommender systems for the discovery of currently unknown inorganic compounds“, Phys. Rev. Materials 2, 013805 (2018).
[I]“グラフ”と行列表示 ①行列が隣接ノードを表す (近接行列)。 A B C D A 0 1 0 1 B 1 0 1 0 C 0 1 0 0 D 1 0 0 0 ②ノードとノードを 繋ぐエッジで表現す ると“グラフ“ D A B C ④物質科学例 • 分子 • 隣接原子範囲を決めた結晶 • (物質、実験条件、物性値) などの“学術的知識グラフ” 正方行列 ③ 対称 非対称 無向 有向 ⑤配列を学習⇔グラフを学習→グラフニューラルネットワーク
本日及び、本年度の連続セミナーは以上で終了となります。 皆様お疲れさまでした。