導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルくりこみ群
坂井涼金沢大自然2018/8/22
第 1 回 HPC-Phys 勉強会
京都大学基礎物理学研究所湯川記念館
パナソニック国際交流ホール

1 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

背景: 複素位相問題 (符号問題)
物理量 O の期待値の表式∫
1⟨O⟩ =DU det D [U] O [U] e −SG [U] ,Z- U ，SG : ゲージ場，ゲージ作用- det D [U]: フェルミオン行列式- Z: 分配関数の中で，Boltzmann 因子は必ずしも実・正定符号ではない;

1det D [U] e −SG [U] ∈ C.
Z
超対称性模型，カイラルゲージ理論，有限密度系等において確率的なシミュレーションは破綻する
決定論的な手法を模索する強い動機→ テンソルネットワーク法
2 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルくりこみ群 (TRG) [M. Levin and C. P. Nave, Phys. Rev. Lett. 99 (2007)]
1 Z をテンソルネットワークとして表す

Z=

∑

∑

e −βH[s] →{s}· · · Tijkl Ty mit Txunm · · ·...,i,j,k,l,...

2 テンソルネットワークを粗視化する
粗視化(X)TT ···T →| ··· →{z · · · →} T
X 回

3 「有効テンソル」T (X) を縮約して Z を得る

Z≈

∑

Ti(X)
′j′i′j′i ′ ,j ′√ 決定論的な情報圧縮√ 符号問題と完全に無縁√ 系統誤差は 1 パラメータ (T (X) のサイズ) で制御できる.

3 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

分配関数をテンソルネットワークとして表す
2 次元 Ising 模型の分配関数:∑∑ ∏Z=e −βH[s] =e βsn sm ,{s}{s} ⟨n,m⟩

ただし， H [s] = −∑sn sm⟨n,m⟩

Z のテンソルネットワーク表現の作り方:
1 Boltzmann 因子を整数自由度で展開する∑
23∏- (例) 高温展開: e βsn sm = cosh β⟨n,m⟩ を

∏1inm
inm =0 (sn sm tanh β)

n に読み替え，古い自由度 s の和をとりきる

残った整数自由度をテンソルの添字とみなす
4 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

Z のテンソルネットワーク表現Z=∑ ∏{s} ⟨n,m⟩e βsn sm =∑∏{i}nただし， Tinm ino inp inq = cosh β

Tinm ino inp inq ,(√tanh β)inm +ino +inp +inq· 2δ(inm +ino +inp +inq ) mod 2,0
Z はスピン s の Tr → テンソル添字 i の Tr として計算できる!
他の多くの模型もテンソルネットワークとして表現できる∑
しかし，これは自由度の読み替えに過ぎず， {i} は簡単に()は実行できない (O 22V の計算！)→ テンソルネットワークを「粗視化」する
5 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルネットワークの粗視化
Eckart–Young の定理 [C. Eckart and G. Young, Psychometrika 1 (1936)] によると，特異値分解 (SVD) は行列の低ランク近似として最良 1 の方法．
D∑2Tijkl = M(jk)(li) =≈m=1Dcut∑†
U(jk)m σm Vm(li)†U(jk)m σm Vm(li)← 一番良い!

m=1- 1 ≤ i, j, k, l ≤ D- Dcut ≤ D2- σ1 ≥ σ2 ≥ · · · ≥ σD2 ≥ 0
1

近似前/後の行列の差の Frobenius ノルムが最小になることを「最良」とする．
6 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルネットワークの粗視化
Eckart–Young の定理 [C. Eckart and G. Young, Psychometrika 1 (1936)] によると，特異値分解 (SVD) は行列の低ランク近似として最良の方法．
Tijkl = M(jk)(li) ≈Dcut∑†
U(jk)m σm Vm(li)m=1

6 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルネットワークの粗視化
Eckart–Young の定理 [C. Eckart and G. Young, Psychometrika 1 (1936)] によると，特異値分解 (SVD) は行列の低ランク近似として最良の方法．

6 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルネットワークの粗視化
Eckart–Young の定理 [C. Eckart and G. Young, Psychometrika 1 (1936)] によると，特異値分解 (SVD) は行列の低ランク近似として最良の方法．

6 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルネットワークの粗視化
Eckart–Young の定理 [C. Eckart and G. Young, Psychometrika 1 (1936)] によると，特異値分解 (SVD) は行列の低ランク近似として最良の方法．

6 / 16導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

2 次元 Ising 模型の比熱，TRG vs. MCMC
21.8

TRG: Dcut=32
Monte Carlo

Specific Heat

1.6
1.4
1.2
10.8
0.6
0.4
0.2
0.3 0.32 0.34 0.36 0.38 0.4 0.42 0.44 0.46 0.48 0.5

βC=

β 2 ∂ 2 ln Z.
V ∂β 2V = 32 × 32.
β: 逆温度
Dcut : テンソルのボンド次元 (サイズ)，実験的に決める
7 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルくりこみ群の「実装」

