• 検索結果がありません。

従来の計算アルゴリズムの問題点

第 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個であり一意に定 まるが,Lm1のときには直交化の際に与える初期ベクトルに依存して,求める直 交ベクトルが一意に定まらないため,それらのベクトルのテンソル積で構成した展開 項にも一意性がなくなる.従って,元のテンソルとの相対残差を最小にする展開項を 構成する展開ベクトルを求めたことにはならない[7].

本章では 3-OTPEの計算法を改良し,この問題を解決する.この問題は,特にテン

ソルの次元のサイズが異なる場合に生じると考えられるため,LMNテンソルを,

全ての次元のサイズが等しい場合には立方体テンソル,どれか1個でも次元のサイズ が異なる場合には非立方体テンソルと呼ぶことにして,数値実験により従来の3-OTPE と改良計算法の計算精度と計算時間について有効性を調べる.

4.3 3 階直交テンソル積展開の計算アルゴリズムの改良

4.2節で述べた問題を解決するために,3-OTPEの展開ベクトルの計算法を次のよう に変更する.

テンソルARI1I2I3,(I1L,I2M,I3N)について,従来法と同様にm個の1次 独立な展開ベクトルを求める.各次元のサイズのうち最も小さいサイズをm

) , , min(L M N

m とすると,I1の次元に対応する展開ベクトルu1,u2,,umI2の次 元 に 対 応 す る 展 開 ベ ク ト ル v1,v2,,vmI3の 次 元 に 対 応 す る 展 開 ベ ク ト ル

wm

w

w1, 2,, がそれぞれm個得られる.mNと仮定すると,I3の次元に対応する展 開ベクトルについてはw1,w2,,wN全てが求まる.第3章で示したように,第1展開 ベクトルu1,v1,w1は元のテンソルを最良近似する項を構成するベクトルで,これから 最も大きな展開係数が得られる.そこで,展開ベクトルが全て求まった次元の第 1展 開ベクトルw1を用いて,元のテンソルAとの縮約から得られるLM行列Fˆを

ˆ w1

FA (4.1)

により求め,この行列Fˆの特異値分解(SVD)[8, 9]を計算して,

VT

U

Fˆ  ˆ  ˆ (4.2)

と分解すると,行列Uˆ,Vˆ の列ベクトルuˆ1,uˆ2,,uˆLvˆ1,vˆ2,,vˆMはそれぞれ,L個,

M 個の展開ベクトルとなる.これらのベクトルはSVDの定義から互いに正規直交基底 であり,これを改良手法における展開ベクトルとする.この手順を3階直交テンソル積 展開の計算法の改良アルゴリズムとして,Algorithm 4.1に示す.

Algorithm 4.1: 3階直交テンソル積展開の改良計算法

(1) 第 2Algorithm 2.2m個の 1 次独立な展開ベクトルの組の計算により,

3 2 1 I I I

R

A ,(I1L,I2M,I3N)のmmin(L,M,N)項までの展開ベクトル を求める.

(2) (1)で求めた展開ベクトルのうち,L,M,Nのうち最も小さいサイズを持つ次元 に対応する第1展開ベクトルを使用して,元のテンソルAとの縮約を取り,行 列Fˆ を求める.(ここでは,mNの場合について記述する.)

ˆ . 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   である.uiuˆiとし て次元I1に対応する展開ベクトル,vivˆiとして次元I2に対応する展開ベクト ルとする.ただし,次元I3に対応する展開ベクトルは(1)で得られた展開ベクト ルw1,w2,,wNをそのまま利用する.

(4) 元の3階テンソルAと(3)の展開ベクトルのテンソル積との内積から展開係数

ijkを求める.

).

( i j k

ijkAuvw

 (4.5)

(Algorithm 4.1 終わり)

関連したドキュメント