SlideShare a Scribd company logo
1 of 40
Download to read offline
クリロフ部分空間法における丸め誤差の
収束性への影響
相原 研輔
東京理科大学
2017/1/27
第20回数理人セミナー @ 早稲田大学
自己紹介
 相原 研輔(Kensuke AIHARA)
• 東京理科大学理学部第一部数理情報科学科 助教
➔ 来年度から「応用数学科」へ改名
• 学位:博士(理学) in 2014
 研究分野
• 数値解析 / 数値線形代数
– 大規模連立一次方程式に対する反復法
– 最小二乗問題に対する数値解法 with Prof. Hosoda and Mr. Ozawa
– 多様体上の最適化への数値線形代数の応用 with Dr. Sato
– 構造を持つ非対称行列の固有値・固有ベクトル計算 with Dr. Fukuda
• ざっくりいえば線形計算における高速・高精度なアルゴリズム
の開発と改良
2017/1/27 第20回数理人セミナー @ 早稲田大学 1 / 39
発表の流れ
 はじめに
• 連立一次方程式とクリロフ部分空間法
 丸め誤差について
• 収束速度と近似解精度
 収束性の改善
• 誤差解析と漸化式の修正
 数値実験
 まとめ
2017/1/27 第20回数理人セミナー @ 早稲田大学 2 / 39
はじめに
 正則行列を係数に持つ連立一次方程式
• 厳密解は だが・・・
 行列の特徴
• 大規模(数万~数千万次)
• 疎(成分のほとんどは零)
➔ コンピュータによる数値計算が不可欠!
 応用分野
• 流体力学,電磁場解析,熱問題,画像復元,etc…
2017/1/27 第20回数理人セミナー @ 早稲田大学 3 / 39
連立一次方程式の出現例
 (自然)現象などに対する数値シミュ―レション
2017/1/27 第20回数理人セミナー @ 早稲田大学
シミュレーション
の流れ
cf. 高橋大輔著,数値計算,岩波書店,1996.
4 / 39
数値解法
 大規模疎行列を係数に持つ連立一次方程式
 反復法
• 適当な初期近似解 から出発してそれを更新
しながら徐々に厳密解 に近づける計算法
– 多くは漸化式を用いる(後述)
• 目標は・・・
– 速い(収束性)
– 安い(計算コスト)
– 旨い(近似解精度)
➔ 牛丼屋?
2017/1/27 第20回数理人セミナー @ 早稲田大学 5 / 39
(非定常)反復法
 クリロフ部分空間法
• Growing subspace
• 空間条件(簡単のため )
 帰納的次元縮小(Induced Dimension Reduction, IDR)法
• Shrinking subspace
• 空間条件(残差)
2017/1/27 第20回数理人セミナー @ 早稲田大学 6 / 39
共役勾配(Conjugate Gradient, CG)法 [’52 Hestenes and Stiefel]
 係数行列が正定値対称の場合に有効
• 空間条件に加えて残差の直交条件を課す
➔ 漸化式の係数(ステップ幅)の決定
2017/1/27 第20回数理人セミナー @ 早稲田大学
探索方向
近似解
残差
7 / 39
共役残差(Conjugate Residual, CR)法 [’55 Stiefel]
 係数行列が(正定値)対称の場合に有効
• 空間条件に加えて残差の最小条件を課す
➔ 漸化式の係数(ステップ幅)の決定
2017/1/27 第20回数理人セミナー @ 早稲田大学
探索方向
近似解
残差
8 / 39
アルゴリズム
2017/1/27 第20回数理人セミナー @ 早稲田大学
 CG法
CR法 
9 / 39
クリロフ部分空間法
 短い漸化式を用いる算法
• 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
アルゴリズム
2017/1/27 第20回数理人セミナー @ 早稲田大学
 Bi-CG法
B-CR法 
11 / 39
クリロフ部分空間法
 短い漸化式を用いる算法
• 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
発表の流れ
 はじめに
• 連立一次方程式とクリロフ部分空間法
 丸め誤差について
• 収束速度と近似解精度
 収束性の改善
• 誤差解析と漸化式の修正
 数値実験
 まとめ
2017/1/27 第20回数理人セミナー @ 早稲田大学 13 / 39
丸め誤差について
 倍精度浮動小数点数
