JP6662754B2 - L1グラフ計算装置、l1グラフ計算方法及びl1グラフ計算プログラム - Google Patents

L1グラフ計算装置、l1グラフ計算方法及びl1グラフ計算プログラム Download PDF

Info

Publication number
JP6662754B2
JP6662754B2 JP2016215311A JP2016215311A JP6662754B2 JP 6662754 B2 JP6662754 B2 JP 6662754B2 JP 2016215311 A JP2016215311 A JP 2016215311A JP 2016215311 A JP2016215311 A JP 2016215311A JP 6662754 B2 JP6662754 B2 JP 6662754B2
Authority
JP
Japan
Prior art keywords
edge
weight
graph
edge set
calculation
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
JP2016215311A
Other languages
English (en)
Other versions
JP2018073285A (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.)
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 JP2016215311A priority Critical patent/JP6662754B2/ja
Publication of JP2018073285A publication Critical patent/JP2018073285A/ja
Application granted granted Critical
Publication of JP6662754B2 publication Critical patent/JP6662754B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、Lグラフ計算装置、Lグラフ計算方法及びLグラフ計算プログラムに関する。
グラフは基盤的なデータ構造であり、多次元データを解析する上で重要なデータ構造である。グラフ構造としてはk−近傍グラフが有名であるが、データのノイズに弱いという問題がある。この問題を解決するために、lassoにおけるL最適化を解くことで計算できるLグラフがMeinshausenらによって提案された(非特許文献1参照)。具体的に、非特許文献1記載の手法は、グラフの各ノードにlassoを適用し、lassoによって得られた疎な回帰結果をエッジの重みとするものである。このLグラフは、k−近傍グラフよりノイズに強いという特徴がある。
N. Meinshausen and P. Buhlmann, "High Dimensional Graphs and Variable Selection with the Lasso", The Annals of Statistics, 34(3):1436−1462, June 2006.
しかしながら、従来の手法では、lassoを用いてLグラフを計算するには高い計算コストが必要であり、Lグラフを高速に計算することが難しいという問題があった。これは、lassoでは座標降下法を用いて回帰を行うが、座標降下法は、繰り返し収束するまで重みを計算する必要があるためである。
本発明は、上記に鑑みてなされたものであって、lassoを用いてLグラフを高速に計算することができるLグラフ計算装置、Lグラフ計算方法及びLグラフ計算プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係るLグラフ計算装置は、lassoによるLグラフを計算するLグラフ計算装置であって、入力される多次元行列の特異値分解を計算するSVD計算部と、エッジの重みを計算する対象のノードを選択するノード選択部と、初めに重みを更新するエッジの集合を設定する第1エッジ集合設定部と、初めに重みを更新するエッジ集合に含まれるエッジの重みを収束するまで更新する第1重み更新部と、グラフの計算におけるパラメータの初期化を行うパラメータ初期化部と、重みを更新するエッジ集合として、特異値分解の計算結果を用いて、非零の重みを持ち得ないエッジを除外したエッジ集合を設定する第2エッジ集合設定部と、重みを更新するエッジ集合を、第2エッジ集合設定部が設定したエッジ集合に追加する追加エッジ計算部と、追加エッジ計算部が追加したエッジ集合から、非零の重みを有するエッジを、一つ一つ、重みを更新するエッジ集合に追加するエッジ追加部と、エッジ追加部がエッジを追加したエッジ集合に含まれるエッジの重みを、収束するまで更新する第2重み更新部と、選択されていないノードに対してエッジの重みを設定する重み設定部と、を有することを特徴する。
本発明によれば、lassoを用いてLグラフを高速に計算することができる。
図1は、本実施の形態1に係るLグラフ計算装置の要部構成の一例を示すブロック図である。 図2は、定義1を示す図である。 図3は、定義2を示す図である。 図4は、定義3を示す図である。 図5は、補題1を示す図である。 図6は、補題2を示す図である。 図7は、補題3を示す図である。 図8は、補題4を示す図である。 図9は、補題5を示す図である。 図10は、行列ΧのSVDを用いた近似方法を示す図である。 図11は、図10に示す定義4を示す図である。 図12は、補題6を示す図である。 図13は、補題7を示す図である。 図14は、定義5を示す図である。 図15は、補題8を示す図である。 図16は、実施の形態1に係るLグラフ計算処理のアルゴリズムを示す図である。 図17は、定理1を示す図である。 図18は、定理2を示す図である。 図19は、実施の形態1に係るLグラフ計算処理の流れを示すフローチャートである。 図20は、プログラムが実行されることにより、Lグラフ計算装置が実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[従来のlassoを用いたLグラフ計算手法]
まず、従来のlassoを用いたLグラフ計算手法について説明する。lassoによるLグラフでは、ノードが多次元データにおけるデータポイントに対応し、エッジが回帰における関係に対応する。ここで、pをグラフにおけるノードとし、Vをグラフにおけるノードの集合とすると、p∈Vであるようなノードを一つ一つ選択し、lassoを計算することによって、エッジの重みを求める。lassoは、ほとんどのノードに零の重みを与えるため、グラフは疎な構造となる。なお、各集合を示すシンボルは、明細書中ではアルファベットの大文字で示し、図面中ではアルファベットの大文字を中抜きした字体で示す。
Χ∈RN×Mを、N個のデータポイントと、M次元からなるデータとし、x=(χ[1],χ[2],・・・,χ[M])を、行列Χにおけるp番目の行ベクトルとすると、行ベクトルxは、p番目のデータポイント及びノードpに対応する。本実施の形態1ではベクトルxは、平均が0、分散が1に正規化されているものとする。
そして、wを1×Nの重みベクトルとし、そのu番目の要素tω[u]は、ノードuからpのエッジの重みとする。lassoによるLグラフ計算では、ω[p]=0として、以下の式(1)に示す目的関数を最小化するように重みを計算する。
Figure 0006662754
式(1)において最初の項は回帰のよる2乗誤差に対応し、2番目の項は重みのL制約に対応する。式(1)はチューニングパラメータλが大きくなるとグラフがより疎な構造を持つことを示している。もし行列Χがフル行ランクであれば式(1)は一つの解を持ち、そうでなければ解は一つにならない。
lassoを高速に解く方法として座標降下法がある。座標降下法は、収束するまでエッジの重みを一つ一つ更新するものである。具体的に、座標降下法では、以下の式(2)により重みの更新を行う。
Figure 0006662754
ここでS[・,・]は、以下の式(3)を用いて計算する。
Figure 0006662754
さらに、z[u|w]は、ノードuのベクトルwのパラメータであり、以下の式(4)を用いて計算する。
Figure 0006662754
Figure 0006662754
上記の式にみられるように、各パラメータは、以下の性質を有する。
Figure 0006662754
結果としてTを収束までの繰り返し計算回数としたときに、式(2)によりノードpへの重みを計算するにはO(dMT)の計算コストが必要になる。したがって、lassoによるLグラフを求めるためには、高い計算コストが必要になる。
[実施の形態1の概要]
本実施の形態1において用いられる手法によれば、より高速にlassoによるLグラフを計算することができる。まず、本実施の形態1の計算手法の概要を述べた後に、本実施の形態1による計算手法の詳細を述べる。
本実施の形態1では、重みを更新するエッジの集合を求めるために非零の重みを持ち得ない不要なエッジを枝狩りして、計算を高速化する。言い換えると、本実施の形態1では、必ず非零の重みをもつエッジに対してのみ、収束するまで重みの更新を行い、それ以外のエッジについては重みを更新する計算処理を実行しない。
続いて、本実施の形態1では、非零の重みを持つ可能性のあるエッジに対して更新を行う。この場合、本実施の形態1では、非零の重みを持つエッジを特定するために、KKT(Karush-Kuhn-Tucker)条件のスコアの上限値と下限値とを計算する。KKT条件は、誤って枝狩りされたエッジを見つけるために提案されたものである(詳細は、R. Tibshirani, J. Bien, J. Friedman, T. Hastie, N. Simon, J. Taylor and R. J. Tibshirani, “Strong Rules for Discarding Predictors in Lasso-type Problems”, Journal of the Royal Statistical Society: Series B (Statistical Methodology), 74(2):245−266, 2012.参照)。
さらに、本実施の形態1では、高速に更新を行うために2つの計算方法を利用する。初めの計算方法は、全ての重みに対して共通であるlassoの残差を用いたものである(後述の式(8),式(9)参照)。この方法では、各重みの更新に異なる回帰結果を用いなくてよいため高速な計算が可能になる。本実施の形態1では、この計算方法を重みが零である場合の更新に用いる。
一方、本実施の形態1では、もし重みが非零であれば、既存研究で提案されている内積を用いる計算方法によって更新を行う(後述の式(10)参照。詳細は、J. Friedman, T. Hastie, and R. Tibshirani, “Regularization Paths for Generalized Linear Models via Coordinate Descent”, Journal of Statistical Software, 33(1):1−22, 2 2010.参照)。
このように、本実施の形態1では、重み更新についての繰り返し計算を行う前に、非零の重みを持ち得ないエッジを枝狩りする。言い換えると、本実施の形態1では、非零の重みを持ち得ないエッジについては、重み更新についての繰り返し計算を行わない。
さらに、本実施の形態1では、各重み更新についての繰り返し計算において重みが零になるエッジを枝狩りする。言い換えると、本実施の形態1では、エッジが非零の重みを持たなければ、このエッジに対し、重み更新についての繰り返し計算を行わない。
したがって、本実施の形態1では、従来の手法よりも繰り返し計算を少ない回数とすることができるため、lassoを用いても高速にLグラフを計算することができる。
[実施の形態1の構成]
まず、図1を用いて、実施の形態1に係るLグラフ計算装置の構成について説明する。図1は、実施の形態1に係るLグラフ計算装置の要部構成の一例を示すブロック図である。図1に示すように、Lグラフ計算装置1は、SVD(Singular Value Decomposition:特異値分解)計算部11、ノード選択部12、第1エッジ集合設定部13、第1重み更新部14、パラメータ初期化部15、第2エッジ集合設定部16、追加エッジ計算部17、エッジ追加部18、第2重み更新部19及び重み設定部20を有する。
SVD計算部11は、入力される多次元行列の特異値分解を計算する。ノード選択部12は、エッジの重みを計算する対象のノードを選択する。そして、ノード選択部12の後段の各部は、この計算対象のノードに対して重み計算を繰り返し行う。第1エッジ集合設定部13は、初めに重みを更新するエッジの集合を設定する。第1重み更新部14は、第1エッジ集合設定部13によって設定されたエッジ集合に含まれるエッジの重みを収束するまで更新する。パラメータ初期化部15は、グラフの計算におけるパラメータの初期化を行う。
そして、第2エッジ集合設定部16は、重みを更新するエッジの集合として、特異値分解の計算結果を用いて、非零の重みを持ち得ないエッジを除外したエッジ集合を設定する。追加エッジ計算部17は、重みを更新するエッジ集合を、第2エッジ集合設定部16が設定したエッジ集合に追加する。エッジ追加部18は、追加エッジ計算部17が追加したエッジ集合から、非零の重みを有するエッジを、一つ一つ、重みを更新するエッジ集合に追加する。第2重み更新部19は、エッジ追加部18がエッジを追加したエッジ集合に含まれるエッジの重みを、収束するまで更新する。重み設定部20は、ノード選択部12によって選択されていないノードに対してエッジの重みを設定する。これらの第2エッジ集合設定部16、追加エッジ計算部17、エッジ追加部18、第2重み更新部19及び重み設定部20は、エッジの重み更新についての繰り返し計算を行う。
[エッジ集合設定処理]
ここで、実施の形態1に係るLグラフ計算方法のうち、エッジの重み更新についての繰り返し計算のうちのエッジ集合設定処理について説明する。まず、重みの更新のための計算を前に、第2エッジ集合設定部16が、2つのエッジ集合M[w]とエッジ集合C[w]とを計算する。エッジ集合M[w]は、重みベクトルwを用いて更新を行ったときに、重みが非零に必ずなるエッジの集合である。また、エッジ集合C[w]は、重みベクトルwを用いて更新したときに重みが非零になる可能性のあるエッジの集合である。
理論的に、エッジ集合M[w]とエッジ集合C[w]とはKKT条件に基づいている。したがって、第2エッジ集合設定部16は、エッジ集合M[w]とエッジ集合C[w]とを、KKT条件のスコアの上限値と下限値とを用いて求める。第2エッジ集合設定部16は、SVD計算結果を用いて求めたKKT条件のスコアの上限値と下限値とを用いて、非零の重みを持ち得ない不要なエッジを特定し、このエッジを枝狩りする。
そこで、エッジ集合の定義を述べる前に、KKT条件について述べる。KKT条件は、図2に示す定義1のように定義される。図2は、定義1を示す図である。
u∈V/pであるようなノードuに対して、もし、ノードuからpのエッジの重みが重みベクトルwで更新されたとき、K[u|w]は、更新後の、w[u]の値により、以下の式(7)のように計算できる。
Figure 0006662754
直接KKT条件のスコアを計算すれば重みが非零になるか否かが分かる。ただし、KKT条件のスコアを計算するためには、最長でO(NM)の計算コストがかかる。これは、式(A)における行ベクトルx、重みベクトルw、行列Χ、xの転置x の大きさが、1×M、1×N、N×M、M×1であるためである。そこで、本実施の形態1では、第2エッジ集合設定部16が、KKT条件のスコアの上限値と下限値との計算を高速化できるように定義づけを行っている。なお、KKT条件のスコアの上限値と下限値との計算方法は後述する。
続いて、第2エッジ集合設定部16は、エッジ集合M[w]について、図3に示す定義2のように計算する。図3は、定義2を示す図である。第2エッジ集合設定部16は、エッジ集合C[w]について、図4に示す定義3のように計算する。図4は、定義3を示す図である。そして、エッジ集合については、補題1,2が成り立つ。図5は、補題1を示す図である。また、図6は、補題2を示す図である。
エッジ集合M[w]とエッジ集合C[w]との関係については、図7に示す補題3が成り立つ。図7は、補題3を示す図である。このように、第2エッジ集合設定部16は、定義2,3を満たすエッジ集合M[w]とエッジ集合C[w]を求める。言い換えると、第2エッジ集合設定部16は、非零の重みを持ち得ない不要なエッジを除外したエッジ集合M[w]とエッジ集合C[w]を求める。
[重み更新処理]
続いて、エッジの重み更新についての繰り返し計算のうちの重み更新処理における計算方法について述べる。Lグラフ計算装置1では、二つの計算方法を用いる。まず、初めの計算方法(第1の計算方法)について説明する。初めの計算方法として、ノードuのベクトルwのパラメータであるパラメータz[u|w]を計算し、エッジごとに異なる解析結果を使わずともよい方法を用いる。具体的には、以下の式(8)を用いて計算を行う。
Figure 0006662754
ここでr[i]は、要素χ[i]のlassoの回帰結果における残差であり、以下の式(9)を用いて計算される。
Figure 0006662754
式(9)で使用される残差は、各重みに対して同じである。このため、もし回帰結果が更新後に変わることがなければ、パラメータz[u|w]を高速に計算することができる。パラメータz[u|w]を計算するために式(8)において必要になる計算コストは、O(M)である。この式(8)に対し、以下の補題4に示す性質が成り立つ。図8は、補題4を示す図である。
エッジ追加部18は、重み更新の前に、もしエッジが零の重みを持てば、式(8)を用いて重みベクトルに関するパラメータz[u|w]を計算する。この零の重みを持つエッジは、更新後も、再度、零の重みを持つことが期待されるため、残差は、更新の前後で同じ値を持つことが期待できる。このため、次の繰り返し計算においても、効果的に残差r[i]を利用することができる。言い換えると、この零の重みを持つエッジは、更新後も、再度、零の重みを持つため、次の重み更新についても繰り返し計算の対象から除外することができる。
一方、エッジが非零の重みを更新の後で持つ場合であっても、第2重み更新部19は、式(9)を用いることで、逐次的に、残差r[i]をO(1)の計算コストで更新することができる。
そして、第2重み更新部19は、もしエッジが更新の前に非零の重みを持つ場合には、既存研究で提案されている以下の内積を用いる式(10)を用いて、重みを更新する。
Figure 0006662754
次に、重み更新についての繰り返し計算において、更新対象となるエッジ集合について説明する。前述したように、Lグラフ計算装置1では、重み更新についての繰り返し計算の前に、エッジ集合M[w]とエッジ集合C[w]とを計算する。Uを、更新を行うエッジの集合としたときに、素朴にはU=M[w]またはU=C[w]とすることにより更新を行うエッジを減らすことができる。
ただし、Lグラフ計算装置1では、KKT条件の上限値と下限値とを用いてエッジ集合M[w]とエッジ集合C[w]とを求めているため、エッジ集合には重みが零になるエッジが含まれる。そして、Lグラフ計算装置1では、重みが零になるエッジに対して繰り返し計算が行われることがあり得る。
そこで、高速に重みの更新を行うために、Lグラフ計算装置1では、エッジ集合Aからエッジ集合Uへ一つ一つエッジを足す処理を行う。Lグラフ計算装置1では、まず、第1重み更新部14が、エッジ集合Uを非零の重みを持つエッジから求め、そのエッジ集合Uに対して収束するまで重みの更新を行う。収束後、第2エッジ集合設定部16は、エッジ集合M[w]を計算し、エッジを加える集合AをA=M[w]\Uとして計算する。
このエッジ集合Aのエッジに対して、追加エッジ計算部17、エッジ追加部18及び第2重み更新部19が、一つ一つ重みの更新を行う。そして、もし、あるエッジが非零の重みを持つ場合には、エッジ追加部18が、そのエッジをエッジ集合Uへ追加し、第2重み更新部19が、集合Uについて、エッジの重みが収束するまで重み更新について繰り返し計算を行う。
一方、あるエッジが非零の重みを持たない場合、エッジ追加部18は、このエッジに対して、繰り返し計算をすることなく枝狩りを行う。同様に、第2エッジ集合設定部16は、A=C[w]\Uを計算し、追加エッジ計算部17、エッジ追加部18及び第2重み更新部19が、このエッジ集合Aのエッジに対して重みの更新を行う。
グラフ計算装置1は、もしエッジが非零の重みを持たなければ、そのエッジの重み更新のための繰り返し計算を行わない。このため、Lグラフ計算装置1では、全てのエッジについてエッジの重み更新のための繰り返し計算を行っていた従来装置と比較し、高速な計算処理が可能になる。理論的には、この手法は、以下の補題5に示す性質に基づいている。図9は、補題5を示す図である。
補題5にあるように、ノードuからpへのエッジの重みの更新処理において、その重み更新についての繰り返し計算において、零であり座標降下法により収束する場合には、この結果は、座標降下法による解析結果に影響しない。したがって、重み更新についての繰り返し計算において零であるとともに座標降下法により収束するエッジについては、このエッジを枝狩りできることを示している。上記のように、Lグラフ計算装置1は、エッジが非零の重みを持たない場合には、そのエッジの繰り返し計算を行わないため、全てのエッジについてエッジの重み更新のための繰り返し計算を行っていた従来装置と比較して高速な処理が可能になる。
[KKTスコアの上限値と下限値とを求めるための計算処理]
次に、KKTスコアの上限値と下限値とを求めるための計算処理について説明する。上限値と下限値を計算する方法として、Lグラフ計算装置1は、SVDを用いる方法と、逐次的に更新する方法とを用いる。
まず、SVDを用いる方法について説明する。この方法では、行列Χを、SVDを用いて、図10に示すように近似する。図10は、行列ΧのSVDを用いた近似方法を示す図である。そして、図11は、図10に示す定義4を示す図である。そして、KKT条件のスコアの上限値と下限値とに対し、以下の補題6に示す性質が成り立つ。図12は、補題6を示す図である。
次に、逐次的に上限値と下限値とを計算する方法について説明する。前述したように、Lグラフ計算装置1では、第2エッジ集合設定部16、追加エッジ計算部17、エッジ追加部18及び第2重み更新部19が、エッジ集合Aからエッジを一つ一つエッジ集合Uに足しながらエッジの重みを更新する。この時、SVDによる上限値と下限値とを用いることにより高速にエッジ集合M[w]とC[w]を計算することができる。ここで、さらに、高速にエッジ集合を計算するために、第2エッジ集合設定部16は、逐次的にKKT条件のスコアの上限値と下限値とを計算する方法を用いる。
逐次的に上限値と下限値を更新する方法を述べる前に、まず、KKT条件とパラメータz[u|w]との関係について説明する。図13は、補題7を示す図である。図13の補題7は、KKT条件とパラメータz[u|w]との関係を示すものである。
補題7は、もし(1)あるエッジがエッジ集合に含まれ、(2)そのエッジのパラメータz[u|w]が既に計算済みであれば、KKT条件のスコアはO(1)の計算コストで求めることができることを示している。第2エッジ集合設定部16は、エッジを追加した後、上限値と下限値とを、以下の定義5に示すように逐次的に計算する。図14は、定義5を示す図である。
そして、KKT条件のスコアの上限値及び下限値については、補題8に示す性質が成り立つ。図15は、補題8を示す図である。
前述したように、Lグラフ計算装置1は、高速に重みを更新するために追加されたエッジが回帰結果を変えることがあるたびに回帰の残差を計算する。座標降下法は、重みを一つずつ更新するため、式(H)(図14参照)から、δ とΔをO(1)の計算コストで更新することができる。Lグラフ計算装置1は、結果として定義5を用いることによって、KKT条件のスコアの上限値と下限値とを逐次的にO(1)の計算コストで更新することができる。
なお、Lグラフ計算装置1において、KKT条件のスコアの上限値と下限値を計算するという観点では、定義5で与えられる逐次的な方法は、定義4で与えられるSVDを用いる方法と同じである。ただし、これらは、それぞれの計算方法がまったく異なるため、異なる上限値と下限値となる。さらに、逐次的な方法は、SVDによる方法より高速に上限値と下限値を計算することができる。このため、Lグラフ計算装置1は、まず逐次的な方法でKKT条件のスコアの上限値と下限値を計算し、それでも枝狩りできない場合にSVDによる方法を用いて上限値と下限値を計算する。
[アルゴリズム]
図16を参照して、Lグラフ計算装置1の各部の処理について説明する。図16は、実施の形態1に係るLグラフ計算処理のアルゴリズムを示す図である。図16に示すAlgorithm1では、行列Χ、チューニングパラメータλ、SVDのランクmを入力とし、行列Wを出力とする。Wは、そのp番目の行が重みベクトルwに対応するN×Nの行列である。Pは、重みを計算するために選択されたノードの集合である。実施の形態1では、Lグラフにおいてノードu to vの重みはノードv to uの重みと似ているという性質を用いて重みを初期化する。
SVD計算部11は、まずノード集合Pを初期化し、上限値と下限値を計算するために用いる行列ΧのSVDを計算する(Algorithm1の1,2行目)。そして、ノード選択部12は、重みベクトルに対して最大のLを持つノードを選択する(Algorithm1の4行目)。続いて、第1エッジ集合設定部13は、初めに重みを更新するエッジ集合Uを設定する(Algorithm1の5行目)。そして、第1重み更新部14は、式(10)を用いて非零の重みを持つエッジに対して更新を行い(Algorithm1の6行目)、パラメータ初期化部15は、KKT条件のスコアの上限値及び下限値を初期化する(Algorithm1の8行目)。
ここで、本実施の形態1では、2つのステップによって選択されたノードの重みを計算する。第2エッジ集合設定部16、追加エッジ計算部17、エッジ追加部18及び第2重み更新部19は、ノードの重みの更新についての計算における初めのステップにおいて、エッジ集合M[w]を用いる。続いて、第2エッジ集合設定部16、追加エッジ計算部17、エッジ追加部18及び第2重み更新部19は、ノードの重みの計算における次のステップにおいて、エッジ集合C[w]を用いる。
第2エッジ集合設定部16は、不要なエッジを枝刈りして更新処理回数を低減するために、逐次的な方法である定義5の方法を用いて、KKT条件のスコアの上限値と下限値を計算する(Algorithm1の11−12行目)。そして、第2エッジ集合設定部16は、エッジ集合M[w]またはエッジ集合C[w]との条件を確認する(Algorithm1の16行目及び24行目)。
続いて、エッジがエッジ集合の条件(定義2及び定義3)を満たす可能性がある場合には、第2エッジ集合設定部16が、SVDによって、すなわち、定義4の方法を用いて、ノードの上限値と下限値とを計算し(Algorithm1の17−19行目と25−27行目)、エッジ集合を決定する(Algorithm1の20行目と28行目)。
さらに、第2エッジ集合設定部16が、エッジ集合Uに一つ一つエッジを追加する。そのため、第2エッジ集合設定部16は、エッジ集合M[w]とエッジ集合C[w]を計算した後に、エッジを加えるエッジ集合AをA=M[w]\UまたはA=C[w]\Uとして計算する(Algorithm1の20行目と28行目)。もしエッジの重みが零であれば、補題5に示すように回帰結果に影響がなく、第2重み更新部19は、式(8)を用いて、その重みを高速に計算することができる(Algorithm1の30行目)。もし追加するエッジがなければ、重みは明らかに収束する。そのため、Lグラフ計算装置1では、エッジ集合Aが、A=0であれば、グラフを計算するステップを進める(Algorithm1の34−35行目)。
そして、重みの更新についての繰り返し計算の後、重み設定部20は、選択されなかったノードの重みを設定する(Algorithm1の37−38行目)。
なお、Algorithm1では、一つのスレッドで処理することを前提にしていたが、本実施の形態では、複数のスレッドで処理することも可能である。複数のスレッドで処理するため、ノードを複数のグループに分割し、並列に各グループに対してAlgorithm1を実行する。各グループにおいてエッジはすべてのノードから計算するために、並列処理を行ってもひとつのスレッドで処理するのと同じグラフを計算することができる。ノードを複数のグループに分割するためには、k-means法を用いる。k-means法は、一つのスレッドで実行するが、SVDを用いて次元数を削減しており、また、k-means++を用いて初期のシードを決定するため、高速にノードを分割することができる(詳細は、D. Arthur and S. Vassilvitskii, “k-means++: The Advantages of Careful Seeding”, In SODA, pages 1027−1035, 2007.参照)。
そして、このAlgorithm1に対して、定理1,2に示す性質が成り立つ。図17は、定理1を示す図である。図18は、定理2を示す図である。
[実施の形態1の処理]
次に、図19は、実施の形態1に係るLグラフ計算処理の流れを示すフローチャートである。
図19に示すように、まず、行列Χ、チューニングパラメータλ、SVDのランクmが入力されると(ステップS1)、SVD計算部11は、ノード集合Pを初期化し(ステップS2)、行列ΧのSVDを計算する(ステップS3)。そして、ノード選択部12は、次元数i、データポイント数Nを初期化し(ステップS4)、重みベクトルに対して最大のLを持つノードを選択する(ステップS5)。第1エッジ集合設定部13は、初めに重みを更新するエッジ集合Uを設定する(ステップS6)。続いて、第1重み更新部14は、式(10)を用いて非零の重みを持つエッジに対して更新を行い(ステップS7)、パラメータ初期化部15は、KKT条件のスコアの上限値及び下限値を初期化する(ステップS8〜ステップS10)。
続いて、第2エッジ集合設定部16は、ステップを初期化し(ステップS11)、逐次的な方法である定義5の方法を用いて、KKT条件のスコアの上限値と下限値を計算する(ステップS12〜ステップS14)。そして、第2エッジ集合設定部16は、ノードの重みの計算におけるステップが最初のステップであるか否かを判断する(ステップS15)。
第2エッジ集合設定部16は、ノードの重みの計算におけるステップが最初のステップであると判断した場合(ステップS15:Yes)、エッジ集合M[w]を初期化する(ステップS16)。第2エッジ集合設定部16は、各ノードuについて、エッジ集合M[w]の条件を確認し(ステップS17,ステップS18)、エッジ集合M[w]の条件を満たす場合には(ステップS18:Yes)、不要な更新処理を枝狩りするために、逐次的な方法である定義4の方法を用いて、KKT条件のスコアの上限値と下限値を計算する(ステップS19)。
第2エッジ集合設定部16は、計算したKKT条件のスコアの上限値と下限値とが定義2を満たすか否かを判断する(ステップS20)。第2エッジ集合設定部16は、計算した上限値と下限値とが定義2を満たすと判断した場合には(ステップS20:Yes)、このエッジをエッジ集合M[w]に追加する(ステップS21)。第2エッジ集合設定部16は、計算した上限値と下限値とが定義2を満たさないと判断した場合には(ステップS20:No)、このエッジを、エッジ集合M[w]に追加せず、枝刈りする。第2エッジ集合設定部16は、各ノードuについて、ステップS18〜ステップS21の処理を行う。
一方、第2エッジ集合設定部16は、ノードの重みの計算におけるステップが最初のステップでないと判断した場合(ステップS15:No)、エッジ集合C[w]を初期化する(ステップS24)。第2エッジ集合設定部16は、各ノードuについて、エッジ集合C[w]の条件を確認し(ステップS25,ステップS26)、エッジ集合C[w]の条件を満たす場合には(ステップS26:Yes)、不要な更新処理を枝狩りするために、逐次的な方法である定義4の方法を用いて、KKT条件のスコアの上限値と下限値を計算する(ステップS27)。
第2エッジ集合設定部16は、計算したKKT条件のスコアの上限値と下限値とが定義3を満たすか否かを判断する(ステップS28)。第2エッジ集合設定部16は、計算した上限値と下限値とが定義3を満たすと判断した場合には(ステップS28:Yes)、このエッジをエッジ集合C[w]に追加する(ステップS29)。第2エッジ集合設定部16は、計算した上限値と下限値とが定義3を満たさないと判断した場合には(ステップS28:No)、このエッジを、エッジ集合C[w]に追加せず、枝刈りする。第2エッジ集合設定部16は、各ノードuについて、ステップS26〜ステップS29の処理を行う。
そして、第2エッジ集合設定部16は、エッジ集合M[w]とエッジ集合C[w]を計算した後に、エッジを加えるエッジ集合AをA=M[w]\UまたはA=C[w]\Uとして計算する(ステップS23及びステップS31)。
続いて、第2重み更新部19は、各ノードuについて、式(8)式から重みを計算し(ステップS32,ステップS33)、計算した重みが非零であるか否かを判断する(ステップS34)。第2重み更新部19は、計算した重みが非零であると判断した場合には(ステップS34:Yes)、このエッジをエッジ集合Uに追加して式(10)を用いて収束するまで重みを更新する(ステップS35)、一方、第2重み更新部19は、計算した重みが非零でないと判断した場合には(ステップS34:No)、このエッジをエッジ集合Uに追加せず、枝刈りする。
そして、第2重み更新部19は、エッジ集合がA=0であるか否かを判断する。第2重み更新部19は、エッジ集合がA=0であれば(ステップS37:Yes)、グラフを計算するステップを進める(ステップS38)。エッジ集合がA=0でないと第2重み更新部19が判断した場合(ステップS37:No)、或いは、ステップS38終了後、Lグラフ計算装置1は、ステップが2以下であるか否かを判断する(ステップS39)。Lグラフ計算装置1は、ステップが2以下であると判断した場合(ステップS39:Yes)。ステップS12に戻る。
一方、ステップが2以下でないとLグラフ計算装置1が判断した場合(ステップS39:No)、選択されなかったノードをノード集合Pに追加しする(ステップS40)。そして、重み設定部20は、選択されなかったノードごとに、該ノードの重みを設定する(ステップS41〜ステップS43)。Lグラフ計算装置1は、各i、各Nについて、ステップS3以降の処理を終了した場合、行列Wをを出力する(ステップS45)。
[実施の形態1の効果]
このように、実施の形態1では、重み更新についての繰り返し計算を行う前に非零の重みを持ち得ないエッジを枝狩りしている。言い換えると、実施の形態1では、非零の重みを持ち得ないエッジについては重みを更新するための繰り返し計算を実行しない。さらに、本実施の形態1では、各重み更新についての繰り返し計算において重みが零になるエッジを枝狩りしている。したがって、本実施の形態1では、全てのエッジについてエッジの重み更新のための繰り返し計算を行っていた従来装置と比較し、重み更新についての繰り返し計算を少ない回数とすることができる。この結果、本実施の形態1によれば、lassoを用いて高速にLグラフを計算することができる。
[実施の形態1のシステム構成について]
図1に示したLグラフ計算装置1の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、Lグラフ計算装置1の機能の分散及び統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
また、Lグラフ計算装置1においておこなわれる各処理は、全部または任意の一部が、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、及び、CPU,GPUにより解析実行されるプログラムにて実現されてもよい。また、Lグラフ計算装置1においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述及び図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
[プログラム]
図20は、プログラムが実行されることにより、Lグラフ計算装置1が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、Lグラフ計算装置1の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、Lグラフ計算装置1における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1 Lグラフ計算装置
11 SVD計算部
12 ノード選択部
13 第1エッジ集合設定部
14 第1重み更新部
15 パラメータ初期化部
16 第2エッジ集合設定部
17 追加エッジ計算部
18 エッジ追加部
19 第2重み更新部
20 重み設定部

