JP6867929B2 - 行列分解装置及び行列分解方法 - Google Patents

行列分解装置及び行列分解方法 Download PDF

Info

Publication number
JP6867929B2
JP6867929B2 JP2017206981A JP2017206981A JP6867929B2 JP 6867929 B2 JP6867929 B2 JP 6867929B2 JP 2017206981 A JP2017206981 A JP 2017206981A JP 2017206981 A JP2017206981 A JP 2017206981A JP 6867929 B2 JP6867929 B2 JP 6867929B2
Authority
JP
Japan
Prior art keywords
matrix
unit
branch
sorting
error
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.)
Active
Application number
JP2017206981A
Other languages
English (en)
Other versions
JP2019079367A (ja
Inventor
悠一 吉田
悠一 吉田
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.)
Denso IT Laboratory Inc
Original Assignee
Denso IT Laboratory Inc
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 Denso IT Laboratory Inc filed Critical Denso IT Laboratory Inc
Priority to JP2017206981A priority Critical patent/JP6867929B2/ja
Publication of JP2019079367A publication Critical patent/JP2019079367A/ja
Application granted granted Critical
Publication of JP6867929B2 publication Critical patent/JP6867929B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

本発明は、実数で構成される行列を、実数値を持つ係数行列と整数値のみを持つ基底行列との積に分解する行列分解装置及び行列分解方法に関する。
画像認識の演算には、実数で構成されるベクトル(実数ベクトル)と実数で構成される行列(実数行列)との積演算が含まれることがある。例えば、SVM(Support Vector Machine)には、実数ベクトルである特徴ベクトルと、実数行列である重み行列との積演算が含まれ、CNN(Convolutional Neural Network)には、実数ベクトルである入力層(ベクトル)と実数行列である畳み込みフィルタ(行列)との積演算が含まれる。このような実数ベクトルと実数行列との積演算の演算負荷は大きく、即ち長い演算時間を要し、かつ、メモリ消費量が大きくなる。
そこで、従来より、実数ベクトルを整数値のみを持つベクトルに変換するとともに、実数行列を整数値のみを持つ基底行列と実数値を持つ係数行列との積に分解することで積演算の負荷を軽減することが提案されている。
実数行列Wを係数行列Cと基底行列Mに分解する問題は、以下の式(1)に帰着できる。
Figure 0006867929
この問題は、制約付き最適化問題と捉えることができるので、分枝限定法で解くことが可能である。分枝限定法は、要素をすべて決定する途中の段階で制約なし最適化問題として残りの要素が実現し得る最小の制約なし誤差を計算する。この最小の制約なし誤差よりも現在得られている最小の誤差(暫定最小誤差)の方が小さければ、残りの要素の如何に関わらず、暫定最小誤差よりも誤差を小さくする解は得られないことになり、探索木の枝刈りが可能となる。分枝限定法は、このような枝刈りによって探索範囲を決定論的に狭めていき、探索すべき枝がなくなったときに、そのときの暫定最小誤差を実現する組み合わせを大域最適値として出力する。
特開2014−142849号公報
分枝限定法は、上述のように厳密に大域最適解が得られるという利点があるが、枝刈りがうまくいかない場合には、演算時間が大きくなりすぎるという問題がある。すなわち、分枝限定法では、早期に大域最適解に近い解が得られた場合には枝刈りが効率的に進む可能性があるが、そうでなければ効率が極めて悪くなってしまう。
本発明は、上記の問題に鑑みてなされたものであり、分枝限定法を用いて実数行列を分解する際の演算効率を向上させることを目的とする。
本発明の一態様は、実数行列(W)を離散値からなる基底行列(M)と実数からなる係数行列(C)との積に分解する行列分解装置(10)であって、係数行列(C)を決定する係数行列決定部(13)と、前記係数行列(C)の少なくとも1行がそれぞれ異なる複数の並べ替え係数行列(A´)のうちのいずれかを選択する並べ替え部(14)と、前記並べ替え係数行列(A´)を用いて、前記実数行列(W)の行ごとに、分枝限定法によって離散値からなる並べ替え最適解ベクトル(x´)を求める分枝限定探索部(15)と、前記並べ替え最適解ベクトル(x´)を前記並べ替え部(14)による並べ替えに基づいて並べ戻して、最適解ベクトル(x)を求める並び戻し部(16)と、各行の前記最適解ベクトル(x)からなる基底行列(M)と、前記係数行列(C)とを出力する分解行列出力部(18)とを備え、前記並べ替え部(14)は、所定の基準に基づいて、前記分枝限定法における木構造の枝刈りが効率的に行われる前記並べ替え係数行列(A´)を選択する行列分解装置である。
この構成により、実数行列(W)を分解するための係数行列(C)が、分枝限定法における枝切りが効率的に行われるように並べ替えられるので、分枝限定法によって基底行列(M)を早期に求めることができる可能性が向上し、演算効率を向上できる。
上記の行列分解装置(10)において、前記並べ替え部(14)は、前記係数行列(C)の特定の2行の組み合わせがそれぞれ異なり、他の行が任意に並べられた複数の並べ替え行列(A´)の中からいずれかを選択してよい。
上記の行列分解装置(10)において、前記所定の条件は、前記木構造の2段目までのノードにおける部分制約問題の誤差の平均が最大になることであってよい。
上記の行列分解装置(10)において、前記所定の条件は、前記木構造の2段目までのノードにおける部分制約問題の最小の誤差が最大になることであってよい。
本発明の別の態様は、実数行列Wを−1及び1の2値からなる基底行列Mと実数からなる係数行列Cとの積に分解するために、評価関数
Figure 0006867929
において、
Figure 0006867929
として、行ごとの最適解ベクトルxを
Figure 0006867929
として求める行列分解装置(10)であって、前記行列Aの列を並べ替えることで、先頭の2列の組み合わせがそれぞれ異なる複数の並べ替え行列A´を生成し、前記複数の並べ替え行列A´の中から枝刈りが効果的に進む並べ替え行列A´を選択する並べ替え部(14)と、前記並べ替え部にて選択された前記並べ替え行列A´を用いて、
Figure 0006867929
を分枝限定法で解いて、並べ替え最適解ベクトルx´を求める分枝限定探索部(15)と、前記並べ替え最適解ベクトルx´を選択された前記並べ替え行列A´の並べ替えに従って並び戻して最適解ベクトルxを求める並び戻し部(16)とを備え、前記分枝限定探索部(15)は、前記複数の並べ替え行列A´について、木構造の2段目までのノードにおける部分制約問題の誤差を計算し、前記並べ替え部(14)は、前記誤差に基づいて並べ替え行列A´を選択する行列分解装置である。
この構成によっても、実数行列(W)を分解するための係数行列(C)が、分枝限定法における枝切りが効率的に行われるように並べ替えられるので、分枝限定法によって基底行列(M)を早期に求めることができる可能性が向上し、演算効率を向上できる。
本発明によれば、実数行列(W)を分解するための係数行列(C)が、分枝限定法における枝切りが効率的に行われるように並べ替えられるので、分枝限定法によって基底行列(M)を早期に求めることができる可能性が向上し、演算効率を向上できる。
本発明の実施の形態の行例分解装置の構成を示す図 本発明の実施の形態の実数行列の分解を示す図 本発明の実施の形態の分枝限定法で用いられる探索木を示す図 本発明の実施の形態の行列Aの列を並べ替える例を示す図 本発明の実施の形態の行列Aの列の並べ替えによる木構造の変更を示す図 本発明の実施の形態の並べ替え行列A´において、第1列、第2列をそれぞれもとの行列Aの第1列、第3列としたときの2段目のノードの部分制約問題の最小誤差を示す図 本発明の実施の形態の並べ替え行列A´において、第1列、第2列をそれぞれもとの行列Aの第3列、第4列としたときの2段目のノードの部分制約問題の最小誤差を示す図 本発明の実施の形態の行列分解装置にて実行される行列分解方法のフロー図
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
図1は、本発明の実施の形態の行例分解装置の構成を示す図である。図1に示す構成は、CPU、メモリ、記憶装置等を備えたコンピュータのCPUが本実施の形態の行列分解プログラムを実行することにより実現される。本実施の形態の行列分割装置10は、実数行列入力部11と、ベクトル抽出部12と、係数行列決定部13と、並べ替え部14と、分枝限定探索部15と、並べ戻し部16と、分解誤差判定部17と、分解行列出力部18とを備えている。
図2は、実数行列の分解を示す図である。行列分解装置10は、図2に示すようにD行L列の実数行列Wを入力して、それをD行K列(Kは基底数)の離散値からなる基底行列Mと、K行L列の係数行列Cとの積に分解して、得られた基底行列Mと係数行列Cを出力する。本実施の形態では、基底行列Mは、−1と1とからなる二値行列とするが、基底行列Mは、−1、0、1からなる三値行列であっても、任意の整数からなる行列であってもよい。
実数行列入力部11は、外部から入力された分解すべき実数行列Wを取得する。ベクトル抽出部12は、入力された実数行列Wの各行の行ベクトルの転置ベクトルを列ベクトル(実数ベクトル)bとして抽出して、行ごとに分枝限定探索部15に出力する。係数行列決定部13は、係数行列Cを決定して並べ替え部14に出力する。
並べ替え部14は、係数行列決定部13から入力された係数行列Cの転置行列Aの列を並べ替えて並べ替え行列A´を生成して分枝限定探索部14に出力する。並べ替え行列A´の生成の詳細な説明に先立って、一般的な分枝限定法について説明する。上述のように、実数行列Wを係数行列Cと基底行列Mに分解する問題は、式(1)に帰着できる。
Figure 0006867929
この式(1)において、コスト関数は、
Figure 0006867929
である。分枝限定法において一回の計算で求める基底行列Mの要素は、図2に示す基底行列Mの行ベクトルmである。
分枝限定法は、基底行列Mの行ごとの探索を行う。行ベクトルmの場合は表記が複雑になるので、基底行列Mの各行の行ベクトルmの転置ベクトルを列ベクトルxとして、以下の説明では、以下のとおりに再定義をする。
Figure 0006867929
上記のように再定義すると、コスト関数は、
Figure 0006867929
となり、行ごとの最適解は、下式(1´)のとおり再定義される。
Figure 0006867929
図3は、分枝限定法で用いられる探索木を示す図である。図3の例において、基底行列Mは−1、1を要素とする二値行列であり、探索木は各ノードが子ノードとして−1、1をもつ二分木である。また、図3の例では、基底数K=4である。図3において、k段目(深さk番目)のノードは、ベクトルxのk番目の要素xkの値を−1にするか1にするかに該当する。二分木を最上段のルートノードから最下段のリーフノードまで辿るとx1〜xKの値が与えられて(図3の例では、x1〜x4の値が与えられて)、そのときの誤差eを計算できる。
分枝限定法は、ルートノードからリーフノードまでの2のK乗(基底行列Mの列サイズ)とおりの経路の中から、論理的に辿る必要のないノードを刈り取り、探索範囲を削減しながら、大域最適解を探索する。
あるノードに着目すると、分枝限定法は、その着目ノードの2つの子ノードのうちの左側の子ノードがまだ枝刈りされていない場合には、左側の子ノードを次のノードとして決定する。また、分枝限定法は、リーフノードまでたどり着いて誤差eを計算すると、そのリーフノードを枝刈りする。着目ノードの2つの子ノードが両方とも枝刈りされている場合は、その着目ノード自体が枝刈りされる。
いま、k段目のあるノードに着目したとき、分枝限定法は、ルートノードからその着目ノードまで辿った経路によって決まるx1〜xkの値を並べ、以下のとおりに部分問題を作成する。
Figure 0006867929
分枝限定法は、この部分問題を下式のように、離散制約のない実数ベクトルxfを求める新たな問題として解く。
Figure 0006867929
分枝限定法は、最小二乗法などを使ってこの部分問題を解くことで、最小値(最小誤差)を求める。この最小誤差が暫定最小誤差よりも大きい場合には、分枝限定法は、このノードを枝刈りする。これは、xfは実数ベクトルであるため、このノードより下の探索木においていかなる最適な経路を辿ってもこの最小値よりも誤差が小さい解を得ることができないためである。
着目したノードがリーフノードである場合は、ルートノードから当該リーフノードまでの−1と1の列が解の候補となるので、分枝限定法は、ルートノードから当該リーフノードまでのxkの値を並べてベクトルxを作成し、その誤差eを計算する。分枝限定法は、誤差eが暫定最小誤差よりも小さい場合には、その誤差eで暫定最小誤差を更新して保存する。また、分枝限定法は、そのときの解(即ち、当該暫定最小誤差を算出した経路x1〜xKの組み合わせからなるベクトルx)を暫定最適解ベクトルとして保存する。分枝限定法は、すべてのノードが枝刈りされたとき、そのときの暫定最適解を大域最適解として出力する。
上記から分かるように、分枝限定法は、木構造の上方のレイヤで枝刈りがされると、探索ノードの数が大きく減って早期に大域最適解に到達できる。ここで、コスト関数
Figure 0006867929
は、行列Aの列を並べ替えても値が変わらない。そこで、本実施の形態では、行列Aの列を並べ替えて、早期に枝刈りが進んで大域最適解に到達できる並べ替え行列A´を生成し、この並べ替え行列A´を用いて分枝限定法による探索を行う。
図4は、行列Aの列を並べ替える例を示す図である。図4に示すように、行列Aの列を並べ替えることで、それに応じて行を並べ替えられた最適解ベクトルxを求めることができる。図4の例では、行列Aの第1列と第4列とを入れ替える例を示している。これに応じて、最適解ベクトルxも第1行と第4行とが入れ替われる。
図5は、行列Aの列の並べ替えによる木構造の変更を示す図である。図5に示すように、行列Aの列の並べ替えは、分枝限定法における木構造の段を上下に入れ替えることに相当する。図5は、図4の並べ替えに対応しており、行列Aの第1列と第4列を並べ替える場合の木構造の変更を示している。
いま、行列Aの列数をKとすると、行列Aの列ベクトルを並べ替えた並べ替え行列A´は、Kの階乗(K!)通りになる。したがって、可能なすべての並べ替えパターンの中から探索に用いる並べ替え行列A´を選択する場合には、候補数が多すぎて計算負荷が大きくなる。さらに、木構造の下方のレイヤで枝刈りが効率的に進んでも計算量の削減に対する貢献度は大きくない。
そこで、本実施の形態の並べ替え部14は、行列Aにおける先頭のn行は全パターン調べて、それ以外の列はランダムに並べることで、複数の並べ替え行列A´を生成し、その中から最適な並べ替え行列A´を選択する。こうすることで、例えば、n=2とした場合には、探索数は、
Figure 0006867929
通りとなる。
さらに、−1と1の値域の場合には、木構造の第n段のすべてのノードの部分制約問題の最小誤差を求める必要があり、その回数は、
Figure 0006867929
回となる。
図6は、並べ替え行列A´において、第1列、第2列をそれぞれもとの行列Aの第1列、第3列としたときの2段目のノードの部分制約問題の最小誤差を示す図である。図6の例において、2段目のノードの部分制約問題の最小誤差は、10、7、5、10である。
図7は、並べ替え行列A´において、第1列、第2列をそれぞれもとの行列Aの第3列、第4列としたときの2段目のノードの部分制約問題の最小誤差を示す図である。図7の例において、2段目のノードの部分制約問題の最小誤差は、9、11、13、15である。
図6の例と図7の例とを比較すると、図7の例の方が誤差が大きく、枝刈りが上段で行われる可能性が高いと推測される。よって、図6の例と図7の例との比較では、図7の例の方が有利である。このようにして、すべての並べ替え行列A´について比較をして早期に2段目のノードで枝刈りが行わる可能性が最も高い並べ替え行列A´を選択することで、枝刈りが早く進むことが期待できる。
ここで、各並べ替え行列A´について得られた複数の部分制約問題の最小誤差どうしを比較して早期に2段目のノードで枝刈りが行わる可能性が最も高い並べ替え行列A´を選択する方法として、以下の方法を採用できる。第1の方法は、2段目のノードのすべての部分制約問題の最小誤差の平均どうしを比較して平均値が最も大きい並べ替え行列A´を選択する方法である。第2の方法は、2段目のノードの複数の部分制約問題の最小誤差のうちの最小のものが最も大きい並べ替え行列A´を選択する方法である。第3の方法は、2段目のノードの複数の部分制約問題の最小誤差において最小のものと最大のものとの差分が最も大きい並べ替え行列A´を選択する方法である。
また、各並べ替え行列A´について1段目のノード(ルートノードの子ノード)の部分制約問題の最小誤差を求めて、2段目のノードの最小誤差に加えて1段目のノードの最小誤差も加味して並べ替え行列A´を選択してもよい。例えば、1段目のノードの部分制約問題の最小誤差も含めたすべての部分制約問題の最小誤差の平均どうしを比較して平均値が最も大きい並べ替え行列A´を選択してよい。
並べ替え部14は、係数行列決定部13にて決定された係数行列Cの転置行列Aについて、第1列と第2列を順に指定してその他の列をランダムに並べることで、第1列と第2列とがそれぞれ異なる複数の並べ替え行列A´を生成して、順に分枝限定探索部15に出力する。
分枝限定探索部15は、並べ替え部14から入力された各並べ替え行列A´を用いて、2段目の4つのノードについて、それぞれ部分制約問題の最小誤差を算出して、並べ替え部14に返す。
行列Aを並べ替えることで、部分制約問題は、
Figure 0006867929
となり、部分制約問題の最小誤差は、下式(2)のとおりとなる。
Figure 0006867929
但し、
Figure 0006867929
分枝限定探索部15は、式(2)を最小二乗法によって解くことで、最小誤差を求める。
並べ替え部14は、すべての並べ替え行列A´について、2段目のノードの部分制約問題の最小誤差に基づいて、早期に2段目のノードで枝刈りが行わる可能性が最も高い並べ替え行列A´を選択する。並べ替え部14は、選択した並べ替え行列A´を分枝限定探索部15に出力する。
分枝限定探索部15は、実数行列Wの転置行列の列ベクトルbをベクトル抽出部12から取得し、並べ替え行列A´を並べ替え部14から取得し、これらを用いて分枝限定法により、大域最適解を求め、これを列ベクトルbに対応する並べ替え最適解ベクトルx´として出力する。分枝限定探索部15は、すべての列ベクトルbについてのこの処理を行う。分枝限定探索部15は、すべての列ベクトルbについての並べ替え最適解ベクトルx´を並べ替え行列A´とともに並べ戻し部16に出力する。
並べ戻し部16は、並べ替え行列A´及び各並べ替え最適解ベクトルx´を、並べ替え行列A´を生成したときの並べ替えに従って並べ戻して、行列A及び最適解ベクトルxを生成する。並べ戻し部16は、さらに、複数の最適解ベクトルxを基底行列Mの行ベクトルmに戻し、行列Aを係数行列Cに戻して、得られた基底行列M及び係数行列Cを分解誤差判定部17に出力する。なお、係数行列Cは、係数行列決定部13から分解誤差判定部17に直接与えられてもよい。
分解誤差判定部17は、基底行列Mとそれを求めた係数行列Cとを用いて、実数行列Wと、基底行列Mと係数行列Cとの積との差分を分解誤差Eとして求める。分解誤差判定部17は、分解誤差Eが暫定最小分解誤差より小さいか否かを判断し、分解誤差Eが、暫定最小分解誤差より小さい場合には、当該分解誤差Eで暫定最小分解誤差を更新し、当該分解誤差Eを与えた基底行列M及び係数行列Cを保存する。
分解誤差判定部17は、基底行列Mを係数行列決定部13に出力する。係数行列決定部13は、実数行列Wと基底行列Mとに基づいて、最小二乗法により係数行列Cを決定(更新)する。なお、係数行列決定部13は、まだ分枝限定探索部15における処理が行われていない処理の最初には、基底行列Mが得られていないため、係数行列Cを乱数で決定(初期化)して並べ替え部14に与える。
分解行列出力部18は、分解誤差判定部17における暫定最小分解誤差が十分に小さくなった場合には、その暫定最小分解誤差を与えた基底行列M及び係数行列Cを行列分解の結果として出力する。分解行列出力部18は、例えば、暫定最小分解誤差が所定の閾値以下となった場合に、暫定最小分解誤差が十分に小さくなったと判断してよく、暫定最小分解誤差が更新されなくなったときに、暫定最小分解誤差が十分に小さくなったと判断してもよく、分枝限定探索部15において所定回数の探索を実行したとき(即ち、所定回数の係数行列Cの更新を行ったとき)に暫定最小分解誤差が十分に小さくなったと判断してもよい。
図8は、本実施の形態の行列分解装置にて実行される行列分解方法のフロー図である。行列分解装置10は、まず、実数行列入力部11にて、外部から実数行列Wを入力する(ステップS11)。また、係数行列決定部13は、乱数を用いて係数行列Cをランダムに初期化する(ステップS12)。
並べ替え部14は、係数行列決定部13にて決定された係数行列Cの転置行列Aについて、第1列と第2列とを特定した並べ替えを行い(ステップS13)、それぞれの並べ替え行列A´について分枝限定探索部15が算出した2段目のノードの部分制約問題の最小誤差に基づいて、枝刈りが最も早期に進む可能性がある並べ替え行列A´を選択する(ステップS14)。
ベクトル抽出部12は、パラメータiを1として(ステップS15)、実数行列Wの転置行列の第i列の列ベクトルbを抽出する(ステップS16)。分枝限定探索部15は、ベクトル抽出部12にて抽出された列ベクトルbと、並べ替え部14にて選択された並べ替え行列A´とを用いた下式(1´´)を分枝限定法で解くことにより、列ベクトルbに対応する並べ替え最適解ベクトルx´を求める(ステップS17)。
Figure 0006867929
分枝限定探索部15は、パラメータiがDとなっているか、即ち、実数行列Wのすべての行について、対応する並べ替え最適解ベクトルx´を求めたかを判断する(ステップS18)。まだすべての行について並べ替え最適解ベクトルx´を求めていない場合には(ステップS18にてNO)、ベクトル抽出部12は、パラメータiをインクリメントして(ステップS19)、次の列ベクトルbを抽出し(ステップS16)、分枝限定探索部15は、その列ベクトルに対応する並べ替え最適解ベクトルx´を算出する(ステップS17)。
実数行列Wのすべての行について並べ替え最適解ベクトルx´を算出した場合には(ステップS18にてYES)、並べ戻し部16は、すべての並べ替え最適解ベクトルx´の各々を並べ戻して最適解ベクトルxとして、それらの転置ベクトルmを並べることで最適解としての基底行列Mを生成し、また、並べ替え行列A´についても並べ戻して行列Aとして、さらにその転置をとって係数行列Cを復元する(ステップS20)。
分解誤差判定部17は、並べ戻し部16にて得られた基底行列Mと係数行列Cと実数行列Wを用いて、基底行列M及び係数行列Cによる実数行列Wの分解誤差Eを計算する(ステップS21)。そして、分解誤差判定部17は、算出した分解誤差Eが暫定最小分解誤差よりも小さいか否かによって暫定最小分解誤差を更新するか否かを判断する(ステップS22)。
分解誤差判定部17は、算出した分解誤差Eが暫定最小分解誤差よりも小さい場合には(ステップS22にてYES)、分解誤差Eで暫定最小分解誤差を更新し(ステップS23)、算出した分解誤差Eが暫定最小分解誤差よりも大きい場合には(ステップS22にてNO)、分解誤差Eで暫定最小誤差を更新することなく、分解を終了するか否かを判断する(ステップS24)。分解終了の判断は、上述のように、暫定最小分解誤差が十分に小さくなったか否かによる。
分解を終了しない場合には(ステップS24にてNO)、係数行列決定部13は、生成した基底行列Mと入力されている実数行列Wを用いて係数行列Cを更新し、ステップS13に戻って更新された係数行列Cの並べ替えを行う。
分解誤差判定部17が分解を終了すると判断した場合には(ステップS24にてYES)、分解行列出力部18は、そのときの暫定最小分解誤差を得た基底行列M及び係数行列Cを分解結果として出力する(ステップS25)。
以上説明したように、本実施の形態の行列分解装置10は、実数行列Wを離散値からなる基底行列Mと実数からなる係数行列Cとの積に分解するにあたって、まず、係数行列Cを固定して基底行列Mを更新し、基底行列Mが更新されたらそれに従って係数行列Cを更新して、分解誤差Eが十分に小さくなるまで基底行列Mの更新と係数行列Cの更新を繰り返す。
そして、本実施の形態の行列分解装置10は、係数行列Cを固定して基底行列Mを更新するために、実数行列Wの行ごとに分枝限定法を用いて基底行列Mの行ベクトルを求めるが、この際に、枝刈りが早く進むように係数行列の並べ替えを行う。これによって、実数行列Wの行ごとに、並べ替えられた最適解ベクトルが早期に得られる。並べ替えられた最適解ベクトルは、係数行列の並べ替えに従って並べ戻すことで、最適解としての基底行列Mの行ベクトルmとなり、実数行列Wのすべての行について上記のようにして得られた行ベクトルmを並べることで最適解としての基底行列Mを得ることができる。
なお、上記の実施の形態では、分枝限定探索部14は、分枝限定法によって得られる大域最適解ベクトルを列ベクトルbに対する並べ替え最適解ベクトルx´として出力した。すなわち、分枝限定探索部14は、大域最適解が得られるまで分枝限定法による探索を行ったが、大域最適解が得られる前に分枝限定探索を打ち切ってもよい。例えば、誤差の計算を所定回数行った場合に、そのときの暫定最小誤差を与える解を最適解ベクトルとして出力して分枝限定探索を終了してよく、又は、暫定最小誤差が所定の閾値を下回ったときに、暫定最小誤差を与える解を最適解ベクトルとして出力して分枝限定探索を終了してよい。
また、上記の実施の形態では、並べ替え行列A´を選択するために部分制約問題の最小誤差を計算する際に、ベクトルx´の未探索部分x´fを実数としたが、これに代えて、
Figure 0006867929
としてもよい(ただし、dはx´の次元)。このように、部分制約問題の解x´fに制約をつけることで、−1と1という離散最適解と制約が近くなるので好ましい。
本発明は、分枝限定法を用いて実数行列を分解する際の演算効率を向上させることができ、実数行列を離散値からなる基底行列と実数からなる係数行列との積に分解する行列分解装置等として有用である。
10 行列分解装置
11 実数行列入力部
12 ベクトル抽出部
13 係数行列決定部
14 並べ替え部
15 分枝限定探索部
16 並べ戻し部
17 分解誤差判定部
18 分解行列出力部

