SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
はじめてのKrylov部分空間法
前原 貴憲 (@tmaehara)
線型計算の主なタスク
• 線型方程式(linear solver)
Ax = b
• 固有値問題(eigenvalue problem)
Ax = λx
Krylov部分空間法:現代線型計算の基本手法
• 行列・ベクトル積が効率的に計算可能な場合に強い
(eg., Aが疎行列,関数として与えられる,etc)
• 綺麗な理論評価 ⇒ 収束改善法などが明確
1/ 9
Krylov部分空間Kd [Krylov 1931]
Kd(A, b) := span{b, Ab, A2
b, . . . , Ad−1
b}
Krylov部分空間法とは:
1. 問題を小さい次元のKrylov部分空間に射影して
2. そちらで解いた解を元の空間に引き戻す手法の総称
主な特徴:
• 次元を増やすと誤差減(反復法的側面)
• 十分大きな次元で厳密解(直接法的側面)
• 実用的には誤差の累積が問題(cf., CG法冬の時代)
– 前処理・リスタートなどと組み合わせる
2/ 9
行列多項式による誤差・残差評価
Kd(A, b) := span{b, Ab, A2
b, . . . , Ad−1
b}
= {p(A)b : pはd − 1次多項式}
誤差・残差は行列多項式p(A)の解析で見積もる
適用例(逆行列): d反復目まででの誤差が小さい
⇐⇒ A−1
がd次多項式p(A)で近似しやすい
⇐⇒ (λi, 1/λi)がd次多項式で近似しやすい
slow fast
3/ 9
Krylov空間への射影
• Arnoldi反復(一般行列)
• Lanczos反復(対称行列)
(Arnoldi反復の特殊ケース)
4/ 9
Arnoldi反復
{b, Ab, A2
b, . . .}のGram-Schmidt直交化(QR分解)
⇒ AQd = QdHd + rde⊤
d (Arnoldi関係式)
(∥rd∥が十分小さくなったら打ち切る)
• Qd:直交(Kd(A, b)の正規直交基底を並べたもの)
• Hd:Hessenberg形(上三角+下副対角)
※A対称のとき自動的にH 三重対角(Lanczos反復)
○ Hessenberg形なので各種計算が簡単
× Gram-Schmidtなので数値誤差が累積する
5/ 9
Krylov空間法の具体例
線型方程式:GMRES / 固有値問題:Arnoldi法
射影・引戻し・前処理の組み合わせで大量の手法が存在
• 基本的な性質はどれも類似
• 細かい部分の良し悪しは問題依存
⇒ 問題に応じて手法選択が必要
• 紹介する2つはベースライン;最初に試すべき手法
6/ 9
線型方程式:GMRES (Generalized Minimum RESidual)
Step 0. 初期解x0 設定.r0 ← Ax0 − b
Step 1. AをKd(A, r0)に射影:A ≃ V ⊤
HV
Step 2. 残差最小解を計算:min ∥H ˜x − ˜b∥
Step 3. 引き戻す:x = V ⊤
˜x
収束定理:Aが対角化可能(S−1
AS = Λ)のとき
∥rd∥
∥r0∥
≤ κ(S) min
p
max
λi
|p(λi)|
※Step 2 はQR分解で可能(Hessenberg形なので軽い)
7/ 9
固有値問題:Arnoldi法
Step 0. 適当なx0 設定
Step 1. AをKd(A, x0)に射影:A ≃ V ⊤
HV
Step 2. H の固有対(˜λi, ˜ui)を計算(QR法等)
Step 3. 引き戻す:(˜λi, V ⊤
˜ui)
収束定理:Aが適当な条件を満たすとき
∥˜u − u∥ = O(κ(A) min
p
max
λi
|p(λi)|)
(雑な評価,H ˜u = λuとして見積もる)
※外側の固有値から順番に収束していく
8/ 9
おまけ:線型方程式の解法選択
• CG, CGS, CGR, PCG, BiCG, BiCGStab, QMR, TFQMR,
MINRES, GMRES, LGMRES, CAGMRES, LSQR,
SYMMLQ, Orthomin, . . .
• 扱う問題に応じて手法の振る舞いが違う
• 問題を固定するとマイナー改良で既存手法に勝てる
⇒ 毎月数個以上新しいKrylov系手法が登場
(行列計算の専門家でもフォローするのは不可能)
• 非専門家が使う側の心得
– 複数の手法で検証(CG系 + GMRES系)
– 複数の前処理(小規模問題で固有値分布を観察する)
9/ 9

Contenu connexe

Tendances

Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
Shuyo Nakatani
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
Shunji Umetani
 

Tendances (20)

第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
 
Priorに基づく画像/テンソルの復元
Priorに基づく画像/テンソルの復元Priorに基づく画像/テンソルの復元
Priorに基づく画像/テンソルの復元
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
 
Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化Tensor コアを使った PyTorch の高速化
Tensor コアを使った PyTorch の高速化
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリング
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
不老におけるOptunaを利用した分散ハイパーパラメータ最適化 - 今村秀明(名古屋大学 Optuna講習会)
 

Similaire à はじめてのKrylov部分空間法

Jokyonokai130531
Jokyonokai130531Jokyonokai130531
Jokyonokai130531
nwpmq516
 

Similaire à はじめてのKrylov部分空間法 (7)

第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)
 
210603 yamamoto
210603 yamamoto210603 yamamoto
210603 yamamoto
 
El text.tokuron a(2019).yamamoto190620
El text.tokuron a(2019).yamamoto190620El text.tokuron a(2019).yamamoto190620
El text.tokuron a(2019).yamamoto190620
 
Jokyonokai130531
Jokyonokai130531Jokyonokai130531
Jokyonokai130531
 
CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A (2015) 第10回 行列計算における高速アルゴリズム1
 