テンソルくりこみ群のアルゴリズムはテンソルの分解とかけ算から成る「テンソルの」と言いつつ，実際に行なっているのは「行列と見たテンソルの」分解とかけ算である⇒ BLAS や LAPACK といったライブラリのルーチンを使って実装できる* 以降では，必要がない限り簡単のために Dcut = D とする
8 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群テンソルの特異値分解

Tijkl = M(jk)(li) ≈D∑†
U(jk)m σm Vm(li)m=1

これはテンソルの，というよりは行列 M の特異値分解である
行列の特異値分解には LAPACK の*gesvd が使える
D2 × D2 行列の特異値分解の計算量は D6 に比例する
9 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群テンソルのかけ算

この計算は，「テンソル 4 つのかけ算」として一度に実行すると
for(a=1; a¡=D; a++){· · · for(i=1; i¡=D; i++){· · · }}}}}}}}

で D 8 に比例する計算量がかかるかけ算の順番を工夫することで，行列-行列積の組み合わせと見なせる

10 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群テンソルのかけ算

括弧の中の行列-行列積の計算量はそれぞれ D 5 に比例する
括弧同士の行列-行列積の計算量は D 6 に比例する各部の行列-行列積では BLAS の*gemm が使える

D8 から D6 に，大きく計算量が減らせる！
10 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

テンソルくりこみ群の計算コスト

特異値分解- LAPACK の*gesvd が使えて，計算量は D6 に比例するテンソルのかけ算- BLAS の*gemm が使えて，計算量は D6 に比例する

体積依存性- 1 回の粗視化で体積が半分になるので，倍々ゲームの要領で簡単に大体積にアプローチできる: 10 回で V = 1024 × 1024，20 回で V = 220 × 220 ！
- つまり全体の計算量は D6 × log2 V に比例する

必要なメモリサイズ- 4 添字のテンソルを保持するので，D4 × (1 成分のサイズ [B])11 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

高次テンソルくりこみ群 (2 次元系での説明) [Z. Y. Xie et al., Phys. Rev. B86 (2012)]

12ユニタリ行列 (アイソメトリー) をネットワークに挿入する
T ，U ，U † のかけ算をとることで新しいテンソル T new を作る- T : テンソル- U (†) : ユニタリ行列- D: T のボンド次元
12 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

高次テンソルくりこみ群 (2 次元系での説明) [Z. Y. Xie et al., Phys. Rev. B86 (2012)]

12ユニタリ行列 (アイソメトリー) をネットワークに挿入する
T ，U ，U † のかけ算をとることで新しいテンソル T new を作る

Dcut ≤ D2 とボンド次元を切断することで，この手続きは近似になる
Dcut は T new のサイズを意味するパラメータで，この近似の精度を決める
12 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

高次テンソルくりこみ群 (2 次元系での説明) [Z. Y. Xie et al., Phys. Rev. B86 (2012)]

近似に使うユニタリ行列は，高次特異値分解 (HOSVD) によって作られる∑
R U L
Mxy x ′ y ′ =Sijkl Uxi
Uy j Ux ′ k UyD′ l .
i,j,k,l- M: 隣接する 2 つのテンソルの積- U R (L,U,D) : 右 (左，上，下) 特徴行列- S: コアテンソルと呼ばれるテンソル
13 / 16導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

高次テンソルくりこみ群 [Z. Y. Xie et al., Phys. Rev. B86 (2012)]
3 次元高次テンソルくりこみ群:

任意の次元に自明に拡張できる
通常の TRG と同様に，固有値分解 (dsyevd，zheevd) と行列-行列積(*gemm) を利用した実装に落とし込める

d 次元系での計算コストは△ 計算時間 ∝ D 4d−1 ,△ 必要なメモリサイズ ∝ D 2d .
フェルミオン (G 数) を含む系のための「G 高次テンソルくりこみ群」が我々によって考案されていて，原理的には 4 次元フェルミオン系も扱える
14 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

3 次元有限密度自由フェルミオン系の自由エネルギー [Prog. Theor. Exp. Phys. 2017 (2017)]
0.05

GHOTRG: Dcut=60.045
0.040.035
0.03

δ

0.025
0.02
0.015
0.01
0.005
0-0.00500.2 0.4 0.6 0.8

11.2 1.4 1.6 1.82µδ=ln Zexact − ln Z (Dcut ).
|ln Zexact |V = 8 × 8 × 8．
O (day) の計算で，〜5%の精度が実現できた．
(4 次元はまだ難しいが，) 3 次元では非自明な系にアプローチできるかも．
Ising 模型や Potts 模型の臨界温度を精密に求める試みはなされている．
15 / 16

導入，2 次元 Ising 模型の TN 表現

テンソルくりこみ群

高次テンソルくりこみ群

まとめ(高次) テンソルくりこみ群は，現状 3 次元以下の系では有力なアルゴリズムである
大変な部分の計算は全て BLAS や LAPACK に任せることができる
高次元系では，計算時間もさることながら D 2d というメモリサイズもかなり厳しいdD

D 2d × 8 B

222444816
32816
320.03 MB
0.5 MB
8 MB
128 MB
32768 MB = 32 GB
8838860 MB = 8 TB

→ 分散メモリ並列化が望まれる
16 / 16