宮武勇登 (大阪大学)
MfIP連携探索ワークショップ
数学を軸とする新たな価値創造に向けて
構造保存数値解法 (Geometric Integration)
数値線形代数 (連立一次方程式など行列に関する計算)
不確実性定量化 (UQ: Uncertainty Quantification)
科研費:数値代数解析学の開拓 ー量子系偏微分方程式の数値解法の新展開ー
科研費:データ同化の信頼性向上に向けた時間逆向き数値計算法の確立と地震学への応用展開
東大地震研特定共同研究:深層学習とデータ同化の協働による固体地球科学の深化
さきがけ:発展方程式の数値計算に対する不確実性定量化理論の創出
数値解析
古くからあるかなり成熟した研究分野
データ同化(固体地球科学)の研究者と連携すると
多くの新しい(とても面白い)問題設定があふれている
どんなことができるようになったか... というよりも
どういう経緯で,どんなテーマ(2例)が生まれたか
2015年:学位取得
副査:長尾大道 先生 (東大地震研)
地震の研究における数値計算の話を聞く
2017年頃〜
伊藤伸一氏 (東大地震研),松田孟留氏(東大情報理工)と
あれやこれやと議論を始める
その後,徐々に理解が進み,共同研究スタート
酸ヶ湯のアメダス
最初は,何が課題か全く分からなかった
逐次データ同化
主に離散的なモデルを用いて,最新のデータが得られている時刻の変数を推定
非逐次データ同化
連続的なモデル(一般には空間3次元の時間発展PDE)を用いて,
初期時刻の変数を推定
データ同化
シミュレーションと観測を組み合わせ,
より適切な予測などを行う数理手法
気象予測
地震
材料科学
(気象庁)
(Kano et al. 2015)
(伊藤伸一先生のweb)
伊藤伸一氏(東大地震研)
非逐次データ同化に現れる 「2nd-order adjoint方程式」,どう計算すべき?
\( \displaystyle \frac{\mathrm d}{\mathrm dt} {\color{blue}\bm{\xi}(t)} = - (\nabla _{\bm{x}} \bm{f}(\bm{x}(t))^\top {\color{blue}\bm{\xi}(t)} - (\nabla_{\bm{x}}(\nabla_{\bm{x}} \bm{f}(\bm{x}(t)))\bm{\delta}(t))^\top \bm{\lambda}(t)\)
注意: \( \bm{x}(t), \ \bm{\delta}(t), \ \bm{\lambda}(t)\) は別の微分方程式の解
この方程式を,「終端条件」を課して「時間逆向き」に解きたい
モデル:
\(\displaystyle \frac{\mathrm d}{\mathrm dt} \bm{x}(t) = \bm{f}(\bm{x}(t)), \quad \bm{x}(0) = {\color{blue}\bm{\theta}}\)
観測:
\(\displaystyle D = \{ \bm{d}_1,\bm{d}_2,\dots \} \) (\(\bm{d}_k = \bm{h}(\bm{x}(t_k)) + \bm{\omega}_k \) )
4D-Var:
事後分布から(マップ解などの)情報を抽出
\( \displaystyle p(\bm{\theta}\mid D) \propto p(\bm{\theta}) \prod_{k\in T_{\mathrm{obs}}} q (\bm{d}_k - \bm{h} (\bm{x}(t_k;\bm{\theta})))\)
\( \displaystyle \tilde{p}(\bm{\theta}\mid D) \propto p(\bm{\theta}) \prod_{k\in T_{\mathrm{obs}}} q (\bm{d}_k - \bm{h} ({\color{blue}\bm{x}_k(\bm{\theta})}))\)
実際に計算する際には,厳密解は近似解(数値解)で置き換える
様々な事後分布たち
もし真のモデルが使えるならば
(未知)
使用しているモデルに対して
厳密解が使えるならば
(未知)
使用しているモデルに対して
近似解を使った場合
(原理的には計算可能)
事後分布をガウシアンで近似
(原理的には計算可能)
ガウシアンの分散 の(成分の)計算をするために
とある連立一次方程式を解く必要があり,
そのためには,行列ベクトル積の計算が必要で,
そのためには,2nd-order adjoint方程式の計算が必要だが,
"高精度"に計算するにはどうすればよいか?
もし真のモデルが使えるならば
(未知)
使用しているモデルに対して
厳密解が使えるならば
(未知)
使用しているモデルに対して
近似解を使った場合
(原理的には計算可能)
事後分布をガウシアンで近似
(原理的には計算可能)
(注) こんなふうに,「この計算をなんとかしたい!」
というご相談が多い
この計算の不確実性が
一番大きいかもしれない
もし真のモデルが使えるならば
(未知)
使用しているモデルに対して
厳密解が使えるならば
(未知)
使用しているモデルに対して
近似解を使った場合
(原理的には計算可能)
事後分布をガウシアンで近似
(計算可能)
使用しているモデルに対して
近似解を使うことの影響
事後分布をガウシアンで近似したときの
分散の計算
松田さんと共同研究
伊藤さん・松田さんと共同研究
よくあるご批判
数値計算の誤差が無視できるようなアルゴリズムを作るのが
数値解析学者の仕事 !!
それはそう (そういう研究もやっている)
しかし
使用しているモデルに対して
近似解を使うことの影響
M. 2024
A new family of fourth-order energy-preserving integrators
調和振動子 (ベイズ推定ではなく,最尤推定の例)
Ideal
Reality (use approx. sol.)
\(\hat{\theta}_{\mathrm{ML}}\)
\(\hat{\theta}_{\mathrm{QML}}\)
バイアス: \( \mathrm{E}_{\theta} [\hat{\theta}_{\mathrm{QML}}] - \theta \neq 0\)
最小二乗誤差(mean squared error): \( \mathrm{E}_{\theta} \big[\|\hat{\theta}_{\mathrm{ML}}-\theta\|^2\big] \) vs \( \mathrm{E}_{\theta} \big[\|\hat{\theta}_{\mathrm{QML}}-\theta\|^2\big] \)
MLE
Runge–Kutta
中点則
【考察】
数値計算の精度によって,
推定の性能は大きく異りうる
青や赤の振る舞いを研究する論文は
ほとんどない
誤差 \( = \) \( \| \) 厳密解 \( - \) 近似解 \( \|\) \(\leq\) error bound
厳密な不等式評価より
「だいたい」で評価できた方が有用?
もちろん,統計的に然るべき議論
e.g. \( C (\Delta t)^p \)
実際の "値" には大きなギャップ
何桁も違うかもしれない
使用しているモデルに対して
厳密解が使えるならば
(未知)
使用しているモデルに対して
近似解を使った場合
(原理的には計算可能)
(従来型の)数値解析
数値計算のUQ
計算前に定性的評価
計算後に定量的評価
関数解析など
確率・統計
いつ評価?
主要な道具
【私見】 数値解析の一トピックとみなしてもよい気がします
数値解析の指す範囲は時代とともに変遷してきた
誤差(同じことだが近似解)を確率変数でモデリング
ならば,分布を見れば誤差の定量化と言えそう
たとえば
現状:いくつかのアイデアが提案されているが,「決定版」はないし,数学的な説明は依然として不十分
フィルタ型
摂動型
単調回帰型 (松田孟留さんたちとの共同研究) :逆問題専用
パッケージの開発も重要
太い青相当の事後分布
使用しているモデルに対して
近似解を使うことの影響
事後分布をガウシアンで近似したときの
分散の計算
松田さんと共同研究
伊藤さん・松田さんと共同研究
計算したいのは,青の山の位置と赤の分散
使用しているモデルに対して
近似解を使った場合
(原理的には計算可能)
事後分布をガウシアンで近似
(計算可能)
モデル:
\(\displaystyle \frac{\mathrm d}{\mathrm dt} \bm{x}(t) = \bm{f}(\bm{x}(t)), \quad \bm{x}(0) = {\color{blue}\bm{\theta}}\)
事後分布を \( C(\bm{X}(\bm{\theta})) \)
ただし \( X = ( \bm{x}_1(\bm{\theta}) ,\dots, \bm{x}_N (\bm{\theta}))\)
Runge-Kutta法などによる近似解
\( \nabla_{\bm{\theta}}C(\bm{X}(\bm{\theta})) = \bm{0}\) となる \(\bm{\theta}\) を求めたい
Sanz-Serna 2016; Matsubara, Miyatake, Yaguchi 2021, 2023
勾配 \( \nabla_{\bm{\theta}}C(\bm{X}(\bm{\theta})) \) の計算 → 厳密に計算可能!
分散を計算したければ...
使用しているモデルに対して
近似解を使った場合
(原理的には計算可能)
事後分布をガウシアンで近似
(計算可能)
モデル:
\(\displaystyle \frac{\mathrm d}{\mathrm dt} \bm{x}(t) = \bm{f}(\bm{x}(t)), \quad \bm{x}(0) = {\color{blue}\bm{\theta}}\)
\( \mathsf{H}_{\bm{\theta}}C(\bm{X}(\bm{\theta}^\ast)) ^{-1}\) の計算
(ヘッセ行列の逆行列)
計算できること
Ito, Matsuda, M. 2021
Adjoint-based exact Hessian computation
(\(-\log C\) を改めて \(C\))
\(\theta^*\)
行列ベクトル積が計算できれば,原理的には連立一次方程式が解ける!
連立一次方程式の解法の分類
直接法
反復法
ガウスの消去法,LU分解,コレスキー分解,...
定常反復法 (SOR法など)
Krylov部分空間法 (CG法など)
→ 逆行列を計算できる
条件数が小さくなるように行列(ヘッセ行列)を変換しよう!
標準的な前処理:
\( A \bm{x} = \bm{b} \)
\( \Leftrightarrow \)
\( (C^{-1}A C^{-\top}) \ C^\top \bm{x} = C^{-1}\bm{b} \)
\( \underbrace{(K^{-1}A K^{-\top})}_{\tilde{A}} \underbrace{\ K^\top \bm{x}}_{\tilde{\bm{x}}} = \underbrace{K^{-1}\bm{b}}_{\tilde{\bm{b}}} \)
(\( A = CC^\top \))
\( \Leftrightarrow \)
(\( A \approx KK^\top \))
コレスキー分解
\(\tilde{A}\) の条件数が小さくなるような \(K\) を 効率よく 見つける
ヘッセ行列は基本的に「悪条件」
ヘッセ行列
多くの連立一次方程式の特性
既存の前処理技法はほぼ使えない!
どのように前処理を行えばよい?
考えられるいくつかのアプローチ
どの程度まで条件数を小さくすべき?
最低限,分散の計算の不確実性は他の不確実性より小さくしたい
すべてのきっかけは,2nd-order adjoint方程式の数値計算
※ 複数の変数を同時に扱う場合は \( \mathrm{N} (0,\Sigma_n)\)
\( r_n^2 := (y_n - \widehat{x}_n)^2 \sim (\gamma^2 + \sigma_n^2)\chi_1^2\)
残差 \(=\) \((\) データ - 数値解 \()^2\) \(\sim\) \(\chi^2\)-分布 (自由度1)
\( \xi_n = \hat{x}_n - x(t_n) \sim \mathrm{N} (0,\sigma_n^2)\)
【気持ち】 \(\sigma_n\) が誤差のスケールを反映してほしい
観測ノイズがガウシアン \( y_n \sim \mathrm{N}(x(t_n),\gamma^2)\) ならば(かつ,簡単のため 観測オペレータ \(H=\mathrm{id.}\) ならば)
データと数値解を比べるモデル → \(\sigma_1^2,\dots,\sigma_N^2\) を推定
(Matsuda, M., SIAM/ASA UQ, 2021)
(Marumo, Matsuda, M., Appl. Math. Lett, 2023
この推定の際,何らかの事前知識を導入
常微分方程式の初期値問題を陰的な数値解法で数値計算する場合
誤差は時間発展に伴い(通常)増加する傾向
(実際の計算の誤差を知るのは困難だが...)
(非)線形ソルバの収束の閾値、
時間発展に伴って変更できると効率的?
しかし
当時は構造保存数値解法に強い関心
踏み込んで考察することはなかった
(閾値は十分小さくしないと構造保存性が失われる)
さらに、「確率95%で誤差はこれくらい」というようなことがいえればベター
(精度保証とは似て非なる...イメージ)
様々なことに役立てたい
「これよりは良い!悪い!」というより、「だいたいこれくらい!」
UQ: Uncertainty Quantification
精度がすごく良いわけでもすごく悪いわけでもない計算が主なターゲット
「超高精度な計算は必要ないが,ラフ過ぎてもダメ」というシチュエーションは案外多い
例:PDEの計算,画像処理,逆問題,...
実際の計算の精度について,一定の信頼度を保って定量的評価ができれば有用
例えば逆問題の場合...
(従来型の)数値解析
数値計算のUQ
計算前に定性的評価
計算後に定量的評価
関数解析など
確率・統計
いつ評価?
主要な道具
【私見】 数値解析の一トピックとみなしてもよい気がします
常微分方程式
確率的手法
その他のトピック
Probabilistic Numerics
A free electronic version
for personal use only is available
昨年出版!
確率的でない(陽には用いない)手法
様々な動機で様々な手法が開発されていて
それぞれに利点と(大きな)欠点がある
計算の過程で確率を扱う
あとで比較したりはしますが,基本的に独立した内容です
特に微分方程式の数値計算に関連するUQの研究は...
日本では...
確率的手法
確率的でない(陽には用いない)手法
(数式が煩雑になるのでアルゴリズムの詳細は示しません)
基本的な考え方
どのように実現するか
例えば,各時刻で修正された分布(フィルタ分布)の
平均:数値解
分散:誤差の定量化
とみなす
状態空間モデル
一期先予測:
フィルタ:
(非線形モデルの場合に,線形化した行列を用いて予測・フィルタを行う手法を「拡張カルマンフィルタ」という)
\(p(\bm{x}_j\mid \bm{y}_{1:j-1})\)
\(p(\bm{x}_j\mid \bm{y}_{1:j})\)
\(\bm{x}_0 \sim \mathrm{N} (\bm{x}_{0\mid 0},V_{0\mid 0})\) : given に対して
\(\bm{x}_j \mid \bm{y}_{1:j} \sim \mathrm{N} (\bm{x}_{j\mid j},V_{j\mid j})\)
\(\bm{x}_j \mid \bm{y}_{1:j-1} \sim \mathrm{N} (\bm{x}_{j\mid j-1},V_{j\mid j-1})\)
を交互に計算
\(\bm{x}_{j\mid j-1} = F_j \bm{x}_{j-1\mid j-1}\)
\(V_{j\mid j-1} = F_j V_{j-1\mid j-1} F_j^\top + G_j Q_j G_j^\top\)
\( K_t = V_{j\mid j-1} H_j^\top (H_j V_{j\mid j-1} H_j^\top + R_j)^{-1}\)
\(\bm{x}_{j\mid j} = \bm{x}_{j\mid j-1}+K_j (\bm{y}_j - H_j \bm{x}_{j\mid j-1})\)
\(V_{j\mid j} = V_{j\mid j-1}- K_j H_j V_{j\mid j-1}\)
システムモデル
観測モデル
\(\sim \mathrm N (\bm{0},Q_j)\)
\(\sim \mathrm N (\bm{0},R_j)\)
システムモデル
観測モデル
SDE: \( \mathrm d \mathbf{X}(t)=F\mathbf{X}(t) \mathrm dt +L \mathrm d \mathbf{\omega}_t\) を離散化して
観測は常に \(\mathbf{y}_j = \bm{0}\) であるとする
拡張カルマンフィルタにおける線形化の例
\( H = E_1\), \( H = E_1 - \nabla \bm{f} (E_0 \mathbf{x}_{j\mid j-1}) E_0\)
\( \displaystyle \frac{\mathrm d\bm{x}}{\mathrm dt} = \bm{f}(\bm{x}), \quad \bm{x}(0) = \bm{x}_0 \in \mathbb{R}^d\)
相当の \(d\nu\) 次元ベクトル
\(\bm{x}^\prime \) 相当
\(\bm{x} \) 相当
システムモデル
観測モデル
SDE: \( \mathrm d \mathbf{X}(t)=F\mathbf{X}(t) \mathrm dt +L \mathrm d \mathbf{\omega}_t\) を離散化して
観測は常に \(\mathbf{y}_j = \bm{0}\) であるとする
\(\bm{x}^\prime \) 相当
\(\bm{x} \) 相当
残差の計算により \(\bm{f}\) の情報を取り込む
FitzHugh—Nagumo model
EK1(\(\nu=1\))
EK1(\(\nu=2\))
EK1(\(\nu=3\))
\(V\)
\(R\)
確率的手法
確率的でない(陽には用いない)手法
決定論的解法 + 各時間ステップごとに摂動を加える (Conrad et al., 2016)
\( \displaystyle \frac{\mathrm dx}{\mathrm dt} = f(x), \quad x(0) = x_0 \in \mathbb{R}^d\)
決定論的解法の 刻み幅 をランダムに選ぶ (Abdulle, Garegnani, 2020)
\( \Psi_h:\mathbb{R}^d\to \mathbb{R}^d\): Runge–Kutta法などの通常の一段解法 として
摂動
randomized step size
各 \(t_n\) において分布が生成される
(実際の計算では複数のサンプルによるヒストグラム)
仮定
定理
(Lie, Stuart, Sullivan 2019; Conrad et al., 2017)
仮定
局所誤差 \(\approx \mathrm{O}(h^{q+1})\)
標準偏差 \(\approx \mathrm{O}(h^{p+1/2})\)
Lorenz system
Lorenz system
\(x\)
たとえば,正規分布の場合,\(\mathrm{N}(\mathbb{0},\Sigma h^{2q+1})\) とするれば良さそうだが,
適切な \(\Sigma\) はどう選択するのか?
randomized step size
(Abdulle, Garegnani, 2020)
確率的手法
確率的でない(陽には用いない)手法
背景の(超簡略版)問題設定
最尤推定の定式化
Ideal
Reality (use approx. sol.)
観測オペレータ
観測 at \(t=t_n\)
※観測オペレータの推定
Akita, M., Furihata, 2022
Ideal
Reality (use approx. sol.)
\(\hat{\theta}_{\mathrm{ML}}\)
\(\hat{\theta}_{\mathrm{QML}}\)
バイアス: \( \mathrm{E}_{\theta} [\hat{\theta}_{\mathrm{QML}}] - \theta \neq 0\)
最小二乗誤差(mean squared error): \( \mathrm{E}_{\theta} \big[\|\hat{\theta}_{\mathrm{ML}}-\theta\|^2\big] \) vs \( \mathrm{E}_{\theta} \big[\|\hat{\theta}_{\mathrm{QML}}-\theta\|^2\big] \)
MLE
Runge–Kutta
中点則
【考察】
数値計算の精度によって,
推定の性能は大きく異りうる
仮定:真のパラメータ \(\theta^*\) は既知
実際には,例えば \(\theta\) の推定と(以下の)離散化誤差の定量化を交互に繰り返す
※ 複数の変数を同時に扱う場合は \( \mathrm{N} (0,\Sigma_n)\)
\( r_n^2 := (y_n - \widehat{x}_n)^2 \sim (\gamma^2 + \sigma_n^2)\chi_1^2\)
残差 \(=\) \((\) データ - 数値解 \()^2\) \(\sim\) \(\chi^2\)-分布 (自由度1)
(Matsuda, M., SIAM/ASA UQ, 2021)
観測 と 数値解 から「各時刻での誤差」を推定
以下の目的:
\( \xi_n = \hat{x}_n - x(t_n) \sim \mathrm{N} (0,\sigma_n^2)\)
【気持ち】 \(\sigma_n\) が誤差のスケールを反映してほしい
観測ノイズがガウシアン \( y_n \sim \mathrm{N}(x(t_n),\gamma^2)\) ならば(かつ,簡単のため 観測オペレータ \(H=\mathrm{id.}\) ならば)
データと数値解を比べるモデル → \(\sigma_1^2,\dots,\sigma_N^2\) を推定
FitzHugh–Nagumoモデル
\(V\) の誤差について
正則化
(Matsuda, M., arXiv, 2021)
【私見】
【何が難しいのか】