第9回 配信講義 計算科学技術特論A(2021)
第9回 配信講義 計算科学技術特論A(2021)第9回 配信講義 計算科学技術特論A(2021)
第9回 配信講義 計算科学技術特論A(2021)
 
El text.tokuron a(2019).yamamoto190627
El text.tokuron a(2019).yamamoto190627El text.tokuron a(2019).yamamoto190627
El text.tokuron a(2019).yamamoto190627
 

Plus de tmaehara

クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)
tmaehara
 
クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)
tmaehara
 
inversion counting
inversion countinginversion counting
inversion counting
tmaehara
 
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
 
simultaneous block diagonalization of matrices
simultaneous block diagonalization of matricessimultaneous block diagonalization of matrices
simultaneous block diagonalization of matrices
tmaehara
 

Plus de tmaehara (8)

ICPC国内予選F解説
ICPC国内予選F解説ICPC国内予選F解説
ICPC国内予選F解説
 
クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)
 
Slide
SlideSlide
Slide
 
クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)クリプタン帝国の暗号文を解読しよう(問1)
クリプタン帝国の暗号文を解読しよう(問1)
 
inversion counting
inversion countinginversion counting
inversion counting
 
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
simultaneous block diagonalization of matrices
simultaneous block diagonalization of matricessimultaneous block diagonalization of matrices
simultaneous block diagonalization of matrices
 

Dernier

Dernier (6)

2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

はじめてのKrylov部分空間法

  • 2. 線型計算の主なタスク • 線型方程式(linear solver) Ax = b • 固有値問題(eigenvalue problem) Ax = λx Krylov部分空間法:現代線型計算の基本手法 • 行列・ベクトル積が効率的に計算可能な場合に強い (eg., Aが疎行列,関数として与えられる,etc) • 綺麗な理論評価 ⇒ 収束改善法などが明確 1/ 9
  • 3. Krylov部分空間Kd [Krylov 1931] Kd(A, b) := span{b, Ab, A2 b, . . . , Ad−1 b} Krylov部分空間法とは: 1. 問題を小さい次元のKrylov部分空間に射影して 2. そちらで解いた解を元の空間に引き戻す手法の総称 主な特徴: • 次元を増やすと誤差減(反復法的側面) • 十分大きな次元で厳密解(直接法的側面) • 実用的には誤差の累積が問題(cf., CG法冬の時代) – 前処理・リスタートなどと組み合わせる 2/ 9
  • 4. 行列多項式による誤差・残差評価 Kd(A, b) := span{b, Ab, A2 b, . . . , Ad−1 b} = {p(A)b : pはd − 1次多項式} 誤差・残差は行列多項式p(A)の解析で見積もる 適用例(逆行列): d反復目まででの誤差が小さい ⇐⇒ A−1 がd次多項式p(A)で近似しやすい ⇐⇒ (λi, 1/λi)がd次多項式で近似しやすい slow fast 3/ 9
  • 6. Arnoldi反復 {b, Ab, A2 b, . . .}のGram-Schmidt直交化(QR分解) ⇒ AQd = QdHd + rde⊤ d (Arnoldi関係式) (∥rd∥が十分小さくなったら打ち切る) • Qd:直交(Kd(A, b)の正規直交基底を並べたもの) • Hd:Hessenberg形(上三角+下副対角) ※A対称のとき自動的にH 三重対角(Lanczos反復) ○ Hessenberg形なので各種計算が簡単 × Gram-Schmidtなので数値誤差が累積する 5/ 9
  • 7. Krylov空間法の具体例 線型方程式:GMRES / 固有値問題:Arnoldi法 射影・引戻し・前処理の組み合わせで大量の手法が存在 • 基本的な性質はどれも類似 • 細かい部分の良し悪しは問題依存 ⇒ 問題に応じて手法選択が必要 • 紹介する2つはベースライン;最初に試すべき手法 6/ 9
  • 8. 線型方程式:GMRES (Generalized Minimum RESidual) Step 0. 初期解x0 設定.r0 ← Ax0 − b Step 1. AをKd(A, r0)に射影:A ≃ V ⊤ HV Step 2. 残差最小解を計算:min ∥H ˜x − ˜b∥ Step 3. 引き戻す:x = V ⊤ ˜x 収束定理:Aが対角化可能(S−1 AS = Λ)のとき ∥rd∥ ∥r0∥ ≤ κ(S) min p max λi |p(λi)| ※Step 2 はQR分解で可能(Hessenberg形なので軽い) 7/ 9
  • 9. 固有値問題:Arnoldi法 Step 0. 適当なx0 設定 Step 1. AをKd(A, x0)に射影:A ≃ V ⊤ HV Step 2. H の固有対(˜λi, ˜ui)を計算(QR法等) Step 3. 引き戻す:(˜λi, V ⊤ ˜ui) 収束定理:Aが適当な条件を満たすとき ∥˜u − u∥ = O(κ(A) min p max λi |p(λi)|) (雑な評価,H ˜u = λuとして見積もる) ※外側の固有値から順番に収束していく 8/ 9
  • 10. おまけ:線型方程式の解法選択 • CG, CGS, CGR, PCG, BiCG, BiCGStab, QMR, TFQMR, MINRES, GMRES, LGMRES, CAGMRES, LSQR, SYMMLQ, Orthomin, . . . • 扱う問題に応じて手法の振る舞いが違う • 問題を固定するとマイナー改良で既存手法に勝てる ⇒ 毎月数個以上新しいKrylov系手法が登場 (行列計算の専門家でもフォローするのは不可能) • 非専門家が使う側の心得 – 複数の手法で検証(CG系 + GMRES系) – 複数の前処理(小規模問題で固有値分布を観察する) 9/ 9