特許第6351430号(P6351430)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 学校法人電子開発学園の特許一覧

特許6351430計算処理装置、計算処理方法、計算処理システム、及びプログラム
<>
  • 特許6351430-計算処理装置、計算処理方法、計算処理システム、及びプログラム 図000012
  • 特許6351430-計算処理装置、計算処理方法、計算処理システム、及びプログラム 図000013
  • 特許6351430-計算処理装置、計算処理方法、計算処理システム、及びプログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6351430
(24)【登録日】2018年6月15日
(45)【発行日】2018年7月4日
(54)【発明の名称】計算処理装置、計算処理方法、計算処理システム、及びプログラム
(51)【国際特許分類】
   G06F 17/10 20060101AFI20180625BHJP
【FI】
   G06F17/10 Z
【請求項の数】6
【全頁数】17
(21)【出願番号】特願2014-160752(P2014-160752)
(22)【出願日】2014年8月6日
(65)【公開番号】特開2016-38680(P2016-38680A)
(43)【公開日】2016年3月22日
【審査請求日】2017年8月3日
(73)【特許権者】
【識別番号】510060844
【氏名又は名称】学校法人電子開発学園
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】内山 俊郎
【審査官】 漆原 孝治
(56)【参考文献】
【文献】 特開2010−039723(JP,A)
【文献】 特開2013−038836(JP,A)
【文献】 内山 俊郎,競合学習を用いた情報理論的クラスタリング,電子情報通信学会論文誌,日本,一般社団法人電子情報通信学会,2012年 8月 1日,第J95-D巻,第8号,PP.1633-1643
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/10
(57)【特許請求の範囲】
【請求項1】
基底ベクトルを出力する計算処理装置であって、
複数の入力ベクトルを入力する入力処理を行う入力部と、
前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化部と、
前記正規化処理されたベクトルを記憶する記憶部と、
前記記憶部が記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算部と、
前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成部と、
前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算部と、
前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算部と、
前記積値に基づいて更新値を計算する更新値計算部と、
前記積値の総和を計算して積値総和を計算する積値総和計算部と、
前記積値総和を正規化して結合ベクトルを計算する第二正規化部と、
前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算部と、
前記第二評価値に基づいて前記部分集合生成部が生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出部と、
前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶部が記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断部と、
出力条件に基づいて前記記憶部が記憶するベクトルを前記基底ベクトルとして出力する出力部と
を有する計算処理装置。
【請求項2】
前記第一評価値、及び前記第二評価値は、カルバック・ライブラリー・ダイバージェンスである請求項1に記載の計算処理装置。
【請求項3】
前記第一評価値、及び前記第二評価値は、類似度である請求項1に記載の計算処理装置。
【請求項4】
基底ベクトルを出力する計算処理装置が行う計算処理方法であって、
前記計算処理装置が、複数の入力ベクトルを入力する入力処理を行う入力手順と、
前記計算処理装置が、前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化手順と、
前記計算処理装置が、前記正規化処理されたベクトルを記憶する記憶手順と、
前記計算処理装置が、前記記憶手順で記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算手順と、
前記計算処理装置が、前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成手順と、
前記計算処理装置が、前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算手順と、
前記計算処理装置が、前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算手順と、
前記計算処理装置が、前記積値に基づいて更新値を計算する更新値計算手順と、
前記計算処理装置が、前記積値の総和を計算して積値総和を計算する積値総和計算手順と、
前記計算処理装置が、前記積値総和を正規化して結合ベクトルを計算する第二正規化手順と、
前記計算処理装置が、前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算手順と、
前記計算処理装置が、前記第二評価値に基づいて前記部分集合生成手順で生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出手順と、
前記計算処理装置が、前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶手順で記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断手順と、
前記計算処理装置が、出力条件に基づいて前記記憶手順で記憶するベクトルを前記基底ベクトルとして出力する出力手順と
を行う計算処理方法。
【請求項5】
基底ベクトルを出力する計算処理装置に処理を実行させるためのプログラムであって、
前記計算処理装置が、複数の入力ベクトルを入力する入力処理を行う入力手順と、
前記計算処理装置が、前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化手順と、
前記計算処理装置が、前記正規化処理されたベクトルを記憶する記憶手順と、
前記計算処理装置が、前記記憶手順で記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算手順と、
前記計算処理装置が、前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成手順と、
前記計算処理装置が、前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算手順と、
前記計算処理装置が、前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成手順で生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算手順と、
前記計算処理装置が、前記積値に基づいて更新値を計算する更新値計算手順と、
前記計算処理装置が、前記積値の総和を計算して積値総和を計算する積値総和計算手順と、
前記計算処理装置が、前記積値総和を正規化して結合ベクトルを計算する第二正規化手順と、
前記計算処理装置が、前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算手順と、
前記計算処理装置が、前記第二評価値に基づいて前記部分集合生成手順で生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出手順と、
前記計算処理装置が、前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶手順で記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断手順と、
前記計算処理装置が、出力条件に基づいて前記記憶手順で記憶するベクトルを前記基底ベクトルとして出力する出力手順と
を実行させるためのプログラム。
【請求項6】
1以上の計算処理装置を有し、基底ベクトルを出力する計算処理システムであって、
複数の入力ベクトルを入力する入力処理を行う入力部と、
前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化部と、
前記正規化処理されたベクトルを記憶する記憶部と、
前記記憶部が記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算部と、
前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成部と、
前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算部と、
前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算部と、
前記積値に基づいて更新値を計算する更新値計算部と、
前記積値の総和を計算して積値総和を計算する積値総和計算部と、
前記積値総和を正規化して結合ベクトルを計算する第二正規化部と、
前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算部と、
前記第二評価値に基づいて前記部分集合生成部が生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出部と、
前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶部が記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断部と、
出力条件に基づいて前記記憶部が記憶するベクトルを前記基底ベクトルとして出力する出力部と
を有する計算処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算処理装置、計算処理方法、計算処理システム、及びプログラムに関する。
【背景技術】
【0002】
従来、非負値データの集合を解析する方法の一つとして非負値行列因数分解(Nonnegative Matrix Factorization)(以下、NMFという。)が知られている。
【0003】
NMFを実現するアルゴリズムとして、Multiplicativeアルゴリズムが知られている(例えば、非特許文献1等)。NMFを実現する方法として、情報理論的クラスタリング(Information−Theoretic Clustering)を用いる方法が知られている(例えば、非特許文献2等)。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】”CONVERGENCE−GUARANTEED MULTIPLICATIVE ALGORITHMS FOR NONNEGATIVE MATRIX FACTORIZATION WITH β−DIVERGENCE”,InProc.MLSP 2010,pp.283−288,2010.
【非特許文献2】”競合学習を用いた情報理論的クラスタリング”,電子情報通信学会論文誌 D Vol.J95−D,No.8,pp.1633−1643,2012.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来の方法では、NMFにおいて基底ベクトルを結合係数によって線形結合することを考慮していない結合係数を用いるため、優れた解に到達できない場合、又はNMFの計算に十分な基底ベクトル(Vector)を出力できない場合があった。
【0006】
本発明の1つの側面は、優れた解に到達できる、及びNMFの計算に十分な基底ベクトルを出力できる計算処理装置、計算処理方法、計算処理システム、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
一態様における、基底ベクトルを出力する計算処理装置であって、複数の入力ベクトルを入力する入力処理を行う入力部と、前記入力ベクトルをそれぞれ正規化する正規化処理を行う第一正規化部と、前記正規化処理されたベクトルを記憶する記憶部と、前記記憶部が記憶するベクトルから選択される第一ベクトルの確率分布と、前記入力処理で入力する前記入力ベクトルから選択される第二ベクトルの確率分布に基づいて、前記第一ベクトルの前記第二ベクトルに対する類似の度合を示す第一評価値をそれぞれ計算する第一評価値計算部と、前記第一ベクトルのうち、前記第一評価値に基づいて前記第二ベクトルに最も類似である第三ベクトルを抽出し、前記第三ベクトルと前記第一ベクトルを組み合わせて基底ベクトル部分集合を生成する部分集合生成部と、前記第一評価値を指数とする指数関数によって結合係数を計算する結合係数計算部と、前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルに対応する前記結合係数、及び前記部分集合生成部が生成する前記基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する積値計算部と、前記積値に基づいて更新値を計算する更新値計算部と、前記積値の総和を計算して積値総和を計算する積値総和計算部と、前記積値総和を正規化して結合ベクトルを計算する第二正規化部と、前記結合ベクトルの確率分布と、前記第二ベクトルの確率分布に基づいて、前記結合ベクトルの前記第二ベクトルに対する類似の度合を示す第二評価値をそれぞれ計算する第二評価値計算部と、前記第二評価値に基づいて前記部分集合生成部が生成する前記基底ベクトル部分集合から勝者部分集合を選出する勝者部分集合選出部と、前記基底ベクトル部分集合の基底ベクトルが前記勝者部分集合に属しているか否かに基づいて前記記憶部が記憶する前記ベクトルを前記更新値で更新するか否かを判断する更新実行判断部と、出力条件に基づいて前記記憶部が記憶するベクトルを前記基底ベクトルとして出力する出力部とを有することを特徴とする。
【発明の効果】
【0008】
優れた解に到達できる、及びNMFの計算に十分な基底ベクトルを出力できる計算処理装置、計算処理方法、計算処理システム、及びプログラムを提供することができる。
【図面の簡単な説明】
【0009】
図1】本発明の一実施形態に係る計算処理装置のハードウェア構成の一例を説明するブロック図である。
図2】本発明の一実施形態に係る計算処理装置による全体処理の一例を説明するフローチャートである。
図3】本発明の一実施形態に係る計算処理装置の機能構成の一例を説明する機能ブロック図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態について説明する。
【0011】
NMFにおいて、計算の対象となるデータがM次元N個の入力ベクトルx{i=1,・・・,N}の集合である場合、入力ベクトルxの集合は、M次元K個(K<N)の基底ベクトルw{k=1,・・・,K}の線形結合を用いる下記(1)式で近似できる。(1)式では、基底系、即ち基底ベクトルの集合を計算する。
【0012】
【数1】
【0013】
入力ベクトルを列ベクトルとして束ねてM×Nの非負値行列Xで示す場合、非負値行列Xは、基底ベクトルを列ベクトルとして束ねたM×Kの基底行列W、及びK×Nの係数行列Hを用いて下記(2)式のように近似できる。
【0014】
【数2】
【0015】
本発明の一実施形態に係る計算処理装置は、(2)式の基底行列Wを計算する計算処理装置である。
【0016】
<ハードウェア構成>
計算処理装置は、例えばPC(Personal Computer)10である。以下、計算処理装置がPC10である場合を例に説明する。
【0017】
図1は、本発明の一実施形態に係る計算処理装置のハードウェア構成の一例を説明するブロック図である。
【0018】
PC10は、CPU(Central Processing Unit)10H1と、記憶装置10H2と、ネットワークI/F(interface)10H3と、入力装置10H4と、出力装置10H5とを有する。
【0019】
CPU10H1は、PC10が行う各処理を実現するための演算、及び各ハードウェアの制御を行う。
【0020】
記憶装置10H2は、CPU10H1が用いるデータ、ファームウェアを含む処理を実行するためのプログラム、及び設定等を記憶する。記憶装置10H2は、いわゆるメモリ(Memory)等である。PC10は、補助記憶装置(図示せず)を有してもよい。
【0021】
ネットワークI/F10H3は、ネットワークを介して、データをPC10の外部装置と入出力するためのインタフェースである。ネットワークI/F10H3は、例えばNIC(Network Interface Card)、コネクタ、及びドライバ等である。
【0022】
入力装置10H4は、PC10にユーザの操作、及びデータを入力するための装置である。入力装置10H4は、例えばキーボード、及びコネクタ等である。
【0023】
出力装置10H5は、PC10からユーザに処理結果、及びデータの内容等を出力するための装置である。出力装置10H5は、例えばディスプレイ、及びコネクタ等である。
【0024】
PC10の各ハードウェアは、バス(Bus)を介して相互に接続される。
【0025】
なお、計算処理装置は、PCに限られない。計算処理装置は、サーバ等の情報処理装置でもよい。
【0026】
また、PC10のハードウェア構成は、図示した構成に限られない。ハードウェア構成は、例えば各ハードウェアが行う処理、及び記憶の一部、又は全部を分散、冗長、又は並列に行う装置(図示せず)を別に有する構成、又は外部装置(図示せず)が接続している構成でもよい。
【0027】
<全体処理>
図2は、本発明の一実施形態に係る計算処理装置による全体処理の一例を説明するフローチャートである。
【0028】
ステップS0201では、PC10は、入力パラメータの入力処理を行う。入力処理は、PC10が各処理に用いる入力パラメータINを入力する処理である。入力パラメータINは、例えば入力ベクトルx、第一評価値計算で用いる混合比α、及び更新値計算で用いる学習率γ等である。入力パラメータINは、出力条件の判断に用いる終了回数Tである。入力パラメータINは、勝ち回数条件の判断に用いる閾値θである。入力パラメータINは、基底ベクトル数条件の判断に用いる総基底ベクトル数Kである。
【0029】
終了回数Tは、基底ベクトル集合を生成する際の総学習回数を示す値である。
【0030】
閾値θは、勝ち回数条件の判断において、各基底ベクトルにそれぞれ設定される勝ち回数vが勝ち回数条件を満たしているか否かをそれぞれ判断するための値である。更新処理が行う場合、勝ち回数vは、加算される値である。勝ち回数条件、及び基底ベクトル数条件が満たされている場合、勝ち回数vは、初期化される値である。
【0031】
ステップS0202では、PC10は、初期化処理を行う。初期化処理では、PC10は、入力ベクトルからランダムに入力ベクトルを選択し、選択された入力ベクトルをL1正規化する処理を行う。L1正規化する処理は、ベクトルの各次元の係数の絶対値の総和が「1」となるように正規化する処理である。正規化の処理は、ベクトルを他のベクトルと比較できるように、所定の数値で割り算する処理等である。PC10は、L1正規化された入力ベクトルを記憶する。
【0032】
以下、L1正規化されたベクトルの各次元がm{m=1,・・・,M}であるとし、ベクトルのm次元目の値は、pとする。
【0033】
初期化処理は、基底ベクトル数qに「1」を設定する処理である。初期化処理は、勝ち回数vに「0」を設定する処理である。初期化処理は、学習回数tに「0」を設定する処理である。
【0034】
ステップS0203では、PC10は、勝ち回数条件、及び基底ベクトル数条件を満たしているか否かの判断を行う。PC10は、勝ち回数条件を満たしているか否かを、勝ち回数vが閾値θ以上の値であるか否かによって判断する。PC10は、基底ベクトル数条件を満たしているか否かを、基底ベクトル数qが総基底ベクトル数Kより小さい値であるか否かによって判断する。
【0035】
ステップS0202でPC10が勝ち回数条件、かつ、基底ベクトル数条件を満たしていると判断する場合(ステップS0203でYES)、PC10は、ステップS0216に進む。ステップS0202でPC10が勝ち回数条件、又は基底ベクトル数条件を満たしていないと判断する場合(ステップS0203でNO)、PC10は、ステップS0204に進む。
【0036】
ステップS0204では、PC10は、第一評価値計算処理を行う。第一評価値計算処理は、入力ベクトルから基底ベクトル数qの基底ベクトルwを選択する処理である。選択する基底ベクトルwを第一ベクトルw{k=1,・・・,q}とする(以下、第一ベクトルという)。第一ベクトルwの要素は、確率分布Qとする。
【0037】
第一評価値計算処理は、入力ベクトルの集合から1つの入力ベクトルを選択し、選択された入力ベクトルをL1正規化する処理を行う。以下、第一評価値計算処理でL1正規化して生成されるベクトルを第二ベクトルRとする(以下、第二ベクトルという)。第二ベクトルの要素は、確率分布Pとする。
【0038】
第一評価値計算処理は、第一評価値dを計算する処理である。第一評価値dは、第一ベクトルwの第二ベクトルRに対する類似の度合を示す値である。第一評価値dは、例えば「ひずみ」で示す値である。「ひずみ」は、例えば下記(3)式で示す第二ベクトルRの確率分布Pに対する各第一ベクトルwの確率分布Qのskewダイバージェンス(Divergence)で計算される値である。
【0039】
なお、第一評価値dは、「ひずみ」で示す場合に限られない。第一評価値dは、コサイン(cos)類似度等で計算される類似度の値でもよい。
【0040】
【数3】
【0041】
(3)式において、DKL(P,Q)は、PのQに対するカルバック・ライブラリー・ダイバージェンス(Kullback−Leibler Divergence)である。(3)式において、混合比αには、例えば計算パフォーマンスを向上できるように、混合比α=0.99の値が入力される。
【0042】
ステップS0205では、PC10は、結合係数計算処理を行う。結合係数計算処理は、下記(4)式によって、結合係数gを計算する処理である。結合係数gは、下記(4)式で示すように、第一評価値dを指数とした指数関数で計算される値である。
【0043】
【数4】
【0044】
ステップS0206では、PC10は、基底ベクトル部分集合を生成する部分集合生成処理を行う。部分集合生成処理は、PC10が第一評価値dに基づいて第二ベクトルRに最も類似の第一ベクトルwを抽出する処理である。以下、抽出される第二ベクトルRに最も類似の第一ベクトルwを第三ベクトルとする(以下、第三ベクトルという)。
【0045】
第一評価値dが「ひずみ」の場合、第三ベクトルは、第一評価値dの値が最も小さい値の第一ベクトルwである。第一評価値dが類似度の場合、第三ベクトルは、第一評価値dの値が最も大きい値の第一ベクトルwである。
【0046】
部分集合生成処理は、PC10が、第三ベクトルと第一ベクトルwを組み合わせて基底ベクトル部分集合Sを生成する処理である。基底ベクトル部分集合Sは、第三ベクトル単独のベクトルを有してもよい。基底ベクトル部分集合Sは、第三ベクトルと2以上の第一ベクトルwを組み合わせたベクトルを有してもよい。
【0047】
以下、基底ベクトル部分集合群が、第三ベクトルと第一ベクトルwを組み合わせて生成する(q−1)個の基底ベクトル部分集合Sを有する場合を例に説明する。なお、基底ベクトル部分集合群は、(q−1)個の基底ベクトル部分集合Sを有する場合に限られない。基底ベクトル部分集合群は、例えば第三ベクトルと2以上の第一ベクトルwを組み合わせた基底ベクトル部分集合を有し、q個以上の基底ベクトル部分集合を有する基底ベクトル部分集合群であってもよい。
【0048】
以下、基底ベクトル部分集合の基底ベクトルをwで示し、基底ベクトルwに対応する結合係数をgで示す。
【0049】
ステップS0207では、PC10は、更新値計算処理を行う。
【0050】
更新値計算処理は、PC10が、各ベクトルの各次元の値m{m=1,・・・,M}について、結合係数g、及び基底ベクトルwの積である積値gを計算する処理である。更新値計算処理は、PC10が下記(5)式に基づいて、積値gが最大となる基底ベクトルの添字cを算出する処理である。
【0051】
【数5】
【0052】
同じ積値gとなる複数の添字cが計算された場合、PC10は、値が小さい方を添字cとして算出する。
【0053】
更新値計算処理は、PC10が更新値を計算する処理である。k番目の基底ベクトルのm次元目をwmとする場合、更新値は、下記(6)式に基づいて計算される値である。
【0054】
【数6】
【0055】
(6)式において、c=kの場合、更新値は、入力ベクトルに対応する次元の値を反映した値である。(6)式において、c≠kの場合、更新値は、基底ベクトルのL1ノルム(Norm)を一定にするための値である。
【0056】
(6)式において、学習率γは、各更新値に共通して用いる値である。学習率γには、例えば計算パフォーマンスを向上できるように、学習率γ=0.01の値が入力される。
【0057】
PC10は、学習率γに基づいて一時的学習率γ’を計算する。一時的学習率γ’は、下記(7)式に基づいて計算される値である。
【0058】
【数7】
【0059】
(7)式において、「c=k」は、c=kとなるすべてのmを計算対象とすることを示す。図3においても同様である。
【0060】
ステップS0208では、PC10は、結合ベクトル計算処理を行う。
【0061】
結合ベクトル計算処理は、PC10が結合係数計算処理で計算した結合係数gに基づいて、基底ベクトル部分集合Sに属する基底ベクトルを線形結合する処理である。線形結合は、下記(8)式に基づいて行われる。
【0062】
【数8】
【0063】
結合ベクトル計算処理は、PC10が基底ベクトル部分集合Sに属する基底ベクトルを線形結合するために、積値gの総和を計算して積値総和を計算する処理である。結合ベクトル計算処理は、PC10が、積値総和をL1正規化して結合ベクトルρ{k=1,・・・,q−1}を計算する処理である。結合ベクトルρの要素は、確率分布Qとする。
【0064】
ステップS0209では、PC10は、第二評価値計算処理を行う。第二評価値は、第一評価値と同様に、例えば「ひずみ」で示す値である。「ひずみ」は、第一評価値と同様に、第二ベクトルRの確率分布Pに対する各結合ベクトルρの確率分布Qのskewダイバージェンスで計算される値である。なお、第二評価値は、第一評価値dと同様に、コサイン類似度等で計算される類似度の値でもよい。
【0065】
ステップS0210では、PC10は、勝者部分集合選出処理を行う。勝者部分集合選出処理は、PC10が、下記(9)式に基づいて勝者部分集合Sηを選出する処理である。即ち、勝者部分集合選出処理は、第二評価値である「ひずみ」が最も小さいベクトルの添字ηを抽出し、抽出された添字ηのベクトルを選出する処理である。同じ評価値となる複数の添字が抽出された場合、PC10は、値が小さい方を添字ηとして抽出する。
【0066】
【数9】
【0067】
ステップS0211では、PC10は、更新値に基づく更新を行うか否かを判断する。ステップS0211では、PC10は、選出した勝者部分集合Sηに基づいて判断する。PC10が勝者部分集合Sηに属する基底ベクトルと判断する場合(ステップS0211でYES)、PC10は、ステップS0212に進む。PC10が勝者部分集合Sηに属しない基底ベクトルと判断する場合(ステップS0211でNO)、PC10は、ステップS0213に進む。
【0068】
ステップS0212では、PC10は、勝者部分集合に対する処理を行う。勝者部分集合Sηに属する基底ベクトルの場合、勝者部分集合に対する処理は、PC10が更新値を記憶する処理である。勝者部分集合に対する処理は、PC10が記憶していた基底ベクトルを更新値によって上書きする処理である。
【0069】
勝者部分集合に対する処理は、PC10が勝者部分集合Sηに属する基底ベクトルについて勝ち回数vを更新する処理である。各基底ベクトルに対応する勝ち回数は、下記(10)式に基づいて更新される。
【0070】
【数10】
【0071】
(10)式において、「c=k」は、c=kとなるすべてのmを計算対象とすることを示す。
【0072】
ステップS0213では、PC10は、学習回数tをカウントアップする処理を行う。
【0073】
ステップS0214では、PC10は、出力条件を満たしているか否かの判断を行う。PC10は、学習回数t、及び終了回数Tが等しいか否かによって判断を行う。学習回数t、及び終了回数Tが等しい場合(ステップS0214でYES)、PC10は、ステップS0215に進む。学習回数t、及び終了回数Tが等しくない場合(ステップS0214でNO)、PC10は、ステップS0203に戻る。
【0074】
ステップS0215では、PC10は、記憶している基底ベクトルを出力する処理を行う。
【0075】
ステップS0216では、PC10は、基底ベクトルを生成する処理を行う。ステップS0216では、PC10は、勝ち回数vが閾値θ以上となったベクトルと同じ値を持つ基底ベクトルを生成する処理を行う。PC10は、生成した基底ベクトルを記憶する。
【0076】
ステップS0217では、PC10は、勝ち回数を初期化する処理を行う。ステップS0217の初期化処理は、ステップS0203の処理と同様に、勝ち回数vに「0」を設定する処理である。
【0077】
ステップS0218では、PC10は、基底ベクトル数qをカウントアップする処理を行う。
【0078】
<機能構成>
図3は、本発明の一実施形態に係る計算処理装置の機能構成の一例を説明する機能ブロック図である。
【0079】
PC10は、入力部10F1と、第一正規化部10F2と、記憶部10F3と、第一評価値計算部10F4と、部分集合生成部10F5と、結合係数計算部10F6と、積値計算部10F7と、更新値計算部10F8と、積値総和計算部10F9と、第二正規化部10F10と、第二評価値計算部10F11と、勝者部分集合選出部10F12と、更新実行判断部10F13と、出力部10F14と、勝ち条件判断部10F15と、基底ベクトル数条件判断部10F16と、制御部10F17とを有する。
【0080】
入力部10F1は、PC10に入力ベクトル等の入力パラメータINを入力する処理を行う。入力部10F1は、図1の入力装置10H4等によって実現される。
【0081】
第一正規化部10F2は、入力ベクトルをL1正規化する処理を行う。第一正規化部10F2は、図1のCPU10H1等によって実現される。
【0082】
記憶部10F3は、データ、及びパラメータを記憶する。記憶部10F3は、基底ベクトルを記憶する。記憶部10F3が記憶する基底ベクトルは、更新値による更新等によって上書きされる。記憶部10F3は、図1の記憶装置10H2等によって実現される。
【0083】
第一評価値計算部10F4は、第一評価値dを計算する処理を行う。第一評価値計算部10F4は、第一ベクトルの確率分布と、第二ベクトルの確率分布に基づいて、第一ベクトルの第二ベクトルに対する類似の度合を示す第一評価値を、それぞれの第一ベクトルについて計算する処理を行う。第一評価値計算部10F4は、図1のCPU10H1等によって実現される。
【0084】
部分集合生成部10F5は、第一評価値に基づいて三ベクトルを抽出し、第三ベクトルと第一ベクトルを組み合わせて基底ベクトル部分集合を生成する処理を行う。部分集合生成部10F5は、図1のCPU10H1等によって実現される。
【0085】
結合係数計算部10F6は、第一評価値を指数とする指数関数によって結合係数を計算する処理を行う。結合係数計算部10F6は図1のCPU10H1等によって実現される。
【0086】
積値計算部10F7は、基底ベクトル部分集合の基底ベクトルに対応する結合係数、及び基底ベクトル部分集合の基底ベクトルの各次元の値の積となる積値を計算する処理を行う。積値計算部10F7は、図1のCPU10H1等によって実現される。
【0087】
更新値計算部10F8は、積値等に基づいて更新値を計算する処理を行う。更新値計算部10F8は、図1のCPU10H1等によって実現される。
【0088】
積値総和計算部10F9は、積値の総和を計算して積値総和を計算する処理を行う。積値総和計算部10F9は、図1のCPU10H1等によって実現される。
【0089】
第二正規化部10F10は、積値総和を正規化して結合ベクトルを計算する処理を行う。第二正規化部10F10は、図1のCPU10H1等によって実現される。
【0090】
第二評価値計算部10F11は、結合ベクトルの確率分布と、第二ベクトルの確率分布に基づいて、結合ベクトルの第二ベクトルに対する類似の度合を示す第二評価値を、それぞれの結合ベクトルについて計算する処理を行う。第二評価値計算部10F11は、図1のCPU10H1等によって実現される。
【0091】
勝者部分集合選出部10F12は、第二評価値に基づいて部分集合生成部10F5が生成する基底ベクトル部分集合から勝者部分集合を選出する処理を行う。勝者部分集合選出部10F12は、図1のCPU10H1等によって実現される。
【0092】
更新実行判断部10F13は、基底ベクトル部分集合の基底ベクトルが勝者部分集合に属しているか否かに基づいて、記憶するベクトルを更新値で更新するか否かを判断する。更新実行判断部10F13は、図1のCPU10H1等によって実現される。
【0093】
出力部10F14は、出力条件に基づいてPC10が記憶するベクトルを基底ベクトルOUTとして出力する処理を行う。出力部10F14は、図1のCPU10H1等によって実現される。
【0094】
勝ち条件判断部10F15は、勝ち回数vが閾値θ以上の値であるか否かを判断する。勝ち条件判断部10F15は、図1のCPU10H1等によって実現される。
【0095】
基底ベクトル数条件判断部10F16は、基底ベクトル数qが総基底ベクトル数Kより小さい値であるか否かを判断する。基底ベクトル数条件判断部10F16は、図1のCPU10H1等によって実現される。
【0096】
制御部10F17は、PC10が行う各種処理を実現するために各ハードウェアを制御する。制御部10F17は、図1のCPU10H1等によって実現される。
【0097】
PC10は、NMFにおいて基底ベクトルを結合係数によって線形結合することを考慮した結合係数gを用いることによって、更新値を計算することができる。また、PC10は、結合係数gに基づいて第二評価値を計算することができ、第二評価値に基づいて勝者部分集合を選出することができる。PC10は、選出された勝者部分集合に属する基底ベクトルを更新値によって更新する。更新等によって、PC10が記憶する基底ベクトルは、逐次更新される。出力条件において、学習回数tが終了回数Tと等しい場合、PC10は、記憶している基底ベクトルを出力することができる。
【0098】
例えばランダムな初期値が基底ベクトルに設定される場合、解は、初期値に依存するため、設定される初期値によって、精度の良い優れた解とならない場合があった。
【0099】
また、結合係数によって線形結合することを考慮しない結合係数の場合、例えば係数行列において一つの基底ベクトルに対応する値が正値、かつ、他の値が「0」の場合、解は、NMFに用いる基底ベクトルとしては不十分な基底ベクトルとなる場合がある。
【0100】
NMFにおいて基底ベクトルを結合係数によって線形結合することを考慮した結合係数gを用いることで、PC10は、ランダムではない基底ベクトルを出力できる。
【0101】
NMFにおいて基底ベクトルを結合係数によって線形結合することを考慮した結合係数gを用いることで、PC10は、NMFの計算に十分な基底ベクトルを出力できる。
【0102】
PC10は、PC10が出力する基底ベクトルを例えば上記(2)式の基底行列Wに適用する。さらに、上記(2)式の係数行列Hに一定値を設定し、かつ、Multiplicativeアルゴリズム等を適用する場合、PC10は、近似精度の高いNMFを実現することができる。
【0103】
なお、実施形態で説明した1つの計算処理装置による構成は、一例であり、用途、又は目的に応じて様々なシステム構成があることは言うまでもない。例えば、各処理は、1以上の計算処理装置を有する計算処理システムによって実現されてもよい。計算処理システムは、ネットワーク等によって接続される計算処理装置を有する。計算処理システムは、ネットワークを介して1以上の計算処理装置(図示せず)に分散、冗長、又は並列に各種処理を処理させてもよい。
【0104】
また、実施形態は、説明した計算処理装置によって実現される場合に限られない。実施形態は、例えばCPUを有する計算処理装置、又は計算処理システムに各種処理を実行させるためのプログラムによって実現されてもよい。
【0105】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【0106】
10 PC
10H1 CPU
10H2 記憶装置
10H3 ネットワークI/F
10H4 入力装置
10H5 出力装置
10F1 入力部
10F2 第一正規化部
10F3 記憶部
10F4 第一評価値計算部
10F5 部分集合生成部
10F6 結合係数計算部
10F7 積値計算部
10F8 更新値計算部
10F9 積値総和計算部
10F10 第二正規化部
10F11 第二評価値計算部
10F12 勝者部分集合選出部
10F13 更新実行判断部
10F14 出力部
10F15 勝ち条件判断部
10F16 基底ベクトル数条件判断部
10F17 制御部
図1
図2
図3