• 符号部 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
理想的な反復法(丸め誤差の観点から)
 収束速度
• 丸め誤差の影響により残差が減少する速さは低下する
• ひどいときは残差が停滞 or 発散して収束しない
➔ 残差の(理論的な)減少の速さを維持できる解法が望ましい
 近似解精度
2017/1/27 第20回数理人セミナー @ 早稲田大学 15 / 39
数値例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
固有値分布
成分:乱数
理想的な反復法(丸め誤差の観点から)
 収束速度
• 丸め誤差の影響により残差が減少する速さは低下する
• ひどいときは残差が停滞 or 発散して収束しない
➔ 残差の(理論的な)減少の速さを維持できる解法が望ましい
 近似解精度
• 誤差 ⇔ 残差 「真」 ⇔ 漸化式から求まる残差
(条件数) (Residual gap)
➔ 要求精度をきちんと満たす解法が望ましい
2017/1/27 第20回数理人セミナー @ 早稲田大学 17 / 39
Residual gapとは?
 一般的な収束判定
• 漸化式から求まる残差 が以下を満たすとき終了する
 反復が終了したとき真の残差 は以下を満たすか?
• 無限精度ならYes,丸め誤差のある世界ではNo!
 Residual gap( )を小さくすることが大事
真の残差 漸化式から求まる残差
2017/1/27 第20回数理人セミナー @ 早稲田大学 18 / 39
数値例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
収束性を改善するには?
• 多倍長計算の利用
– 収束速度,residual gapともに改善される ➔ コストは大きい
– 経験的に部分的な利用(混合精度演算)では改善は難しい
– 多倍長演算は解析の際に有効活用できる
• リスタート手法
– 丸め誤差を排除できる ➔ 反復回数(計算コスト)は増加
• 真の残差を計算
– Residual gapを改善できる ➔ 収束速度の低下
• ベクトル更新のグループ化
– 丸め誤差の影響を抑制するよう漸化式を修正
– 低コストで収束速度を維持しつつresidual gapを改善
2017/1/27 第20回数理人セミナー @ 早稲田大学 20 / 39
発表の流れ
 はじめに
• 連立一次方程式とクリロフ部分空間法
 丸め誤差について
• 収束速度と近似解精度
 収束性の改善
• 誤差解析と漸化式の修正
 数値実験
 まとめ
2017/1/27 第20回数理人セミナー @ 早稲田大学 21 / 39
 浮動小数点演算による行列ベクトル積
• : 浮動小数点演算の結果
• : 一行あたりの最大非零要素数
• : 相対精度(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
丸め誤差の影響(1/2)
 近似解と残差を更新する漸化式
 行列ベクトル積
• 局所的な誤差の上限
• ただし, であり, の項は無視する
 のとき, は相対的に大きな誤差を含む
 残差ノルムの急激な減少による大幅な桁落ち
➔ 収束速度の低下
2017/1/27 第20回数理人セミナー @ 早稲田大学 23 / 39
丸め誤差の影響(2/2)
 近似解と残差を更新する漸化式
 Residual gapの上限
 残差ノルムの振動により となるような中間残差
があると,上限は相対的に大きくなり得る
➔ 近似解精度の劣化
相対的に大きな局所誤差の蓄積を避け,さらにresidual gap
を小さくするためには,残差ノルムが滑らかに減少すること
が理想的である
2017/1/27 第20回数理人セミナー @ 早稲田大学 24 / 39
4パターンの振動と収束性
第20回数理人セミナー @ 早稲田大学2017/1/27 25 / 39
 理想的 
 最悪 
残差更新のグループ化 cf. [’94 Neumaier, ’96 Sleijpen and van der Vorst]
 近似解と残差の漸化式
• 単調増加数列 を選び, のとき,
近似解と残差を以下で置き換える(再計算する)
ただし,
2017/1/27 第20回数理人セミナー @ 早稲田大学
元の列
置き換え
26 / 39
数列 の選択
 理想的な収束振る舞い
① 大きな中間残差ノルムを回避 ➔ Residual gapの抑制
② 残差ノルムの大きな振動(減少)を回避 ➔ 局所誤差の抑制
① 新しい残差列 が「滑らか」
になるよう選ぶ
注) 残差の再計算には余分な
行列ベクトル積が必要
• 実際にはパラメータを用いて適当な条件を満たした場合のみ
再計算する様々な手法が開発されている
2017/1/27 第20回数理人セミナー @ 早稲田大学 27 / 39
数列 の選択
 理想的な収束振る舞い
