Bayes-Turchinの方法による EXAFSカーブフィッティング - SPring-8産業

SPring-8講習会!
<産業利用に役立つXAFSによる先端材料の局所状態解析2014>!
Bayes-Turchinの方法による
EXAFSカーブフィッティング
千葉大学 小西健久
SPring-8講習会!
<産業利用に役立つXAFSによる先端材料の局所状態解析2014>!
Bayes-Turchinの方法による
EXAFSカーブフィッティング
宣伝役(開発者ではありません): 千葉大学 小西健久
•
H. J. Krappe, H. H. Rossner, Phys. Rev. B 61, 6596 (2000)
Error analysis of XAFS measurements!
•
H. J. Krappe, H. H. Rossner, Phys. Rev. B 66, 184303 (2002)
Bayes-Turchin approach to x-ray absorption fine structure data analysis!
•
H. J. Krappe, H. H. Rossner, Phys. Rev. B 70, 104102 (2004)
Bayesian approach to background subtraction for data from the extended x-ray-absorption fine
structure
•
J. J. Rehr, J. Kozdon, J. Kas, H. J. Krappe, H. H. Rossner, J. Synchrotron Rad., 12, 70 (2005)
Bayes-Turchin approach to XAS analysis!
•
H. H. Rossner, D. Schmitz, P. Imperia, H. J. Krappe, J. J. Rehr, Phys. Rev. B 74, 134107 (2006)
Bayes-Turchin analysis of x-ray absorption data above the Fe L2,3-edges!
•
H. J. Krappe, H. H. Rossner, Phys. Scr. 79, 048302 (2009)
The Bayes–Turchin approach to the analysis of extended x-ray absorption fine-structure data
H. J. Krappe and H. H. Rossner
Helmholtz-Zentrum Berlin für Materialien und Energie
(formerly: Hahn-Meitner Institut Berlin)
EXAFSフィッティングの別の方法?
•
もうじゅうぶん確立している,誰でも使えて信頼できるやりかた
があるのに?
—— 構造/モデルが複雑な( “注意を要する” )ケース
—— EXAFSの通常の解析には(良くも悪くも)art 的な部分
( “トレーニング” “永年の経験” )がある(かもしれない)!
•
そういう怪しげなことをやって何のメリットが?
—— 普通の方法とそんなに違うわけではない(怪しくはない…)
—— いくつか良いことはある(かもしれない)
何をしたいのか①
「決まらないパラメータ」
2
EXAFSのパラメータ: E0, N, r, σ ,etc.
•
パラメータの数が多い or 何かの事情で決まるかどうか微妙なパラメータがある場合!
パラメータが多くなる/決まるかどうか微妙な例:
— EXAFSがそのパラメータに敏感でない 遠いシェル — 構造が複雑 マルチシェ
ルの解析をどうにか…— 吸収端が重なっている 3d 遷移金属の L edge… etc.
無理そうに見えても可能なこともある
“EXAFSのプロには出来る” ような場合 → プロでなくてもやりたい…
プロでも諦めるような場合でも … データに情報が含まれていることもあるかも
→ うまく状況をほぐせばなんとかなるかも
* 嘘は駄目:出来ないものは出来ないという結果が出てほしい
何をしたいのか①
「決まらないパラメータ」
!
!
パラメータの数が多い or
何かの事情で決まるかどうか微妙なパラメータがある!
•
決まらないものは拘束・固定するしかない
→ 普通は以下のように対処
→ Q1. どれを? — A1. 値が判っているもの・独立でないもの
リーズナブルな仮定が可能なもの
決まるはずのないもの
→ Q2. いくつ? — A2. パラメータの数がデータの自由度以下になるまで
EXAFSのデータの自由度:
Nfree =
2 rfilt k
何をしたいのか①
「決まらないパラメータ」
•
決まらないものは拘束・固定するしかない
→ 決まるパラメータに影響がないように
拘束・固定するとは…
•
パラメータの値についてあらかじめ持っている
知識(もしくは先入観…)を入れる
→ Bayesian で考えることができる:事前確率
Bayes の定理
P (A|B) :B が与えられたときの
A A∩B B
A の条件付き確率
Ω
P(A B)
P(A B)
P (A|B) =
, P(B|A) =
P(B)
P(A)
P (B|A)P (A)
P (A|B) =
P (B)
P (B|A)P (A)
パラメータの事前知識による拘束
簡単な例:直線のフィット
{yi } , i = 1, 2, · · · , L
•
データ:
•
モデルによるデータの表現:
•
パラメータ:傾き
•
y
yi = axi +
i
a
x
ノイズ: 分散 i
i の正規分布を仮定
y
a
パラメータ を与えたときの = {yi } の条件付き確率
L
Pcond (y|a)
exp
i=1
axi )2
(yi
2
2
i
パラメータの事前知識による拘束
!
簡単な例:直線のフィット
y
y
a
パラメータ を与えたときの = {yi } の条件付き確率
L
Pcond (y|a)
exp
axi )2
(yi
2
i=1
2
i
x
!
パラメータに関する事前の知識:事前確率
Pprior (a)
正規分布を仮定:
Pprior (a)
exp
2
a 0 )2
(a
2
2
a
a0
a
a
パラメータの事前知識による拘束
簡単な例:直線のフィット
!
y
条件付き確率:
!
L
Pcond (y|a)
exp
Pprior (a)
(a
exp
a0 )
2
事後確率:Bayes の定理
Ppost (a|y)
axi )
2
i=1
事前確率:
!
(yi
2
2
i
2
2
a
x
Pprior (a)
Pcond (y|a)Pprior (a)
L
exp
i=1
= exp
1
2
axi )2
(yi
2
2
i
a 0 )2
(a
2
2
a
L
2
2
post
a0
a
a
パラメータの事前知識による拘束
簡単な例:直線のフィット
!
Bayesian フィッティング:事後確率を最大にするパラメータを求める
Ppost (a|y)
L
i=1
= exp
1
2
axi )2
(yi
exp
!
y
Pcond (y|a)P (a)
2
a 0 )2
(a
2
i
2
2
a
2
post
を最大に,すなわち
L
!
2
post
=
(yi
i=1
axi )2
2
i
+
(a
x
a 0 )2
2
a
Pprior (a)
a
を最小にする が最適解
•
P(a) = const. (事前知識なし)のとき,通常の最小2乗法になる!
•
通常の最小2乗法にペナルティを付けた形で事前知識が入る!
•
データが事前知識を修正する!
•
EXAFSへの適用:直線の式をEXAFS公式に置き換えればよい
2
a0
a
a
何をしたいのか②
「決定したパラメータの誤差評価」
•
EXAFSカーブフィッティングで決定したパラメータの誤差評価
•
最小2乗フィッティングの誤差は通常の方法で見積もれる
しかし,これと併せて
•
データの偶然誤差/系統誤差,データの前処理,FEFFの
理論値の系統誤差等が,最終的にフィッティングで得ら
れるパラメータにどう伝播するかを評価するのは,一般
に容易ではない
通常のEXAFSカーブフィッティング解析
測定 → μ(E )
•
データ処理
χ(k) の抽出
•
-
バックグラウンド(解析する吸収端以外の寄与)を引く
規格化
μ0を引く
χexp(k)
or χexp(R)
フーリエ変換 → フーリエ・フィルタリング
•
(フィッティングに用いるデータに含まれる散乱パスを限定)
最小2乗フィッティング"
構造パラメータ
•
構造モデル:構造パラメータを含む"
•
FEFF 等:後方散乱振幅,位相シフト,非弾性減衰因子,etc.
•
EXAFS公式
モデル
χmodel(k)
or χmodel(R)
通常のEXAFSカーブフィッティング解析
測定 → μ(E )
•
データ処理
χ(k) の抽出
•
-
バックグラウンド(解析する吸収端以外の寄与)を引く
規格化
μ0を引く
χexp(k)
or χexp(R)
誤差の伝播を追えない
-
フーリエ変換 → フーリエ・フィルタリング
•
(フィッティングに用いるデータに含まれる散乱パスを限定)
最小2乗フィッティング"
構造パラメータ
•
構造モデル:構造パラメータを含む"
•
FEFF 等:後方散乱振幅,位相シフト,非弾性減衰因子,etc.
•
EXAFS公式
モデル
χmodel(k)
or χmodel(R)
Krappe-Rossner のやり方
データ処理
•
測定 → μ(E ) → FEFFの μ0 へ規格化
•
μmodel の構築
μexp(k)
μmodel = μ0, model (1+ χmodel )
μ0, model : FEFFで計算した μ0 + スプライン
•
Bayes-Turchinフィッティング"
モデルパラメータ
χmodel の構築"
•
構造モデル:構造パラメータを含む"
•
FEFF
[ 後方散乱振幅,位相シフト,非弾性減衰因子, etc. ]
•
多重散乱を含むEXAFS公式
→(多重)散乱パスの打ち切り → χmodel
μmodel(k)
モデル
Krappe-Rossner のやり方
データ処理
•
測定 → μ(E ) → FEFFの μ0 へ規格化
•
μmodel の構築
μexp(k)
μmodel = μ0, model (1+ χmodel )
μ0, model : FEFFで計算した μ0 + スプライン
•
Bayes-Turchinフィッティング"
誤差の伝播を追える
モデルパラメータ
χmodel の構築"
•
構造モデル:構造パラメータを含む"
•
FEFF
[ 後方散乱振幅,位相シフト,非弾性減衰因子, etc. ]
•
多重散乱を含むEXAFS公式
→(多重)散乱パスの打ち切り → χmodel
μmodel(k)
モデル
何をしたいのか②
「決定したパラメータの誤差評価」
•
考慮すべき誤差のソース
•
実験データのノイズ,ばらつき(偶然誤差)
•
モデル(FEFF)の誤差(系統誤差)
•
散乱振幅,位相,非弾性減衰因子に含まれる誤差(多
体効果の近似的扱い等に起因)
•
多重散乱/遠いシェルのパスを打ち切ったことによる
誤差
これらを Pcond のなかに表現する
何をしたいのか②
「決定したパラメータの誤差評価」
•
実験データ: {µi } , i = 1, 2, · · · , L
•
パラメータ:
•
g(x)
モデル による実験データの表現:
•
{xi } , i = 1, 2, · · · , N
i = 1, 2, · · · , L
µi = gi (x) +
i,
Ppost (x|µ)
Pcond (µ|x)Pprior (x)
Bayes:
何をしたいのか②
「決定したパラメータの誤差評価」
•
実験データのノイズ,ばらつき(偶然誤差)
Pexp (µ|µ )
2
exp
2
e
L
2
exp
=
(µl
µl )Fll (µl
µl ), Fl,l =
l,l =1
•
モデル(FEFF)の誤差(系統誤差)
Pmodel (µ |g(x))
e
2
model
2
L
2
model
=
(gl (x)
l,l =1
µl ) Bll (gl (x)
µl )
ll
µ2l
何をしたいのか②
「決定したパラメータの誤差評価」
•
条件付き確率 Pcond
L
Pexp (µ|µ )Pmodel (µ |g(x)) d µ
Pcond (µ|x)
µ
µ
g(x)
x
実験誤差 モデルの誤差 EXAFS公式 パラメータ
Pcond (µ|x)
2
cond
2
e
L
2
cond
(µ, g(x)) =
(gl (x)
l,l =1
C = (F
合成誤差
1
実験誤差
+B
1
)
1
モデルの誤差
µl )Cll (gl (x)
µl )
何をしたいのか②
「決定したパラメータの誤差評価」
•
条件付き確率 Pcond
Pcond (µ|x)
2
cond
2
e
L
2
cond
(µ, g(x)) =
(gl (x)
µl )Cll (gl (x)
µl )
l,l =1
C = (F
合成誤差
1
実験誤差
+B
1
)
1
モデルの誤差
•
Pcond 最大化 → 最小2乗法に相当!
•
決定されるパラメータの誤差にはモデル,実験の
誤差が反映される
EXAFS のフィッティング
1. モデルの線型化
•
(0)
初期値 x
のまわりで1次近似
N
gl (x) = gl (x0 ) +
Gln (xn
x(0)
n )
n=1
2
cond (x, µ)
T
= x Qx
T
2b x + µ
g(x
(0)
)
T
C µ
g(x(0) )
x0
x)
T
Q = G CG :情報行列
b = GT C µ
•
2
χ cond
の最小化
2
x cond = 0
g(x(0) )
Qx = b
(x
:正規方程式
Qの固有値に小さいものがあると,!
その固有ベクトルに対応するパラメータ(の線形結合)は決定できない
EXAFS のフィッティング
2. Pprior(x),Bayes
•
事前確率の導入
Pprior (x)
e
2
prior
2
N
2
prior
=
(xn
x(prior) )Ann (xn
n,n =1
Ann =
•
n nn
Bayes
Ppost (x|µ)
•
, x(prior) = x(0)
x(prior) )
の形を仮定
αn 大 → 事前確率の幅 小
Pcond (µ|x)Pprior (x)
Ppost の最大化
2
x post
=0
(Q + A)x = b :正規方程式
事前確率の入ったフィッティング Q+Aの最小の固有値 > αmin
何をしたいのか③
事前確率をデータから決めたい:Turchin
• これでOKか?
•
n 番めのパラメータに,
幅
1/
の事前確率を入れている:
n
Pprior! (x)
e
2
prior
2
N
2
prior
=
(xn
x(prior) )Ann (xn
n,n =1
Ann =
n nn
, x
(prior)
フィットにおける実験データと事前確率の
相対的な比重は αnで決まる。
•
x(prior) )
事前確率に支配されるパラメータの選択,幅の決定?
(0)
=x
再考:何をしたいのか①
「決まらないパラメータ」
!
!
パラメータの数が多い or
何かの事情で決まるかどうか微妙なパラメータがある!
•
決まらないものは拘束・固定するしかない
→ Q1. どれを? — A1. 値が判っているもの・独立でないもの
リーズナブルな仮定が可能なもの
決まるはずのないもの
→ Q2. いくつ? — A2. パラメータの数がデータの自由度以下になるまで
EXAFSのデータの自由度:
Nfree =
2 rfilt k
再考:何をしたいのか①
「決まらないパラメータ」
!
!
パラメータの数が多い or
何かの事情で決まるかどうか微妙なパラメータがある!
•
決まらないものは拘束・固定するしかない
→ Q1. どれを? — A1. 値が判っているもの・独立でないもの
実験データから決まるものと!
リーズナブルな仮定が可能なもの
決まらないもの!
決まるはずのないもの
を見分けるアルゴリズムが必要
→ Q2. いくつ? — A2. パラメータの数がデータの自由度以下になるまで
EXAFSのデータの自由度:
Nfree =
2 rfilt k
これは最大値,この数までokの保証なし
再考:何をしたいのか①
「決まらないパラメータ」
!
!
パラメータの数が多い or
何かの事情で決まるかどうか微妙なパラメータがある!
•
決まらないものは拘束・固定するしかない どういう場合に決まらないか?!
→ 情報行列 Q の小さい固有値に対応するパラメータが決まらない
(決まらないパラメータは最初にとったパラメータとは限らない)
!
!
X2
!
x2
χcond の等高線
左のケースでは,X1が Q の小さい固有値に対応し,
実験データから決まらない。
X1
!
X2 は実験結果から決まる。事前確率に支配されると
!
他のパラメータの結果を歪めてしまう。
!
!
x1,x2 も,事前確率に支配されると他のパラメータ
x1
の結果を歪める
何をしたいのか③
事前確率をデータから決めたい:Turchin
•
Turchin:実験データそのものから αn を決める — 質の良いデー
タは大きい αn を必要としないであろう etc. !
実験データに依存する αn の確率分布の存在を仮定:
•
!
P (µ| ) =
!
Pcond (µ|x)Pprior (x; )dN x
det A
P (µ| ) = const. ·
det(Q + A)
1/2
1 T
exp b (Q + A)
2
1
b
!
P ( |µ)
P (µ| )Pprior ( )
:Bayes. !
α の事前分布として幅広のものを仮定!
→ 実験データから α を決める
何が良いのか?
•
大きいパラメータ空間をそのまま扱える
•
データから決まる/決まらないパラメータの弁別
•
誤差解析
→ 難しい解析が出来る場合がある(かもしれない)
試してみたい方は…
•
解析プログラム(written by H. H. Rossner )は提供いたします
[email protected] (千葉大 小西)
までご連絡ください。
•
まだドキュメント等不十分ですが、千葉までいらっしゃること
が可能であれば,プログラムの使い方もお教えいたします。
•
ただし、現状ではとても user unfriendly
— user interface 開発中,マニュアルも含めweb公開予定
•
適用例がまだ少ないので興味のある方はぜひ。