Claims (5)

  1. 実数行列(W)を離散値からなる基底行列(M)と実数からなる係数行列(C)との積に分解する行列分解装置(10)であって、
    係数行列(C)を決定する係数行列決定部(13)と、
    前記係数行列(C)の少なくとも1行がそれぞれ異なる複数の並べ替え係数行列(A´)のうちのいずれかを選択する並べ替え部(14)と、
    前記並べ替え係数行列(A´)を用いて、前記実数行列(W)の行ごとに、分枝限定法によって離散値からなる並べ替え最適解ベクトル(x´)を求める分枝限定探索部(15)と、
    前記並べ替え最適解ベクトル(x´)を前記並べ替え部(14)による並べ替えに基づいて並べ戻して、最適解ベクトル(x)を求める並び戻し部(16)と、
    各行の前記最適解ベクトル(x)からなる基底行列(M)と、前記係数行列(C)とを出力する分解行列出力部(18)と、
    を備え、
    前記並べ替え部(14)は、所定の基準に基づいて、前記分枝限定法における木構造の枝刈りが効率的に行われる前記並べ替え係数行列(A´)を選択する、行列分解装置。
  2. 前記並べ替え部(14)は、前記係数行列(C)の特定の2行の組み合わせがそれぞれ異なり、他の行が任意に並べられた複数の並べ替え行列(A´)の中からいずれかを選択する、請求項1に記載の行列分解装置。
  3. 前記所定の条件は、前記木構造の2段目までのノードにおける部分制約問題の誤差の平均が最大になることである、請求項2に記載の行列分解装置。
  4. 前記所定の条件は、前記木構造の2段目までのノードにおける部分制約問題の最小の誤差が最大になることである、請求項2に記載の行列分解装置。
  5. 実数行列Wを−1及び1の2値からなる基底行列Mと実数からなる係数行列Cとの積に分解するために、
    評価関数
    Figure 0006867929
    において、
    Figure 0006867929
    として、行ごとの最適解ベクトルxを
    Figure 0006867929
    として求める行列分解装置(10)であって、
    前記行列Aの列を並べ替えることで、先頭の2列の組み合わせがそれぞれ異なる複数の並べ替え行列A´を生成し、前記複数の並べ替え行列A´の中から枝刈りが効果的に進む並べ替え行列A´を選択する並べ替え部(14)と、
    前記並べ替え部にて選択された前記並べ替え行列A´を用いて、
    Figure 0006867929
    を分枝限定法で解いて、並べ替え最適解ベクトルx´を求める分枝限定探索部(15)と、
    前記並べ替え最適解ベクトルx´を選択された前記並べ替え行列A´の並べ替えに従って並び戻して最適解ベクトルxを求める並び戻し部(16)と、
    を備え、
    前記分枝限定探索部(15)は、前記複数の並べ替え行列A´について、木構造の2段目までのノードにおける部分制約問題の誤差を計算し、
    前記並べ替え部(14)は、前記誤差に基づいて並べ替え行列A´を選択する、行列分解装置。
