(57)【要約】【課題】One-class  サポートベクターマシンの計算コストを低減させる。【解決手段】パラメータ計算部１６は、行列に含まれるデータポイントごとに、One-class  サポートベクターマシンで用いられるサポートベクトルの割合の下限値または外れ値の割合の上限値を示す割合パラメータに基づく所定のパラメータの上限値および下限値を計算する。集合設定部１７は、データポイントのうち、所定のパラメータが、上限値以下かつ下限値以上であるデータポイントの集合を設定する。超平面計算部１８は、集合に含まれるデータポイントおよび割合パラメータを基に、One-class  サポートベクターマシンの超平面を計算する。【選択図】図１
2019185199.tif 000002
【特許請求の範囲】
【請求項１】
行列に含まれるデータポイントごとに、One-class  サポートベクターマシンで用いられるサポートベクトルの割合の下限値または外れ値の割合の上限値を示す割合パラメータに基づく所定のパラメータについて、該所定のパラメータの上限値および下限値を計算するパラメータ計算部と、
前記データポイントのうち、前記所定のパラメータが、前記上限値以下かつ前記下限値以上であるデータポイントの集合を設定する集合設定部と、
前記集合に含まれるデータポイントおよび前記割合パラメータを基に、One-class  サポートベクターマシンの超平面を計算する超平面計算部と、
を有することを特徴とする計算装置。
【請求項２】
前記集合設定部は、前記データポイントのうち、前記下限値および前記上限値が第１の条件を満たすデータポイントを、前記集合に含めることを特徴とする請求項１に記載の計算装置。
【請求項３】
前記行列に含まれるデータポイントであって、前記集合に含まれないデータポイントが、前記超平面計算部によって計算された超平面を基に設定された第２の条件を満たすか否かを確認する確認部と、
前記確認部によって前記第２の条件を満たすことが確認されたデータポイントを前記集合に追加する集合更新部と、
をさらに有することを特徴とする請求項１または２に記載の計算装置。
【請求項４】
前記行列の列ベクトルごとの最頻値を用いて、当該列ベクトルの要素の値のシフトを行うことによって、疎ベクトルを計算する疎ベクトル計算部をさらに有し、
前記パラメータ計算部は、前記疎ベクトルのデータポイントごとに前記上限値および前記下限値を計算し、
前記集合設定部は、前記疎ベクトルのデータポイントを基に前記集合を設定することを特徴とする請求項１から３のいずれか１項に記載の計算装置。
【請求項５】
コンピュータが実行する計算方法であって、
行列に含まれるデータポイントごとに、One-class  サポートベクターマシンで用いられるサポートベクトルの割合の下限値または外れ値の割合の上限値を示す割合パラメータに基づく所定のパラメータについて、該所定のパラメータの上限値および下限値を計算するパラメータ計算工程と、
前記データポイントのうち、前記所定のパラメータが、前記上限値以下かつ前記下限値以上であるデータポイントの集合を設定する集合設定工程と、
前記集合に含まれるデータポイントおよび前記割合パラメータを基に、One-class  サポートベクターマシンの超平面を計算する超平面計算工程と、
を含むことを特徴とする計算方法。
【請求項６】
コンピュータを、請求項１から４のいずれか１項に記載の計算装置として機能させるための計算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算装置、計算方法および計算プログラムに関する。
【背景技術】
【０００２】
従来、サポートベクターマシン（ＳＶＭ：Support  Vector  Machine）に基づく手法であって、超平面によって指定されたクラスに分類されないデータポイントを外れ値と判定する手法であるOne-class  サポートベクターマシンが知られている（例えば、非特許文献１を参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Bernhard  Scholkopf  and  John  C.  Platt  and  John  Shawe-Taylor  and  Alexander  J.  Smola  and  Robert  C.  Williamson,  Estimating  the  Support  of  a  High-Dimensional  Distribution,  Neural  Computation,  13(7):1443-1471,  2001.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のOne-class  サポートベクターマシンには、計算コストが高いという問題がある。例えば、データポイントの数がＮである場合、超平面を求めるためにＮ個の制約を持つ２次計画問題を解く必要がある。このとき、計算量は、データポイントの数の２乗に比例して増加する。
【課題を解決するための手段】
【０００５】
本発明の計算装置は、行列に含まれるデータポイントごとに、One-class  サポートベクターマシンで用いられるサポートベクトルの割合の下限値または外れ値の割合の上限値を示す割合パラメータに基づく所定のパラメータについて、該所定のパラメータの上限値および下限値を計算するパラメータ計算部と、前記データポイントのうち、前記所定のパラメータが、前記上限値以下かつ前記下限値以上であるデータポイントの集合を設定する集合設定部と、前記集合に含まれるデータポイントおよび前記割合パラメータを基に、One-class  サポートベクターマシンの超平面を計算する超平面計算部と、を有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、One-class  サポートベクターマシンの計算コストを低減させることができる。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態に係る計算装置の構成の一例を示す図である。
【図２】図２は、定義１を示す図である。
【図３】図３は、定義２を示す図である。
【図４】図４は、補題１を示す図である。
【図５】図５は、補題２を示す図である。
【図６】図６は、定義３を示す図である。
【図７】図７は、補題３を示す図である。
【図８】図８は、定義４を示す図である。
【図９】図９は、補題４を示す図である。
【図１０】図１０は、定理１および定理２を示す図である。
【図１１】図１１は、補題５を示す図である。
【図１２】図１２は、第１の実施形態に係る計算処理のアルゴリズムの一例を示す図である。
【図１３】図１３は、第１の実施形態に係る計算処理の流れを示すフローチャートである。
【図１４】図１４は、実施形態に係る計算プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００８】
以下に、本願に係る計算装置、計算方法および計算プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【０００９】
［従来のOne-class  ＳＶＭ］
まず、従来のOne-class  ＳＶＭについて説明する。ここで、One-class  ＳＶＭでは、ベクトルｘｉ＝（ｘｉ［１］，ｘｉ［２］，・・・，ｘｉ［ｍ］）∈Ｘがｍ次元空間のｉ番目のデータポイントに対応し、行列Ｘのｉ番目の行ベクトルに対応している。ここで、行列Ｘの列ベクトルは、値のレンジを合わせるために標準化されているものとする。ｗ、ξｉ、ρをそれぞれｍ次元のベクトル、スラック変数、オフセットとすると、データポイントは以下の式（１）および式（２）で示される線形計画問題を解くことで分けることができる。
【００１０】
【数１】
2019185199.tif 000003
【００１１】
式（２）において、ΦはデータポイントをＸ→Ｆと高次元の特徴量空間にマッピングするカーネルマップである。ここで、ラグランジュ乗数を導入することで、以下の式（３）および式（４）に示す双対問題が得られる。
【００１２】
【数２】
2019185199.tif 000004
【００１３】
ここで、αは、そのｉ番目の要素αｉがデータポイントｘｉにのラグランジュ乗数に対応するベクトルとし、Ｋ（ｘｉ，ｘｊ）は、ガウスカーネルｅ−γ｜｜ｘｉ−ｘｊ｜｜＾２などのカーネル関数とする。また、式（３）において、αｉ＞０またはαｉ＝１／ｎνであるようなデータポイントは、それぞれサポートベクトルまたは外れ値と呼ばれる。ここで、νは、サポートベクトルの割合の下限値または外れ値の割合の上限値である。また、ｚ＝Σｉ＝１ｎαｉＫ（ｘ，ｘｉ）−ρをデータポイントｘの所定のパラメータとすると、決定関数は式（５）のように与えられる。
【００１４】
【数３】
2019185199.tif 000005
【００１５】
双対問題は凸であるため、決定関数によれば最適な超平面を計算することができる。つまり、ソルバを適用することで、ベクトルαの最適解が得られる。また、オフセットρは、ベクトルαから、ρ＝Σｉ＝１ｎαｉＫ（ｘｉ，ｘｊ）と計算される。ここで、データポイントｘｊに対しては、０＜αｊ＜１／ｎνであるとする。
【００１６】
［第１の実施形態］
One-class  ＳＶＭでは、データポイントの数がｎである場合、ｎ個の制約を持つ線形計画問題を解く必要があるため、ｎが増加するに従って、計算コストが非常に高くなる。そこで、本実施形態の計算装置は、One-class  ＳＶＭの計算コストを低減させるため、データポイントの枝狩りを行う。
【００１７】
図１を用いて、第１の実施形態の構成について説明する。図１は、第１の実施形態に係る計算装置の構成の一例を示す図である。図１に示すように、計算装置１０は、初期化部１１、疎ベクトル計算部１２、データポイント選択部１３、パラメータ決定部１４、優先度計算部１５、パラメータ計算部１６、集合設定部１７、超平面計算部１８、パラメータ更新部１９、確認部２０、集合更新部２１および全体パラメータ計算部２２を有する。
【００１８】
初期化部１１は、各パラメータの初期化を行う。疎ベクトル計算部１２は、行列の列ベクトルごとの最頻値を用いて、当該列ベクトルの要素の値のシフトを行うことによって、疎ベクトルを計算する。データポイント選択部１３は、集合に加えるデータポイントを選択する。パラメータ決定部１４は、選択されたデータポイントのパラメータを決定する。優先度計算部１５は、データポイントを選択するときの優先度を決定する。
【００１９】
パラメータ計算部１６は、行列に含まれるデータポイントごとに、One-class  サポートベクターマシンで用いられるサポートベクトルの割合の下限値または外れ値の割合の上限値を示す割合パラメータに基づく所定のパラメータ（以降、パラメータｚ）について、該所定のパラメータの上限値および下限値を計算する。なお、所定のパラメータは、前述のパラメータｚであってよい。
【００２０】
集合設定部１７は、データポイントのうち、所定のパラメータが、上限値以下かつ下限値以上であるデータポイントの集合を設定する。また、集合設定部１７は、データポイントのうち、下限値および上限値が所定の条件を満たすデータポイントを、集合に含めることができる。
【００２１】
超平面計算部１８は、集合に含まれるデータポイントおよび割合パラメータを基に、One-class  サポートベクターマシンの超平面を計算する。なお、超平面計算部１８は、ソルバを適用することによって計算を行うことができる。
【００２２】
パラメータ更新部１９は、データポイントに対するパラメータｚの上限値と下限値を更新する。また、確認部２０は、行列に含まれるデータポイントであって、集合に含まれないデータポイントが、超平面計算部１８によって計算された超平面を基に設定された所定の条件を満たすか否かを確認する。そして、集合更新部２１は、確認部２０によって所定の条件を満たすことが確認されたデータポイントを集合に追加する。
【００２３】
本実施形態では、パラメータ計算部１６によって計算されたパラメータｚの上限値および下限値に基づいて、集合設定部１７が設定した集合を超平面の計算対象としている。このとき、集合設定部１７が設定する集合は、与えられた全てのデータポイントの集合を枝狩りして得られるものであるといえる。さらに、確認部２０による確認により、計算された超平面が最適なものであるか否かが確認されるため、処理を繰り返すことで、集合を最適化してくことができる。
【００２４】
集合設定部１７は、パラメータ計算部１６によって計算されたパラメータｚの上限値および下限値を基に、図２に示す定義１を用いて集合Ｓおよび集合Ｐを設定する。図２は、定義１を示す図である。なお、集合Ｓは、超平面の計算対象の集合である。また、定義１の条件は、第１の条件の一例である。
【００２５】
さらに、確認部２０による確認の結果、所定の条件を満たさないことが確認された場合、すなわち、超平面が最適でない場合、集合更新部２１は、図３に示す定義２を用いて集合Ｓおよび集合Ｐを更新する。図３は、定義３を示す図である。
【００２６】
図３に示すように、集合更新部２１は、超平面が最適でなかった場合、データポイントを集合Ｐから集合Ｓへ移動させる。そのため、集合Ｓは単調増加し、集合Ｐは単調減少する。また、定義１および定義２から、上限値と下限値がある場合、集合更新部２１は、集合Ｓおよび集合ＰをＯ（ｎ）のコストで計算することができることがいえる。
【００２７】
ここで、集合Ｓおよび集合Ｐには、図４の補題１に示す性質がある。図４は、補題１を示す図である。確認部２０は、補題１に示す性質を利用して、図５の補題２に示す方法で、超平面の最適性を確認する。図５は、補題５を示す図である。補題５に示す方法によれば、上限値と下限値がある場合、確認部２０は、Ｏ（ｎ）のコストで最適性を確認することができる。なお、補題２の条件は、第２の条件の一例である。
【００２８】
ここで、パラメータ計算部１６によるパラメータｚの上限値および下限値の計算方法について説明する。本実施形態では、パラメータ計算部１６は、ＲＢＦカーネルに対して上限値および下限値を計算する場合について説明するが、パラメータ計算部１６は、他のカーネルに対して上限値および下限値を計算してもよい。
【００２９】
また、パラメータ計算部１６は、疎ベクトル計算部１２によって計算された疎ベクトルを使って上限値および下限値を計算することができる。疎ベクトル計算部１２は、σｊを行列Ｘのｊ番目の列ベクトルにおける最頻値としたとき、疎ベクトルの要素ｘ＾ｉ［ｊ］を、ｘ＾ｉ［ｊ］＝ｘｉ［ｊ］−σｊと計算する。このように、疎ベクトル計算部１２は、要素の値をシフトすることで、値が最頻値である要素の値を０に置き換えることができる。なお、ｘ＾は、ｘの直上に＾があることを示す。
【００３０】
パラメータ計算部１６は、図６の定義３に示す方法でパラメータｚの上限値および下限値を計算する。図６は、定義３を示す図である。なお、集合Ｏ＝｛ｘｉ｜αｉ＝１／ｎν｝を外れ値の集合とする。
【００３１】
定義３において、パラメータ計算部１６は、ラグランジュ乗数を計算するたびに逐次的に集合Ｏを更新することで、効率的にスコアｏｉを求めることができる。また式（１７）と（１８）において、αｉ＝０であれば、カーネル関数を計算する必要はない。さらに、パラメータ計算部１６は、疎な構造を持つベクトルｘ＾ｉに対してソルバを適用する前に、ノルム｜｜ｘ＾ｉ｜｜を計算することができる。そのため、パラメータ計算部１６は、高速に上限値と下限値を計算することができる。
【００３２】
なお、パラメータ計算部１６は、カーネル関数についても、疎なベクトルｘ＾ｉから高速に計算することができる。さらに定義３から、データポイントｘｉに対するラグランジュ乗数αｉの計算方法については後述する。また、定義３に対しては、図７の補題３に示す性質が成り立つ。図７は、補題３を示す図である。
【００３３】
パラメータ計算部１６による処理が行われる前に、データポイント選択部１３は、サポートベクトルの集合Ａに含まれるデータポイントを選択する。その際、優先度計算部１５は、図８の定義４に示す方法でデータポイントの優先度を計算する。そして、データポイント選択部１３は、優先度の高いデータポイントを、Σｉ＝１ｎαｉ＝１となるまで集合Ａに追加していく。このとき、パラメータ決定部１４は、ラグランジュ乗数αｉを、０＜αｉ＜１／ｎνの範囲でランダムに決定する。
【００３４】
定義４に示すように、パラメータｚと同様に、優先度ｐｉは、ラグランジュ乗数とカーネル関数とから計算される。そのため、優先度ｐｉは、データポイントｘｉが超平面により外れ値と分類されるなら高い値を持つことが期待される。そのため、データポイント選択部１３は、優先度ｐｉを用いることでラグランジュ乗数αｉの初期値を効果的に求めることができる。また、優先度ｐｉについては、図９に示す補題４の性質が成り立つ。補題４から、各データポイントの優先度ｐｉは、データポイントを集合Ａに追加する過程において、Ｏ（ｍ）の計算コストで計算可能であることがいえる。
【００３５】
ここで、計算装置１０による学習結果については、図１０の定理１に示す性質が成り立つ。また、計算装置１０による計算処理の計算コストについては、図１０の定理２に示す性質が成り立つ。図１０は、定理１および定理２を示す図である。
【００３６】
また、パラメータ計算部１６は、ＲＢＦカーネル以外にも、線形カーネルや多項式カーネルに対して上限値および下限値を計算することができる。パラメータ計算部１６は、これらのカーネル関数に関する図１１の補題５に示す性質を用いて上限値および下限値を計算する。図１１は、補題５を示す図である。
【００３７】
［第１の実施形態のアルゴリズム］
図１２は、第１の実施形態に係る計算処理のアルゴリズムの一例を示す図である。図１２に示すように、計算装置１０は、ｉ番目の列ベクトルから最頻値σｉを計算し、ベクトルｘ＾ｉを求める（２−６行目）。次に、計算装置１０は、ラグランジュ乗数の初期値を求めるため、もし集合Ａが空集合でなければ、優先度が最も高いデータポイントを選択し、そうでなければノルムが高いノードが外れ値の可能性が高いため、ノルムの最も高いノードを選択する（８−１１行目）。
【００３８】
そして、計算装置１０は、選択されたデータポイントのラグランジュ乗数をランダムに０＜αｉ＜１／ｎνの範囲で決定し、もしラグランジュ乗数の合計が１を超えるようなら、１になるように再設定する（１３−１５行目）。そして、計算装置１０は、定義４と補題４を用いて優先度を求める（１６−１７行目）。ここでもし集合Ａ＝集合Ｘであれば、すべてのデータポイントのラグランジュ乗数は、αｉ＝１／ｎとする。
【００３９】
そして、計算装置１０は、データポイントに対してパラメータｚの上限値と下限値を計算し、集合Ｓと集合Ｐを求める（１９−２１行目）。さらに、計算装置１０は、最適な超平面を求めるために、集合Ｓに対してソルバを適用し、上限値と下限値を更新する（２３−２５行目）。
【００４０】
その後、計算装置１０は、補題２を用いて超平面の最適性を確認し、定義２から集合Ｓと集合Ｐを更新する（２６−２７行目）。計算装置１０は、最適な超平面が得られるまでこれらの処理を繰り返す（２８行目）。また、ここで説明したアルゴリズムはソルバとは独立であるため、様々なソルバを用いることができる。
【００４１】
［第１の実施形態の処理の流れ］
図１３は、第１の実施形態に係る計算処理の流れを示すフローチャートである。図１３に示すように、まず、計算装置１０には、行列Ｘおよびパラメータνが入力される（ステップＳ１０１）。そして、計算装置１０は、各パラメータを初期化する（ステップＳ１０２）。
【００４２】
ここで、計算装置１０は、行列Ｘの各列ベクトルについて、最頻値を計算する（ステップＳ１０３−Ｓ１０６）。そして、計算装置１０は、最頻値を用いて、疎行列の各要素の値ｘ＾ｉを計算する（ステップＳ１０７−Ｓ１０９）。
【００４３】
ラグランジュ乗数の合計が１であるか、集合Ａと集合Ｘが等しい場合（ステップＳ１１０、ｙｅｓ）、計算装置１０は、処理をステップＳ１２１へ進める。一方、ラグランジュ乗数の合計が１でないか、または集合Ａと集合Ｘが等しくない場合（ステップＳ１１０、ｎｏ）、計算装置１０は、処理をステップＳ１１１へ進める。
【００４４】
ステップＳ１１１において、計算装置１０は、集合Ａが空集合でなければ（ステップＳ１１１、ｙｅｓ）、優先度が最も高いデータポイントを選択し（ステップＳ１１２）、そうでなければ（ステップＳ１１１、ｎｏ）、ノルムの最も高いノードを選択する（ステップＳ１１３）。そして、計算装置１０は、ｘｉを集合Ａに追加し、ラグランジュ乗数αｉを０〜１／ｎνの間で設定する（ステップＳ１１４）。
【００４５】
さらに、ラグランジュ乗数の合計が１を超える場合（ステップＳ１１５、ｙｅｓ）、計算装置１０は、ラグランジュ乗数の合計値を１から引いた値をαｉとする（ステップＳ１１６）。一方、ラグランジュ乗数の合計が１を超えない場合（ステップＳ１１５、ｎｏ）、計算装置１０は、設定したラグランジュ乗数を合計値に足す（ステップＳ１１７）。
【００４６】
そして、計算装置１０は、ｘｉごとに優先度を計算し（ステップＳ１１８−Ｓ１２０）、処理をステップＳ１１０へ進める。ステップＳ１１０からステップＳ１２１へ処理を進めた場合も、計算装置１０は、ｘｉごとに優先度を計算する（ステップＳ１２１−Ｓ１２３）。
【００４７】
そして、計算装置１０は、パラメータｚの上限値および下限値を計算し（ステップＳ１２４）、集合Ｓおよび集合Ｐを計算する（ステップＳ１２５）。ここで、計算装置１０は、ソルバを適用して計算した超平面が最適である場合（ステップＳ１２６、ｙｅｓ）、処理をステップＳ１３３へ進める。一方、計算装置１０は、ソルバを適用して計算した超平面が最適でない場合（ステップＳ１２６、ｎｏ）、処理をステップＳ１２７へ進める。また、計算装置１０は、ＳＶＭ全体のパラメータとしてρとαを計算し（ステップＳ１３３）、出力する（ステップＳ１３４）。
【００４８】
ステップＳ１２７では、計算装置１０は、集合Ｓに対してソルバを適用し（ステップＳ１２７）、パラメータｚの上限値および下限値を更新する（ステップＳ１２７−Ｓ１３０）。そして、計算装置１０は、超平面の最適性を確認し（ステップＳ１３１）、集合Ｓおよび集合Ｐを更新し（ステップＳ１３２）、処理をステップＳ１２６へ進める。
【００４９】
［第１の実施形態の効果］
パラメータ計算部１６は、行列に含まれるデータポイントごとに、One-class  サポートベクターマシンで用いられるサポートベクトルの割合の下限値または外れ値の割合の上限値を示す割合パラメータに基づく所定のパラメータの上限値および下限値を計算する。集合設定部１７は、データポイントのうち、所定のパラメータが、上限値以下かつ下限値以上であるデータポイントの集合を設定する。超平面計算部１８は、集合に含まれるデータポイントおよび割合パラメータを基に、One-class  サポートベクターマシンの超平面を計算する。このように、本実施形態の計算装置１０は、超平面を計算する前にデータポイントの枝狩りを行うため、One-class  サポートベクターマシンの計算コストを低減させることができる。
【００５０】
集合設定部１７は、データポイントのうち、下限値および上限値が第１の条件を満たすデータポイントを、集合に含める。これにより、計算装置１０は、パラメータｚを計算することなく、パラメータｚの上限値および下限値から枝狩りをするか否かを判断できるため、さらに計算コストを低減させることができる。
【００５１】
確認部２０は、行列に含まれるデータポイントであって、集合に含まれないデータポイントが、超平面計算部１８によって計算された超平面を基に設定された第２の条件を満たすか否かを確認する。集合更新部２１は、確認部２０によって第２の条件を満たすことが確認されたデータポイントを集合に追加する。これにより、枝狩りを行った後の集合を使って計算した超平面の最適性が保証されるため、本実施形態によれば、計算コストの低減とＳＶＭの分類精度とを両立させることができる。
【００５２】
疎ベクトル計算部１２は、行列の列ベクトルごとの最頻値を用いて、当該列ベクトルの要素の値のシフトを行うことによって、疎ベクトルを計算する。パラメータ計算部１６は、疎行列のデータポイントごとに上限値および下限値を計算する。集合設定部１７は、疎行列のデータポイントを基に集合を設定する。計算装置１０は、行列の各列ベクトルをあらかじめ疎ベクトル化しておくことで、さらに計算コストを低減させることができる。
【００５３】
［システム構成等］
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００５４】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００５５】
［プログラム］
一実施形態として、計算装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の計算を実行する計算プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の計算プログラムを情報処理装置に実行させることにより、情報処理装置を計算装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）等の移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistant）等のスレート端末等がその範疇に含まれる。
【００５６】
また、計算装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の計算に関するサービスを提供する計算サーバ装置として実装することもできる。例えば、計算サーバ装置は、多次元行列を入力とし、次元削減した行列を出力とする計算サービスを提供するサーバ装置として実装される。この場合、計算サーバ装置は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の計算に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００５７】
図１４は、計算プログラムを実行するコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００５８】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００５９】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、計算装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、計算装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤにより代替されてもよい。
【００６０】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００６１】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３およびプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３およびプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００６２】
１０  計算装置
１１  初期化部
１２  疎ベクトル計算部
１３  データポイント選択部
１４  パラメータ決定部
１５  優先度計算部
１６  パラメータ計算部
１７  集合設定部
１８  超平面計算部
１９  パラメータ更新部
２０  確認部
２１  集合更新部
２２  全体パラメータ計算部
【図１】
2019185199.tif 000006
【図２】
2019185199.tif 000007
【図３】
2019185199.tif 000008
【図４】
2019185199.tif 000009
【図５】
2019185199.tif 000010
【図６】
2019185199.tif 000011
【図７】
2019185199.tif 000012
【図８】
2019185199.tif 000013
【図９】
2019185199.tif 000014
【図１０】
2019185199.tif 000015
【図１１】
2019185199.tif 000016
【図１２】
2019185199.tif 000017
【図１３】
2019185199.tif 000018
【図１４】
2019185199.tif 000019