① 大きな中間残差ノルムを回避 ➔ Residual gapの抑制
② 残差ノルムの大きな振動(減少)を回避 ➔ 局所誤差の抑制
② 大きな振動があれば局所的に
残差のみ再計算
注) 残差の再計算には余分な
行列ベクトル積が必要
• 実際にはパラメータを用いて適当な条件を満たした場合のみ
再計算する様々な手法が開発されている
2017/1/27 第20回数理人セミナー @ 早稲田大学
➟
28 / 39
以上の考え方はCR法(Bi-CR法)など漸化式
の形式が異なる場合にも適用できる
[2] Kensuke Aihara, Variants of the groupwise update strategy for
short-recurrence Krylov subspace methods, Numer. Algorithms,
2016, doi:10.1007/s11075-016-0183-y.
29 / 39
対象とする漸化式
 Bi-CG系統
 行列ベクトル積を行う箇所が異なれば,丸め誤差の影響も
異なるはず
2017/1/27 第20回数理人セミナー @ 早稲田大学
 Bi-CR系統
探索方向
近似解
残差
30 / 39
漸化式による違い
 Bi-CG[’96 Sleijpen and van der Vorst]
• 行列ベクトル積による局所誤差
• Residual gap
 Bi-CR [2016 Aihara]
• 行列ベクトル積による局所誤差
• Residual gap
➔ 補助ベクトルの振動を回避するようにグループ化!
2017/1/27 第20回数理人セミナー @ 早稲田大学 31 / 39
発表の流れ
 はじめに
• 連立一次方程式とクリロフ部分空間法
 丸め誤差について
• 収束速度と近似解精度
 収束性の改善
• 誤差解析と漸化式の修正
 数値実験
 まとめ
2017/1/27 第20回数理人セミナー @ 早稲田大学 32 / 39
計算条件
 実験環境
• 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
数値実験1
 テスト行列
• af23560 (from University of Florida Sparse Matrix Collection)
• 構造: 実非対称
• 行列サイズ n = 23560
• 非零要素数 460598
• 行あたりの最大非零要素数 21
• 条件数 2.0e+04
• 応用分野: 流体力学
 右辺項
• 正規化された乱数ベクトル
2017/1/27 第20回数理人セミナー @ 早稲田大学
非零要素分布
34 / 39
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
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
数値実験2
 境界値問題 [’92 Joubert]
• 離散化: 中心差分近似(5点公式)
• 刻み幅 h=1/129
• 行列サイズ n = 16384
• 非零要素数 81408
• パラメータ Dh = 1/4
 右辺項は厳密解が となるように設定
2017/1/27 第20回数理人セミナー @ 早稲田大学 37 / 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
まとめ
 短い漸化式を用いるクリロフ部分空間法における丸め誤差
の影響について議論した
• 残差ノルムの振動は収束速度や近似解精度に大きく影響
• 丸め誤差の蓄積・拡大を回避するには滑らかな減少が重要
➔ 残差更新のグループ化について紹介
 今後の展望
• 残差ノルムの振る舞いを滑らかにするスムージングの数値的
に安定な実装法を検討中 with Mr. Komeyama and Prof. Ishiwata
– 残差ノルムが単調減少
– 実装がとても簡単
– パラメータなどの設定は不要
– 余分な計算コストはほぼかからない
2017/1/27 第20回数理人セミナー @ 早稲田大学 39 / 39

More Related Content

What's hot

[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process ModelsDeep Learning JP
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門tmtm otm
 
ベイズ最適化
ベイズ最適化ベイズ最適化
ベイズ最適化MatsuiRyo
 
『自由エネルギー原理入門』勉強会1章&2章前半
『自由エネルギー原理入門』勉強会1章&2章前半『自由エネルギー原理入門』勉強会1章&2章前半
『自由エネルギー原理入門』勉強会1章&2章前半大地 紺野
 
敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度Masa Kato
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギーHiroshi Shimizu
 
スパースモデリング入門
スパースモデリング入門スパースモデリング入門
スパースモデリング入門Hideo Terada
 
PRML 8.2 条件付き独立性
PRML 8.2 条件付き独立性PRML 8.2 条件付き独立性
PRML 8.2 条件付き独立性sleepy_yoshi
 
200611material ozaki
200611material ozaki200611material ozaki
200611material ozakiRCCSRENKEI
 
第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)RCCSRENKEI
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会正志 坪坂
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
3.3節 変分近似法(前半)
3.3節 変分近似法(前半)3.3節 変分近似法(前半)
3.3節 変分近似法(前半)tn1031
 