Claims (5)

  1. lassoによるLグラフを計算するLグラフ計算装置であって、
    入力される多次元行列の特異値分解を計算するSVD計算部と、
    エッジの重みを計算する対象のノードを選択するノード選択部と、
    初めに重みを更新するエッジの集合を設定する第1エッジ集合設定部と、
    前記初めに重みを更新するエッジ集合に含まれるエッジの重みを収束するまで更新する第1重み更新部と、
    グラフの計算におけるパラメータの初期化を行うパラメータ初期化部と、
    重みを更新するエッジ集合として、前記特異値分解の計算結果を用いて、非零の重みを持ち得ないエッジを除外したエッジ集合を設定する第2エッジ集合設定部と、
    重みを更新するエッジ集合を、前記第2エッジ集合設定部が設定したエッジ集合に追加する追加エッジ計算部と、
    前記追加エッジ計算部が追加したエッジ集合から、非零の重みを有するエッジを、一つ一つ、前記重みを更新するエッジ集合に追加するエッジ追加部と、
    前記エッジ追加部がエッジを追加したエッジ集合に含まれるエッジの重みを、収束するまで更新する第2重み更新部と、
    前記ノード選択部によって選択されていないノードに対してエッジの重みを設定する重み設定部と、
    を有することを特徴するLグラフ計算装置。
  2. 前記第2エッジ集合設定部は、前記特異値分解の計算結果を用いて求めたKKT(Karush-Kuhn-Tucker)条件のスコアの上限値及び下限値を用いて、前記非零の重みを持ち得ないエッジを特定することを特徴とする請求項1に記載のLグラフ計算装置。
  3. 前記エッジ追加部は、追加したエッジ集合のエッジに対し、lassoの回帰結果における残差を用いた演算式により重みを計算し、前記計算した重みが非零であるエッジを、前記重みを更新するエッジ集合に追加し、前記計算した重みが零であるエッジを、前記重みを更新するエッジ集合から除外することを特徴とする請求項1または2に記載のLグラフ計算装置。
  4. lassoによるLグラフを計算するLグラフ計算装置が行うLグラフ計算方法であって、
    入力される多次元行列の特異値分解を計算するSVD計算工程と、
    エッジの重みを計算する対象のノードを選択するノード選択工程と、
    初めに重みを更新するエッジの集合を設定する第1エッジ集合設定工程と、
    前記初めに重みを更新するエッジ集合に含まれるエッジの重みを収束するまで更新する第1重み更新工程と、
    グラフの計算におけるパラメータの初期化を行うパラメータ初期化工程と、
    重みを更新するエッジ集合として、前記特異値分解の計算結果を用いて、非零の重みを持ち得ないエッジを除外したエッジ集合を設定する第2エッジ集合設定工程と、
    重みを更新するエッジ集合を、前記第2エッジ集合設定工程において設定されたエッジ集合に追加する追加エッジ計算工程と、
    前記追加エッジ計算工程において追加したエッジ集合から、非零の重みを有するエッジを、一つ一つ、前記重みを更新するエッジ集合に追加するエッジ追加工程と、
    前記エッジ追加工程においてエッジを追加されたエッジ集合に含まれるエッジの重みを、収束するまで更新する第2重み更新工程と、
    前記ノード選択工程において選択されていないノードに対してエッジの重みを設定する重み設定工程と、
    を含んだことを特徴とするLグラフ計算方法。
  5. コンピュータを、請求項1〜3のいずれか一つに記載のLグラフ計算装置として機能させるためのLグラフ計算プログラム。