JP2017206981A 2017-10-26 2017-10-26 行列分解装置及び行列分解方法 Active JP6867929B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017206981A JP6867929B2 (ja) 2017-10-26 2017-10-26 行列分解装置及び行列分解方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017206981A JP6867929B2 (ja) 2017-10-26 2017-10-26 行列分解装置及び行列分解方法

Publications (2)

Publication Number Publication Date
JP2019079367A JP2019079367A (ja) 2019-05-23
JP6867929B2 true JP6867929B2 (ja) 2021-05-12

Family

ID=66626574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017206981A Active JP6867929B2 (ja) 2017-10-26 2017-10-26 行列分解装置及び行列分解方法

Country Status (1)

Country Link
JP (1) JP6867929B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111274286B (zh) * 2020-01-16 2023-06-23 首都师范大学 基于模式分析的矩阵填充方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784990A (ja) * 1993-09-10 1995-03-31 Fujitsu Ltd 組み合わせ最適化問題をデータ処理装置で解くときの解法
JP6055391B2 (ja) * 2012-11-05 2016-12-27 株式会社デンソーアイティーラボラトリ 関連性判定装置、関連性判定プログラム、及び関連性判定方法
JP6259671B2 (ja) * 2014-01-23 2018-01-10 株式会社デンソーアイティーラボラトリ 関連性判定装置、関連性判定プログラム、及び関連性判定方法

