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

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

Info

Publication number
JP6889087B2
JP6889087B2 JP2017205934A JP2017205934A JP6889087B2 JP 6889087 B2 JP6889087 B2 JP 6889087B2 JP 2017205934 A JP2017205934 A JP 2017205934A JP 2017205934 A JP2017205934 A JP 2017205934A JP 6889087 B2 JP6889087 B2 JP 6889087B2
Authority
JP
Japan
Prior art keywords
matrix
search
vector
error
optimum solution
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
JP2017205934A
Other languages
English (en)
Other versions
JP2019079291A (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 JP2017205934A priority Critical patent/JP6889087B2/ja
Publication of JP2019079291A publication Critical patent/JP2019079291A/ja
Application granted granted Critical
Publication of JP6889087B2 publication Critical patent/JP6889087B2/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 0006889087
この問題の最適解を求めるには、基本的には、すべての解を探索する必要があるが、問題のサイズによっては天文学的な計算時間を要することもある。そこで、この問題を解くための既存手法としていくつかのアプローチがある。
まず、この問題は、制約付き最適化問題と捉えることができるので、分枝限定法で解くことが可能である。分枝限定法は、要素をすべて決定する途中の段階で制約なし最適化問題として残りの要素が実現し得る最小の制約なし誤差を計算する。この最小の制約なし誤差よりも現在得られている最小の誤差(暫定最小誤差)の方が小さければ、残りの要素の如何に関わらず、暫定最小誤差よりも誤差を小さくする解は得られないことになり、探索木の枝刈りが可能となる。分枝限定法は、このような枝刈りによって探索範囲を決定論的に狭めていき、探索すべき枝がなくなったときに、そのときの暫定最小誤差を実現する組み合わせを大域最適値として出力する。
また、確率的なアプローチとして、モンテカルロ木探索がある(例えば、特許文献1)。モンテカルロ木探索は、すべての解を探索することを諦めて、確率的に良い解を得ようとするアプローチである。なかでも、UCT(Upper Confidence Bounds for Trees)と呼ばれる手法が囲碁を指す人工知能などで応用され、高い性能を持つことが知られている。
UCTでは、探索当初は乱数的に値を探索していくが、探索が進んでくると、過去の誤差の履歴からの選択によって得られる誤差の期待値を計算し、0と1の中から小さい誤差が得られそうな候補を選んで探索する。さらに、期待値だけでは偶然小さい誤差が得られた場合には全く探索されない要素が出てくる可能性もある。このため、過去に選ばれた回数が少ない要素が優先的に選ばれるように、期待値に重み付けがされる。
特開2014−142849号公報
分枝限定法は、上述のように厳密に大域最適解が得られるという利点があるが、枝刈りがうまくいかない場合には、演算時間が大きくなりすぎるという問題がある。すなわち、分枝限定法では、早期に大域最適解に近い解が得られた場合には枝刈りが効率的に進む可能性があるが、そうでなければ効率が極めて悪くなってしまう。
一方、UCT等のモンテカルロ木探索では、短時間に比較的良い解が得られる利点があるが、厳密な大域最適解が得られる保証はなく、厳密解を求めるようとすれば、全探索をするよりも演算時間がかかってしまう問題がある。
本発明は、上記の問題に鑑みてなされたものであり、実数行列を分解するための演算負荷を軽減することを目的とする。
本発明の一態様は、実数行列(W)を離散値からなる基底行列(M)と実数からなる係数行列(C)との積に分解する行列分解装置(10)であって、実数行列(W)の各行の実数ベクトル(b)を抽出するベクトル抽出部(12)と、係数行列(C)を決定する係数行列決定部(13)と、前記係数行列決定部(13)にて決定された前記係数行列(C)を用いて、前記ベクトル抽出部(12)にて抽出された各行の前記実数ベクトル(b)に対応する基底行列(M)の各行の最適解ベクトル(m)を求める最適解探索部(14)と、前記最適解探索部(14)で求められた各行の前記最適解ベクトル(m)を組み合わせて前記基底行列(M)として出力するとともに、当該基底行列(M)を得た際に用いた前記係数行列(C)を出力する分解行列出力部(17)とを備え、前記最適解探索部(14)は、探索木及び暫定最小誤差を引き継ぎつつモンテカルロ木探索と分枝限定探索とを交互に繰り返し切り替えるハイブリッド探索を行う構成を有している。
この構成により、モンテカルロ木探索によって最適解に近い解を早期に探索できるので、分枝限定探索における枝刈りが効果的に進行し、分枝限定探索によって枝刈りが進むとモンテカルロ木探索でより最適解に近い解を早期に探索できるという相乗効果が得られるので、演算負荷を軽減して効果的に最適解を見つけることができる。
上記の行列分解装置(10)は、前記最適解探索部(14)で求められた各行の前記最適解ベクトル(m)を組み合わせて前記基底行列(M)としたときの前記分解誤差(E)が、所定の基準に基づいて十分に小さくなったか否かを判定する分解誤差判定部(16)をさらに備えていてよく、前記分解行列出力部(17)は、前記分解誤差判定部(16)にて前記分解誤差(E)が十分に小さくなったと判定されたときに、前記基底行列(M)及び前記係数行列(C)を出力してよく、前記分解誤差判定部(16)にて分解誤差(E)が十分に小さくなっていないと判定されたときに、前記係数行列決定部(13)は、新たな前記係数行列(C)を決定し、前記最適解探索部(14)は、新たな前記係数行列(C)を用いて新たな最適解ベクトルを求めてよい。この構成により、分解誤差を小さくして分解の精度を向上できる。
上記の行列分解装置(10)において、前記最適解探索部(14)は、前記分枝限定探索にて大域最適解ベクトルが得られるまで前記ハイブリッド探索を行い、前記大域最適解ベクトルを前記最適解ベクトルとして求めてよい。この構成により、分解誤差を小さくして分解の精度を向上できる。
上記の行列分解装置(10)において、前記最適解探索部(14)は、前記暫定最小誤差の更新が滞ったときに、前記モンテカルロ木探索と前記分枝限定探索とを切り替えてよい。
上記の行列分解装置(10)において、前記最適解探索部(14)は、前の切替えから所定時間が経過したときに、前記モンテカルロ木探索と前記分枝限定探索とを切り替えてよい。
上記の行列分解装置(10)において、前記最適解探索部(14)は、誤差を所定回数算出したときに、前記モンテカルロ木探索と前記分枝限定探索とを切り替えてよい。
上記の行列分解装置(10)において、前記最適解探索部(14)は、前の切替えから所定時間が経過し、又は誤差を所定回数算出したときに、前記モンテカルロ木探索法と前記分枝限定探索とを切り替えてよい。
本発明の一態様は、実数行列(W)を離散値からなる基底行列(M)と実数からなる係数行列(C)との積に分解する行列分解方法であって、実数行列(W)を取得するステップと、前記実数行列(W)の各行の実数ベクトル(b)を抽出するステップと、係数行列(C)を決定するステップと、前記実数ベクトル(b)と前記係数行列(C)とを用いて、各行の前記実数ベクトル(b)に対する基底行列(M)の各行の最適解ベクトル(m)を求めるステップと、前記実数行列(W)から抽出されたすべての前記実数ベクトル(b)について求めた前記最適解ベクトル(m)を組み合わせて前記基底行列(M)として出力し、当該基底行列(M)を得た際に用いた前記係数行列(C)を出力するステップとを含み、前記最適解ベクトル(m)を求めるステップは、探索木及び暫定最小誤差を引き継ぎつつモンテカルロ木探索と分枝限定探索とを交互に繰り返し切り替えるハイブリッド探索を行う、行列分解方法。
この構成により、モンテカルロ木探索によって最適解に近い解を早期に探索できるので、分枝限定探索における枝刈りが効果的に進行し、分枝限定探索によって枝刈りが進むとモンテカルロ木探索でより最適解に近い解を早期に探索できるという相乗効果が得られるので、演算負荷を軽減して効果的に最適解を見つけることができる。
本発明によれば、モンテカルロ木探索によって最適解に近い解を早期に探索できるので、分枝限定探索における枝刈りが効果的に進行し、分枝限定探索によって枝刈りが進むとモンテカルロ木探索でより最適解に近い解を早期に探索できるという相乗効果が得られるので、演算負荷を軽減して効果的に最適解を見つけることができる。
本発明の実施の形態の行例分解装置の構成を示す図 本発明の実施の形態の実数行列の分解を示す図 本発明の実施の形態の最適解探索部で用いられる探索木を示す図 本発明の実施の形態の行列分解装置にて実行される行列分解方法のフロー図 本発明の実施の形態の行列分解装置にて実行される最適解探索処理のフロー図
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
図1は、本発明の実施の形態の行例分解装置の構成を示す図である。図1に示す構成は、CPU、メモリ、記憶装置等を備えたコンピュータのCPUが本実施の形態の行列分解プログラムを実行することにより実現される。本実施の形態の行列分割装置10は、実数行列入力部11と、ベクトル抽出部12と、係数行列決定部13と、最適解探索部14と、切替判定部15と、分解誤差判定部16と、分解行列出力部17とを備えている。最適解探索部14は、モンテカルロ木探索部141と、分枝限定探索部142とを備えている。
図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として抽出して、行ごとに最適解探索部14に出力する。係数行列決定部13は、係数行列Cを決定して最適解探索部14に出力する。
最適解探索部14は、係数行列Cを係数行列決定部13から与えられた既知のものとして、最適な基底行列Mの探索を行う。最適解探索部14は、モンテカルロ木探索と分枝限定法による探索(以下、「分枝限定探索」という。)とを交互に繰り返し切り替えるハイブリッド探索によって、高速に最適解を求める。上述のように、実数行列Wを係数行列Cと基底行列Mに分解する問題は、式(1)に帰着できる。
Figure 0006889087
この式(1)において、コスト関数は、
Figure 0006889087
である。本実施の形態において一回の計算で求める基底行列Mの要素は、図2に示す基底行列Mの行ベクトルmである。
最適解探索部14は、基底行列Mの行ごとの探索を行う。行ベクトルmの場合は表記が複雑になるので、基底行列Mの各行の行ベクトルmの転置ベクトルを列ベクトルxとして、以下の説明では、以下のとおりに再定義をする。
Figure 0006889087
上記のように再定義すると、コスト関数は、
Figure 0006889087
となり、行ごとの最適解は、
Figure 0006889087
と再定義される。
図3は、最適解探索部14で用いられる探索木を示す図である。本実施の形態では、基底行列Mは二値行列であるので、探索木として二分木が用いられる。図3は、一例として、基底数K=4の場合の二分木を示している。図3において、深さk番目のノードは、xkの値を−1にするか1にするかに該当する。二分木を最上段のルートノードから最下段のリーフノードまで辿るとx1〜xKの値が与えられて(図3の例では、x1〜x4の値が与えられて)、そのときの誤差を計算できる。
上述のように、最適解探索部14は、モンテカルロ木探索と分枝限定探索とを交互に繰り返し切り替えるハイブリッド探索によって最適解ベクトルを求める。すなわち、最適解探索部14は、暫定最小誤差と当該暫定最小誤差を得たときのベクトルx(暫定最適解ベクトル)、及び枝刈りの情報を引き継ぎつつモンテカルロ木探索と分枝限定探索とを交互に切り替えて、最適解ベクトルを求める。換言すると、モンテカルロ探索部141と分枝限定探索部142とは、二分木及び暫定最小誤差を共有して探索を行う。以下では、モンテカルロ探索部141におけるモンテカルロ木探索、分枝限定探索部142における分枝限定探索、及びそれらの間の切り替えについて説明する。
(モンテカルロ木探索)
モンテカルロ木探索部141は、探索木である二分木のルートノードからリーフノードまでの2の4乗(基底行列Mの列サイズ)とおりの経路の中から確率的に誤差が小さい経路を探索する。それぞれのノードは、スコアsと訪問回数nを値として保持している。1回の探索はルートノードから初めてリーフノードに辿り着くと終了する。
リーフノード以外のすべてのノードは、2つの子ノードを持っている。あるノードに着目したとき、その着目ノードの両方の子ノードがまだ辿ったことのないノードである場合は、モンテカルロ木探索部141は、それらの2つの子ノードの中から、等確率でランダムに次に辿るノードを決定する。2つの子ノードのうちの一方だけ辿ったことがない場合には、モンテカルロ木探索部141は、当該辿ったことがないノードを次のノードとして決定する。
後述する分枝限定探索によって両方の子ノードが枝刈りされている場合は、モンテカルロ木探索部141は、経路をルートノードに戻す。分枝限定探索によって一方の子ノードだけが枝刈りされている場合には、モンテカルロ木探索部141は、まだ残っている子ノードを次のノードとする。
両方の子ノードを辿ったことがある場合には、モンテカルロ木探索部141は、2つの子ノードのUBCスコアを比較して、その値が大きい方を次のノードとして決定する。UBCスコアは、以下の式で計算される。
Figure 0006889087
ここで、tは、それまでに探索したリーフノードの数である。
モンテカルロ木探索部141は、以上の各ノードにおける子ノードの決定方法に従って、ルートノードからリーフノードまで辿り着いたときに、誤差eを計算する。モンテカルロ木探索部141は、さらに、この誤差eを以下の式に従ってリーフスコアlに変換する。
Figure 0006889087
モンテカルロ木探索部141は、さらに、ルートノードから辿り着いたリーフノートまでの経路上にあるすべてのノードについて、スコアsにリーフスコアlを加算し、訪問回数nに1を加算する。そして、モンテカルロ木探索部141は、得られた誤差eと暫定最小誤差とを比較して、暫定最小誤差の方が大きければ得られた誤差eを暫定最小誤差として更新して保存する。また、モンテカルロ木探索部141は、そのときの解(即ち、当該暫定最小誤差を算出した経路x1〜xKの組み合わせからなるベクトルx)を暫定最適解ベクトルとして保存する。
リーフノードで誤差eが計算されると、そのリーフノードは枝刈りされる。また、各ノードにおいて、その2つの子ノードが何れも枝刈りされている場合は、そのノード自体が枝刈りされる。
モンテカルロ木探索部141は、この探索を繰り返して、暫定最小誤差を更新する。なお、モンテカルロ木探索において、探索すべきノードがなくなった場合には探索は終了するが、一般的には、探索木のサイズは天文学的に大きいため、そのような状況にはならず、所定の条件を満たしたところで探索は打ち切られてそのときの暫定最適解が出力される。
(分枝限定探索)
分枝限定探索部142は、分枝限定法を用いて最適解を探索する。分枝限定探索部142は、ルートノードからリーフノードまでの2の4乗(基底行列Mの列サイズ)とおりの経路の中から、論理的にたどる必要のないノードを刈り取り、探索範囲を削減しながら、大域最適解を探索する。
あるノードに着目すると、分枝限定探索部142は、その着目ノードの2つの子ノードのうちの左側の子ノードがまだ枝刈りされていない場合には、左側の子ノードを次のノードとして決定する。また、分枝限定探索部142は、リーフノードまでたどり着いて誤差eを計算すると、そのリーフノードを枝刈りする。着目ノードの2つの子ノードが両方とも枝刈りされている場合は、分枝限定探索部142は、その着目ノード自体を枝刈りする。
いま、深さkのあるノードに着目したとき、分枝限定探索部142は、ルートノードからその着目ノードまで辿った経路によって決まるx1〜xkの値を並べ、以下のとおりに部分問題を作成する。
Figure 0006889087
分枝限定探索部142は、この部分問題を下式のように、離散制約のない実数ベクトルxfを求める新たな問題として解く。
Figure 0006889087
分枝限定探索部142は、最小二乗法などを使ってこの部分問題を解くことで、最小値を求める。この最小値が暫定最小誤差よりも大きい場合には、分枝限定探索部142は、このノードを枝刈りする。これは、xfは実数ベクトルであるため、このノードより下の探索木においていかなる最適な経路を辿ってもこの最小値よりも誤差が小さい解を得ることができないためである。
着目したノードがリーフノードである場合は、ルートノードから当該リーフノードまでの−1と1の列が解の候補となるので、分枝限定探索部142は、ルートノードから当該リーフノードまでのxkの値を並べてベクトルを作成し、その誤差eを計算する。分枝限定探索部142は、誤差eが暫定最小誤差よりも小さい場合には、その誤差eで暫定最小誤差を更新して保存する。また、分枝限定探索部142は、そのときの解(即ち、当該暫定最小誤差を算出した経路x1〜xKの組み合わせからなるベクトルx)を暫定最適解ベクトルとして保存する。
分枝限定探索部142は、すべてのノードが枝刈りされたとき、そのときの暫定最適解を大域最適解として分解誤差判定部16に出力する。
次に、モンテカルロ木探索部141によるモンテカルロ木探索と、分枝限定探索部142による分枝限定探索との切替について説明する。切替判定部15は、モンテカルロ木探索部141におけるモンテカルロ木探索において、リーフノードに辿り着くごとに、あるいは定期的に、モンテカルロ木探索から分枝限定探索への切替条件を満たすか否かを判定する。最適解探索部14は、切替判定部15が切替条件を満たすとの判定結果を受けたときに、モンテカルロ木探索部141による処理を終了して、分枝限定探索部142による処理を開始する。
切替判定部15は、分枝限定探索部142における分枝限定探索において、リーフノードに辿り着くごとに、あるいは定期的に、分枝限定探索からモンテカルロ木探索への切替条件を満たすか否かを判定する。最適解探索部14は、切替判定部15が切替条件を満たすとの判定結果を受けたときに、分枝限定探索部142による処理を終了して、モンテカルロ木探索部141による処理を開始する。また、上述のように、分枝限定探索部142は、すべてのノードが枝刈りされたときに、そのときの暫定最適解ベクトル(大域最適解ベクトル)を基底行列更新部16に出力する。
切替判定部15におけるモンテカルロ木探索から分枝限定探索への切替条件と、分枝限定探索からモンテカルロ木探索への切替条件とは、同じであってよく、異なっていてもよい。切替判定部15における切替条件の第1の例は、暫定最小誤差の更新が滞ることである。具体的には、切替判定部15は、誤差を所定回数計算する(即ち、リーフノードまで所定回数辿り着く)間に、暫定最小誤差が所定回数(1回でもよい)以上更新されなかった場合に、暫定最小誤差の更新が滞ったとして、切替条件を満たすと判定する。
切替条件の第2の例は、前の切替えからから所定時間が経過したことである。この例では、切替判定部15は、モンテカルロ木探索から分枝限定探索に切り替えてから所定時間を経過したときに、切替条件を満たすと判断して、分枝限定探索からモンテカルロ木探索に切り替え、分枝限定探索からモンテカルロ木探索に切り替えてから所定時間を経過したときに、切替条件を満たすと判断して、分枝限定法からモンテカルロ木探索に切り替える。
切替条件の第3の例は、誤差を所定回数算出した(即ち、リーフノードまで所定回数辿り着いた)ことである。切替条件の第4の例は、前の切り替えから所定時間が経過するか(第2の例)、誤差を所定回数以上計算するか(第3の例)のいずれかを満足することである。
また、切替判定部15は、ランダムに切替判定をしてもよい。この場合に、切り替える確率は任意に決定してよい。また、切替判定部15は、誤差を所定回数算出した後に、ランダムに切り替えを判定してよい。
ベクトル抽出部12、最適解探索部14、及び切替判定部15は、上記の処理を実数行列Wのすべての行ベクトルw1〜wDについて行う。その結果、分解誤差判定部16は、D個の行ベクトルw1〜wDに対応するD個の大域最適解m1〜mDを取得する。
分解誤差判定部16は、大域最適解m1〜mDを順に並べることで基底行列Mを生成し、この基底行列Mとそれを求めた係数行列Cとを用いて、実数行列Wと、基底行列Mと係数行列Cとの積との差分を分解誤差Eとして求める。分解誤差判定部16は、分解誤差Eが暫定最小分解誤差より小さいか否かを判断し、分解誤差Eが、暫定最小分解誤差より小さい場合には、当該分解誤差Eで暫定最小分解誤差を更新し、当該分解誤差Eを与えた基底行列M及び係数行列Cを保存する。
分解誤差判定部16は、大域最適解m1〜mDを順に並べることで生成した基底行列Mを係数行列決定部13に出力する。係数行列決定部13は、実数行列Wと基底行列Mとに基づいて、最小二乗法により係数行列Cを決定(更新)する。なお、係数行列決定部13は、まだ最適解探索部14における処理が行われていない処理の最初には、基底行列Mが得られていないため、係数行列Cを乱数で決定(初期化)して最適解探索部14に与える。
分解行列出力部17は、分解誤差判定部16における暫定最小分解誤差が十分に小さくなった場合には、その暫定最小分解誤差を与えた基底行列M及び係数行列Cを行列分解の結果として出力する。分解行列出力部17は、例えば、暫定最小分解誤差が所定の閾値以下となった場合に、暫定最小分解誤差が十分に小さくなったと判断してよく、暫定最小分解誤差が更新されなくなったときに、暫定最小分解誤差が十分に小さくなったと判断してもよく、最適解探索部14において所定回数のハイブリッド探索を実行したとき(即ち、所定回数の係数行列Cの更新を行ったとき)に暫定最小分解誤差が十分に小さくなったと判断してもよい。
図4は、本実施の形態の行列分解装置にて実行される行列分解方法のフロー図である。行列分解装置10は、まず、実数行列入力部11にて、外部から実数行列Wを入力する(ステップS11)。また、係数行列決定部13は、乱数を用いて係数行列Cをランダムに初期化する(ステップS12)。ベクトル抽出部12及び最適解探索部14は、i=1として(ステップS13)、列ベクトルbについての最適解ベクトルxを探索する(ステップS14)。
列ベクトルbについて最適解ベクトルxを取得すると、ベクトル抽出部12及び最適解探索部14は、i=Dであるか、即ち、実数行列Wのすべての列ベクトルbについて最適解ベクトルxを求めたかを判定する(ステップS15)。
まだ最適解ベクトルxを求めていない列ベクトルbがある場合には(ステップS15にてNO)、iをインクリメントして(ステップS16)、ステップS14に戻って、次の列ベクトルbについて最適解ベクトルxを探索する(ステップS14)。実数行列Wのすべての列ベクトルbについて最適解ベクトルxが求まると(ステップS15にてYES)、分解誤差判定部16は、それらの最適解ベクトルxを用いて基底行列Mを生成して、そのときの係数行列Cを用いて分解誤差Eを計算する(ステップS17)。
分解誤差判定部16は、算出した分解誤差Eが暫定最小分解誤差よりも小さいか否かによって暫定最小分解誤差を更新するか否かを判断する(ステップS18)。分解誤差判定部16は、算出した分解誤差Eが暫定最小分解誤差よりも小さい場合には(ステップS18にてYES)、分解誤差Eで暫定最小分解誤差を更新し(ステップS19)、算出した分解誤差Eが暫定最小分解誤差よりも大きい場合には(ステップS18にてNO)、分解誤差Eで暫定最小誤差を更新することなく、分解を終了するか否かを判断する(ステップS20)。分解終了の判断は、上述のように、暫定最小分解誤差が十分に小さくなったか否かによる。
分解を終了しない場合には(ステップS20にてNO)、係数行列決定部13は、生成した基底行列Mと入力されている実数行列Wを用いて係数行列Cを更新し、ステップS13に戻って再度行列の分解を行う。
分解誤差判定部16が分解を終了すると判断した場合には(ステップS20にてYES)、行列出力部17は、そのときの暫定最小分解誤差を得た基底行列M及び係数行列Cを分解結果として出力する(ステップS21)。
図5は、ベクトル抽出部12及び最適解探索部14による、最適解ベクトルxの探索処理(ステップS14)のサブルーチンのフロー図である。ベクトル抽出部12は、まず、入力されている実数行列Wの第i行の行ベクトルの転置ベクトルを列ベクトルbとして抽出する(ステップS41)。モンテカルロ木探索部141は、列ベクトルbと係数行列Cを用いてモンテカルロ木探索を実行する(ステップS42)。
切替判定部15は、切替条件を充足するか否かを判定し(ステップS43)、切替条件を充足していなければ(ステップS43でNO)、モンテカルロ木探索部141は、モンテカルロ木探索を継続する(ステップS42)。切替判定部15が切替条件を充足すると判定した場合は(ステップS43にてYES)、最適解探索部14は、そのときの二分木、暫定最小誤差及び暫定最適解ベクトルを引き継いで、モンテカルロ木探索から分枝限定探索部142による分枝限定探索に切り替え、分枝限定探索部142は分枝限定探索を実行する(ステップS44)。
切替判定部15は、切替条件を充足するか否かを判定し(ステップS45)、切替条件を充足していなければ(ステップS45にてNO)、分枝限定探索部142は、分枝限定探索を継続する(ステップS44)。切替判定部15が切替条件を充足すると判定した場合は(ステップS45にてYES)、最適解探索部14は、分枝限定探索部142にて大域最適解が得られているか(枝刈りされていないすべてのノードを辿ったか)否かを判断する(ステップS46)。
最適解探索部14は、まだ大域最適解が得られていない場合には(ステップS46にてNO)、そのときの二分木、暫定最小誤差及び暫定最適解ベクトルを引き継いで、分枝限定法からモンテカルロ木探索部141によるモンテカルロ木探索に切り替え、モンテカルロ木探索部141は、モンテカルロ木探索を実行する(ステップS42)。
このように、最適解探索部14は、分枝限定探索部142における分枝限定探索によって大域最適解が得られるまで、モンテカルロ木探索と分枝限定探索を交互に繰り返して行う。そして、最適解探索部14は、大域最適解が取得できたら(ステップS46にてYES)、図4のフローに戻る。
以上説明したように、本実施の形態の行列分解装置10は、実数行列Wを離散値からなる基底行列Mと実数からなる係数行列Cとの積に分解するにあたって、まず、係数行列Cを固定して基底行列Mを更新し、基底行列Mが更新されたらそれに従って係数行列Cを更新して、分解誤差が十分に小さくなるまで基底行列Mの更新と係数行列Cの更新を繰り返す。
そして、本実施の形態の行列分解装置10は、係数行列Cを固定して基底行列Mを更新する際には、行ごとに、モンテカルロ木探索と分枝限定探索とを交互に繰り返すハイブリッド探索を行う。このハイブリッド探索では、モンテカルロ木探索によって、短時間に比較的良い解が得られるので、分枝限定探索によって早期に厳密な大域最適解を見つけることができる。すなわち、本実施の形態の行列分解装置10によれば、行列分解の速度と精度を向上できる。
なお、図5の例では、最適解探索部14は、分枝限定法によって得られる大域最適解ベクトルを列ベクトルbに対する最適解ベクトルとして出力した。すなわち、最適解探索部14は、大域最適解が得られるまでモンテカルロ木探索と分枝限定探索とのハイブリッド探索を行ったが、大域最適解が得られる前にハイブリッド探索を打ち切ってもよい。例えば、モンテカルロ木探索(ステップS42)と分枝限定法(ステップS44)との切替えを所定回数行った場合に、そのときの暫定最小誤差を与える解を最適解ベクトルとして出力してハイブリッド探索を終了してよく、又は、暫定最小誤差が所定の閾値を下回ったときに、暫定最小誤差を与える解を最適解ベクトルとして出力してハイブリッド探索を終了してよい。
本発明は、演算負荷を軽減して効率的に最適解を見つけることができ、実数行列を離散値からなる基底行列と実数からなる係数行列との積に分解する行列分解装置等として有用である。
10 行列分解装置
11 実数行列入力部
12 ベクトル抽出部
13 係数行列決定部
14 最適解探索部
141 モンテカルロ木探索部
142 分枝限定探索部
15 切替判定部
16 分解誤差判定部
17 分解行列出力部

Claims (8)

  1. 実数行列(W)を離散値からなる基底行列(M)と実数からなる係数行列(C)との積に分解する行列分解装置(10)であって、
    実数行列(W)の各行の実数ベクトル(b)を抽出するベクトル抽出部(12)と、
    係数行列(C)を決定する係数行列決定部(13)と、
    前記係数行列決定部(13)にて決定された前記係数行列(C)を用いて、前記ベクトル抽出部(12)にて抽出された各行の前記実数ベクトル(b)に対応する基底行列(M)の各行の最適解ベクトル(m)を求める最適解探索部(14)と、
    前記最適解探索部(14)で求められた各行の前記最適解ベクトル(m)を組み合わせて前記基底行列(M)として出力するとともに、当該基底行列(M)を得た際に用いた前記係数行列(C)を出力する分解行列出力部(17)と、
    を備え、
    前記最適解探索部(14)は、最上段のルートノードから最下段の各リーフノードまで、前記基底行列(M)の行ベクトル(m)の各列に対応する各深さの各ノードにおいて、上段のノードから前記基底行列(M)の前記行ベクトル(m)の列要素の各離散値に夫々対応する下段の各子ノードに分岐する探索木において、探索不要なノードを削除したことを示す枝切りの情報、及び、前記係数行列(C)と前記ルートノードから所定の前記リーフノードまでを辿る所定の経路に対応する前記基底行列(M)の前記行ベクトル(m)との積と、前記実数行列(W)の当該行ベクトル(m)に対応する行の前記実数ベクトル(b)と、の差分である誤差であって、探索済みの各前記経路について算出された各前記誤差の内の最小の前記誤差である暫定最小誤差を引き継ぎつつモンテカルロ木探索と分枝限定探索とを所定の切替条件を満たす場合に切り替えるハイブリッド探索を行う、行列分解装置(10)。
  2. 前記最適解探索部(14)で求められた各行の前記最適解ベクトル(m)を組み合わせて前記基底行列(M)としたときの前記基底行列(M)と前記係数行列(C)との積と前記実数行列(W)との差分である分解誤差(E)が、所定の基準を満たすか否かを判定する分解誤差判定部(16)をさらに備え、
    前記分解行列出力部(17)は、前記分解誤差判定部(16)にて前記分解誤差(E)が前記所定の基準を満たすと判定されたときに、前記基底行列(M)及び前記係数行列(C)を出力し、
    前記分解誤差判定部(16)にて前記分解誤差(E)が前記所定の基準を満たしていないと判定されたときに、前記係数行列決定部(13)は、新たな前記係数行列(C)を決定し、前記最適解探索部(14)は、新たな前記係数行列(C)を用いて新たな最適解ベクトルを求める、請求項1に記載の行列分解装置(10)。
  3. 前記最適解探索部(14)は、前記分枝限定探索にて大域最適解ベクトルが得られるまで前記ハイブリッド探索を行い、前記大域最適解ベクトルを前記最適解ベクトルとして求める、請求項1又は2に記載の行列分解装置(10)。
  4. 前記最適解探索部(14)は、新たに探索された前記経路について算出された前記誤差が、前記暫定最小誤差よりも小さい場合には、前記暫定最小誤差として更新し、前記誤差を所定回数算出する間に前記暫定最小誤差が所定回数以上更新されなかった場合には、前記モンテカルロ木探索と前記分枝限定探索とを切り替える、請求項1〜3のいずれかに記載の行列分解装置(10)。
  5. 前記最適解探索部(14)は、前の切替えから所定時間が経過したときに、前記モンテカルロ木探索と前記分枝限定探索とを切り替える、請求項1〜3のいずれかに記載の行列分解装置(10)。
  6. 前記最適解探索部(14)は、前記経路が新たに探索された場合には当該経路についての前記誤差を算出し、前記誤差を所定回数算出したときに、前記モンテカルロ木探索と前記分枝限定探索とを切り替える、請求項1〜3のいずれかに記載の行列分解装置(10)。
  7. 前記最適解探索部(14)は、前記経路が新たに探索された場合には当該経路についての前記誤差を算出し、前の切替えから所定時間が経過し、又は前記誤差を所定回数算出したときに、前記モンテカルロ木探索と前記分枝限定探索とを切り替える、請求項1〜3のいずれかに記載の行列分解装置(10)。
  8. 実数行列(W)を離散値からなる基底行列(M)と実数からなる係数行列(C)との積に分解する行列分解方法であって、
    実数行列(W)を取得するステップと、
    前記実数行列(W)の各行の実数ベクトル(b)を抽出するステップと、
    係数行列(C)を決定するステップと、
    前記実数ベクトル(b)と前記係数行列(C)とを用いて、各行の前記実数ベクトル(b)に対する基底行列(M)の各行の最適解ベクトル(m)を求めるステップと、
    前記実数行列(W)から抽出されたすべての前記実数ベクトル(b)について求めた前記最適解ベクトル(m)を組み合わせて前記基底行列(M)として出力し、当該基底行列(M)を得た際に用いた前記係数行列(C)を出力するステップと、
    を含み、
    前記最適解ベクトル(m)を求めるステップは、最上段のルートノードから最下段の各リーフノードまで、前記基底行列(M)の行ベクトル(m)の各列に対応する各深さの各ノードにおいて、上段のノードから前記基底行列(M)の前記行ベクトル(m)の列要素の各離散値に夫々対応する下段の各子ノードに分岐する探索木において、探索不要なノードを削除したことを示す枝切りの情報、及び、前記係数行列(C)と前記ルートノードから所定の前記リーフノードまでを辿る所定の経路に対応する前記基底行列(M)の前記行ベクトル(m)との積と、前記実数行列(W)の当該行ベクトル(m)に対応する行の前記実数ベクトル(b)と、の差分である誤差であって、探索済みの各前記経路についての各前記誤差の内の最小の前記誤差である暫定最小誤差を引き継ぎつつモンテカルロ木探索と分枝限定探索とを所定の切替条件を満たす場合に切り替えるハイブリッド探索を行う、行列分解方法。
JP2017205934A 2017-10-25 2017-10-25 行列分解装置及び行列分解方法 Active JP6889087B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017205934A JP6889087B2 (ja) 2017-10-25 2017-10-25 行列分解装置及び行列分解方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017205934A JP6889087B2 (ja) 2017-10-25 2017-10-25 行列分解装置及び行列分解方法

Publications (2)

Publication Number Publication Date
JP2019079291A JP2019079291A (ja) 2019-05-23
JP6889087B2 true JP6889087B2 (ja) 2021-06-18

Family

ID=66627798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017205934A Active JP6889087B2 (ja) 2017-10-25 2017-10-25 行列分解装置及び行列分解方法

Country Status (1)

Country Link
JP (1) JP6889087B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12073317B2 (en) * 2020-01-07 2024-08-27 Alibaba Group Holding Limited Method and system for processing a neural network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3214977B2 (ja) * 1994-05-27 2001-10-02 富士通株式会社 最適解探索方式および最適解探索方法
JP2010186425A (ja) * 2009-02-13 2010-08-26 Mitsubishi Electric Corp 組合せ最適解を求めるデータ処理方法およびデータ処理装置
WO2014115232A1 (ja) * 2013-01-25 2014-07-31 日本電気株式会社 解探索装置、解探索方法および解探索プログラム
JP6566397B2 (ja) * 2014-08-18 2019-08-28 株式会社デンソーアイティーラボラトリ 認識装置、実数行列分解方法、認識方法

Also Published As

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

Similar Documents

Publication Publication Date Title
Tian A branch-and-bound algorithm for MDL learning Bayesian networks
CN112487168B (zh) 知识图谱的语义问答方法、装置、计算机设备及存储介质
JP2005107743A (ja) 学習システム
US8965816B2 (en) Non-transitory computer readable medium storing a program, search apparatus, search method, and clustering device
JP6751376B2 (ja) 最適解探索方法、最適解探索プログラム及び最適解探索装置
WO2013138441A1 (en) Systems, methods, and software for computing reachability in large graphs
Faerman et al. Lasagne: Locality and structure aware graph node embedding
US11461656B2 (en) Genetic programming for partial layers of a deep learning model
JP6889087B2 (ja) 行列分解装置及び行列分解方法
Bacciu et al. Graph generation by sequential edge prediction.
KR101866866B1 (ko) 부호화된 네트워크에서의 개인화된 랭킹 방법, 이를 수행하기 위한 기록 매체 및 장치
KR102464999B1 (ko) 설명 가능한 지식그래프 완성 방법 및 장치
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
Phillips et al. Speeding up heuristic computation in planning with experience graphs
Zheng et al. Workload-aware shortest path distance querying in road networks
Reunanen Search strategies
Medland et al. Improving the c Ant-Miner PB Classification Algorithm
JP6867929B2 (ja) 行列分解装置及び行列分解方法
CN116719947A (zh) 一种用于电力巡检缺陷检测的知识处理方法及装置
US20220230712A1 (en) Systems and methods for template-free reaction predictions
JP2020009122A (ja) 制御プログラム、制御方法及びシステム
Challita et al. New technique for feature selection: Combination between elastic net and relief
JP2009301557A (ja) 学習システム
Mozes et al. Speeding up HMM decoding and training by exploiting sequence repetitions
Paul et al. Robust incremental logistic regression for detection of anomaly using big data

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210520

R150 Certificate of patent or registration of utility model

Ref document number: 6889087

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250