(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
教師付き機械学習手法に用いられる訓練データは、各訓練データが属するクラスが定められている。教師付き機械学習は、いわば与えられた訓練データのクラスを判別するための判別基準を定める手続きともいえる。したがって、訓練データを簡約化することは訓練データを変更することになるため、教師付き機械学習による判別基準の生成に大きな影響を及ぼしかねない。このような背景から、訓練データの簡約化の妥当性を高めることが望まれている。
【0005】
そこで、本発明はこれらの点に鑑みてなされたものであり、教師付き機械学習手法で用いられるデータの簡約化処理の妥当性を高める技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様は、プロセッサが実行するデータ処理方法である。このデータ処理方法は、属するクラスが既知である複数のデータのそれぞれを、2以上の特徴量を用いてN(Nは2以上の整数又は無限)次元の特徴空間の1点に写像するステップと、前記特徴空間に写像された前記複数のデータに対応する点の集合を、各点を頂点とする複数のN次元のシンプレックスに分割するステップと、分割により得られた各シンプレックスの各超平面を構成する点の集合を、属するクラスが同じ点を要素とする部分集合に分類するステップと、分類された部分集合それぞれについて、当該部分集合の要素を簡約化するステップと、を含む。前記分割するステップにおいて、各シンプレックスに外接する超球の内部に他のシンプレックスを構成する点が含まれないように、複数のシンプレックスに分割する。
【0007】
前記簡約化するステップにおいて、分類した前記部分集合のそれぞれを構成する要素のうち、前記特徴空間におけるユークリッド距離が最短となる2つの要素を1つの新たな要素に簡約してもよい。
【0008】
前記簡約化するステップにおいて、簡約化によって得られた新たな要素のクラスを、簡約化の対象とした2つの要素が属するクラスと同一としてもよく、前記簡約化するステップにおいて得られた新たな要素を含む複数のデータについて、前記分割するステップ、前記分類するステップ、及び前記簡約化するステップを繰り返す反復ステップをさらに含んでもよい。
【0009】
前記データ処理方法は、前記簡約化したデータを機械学習することにより、任意のデータの属するクラスを識別するための識別器を生成するステップをさらに含んでもよい。
【0010】
前記生成するステップにおいて、サポートベクタマシンを用いて機械学習してもよい。
【0011】
前記写像するステップにおいて、それぞれの属するクラスが既知である複数の訓練データの中からサポートベクタマシンを用いて機械学習することによって選択されたデータである複数のサポートベクタを、前記複数のデータとして写像しもよい。
【0012】
本発明の第2の態様はデータ処理装置である。この装置は、属するクラスが既知である複数のデータを格納するデータベースと、2以上の特徴量を用いて前記複数のデータのそれぞれをN(Nは2以上の整数又は無限)次元の特徴空間の1点に写像する写像部と、前記特徴空間に写像された前記複数のデータに対応する点の集合を、各点を頂点とする複数のN次元のシンプレックスに分割するデータ分割部と、分割により得られた各シンプレックスの各超平面を構成する点の集合を、属するクラスが同じ点を要素とする部分集合に分類する分類部と、分類された部分集合それぞれについて、当該部分集合の要素を簡約するデータ簡約部と、を備える。前記データ分割部は、各シンプレックスに外接する超球の内部に他のシンプレックスを構成する点が含まれないように、複数のシンプレックスに分割する。
【0013】
本発明の第3の態様は、コンピュータにデータ処理機能を実現させるためのプログラムである。このプログラムは、コンピュータに、属するクラスが既知である複数のデータのそれぞれを、2以上の特徴量を用いてN(Nは2以上の整数又は無限)次元の特徴空間の1点に写像する機能と、前記特徴空間に写像された前記複数のデータに対応する点の集合を、各点を頂点とする複数のN次元のシンプレックスに分割する機能と、分割により得られた各シンプレックスの各超平面を構成する点の集合を、属するクラスが同じ点を要素とする部分集合に分類する機能と、分類された部分集合それぞれについて、当該部分集合の要素を簡約する機能と、を実現させる。前記分割する機能において、各シンプレックスに外接する超球の内部に他のシンプレックスを構成する点が含まれないように、複数のシンプレックスに分割する。
【0014】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0015】
本発明によれば、教師付き機械学習手法に用いられるデータの簡約化処理の妥当性を高める技術を提供することができる。
【発明を実施するための形態】
【0017】
<サポートベクタマシンの概要>
実施の形態に係るデータ処理技術の前提となる機械学習について、サポートベクタマシン(Support Vector Machine;以下、「SVM」と記載する)を例とし、その概要についてまず説明する。
【0018】
SVMは教師付き機械学習手法の一種であり、線形入力素子を利用して2つのクラスの識別器を生成する手法である。SVMの主要なタスクは、−1又は+1のラベルy
iを持つl個の訓練用データx
i(ここで、i=1,2,・・・,l)が与えられた場合に、次の(1)式の制約二次計画問題(QP問題)を解くことである。なお、−1のラベルy
iが付された訓練用データx
iと、+1のラベルy
iが付された訓練用データx
iとが、上述した2つのクラスのデータに対応する。
【0020】
訓練データを構成する各要素は、複数の特徴量によって多次元の特徴空間上の1点に写像される。このため各訓練用データは特徴空間上の位置ベクトルx
iを用いて特定できる。そこで、以下訓練データを構成する各要素を、特徴空間上のベクトルx
iを用いて参照する。すなわち、ある訓練データが特徴空間上の位置ベクトルx
iに写像される場合、その訓練データを「ベクトルx
i」と表現する。
【0021】
(1)式におけるK(x
i,x
j)は、特徴空間上の二つのベクトルx
iとx
j間の内積を計算するカーネル関数であり、C
i(i=1,2,・・・,l)は前記与えられた訓練用データ中のノイズの入った訓練用データにペナルティを課すパラメータである。
【0022】
上記の問題を解くことは、訓練用データの数lが大きくなると、次のような3つの問題が起きてくる。
【0023】
1)カーネルマトリックK
ij=K(x
i,x
j)、(ここに、i,j=1,2,・・・,l)を蓄積するメモリの容量の問題。すなわち、カーネルマトリックスのデータ量は、通常のコンピュータのメモリ容量を超えてしまうという問題。
2)カーネル値K
ij(i,j=1,2,・・・,l)をコンピュータで計算するのが複雑であるという問題。
3)QP問題をコンピュータで解くのが複雑であるという問題。
【0024】
テストフェーズ、すなわち教師データを用いて生成された識別子を用いて未知データxのクラスを検証するフェーズでは、SVMの決定関数f(x)は以下の(2)式で表され、サポートベクタと呼ばれるNs個の訓練用データx
i(i=1,2,・・・,Ns)から選択されたデータによって構成される。
【0026】
(2)式において、f(x)>0であれば、未知データxはラベルが正のクラスに分類される。同様に、f(x)<0であれば、未知データxはラベルが負のクラスに分類される。
【0027】
(2)式におけるSVMの決定関数f(x)の複雑度は、サポートベクタの個数Nsが増えるとともに線形に増大する。この個数が大きくなると、テストフェーズでのSVMの計算速度は、カーネル値K(x
i,x)(i=1,2,・・・,Ns)の計算量が増大するために遅くなる。
【0028】
以上をまとめると、訓練データの数lが多くなると識別器を生成するための訓練にかかる時間が増大する。また、識別器として得られるサポートベクタの数が多くなると、テストフェーズにおいて未知データの識別にかかる時間が増大する。
【0029】
ここで、訓練データとして用意された複数のデータは、それぞれ属するクラス、すなわち上述のラベルy
iの値が既知である。この訓練データからSVMの学習手法によって選択された1以上のサポートベクタもまた、属するクラスが既知である。なぜなら、サポートベクタはそれぞれの属するクラスが既知である複数の訓練データの中から、選択されたデータであるからである。したがって以下本明細書において、訓練データ及び識別器であるサポートベクタを特に区別する場合を除いて、属するクラスが既知であるデータを単に「既知データ」と記載する。
【0030】
本願の発明者は過去に、SVMの演算を高速化するために、N個の訓練データを低減ベクトルと呼ばれるM個(M<<N)の訓練データに簡約化する手法を提案している。ここで、訓練データもサポートベクタも既知データであるから、上記の簡約化手法はサポートベクタの簡約にも適用できる。
【0031】
一方で、訓練データを簡約化することは教師付き機械学習による判別基準(SVMであればサポートベクタ)の生成に大きな影響を及ぼしうるため、訓練データの簡約化の妥当性を高めることが好ましい。
【0032】
<実施の形態の概要>
実施の形態に係るデータ処理方法は、訓練データ及びサポートベクタを含む既知データを簡約化する際に、簡約化の対象とする既知データを選択するための手法に関する。
実施の形態に係るデータ処理装置は、既知データをそれぞれ特徴空間上の点に写像し、写像した点群に対して多次元におけるドロネー三角形分割を実行する。
【0033】
ここで「ドロネー三角形分割」とは、2次元平面上に離散的に分布する点を頂点とする三角形によって2次元平面を漏れなくかつ重なりなく分割する手法の一種である。ドロネー三角形分割によって分割された三角形は以下に記載するような性質を持つ。すなわち、ドロネー三角形分割によって分割された任意の三角形の外接円の内部には、他の三角形を構成する点が含まれないという性質である。
【0034】
ドロネー三角形分割は、3次元以上の多次元空間における点群を対象とする空間分割手法に拡張できることが知られている。拡張されたドロネー三角形分割では、多次元空間上に離散的に分布する点を頂点とするシンプレックス(Simplex;単体)によって、多次元空間を分割することになる。
【0035】
例えば、3次元空間におけるシンプレックスは四面体であるため、3次元空間におけるドロネー三角形分割は、3次元空間上に離散的に分布する点を頂点とする四面体で3次元空間を分割することになる。3次元空間におけるドロネー三角形分割を実行すると、任意の四面体の外接球の内部には、他の四面体を構成する点が含まれない。
【0036】
同様に4次元空間におけるシンプレックスは五胞体であるため、4次元空間におけるドロネー三角形分割は、3次元空間上に離散的に分布する点を頂点とする五胞体で4次元空間を分割することになる。4次元空間におけるドロネー三角形分割を実行すると、任意の五胞体の外接球の内部には、他の五胞体を構成する点が含まれない。
【0037】
なお、四面体における“超平面”は三角形であり、五胞体における超平面は四面体である。一般に、N次元のシンプレックスを構成する超平面は、N−1次元のシンプレックスとなる。
【0038】
このように、3次元以上の多次元空間における点群を対象とするドロネー三角形分割は、正確には“シンプレックス分割”である。本明細書では2次元以上の多次元空間を対象とする分割を、便宜上単に「ドロネー分割」と記載し、ドロネー分割して得られた2次元又はそれ以上の次元のシンプレックスを、単に「シンプレックス」と記載する。ドロネー分割を実行することによって得られた任意のシンプレックスは、そのシンプレックスの外接超球の内部に他のシンプレックスを構成する点が含まれない。この性質は、既知データが分布する空間全体にわたって成り立つ広域的な性質である。
【0039】
実施の形態に係るデータ処理装置は、特徴空間上に離散的に分布した既知データに対して多次元ドロネー分割を実行して結果得られた各シンプレックスの超平面を、簡約化の対象とする。このように実施の形態に係るデータ処理装置は、特徴空間上に分布した既知データを、ドロネー分割を利用して分類した後に簡約化を実行する。このため、単に特徴空間における2つの既知データの距離といった局所的な情報ではなく、ドロネー分割の広域的な性質を簡約化に組み込むことができる。故に、機械学習手法に用いられるデータの簡約化処理の妥当性が高まると考えられる。
【0040】
以下、実施の形態に係るデータ処理装置についてより詳細に説明する。なお、以下では、データ処理装置1はSVMの手法を用いて機械学習を実行することを前提とする。
【0041】
<データ処理装置の機能構成>
図1は、実施の形態に係るデータ処理装置1の機能構成を模式的に示す図である。実施の形態に係るデータ処理装置1は、データ処理装置1とデータベース20とを備える。データ処理装置1は、写像部11、データ分割部12、分類部13、データ簡約部14、訓練部15、未知データ取得部16、及び検証部17を含む。またデータベース20は、訓練データデータベース21及びサポートベクタデータベース22を含む。
【0042】
データ処理装置1は、例えばPC(Personal Computer)やサーバ等、CPU(Central Processing Unit)及びメモリ等の計算リソースを持つコンピュータである。データ処理装置1はデータ処理装置1のCPUであり、コンピュータプログラムを実行することによって写像部11、データ分割部12、分類部13、データ簡約部14、訓練部15、未知データ取得部16、及び検証部17として機能する。
【0043】
データベース20は、例えばHDD(Hard Disc Drive)やSSD(Solid State Drive)等の既知の大容量記憶装置である。データベース20に含まれる訓練データデータベース21とサポートベクタデータベース22とはいずれも、複数の既知データを格納するデータベースである。
【0044】
より具体的には、訓練データデータベース21は、属するクラスが既知である複数の訓練データを記憶している。サポートベクタデータベース22は、SVMを用いて訓練データから生成されたサポートベクタを記憶している。データベース20はこの他、データ処理装置1を制御するためのオペレーティングシステムや、データ処理装置1に各部の機能を実現させるためのコンピュータプログラム、SVMで用いるための複数の特徴量も記憶している。
【0045】
写像部11は、2以上の特徴量を用いてデータベース20が記憶している複数の既知データのそれぞれをN次元の特徴空間の1点に写像する。ここでNは2以上の整数又は無限であり、(1)式におけるK(x
i,x
j)の種類によって異なる。
【0046】
データ分割部12は、写像部11が特徴空間に写像した複数のデータに対応する点の集合を、ドロネー分割の手法を用いて各点を頂点とする複数のN次元のシンプレックスに分割する。より具体的には、データ分割部12は、各シンプレックスに外接する超球の内部に他のシンプレックスを構成する点が含まれないように、複数のシンプレックスに分割する。
【0047】
分類部13は、データ分割部12によるドロネー分割によって得られた各シンプレックスの各超平面を構成する点の集合を、属するクラスが同じ点を要素とする部分集合に分類する。データ簡約部14は、分類部13が分類した部分集合それぞれについて、当該部分集合の要素を簡約する。
【0048】
図2(a)−(d)は、実施の形態に係るデータ処理装置1が実行する既知データの簡約化処理を説明するための図である。なお、図示の便宜上、
図2(a)−(d)は、特徴量f1と特徴量f2との二つの特徴量によって張られた2次元の特徴空間上に、既知データを写像した場合の例を示している。しかしながら、特徴空間の次元は一般には2次元よりも大きい。
【0049】
図2(a)は、写像部11が特徴量f1と特徴量f2とを用いて既知データを2次元の特徴空間に写像した場合の特徴空間を模式的に示す図である。
図2(a)において、白丸は正のラベル、すなわちy
iの値が+1である既知データを示している。また、
図2(a)において、黒丸は負のラベル、すなわちy
iの値が−1である既知データを示している。
【0050】
図2(b)は、
図2(a)に示された点群に対してデータ分割部12がドロネー分割を実行した結果を示す図である。
図2(b)に示すように、データ分割部12は各点をそのラベルの値によって区別せずに、ドロネー分割を実行する。このため
図2(b)に示すように、シンプレックス(
図2(b)では三角形)を構成する辺は、両端が白丸の辺、両端が黒丸の辺、及び一方が白丸であり他方が黒丸の辺の3種類が存在する。
【0051】
なお、2次元のシンプレックスにおける辺は、多次元のシンプレックスにおける超平面に対応する。2次元のシンプレックスの場合と同様に、多次元のシンプレックスにおける超平面は、正のラベルを持つデータに対応する点のみから構成されるもの、負のラベルを持つデータに対応する点のみから構成されるもの、及びどちらの点も含むもの、の3種類が存在する。
【0052】
図2(c)は、
図2(b)に示されたシンプレックスの超平面(すなわち、三角形の辺)に対して、分類部13が分類した結果を示す図である。分類部13は、
図2(b)における各三角形のそれぞれの辺のうち両端の点の属するクラスが同じ辺を選択することにより、各点を二つの部分集合に分類している。
図2(c)において、辺の両端のうち一方が白丸であり他方が黒丸の辺は分類部13が選択しない辺として破線で示している。
【0053】
図2(d)は、
図2(c)に示された選択結果に基づいて、データ簡約部14が簡約化を実行した結果を示す図である。
図2(d)に示されるデータの数は
図2(a)に示されるデータの数よりも減少している。
図2(d)に示されるデータセットを利用することにより、データ処理装置1は、SVMの訓練又はテストの実行速度を上げることができる。
【0054】
図3は、実施の形態に係るデータ簡約部14による簡約化処理を説明するための図であり、
図2(c)及びその一部を拡大した様子を示す図である。
【0055】
データ簡約部14は、分類部13が分類した部分集合のそれぞれを構成する要素のうち、特徴空間におけるユークリッド距離が最短となる2つの要素を1つの新たな要素に簡約する。例えば
図3に示す例において、点P1と点P2との間の距離L12は、点P2と点P3との間の距離L23よりも長い。しかしながら、点P2と点P3とは同一のシンプレックスを構成する点ではないため、データ簡約部14は点P2と点P3とを簡約化の対象とはしない。したがって、単に二つの点のユークリッド距離の短長に基づいて簡約化の対象を決定する従来の手法と比較して、簡約化の結果生成される新たなデータ群は異なるものとなる。
【0056】
図4は、実施の形態に係るデータ簡約部14による簡約化処理を説明するための別の図である。より具体的には、特徴空間が4次元空間の場合におけるデータ簡約部14の簡約化の処理単位を説明するための図である。特徴空間が4次元空間の場合、シンプレックスは5胞体であり、その超辺は
図4に示すような四面体である。
【0057】
図4に示すシンプレックスの超辺としての四面体は、点V1、点V2、点V3、及び点V4を頂点とする四面体である。このうち、点V1、点V2、及び点V4は黒丸(ラベルの値が負)であり、点V3は白丸(ラベルの値が正)である。この場合、分類部13は、点V1、点V2、及び点V4を負のレベルを持つ点の部分集合として分類し、点V3を正のラベルを持つ点の部分集合として分類する。この例では、正のラベルを持つ点の部分集合の要素は点V3のみであるため、データ簡約部14は簡約化処理の対象とはしない。
【0058】
正のラベルを持つ点の部分集合には複数の点が含まれるため、データ簡約部14による簡約化処理の対象となる。
図4において、点V1と点V2との距離をL12、点V2と点V4との距離をL24、点V4と点V1との距離をL41とすると、L12<L24<L41である。このため、データ簡約部14は、点V1と点V2とを簡約化して一つの新たな点を生成する。なお、簡約化の具体的な手法は既知の手法を用いればよい。
【0059】
ここでデータ簡約部14は、簡約化によって得られた新たな要素のクラスを、簡約化の対象とした2つの要素が属するクラスと同一とする。
図3に示す例では、点V1と点V2とはともに負のラベルを持つ点であるから、データ簡約部14は、簡約化によって得られた新たな要素にも負のラベルを付す。データ簡約部14は、分類部13が分類した部分集合を参照しながら、データ分割部12が分割した全てのシンプレックスの超辺について簡約化処理を実行することにより、新たなデータセットを生成する。データ簡約部14は生成した新たなデータセットを訓練データデータベース21に記憶させる。
【0060】
なお、
図4において点V3と点V4との間の距離であるL34は、L12、L24、及びL41と比較して短い。つまり、
図4に示す四面体を構成する辺のうち最短の辺である。しかしながら、点V3と点V4とは異なるラベルを持つため異なる部分集合に分類されているため、データ簡約部14は点V3と点V4とを簡約化して新たな要素とすることはしない。
【0061】
データ分割部12は、新たなデータセットを対象として再度ドロネー分割を実行する。分類部13は、データ分割部12が再度ドロネー分割することによって得られたシンプレックスの各超平面を構成する点の集合を、属するクラスが同じ点を要素とする部分集合に再分類する。データ簡約部14は、分類部13が再分類した部分集合を参照しながら、データ分割部12が新たに分割した全てのシンプレックスの超辺について再度簡約化処理を実行することにより、新たなデータセットを生成する。以上の処理を繰り返すことにより、データ処理装置1は既知データの数を減少することができる。
【0062】
図1の説明に戻る。訓練部15は、訓練データデータベース21が記憶している訓練データに対してSVMを実行し、任意のデータの属するクラスを識別するための識別器としてサポートベクタを生成する。訓練部15は、生成したサポートベクタをサポートベクタデータベース22に記憶させる。
【0063】
未知データ取得部16は、属するクラスが未知である未知データを取得する。検証部17は、未知データ取得部16が取得した未知データに対して訓練部15が生成した識別器を適用し、未知データのクラスを識別する。
【0064】
データ処理装置1は、既知データとして訓練データデータベース21が格納する訓練データを対象として簡約化処理を実行する場合、SVMの実行対象となる訓練データの数を減らすことができる。この場合、データ処理装置1は訓練に要する計算量を減少させることができるので、訓練を高速化することができる。
【0065】
一方、データ処理装置1が、既知データとしてサポートベクタデータベース22が格納するサポートベクタを対象として簡約化処理を実行する場合、サポートベクタの数を減らすことができる。この場合、データ処理装置1は未知データのクラスを識別する処理であるテスト処理に要する計算量を減少させることができるので、テスト処理を高速化することができる。
【0066】
<データ簡約化処理の処理フロー>
図5は、実施の形態に係るデータ処理装置1が実行するデータ簡約化処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えばデータ処理装置1の電源が投入された時に開始する。
【0067】
写像部11は、データベース20から既知データを取得する(S2)。写像部11は、取得した既知データをそれぞれ特徴空間上の1点に写像する(S4)。データ分割部12は、写像部11が特徴空間上に写像した既知データの点群に対しドロネー分割を実行する(S6)。
【0068】
分類部13は、ドロネー分割によって得られた複数のシンプレックスの超辺を構成する各点を、対応するデータの属するクラス毎の部分集合に分類する(S8)。データ簡約部14は、分類された部分集合それぞれについて、当該部分集合を構成するデータを簡約化する(S10)。データ分割部12は、簡約化によって得られた新たな既知データをデータベース20に記憶させて格納する(S12)。
【0069】
データ処理装置1は、予め定められた反復回数となるまでは簡約化処理を終了せず(S14のNo)、上述の各処理を継続する。データ処理装置1が予め定められた反復回数の簡約化処理を実行すると(S14のYes)、本フローチャートにおける処理は終了する。
【0070】
以上説明したように、実施の形態に係るデータ処理装置1によれば、教師付き機械学習手法に用いられるデータの簡約化処理の妥当性を高めることができる。
【0071】
特に、データ処理装置1が訓練データを対象に簡約化処理を実行した場合、機械学習に要する時間を削減することができる。また、データ処理装置1がサポートベクタを対象に簡約化処理を実行した場合、未知データのクラスを識別するテストフェーズに要する時間を削減することができる。
【0072】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。特に、装置の分散・統合の具体的な実施の形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0073】
例えば、上記の例では機械学習として主にSVMを例に説明した。しかしながら、訓練データの簡約化に関しては、例えばニューラルネットワークやブースティング等のSVM以外の他の機械学習手法に対しても適用することができる。
【0074】
上記では、データ分割部12が特徴空間上に写像されたデータに対してドロネー三角形分割を実行することについて説明した。ここで、ドロネー三角形分割の双対としてボロノイ図が存在する。より具体的には、ドロネー三角形分割によって得られた分割図は、ボロノイ領域の隣接関係を表現している。したがって、ドロネー三角形分割を実行することとボロノイ図を求めることとは1対1の関係がある。この意味で、データ分割部12は特徴空間上に写像されたデータに対してドロネー三角形分割を実行することに代えて、ボロノイ図を求めてもよい。