JP2019046196A - 行列単純化装置、プログラム、および行列単純化方法 - Google Patents

行列単純化装置、プログラム、および行列単純化方法 Download PDF

Info

Publication number
JP2019046196A
JP2019046196A JP2017168998A JP2017168998A JP2019046196A JP 2019046196 A JP2019046196 A JP 2019046196A JP 2017168998 A JP2017168998 A JP 2017168998A JP 2017168998 A JP2017168998 A JP 2017168998A JP 2019046196 A JP2019046196 A JP 2019046196A
Authority
JP
Japan
Prior art keywords
matrix
vector
distance
low rank
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017168998A
Other languages
English (en)
Other versions
JP6810003B2 (ja
Inventor
崇元 佐々木
Takamoto Sasaki
崇元 佐々木
正樹 北原
Masaki Kitahara
正樹 北原
清水 淳
Atsushi Shimizu
淳 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017168998A priority Critical patent/JP6810003B2/ja
Publication of JP2019046196A publication Critical patent/JP2019046196A/ja
Application granted granted Critical
Publication of JP6810003B2 publication Critical patent/JP6810003B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】従来技術が対象としていた行列より大きなサイズの行列を対象として、少ない計算量で高速に、行列の低ランク化をすることのできる行列単純化装置等を提供する。【解決手段】行列単純化装置が、M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出するベクトル化部と、第1ベクトルおよび第2ベクトルを含む平面内で前記第2ベクトルを第1の方向に所定角回転させて得られる第3ベクトルと前記第1ベクトルとの距離である第1距離と、前記平面内で前記第2ベクトルを第2の方向に前記所定角回転させて得られる第4ベクトルと前記第1ベクトルとの距離である第2距離とを求め、前記第1距離および前記第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列を求める低ランク近似化部とを備える。【選択図】図7

Description

本発明は、行列単純化装置、プログラム、および行列単純化方法に関する。
データや物理現象に潜在する低ランク性に基づくデータ解析手法(以降,低ランクモデリング)が、コンピュータビジョン、画像処理、ゲノムデータ解析などの多くの分野で近年活発に研究されている。ここで、低ランク性とは、データや物理現象から導かれる行列Xについて、その階数rank(X)がXのサイズ(ここでは、行列Xの行数または列数のうちの小さい方)と比較して小さい性質である。低ランクモデリングでは、着目した行列の階数(rank) を最小化する数理計画問題を立式し、この問題の解を求めて所望の解析を実現する。
関数rankは不連続で微分不能、非凸であり、これに基づく計画問題はNP困難な組合せ最適化となる。このため、rank関数の代わりに核型ノルムを正則化する緩和アプローチが広く用いられる。核型ノルムはrank関数の凸包絡であるため、核型ノルムを最小化することで間接的に低ランク性を高められる。核型ノルムを含む最適化問題は、Alternating Direction Method of Multipliers(ADMM)等の1次法の反復計算で解を求められ、核型ノルムの近接写像である特異値閾値処理(Singular Value Thresholding,SVT)が繰り返し実行される。
しかし、SVT算出には計算量の大きい特異値分解(Singular Value Decomposition, SVD) の算出が必要なため、解析結果を得るのに多くの計算時間を要する。ここで、各解析法で立式される核型ノルム正則化問題を、(1)少数の大型行列を正則化する問題と、(2)多数の小型行列を正則化する問題に分類する。前者(1)の用途は、例えば、ロバスト主成分分析や、欠損地推定・補間や、オプティカルフロー推定や、ダイナミックMRI解析や、ゲノム解析等である。また、後者(2)の用途は、グラフ単純化や、偽色除去等である。
前者(1)の問題の場合には、計算量を抑えてSVTを高速化する手法がいくつか提案されている。J.F.Caiらは、行列を事前にComplete Orthogonal Decomposition(COD,完全直交分解)した後にニュートン法で反復更新し、SVDを行わずにSVTを求める高速SVT(Fast SVT,FSVT)を提案している。またT.H.Ohらは、大型行列を直交行列と小型のコア行列の積に近似することで、SVDの入力サイズを小さくして高速化する高速ランダム化SVT(Fast Randomized SVT,FRSVT)を提案している。ここに挙げるいずれの手法も、入力行列のサイズが大きい(行数および列数がそれぞれ500〜2000程度)ときに計算量を抑え、大幅な速度改善結果を示す。
一方で後者(2)の問題の場合、上記手法による高速化の効果は限定的であると考えられる。FSVTを用いると、入力が小型の場合、直接のSVD計算と比較してCODとニュートン法の計算量が大きいという問題がある。また、FRSVTを用いると、入力が小型の場合、コア行列の縮退効果が小さいために高速化できず、また近似法であるため計算誤差が大きいという問題がある。加えて、これらの手法は多数の行列を同時に処理するデータ並列のアプローチを取れず、近年の並列アーキテクチャの計算資源を活用できないという問題もある。
非特許文献1では、計算量を抑えながらデータ並列にSVTを算出する高速マルチプルSVT(Fast Multiple SVT,FMSVT)が提案されている。FMSVTでは、特異値を用いずにL∞,2混合ノルムで核型ノルムを表現することで、SVDが不要なSVT計算を実現し、計算量を削減している。加えて、データを並列に処理する並列化アルゴリズムを容易に実現でき、多数の行列について同時処理が可能である。
佐々木崇元,北原正樹,清水淳,「領域情報符号化における核型ノルム最適化の高速計算法」,第31回画像符号化シンポジウム(PCSJ2016),pp.140−141,2016年11月.
しかしながら、非特許文献1の技術では、対象とする行列のサイズが2×2に限られていた。より大きなサイズの行列に関して、高速にSVTを算出することのできる技術が求められている。
本発明は、上記の課題認識に基づいて行なわれたものであり、より大きなサイズの行列を対象として、少ない計算量で高速に、行列の低ランク化をすることのできる行列単純化装置、プログラム、および行列単純化方法を提供しようとするものである。
[1]本発明の一態様は、M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出する(ただし、Mは2以上の整数)ベクトル化部と、前記第1ベクトルおよび前記第2ベクトルを含む平面内で前記第2ベクトルを第1の方向に所定角回転させて得られる第3ベクトルと前記第1ベクトルとの距離である第1距離と、前記平面内で前記第2ベクトルを第2の方向に前記所定角回転させて得られる第4ベクトルと前記第1ベクトルとの距離である第2距離とを求め、前記第1距離および前記第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列を求める低ランク近似化部と、を具備する行列単純化装置である。
[2]本発明の一態様は、上記の行列単純化装置であって、前記入力行列YがM行2列であるときにはY=[y,y]とし、前記入力行列Yが2行M列であるときにはY=[y,y]とし、前記第1ベクトルをyとし、前記第2ベクトルをyとしたとき、前記低ランク近似化部は、前記所定角回転させる回転行列をRとして、[y,−y]=Y(Yの上にバー)として、内分比パラメータδ(0≦δ≦1)を用いて、前記入力行列Yと行列RY(Yの上にバー)との前記内分比パラメータδによる内分である内分行列と、振幅パラメータγと、に基づいて前記低ランク近似行列を求める。
[3]本発明の一態様は、上記の行列単純化装置であって、前記入力行列YがM行2列であるときにはY=[y,y]とし、前記入力行列Yが2行M列であるときにはY=[y,y]とし、前記第1ベクトルをyとし、前記第2ベクトルをyとしたとき、前記低ランク近似化部は、前記所定角回転させる回転行列Rを式(14)として前記第2ベクトルを回転させる。
なお、式(14)自体は、後の実施形態において記載する。
[4]本発明の一態様は、上記の行列単純化装置であって、前記入力行列Yの特異値をσ,σ(σ≧σ≧0)として、閾値をμとしたとき、前記低ランク近似化部は、前記行列Yの階数が2であり且つσ≠σの場合には、式(12)および式(13)により、式(12)の右辺を求めて前記低ランク近似行列とするものであり、且つ、前記低ランク近似化部は、式(15)の右辺の計算を行うことによって、式(12)内のRY(Yの上にバー)を求める。
なお、式(12)、式(13)、式(15)自体は、後の実施形態において記載する。
[5]本発明の一態様は、上記の行列単純化装置であって、前記低ランク近似化部は、「入力行列Yの階数が2且つσ≠σ」以外の場合には、式(19)の右辺を求めて前記低ランク近似行列とするものである。
なお、式(19)自体は、後の実施形態において記載する。
[6]本発明の一態様は、上記の行列単純化装置であって、前記ベクトル化部は複数の前記入力行列を基にそれぞれの前記入力行列の前記第1ベクトルおよび前記第2ベクトルを抽出するものであり、前記低ランク近似化部は、各入力行列から抽出された前記第1ベクトルおよび前記第2ベクトルを用いて前記低ランク近似行列を求めるものであり、単一命令列を、前記入力行列にそれぞれ対応する複数のデータに適用して並列処理を行うものである。
[7]本発明の一態様は、コンピューターを、M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出する(ただし、Mは2以上の整数)ベクトル化部と、前記第1ベクトルおよび前記第2ベクトルを含む平面内で前記第2ベクトルを第1の方向に所定角回転させて得られる第3ベクトルと前記第1ベクトルとの距離である第1距離と、前記平面内で前記第2ベクトルを第2の方向に前記所定角回転させて得られる第4ベクトルと前記第1ベクトルとの距離である第2距離とを求め、前記第1距離および前記第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列を求める低ランク近似化部と、として機能させるためのプログラムである。
[8]本発明の一態様は、M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出する(ただし、Mは2以上の整数)ベクトル化過程と、前記第1ベクトルおよび前記第2ベクトルを含む平面内で前記第2ベクトルを第1の方向に所定角回転させて得られる第3ベクトルと前記第1ベクトルとの距離である第1距離と、前記平面内で前記第2ベクトルを第2の方向に前記所定角回転させて得られる第4ベクトルと前記第1ベクトルとの距離である第2距離とを求め、前記第1距離および前記第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列を求める低ランク近似化過程と、を含む行列単純化方法である。
本発明によれば、より大きなサイズの行列を対象として、少ない計算量で高速に、行列の低ランク化をすることが可能となる。
本発明の実施形態を説明する図であり、空間ImYにおけるベクトルy,y,Ry,−Ryの関係を示すグラフである。 同実施形態における、閾値μに応じた係数γ(1−δ),γδの値を示すグラフである。 同実施形態における、閾値μの値に応じた値(SVT,下の式の通り)の軌跡を示すグラフである。 アルゴリズム1(M≧3の場合のSVT算出法)を示す概略図である。 アルゴリズム2(M=2の場合のSVT算出法)を示す概略図である。 アルゴリズム3(L個の行列Y,Y,・・・,YについてのSVT算出法)を示す概略図である。 第1実施形態による行列単純化装置の概略機能構成を示すブロック図である。 第1実施形態による行列単純化装置が処理する主要なデータの構成を示す概略図である。 第2実施形態による行列単純化装置の概略機能構成を示すブロック図である。 第3実施形態による行列単純化装置の概略機能構成を示すブロック図である。
次に、本発明の複数の実施形態について、図面を参照しながら説明する。以下において、全実施形態に共通する低ランクモデリングについて説明し、その後で各実施形態による装置等の具体的な構成を説明する。
[1.核型ノルム正則化に基づく低ランクモデリング]
本実施形態が対象とする核型ノルム正則化問題は、次に説明する通りの問題である。
行列X∈RM×N(ここで、Rは実数の集合。RM×Nは実数を要素とするM行N列の行列の集合。以下においても同様。)の特異値をσ(X),i=1,2,・・・,Kとする。ただし、K=min(M,N)であり、min()は引数の最小値を返す関数である。なお、以後において、M行N列の行列のサイズを単に「M×N」と表す場合がある。
このとき、核型ノルムは特異値の和として定義される。即ち、下の式(1)の通りである。
Figure 2019046196
核型ノルムは関数rank(X)の凸包絡であるため、核型ノルムを正則化することで低ランク性を推進できる。
本実施形態は、多数の小型行列が核型ノルムで正則化される最適化問題を取り扱う。典型的にはヒルベルト空間Χ(カイ)の変数χ∈Χ(カイ)に関する最適化問題であり、この問題は下の式(2)の形式を有する。
Figure 2019046196
式(2)で、目的関数の第2項は核型ノルムによる低ランク性の正則化関数であり、第1項はその他の正則化や忠実化関数である。関数Φ:Χ(カイ)→RM×Nは低ランク性を規約する行列の生成関数で、典型的には線形写像である。
例えば、グラフ単純化の問題では、M次元空間に埋め込まれたグラフG=(Υ,Ε)の頂点座標χ∈RM×|Υ|を変数とし、隣接辺のベクトルを2つ1組で行列に押し込め、Φ(χ)∈RM×2を作成する.この行列の階数はグラフの曲折回数に比例することに着眼し、核型ノルムの和を正則化することで、各頂点を局所線形に整列させている。なお、核型ノルムの和は、次の通り表される。
Figure 2019046196
背景技術において述べた「(2)多数の小型行列を正則化する問題」を解くためには、関数fと線形写像Φに応じたアルゴリズムを選択する。そのアルゴリズムとして、文献[佐々木崇元,谷田隆一,清水淳,グラフ信号の局所線形近似によるグラフ形状単純化,第15回情報科学技術フォーラム(FIT2016),第3分冊,pp.1−4,Sept.2016.]や、文献[S. Ono and I. Yamada, Color-line regularization for color artifact removal,IEEE Transactions on Computational Imaging, vol.2, no.3, pp.204-217, 2016.]では、関数fが微分可能あるいは近接写像計算可能(proximable)であるため、ADMMやPrimal Dual Splitting等の1次法を用いている。
なお、ここで「近接写像計算可能」の意味は次の通りである。即ち、関数gと正実数μ>0に対し、点y(太字)での近接写像proxμgは、下の式の様に定義される。
Figure 2019046196
核型ノルムを含むいくつかの関数については近接写像の効率的な計算法が知られており、そのような関数を近接写像計算可能であると呼ぶ。
上記の1次法は、最適解への収束列を生成する反復計算手続きで、各反復では関数の勾配や近接写像などの1次情報に基づき解を更新し、目的関数を最小化する。
(2)の「多数の小型行列を正則化する問題」の核型ノルム正則化関数については、補助変数Y=Φ(χ),i=1,2,・・・,Lを導入し、下の式で表されるg(Y,Y,・・・,Y)の近接写像を計算すれば良い(「Y」の「Y」は太字。以下においても同様。)。
Figure 2019046196
この右辺の和を構成する各要素は、独立に計算可能であり、下の式(3)が成立する。
Figure 2019046196
右辺各要素は、核型ノルムの近接写像で、特異値閾値処理(SVT)に等しい。核型ノルムは、上の式(3)において、次の様に表されている。
Figure 2019046196
SVTは、入力行列をY、閾値をμ>0として、以下の式(4)および式(5)で算出される。
Figure 2019046196
ここで、関数SVD(・)は、特異値分解(SVD)である。また、(・)は、入力の各要素を非負値にクリッピングするランプ関数である。
なお、本実施形態での特異値分解は、「thin SVD」である。即ち、Y=UΣVと分解した時、行列U,VはK=min(M,N)個の正規直交なベクトルから成り、(K+1)番目以降の特異ベクトルの算出は省略する(U∈RM×K,V∈RN×K)。また、行列ΣはK×K対角行列である。数値解析ソフトMATLAB(MathWorks社,米国)で記述する場合は、「[U,S,V]=svd(Y,'econ');」である。
即ち、関数g(Y,Y,・・・,Y)の近接写像(式(3))は、L回のSVT(式(4))により算出でき、それぞれのSVTでは小型行列を入力とするSVD算出(式(5))が必要である。1次法で反復演算する際、計算時間の多くは計算量の大きいSVD算出に費やされる。
さて、式(3)では、L個の行列Y,Y,・・・,Yの各々の間における依存関係が無いため、タスク並列処理が可能である。つまり、行列Y,Y,・・・,Yの各々についてL並列での処理が可能である。なお、扱う問題において各行列のサイズが小さい場合には、処理割当やメモリロードのオーバーヘッドが相対的に大きく、並列化による改善の効果が限定的である場合もある。
そこで、オーバーヘッドが少ない,データ並列処理について説明する。アルゴリズムをデータ並列化できれば、Single Instruction Multiple Data(STMD)等のデータ並列アーキテクチャを用いた実装により処理を高速化できる。しかし、SVDの算出は逐次的であり、且つ行列要素の参照位置や処理内容が入力Yに依存するため、行列間で共通に
計算できる処理が少なく、データ並列化は本質的に困難である。
以上より,多数の小型行列を低ランクに正則化するモデルは最適解を高速に得るのが困難で、その原因は、SVDの多大な計算量と並列化の難しさにある。
[Fast Multiple SVT]
ここでは、式(3)に示した多数のSVT計算を高速に算出するFMSVTを導出する。この手法は核型ノルムがある部分空間上のベクトルの距離で特徴付けられるという、幾何的性質の発見に基づいて導かれる。この性質により、特異値を用いずに核型ノルムを表現できる(後で、命題1,系2に記載)。また、SVDを用いずにSVTを表現できる(後で、命題3に記載)。そして、このSVTは、ほとんどが線形変換で記述できる(後で、命題4に記載)ため、データ並列なアルゴリズムを導ける。また、定理5、定理6では、SVT算出式を示す。そして、最後に並列化したアルゴリズムを示す。本実施形態で得られるSVT算出法では、式(4)、式(5)を用いた算出と比較して計算量が削減されており、かつデータ並列なアルゴリズムとして実行可能である。
従来技術(非特許文献1)が入力行列のサイズを2×2に限定していたのに対し、本実施形態は、入力行列のサイズをM×2および2×Nに拡張する。
Figure 2019046196
なお、近接写像の計算において上の式の通りであるから、入力が2×Nのサイズの行列のSVTの算出は、N×2のサイズの行列のSVT算出の前後に、転置処理を施すことで実現できる。従って以降では、縦長のM×2のサイズの行列のSVTについて説明する。
[1.1 核型ノルムの幾何的性質とSVT の新しい表現]
ここでは、FMSVT導出の中核となる、核型ノルムの幾何的性質とSVD不要なSVTの表現について説明する。本節で提示する表現についての証明は、後で記載(付録)する。以後において、単一の入力行列をY=[y,y]∈RM×2,y,y∈Rとし(つまり、y,yはそれぞれM次元の縦ベクトル)、その特異値をσ,σ(σ≧σ≧0)とする。
<命題1>:特異値和σ+σと特異値差σ−σは、下の式(6)に表す通りです。なお、式(6)において、複号同順である。
Figure 2019046196
式(6)におけるR(太字)は回転行列であり、この回転行列R(太字。以下においても同様。)は、像ImY上のベクトルを、原点回りにImYに沿ってπ/2[rad]回転させる。ただし回転方向の正負については、図1に示すように、yからyに最短で辿り着く方向を回転の正方向(第1の方向)とし、その反対方向を負方向(第2の方向)とする。
なお、上記の像ImYについて、次の通りである。即ち、行列A∈RM×Nに対し、部分空間ImA={Ax|x∈R}⊂RをAの像という.
また、上記の回転行列R(太字)に関して、任意のy∈ImYについて、下の式に示す条件(1)から条件(5)までが成立する。
Figure 2019046196
なお、命題1の証明を、後で付録Aにおいて説明する。命題1は、特異値の和や差が、ベクトルyと±Ryとの間の、L距離であることを表しており、それは、図1にも示す通りである。また、式(6)の中間式は、トレースや行列式で構成されるものであり、YYが2×2の行列であるため,容易に算出可能なものである。
図1は、空間ImYにおけるベクトルy,y,Ry,−Ryの関係を示すグラフである。ベクトルy,yは、行列Yをベクトル化したものである。θは、ベクトルyからベクトルyへの回転角である。なお、空間ImYにおいて、yからベクトルyに最短で辿りつく側の回転方向を正方向としている(図中で「+」で示す方向)。Rは回転角π/2[rad]の回転行列である。ベクトルRyとベクトル−Ryとを破線で示している。また、ベクトルyとベクトルRyとの距離(Lノルム)は、特異値σとσの和である。また、ベクトルyとベクトル−Ryとの距離(Lノルム)は、特異値σとσの差である。
命題1と式(1)(核型ノルムの定義式)とから、直ちに以下の系を求められる。
<系2>:核型ノルムは、下の式(7)で表現できる。なお、式(7)の左辺が核型ノルムの表記であり、右辺がその定義である。
Figure 2019046196
ただし、行列B∈R2M×2M(Bは太字。以下においても同様。)は、下の式(8)に示す通りである。
Figure 2019046196
Figure 2019046196
また、式(7)の右辺に現れる上の表記は、L∞,2混合ノルムである。L∞,2混合ノルムは、LノルムとLノルムの合成関数である。この合成関数の入力を、下の式の通りとする。
Figure 2019046196
上記の入力に対し、L∞,2混合ノルムの値、即ち上記合成関数が返す値は、下の式の通りである。
Figure 2019046196
また、式(7)における関数vecは、行列をベクトル化する関数である。つまり、関数vecは、入力行列Y=[y,y]∈RM×2を並べ替えて、下の式で表される列ベクトルを出力する線形変換である。
Figure 2019046196
なお、後の式(9)に現れるvecは、vecの逆変換である。つまり、Y=vec(vec(Y))である。
系2は,特異値を使わずに、線形変換Bvec(・)とL∞,2混合ノルムの合成で、核型ノルムを表現できることを表している。これは、SVDを用いることなく、核型ノルムの近接写像(即ちSVT)を表現できる可能性を示している。系2と、後の付録Bに記載の補題B1,B2とに基づいて、次の命題3が得られる。
<命題3>:行列YのSVTについて、下の式(9)が成立する。
Figure 2019046196
命題3の証明を、後の付録Bに記載する。
この命題3により、SVTを、線形変換Bvec(・)とL∞,2ノルムの近接写像の合成という新しい形式で表現することができた。なお、L∞,2ノルムの近接写像は、下の式で表されるものである。
Figure 2019046196
この近接写像は非線形であるが、入力依存の対角行列による線形変換として記述することができる。
<命題4>:下の式で表されるxに対して、その下の式(10),式(11)が成立する。
なお、x=0のとき、k=(0/0)0となるが、例外的にこのときは、k=0とする。
Figure 2019046196
Figure 2019046196
この命題4の証明は、Moreau直交分解とL1,2混合ノルム球への射影に基づくものである。この証明を、後の付録Cに記載する。
以上により、係数k,kの算出を除いて、SVTは全て線形変換で表現できることを明らかにした。次のセクションでは、上記の式を展開し、SVT算出式およびアルゴリズムについて説明する。
[1.2 SVT算出法]
前セクションで説明した命題から、SVTを算出する下記の定理5が得られる。
<定理5>:rankY=2、且つσ≠σのとき、下の式(12)が成立する。
Figure 2019046196
上記の定理5は、式(9)のprox計算を式(10)で展開し、さらに式(6)と式(11)とを適用して得られる。定理5は、単純な式変形と、場合分けとで確認できるものであり明らかであるので、証明を省略する。
定理5は、SVTを、入力行列Yと行列RY(Yの上にバー)との線形結合で算出できることを表している。
式(12)における結合係数γ(1−δ)およびγδは、振幅パラメータγと内分比パラメータδから構成され、いずれもSVTの閾値μの関数である.係数γ(1−δ),γδの関数形を、図2にプロットして示す。
図2は、閾値μに応じた係数γ(1−δ),γδの値を示すグラフである。γ(1−δ)のグラフを実線で示し、γδのグラフを破線で示している。
図示するように、μ=0のとき、γ(1−δ)=1である。0≦μ≦σにおいてγ(1−δ)はリニアに変化し、μ=σのときγ(1−δ)=σ/(σ+σ)である。また、σ≦μ≦σにおいてγ(1−δ)はリニアに変化し、μ=σのときγ(1−δ)=0である。そして、σ≦μにおいてγ(1−δ)=0である。
また、μ=0のとき、γδ=0である。0≦μ≦σにおいてγδはリニアに変化し、μ=σのときγδ=σ/(σ+σ)である。また、σ≦μ≦σにおいてγδはリニアに変化し、μ=σのときγδ=0である。そして、σ≦μにおいてγδ=0である。
図2に示した係数に基づき、μの増加に伴うSVTの軌跡を図3に示す。図3は、μの値に応じた値(SVT,下の式の通り)の軌跡を示すグラフである。
Figure 2019046196
Figure 2019046196
つまり、行列YのSVTである行列Z(M行2列)をベクトル化したものが、ベクトルz,zである。
図3は、ベクトルz,z(zは太字)を上の式のように定義したときの、ImY上のベクトルz,zの軌跡を表している。図示するように、0<μ≦σでは、YとRY(Yの上にバー)の内分となる。また、σ<μ<σでは振幅が線形に減少し、μ≧σではゼロ行列O(太字)となる。
定理5を適用するには、π/2[rad]回転行列Rによる変換RY(Yの上にバー)の具体的な値を求める必要がある。この求め方を、M≧3の場合とM=2の場合の2通りについて説明する。
[M≧3の場合] 回転行列Rに関して先に説明した条件(1)から条件(5)までのすべての条件が満たされる必要がある。また、回転行列Rは、命題1で述べた回転方向への回転の作用を有するものである必要がある。式(14)に示す行列Rは、これらの条件を満たすものである。なお、式(14)において、「det X」は、行列Xの行列式である。
Figure 2019046196
ただし、式(14)によって行列Rを算出してから行列積RY(Yの上にバー)を求める手順を撮った場合、O(M)のオーダーの計算量が必要である。そこで、計算順序を変えて、下の式(15)による計算を行うようにする。
Figure 2019046196
式(15)による計算では、内積を先に展開する手順をとることができる。これにより、計算量のオーダーをO(M)に削減できる。さらに、式(12)について、式(15)を適用してYの積で括る形とすると、下の式(16)に変形できる。
Figure 2019046196
この式(16)によって計算することにより、さらに計算量を削減することができる。
[M=2の場合] 符号(正、負、0)に応じて+1,−1,0のいずれかの値をとる符号関数sgnを用いると、下の式(17)が成立する。
Figure 2019046196
即ち、行列要素の入れ替えと、符号反転とによってRY(Yの上にバー)を算出できる。つまり、下の式(18)の通りRY(Yの上にバー)を算出できる。
Figure 2019046196
以上、定理5に基づいてSVTを求める方法を説明した。なお、この定理は、rankY=2且つσ≠σという条件を前提としている。この条件が満たされない場合には、μにより定まる振幅をYに乗じて、下の定理6の通り算出できる。
<定理6>:「rankY=2且つσ≠σ」以外のとき、下の式(19)の通りである。
Figure 2019046196
なお、式(19)に含まれる下の表現は、行列Yのフロベニウスノルムであり、即ち行列Yの要素の2乗和平方根である。
Figure 2019046196
定理6の証明は、後の付録Dに記載する。以上説明したように、定理5および定理6を用いてSVTを算出するためには、行列Yの階数rankYと、特異値σ,σに基づいて適切に場合分けする必要がある。階数rankYについては、Yがゼロ行列O(太字)であるか否か、またdetYYが0であるか否かにより、下の表1の通り判別できる。また特異値については、式(6)の中間式よりσ,σを算出すれば良い。
Figure 2019046196
以上の説明に基づき、次に述べるアルゴリズム1および2によって、SVTを算出することができる。アルゴリズム1はM≧3の場合に適用可能な手順である。アルゴリズム2はM=2の場合に適用可能な手順である。これらのアルゴリズムにおいて、場合分けのために必要なdetYY,σ−σや、係数γ,δはすべて内積y を用いて算出している。
図4は、アルゴリズム1を示す概略図である。このアルゴリズム1は、疑似的なコードによって記述されている。アルゴリズム1は、M≧3の場合のSVT算出法である。以下、この図に沿ってアルゴリズムを説明する。
本アルゴリズムにおいて、入力は、M×2(M行2列)の行列Y、およびSVTの閾値μである。Yの1列目、2列目の列ベクトル(M次元)をそれぞれy,y(yは太字。以下においても同様。)と表す。また、μ>0である。また、出力は、閾値μにより算出されたSVTである。出力される行列をZ(太字)と表す。
以下では、図の左側に付した行番号を参照しながら説明する。
第1行のif文の条件節において、行列Yが、M×2のサイズのゼロ行列であるか否かを判定する。これは、Yの階数が0であるか否かの判定と等価である。
第2行は、第1行の条件が真である場合に実行される処理であり、M×2のサイズのゼロ行列をZに代入する。この場合、処理を終了してZを出力する。
第3行は、第1行の条件が偽である場合に対応するelse節であることを表す。このelse節は第17行まで続く。
第4行から第6行までは、第3行からのelse節の一部である。
第4行において、変数a,b,cへの代入が行われる。変数aには、y を代入する。変数bには、y を代入する。変数cには、y を代入する。言うまでもなく、変数a,b,cにはそれぞれスカラー値が代入される。
第5行において、変数dに(ac−b)の値を代入する。また、変数eに、dの値の平方根を代入する。第5行の「%」以後はコメントであり、実行コードではない。以後においても同様である。第5行のコメントで示すように、変数dに代入された値は、行列YYの行列式の値である。
第6行において、変数fに、a+cの値を代入する。
第7行のif文の条件節において、d=0であるか否かを判定する。これは、Yの階数が1であるか否かの判定と等価である。
第8行は、第7行の条件が真である場合に実行される処理であり、(1−μ/SQRT(f))をYに乗じた行列をZに代入する。この場合、処理を終了してZを出力する。なお、ここで、SQRT()は、引数の平方根を返す関数である。
第9行は、第7行の条件が偽である場合に対応するelse節であることを表す。このelse節は第17行まで続く。
第10行において、変数wに、SQRT(f−2e)の値を代入する。コメントに示すように、変数wには、特異値σとσの差が代入される。
第11行のif文の条件節において、wの値が0であるか否かを判定する。これは、特異値σとσとが等しいか否かの判定と等価である。
第12行は、第11行の条件が真である場合に実行される処理であり、(1−((SQRT(2)・μ)/SQRT(f)))をYに乗じた行列をZに代入する。この場合、処理を終了してZを出力する。
第13行は、第11行の条件が偽である場合に対応するelse節であることを表す。このelse節は第17行まで続く。
第14行において、変数wに、SQRT(f+2e)の値を代入する。コメントに示すように、変数wには、特異値σとσの和が代入される。
第15行において、変数σに、(w−w)/2の値を代入する。
第16行において、変数γに、(1−((μ−σ/w))の値を代入する。また、変数δに、min(μ,σ)/wの値を代入する。前述の通り、γは振幅パラメータであり、δは内分比パラメータである。
そして、第17行において、下の式で示される行列をZに代入する。そして、処理を終了してZを出力する。
Figure 2019046196
以上、説明したように、SVDを用いず、少ない計算量でSVTを算出することができる。
図5は、アルゴリズム2を示す概略図である。このアルゴリズム2も、疑似的なコードによって記述されている。アルゴリズム2は、M=2の場合のSVT算出法である。以下、この図に沿ってアルゴリズムを説明する。
本アルゴリズムにおいて、入力は、2×2(2行2列)の行列Y、およびSVTの閾値μである。Yの1列目、2列目の列ベクトル(2次元)をそれぞれy,yと表す。また、行列Yの各要素を、行番号および列番号をこの順で並べたサフィックス(添え字)を用いて、y11,y12,y21,y22で表す。また、μ>0である。また、出力は、閾値μにより算出されたSVTである。出力される行列をZ(太字)と表す。
以下では、図の左側に付した行番号を参照しながら説明する。
第1行のif文の条件節において、行列Yが、2×2のサイズのゼロ行列であるか否かを判定する。これは、Yの階数が0であるか否かの判定と等価である。
第2行は、第1行の条件が真である場合に実行される処理であり、2×2のサイズのゼロ行列をZに代入する。この場合、処理を終了してZを出力する。
第3行は、第1行の条件が偽である場合に対応するelse節であることを表す。このelse節は第17行まで続く。
第4行から第6行までは、第3行からのelse節の一部である。
第4行において、変数a,cへの代入が行われる。変数aには、y を代入する。変数cには、y を代入する。
第5行において、変数dにYの行列式の値を代入する。また、変数eに、dの値の絶対値を代入する。
第6行において、変数fに、a+cの値を代入する。
第7行のif文の条件節において、d=0であるか否かを判定する。これは、Yの階数が1であるか否かの判定と等価である。
第8行は、第7行の条件が真である場合に実行される処理であり、(1−μ/SQRT(f))をYに乗じた行列をZに代入する。この場合、処理を終了してZを出力する。
第9行は、第7行の条件が偽である場合に対応するelse節であることを表す。このelse節は第17行まで続く。
第10行において、変数wに、SQRT(f−2e)の値を代入する。コメントに示すように、変数wには、特異値σとσの差が代入される。
第11行のif文の条件節において、wの値が0であるか否かを判定する。これは、特異値σとσとが等しいか否かの判定と等価である。
第12行は、第11行の条件が真である場合に実行される処理であり、(1−((SQRT(2)・μ)/SQRT(f)))をYに乗じた行列をZに代入する。この場合、処理を終了してZを出力する。
第13行は、第11行の条件が偽である場合に対応するelse節であることを表す。このelse節は第17行まで続く。
第14行において、変数wに、SQRT(f+2e)の値を代入する。コメントに示すように、変数wには、特異値σとσの和が代入される。
第15行において、変数σに、(w−w)/2の値を代入する。
第16行において、変数γに、(1−((μ−σ/w))の値を代入する。また、変数δに、min(μ,σ)/wの値を代入する。
そして、第17行において、下の式で示される行列をZに代入する。そして、処理を終了してZを出力する。
Figure 2019046196
ここで本実施形態のアルゴリズムによるSVT算出のための計算量について考察する。
式(4)および式(5)の通りSVDを用いるSVT算出法(従来技術)では、SVDを求めるために24M+160回、閾値処理に2回、行列積を求めるために6M+4回の浮動小数点演算が必要である。即ち合計で、30M+166回の浮動小数点演算が必要である。
本実施形態のアルゴリズム1による方法では12M+26回、アルゴリズム2による方法では36回の浮動小数点演算でSVTを算出することができる。つまり、本実施形態による計算量は、従来技術の16%〜40%程度である。即ち、本実施形態により計算量を従来技術よりも60%〜84%削減することができる。
[1.3 行列間並列化]
次に、行列間での処理を並列化して実施する方法について説明する。つまり、上記のアルゴリズムを用いながら、L個の行列入力Y,Y,・・・,YのSVTを同時に求める方法について説明する。アルゴリズム1,2の処理の大半は,ベクトルや行列に関する基本演算(和、積、定数倍)より構成され,並列化の効果が高い。そこでL個の行列Y,Y,・・・,Yに対してデータ並列にSVTを算出するため、アルゴリズム3を用いる。なお、このアルゴリズム3を、Fast Multiple SVT(FMSVT)と呼ぶ。
FMSVTの計算量は,単純にアルゴリズム1,2の計算量のL倍である。
図6は、アルゴリズム3を示す概略図である。このアルゴリズム3も、疑似的なコードによって記述されている。アルゴリズム3は、FMSVTを用いている。以下、この図に沿ってアルゴリズムを説明する。
本アルゴリズムにおいて、入力は、L個の行列Y,Y,・・・,Y、およびSVTの閾値μである。また、出力は、L個の行列Z,Z,・・・,Zである。Z,Z,・・・,Zは、それぞれ、入力行列Y,Y,・・・,YのSVTである。
以下では、図の左側に付した行番号を参照しながら説明する。
第1行において、各i(i=1,2,・・・,L)について、アルゴリズム1あるいは2にしたがって、変数値a(i),b(i),c(i),d(i),e(i),f(i),w (i),w (i),σ (i)を算出する。
第2行において、各i(i=1,2,・・・,L)について、第3行から第10行までに示す処理を実行する。つまり、入力される行列Yに基づく条件により分岐し、分岐先において変数γ(i)およびδ(i)に値を代入する。
第3行のif文の条件節において、Yがゼロ行列であるか否かを判定する。つまり、Yの階数が0であるか否かを判定する。
第4行は、第3行の条件が真である場合に実行される処理であり、γ(i)およびδ(i)にそれぞれ0を代入する。そして、γ(i)およびδ(i)への代入後に、第11行の処理に移る。
第5行のelse ifは、第3行の条件が偽である場合に、別の条件判定を行うためのものである。第5行のif文の条件節において、d(i)が0であるか否かを判定する。つまり、行列Yの階数が1であるか否かを判定する。
第6行は、第5行の条件が真である場合に実行される処理であり、γ(i)に、(1−(μ/SQRT(f(i))))の値を代入する。また、δ(i)に0を代入する。そして、γ(i)およびδ(i)への代入後に、第11行の処理に移る。
第7行のelse ifは、第5行の条件が偽である場合に、別の条件判定を行うためのものである。第7行のif文の条件節において、w (i)が0であるか否かを判定する。
第8行は、第7行の条件が真である場合に実行される処理であり、γ(i)に、(1−((SQRT(2)・μ)/SQRT(f(i))))の値を代入する。また、δ(i)に0を代入する。そして、γ(i)およびδ(i)への代入後に、第11行の処理に移る。
第9行のelseは、第7行の条件が偽である場合に対応する。この場合の処理は、第10行に記述されている。
そして、第10行において、て、γ(i)およびδ(i)にそれぞれ値を代入する。γ(i)には、(1−(μ−σ (i)/w (i)の値を代入する。そして、δ(i)には、min(μ,σ (i))/w (i)の値を代入する。そして、第11行の処理に移る。
条件分岐の結果に応じてγ(i)およびδ(i)の値が設定された状態で、第11行の処理を実行する。
第11行においては、各i(i=1,2,・・・,L)について、アルゴリズム1(M≧3の場合)あるいはアルゴリズム2(M=2の場合)の第17行の処理を実行する。その処理により求められたZを、Ziとする。
そして、処理を終了し、行列Z,Z,・・・,Zを出力する。
アルゴリズム3では、上述したように、係数γ(i),δ(i)の参照のみを条件分岐させ、その他の処理をインデクスi=1,2,・・・,L間で共通化する。また、異なるiの間でデータが相互に干渉しあわない。これにより、係数γ(i),δ(i)を算出するために費やす4L回の浮動小数点演算以外の処理を、すべて並列化できる。具体的には、M≧3では93.5%以上、M=2では88.9%の浮動小数点演算をデータ並列に処理することができる。
また、アルゴリズム3はSIMD型アーキテクチャとの親和性が特に高い。SIMDは、「single instruction multiple data」の略であり、単一の命令列を複数のデータに適用する処理形態である。SIMDでは条件分岐をマスク演算で実現でき、係数γ(i),δ(i)の算出もデータ並列化することが可能である。
なお、処理を並列化する手法自体には様々なものがあり、アルゴリズム3を実施するために適宜並列化手法を選択して用いればよい。
[2. 第1実施形態]
次に、第1実施形態による装置構成等について説明する。
図7は、本実施形態による行列単純化装置の概略機能構成を示すブロック図である。図示するように、行列単純化装置1は、入力部11と、ベクトル化部12と、低ランク近似化部15と、出力部16とを含んで構成される。行列単純化装置1が有する各部の機能は、例えば、電子回路を用いて構成される。また、各部は、必要に応じてデータを記憶するための記憶部を内部に備える。この記憶部は、半導体メモリーや磁気ハードディスク装置などといった記憶手段を用いて実現される。また、各部の機能は、コンピューターとプログラムとで実現されてもよい。
行列単純化装置1は、M行2列(ただし、M≧2)または2行M列の行列を入力し、その行列を低ランク近似化し、低ランク近似化した行列を出力する装置である。
入力部11は、M行2列または2行M列の行列のデータを外部から取得する。なお、Mは、2以上の整数である。この行列の要素は、数値(スカラー値)である。入力部11は、必要に応じて、入力した行列を転置する。つまり、後段のベクトル化部12および低ランク近似化部15がM行2列または2行M列のいずれか一方の形式の行列のみを処理するように構成されているときであって、入力された行列がその形式に合わないとき(つまり、縦と横が逆)に、入力部11は、入力された行列を転置する。これにより、行列単純化装置1は、M行2列または2行M列のいずれの行列をも処理することができるようになる。
以下において、ベクトル化部12と低ランク近似化部15とは、M行2列の行列を処理するものとして説明する。但し、これが2行M列の行列を処理するものであってもよく、本質的な処理内容は変わらない。
ベクトル化部12は、M行2列の行列(Yとする)をベクトル化する。ここでのベクトル化とは、M行2列の行列Yを、2個のM次元の列ベクトルy(第1ベクトル)とy(第2ベクトル)とに分割して出力する処理である。つまり、Y=[y,y]である。ベクトル化部12は、これらのベクトルy,yを、低ランク近似化部15に渡す。
つまり、ベクトル化部12は、M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出する。
低ランク近似化部15は、ベクトル化部12から渡されたベクトルy,yに基づき、行列Yを低ランク近似化する。言い換えれば、低ランク近似化部15は、行列Yを単純化する。具体的には、低ランク近似化部15は、Mの値に応じて、前述のアルゴリズム1または2のいずれかを用いて、行列Yの低ランク近似化を行う。具体的には、M≧3の場合には、低ランク近似化部15は、アルゴリズム1を用いる。また、M=2の場合には、低ランク近似化部15は、アルゴリズム2を用いる。これにより、低ランク近似化部15は、低ランク化された行列Zを出力する。
つまり、低ランク近似化部15は、y(第1ベクトル)およびy(第2ベクトル)を含む平面(像ImY)内でyを正方向に所定角(π/2)回転させて得られるRy(第3ベクトル)と第1ベクトルとの距離である第1距離と、平面内で前記第2ベクトルを負方向に前記所定角回転させて得られる−Ry(第4ベクトル)と前記第1ベクトルとの距離である第2距離とを求め、第1距離および第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列Zを求める。ここで、角の正方向とは、ベクトルyからベクトルyまで最短で辿り着ける回転の方向である。
また、低ランク近似化部15は、入力行列YがM行2列であるときにはY=[y,y]とし、入力行列Yが2行M列であるときにはY=[y,y]とし、次の方法により低ランク近似行列Zを求める。即ち、低ランク近似化部15は、所定角回転させる回転行列をRとして、[y,−y]=Y(Yの上にバー)として、内分比パラメータδ(0≦δ≦1)を用いて、前記入力行列Yと行列RY(Yの上にバー)との内分比パラメータδによる内分である内分行列に基づいて低ランク近似行列Zを求める。この「内分行列」を式で表すと、(1−δ)Y+δRY(Yの上にバー)である。そして、さらに、振幅パラメータγを乗じて、Z=γ(1−δ)Y+γδRY(Yの上にバー)が得られる。つまり、低ランク近似化部15は、さらに、振幅パラメータγにも基づいて低ランク近似行列Zを求める。
また、低ランク近似化部15は、所定角回転させる回転行列Rを前に示した式(14)として第2ベクトルを回転させるものである。
また、低ランク近似化部15は、入力行列Yの特異値をσ,σ(σ≧σ≧0)としたとき、行列Yの階数が2であり且つσ≠σの場合には、式(12)および式(13)により、式(12)の右辺を求めて低ランク近似行列Zとするものである。且つ、低ランク近似化部15は、式(15)の右辺の計算を行うことによって、式(12)内のRY(Yの上にバー)を求める。なお、式(12)、式(13)、式(15)に関しては、前に示した通りである。
また、低ランク近似化部15は、「入力行列Yの階数が2且つσ≠σ」以外の場合には、式(19)の右辺を求めて低ランク近似行列とする。式(19)自体は、前に示した通りである。
出力部16は、低ランク近似化部15によって求められた行列Zのデータを外部に出力する。
つまり、行列単純化装置1は、入力される行列Yを低ランク単純化し、その結果である行列Zを出力する。
なお、入力部11が行列の転置を行った場合、出力部16は、低ランク近似化部15によって得られた行列Zを再び転置してから出力する。これにより、入力される行列のサイズ(行および列の数)と、出力される行列のサイズとを合わせることができる。
次に、行列単純化装置1が扱う行列およびベクトルのデータの構造について説明する。
図8は、行列単純化装置1が処理する主要なデータの構成を示す概略図である。同図(a)は、入力行列Yのデータ構成を示す。ここでは、M行2列の場合の行列を示している。この図では行番号と列番号を付して示しており、行列Yの要素であるyij(i=1,・・・,M、j=1,2)が各領域に格納される。なお、2行M列の行列の場合には、行と列の方向が入れ替わる。同図(b)は、行列Yを基にベクトル化されたベクトルyおよびyのデータ構成を示す。ベクトルyおよびyは、それぞれ、M次元の列ベクトルである。行列Y(同図(a))の第1列がベクトルyに対応し、第2列がベクトルyに対応する。同図(c)は、出力行列Zのデータ構成を示す。行列Zについても、M行2列の場合の行列を示している。行列Zの要素であるzij(i=1,・・・,M、j=1,2)が各領域に格納される。
[3. 第2実施形態]
次に、第2実施形態による装置構成等について説明する。なお、前実施形態において既に説明した事項については説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
図9は、本実施形態による行列単純化装置の概略機能構成を示すブロック図である。図示するように、行列単純化装置2は、入力部21と、ベクトル化部22−1,22−2,・・・,22−Lと、低ランク近似化部25−1,25−2,・・・,25−Lと、出力部26とを含んで構成される。
行列単純化装置2は、第1実施形態の行列単純化装置1と同様の処理によって、入力行列Yを低ランク化して出力するものである。ただし、行列単純化装置2は並列処理のための機構を有しており、L個(Lは自然数)の入力行列を同時に処理することができる。行列単純化装置2は、前述のアルゴリズム3を用いるものであり、例えばSIMDによる処理を行う。つまり、行列単純化装置2は、アルゴリズム3を実現する命令列を、L個のデータ列(入力行列Y,・・・,Y)に適用する形態をとる。言い換えれば、行列単純化装置2は、単一命令列を、入力行列にそれぞれ対応する複数のデータに適用して並列処理を行うものである。
入力部21は、M行2列または2行M列の、L個の行列Y,・・・,Yのデータを外部から取得する。また、第1実施形態における入力部11と同様に、入力部21は、必要に応じて入力された各行列の転置を行う。そして、入力部21は、行列Y,・・・,Yのデータを、それぞれ、ベクトル化部22−1,22−2,・・・,22−Lに渡す。
ベクトル化部22−1,22−2,・・・,22−Lは、入力部21から、それぞれ、行列Y,Y,・・・,Yのデータを受け取る。そして、ベクトル化部22−1,22−2,・・・,22−Lは、その行列をベクトル化する。つまり、ベクトル化部22−i(i=1,・・・,L)は、行列Yのデータをベクトル化し、ベクトルy1 (i),y (i)を出力する。ただし、ベクトルy (i)は、行列Yの第j番目の列の要素で成る列ベクトルである。そして、各々のベクトル化部22−iは、ベクトルy1 (i),y (i)のデータを、低ランク近似化部25−iに渡す。
つまり、ベクトル化部22−1,22−2,・・・,22−Lは、複数の入力行列を基にそれぞれの入力行列についてベクトルyおよびベクトルyを抽出するものである。
低ランク近似化部25−1,25−2,・・・,25−Lは、それぞれ、前述のアルゴリズム3(図6)を用いて、入力行列に対するSVTの処理を実行する。なお、アルゴリズム3の第11行においてアルゴリズム1,2を参照しているが、行列のサイズMに応じて、アルゴリズム1(M≧3の場合)またはアルゴリズム2(M=2の場合)のいずれを用いるかを決定する。つまり、低ランク近似化部25−i(i=1,・・・,L)は、行列YのSVTを実行し、出力行列Zを算出する。そして、低ランク近似化部25−iは、得られた行列Zを出力部26に渡す。
つまり、低ランク近似化部25−1,25−2,・・・,25−Lは、各入力行列から抽出されたy(第1ベクトル)およびy(第2ベクトル)を用いて低ランク近似行列Zを求めるものである。
出力部26は、低ランク近似化部25−1,25−2,・・・,25−Lから、それぞれ、出力行列Z,Z,・・・,Zを受け取り、外部に出力する。
本実施形態によれば、複数の行列について、同時並列的に高速に低ランク近似化を行うことが可能となる。
[4. 第3実施形態]
次に、第3実施形態による装置構成等について説明する。なお、前実施形態までにおいて既に説明した事項については説明を省略する場合がある。ここでは、本実施形態に特有の事項を中心に説明する。
図10は、本実施形態による行列単純化装置の概略機能構成を示すブロック図である。図示するように、行列単純化装置3は、画像入力部31と、ベクトル化部12と、低ランク近似化部15と、画像出力部36とを含んで構成される。
行列単純化装置3は、第1実施形態の行列単純化装置1と同様の処理によって、入力行列Yを低ランク化して出力するものである。ただし、行列単純化装置3が入力する行列は画像のデータであり、行列単純化装置3はその画像のデータを単純化する処理を行う。
画像入力部31は、画像データを外部から取得する。なお、画像入力部31は、M行2列または2行M列の行列の形式の画像データを取得する。つまり、例えば、画像入力部31は、M行2列または2行M列に配列された2M個の画素から成る画像を入力する。各画素値はスカラーである。画像入力部31は、取得した画像を入力画像Yとしてベクトル化部12に渡す。
ベクトル化部12は、第1実施形態の場合と同様の機能を有する。
低ランク近似化部15は、第1実施形態の場合と同様の機能を有する。低ランク近似化部15は、低ランク化された行列Zを画像出力部36に渡す。
画像出力部36は、入力された画像に対応するサイズの画像を出力する。出力画像は、入力画像を単純化した(低ランク化した)ものである。
本実施形態によれば、行列単純化装置3は、M×2または2×Mのサイズを有する画像データを単純化することができる。
上述した各実施形態における行列単純化装置の機能の全部または一部を、コンピューターで実現するようにしても良い。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM、DVD−ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
以上、説明した複数の実施形態のいずれかによる行列単純化装置は、特異値閾値処理(SVT)の高速算出アルゴリズムを実行可能である。これにより、多数の小型行列を低ランク正則化する最適化問題の解を高速に求めることが可能となる。
具体的には、M行2列または2行M列(M≧2)の行列を対象として、低ランク化処理を、少ない計算量で高速に実行することが可能となる。また、複数の行列を対象として、低ランク化処理を並列して実行することができる。つまり、M行2列または2行M列の行列に対するFMSVTアルゴリズムが実現される。
さらに具体的には、核型ノルムを部分空間上のベクトル距離で表現できる発見に基づき、特異値分解(SVD)が不要でデータ並列なSVT算出法を実現した。また、実際のデータを用いた評価実験の結果、従来手法以上の計算精度を持ちつつ、最大95.82倍高速にSVTを算出できることを確認した。
以下において、命題等の証明を記載する。
[付録A 命題1の証明]
行列YYの固有値をλ,λ(λ≧λ≧0)とする。
Figure 2019046196
λ,λに関する上の式より、下の式(20)が成立する。
Figure 2019046196
ここでYを表現行列とする線形写像の像ImYを考えると、高々2次元の部分空間である(∵dim(ImY)=rankY=2)。そこで図1のようにImYを示すと、
ベクトルy,y∈Rの幾何的性質に着目する。y,yの成す角をθ∈[0,π][rad]とする。
Figure 2019046196
すると、上の式の通りであるから、下の式(21)が得られる。
Figure 2019046196
また図1に示したように、ベクトルyをπ/2[rad]回転させたRyを考えると(Rは太字であり、前述の通り回転行列)、yとRyの成す角はθ+π/2[rad]である。
Figure 2019046196
上の式の通りであるから、下の式(22)が成立する。
Figure 2019046196
これを式(21)に代入することにより、下の式(23)が得られる。つまり、定理1が証明された。
Figure 2019046196
[付録B 命題3の証明]
命題3の証明に先立って、次の2つの補題B1およびB2を示す。
<補題B1>:式(8)の行列Bに関して、任意のx=[x ,x ,x,x∈ImYに対し、下の式(24)が成立する。
Figure 2019046196
補題B1の証明は、下記の通り。
前述の RRy=RRy=y の性質より、下の式(25)および式(26)の通りである。つまり、補題B1が証明された。
Figure 2019046196
Figure 2019046196
<補題B2>: ベクトルz,z∈Rを、下の式の通りとする。
Figure 2019046196
このとき、z,z∈ImYである。
補題B1の証明は、下記の通り。
(U,Σ,V)=SVD(Y)とし、また下の式の通りとする。
Figure 2019046196
SVDの定義より、y=σi1+σi2なので、下の式(27)の通りである。
Figure 2019046196
同様にSVTの定義(式(4))より、z=(σ−μ)・vi1+(σ−μ)・vi2 なので、式(27)における場合分け毎に、z∈ImYが確認できる。つまり、補題B2が証明された。
以上の補題B1,B2を踏まえて、命題3を以下の通り証明する。
系2と、近接写像の定義より、下の式(28)が成立する。
Figure 2019046196
ここで、z=vec(Z)と変数置換しているが、補題B2より探索範囲をz∈ImYに限定できる。そこで変数を再度置換して、下の式(29)の通りとする。
Figure 2019046196
両辺にBを掛けると、補題B1より、Bx=zとなる。また、再び補題B1より、vec(Y)=(1/2)・BBvec(Y)が成立する。以上より、下の式(30)の通りとなる。なお、式(30)の最右辺への変形にも補題B1を使用している。
Figure 2019046196
式(28)に式(29),式(30)を適用すると、式(31)の通りとなる。つまり、命題3が証明された。
Figure 2019046196
[付録C 命題4の証明]
命題4の証明を下に記す。
∞,2ノルムの双対ノルムはL1,2ノルムなので、Moreauの直交分解より、下の式(32)の通りである。
Figure 2019046196
なお、Moreauの直交分解についてここで補足する。ある凸関数f(x)とそのルジャンドル変換f(x)について、xの分解x=prox(x)+proxf*(x)をMoreauの直交分解と言う。特に、凸関数がノルムであるとき、双対ノルムの球Bへの射影を用いて、xに関して、下記の通りである。
即ち、ノルムと双対ノルムと射影は、次の通り表される。
Figure 2019046196
そして、xに関して、下の式が成立する。
Figure 2019046196
式(32)に戻る。ここで、式(32)の右辺のprojμB1,2(x)は、半径μのL1,2球であるμB1,2へのL距離射影で、下の式(33)で表す最適化問題の解である。
Figure 2019046196
Ewout van den Bergらによれば、式(33)で表される問題はL球射影とL球射影の問題に分離でき、下の式(34),式(35)で表される2つの問題と等価である。
Figure 2019046196
式(34)のLノルム射影は、下の式の通り計算できる。
Figure 2019046196
一方で式(35)のLノルム射影は、下の式(36)の通りとなる。
Figure 2019046196
以上より、式(37)、式(38)が成立する。つまり、命題4が証明された。
Figure 2019046196
[付録D 定理6の証明]
行列Zを行列YのSVTとする。即ち、下の式の通りとする。
Figure 2019046196
rankY=0の場合、Y=OM×2であるため、自明である。
rankY=1の場合、σ>0,σ=0であるため、下の式(39)の通りである。
Figure 2019046196
ここで、下の式(40)の通りであるので、階数1の場合についても証明された。
Figure 2019046196
rankY=2、且つσ=σの場合、下の式(41)の通りである。
Figure 2019046196
ここで、下の式(42)の通りであるので、階数2の場合についても証明された。
つまり、定理6が証明された。
Figure 2019046196
1,2,3 行列単純化装置
11 入力部
12 ベクトル化部
15 低ランク近似化部
16 出力部
21 入力部
22−1,22−2,・・・,22−L ベクトル化部
25−1,25−2,・・・,25−L 低ランク近似化部
26 出力部
31 画像入力部
36 画像出力部

Claims (8)

  1. M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出する(ただし、Mは2以上の整数)ベクトル化部と、
    前記第1ベクトルおよび前記第2ベクトルを含む平面内で前記第2ベクトルを第1の方向に所定角回転させて得られる第3ベクトルと前記第1ベクトルとの距離である第1距離と、前記平面内で前記第2ベクトルを第2の方向に前記所定角回転させて得られる第4ベクトルと前記第1ベクトルとの距離である第2距離とを求め、前記第1距離および前記第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列を求める低ランク近似化部と、
    を具備する行列単純化装置。
  2. 前記入力行列YがM行2列であるときにはY=[y,y]とし、前記入力行列Yが2行M列であるときにはY=[y,y]とし、前記第1ベクトルをyとし、前記第2ベクトルをyとしたとき、
    前記低ランク近似化部は、前記所定角回転させる回転行列をRとして、[y,−y]=Y(Yの上にバー)として、内分比パラメータδ(0≦δ≦1)を用いて、前記入力行列Yと行列RY(Yの上にバー)との前記内分比パラメータδによる内分である内分行列と、振幅パラメータγと、に基づいて前記低ランク近似行列を求める、
    請求項1に記載の行列単純化装置。
  3. 前記入力行列YがM行2列であるときにはY=[y,y]とし、前記入力行列Yが2行M列であるときにはY=[y,y]とし、前記第1ベクトルをyとし、前記第2ベクトルをyとしたとき、
    前記低ランク近似化部は、前記所定角回転させる回転行列Rを式(14)として前記第2ベクトルを回転させる、
    Figure 2019046196
    (ただし、「det X」は行列Xの行列式)
    請求項1に記載の行列単純化装置。
  4. 前記入力行列Yの特異値をσ,σ(σ≧σ≧0)として、閾値をμとしたとき、
    前記低ランク近似化部は、前記行列Yの階数が2であり且つσ≠σの場合には、式(12)および式(13)により、式(12)の右辺を求めて前記低ランク近似行列とするものであり、
    Figure 2019046196
    且つ、前記低ランク近似化部は、式(15)の右辺の計算を行うことによって、式(12)内のRY(Yの上にバー)を求める、
    Figure 2019046196
    (ただし、スカラー値の右下に付ける「+」はランプ関数を表す)
    請求項3に記載の行列単純化装置。
  5. 前記低ランク近似化部は、「入力行列Yの階数が2且つσ≠σ」以外の場合には、式(19)の右辺を求めて前記低ランク近似行列とするものである、
    Figure 2019046196
    請求項4に記載の行列単純化装置。
  6. 前記ベクトル化部は複数の前記入力行列を基にそれぞれの前記入力行列の前記第1ベクトルおよび前記第2ベクトルを抽出するものであり、
    前記低ランク近似化部は、各入力行列から抽出された前記第1ベクトルおよび前記第2ベクトルを用いて前記低ランク近似行列を求めるものであり、
    単一命令列を、前記入力行列にそれぞれ対応する複数のデータに適用して並列処理を行うものである、
    請求項1から5までのいずれか一項に記載の行列単純化装置。
  7. コンピューターを、
    M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出する(ただし、Mは2以上の整数)ベクトル化部と、
    前記第1ベクトルおよび前記第2ベクトルを含む平面内で前記第2ベクトルを第1の方向に所定角回転させて得られる第3ベクトルと前記第1ベクトルとの距離である第1距離と、前記平面内で前記第2ベクトルを第2の方向に前記所定角回転させて得られる第4ベクトルと前記第1ベクトルとの距離である第2距離とを求め、前記第1距離および前記第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列を求める低ランク近似化部と、
    として機能させるためのプログラム。
  8. M行2列の入力行列から各列に対応するM次元の第1ベクトルおよび第2ベクトルを抽出し、または2行M列の入力行列から各行に対応するM次元の第1ベクトルおよび第2ベクトルを抽出する(ただし、Mは2以上の整数)ベクトル化過程と、
    前記第1ベクトルおよび前記第2ベクトルを含む平面内で前記第2ベクトルを第1の方向に所定角回転させて得られる第3ベクトルと前記第1ベクトルとの距離である第1距離と、前記平面内で前記第2ベクトルを第2の方向に前記所定角回転させて得られる第4ベクトルと前記第1ベクトルとの距離である第2距離とを求め、前記第1距離および前記第2距離に基づいて前記入力行列をより低ランクで近似した低ランク近似行列を求める低ランク近似化過程と、
    を含む行列単純化方法。
JP2017168998A 2017-09-01 2017-09-01 行列単純化装置、プログラム、および行列単純化方法 Active JP6810003B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017168998A JP6810003B2 (ja) 2017-09-01 2017-09-01 行列単純化装置、プログラム、および行列単純化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017168998A JP6810003B2 (ja) 2017-09-01 2017-09-01 行列単純化装置、プログラム、および行列単純化方法

Publications (2)

Publication Number Publication Date
JP2019046196A true JP2019046196A (ja) 2019-03-22
JP6810003B2 JP6810003B2 (ja) 2021-01-06

Family

ID=65816443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017168998A Active JP6810003B2 (ja) 2017-09-01 2017-09-01 行列単純化装置、プログラム、および行列単純化方法

Country Status (1)

Country Link
JP (1) JP6810003B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022113180A1 (ja) * 2020-11-25 2022-06-02 日本電信電話株式会社 計算方法、計算装置およびプログラム
WO2024100709A1 (ja) * 2022-11-07 2024-05-16 日本電信電話株式会社 最適化装置、最適化方法及びプログラム
WO2024100707A1 (ja) * 2022-11-07 2024-05-16 日本電信電話株式会社 雑音除去装置、雑音除去方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022113180A1 (ja) * 2020-11-25 2022-06-02 日本電信電話株式会社 計算方法、計算装置およびプログラム
WO2024100709A1 (ja) * 2022-11-07 2024-05-16 日本電信電話株式会社 最適化装置、最適化方法及びプログラム
WO2024100707A1 (ja) * 2022-11-07 2024-05-16 日本電信電話株式会社 雑音除去装置、雑音除去方法及びプログラム

Also Published As

Publication number Publication date
JP6810003B2 (ja) 2021-01-06

Similar Documents

Publication Publication Date Title
CN113449857B (zh) 一种数据处理方法和数据处理设备
Zhang et al. 100+ times faster weighted median filter (WMF)
Neverova et al. Continuous surface embeddings
US20170316312A1 (en) Systems and methods for deep learning processor
JP2019046196A (ja) 行列単純化装置、プログラム、および行列単純化方法
Bottleson et al. clcaffe: Opencl accelerated caffe for convolutional neural networks
Quesada-Barriuso et al. Wavelet-based classification of hyperspectral images using extended morphological profiles on graphics processing units
WO2019053835A1 (ja) 演算回路、演算方法、およびプログラム
Levine et al. Bridging many-body quantum physics and deep learning via tensor networks
Frazier et al. Tomominer and tomominercloud: A software platform for large-scale subtomogram structural analysis
CN115018065A (zh) 由低差异序列生成的人工神经网络
JP2020204894A (ja) フィルタ処理装置及びその制御方法
Jensen et al. A two-level real-time vision machine combining coarse-and fine-grained parallelism
Bourmaud Online variational bayesian motion averaging
Irofti et al. GPU parallel implementation of the approximate K-SVD algorithm using OpenCL
Li Parallel implementation of the recursive least square for hyperspectral image compression on GPUs
Rymut et al. Real-time multiview human body tracking using GPU-accelerated PSO
US9953394B2 (en) Methods and systems for designing correlation filter
Hurkat et al. Fast hierarchical implementation of sequential tree-reweighted belief propagation for probabilistic inference
Marcellino et al. A gpu-accelerated svd algorithm, based on qr factorization and givens rotations, for dwi denoising
Kim et al. Dynamic load balancing of parallel SURF with vertical partitioning
Cao et al. Multicore computing for SIFT algorithm in MATLAB® parallel environment
WO2024009469A1 (ja) 行列単純化装置、行列単純化方法、およびプログラム
Carnero et al. Improved parallelization of an image segmentation bio-inspired algorithm
Gurung et al. Simultaneous Solving of Linear Programming Problems in GPU

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201210

R150 Certificate of patent or registration of utility model

Ref document number: 6810003

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150