並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化Ryoma Sin'ya
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定Masaaki Imaizumi
 
PRML輪読#5
PRML輪読#5PRML輪読#5
PRML輪読#5matsuolab
 
第6回 配信講義 計算科学技術特論A(2021)
第6回 配信講義 計算科学技術特論A(2021)第6回 配信講義 計算科学技術特論A(2021)
第6回 配信講義 計算科学技術特論A(2021)RCCSRENKEI
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜Tomoki Yoshida
 

What's hot (20)

[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
 
ベイズ最適化
ベイズ最適化ベイズ最適化
ベイズ最適化
 
『自由エネルギー原理入門』勉強会1章&2章前半
『自由エネルギー原理入門』勉強会1章&2章前半『自由エネルギー原理入門』勉強会1章&2章前半
『自由エネルギー原理入門』勉強会1章&2章前半
 
敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度敵対的学習に対するラデマッハ複雑度
敵対的学習に対するラデマッハ複雑度
 
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
PRML 第4章
PRML 第4章PRML 第4章
PRML 第4章
 
スパースモデリング入門
スパースモデリング入門スパースモデリング入門
スパースモデリング入門
 
PRML 8.2 条件付き独立性
PRML 8.2 条件付き独立性PRML 8.2 条件付き独立性
PRML 8.2 条件付き独立性
 
200611material ozaki
200611material ozaki200611material ozaki
200611material ozaki
 
第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)第10回 配信講義 計算科学技術特論A(2021)
第10回 配信講義 計算科学技術特論A(2021)
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
3.3節 変分近似法(前半)
3.3節 変分近似法(前半)3.3節 変分近似法(前半)
3.3節 変分近似法(前半)
 
並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化並列化と実行時コード生成を用いた正規表現マッチングの高速化
並列化と実行時コード生成を用いた正規表現マッチングの高速化
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
 
PRML輪読#5
PRML輪読#5PRML輪読#5
PRML輪読#5
 
第6回 配信講義 計算科学技術特論A(2021)
第6回 配信講義 計算科学技術特論A(2021)第6回 配信講義 計算科学技術特論A(2021)
第6回 配信講義 計算科学技術特論A(2021)
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
 

Similar to Kensuke Aihara

CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1Computational Materials Science Initiative
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 
第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 
Large scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalLarge scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalKCS Keio Computer Society
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Masaya Kaneko
 

Similar to Kensuke Aihara (6)

CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
 
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
 
第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)第14回 配信講義 計算科学技術特論B(2022)
第14回 配信講義 計算科学技術特論B(2022)
 
CMSI計算科学技術特論B(8) オーダーN法1
 CMSI計算科学技術特論B(8) オーダーN法1 CMSI計算科学技術特論B(8) オーダーN法1
CMSI計算科学技術特論B(8) オーダーN法1
 
Large scale gan training for high fidelity natural
Large scale gan training for high fidelity naturalLarge scale gan training for high fidelity natural
Large scale gan training for high fidelity natural
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
 

More from Suurist

Hiroki Shigemune
Hiroki  ShigemuneHiroki  Shigemune
Hiroki ShigemuneSuurist
 
Hiroaki Shiokawa
Hiroaki ShiokawaHiroaki Shiokawa
Hiroaki ShiokawaSuurist
 
Hidetomo Nagai
Hidetomo NagaiHidetomo Nagai
Hidetomo NagaiSuurist
 
Tatsuhiro Kishi
Tatsuhiro KishiTatsuhiro Kishi
Tatsuhiro KishiSuurist
 
Hideitsu Hino
Hideitsu HinoHideitsu Hino
Hideitsu HinoSuurist
 
Tatsuya Yatagawa
Tatsuya YatagawaTatsuya Yatagawa
Tatsuya YatagawaSuurist
 
