---
title: ２０２２年度マテリアルズ・インフォマティクス連続セミナー：ベイズ最適化、推薦システム
tags:  #マテリアルズ・インフォマティクス #データ解析学 #ベイズ最適化 #推薦システム  
author: [木野日織](https://convert.docswell.com/user/3465680103)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9E2NVMDQ7R.jpg?width=480
description: マテリアルズ・インフォマティクス 連続セミナー 第六回 ソースコード：https://bitbucket.org/kino_h/python_mi_seminar_2023/src/master/ . 動画：https://youtu.be/bE-kfA_Z3z0 (160[A]修正版） 右側の「ダウンロード」からpdfダウンロード可能。
published: January 23, 23
canonical: https://convert.docswell.com/s/3465680103/5YY1D5-2023-01-23-142130
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9E2NVMDQ7R.jpg)

２０２２年度
マテリアルズ・インフォマティクス
連続セミナー
第六回
木野日織（きのひおり）


# Page. 2

![Page Image](https://bcdn.docswell.com/page/D7YP3X2Y7M.jpg)

内容
150.ベイズ最適化
160. 推薦システム


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VEN5V18RJ8.jpg)

セミナーダイアグラム表示
第四、五、六
回目の内容
001.contens
第四回目内容
第五回目内容
第六回目内容


# Page. 4