JP2016215311A 2016-11-02 2016-11-02 L1グラフ計算装置、l1グラフ計算方法及びl1グラフ計算プログラム Active JP6662754B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016215311A JP6662754B2 (ja) 2016-11-02 2016-11-02 L1グラフ計算装置、l1グラフ計算方法及びl1グラフ計算プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016215311A JP6662754B2 (ja) 2016-11-02 2016-11-02 L1グラフ計算装置、l1グラフ計算方法及びl1グラフ計算プログラム

Publications (2)

Publication Number Publication Date
JP2018073285A JP2018073285A (ja) 2018-05-10
JP6662754B2 true JP6662754B2 (ja) 2020-03-11

Family

ID=62115655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016215311A Active JP6662754B2 (ja) 2016-11-02 2016-11-02 L1グラフ計算装置、l1グラフ計算方法及びl1グラフ計算プログラム

Country Status (1)

Country Link
JP (1) JP6662754B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110084246A (zh) * 2019-04-17 2019-08-02 江南大学 一种色织物疵点自动识别方法
CN113434702A (zh) * 2021-07-27 2021-09-24 支付宝(杭州)信息技术有限公司 一种用于图计算的自适应控制方法和系统
CN114638962A (zh) * 2022-03-29 2022-06-17 联影智能医疗科技(成都)有限公司 一种对医学成像中的感兴趣区域进行标注的方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566260B2 (en) * 2010-09-30 2013-10-22 Nippon Telegraph And Telephone Corporation Structured prediction model learning apparatus, method, program, and recording medium