Also Published As

Publication number Publication date
JP2019079367A (ja) 2019-05-23

Similar Documents

Publication Publication Date Title
Tian A branch-and-bound algorithm for MDL learning Bayesian networks
US7882109B2 (en) Computer representation of a data tree structure and the associated encoding/decoding methods
JP4165712B2 (ja) データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
US20050096880A1 (en) Inverse model calculation apparatus and inverse model calculation method
JP6867929B2 (ja) 行列分解装置及び行列分解方法
Liang et al. Towards compact interpretable models: Shrinking of learned probabilistic sentential decision diagrams
US20200117697A1 (en) Optimization device and control method of optimization device
Singha et al. Optimization of floor-planning using genetic algorithm
Wang et al. Lnetwork: an efficient and effective method for constructing phylogenetic networks
Ashlock et al. The do what's possible representation
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
US20200243162A1 (en) Method, system, and computing device for optimizing computing operations of gene sequencing system
WO2019244804A1 (ja) 処理装置、方法、及びプログラム
JP6889087B2 (ja) 行列分解装置及び行列分解方法
Rashid et al. Paw search–a searching approach for unsorted data combining with binary search and merge sort algorithm
Merry et al. Accelerating kd-tree searches for all k-nearest neighbours
US8661061B2 (en) Data structure, data structure generation method, information processing apparatus, information processing system, and computer-readable storage medium having stored therein information processing program
US20140222751A1 (en) Construction of tree-shaped baysian network
JP2023083931A (ja) モデル生成装置およびモデル生成方法
Hogg et al. Compressed threshold pivoting for sparse symmetric indefinite systems
Kavehab et al. A simple ant algorithm for profile optimization of sparse matrices
Bidlo et al. Evolutionary development of growing generic sorting networks by means of rewriting systems
CN112329924A (zh) 一种提升神经网络预测性能的方法
Maini et al. Optimal feature selection using elitist genetic algorithm
KR20150050603A (ko) 경로 탐색 방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210210

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: 20210330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210409

R150 Certificate of patent or registration of utility model

Ref document number: 6867929

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150