![Page Image](https://bcdn.docswell.com/page/Y79Y65KZE3.jpg)



# Page. 5

![Page Image](https://bcdn.docswell.com/page/G786ZY2YJD.jpg)

第六回セミナーダイアグラム表示
第六回目内容
150. ベイズ最
適化
全体の説明
150.001
160. 推薦シス
テム
個別スクリプ
トとその説明
150.050
150.120
個別スクリプ
トとその説明
全体の説明
160.001
160.050
160.110
160.120


# Page. 6

![Page Image](https://bcdn.docswell.com/page/L7L9D429ER.jpg)

１５０．ベイズ最適化


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4EMZPK8V7W.jpg)

[A]問題背景
①観測データ数が少ない時点で、
ある目的（最大値を得る）のために
効率的に逐次観測を行いたい。
②観測データを追加●すると
a
③近傍データが存在しない領域
は不確かさが大きくなるような予測
も行えないのか？
例えば、RBFカーネルのガウス過程
回帰で行える。
b
目的変数
目的変数
x
c
d
説明変数
近傍データが存在しない領域
x
x
x
x
説明変数
矢印位置が最大値、となるかもしれない。


# Page. 8

![Page Image](https://bcdn.docswell.com/page/PER61X5WJ9.jpg)

[B]不確かさを含めた予測を用いた探索
①予測値
②方法
目的変数
1. 近傍データが存在する内挿領域では回
帰モデルの予測平均値を用いたい。
2. 近傍データが存在しない領域では回帰
モデルの予測の不確かさも用いたい。
x
x
x
x
x
両者の特徴を満たす評価指標で説明変数
を順位付けをし、次探索点を得る。
この評価指標を与える関数＝獲得関数
説明変数


# Page. 9

![Page Image](https://bcdn.docswell.com/page/P7XMY6KVJX.jpg)

[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とも言う。）


# Page. 10

![Page Image](https://bcdn.docswell.com/page/37KG3155ED.jpg)

[D]ベイズ最適化過程
以下の逐次探索過程を指すことが多い。
1. 既知の観測データ集合𝐷𝑛 （ (𝑥Ԧ𝑖 , 𝑦𝑖 ) (i = 1, ..., n)）が存在する 。
2.代理モデルで探索候補点 j の 𝑥𝑗 (𝑗 = 𝑛 + 1, … , 𝑁) に対し不確かさを含めて目的変数の値を予測する。
3. 予測値を利用した獲得関数により，候補点 (𝑗 = 𝑛 + 1, … , 𝑁) の獲得関数値を評価する。
4. 候補点の中で最も高い獲得関数値を与える候補点の目的変数値 𝑦𝑛+1 を実際に観測し観測データ集合に加
える． 𝐷𝑛+1 とする。
5. 𝐷𝑛+1 を𝐷𝑛 に変えて最初に戻る．
代理モデル（surrogate model) ＝パラメタの変化結果を容易に得られるモデル（としておく）
既知の観測データの範囲内で帰納的に求めたモデルの場合は回帰モデル。
a.原理による予測値とほぼ同じ値
高コスト、予測が低速
b.原理による予測値とはずれる
低コスト、予測が高速
の場合がある。
（原理から1.の既知データに合う解法を得て、2.を行うと網羅探索とよばれる。）


# Page. 11

![Page Image](https://bcdn.docswell.com/page/LJ3NGQK1J5.jpg)

[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).


# Page. 12

![Page Image](https://bcdn.docswell.com/page/8JDW193KEG.jpg)

[F]ベイズ最適化
ベイズ最適化を
一過程行う
ベイズ最適化で
次探索点を得る
観測データに追
加する
予測値平均と不
確かさが得られ
る予測モデルを
得る
観測データを得
る
観測済み全観測
データを用いる
次探索点の目的
変数値を観測す
る
回帰モデルを選
ぶ
ガウス過程回帰
一般化線形モデ
ル
予測値平均と不
確かさから獲得
関数を選択する
ハイパーパラメ
タの最適化を
行ってモデル学
習する
ハイパーパラメ
タの最適化を毎
回行わずにモデ
ル学習する
平均値と分散共
分散行列を用い
る獲得関数を選
択する
平均値と標準偏
差を用いる獲得
関数を選択する
モデル学習する
(upper)
confidential bound
(UCB)
Expected
Improvement (EI)
獲得関数を評価
して次探索点を
得る
Probability of
Improvement (PI)
トンプソンサン
プリング (TS)


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VEP9QZ4378.jpg)

[G]
150.050
観測データ：Toy model
150.120
観測データ：物質データ


# Page. 14

![Page Image](https://bcdn.docswell.com/page/27VM5WXN7Q.jpg)

１５０．０５０


# Page. 15

![Page Image](https://bcdn.docswell.com/page/5JGG6DV5JL.jpg)

[H]UCB
150.050で確認事項


# Page. 16

![Page Image](https://bcdn.docswell.com/page/47QX416LJP.jpg)



# Page. 17

![Page Image](https://bcdn.docswell.com/page/KE46QR45J1.jpg)



# Page. 18

![Page Image](https://bcdn.docswell.com/page/L71VPQ42JG.jpg)



# Page. 19

![Page Image](https://bcdn.docswell.com/page/G7WL2MX2J2.jpg)



# Page. 20

![Page Image](https://bcdn.docswell.com/page/4JZMDQ6473.jpg)



# Page. 21

![Page Image](https://bcdn.docswell.com/page/YE6N162GEV.jpg)



# Page. 22

![Page Image](https://bcdn.docswell.com/page/GE55462XE4.jpg)

[I]Kernel最適化
カーネル最適化を行ってみる。


# Page. 23

![Page Image](https://bcdn.docswell.com/page/972NVM4QJR.jpg)



# Page. 24

![Page Image](https://bcdn.docswell.com/page/DJYP3XMYJM.jpg)



# Page. 25

![Page Image](https://bcdn.docswell.com/page/V7N5V1WRE8.jpg)

[J]TSの場合


# Page. 26

![Page Image](https://bcdn.docswell.com/page/YJ9Y65XZ73.jpg)



# Page. 27

![Page Image](https://bcdn.docswell.com/page/GJ86ZY9YED.jpg)



# Page. 28

![Page Image](https://bcdn.docswell.com/page/LJL9D4W97R.jpg)



# Page. 29

![Page Image](https://bcdn.docswell.com/page/47MZPK9VJW.jpg)

１５０．１２０


# Page. 30

![Page Image](https://bcdn.docswell.com/page/P7R61XGWE9.jpg)



# Page. 31

![Page Image](https://bcdn.docswell.com/page/PJXMY6XVEX.jpg)



# Page. 32

![Page Image](https://bcdn.docswell.com/page/3JKG31W57D.jpg)



# Page. 33

![Page Image](https://bcdn.docswell.com/page/LE3NGQ11E5.jpg)



# Page. 34

![Page Image](https://bcdn.docswell.com/page/8EDW19XK7G.jpg)



# Page. 35

![Page Image](https://bcdn.docswell.com/page/V7P9QZP3J8.jpg)



# Page. 36

![Page Image](https://bcdn.docswell.com/page/2JVM5W2NJQ.jpg)



# Page. 37

![Page Image](https://bcdn.docswell.com/page/5EGG6DR5EL.jpg)



# Page. 38

![Page Image](https://bcdn.docswell.com/page/4JQX41VLEP.jpg)



# Page. 39

![Page Image](https://bcdn.docswell.com/page/K746QRM5E1.jpg)

[K]150.120の他の獲得関数定義
search_candidate_TS
search_candidate_EI
search_candidate_PI
あり。


# Page. 40

![Page Image](https://bcdn.docswell.com/page/LJ1VPQ82EG.jpg)



# Page. 41

![Page Image](https://bcdn.docswell.com/page/GJWL2MZ2E2.jpg)



# Page. 42

![Page Image](https://bcdn.docswell.com/page/4EZMDQ14J3.jpg)



# Page. 43

![Page Image](https://bcdn.docswell.com/page/Y76N16LG7V.jpg)



# Page. 44

![Page Image](https://bcdn.docswell.com/page/G755461X74.jpg)



# Page. 45

![Page Image](https://bcdn.docswell.com/page/9J2NVM1QER.jpg)



# Page. 46

![Page Image](https://bcdn.docswell.com/page/DEYP3XZYEM.jpg)



# Page. 47

![Page Image](https://bcdn.docswell.com/page/VJN5V13R78.jpg)



# Page. 48

![Page Image](https://bcdn.docswell.com/page/YE9Y659ZJ3.jpg)

[L]ベイズ最適化の特徴
探索と活用をバランスよく行う手法と呼ばれる。
注意点:
説明変数と観測値によっては代理モデルが過学習しがち。
対処法：詳細が決まっている手法ではないので、例えば、RBFカーネルパラメ
タを（毎回）最適化する必要はない。


# Page. 49

![Page Image](https://bcdn.docswell.com/page/GE86ZYDY7D.jpg)

[M]応用：目的に応じた獲得関数の加工例
最大値
目的変数
ある値
ある範囲の値
目的変数
目的変数
折り返す
𝑦𝑡
−|𝑦𝑡 − 𝑓 𝑥Ԧ |
argmax
説明変数index
argmax
argmax


# Page. 50

![Page Image](https://bcdn.docswell.com/page/LEL9D4M9JR.jpg)

[N]多目的ベイズ最適化例
目的：（母集団データをほぼ全て持っている
いる四元等比固溶体データ。）現実の物質で
の磁気相転移温度（TC、横軸）と電気抵抗
率（resistivity、縦軸）に対する多目的探索の
性能を評価する。
➢ 目標領域を薄紫色で示す。
➢ 既観測物質を緑色で示す。
➢ 一度に２０物質提案を行い、赤色の物性値
を観測する。観測済の結果をオレンジ色で
示す。
Baysian Ridge回帰を用いた。
➢ 物性の知識を用いずにデータだけからベイ
ズ最適化を行う。（かなり悪い条件）
母集団
目標領域
既観測物質


# Page. 51

![Page Image](https://bcdn.docswell.com/page/4JMZPKYVEW.jpg)

[O]多目的ベイズ最適化例
目的：（母集団データをほぼ全て持っている
いる四元等比固溶体データ。）現実の物質で
の磁気相転移温度（TC、横軸）と電気抵抗
率（resistivity、縦軸）に対する多目的探索の
性能を評価する。
➢ 目標領域を薄紫色で示す。
➢ 既観測物質を緑色で示す。
➢ 一度に２０物質提案を行い、赤色の物性値
を観測する。観測済の結果をオレンジ色で
示す。
Baysian Ridge回帰を用いた。
➢ 物性の知識を用いずにデータだけからベイ
ズ最適化を行う。（かなり悪い条件）


# Page. 52

![Page Image](https://bcdn.docswell.com/page/PJR61X9W79.jpg)

[P]ベイズ最適化パッケージ
skopt: sklearn関係
COMBO
PHYSBO
GPyOpt
PyGPGO
BOTorch


# Page. 53

![Page Image](https://bcdn.docswell.com/page/PEXMY6QV7X.jpg)

160. 推薦システム


# Page. 54

![Page Image](https://bcdn.docswell.com/page/3EKG3195JD.jpg)

[A]問題の背景
物質データベース：存在が記してある。存在しないことは通常記さない。
AxB1-xのデータベース検索結果
１：存在
ある共通のBに対して
A
x
Li
0.1
Li
0.2
Li
0.4
Li
0.5
Na
0.1
Na
0.2
0.1
として
０：不明
0.2
0.3
0.4
0.5
Li
Na
という表示になる。
LiとNaはどちらもアルカリ金属なので、
Na 0.4, Na 0.5を推薦して欲しい。


# Page. 55

![Page Image](https://bcdn.docswell.com/page/L73NGQW175.jpg)

[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
⋱
上の例では３次元目は
無いですが。
𝑠1
𝑆′ = 0
0
0
𝑠2
0
0
0
0
代表的な規則
の抽出
𝑋′ = 𝑈𝑆′𝑉 𝑇
Δ𝑋 = 𝑋′ − 𝑋
低ランク
近似行列
線形代数で得られる規則
を用いて推薦できる。
𝑋𝑗𝑘 = ෍ 𝑠𝑖 (𝑈𝑗𝑖 𝑉𝑘𝑖 )
𝑖
という展開
（モデルベース）協調フィルタリングとも呼ばれる。


# Page. 56

![Page Image](https://bcdn.docswell.com/page/87DW19KKJG.jpg)

[C]１６０の内容
160.050
Toy modelデータを用いる。
SVD（特異値分解）を行って低ランク行列を作り推薦を行ってみる。
160.110
同じToy modelデータを用いる。
低ランク近似の次元の選択
SVDとNMF(非負値行列分解)の選択が可能。
160.120
二元物質の存在データを用いる。


# Page. 57

![Page Image](https://bcdn.docswell.com/page/VJP9QZK3E8.jpg)

１６０．０５０


# Page. 58

![Page Image](https://bcdn.docswell.com/page/2EVM5WVNEQ.jpg)

人間が推薦できる
赤枠領域を推薦できるか？


# Page. 59

![Page Image](https://bcdn.docswell.com/page/57GG6DL57L.jpg)



# Page. 60

![Page Image](https://bcdn.docswell.com/page/4EQX41YL7P.jpg)

１６０．１１０


# Page. 61

![Page Image](https://bcdn.docswell.com/page/KJ46QRW571.jpg)



# Page. 62

![Page Image](https://bcdn.docswell.com/page/LE1VPQY27G.jpg)

[D]SVDの規則
nrank=1は人間が分かる規則
探索初期はこのような推薦が欲しい。
nrankが大きい場合は、人間には理解できない
規則で推薦している。
探索後期はこのような推薦して欲しい。
枠組みとして教師あり学習では無く次元圧縮。
nrankは推薦モデル学習過程で決める“ハイパーパラ
メタ”


# Page. 63

![Page Image](https://bcdn.docswell.com/page/GEWL2MG272.jpg)

１６０．1２０


# Page. 64

![Page Image](https://bcdn.docswell.com/page/47ZMDQL4E3.jpg)

[E]物質データ取得
1. データベース１から二元結晶データを取得する。
2. SVDで未知結晶を推薦する。
3. より収録数が多いデータベース２の二元結晶データで、妥当
な推薦かを評価する。
データベース１： Crystallography Open Database（COD)
データベース２：Atomwork


# Page. 65

![Page Image](https://bcdn.docswell.com/page/YJ6N16WGJV.jpg)

[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)という二次元
配列に変換する。


# Page. 66

![Page Image](https://bcdn.docswell.com/page/GJ5546MXJ4.jpg)



# Page. 67

![Page Image](https://bcdn.docswell.com/page/LE3NGQW4E5.jpg)



# Page. 68

![Page Image](https://bcdn.docswell.com/page/8EDW19K57G.jpg)



# Page. 69

![Page Image](https://bcdn.docswell.com/page/V7P9QZKDJ8.jpg)



# Page. 70

![Page Image](https://bcdn.docswell.com/page/2JVM5WVGJQ.jpg)

Xticks, yticksの
全部は表示され
ていない。


# Page. 71

![Page Image](https://bcdn.docswell.com/page/5EGG6D1DEL.jpg)



# Page. 72

![Page Image](https://bcdn.docswell.com/page/4JQX41DXEP.jpg)

[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件妥当に推薦出来た。
ランダムに探索するより効率的。
６件(元素１，２が対称）推薦された。


# Page. 73

![Page Image](https://bcdn.docswell.com/page/K746QRZ2E1.jpg)

[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).


# Page. 74

![Page Image](https://bcdn.docswell.com/page/LJ1VPQRKEG.jpg)

[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
④物質科学例
• 分子
• 隣接原子範囲を決めた結晶
• （物質、実験条件、物性値）
などの“学術的知識グラフ”
正方行列
③
対称
非対称
無向
有向
⑤配列を学習⇔グラフを学習→グラフニューラルネットワーク


# Page. 75

![Page Image](https://bcdn.docswell.com/page/GJWL2M1PE2.jpg)

本日及び、本年度の連続セミナーは以上で終了となります。
皆様お疲れさまでした。


