(57)【特許請求の範囲】
【請求項１】
基底ベクトルを出力する計算処理装置であって、
複数の入力ベクトルを入力する入力処理を行う入力部と、
前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化部と、
前記正規化処理されたベクトルを記憶する記憶部と、
前記記憶部が記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算部と、
前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成部と、
前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算部と、
前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算部と、
前記積値に基づいて更新値を計算する更新値計算部と、
前記積値の総和を計算して積値総和を計算する積値総和計算部と、
前記積値総和を正規化して結合ベクトルを計算する第二正規化部と、
前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算部と、
前記第二評価値に基づいて前記部分集合生成部が生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出部と、
前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶部が記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断部と、
出力条件に基づいて前記記憶部が記憶するベクトルを前記基底ベクトルとして出力する出力部と
を有する計算処理装置。
【請求項２】
前記第一評価値、及び前記第二評価値は、カルバック・ライブラリー・ダイバージェンスである請求項１に記載の計算処理装置。
【請求項３】
前記第一評価値、及び前記第二評価値は、類似度である請求項１に記載の計算処理装置。
【請求項４】
基底ベクトルを出力する計算処理装置が行う計算処理方法であって、
前記計算処理装置が、複数の入力ベクトルを入力する入力処理を行う入力手順と、
前記計算処理装置が、前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化手順と、
前記計算処理装置が、前記正規化処理されたベクトルを記憶する記憶手順と、
前記計算処理装置が、前記記憶手順で記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算手順と、
前記計算処理装置が、前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成手順と、
前記計算処理装置が、前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算手順と、
前記計算処理装置が、前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算手順と、
前記計算処理装置が、前記積値に基づいて更新値を計算する更新値計算手順と、
前記計算処理装置が、前記積値の総和を計算して積値総和を計算する積値総和計算手順と、
前記計算処理装置が、前記積値総和を正規化して結合ベクトルを計算する第二正規化手順と、
前記計算処理装置が、前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算手順と、
前記計算処理装置が、前記第二評価値に基づいて前記部分集合生成手順で生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出手順と、
前記計算処理装置が、前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶手順で記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断手順と、
前記計算処理装置が、出力条件に基づいて前記記憶手順で記憶するベクトルを前記基底ベクトルとして出力する出力手順と
を行う計算処理方法。
【請求項５】
基底ベクトルを出力する計算処理装置に処理を実行させるためのプログラムであって、
前記計算処理装置が、複数の入力ベクトルを入力する入力処理を行う入力手順と、
前記計算処理装置が、前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化手順と、
前記計算処理装置が、前記正規化処理されたベクトルを記憶する記憶手順と、
前記計算処理装置が、前記記憶手順で記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算手順と、
前記計算処理装置が、前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成手順と、
前記計算処理装置が、前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算手順と、
前記計算処理装置が、前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算手順と、
前記計算処理装置が、前記積値に基づいて更新値を計算する更新値計算手順と、
前記計算処理装置が、前記積値の総和を計算して積値総和を計算する積値総和計算手順と、
前記計算処理装置が、前記積値総和を正規化して結合ベクトルを計算する第二正規化手順と、
前記計算処理装置が、前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算手順と、
前記計算処理装置が、前記第二評価値に基づいて前記部分集合生成手順で生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出手順と、
前記計算処理装置が、前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶手順で記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断手順と、
前記計算処理装置が、出力条件に基づいて前記記憶手順で記憶するベクトルを前記基底ベクトルとして出力する出力手順と
を実行させるためのプログラム。
【請求項６】
１以上の計算処理装置を有し、基底ベクトルを出力する計算処理システムであって、
複数の入力ベクトルを入力する入力処理を行う入力部と、
前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化部と、
前記正規化処理されたベクトルを記憶する記憶部と、
前記記憶部が記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算部と、
前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成部と、
前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算部と、
前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算部と、
前記積値に基づいて更新値を計算する更新値計算部と、
前記積値の総和を計算して積値総和を計算する積値総和計算部と、
前記積値総和を正規化して結合ベクトルを計算する第二正規化部と、
前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算部と、
前記第二評価値に基づいて前記部分集合生成部が生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出部と、
前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶部が記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断部と、
出力条件に基づいて前記記憶部が記憶するベクトルを前記基底ベクトルとして出力する出力部と
を有する計算処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算処理装置、計算処理方法、計算処理システム、及びプログラムに関する。
【背景技術】
【０００２】
従来、非負値データの集合を解析する方法の一つとして非負値行列因数分解（Ｎｏｎｎｅｇａｔｉｖｅ  Ｍａｔｒｉｘ  Ｆａｃｔｏｒｉｚａｔｉｏｎ）（以下、ＮＭＦという。）が知られている。
【０００３】
ＮＭＦを実現するアルゴリズムとして、Ｍｕｌｔｉｐｌｉｃａｔｉｖｅアルゴリズムが知られている（例えば、非特許文献１等）。ＮＭＦを実現する方法として、情報理論的クラスタリング（Ｉｎｆｏｒｍａｔｉｏｎ−Ｔｈｅｏｒｅｔｉｃ  Ｃｌｕｓｔｅｒｉｎｇ）を用いる方法が知られている（例えば、非特許文献２等）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】”ＣＯＮＶＥＲＧＥＮＣＥ−ＧＵＡＲＡＮＴＥＥＤ  ＭＵＬＴＩＰＬＩＣＡＴＩＶＥ  ＡＬＧＯＲＩＴＨＭＳ  ＦＯＲ  ＮＯＮＮＥＧＡＴＩＶＥ  ＭＡＴＲＩＸ  ＦＡＣＴＯＲＩＺＡＴＩＯＮ  ＷＩＴＨ  β−ＤＩＶＥＲＧＥＮＣＥ”，ＩｎＰｒｏｃ．ＭＬＳＰ  ２０１０，ｐｐ．２８３−２８８，２０１０．
【非特許文献２】”競合学習を用いた情報理論的クラスタリング”，電子情報通信学会論文誌  Ｄ  Ｖｏｌ．Ｊ９５−Ｄ，Ｎｏ．８，ｐｐ．１６３３−１６４３，２０１２．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の方法では、ＮＭＦにおいて基底ベクトルを結合係数によって線形結合することを考慮していない結合係数を用いるため、優れた解に到達できない場合、又はＮＭＦの計算に十分な基底ベクトル（Ｖｅｃｔｏｒ）を出力できない場合があった。
【０００６】
本発明の１つの側面は、優れた解に到達できる、及びＮＭＦの計算に十分な基底ベクトルを出力できる計算処理装置、計算処理方法、計算処理システム、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様における、基底ベクトルを出力する計算処理装置であって、複数の入力ベクトルを入力する入力処理を行う入力部と、前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化部と、前記正規化処理されたベクトルを記憶する記憶部と、前記記憶部が記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算部と、前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成部と、前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算部と、前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算部と、前記積値に基づいて更新値を計算する更新値計算部と、前記積値の総和を計算して積値総和を計算する積値総和計算部と、前記積値総和を正規化して結合ベクトルを計算する第二正規化部と、前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算部と、前記第二評価値に基づいて前記部分集合生成部が生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出部と、前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶部が記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断部と、出力条件に基づいて前記記憶部が記憶するベクトルを前記基底ベクトルとして出力する出力部とを有することを特徴とする。
【発明の効果】
【０００８】
優れた解に到達できる、及びＮＭＦの計算に十分な基底ベクトルを出力できる計算処理装置、計算処理方法、計算処理システム、及びプログラムを提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係る計算処理装置のハードウェア構成の一例を説明するブロック図である。
【図２】本発明の一実施形態に係る計算処理装置による全体処理の一例を説明するフローチャートである。
【図３】本発明の一実施形態に係る計算処理装置の機能構成の一例を説明する機能ブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について説明する。
【００１１】
ＮＭＦにおいて、計算の対象となるデータがＭ次元Ｎ個の入力ベクトルｘｉ｛ｉ＝１，・・・，Ｎ｝の集合である場合、入力ベクトルｘｉの集合は、Ｍ次元Ｋ個（Ｋ＜Ｎ）の基底ベクトルｗｋ｛ｋ＝１，・・・，Ｋ｝の線形結合を用いる下記（１）式で近似できる。（１）式では、基底系、即ち基底ベクトルの集合を計算する。
【００１２】
【数１】
0006351430.tif 000002
【００１３】
入力ベクトルを列ベクトルとして束ねてＭ×Ｎの非負値行列Ｘで示す場合、非負値行列Ｘは、基底ベクトルを列ベクトルとして束ねたＭ×Ｋの基底行列Ｗ、及びＫ×Ｎの係数行列Ｈを用いて下記（２）式のように近似できる。
【００１４】
【数２】
0006351430.tif 000003
【００１５】
本発明の一実施形態に係る計算処理装置は、（２）式の基底行列Ｗを計算する計算処理装置である。
【００１６】
＜ハードウェア構成＞
計算処理装置は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０である。以下、計算処理装置がＰＣ１０である場合を例に説明する。
【００１７】
図１は、本発明の一実施形態に係る計算処理装置のハードウェア構成の一例を説明するブロック図である。
【００１８】
ＰＣ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０Ｈ１と、記憶装置１０Ｈ２と、ネットワークＩ／Ｆ（ｉｎｔｅｒｆａｃｅ）１０Ｈ３と、入力装置１０Ｈ４と、出力装置１０Ｈ５とを有する。
【００１９】
ＣＰＵ１０Ｈ１は、ＰＣ１０が行う各処理を実現するための演算、及び各ハードウェアの制御を行う。
【００２０】
記憶装置１０Ｈ２は、ＣＰＵ１０Ｈ１が用いるデータ、ファームウェアを含む処理を実行するためのプログラム、及び設定等を記憶する。記憶装置１０Ｈ２は、いわゆるメモリ（Ｍｅｍｏｒｙ）等である。ＰＣ１０は、補助記憶装置（図示せず）を有してもよい。
【００２１】
ネットワークＩ／Ｆ１０Ｈ３は、ネットワークを介して、データをＰＣ１０の外部装置と入出力するためのインタフェースである。ネットワークＩ／Ｆ１０Ｈ３は、例えばＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）、コネクタ、及びドライバ等である。
【００２２】
入力装置１０Ｈ４は、ＰＣ１０にユーザの操作、及びデータを入力するための装置である。入力装置１０Ｈ４は、例えばキーボード、及びコネクタ等である。
【００２３】
出力装置１０Ｈ５は、ＰＣ１０からユーザに処理結果、及びデータの内容等を出力するための装置である。出力装置１０Ｈ５は、例えばディスプレイ、及びコネクタ等である。
【００２４】
ＰＣ１０の各ハードウェアは、バス（Ｂｕｓ）を介して相互に接続される。
【００２５】
なお、計算処理装置は、ＰＣに限られない。計算処理装置は、サーバ等の情報処理装置でもよい。
【００２６】
また、ＰＣ１０のハードウェア構成は、図示した構成に限られない。ハードウェア構成は、例えば各ハードウェアが行う処理、及び記憶の一部、又は全部を分散、冗長、又は並列に行う装置（図示せず）を別に有する構成、又は外部装置（図示せず）が接続している構成でもよい。
【００２７】
＜全体処理＞
図２は、本発明の一実施形態に係る計算処理装置による全体処理の一例を説明するフローチャートである。
【００２８】
ステップＳ０２０１では、ＰＣ１０は、入力パラメータの入力処理を行う。入力処理は、ＰＣ１０が各処理に用いる入力パラメータＩＮを入力する処理である。入力パラメータＩＮは、例えば入力ベクトルｘｉ、第一評価値計算で用いる混合比α、及び更新値計算で用いる学習率γ等である。入力パラメータＩＮは、出力条件の判断に用いる終了回数Ｔである。入力パラメータＩＮは、勝ち回数条件の判断に用いる閾値θである。入力パラメータＩＮは、基底ベクトル数条件の判断に用いる総基底ベクトル数Ｋである。
【００２９】
終了回数Ｔは、基底ベクトル集合を生成する際の総学習回数を示す値である。
【００３０】
閾値θは、勝ち回数条件の判断において、各基底ベクトルにそれぞれ設定される勝ち回数ｖが勝ち回数条件を満たしているか否かをそれぞれ判断するための値である。更新処理が行う場合、勝ち回数ｖは、加算される値である。勝ち回数条件、及び基底ベクトル数条件が満たされている場合、勝ち回数ｖは、初期化される値である。
【００３１】
ステップＳ０２０２では、ＰＣ１０は、初期化処理を行う。初期化処理では、ＰＣ１０は、入力ベクトルからランダムに入力ベクトルを選択し、選択された入力ベクトルをＬ１正規化する処理を行う。Ｌ１正規化する処理は、ベクトルの各次元の係数の絶対値の総和が「１」となるように正規化する処理である。正規化の処理は、ベクトルを他のベクトルと比較できるように、所定の数値で割り算する処理等である。ＰＣ１０は、Ｌ１正規化された入力ベクトルを記憶する。
【００３２】
以下、Ｌ１正規化されたベクトルの各次元がｍ｛ｍ＝１，・・・，Ｍ｝であるとし、ベクトルのｍ次元目の値は、ｐｍとする。
【００３３】
初期化処理は、基底ベクトル数ｑに「１」を設定する処理である。初期化処理は、勝ち回数ｖに「０」を設定する処理である。初期化処理は、学習回数ｔに「０」を設定する処理である。
【００３４】
ステップＳ０２０３では、ＰＣ１０は、勝ち回数条件、及び基底ベクトル数条件を満たしているか否かの判断を行う。ＰＣ１０は、勝ち回数条件を満たしているか否かを、勝ち回数ｖが閾値θ以上の値であるか否かによって判断する。ＰＣ１０は、基底ベクトル数条件を満たしているか否かを、基底ベクトル数ｑが総基底ベクトル数Ｋより小さい値であるか否かによって判断する。
【００３５】
ステップＳ０２０２でＰＣ１０が勝ち回数条件、かつ、基底ベクトル数条件を満たしていると判断する場合（ステップＳ０２０３でＹＥＳ）、ＰＣ１０は、ステップＳ０２１６に進む。ステップＳ０２０２でＰＣ１０が勝ち回数条件、又は基底ベクトル数条件を満たしていないと判断する場合（ステップＳ０２０３でＮＯ）、ＰＣ１０は、ステップＳ０２０４に進む。
【００３６】
ステップＳ０２０４では、ＰＣ１０は、第一評価値計算処理を行う。第一評価値計算処理は、入力ベクトルから基底ベクトル数ｑの基底ベクトルｗを選択する処理である。選択する基底ベクトルｗを第一ベクトルｗｋ｛ｋ＝１，・・・，ｑ｝とする（以下、第一ベクトルという）。第一ベクトルｗｋの要素は、確率分布Ｑｋとする。
【００３７】
第一評価値計算処理は、入力ベクトルの集合から１つの入力ベクトルを選択し、選択された入力ベクトルをＬ１正規化する処理を行う。以下、第一評価値計算処理でＬ１正規化して生成されるベクトルを第二ベクトルＲとする（以下、第二ベクトルという）。第二ベクトルの要素は、確率分布Ｐとする。
【００３８】
第一評価値計算処理は、第一評価値ｄを計算する処理である。第一評価値ｄは、第一ベクトルｗｋの第二ベクトルＲに対する類似の度合を示す値である。第一評価値ｄは、例えば「ひずみ」で示す値である。「ひずみ」は、例えば下記（３）式で示す第二ベクトルＲの確率分布Ｐに対する各第一ベクトルｗｋの確率分布Ｑｋのｓｋｅｗダイバージェンス（Ｄｉｖｅｒｇｅｎｃｅ）で計算される値である。
【００３９】
なお、第一評価値ｄは、「ひずみ」で示す場合に限られない。第一評価値ｄは、コサイン（ｃｏｓ）類似度等で計算される類似度の値でもよい。
【００４０】
【数３】
0006351430.tif 000004
【００４１】
（３）式において、ＤＫＬ（Ｐ，Ｑ）は、ＰのＱに対するカルバック・ライブラリー・ダイバージェンス（Ｋｕｌｌｂａｃｋ−Ｌｅｉｂｌｅｒ  Ｄｉｖｅｒｇｅｎｃｅ）である。（３）式において、混合比αには、例えば計算パフォーマンスを向上できるように、混合比α＝０．９９の値が入力される。
【００４２】
ステップＳ０２０５では、ＰＣ１０は、結合係数計算処理を行う。結合係数計算処理は、下記（４）式によって、結合係数ｇを計算する処理である。結合係数ｇは、下記（４）式で示すように、第一評価値ｄを指数とした指数関数で計算される値である。
【００４３】
【数４】
0006351430.tif 000005
【００４４】
ステップＳ０２０６では、ＰＣ１０は、基底ベクトル部分集合を生成する部分集合生成処理を行う。部分集合生成処理は、ＰＣ１０が第一評価値ｄに基づいて第二ベクトルＲに最も類似の第一ベクトルｗｋを抽出する処理である。以下、抽出される第二ベクトルＲに最も類似の第一ベクトルｗｋを第三ベクトルとする（以下、第三ベクトルという）。
【００４５】
第一評価値ｄが「ひずみ」の場合、第三ベクトルは、第一評価値ｄの値が最も小さい値の第一ベクトルｗｋである。第一評価値ｄが類似度の場合、第三ベクトルは、第一評価値ｄの値が最も大きい値の第一ベクトルｗｋである。
【００４６】
部分集合生成処理は、ＰＣ１０が、第三ベクトルと第一ベクトルｗｋを組み合わせて基底ベクトル部分集合Ｓｕを生成する処理である。基底ベクトル部分集合Ｓｕは、第三ベクトル単独のベクトルを有してもよい。基底ベクトル部分集合Ｓｕは、第三ベクトルと２以上の第一ベクトルｗｋを組み合わせたベクトルを有してもよい。
【００４７】
以下、基底ベクトル部分集合群が、第三ベクトルと第一ベクトルｗｋを組み合わせて生成する（ｑ−１）個の基底ベクトル部分集合Ｓｕを有する場合を例に説明する。なお、基底ベクトル部分集合群は、（ｑ−１）個の基底ベクトル部分集合Ｓｕを有する場合に限られない。基底ベクトル部分集合群は、例えば第三ベクトルと２以上の第一ベクトルｗｋを組み合わせた基底ベクトル部分集合を有し、ｑ個以上の基底ベクトル部分集合を有する基底ベクトル部分集合群であってもよい。
【００４８】
以下、基底ベクトル部分集合の基底ベクトルをｗｋで示し、基底ベクトルｗｋに対応する結合係数をｇｋで示す。
【００４９】
ステップＳ０２０７では、ＰＣ１０は、更新値計算処理を行う。
【００５０】
更新値計算処理は、ＰＣ１０が、各ベクトルの各次元の値ｍ｛ｍ＝１，・・・，Ｍ｝について、結合係数ｇｋ、及び基底ベクトルｗｋの積である積値ｇｋｗｋを計算する処理である。更新値計算処理は、ＰＣ１０が下記（５）式に基づいて、積値ｇｋｗｋが最大となる基底ベクトルの添字ｃｍを算出する処理である。
【００５１】
【数５】
0006351430.tif 000006
【００５２】
同じ積値ｇｋｗｋとなる複数の添字ｃｍが計算された場合、ＰＣ１０は、値が小さい方を添字ｃｍとして算出する。
【００５３】
更新値計算処理は、ＰＣ１０が更新値を計算する処理である。ｋ番目の基底ベクトルのｍ次元目をｗｋmとする場合、更新値は、下記（６）式に基づいて計算される値である。
【００５４】
【数６】
0006351430.tif 000007
【００５５】
（６）式において、ｃｍ＝ｋの場合、更新値は、入力ベクトルに対応する次元の値を反映した値である。（６）式において、ｃｍ≠ｋの場合、更新値は、基底ベクトルのＬ１ノルム（Ｎｏｒｍ）を一定にするための値である。
【００５６】
（６）式において、学習率γは、各更新値に共通して用いる値である。学習率γには、例えば計算パフォーマンスを向上できるように、学習率γ＝０．０１の値が入力される。
【００５７】
ＰＣ１０は、学習率γに基づいて一時的学習率γ’を計算する。一時的学習率γ’は、下記（７）式に基づいて計算される値である。
【００５８】
【数７】
0006351430.tif 000008
【００５９】
（７）式において、「ｃｍ＝ｋ」は、ｃｍ＝ｋとなるすべてのｍを計算対象とすることを示す。図３においても同様である。
【００６０】
ステップＳ０２０８では、ＰＣ１０は、結合ベクトル計算処理を行う。
【００６１】
結合ベクトル計算処理は、ＰＣ１０が結合係数計算処理で計算した結合係数ｇに基づいて、基底ベクトル部分集合Ｓｕに属する基底ベクトルを線形結合する処理である。線形結合は、下記（８）式に基づいて行われる。
【００６２】
【数８】
0006351430.tif 000009
【００６３】
結合ベクトル計算処理は、ＰＣ１０が基底ベクトル部分集合Ｓｕに属する基底ベクトルを線形結合するために、積値ｇｋｗｋの総和を計算して積値総和を計算する処理である。結合ベクトル計算処理は、ＰＣ１０が、積値総和をＬ１正規化して結合ベクトルρｋ｛ｋ＝１，・・・，ｑ−１｝を計算する処理である。結合ベクトルρｋの要素は、確率分布Ｑｕとする。
【００６４】
ステップＳ０２０９では、ＰＣ１０は、第二評価値計算処理を行う。第二評価値は、第一評価値と同様に、例えば「ひずみ」で示す値である。「ひずみ」は、第一評価値と同様に、第二ベクトルＲの確率分布Ｐに対する各結合ベクトルρｋの確率分布Ｑｕのｓｋｅｗダイバージェンスで計算される値である。なお、第二評価値は、第一評価値ｄと同様に、コサイン類似度等で計算される類似度の値でもよい。
【００６５】
ステップＳ０２１０では、ＰＣ１０は、勝者部分集合選出処理を行う。勝者部分集合選出処理は、ＰＣ１０が、下記（９）式に基づいて勝者部分集合Ｓηを選出する処理である。即ち、勝者部分集合選出処理は、第二評価値である「ひずみ」が最も小さいベクトルの添字ηを抽出し、抽出された添字ηのベクトルを選出する処理である。同じ評価値となる複数の添字が抽出された場合、ＰＣ１０は、値が小さい方を添字ηとして抽出する。
【００６６】
【数９】
0006351430.tif 000010
【００６７】
ステップＳ０２１１では、ＰＣ１０は、更新値に基づく更新を行うか否かを判断する。ステップＳ０２１１では、ＰＣ１０は、選出した勝者部分集合Ｓηに基づいて判断する。ＰＣ１０が勝者部分集合Ｓηに属する基底ベクトルと判断する場合（ステップＳ０２１１でＹＥＳ）、ＰＣ１０は、ステップＳ０２１２に進む。ＰＣ１０が勝者部分集合Ｓηに属しない基底ベクトルと判断する場合（ステップＳ０２１１でＮＯ）、ＰＣ１０は、ステップＳ０２１３に進む。
【００６８】
ステップＳ０２１２では、ＰＣ１０は、勝者部分集合に対する処理を行う。勝者部分集合Ｓηに属する基底ベクトルの場合、勝者部分集合に対する処理は、ＰＣ１０が更新値を記憶する処理である。勝者部分集合に対する処理は、ＰＣ１０が記憶していた基底ベクトルを更新値によって上書きする処理である。
【００６９】
勝者部分集合に対する処理は、ＰＣ１０が勝者部分集合Ｓηに属する基底ベクトルについて勝ち回数ｖを更新する処理である。各基底ベクトルに対応する勝ち回数は、下記（１０）式に基づいて更新される。
【００７０】
【数１０】
0006351430.tif 000011
【００７１】
（１０）式において、「ｃｍ＝ｋ」は、ｃｍ＝ｋとなるすべてのｍを計算対象とすることを示す。
【００７２】
ステップＳ０２１３では、ＰＣ１０は、学習回数ｔをカウントアップする処理を行う。
【００７３】
ステップＳ０２１４では、ＰＣ１０は、出力条件を満たしているか否かの判断を行う。ＰＣ１０は、学習回数ｔ、及び終了回数Ｔが等しいか否かによって判断を行う。学習回数ｔ、及び終了回数Ｔが等しい場合（ステップＳ０２１４でＹＥＳ）、ＰＣ１０は、ステップＳ０２１５に進む。学習回数ｔ、及び終了回数Ｔが等しくない場合（ステップＳ０２１４でＮＯ）、ＰＣ１０は、ステップＳ０２０３に戻る。
【００７４】
ステップＳ０２１５では、ＰＣ１０は、記憶している基底ベクトルを出力する処理を行う。
【００７５】
ステップＳ０２１６では、ＰＣ１０は、基底ベクトルを生成する処理を行う。ステップＳ０２１６では、ＰＣ１０は、勝ち回数ｖが閾値θ以上となったベクトルと同じ値を持つ基底ベクトルを生成する処理を行う。ＰＣ１０は、生成した基底ベクトルを記憶する。
【００７６】
ステップＳ０２１７では、ＰＣ１０は、勝ち回数を初期化する処理を行う。ステップＳ０２１７の初期化処理は、ステップＳ０２０３の処理と同様に、勝ち回数ｖに「０」を設定する処理である。
【００７７】
ステップＳ０２１８では、ＰＣ１０は、基底ベクトル数ｑをカウントアップする処理を行う。
【００７８】
＜機能構成＞
図３は、本発明の一実施形態に係る計算処理装置の機能構成の一例を説明する機能ブロック図である。
【００７９】
ＰＣ１０は、入力部１０Ｆ１と、第一正規化部１０Ｆ２と、記憶部１０Ｆ３と、第一評価値計算部１０Ｆ４と、部分集合生成部１０Ｆ５と、結合係数計算部１０Ｆ６と、積値計算部１０Ｆ７と、更新値計算部１０Ｆ８と、積値総和計算部１０Ｆ９と、第二正規化部１０Ｆ１０と、第二評価値計算部１０Ｆ１１と、勝者部分集合選出部１０Ｆ１２と、更新実行判断部１０Ｆ１３と、出力部１０Ｆ１４と、勝ち条件判断部１０Ｆ１５と、基底ベクトル数条件判断部１０Ｆ１６と、制御部１０Ｆ１７とを有する。
【００８０】
入力部１０Ｆ１は、ＰＣ１０に入力ベクトル等の入力パラメータＩＮを入力する処理を行う。入力部１０Ｆ１は、図１の入力装置１０Ｈ４等によって実現される。
【００８１】
第一正規化部１０Ｆ２は、入力ベクトルをＬ１正規化する処理を行う。第一正規化部１０Ｆ２は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００８２】
記憶部１０Ｆ３は、データ、及びパラメータを記憶する。記憶部１０Ｆ３は、基底ベクトルを記憶する。記憶部１０Ｆ３が記憶する基底ベクトルは、更新値による更新等によって上書きされる。記憶部１０Ｆ３は、図１の記憶装置１０Ｈ２等によって実現される。
【００８３】
第一評価値計算部１０Ｆ４は、第一評価値ｄを計算する処理を行う。第一評価値計算部１０Ｆ４は、第一ベクトルの確率分布と、第二ベクトルの確率分布に基づいて、第一ベクトルの第二ベクトルに対する類似の度合を示す第一評価値を、それぞれの第一ベクトルについて計算する処理を行う。第一評価値計算部１０Ｆ４は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００８４】
部分集合生成部１０Ｆ５は、第一評価値に基づいて三ベクトルを抽出し、第三ベクトルと第一ベクトルを組み合わせて基底ベクトル部分集合を生成する処理を行う。部分集合生成部１０Ｆ５は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００８５】
結合係数計算部１０Ｆ６は、第一評価値を指数とする指数関数によって結合係数を計算する処理を行う。結合係数計算部１０Ｆ６は図１のＣＰＵ１０Ｈ１等によって実現される。
【００８６】
積値計算部１０Ｆ７は、基底ベクトル部分集合の基底ベクトルに対応する結合係数、及び基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する処理を行う。積値計算部１０Ｆ７は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００８７】
更新値計算部１０Ｆ８は、積値等に基づいて更新値を計算する処理を行う。更新値計算部１０Ｆ８は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００８８】
積値総和計算部１０Ｆ９は、積値の総和を計算して積値総和を計算する処理を行う。積値総和計算部１０Ｆ９は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００８９】
第二正規化部１０Ｆ１０は、積値総和を正規化して結合ベクトルを計算する処理を行う。第二正規化部１０Ｆ１０は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９０】
第二評価値計算部１０Ｆ１１は、結合ベクトルの確率分布と、第二ベクトルの確率分布に基づいて、結合ベクトルの第二ベクトルに対する類似の度合を示す第二評価値を、それぞれの結合ベクトルについて計算する処理を行う。第二評価値計算部１０Ｆ１１は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９１】
勝者部分集合選出部１０Ｆ１２は、第二評価値に基づいて部分集合生成部１０Ｆ５が生成する基底ベクトル部分集合から勝者部分集合を選出する処理を行う。勝者部分集合選出部１０Ｆ１２は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９２】
更新実行判断部１０Ｆ１３は、基底ベクトル部分集合の基底ベクトルが勝者部分集合に属しているか否かに基づいて、記憶するベクトルを更新値で更新するか否かを判断する。更新実行判断部１０Ｆ１３は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９３】
出力部１０Ｆ１４は、出力条件に基づいてＰＣ１０が記憶するベクトルを基底ベクトルＯＵＴとして出力する処理を行う。出力部１０Ｆ１４は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９４】
勝ち条件判断部１０Ｆ１５は、勝ち回数ｖが閾値θ以上の値であるか否かを判断する。勝ち条件判断部１０Ｆ１５は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９５】
基底ベクトル数条件判断部１０Ｆ１６は、基底ベクトル数ｑが総基底ベクトル数Ｋより小さい値であるか否かを判断する。基底ベクトル数条件判断部１０Ｆ１６は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９６】
制御部１０Ｆ１７は、ＰＣ１０が行う各種処理を実現するために各ハードウェアを制御する。制御部１０Ｆ１７は、図１のＣＰＵ１０Ｈ１等によって実現される。
【００９７】
ＰＣ１０は、ＮＭＦにおいて基底ベクトルを結合係数によって線形結合することを考慮した結合係数ｇを用いることによって、更新値を計算することができる。また、ＰＣ１０は、結合係数ｇに基づいて第二評価値を計算することができ、第二評価値に基づいて勝者部分集合を選出することができる。ＰＣ１０は、選出された勝者部分集合に属する基底ベクトルを更新値によって更新する。更新等によって、ＰＣ１０が記憶する基底ベクトルは、逐次更新される。出力条件において、学習回数ｔが終了回数Ｔと等しい場合、ＰＣ１０は、記憶している基底ベクトルを出力することができる。
【００９８】
例えばランダムな初期値が基底ベクトルに設定される場合、解は、初期値に依存するため、設定される初期値によって、精度の良い優れた解とならない場合があった。
【００９９】
また、結合係数によって線形結合することを考慮しない結合係数の場合、例えば係数行列において一つの基底ベクトルに対応する値が正値、かつ、他の値が「０」の場合、解は、ＮＭＦに用いる基底ベクトルとしては不十分な基底ベクトルとなる場合がある。
【０１００】
ＮＭＦにおいて基底ベクトルを結合係数によって線形結合することを考慮した結合係数ｇを用いることで、ＰＣ１０は、ランダムではない基底ベクトルを出力できる。
【０１０１】
ＮＭＦにおいて基底ベクトルを結合係数によって線形結合することを考慮した結合係数ｇを用いることで、ＰＣ１０は、ＮＭＦの計算に十分な基底ベクトルを出力できる。
【０１０２】
ＰＣ１０は、ＰＣ１０が出力する基底ベクトルを例えば上記（２）式の基底行列Ｗに適用する。さらに、上記（２）式の係数行列Ｈに一定値を設定し、かつ、Ｍｕｌｔｉｐｌｉｃａｔｉｖｅアルゴリズム等を適用する場合、ＰＣ１０は、近似精度の高いＮＭＦを実現することができる。
【０１０３】
なお、実施形態で説明した１つの計算処理装置による構成は、一例であり、用途、又は目的に応じて様々なシステム構成があることは言うまでもない。例えば、各処理は、１以上の計算処理装置を有する計算処理システムによって実現されてもよい。計算処理システムは、ネットワーク等によって接続される計算処理装置を有する。計算処理システムは、ネットワークを介して１以上の計算処理装置（図示せず）に分散、冗長、又は並列に各種処理を処理させてもよい。
【０１０４】
また、実施形態は、説明した計算処理装置によって実現される場合に限られない。実施形態は、例えばＣＰＵを有する計算処理装置、又は計算処理システムに各種処理を実行させるためのプログラムによって実現されてもよい。
【０１０５】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【０１０６】
１０  ＰＣ
１０Ｈ１  ＣＰＵ
１０Ｈ２  記憶装置
１０Ｈ３  ネットワークＩ／Ｆ
１０Ｈ４  入力装置
１０Ｈ５  出力装置
１０Ｆ１  入力部
１０Ｆ２  第一正規化部
１０Ｆ３  記憶部
１０Ｆ４  第一評価値計算部
１０Ｆ５  部分集合生成部
１０Ｆ６  結合係数計算部
１０Ｆ７  積値計算部
１０Ｆ８  更新値計算部
１０Ｆ９  積値総和計算部
１０Ｆ１０  第二正規化部
１０Ｆ１１  第二評価値計算部
１０Ｆ１２  勝者部分集合選出部
１０Ｆ１３  更新実行判断部
１０Ｆ１４  出力部
１０Ｆ１５  勝ち条件判断部
１０Ｆ１６  基底ベクトル数条件判断部
１０Ｆ１７  制御部
【図１】
0006351430.tif 000012
【図２】
0006351430.tif 000013
【図３】
0006351430.tif 000014