(57)【要約】【課題】Block  Coordinate  Descentを高速化すること。【解決手段】データ分析装置１０は、Sparse  Group  Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置であって、与えられたデータのグラム行列のノルムを計算する行列ノルム計算部１１と、ノルムを基にデータのグループのうち計算対象のグループに対するスコアを計算するスコア計算部１２と、スコアを基に計算対象のグループに対する計算を省略するか否かを判定する省略判定部１３と、省略判定部１３が計算対象のグループに対する計算を省略しないと判定した場合、計算対象のグループに対し、Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用するソルバ適用部１４と、を有する。【選択図】図１
2020173674.tif 000002
【特許請求の範囲】
【請求項１】
Sparse  Group  Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置であって、
与えられたデータのグラム行列のノルムを計算する第１の計算部と、
前記ノルムを基に前記データのグループのうち計算対象のグループに対するスコアを計算する第２の計算部と、
前記第２の計算部が計算したスコアを基に前記計算対象のグループに対する計算を省略するか否かを判定する判定部と、
前記判定部が前記計算対象のグループに対する計算を省略しないと判定した場合、前記計算対象のグループに対し、前記Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用する適用部と、
を有することを特徴とするデータ分析装置。
【請求項２】
前記判定部は、前記Block  Coordinate  Descentの計算処理のうち、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式内の項を該項の上限値で近似した近似式を用いて評価を行うことを特徴とする請求項１に記載のデータ分析装置。
【請求項３】
Sparse  Group  Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置が実行するデータ分析方法であって、
与えられたデータのグラム行列のノルムを計算する工程と、
前記ノルムを基に前記データのグループのうち計算対象のグループに対するスコアを計算する工程と、
前記スコアを基に前記計算対象のグループに対する計算を省略するか否かを判定する工程と、
前記判定する工程において、前記計算対象のグループに対する計算を省略しないと判定された場合、前記計算対象のグループに対し、前記Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用する工程と、
を含んだことを特徴とするデータ分析方法。
【請求項４】
与えられた多次元データのグラム行列のノルムを計算するステップと、
前記ノルムを基に前記多次元データのグループのうち計算対象のグループに対するスコアを計算するステップと、
前記スコアを基に前記計算対象のグループに対する計算を省略するか否かを判定するステップと、
前記判定するステップにおいて、前記計算対象のグループに対する計算を省略しないと判定された場合、前記計算対象のグループに対し、Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用するステップと、
をコンピュータに実行させることを特徴とするデータ分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ分析装置、データ分析方法及びデータ分析プログラムに関する。
【背景技術】
【０００２】
特徴抽出は、データから重要な特徴を抽出する手法群であり、データマイニングにおいてデータの説明のために広く使われている。データマイニングでは、しばしばデータの特徴がグループ構造を持っていることがある。
【０００３】
例えば、地域毎の天候データは、各地域が各グループに対応し、それぞれのグループ内に「気温」「湿度」「天候」「風向き」などの特徴が入ったデータと見なすことができる。このようなグループ構造を持ったデータにおいては、重要な特徴を抽出するだけでなく、重要な特徴のグループ（例えば、地域に相当するグループ）を抽出することでデータを説明する場合がある。Sparse  Group  Lassoは、この特徴のグループの抽出における代表的な手法である。
【０００４】
Sparse  Group  Lassoは、線形回帰に基づく手法である（例えば、非特許文献１参照）。具体的には、Sparse  Group  Lassoは、線形回帰モデルの係数にグループ制約を課すことによって、グループ特徴を扱うことができる。Sparse  Group  Lassoでは、線形回帰モデルの係数の学習において、Block  Coordinate  Descentが標準的に使われている。
【０００５】
Block  Coordinate  Descentは、Sparse  Group  Lassoの係数をグループ毎に独立して更新し学習するアルゴリズムである。その更新計算は、大きく次のような２ステップに分けられる。
【０００６】
第１ステップは、グループ内の係数が全てゼロになるか否かをチェックするステップである。第２ステップは、グループ内の係数が全てゼロにならない場合はグループ内の係数を更新するステップである。
【０００７】
Block  Coordinate  Descentは、この第１ステップ及び第２ステップを、全ての係数が収束するまで繰り返す。最終的に、係数がゼロとなるグループは、重要でない特徴のグループであり、係数が非ゼロとなるグループは重要な特徴のグループと言える。
【０００８】
しかしながら、Block  Coordinate  Descentは、大規模データに対して計算が遅いという課題がある。これは、第１ステップの計算において、全体の特徴の数に比例する計算オーダーが必要となるためである。この結果、Sparse  Group  Lassoを大規模データに適用することが困難になっている。
【０００９】
ここで、Sparse  Group  Lassoを大規模データに適用するために、safe  screening  （非特許文献２参照）という手法が広く用いられている。Safe  screeningは、Block  Coordinate  Descentで係数を学習する前に、係数がゼロとなるようなグループを特定して削除する手法である。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】N.  Simon,  J.  Friedman,  T.  Hastie,  and  R.  Tibshirani,  “A  SPARSE-GROUP  LASSO”,  Journal  of  Computational  and  Graphical  Statistics,  22(2),  231-245,  2013.
【非特許文献２】E.  Ndiaye,  O.  Fercoq,  A.  Gramfort,  and  J.  Salmon,  “Gap  Safe  Screening  Rules  for  Sparse-Group  Lasso”,  In  Advances  in  Neural  Information  Processing  Systems,  pp.  388−396,  2016.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、safe  screeningにおいて、削除できるグループの数が少ない場合には、Block  Coordinate  Descentは、高速化されない。特に、safe  screeningでは、係数の初期値が最適な係数から遠い場合、グループが削除しづらいことが理論的に知られている。
【００１２】
本発明は、上記に鑑みてなされたものであって、Block  Coordinate  Descentを高速化することができるデータ分析装置、データ分析方法及びデータ分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明に係るデータ分析装置は、Sparse  Group  Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置であって、与えられたデータのグラム行列のノルムを計算する第１の計算部と、ノルムを基にデータのグループのうち計算対象のグループに対するスコアを計算する第２の計算部と、第２の計算部が計算したスコアを基に計算対象のグループに対する計算を省略するか否かを判定する判定部と、判定部が計算対象のグループに対する計算を省略しないと判定した場合、計算対象のグループに対し、Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用する適用部と、を有することを特徴とする。
【００１４】
また、本発明に係るデータ分析方法は、Sparse  Group  Lassoを用いて、多次元データから重要な特徴のグループを抽出するデータ分析装置が実行するデータ分析方法であって、与えられたデータのグラム行列のノルムを計算する工程と、ノルムを基にデータのグループのうち計算対象のグループに対するスコアを計算する工程と、スコアを基に計算対象のグループに対する計算を省略するか否かを判定する工程と、判定する工程において、計算対象のグループに対する計算を省略しないと判定された場合、計算対象のグループに対し、Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用する工程と、を含んだことを特徴とする。
【００１５】
また、本発明に係るデータ分析プログラムは、与えられた多次元データのグラム行列のノルムを計算するステップと、ノルムを基にデータのグループのうち計算対象のグループに対するスコアを計算するステップと、スコアを基に計算対象のグループに対する計算を省略するか否かを判定するステップと、判定するステップにおいて、計算対象のグループに対する計算を省略しないと判定された場合、計算対象のグループに対し、Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用するステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、Block  Coordinate  Descentを高速化することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施の形態に係るデータ分析装置の構成の一例を示すブロック図である。
【図２】図２は、図１に示すデータ分析装置が使用するアルゴリズムを示す図である。
【図３】図３は、実施の形態に係るデータ分析処理の処理手順を示すフローチャートである。
【図４】図４は、プログラムが実行されることにより、データ分析装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１９】
なお、以下ではベクトル、行列又はスカラーであるＡに対し、“＾Ａ”と記載する場合は「“Ａ”の直上に“＾”が記された記号」と同等であるとする。また、ベクトル、行列又はスカラーであるＡに対し、“~Ａ”と記載する場合は「“Ａ”の直上に“~”が記された記号」と同等であるとする。また、ベクトル又は行列であるＡに対し、ＡＴはＡの転置を表す。
【００２０】
［従来の数理的背景］
まず、以降の説明において必要となる背景知識として、Sparse  Group  Lasso及びBlock  Coordinate  Descentについて説明する。
【００２１】
Sparse  Group  Lassoのベースは線形回帰モデルであるため、線形回帰問題を考える。ｎをデータ数とし、それぞれのデータは、ｐ次元の特徴量で表現されるとする。これによって、データは、Ｘ∈Ｒｎ×ｐの行列で表現できる。線形回帰は、各データに対して応答を予測する問題であるため、応答は、データ数次元のベクトルｙ∈Ｒｎとして表現できる。線形回帰は、データと係数ベクトルとの内積を計算することによって予測を行うため、この係数ベクトルは、β∈Ｒｐと表現される。
【００２２】
上記の設定のもと、Sparse  Group  Lassoは、次の式（１）及び式（２）に示す最適化問題を解くことで、重要な特徴及び、重要な特徴のグループを抽出する。
【００２３】
【数１】
2020173674.tif 000003
【００２４】
【数２】
2020173674.tif 000004
【００２５】
式（１）及び式（２）において、Ｘ（ｇ）∈Ｒｎ×ｐｇは、行列Ｘの部分行列であり、ｐｇは、ｇ番目のグループの特徴量のサイズである。同様に、β（ｇ）は、ｇ番目のグループの係数である。Ｇは、全グループの数を表す。α∈［０，１］及びλは、ハイパーパラメータであり、人手でチューニングする対象となる。
【００２６】
Block  Coordinate  Descentは、式（１）及び式（２）に示す最適化問題を解くためのアルゴリズムである。具体的には、以下の２ステップから構成されるアルゴリズムである。
【００２７】
第１ステップは、グループ内の係数がすべてゼロになるか否かをチェックするステップである。第１ステップのチェックに用いられる式は、以下の不等式（３）及び式（４）である。
【００２８】
【数３】
2020173674.tif 000005
【００２９】
【数４】
2020173674.tif 000006
【００３０】
ここで、関数Ｓ（・，・）は、引数ｚ，γに対し、式（５）のように計算される。
【００３１】
【数５】
2020173674.tif 000007
【００３２】
不等式（３）が成立するとき、ｇ番目のグループの係数は、全てゼロになる。この場合、アルゴリズムは、次のグループに処理が移り、再び第１ステップの計算を行う。一方、不等式（３）が成立しないとき、係数は非ゼロであると判断され、アルゴリズムは、次の第２ステップを実行する。
【００３３】
第２ステップは、グループ内の係数を更新するステップである。第２ステップにおける係数の更新は、以下の式（６）及び式（７）を用いて実行される。式（６）及び式（７）において、ｔは、更新幅である。
【００３４】
【数６】
2020173674.tif 000008
【００３５】
【数７】
2020173674.tif 000009
【００３６】
アルゴリズムは、第１ステップ及び第２ステップを係数全体が収束するまで繰り返す。このアルゴリズムでは、第１ステップの計算にＯ（ｐｐｇ＋ｐｇ２）が必要となり、第２ステップの計算にＯ（ｐｇ）が必要となる。したがって、Block  Coordinate  Descentでは、第１ステップがボトルネックとなる。
【００３７】
［本実施の形態の数理的背景］
続いて、本実施の形態の数理的背景について説明する。本実施の形態は、Block  Coordinate  Descentのボトルネックである第１ステップの計算量を小さくすることによって、高速化を行う。
【００３８】
具体的には、本実施の形態では、第１ステップにおいて使用される不等式（３）を近似することによって、計算量を小さくする。この近似は、不等式（３）内の||Ｓ（Ｘ（ｇ）Ｔγ（−ｇ），αλ||の項の上限値Ｕ（ｇ）を用いて不等式の成立の可否をチェックすることで実現される。すなわち、第１ステップにおいて、不等式（８）となるようなＵ（ｇ）を近似値として使い、計算量の大きい不等式（３）に代えて、不等式（９）をチェックする。
【００３９】
【数８】
2020173674.tif 000010
【００４０】
【数９】
2020173674.tif 000011
【００４１】
Ｕ（ｇ）は、データのグラム行列をＫ＝ＸＴＸ∈Ｒｐ×ｐとしたとき、次のように式（１０）及び式（１１）のように計算される。
【００４２】
【数１０】
2020173674.tif 000012
【００４３】
【数１１】
2020173674.tif 000013
【００４４】
式（１０）及び式（１１）において、~γ（−ｇ）及び~β（ｌ）は、それぞれγ（−ｇ）及びβ（ｌ）に対応する値である。これらの値は、Block  Coordinate  Descentのイテレーションの中において、一定間隔で更新される。
【００４５】
＾Ｋ（ｇ）［ｌ］∈Ｒｐｇのｉ番目の要素は、Ｋ（ｇ，ｌ）∈Ｒｐｇ×ｐｌをＫの部分行列としたとき、そのｉ番目の行のＬ２ノルム||Ｋ（ｇ，ｌ）［ｉ；］||２として計算される。
【００４６】
上限値の式(１０)の初期値は、定式化通り計算を行う。ただし、その後は、β（ｇ）が更新された場合だけ、以下の式（１２）に示す計算を行う。この結果、本実施の形態では、小さな計算量で上限値を更新することができる。
【００４７】
【数１２】
2020173674.tif 000014
【００４８】
β（ｇ）´は、更新後のβ（ｇ）である。これにより、元のBlock  Coordinate  Descentの式（３）がＯ（ｐｐｇ＋ｐｇ２）の計算量を要するのに対し、不等式（９）の計算量は、Ｏ（ｐｇ）と十分に小さくなる。このため、本実施の形態では、従来のアルゴリズムにおいてボトルネックであった第１ステップの計算を、高速に近似計算することができる。
【００４９】
不等式（９）が成り立つ場合、そのグループｇの係数は、全てゼロとなる。この場合、||Ｓ（Ｘ（ｇ）Ｔγ（−ｇ），αλ||≦Ｕ（ｇ）の関係が成り立つため、誤って係数をゼロとすることはなく、安全に係数をゼロとすることができる。これに対し、不等式（９）が成り立たなかった場合、通常のBlock  Coordinate  Descentの第１ステップ及び第２ステップを実行する。
【００５０】
本実施の形態は、上記したように、誤って係数をゼロにすることはないため、係数の初期値と更新順序とが同じ場合は、元のBlock  Coordinate  Descentと同じ解を得ることができる。
【００５１】
［本実施の形態］
そこで、本実施の形態にデータ分析装置について説明する。本実施の形態に係るデータ分析装置は、Sparse  Group  Lassoを用いて、多次元データから重要な特徴のグループを抽出する線形回帰モデルの学習装置である。
【００５２】
図１は、実施の形態に係るデータ分析装置の構成の一例を示すブロック図である。図１に示すように、本実施の形態に係るデータ分析装置１０は、行列ノルム計算部１１（第１の計算部）、スコア計算部１２（第２の計算部）、省略判定部１３（判定部）、ソルバ適用部１４（適用部）、スコア更新部１５及び収束判定部１６を有する。データ分析装置１０は、例えば、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＰＵ（Central  Processing  Unit）等を含むコンピュータ等に所定のプログラムが読み込まれて、ＣＰＵが所定のプログラムを実行することで実現される。
【００５３】
行列ノルム計算部１１は、与えられたデータのグラム行列のノルムを計算する。本実施の形態では、式（１０）及び式（１１）を基に上限値Ｕ（ｇ）を計算する必要がある。ここで、式（１１）の||＾Ｋ（ｇ）［ｌ］||２は、データが与えられた時点で事前計算が可能であり、アルゴリズム中で変更されることはない。行列ノルム計算部１１は、この||＾Ｋ（ｇ）［ｌ］||２を計算する機能を有する。||＾Ｋ（ｇ）［ｌ］||２は、上述の通りグラム行列Ｋのノルムである。
【００５４】
スコア計算部１２は、行列ノルム計算部１１が計算したノルムを基に、データのグループのうち計算対象のグループに対するスコアを計算する。スコアは、計算対象のグループの計算を省略するか否かを判定するために使用する値である。スコア計算部１２は、式(１０)で表される上限値Ｕ（ｇ）を全グループで計算する。本実施の形態では、スコアを、上限値Ｕ（ｇ）と定める。すなわち、スコアは、不等式（３）内の||Ｓ（Ｘ（ｇ）Ｔγ（−ｇ），αλ||の項を近似した際の上限値Ｕ（ｇ）そのものである。
【００５５】
省略判定部１３は、スコア計算部１２が計算したスコアを基に、計算対象のグループの計算を省略するか否かを判定する。省略判定部１３は、スコア計算部１２が求めたスコア（上限値Ｕ（ｇ））を用いて、不等式(９)が成立するか否かを判定する。省略判定部１３は、Block  Coordinate  Descentの計算処理のうち、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式（３）内の項を該項の上限値Ｕ（ｇ）で近似した近似式（不等式（９））を用いて評価を行う。省略判定部１３は、不等式(９)が成立する場合には、このグループ内の係数を全て０とする。したがって、省略判定部１３は、不等式(９)が成立する場合、このグループについて、通常のBlock  Coordinate  Descent（ソルバ）の計算処理を省略すると判定する。
【００５６】
ソルバ適用部１４は、収束判定部１３が計算対象のグループに対する計算を省略しないと判定した場合、通常のBlock  Coordinate  Descent（ソルバ）の計算処理を実行する。すなわち、ソルバ適用部１４は、不等式（９）が成立しなかった場合、ソルバの計算処理を実行する。つまり、ソルバ適用部１４は、不等式（３）を用いてループ内の係数がすべてゼロになるか否かをチェックする第１ステップを行う。ソルバ適用部１４は、不等式（３）が成立した場合、このグループの係数を全て０にする。これに対し、ソルバ適用部１４は、不等式（３）が成立しない場合には、式（６）及び式（７）を用いてグループ内の係数を更新する第２ステップを実行する。
【００５７】
スコア更新部１５は、計算対象のグループに対するスコアを更新する。スコア更新部１５は、ソルバ適用部１４によって係数が更新された場合に、式（１２）を用いて、このグループに対するスコア（上限値Ｕ（ｇ））を更新する。データ分析装置１０は、全グループに対し、省略計算部１３による処理を適用し、不等式（９）が成立しなかった場合にソルバ適用部１４による計算処理を適用する。
【００５８】
収束判定部１６は、全グループに対し、省略計算部１３による処理を適用し、式（９）の不等式が成立しなかった場合にソルバ適用部１４による計算処理を適用した後、係数が収束したか否かを判定する。収束判定部１６は、係数が収束している場合には、収束した係数を返す。収束判定部１６は、係数が収束していない場合には、スコア計算部１２による処理に戻り、収束するまで処理を繰り返す。
【００５９】
［処理の流れ］
次に、データ分析装置１０が使用するアルゴリズム、及び、データ分析装置１０が実行する処理の流れについて説明する。図２は、図１に示すデータ分析装置１０が使用するアルゴリズムを示す図である。図３は、実施の形態に係るデータ分析方法の処理手順を示すフローチャートである。
【００６０】
図２のアルゴリズム及び図３のフローチャートに示すように、行列ノルム計算部１１は、与えられたデータのグラム行列のノルムを計算する（図２の１〜３行目及び図３のステップＳ１）。
【００６１】
続いて、スコア計算部１２は、式（１０）及び式（１１）を用いて、式(１０)で表される上限値Ｕ（ｇ）を、グループに対するスコアとして、全グループで計算する（図２の５〜７行目及び図３のステップＳ２）。
【００６２】
省略判定部１３は、スコアからグループの計算の省略可否を判定する。具体的には、省略判定部１３は、スコア計算部１２が求めたスコア（上限値Ｕ（ｇ））を用いて、不等式(９)が成立するか否かを判定する（図３のステップＳ３）。
【００６３】
そして、省略判定部１３は、不等式(９)が成立すると判定した場合（図２の９行目及び図３のステップＳ３：Ｙｅｓ）、このグループ内の係数は全て０とする（図２の１０行目及び図３のステップＳ４）。
【００６４】
これに対し、省略判定部１３が、不等式(９)が成立しないと判定した場合（図２の１２行目及び図３のステップＳ３：Ｎｏ）、ソルバ適用部１４は、通常のBlock  Coordinate  Descent（ソルバ）の計算処理を実行する（図２の１２〜１７行目及び図３のステップＳ５）。具体的には、ソルバ適用部１４は、不等式（３）を用いてループ内の係数がすべてゼロになるか否かをチェックする第１ステップを行い、不等式（３）が成立した場合（図２の１２行目）、このグループの係数を全て０にする（図２の１３行目）。これに対し、ソルバ適用部１４は、不等式（３）が成立しない場合（図２の１４行目）、式（６）及び式（７）を用いてグループ内の係数を更新する第２ステップを実行する（図２の１５〜１７行目）。
【００６５】
そして、スコア更新部１５は、ソルバ適用部１４によって係数が更新された場合（ステップＳ６：Ｙｅｓ）、式（１２）を用いて、グループに対するスコア（上限値Ｕ（ｇ））を更新する（図２の１８行目及び図３のステップＳ７）。
【００６６】
データ分析装置１０は、全グループに対してステップＳ３〜ステップＳ７を適用していない場合（図３のステップＳ８：Ｎｏ）、次のグループに進み（ステップＳ９）、ステップＳ３以降の処理を実行する。また、全グループに対してステップＳ３〜ステップＳ７を適用した場合（図２の８〜１８行目及び図３のステップＳ８：Ｙｅｓ）、収束判定部１６は、係数が収束したか否かを判定する（図２の１９行目及び図３のステップＳ１０）。
【００６７】
係収束判定部１６は、係数が収束していると判定した場合（図３のステップＳ１０：Ｙｅｓ）、収束した係数を返して、処理を終了する。収束判定部１６は、係数が収束していないと判定した場合（図３のステップＳ１０：Ｎｏ）、ステップＳ２の処理に戻り、収束するまで、ステップＳ２〜ステップＳ１０の処理を繰り返す。
【００６８】
［実施の形態の効果］
このように、本実施の形態に係るデータ分析装置１０は、Sparse  Group  Lassoを用いて、多次元データから重要な特徴のグループを抽出する線形回帰モデルの学習装置である。そして、データ分析装置１０は、与えられたデータのグラム行列のノルムを計算し、データ分析装置１０は、データのグループのうち計算対象のグループに対するスコアを計算する。続いて、データ分析装置１０は、スコアを基に、計算対象のグループに対する計算を省略するか否かを判定する。
【００６９】
そして、データ分析装置１０は、計算対象のグループに対する計算を省略しないと判定した場合、計算対象のグループに対し、Sparse  Group  Lassoが最適化問題を解く場合に用いるBlock  Coordinate  Descentの計算処理を適用する。このため、データ分析装置１０は、全てのグループに対してBlock  Coordinate  Descentの計算処理を適用しないため、Block  Coordinate  Descentを高速化することができる。
【００７０】
この際、データ分析装置１０は、Block  Coordinate  Descentの計算処理のうち、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式内の項を該項の上限値で近似した近似式を用いて評価を行う。言い換えると、データ分析装置１０は、グループ内の係数がすべてゼロになるか否かをチェックする場合に使用する不等式を、より計算量の小さい近似式に置き換える。このため、データ分析装置１０は、不等式（３）を用いるBlock  Coordinate  Descentのボトルネックである、グループの係数がゼロか非ゼロかを判定する第１ステップの計算を軽量化でき、Block  Coordinate  Descentを高速化することができる。
【００７１】
この結果、本実施の形態によれば、Block  Coordinate  Descentが高速化されることによって、Sparse  Group  Lassoによる特徴のグループ抽出処理を高速化することができる。また、本実施の形態では、上述の近似を導入することによってBlock  Coordinate  Descentを高速化するが、その学習結果は、元のBlock  Coordinate  Descentと一致することを保証する。このため、本実施の形態によれば、正確にSparse  Group  Lassoによる特徴グループを抽出することができる。
【００７２】
［実施形態のシステム構成について］
図１に示したデータ分析装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、データ分析装置１０の機能の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【００７３】
また、データ分析装置１０においておこなわれる各処理は、全部または任意の一部が、ＣＰＵおよびＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、データ分析装置１０においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００７４】
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【００７５】
［プログラム］
図４は、プログラムが実行されることにより、データ分析装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００７６】
メモリ１０１０は、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００７７】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、データ分析装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、データ分析装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００７８】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００７９】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００８０】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００８１】
１０  データ分析装置
１１  行列ノルム計算部
１２  スコア計算部
１３  省略判定部
１４  ソルバ適用部
１５  スコア更新部
１６  収束判定部
【図１】
2020173674.tif 000015
【図２】
2020173674.tif 000016
【図３】
2020173674.tif 000017
【図４】
2020173674.tif 000018