第 4 章 3 階直交テンソル積展開の計算法の改良
4.2 従来の計算アルゴリズムの問題点
第2章で述べた3-OTPEの計算アルゴリズム(以下では,従来法3-OTPE,あるいは単 に従来法と呼ぶ)では,3 階テンソルA と,任意に選んだ正規直交初期ベクトル
) 0 ( ) 0 ( ) 0
( ,~ , ~
~
n n
n v w
u との縮約[4]によって得られる3個の行列について,それぞれべき乗法を 適用して展開ベクトルun,vn,wnを求める.
テンソルのサイズをLMNとしてL,M,Nの最小の値をmとすると,第 2 章の Algorithm 2.2に示したように3-OTPEの計算では,まずm個の1次独立な展開ベクト ルの組を求める.しかし,サイズL,M,Nのいずれか 1個,あるいは複数個がmより
大きい場合には残りの1次独立な展開ベクトルを得るために付加的な処理を行う必要 があった.即ち,Gram-Schmidtの直交化法による残項の計算である[1].
Gram-Schmidtの直交化法は,ベクトル空間上で線型独立なベクトルの組が与えられ
たとき,そこから直交するベクトルの組を作り出す一般的な手法である[5, 6].3-OTPE はこの手法を,mを超える次元のベクトル空間内でm個以降の展開ベクトルを求める のに利用している.その際,Lm1であれば残りのベクトルは1個であり一意に定 まるが,Lm1のときには直交化の際に与える初期ベクトルに依存して,求める直 交ベクトルが一意に定まらないため,それらのベクトルのテンソル積で構成した展開 項にも一意性がなくなる.従って,元のテンソルとの相対残差を最小にする展開項を 構成する展開ベクトルを求めたことにはならない[7].
本章では 3-OTPEの計算法を改良し,この問題を解決する.この問題は,特にテン
ソルの次元のサイズが異なる場合に生じると考えられるため,LMNテンソルを,
全ての次元のサイズが等しい場合には立方体テンソル,どれか1個でも次元のサイズ が異なる場合には非立方体テンソルと呼ぶことにして,数値実験により従来の3-OTPE と改良計算法の計算精度と計算時間について有効性を調べる.
4.3 3 階直交テンソル積展開の計算アルゴリズムの改良
4.2節で述べた問題を解決するために,3-OTPEの展開ベクトルの計算法を次のよう に変更する.
テンソルARI1I2I3,(I1L,I2 M,I3 N)について,従来法と同様にm個の1次 独立な展開ベクトルを求める.各次元のサイズのうち最も小さいサイズをm,
) , , min(L M N
m とすると,I1の次元に対応する展開ベクトルu1,u2,,um,I2の次 元 に 対 応 す る 展 開 ベ ク ト ル v1,v2,,vm ,I3の 次 元 に 対 応 す る 展 開 ベ ク ト ル
wm
w
w1, 2,, がそれぞれm個得られる.mNと仮定すると,I3の次元に対応する展 開ベクトルについてはw1,w2,,wN全てが求まる.第3章で示したように,第1展開 ベクトルu1,v1,w1は元のテンソルを最良近似する項を構成するベクトルで,これから 最も大きな展開係数が得られる.そこで,展開ベクトルが全て求まった次元の第 1展 開ベクトルw1を用いて,元のテンソルAとの縮約から得られるLM行列Fˆを
ˆ w1
F A (4.1)
により求め,この行列Fˆの特異値分解(SVD)[8, 9]を計算して,
VT
U
Fˆ ˆ ˆ (4.2)
と分解すると,行列Uˆ,Vˆ の列ベクトルuˆ1,uˆ2,,uˆL,vˆ1,vˆ2,,vˆMはそれぞれ,L個,
M 個の展開ベクトルとなる.これらのベクトルはSVDの定義から互いに正規直交基底 であり,これを改良手法における展開ベクトルとする.この手順を3階直交テンソル積 展開の計算法の改良アルゴリズムとして,Algorithm 4.1に示す.
Algorithm 4.1: 3階直交テンソル積展開の改良計算法
(1) 第 2 章 Algorithm 2.2 のm個の 1 次独立な展開ベクトルの組の計算により,
3 2 1 I I I
R
A ,(I1L,I2M,I3N)のmmin(L,M,N)項までの展開ベクトル を求める.
(2) (1)で求めた展開ベクトルのうち,L,M,Nのうち最も小さいサイズを持つ次元 に対応する第1展開ベクトルを使用して,元のテンソルAとの縮約を取り,行 列Fˆ を求める.(ここでは,m Nの場合について記述する.)
ˆ . w1
FA (4.3)
(3) 行列Fˆ を次のように特異値分解する.
ˆ . ˆ
ˆ U VT
F (4.4)
ここで,ˆ (ˆ ˆ ˆ )
2
1 u uL
u
U , ˆ (ˆ ˆ ˆ )
2
1 M
T v v v
V である.ui uˆiとし て次元I1に対応する展開ベクトル,vi vˆiとして次元I2に対応する展開ベクト ルとする.ただし,次元I3に対応する展開ベクトルは(1)で得られた展開ベクト ルw1,w2,,wNをそのまま利用する.
(4) 元の3階テンソルAと(3)の展開ベクトルのテンソル積との内積から展開係数
ijkを求める.
).
( i j k
ijk A u v w
(4.5)
(Algorithm 4.1 終わり)