Hiroyuki Sato
Hiroyuki SatoHiroyuki Sato
Hiroyuki SatoSuurist
 
Tetsunao Matsuta
Tetsunao MatsutaTetsunao Matsuta
Tetsunao MatsutaSuurist
 
Naoya Tsuruta
Naoya TsurutaNaoya Tsuruta
Naoya TsurutaSuurist
 
Suurist Test Slide
Suurist Test SlideSuurist Test Slide
Suurist Test SlideSuurist
 
Akitoshi Takayasu
Akitoshi TakayasuAkitoshi Takayasu
Akitoshi TakayasuSuurist
 
Kohta Suzuno
Kohta SuzunoKohta Suzuno
Kohta SuzunoSuurist
 
Shunsuke Horii
Shunsuke HoriiShunsuke Horii
Shunsuke HoriiSuurist
 
Yasunori Futamura
Yasunori FutamuraYasunori Futamura
Yasunori FutamuraSuurist
 
Akiyasu Tomoeda
Akiyasu TomoedaAkiyasu Tomoeda
Akiyasu TomoedaSuurist
 
Takuya Tsuchiya
Takuya TsuchiyaTakuya Tsuchiya
Takuya TsuchiyaSuurist
 
Akira Imakura
Akira ImakuraAkira Imakura
Akira ImakuraSuurist
 

More from Suurist (17)

Hiroki Shigemune
Hiroki  ShigemuneHiroki  Shigemune
Hiroki Shigemune
 
Hiroaki Shiokawa
Hiroaki ShiokawaHiroaki Shiokawa
Hiroaki Shiokawa
 
Hidetomo Nagai
Hidetomo NagaiHidetomo Nagai
Hidetomo Nagai
 
Tatsuhiro Kishi
Tatsuhiro KishiTatsuhiro Kishi
Tatsuhiro Kishi
 
Hideitsu Hino
Hideitsu HinoHideitsu Hino
Hideitsu Hino
 
Tatsuya Yatagawa
Tatsuya YatagawaTatsuya Yatagawa
Tatsuya Yatagawa
 
Hiroyuki Sato
Hiroyuki SatoHiroyuki Sato
Hiroyuki Sato
 
Tetsunao Matsuta
Tetsunao MatsutaTetsunao Matsuta
Tetsunao Matsuta
 
Naoya Tsuruta
Naoya TsurutaNaoya Tsuruta
Naoya Tsuruta
 
Suurist Test Slide
Suurist Test SlideSuurist Test Slide
Suurist Test Slide
 
Akitoshi Takayasu
Akitoshi TakayasuAkitoshi Takayasu
Akitoshi Takayasu
 
Kohta Suzuno
Kohta SuzunoKohta Suzuno
Kohta Suzuno
 
Shunsuke Horii
Shunsuke HoriiShunsuke Horii
Shunsuke Horii
 
Yasunori Futamura
Yasunori FutamuraYasunori Futamura
Yasunori Futamura
 
Akiyasu Tomoeda
Akiyasu TomoedaAkiyasu Tomoeda
Akiyasu Tomoeda
 
Takuya Tsuchiya
Takuya TsuchiyaTakuya Tsuchiya
Takuya Tsuchiya
 
