More Related Content
Similar to Kensuke Aihara
Similar to Kensuke Aihara (6)
Kensuke Aihara
- 2. 自己紹介
相原 研輔(Kensuke AIHARA)
• 東京理科大学理学部第一部数理情報科学科 助教
➔ 来年度から「応用数学科」へ改名
• 学位:博士(理学) in 2014
研究分野
• 数値解析 / 数値線形代数
– 大規模連立一次方程式に対する反復法
– 最小二乗問題に対する数値解法 with Prof. Hosoda and Mr. Ozawa
– 多様体上の最適化への数値線形代数の応用 with Dr. Sato
– 構造を持つ非対称行列の固有値・固有ベクトル計算 with Dr. Fukuda
• ざっくりいえば線形計算における高速・高精度なアルゴリズム
の開発と改良
2017/1/27 第20回数理人セミナー @ 早稲田大学 1 / 39
- 4. はじめに
正則行列を係数に持つ連立一次方程式
• 厳密解は だが・・・
行列の特徴
• 大規模(数万~数千万次)
• 疎(成分のほとんどは零)
➔ コンピュータによる数値計算が不可欠!
応用分野
• 流体力学,電磁場解析,熱問題,画像復元,etc…
2017/1/27 第20回数理人セミナー @ 早稲田大学 3 / 39
- 6. 数値解法
大規模疎行列を係数に持つ連立一次方程式
反復法
• 適当な初期近似解 から出発してそれを更新
しながら徐々に厳密解 に近づける計算法
– 多くは漸化式を用いる(後述)
• 目標は・・・
– 速い(収束性)
– 安い(計算コスト)
– 旨い(近似解精度)
➔ 牛丼屋?
2017/1/27 第20回数理人セミナー @ 早稲田大学 5 / 39
- 7. (非定常)反復法
クリロフ部分空間法
• Growing subspace
• 空間条件(簡単のため )
帰納的次元縮小(Induced Dimension Reduction, IDR)法
• Shrinking subspace
• 空間条件(残差)
2017/1/27 第20回数理人セミナー @ 早稲田大学 6 / 39
- 8. 共役勾配(Conjugate Gradient, CG)法 [’52 Hestenes and Stiefel]
係数行列が正定値対称の場合に有効
• 空間条件に加えて残差の直交条件を課す
➔ 漸化式の係数(ステップ幅)の決定
2017/1/27 第20回数理人セミナー @ 早稲田大学
探索方向
近似解
残差
7 / 39
- 9. 共役残差(Conjugate Residual, CR)法 [’55 Stiefel]
係数行列が(正定値)対称の場合に有効
• 空間条件に加えて残差の最小条件を課す
➔ 漸化式の係数(ステップ幅)の決定
2017/1/27 第20回数理人セミナー @ 早稲田大学
探索方向
近似解
残差
8 / 39
- 11. クリロフ部分空間法
短い漸化式を用いる算法
• CG[’52 Hestenes and Stiefel]
• Bi-CG[’76 Fletcher]
対称化された以下の方程式に前処理付きCG, CR法を形式的に
適用することでBi-CG, Bi-CR法が導出される
– 前処理行列
, :単位行列
– これは,2つの方程式 を同時に解くイメージ
2017/1/27 第20回数理人セミナー @ 早稲田大学
• CR[’55 Stiefel]
• Bi-CR[’09 Sogabe et al.]
<--- 対称向け --->
<-- 非対称向け -->
10 / 39
- 13. クリロフ部分空間法
短い漸化式を用いる算法
• CG[’52 Hestenes and Stiefel]
• Bi-CG[’76 Fletcher]
• Hybrid Bi-CG
– CGS [’89 Sonneveld]
– Bi-CGSTAB[’92 van der Vorst]
– Bi-CGStab2[’93 Gutknecht]
– Bi-CGstab(ℓ) [’93 Sleijpen and Fokkema]
– GCGS[’96 Fokkema et al.]
– GPBi-CG[’97 Zhang]
• QMR[’91 Freund and Nachtigal]
– TFQMR[’93 Freund]
– QMRCGSTAB [’94 Chan et al.]
長い漸化式の算法と restart / truncated 版は割愛
2017/1/27 第20回数理人セミナー @ 早稲田大学
• CR[’55 Stiefel]
• Bi-CR[’09 Sogabe et al.]
• Hybrid Bi-CR[’10 Abe and Sleijpen]
– CRS
– Bi-CRSTAB
– Bi-CRstab(2)
– GPBi-CR
• IDR[’89 Wesseling and Sonneveld]
– IDR(s) [’08 Sonneveld and van Gijzen]
– GBi-CGSTAB(s, ℓ) [’10 Tanio and Sugihara]
– IDRstab [’10 Sleijpen and van Gijzen]
<--- 対称向け --->
<-- 非対称向け -->
and many variants …
12 / 39
- 15. 丸め誤差について
倍精度浮動小数点数
• 符号部 1bit,指数部 11bit,仮数部 52bitで表現
• (0.1)10 = (0.000110011 ・・・ )2 ➔ + 1.10011001 ・・・ 11010 × 2−4
仮数部は52bitに丸める
指数部はバイアスを加えて −4 + 1023 = 1019 = (01111111011)2
計算精度
• を実数, を倍精度浮動小数点数とすると
: 相対精度(unit round off:倍精度では )
2017/1/27 第20回数理人セミナー @ 早稲田大学
s e1 e2 ・・・ e11 d1 d2 ・・・ ・・・ ・・・ ・・・ ・・・ d52
14 / 39
- 17. 数値例1
Cyclic行列に対するBi-CG法の収束性
2017/1/27 第20回数理人セミナー @ 早稲田大学
0 50 100 150
-12
-10
-8
-6
-4
-2
0
2
4
6
反復回数 k
相対残差2ノルム(対数)
擬似8倍精度
倍精度
0 50 100 150
-12
-10
-8
-6
-4
-2
0
2
4
6
反復回数 k
相対残差2ノルム(対数)
擬似8倍精度
倍精度
0 500 1000 1500
-12
-8
-4
0
4
8
12
16
20
24
反復回数 k
相対残差2ノルム(対数)
擬似8倍精度
倍精度
0 500 1000 1500
-12
-8
-4
0
4
8
12
16
20
24
反復回数 k
相対残差2ノルム(対数)
擬似8倍精度
倍精度
-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
固有値
16 / 39
固有値分布
成分:乱数
- 19. Residual gapとは?
一般的な収束判定
• 漸化式から求まる残差 が以下を満たすとき終了する
反復が終了したとき真の残差 は以下を満たすか?
• 無限精度ならYes,丸め誤差のある世界ではNo!
Residual gap( )を小さくすることが大事
真の残差 漸化式から求まる残差
2017/1/27 第20回数理人セミナー @ 早稲田大学 18 / 39
- 20. 数値例2
行列af23560に対するBi-CR法の収束性
• 収束判定:
2017/1/27 第20回数理人セミナー @ 早稲田大学
0 1000 2000 3000 4000 5000
-10
-8
-6
-4
-2
0
2
4
6
反復回数 k
相対残差2ノルム(対数)
||r
k
||
2
||b-Ax
k
||
2
0 1000 2000 3000 4000 5000
-10
-8
-6
-4
-2
0
2
4
6
反復回数 k
相対残差2ノルム(対数)
||r
k
||
2
||b-Ax
k
||
2
19 / 39
- 21. 収束性を改善するには?
• 多倍長計算の利用
– 収束速度,residual gapともに改善される ➔ コストは大きい
– 経験的に部分的な利用(混合精度演算)では改善は難しい
– 多倍長演算は解析の際に有効活用できる
• リスタート手法
– 丸め誤差を排除できる ➔ 反復回数(計算コスト)は増加
• 真の残差を計算
– Residual gapを改善できる ➔ 収束速度の低下
• ベクトル更新のグループ化
– 丸め誤差の影響を抑制するよう漸化式を修正
– 低コストで収束速度を維持しつつresidual gapを改善
2017/1/27 第20回数理人セミナー @ 早稲田大学 20 / 39
- 23. 浮動小数点演算による行列ベクトル積
• : 浮動小数点演算の結果
• : 一行あたりの最大非零要素数
• : 相対精度(unit round off:倍精度では )
• に対して
以降の誤差解析は文献[1]に倣う.また,行列ベクトル積以外の演算
における丸め誤差の影響は無視する
[1] G.L.G. Sleijpen and H.A. van der Vorst, Reliable updated residuals
in hybrid Bi-CG methods, Computing, 56 (1996), 141--163.
準備
2017/1/27 第20回数理人セミナー @ 早稲田大学 22 / 39
- 25. 丸め誤差の影響(2/2)
近似解と残差を更新する漸化式
Residual gapの上限
残差ノルムの振動により となるような中間残差
があると,上限は相対的に大きくなり得る
➔ 近似解精度の劣化
相対的に大きな局所誤差の蓄積を避け,さらにresidual gap
を小さくするためには,残差ノルムが滑らかに減少すること
が理想的である
2017/1/27 第20回数理人セミナー @ 早稲田大学 24 / 39
- 27. 残差更新のグループ化 cf. [’94 Neumaier, ’96 Sleijpen and van der Vorst]
近似解と残差の漸化式
• 単調増加数列 を選び, のとき,
近似解と残差を以下で置き換える(再計算する)
ただし,
2017/1/27 第20回数理人セミナー @ 早稲田大学
元の列
置き換え
26 / 39
- 28. 数列 の選択
理想的な収束振る舞い
① 大きな中間残差ノルムを回避 ➔ Residual gapの抑制
② 残差ノルムの大きな振動(減少)を回避 ➔ 局所誤差の抑制
① 新しい残差列 が「滑らか」
になるよう選ぶ
注) 残差の再計算には余分な
行列ベクトル積が必要
• 実際にはパラメータを用いて適当な条件を満たした場合のみ
再計算する様々な手法が開発されている
2017/1/27 第20回数理人セミナー @ 早稲田大学 27 / 39
- 29. 数列 の選択
理想的な収束振る舞い
① 大きな中間残差ノルムを回避 ➔ Residual gapの抑制
② 残差ノルムの大きな振動(減少)を回避 ➔ 局所誤差の抑制
② 大きな振動があれば局所的に
残差のみ再計算
注) 残差の再計算には余分な
行列ベクトル積が必要
• 実際にはパラメータを用いて適当な条件を満たした場合のみ
再計算する様々な手法が開発されている
2017/1/27 第20回数理人セミナー @ 早稲田大学
➟
28 / 39
- 32. 漸化式による違い
Bi-CG[’96 Sleijpen and van der Vorst]
• 行列ベクトル積による局所誤差
• Residual gap
Bi-CR [2016 Aihara]
• 行列ベクトル積による局所誤差
• Residual gap
➔ 補助ベクトルの振動を回避するようにグループ化!
2017/1/27 第20回数理人セミナー @ 早稲田大学 31 / 39
- 34. 計算条件
実験環境
• GNU C++ 4.8.2 compiler
• Intel Xeon CPU E5-1620 v2
• 32 GB RAM
初期値
•
収束判定条件
•
➔ 従来のBi-CR法とベクトル更新のグループ化を適用したBi-CR法
の収束性を比較
2017/1/27 第20回数理人セミナー @ 早稲田大学 33 / 39
- 35. 数値実験1
テスト行列
• af23560 (from University of Florida Sparse Matrix Collection)
• 構造: 実非対称
• 行列サイズ n = 23560
• 非零要素数 460598
• 行あたりの最大非零要素数 21
• 条件数 2.0e+04
• 応用分野: 流体力学
右辺項
• 正規化された乱数ベクトル
2017/1/27 第20回数理人セミナー @ 早稲田大学
非零要素分布
34 / 39
- 36. 0 1000 2000 3000 4000 5000
-10
-8
-6
-4
-2
1
2
4
6
反復回数 k
相対残差2ノルム(対数)
||r
k
||
2
||b-Ax
k
||
2
従来のBi-CR法の収束履歴
収束判定
2017/1/27 第20回数理人セミナー @ 早稲田大学 35 / 39
- 37. 0 1000 2000 3000 4000 5000
-10
-8
-6
-4
-2
1
2
4
6
反復回数 k
相対残差2ノルム(対数)
||r
k
||
2
||b-Ax
k
||
2
提案法(グループ化を行った場合)の収束履歴
収束判定
2017/1/27 第20回数理人セミナー @ 早稲田大学 36 / 39
- 38. 数値実験2
境界値問題 [’92 Joubert]
• 離散化: 中心差分近似(5点公式)
• 刻み幅 h=1/129
• 行列サイズ n = 16384
• 非零要素数 81408
• パラメータ Dh = 1/4
右辺項は厳密解が となるように設定
2017/1/27 第20回数理人セミナー @ 早稲田大学 37 / 39
- 39. 残差ノルムの収束履歴
† 従来法は n 反復で収束しない
解法 反復回数 Add. MVs
従来 † - 5.3e-07
提案 4282 175 7.4e-11
2017/1/27 第20回数理人セミナー @ 早稲田大学
0 2000 4000 6000 8000 10000
-10
-8
-6
-4
-2
1
2
4
反復回数 k
相対残差2ノルム(対数)
従来
提案
従来
提案
38 / 39