Also Published As

Publication number Publication date
JP2018073285A (ja) 2018-05-10

Similar Documents

Publication Publication Date Title
Bermejo et al. Fast wrapper feature subset selection in high-dimensional datasets by means of filter re-ranking
Schmidt Least squares optimization with L1-norm regularization
Hafez et al. An innovative approach for feature selection based on chicken swarm optimization
US20170316307A1 (en) Dynamic management of numerical representation in a distributed matrix processor architecture
Hindersin et al. Exact numerical calculation of fixation probability and time on graphs
JP6662754B2 (ja) L1グラフ計算装置、l1グラフ計算方法及びl1グラフ計算プログラム
US20210224447A1 (en) Grouping of pauli strings using entangled measurements
Fernández-Navarro et al. Evolutionary q-Gaussian radial basis function neural networks for multiclassification
Araujo et al. Configurable sublinear circuits for quantum state preparation
Tacchetti et al. GURLS: a toolbox for large scale multiclass learning
JP6453785B2 (ja) 回帰分析装置、回帰分析方法および回帰分析プログラム
Zhan et al. Deep model compression via two-stage deep reinforcement learning
JP7505570B2 (ja) 秘密決定木テスト装置、秘密決定木テストシステム、秘密決定木テスト方法、及びプログラム
JP5964781B2 (ja) 検索装置、検索方法および検索プログラム
CN109886299B (zh) 一种用户画像方法、装置、可读存储介质及终端设备
JP7172816B2 (ja) データ分析装置、データ分析方法及びデータ分析プログラム
JP6058065B2 (ja) テンソルデータ計算装置、テンソルデータ計算方法、及びプログラム
Villacorta et al. Sensitivity analysis in the scenario method: A multi-objective approach
Nazaret et al. Stable differentiable causal discovery
JP2002175305A (ja) 遺伝子ネットワークを推測するためのグラフィカルモデリング法及びそのための装置
Cerf et al. Quasispecies on class-dependent fitness landscapes
JPWO2019151015A1 (ja) 情報処理装置及び制御方法
Jarquin et al. Combining phenotypic and genomic data to improve prediction of binary traits
Rangamani et al. Critical points of an autoencoder can provably recover sparsely used overcomplete dictionaries
Nassiri et al. Learning the transfer function in binary metaheuristic algorithm for feature selection in classification problems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200213

R150 Certificate of patent or registration of utility model

Ref document number: 6662754

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150