Akira Imakura
Akira ImakuraAkira Imakura
Akira Imakura
 

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
  • 3. 発表の流れ  はじめに • 連立一次方程式とクリロフ部分空間法  丸め誤差について • 収束速度と近似解精度  収束性の改善 • 誤差解析と漸化式の修正  数値実験  まとめ 2017/1/27 第20回数理人セミナー @ 早稲田大学 2 / 39
  • 4. はじめに  正則行列を係数に持つ連立一次方程式 • 厳密解は だが・・・  行列の特徴 • 大規模(数万~数千万次) • 疎(成分のほとんどは零) ➔ コンピュータによる数値計算が不可欠!  応用分野 • 流体力学,電磁場解析,熱問題,画像復元,etc… 2017/1/27 第20回数理人セミナー @ 早稲田大学 3 / 39
  • 5. 連立一次方程式の出現例  (自然)現象などに対する数値シミュ―レション 2017/1/27 第20回数理人セミナー @ 早稲田大学 シミュレーション の流れ cf. 高橋大輔著,数値計算,岩波書店,1996. 4 / 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
  • 10. アルゴリズム 2017/1/27 第20回数理人セミナー @ 早稲田大学  CG法 CR法  9 / 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
  • 12. アルゴリズム 2017/1/27 第20回数理人セミナー @ 早稲田大学  Bi-CG法 B-CR法  11 / 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
  • 14. 発表の流れ  はじめに • 連立一次方程式とクリロフ部分空間法  丸め誤差について • 収束速度と近似解精度  収束性の改善 • 誤差解析と漸化式の修正  数値実験  まとめ 2017/1/27 第20回数理人セミナー @ 早稲田大学 13 / 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
  • 16. 理想的な反復法(丸め誤差の観点から)  収束速度 • 丸め誤差の影響により残差が減少する速さは低下する • ひどいときは残差が停滞 or 発散して収束しない ➔ 残差の(理論的な)減少の速さを維持できる解法が望ましい  近似解精度 2017/1/27 第20回数理人セミナー @ 早稲田大学 15 / 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 固有値分布 成分:乱数
  • 18. 理想的な反復法(丸め誤差の観点から)  収束速度 • 丸め誤差の影響により残差が減少する速さは低下する • ひどいときは残差が停滞 or 発散して収束しない ➔ 残差の(理論的な)減少の速さを維持できる解法が望ましい  近似解精度 • 誤差 ⇔ 残差 「真」 ⇔ 漸化式から求まる残差 (条件数) (Residual gap) ➔ 要求精度をきちんと満たす解法が望ましい 2017/1/27 第20回数理人セミナー @ 早稲田大学 17 / 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
  • 22. 発表の流れ  はじめに • 連立一次方程式とクリロフ部分空間法  丸め誤差について • 収束速度と近似解精度  収束性の改善 • 誤差解析と漸化式の修正  数値実験  まとめ 2017/1/27 第20回数理人セミナー @ 早稲田大学 21 / 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
  • 24. 丸め誤差の影響(1/2)  近似解と残差を更新する漸化式  行列ベクトル積 • 局所的な誤差の上限 • ただし, であり, の項は無視する  のとき, は相対的に大きな誤差を含む  残差ノルムの急激な減少による大幅な桁落ち ➔ 収束速度の低下 2017/1/27 第20回数理人セミナー @ 早稲田大学 23 / 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
  • 30. 以上の考え方はCR法(Bi-CR法)など漸化式 の形式が異なる場合にも適用できる [2] Kensuke Aihara, Variants of the groupwise update strategy for short-recurrence Krylov subspace methods, Numer. Algorithms, 2016, doi:10.1007/s11075-016-0183-y. 29 / 39
  • 31. 対象とする漸化式  Bi-CG系統  行列ベクトル積を行う箇所が異なれば,丸め誤差の影響も 異なるはず 2017/1/27 第20回数理人セミナー @ 早稲田大学  Bi-CR系統 探索方向 近似解 残差 30 / 39
  • 32. 漸化式による違い  Bi-CG[’96 Sleijpen and van der Vorst] • 行列ベクトル積による局所誤差 • Residual gap  Bi-CR [2016 Aihara] • 行列ベクトル積による局所誤差 • Residual gap ➔ 補助ベクトルの振動を回避するようにグループ化! 2017/1/27 第20回数理人セミナー @ 早稲田大学 31 / 39
  • 33. 発表の流れ  はじめに • 連立一次方程式とクリロフ部分空間法  丸め誤差について • 収束速度と近似解精度  収束性の改善 • 誤差解析と漸化式の修正  数値実験  まとめ 2017/1/27 第20回数理人セミナー @ 早稲田大学 32 / 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
  • 40. まとめ  短い漸化式を用いるクリロフ部分空間法における丸め誤差 の影響について議論した • 残差ノルムの振動は収束速度や近似解精度に大きく影響 • 丸め誤差の蓄積・拡大を回避するには滑らかな減少が重要 ➔ 残差更新のグループ化について紹介  今後の展望 • 残差ノルムの振る舞いを滑らかにするスムージングの数値的 に安定な実装法を検討中 with Mr. Komeyama and Prof. Ishiwata – 残差ノルムが単調減少 – 実装がとても簡単 – パラメータなどの設定は不要 – 余分な計算コストはほぼかからない 2017/1/27 第20回数理人セミナー @ 早稲田大学 39 / 39