JP2013152654A - 識別器、識別器構築装置、プログラム - Google Patents
識別器、識別器構築装置、プログラム Download PDFInfo
- Publication number
- JP2013152654A JP2013152654A JP2012013684A JP2012013684A JP2013152654A JP 2013152654 A JP2013152654 A JP 2013152654A JP 2012013684 A JP2012013684 A JP 2012013684A JP 2012013684 A JP2012013684 A JP 2012013684A JP 2013152654 A JP2013152654 A JP 2013152654A
- Authority
- JP
- Japan
- Prior art keywords
- data
- learning
- discriminator
- node
- class
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】学習用データ数が多い場合であっても、短時間かつ高精度に未知データを多クラスに識別する識別器等を提供する。
【解決手段】識別器2は、未知データを入力し(S11)、未知データを次元ごとにビット列に変換し(S12)、ビット列群の並び替えを行い(S13)、未知データに関するビットデータを生成する。次に、識別器2は、クラスを1つずつ特定し(S14)、学習領域31において、特定したクラスのビットデータに対応するパスを探索し(S15)、探索したパスに含まれるノードに係る局所密度の値を記憶する(S16)、という処理を繰り返す。そして、識別器2は、記憶されている局所密度を参照し、局所密度の値が最大となるクラスを、未知データが属するクラスに決定する。
【選択図】図9
【解決手段】識別器2は、未知データを入力し(S11)、未知データを次元ごとにビット列に変換し(S12)、ビット列群の並び替えを行い(S13)、未知データに関するビットデータを生成する。次に、識別器2は、クラスを1つずつ特定し(S14)、学習領域31において、特定したクラスのビットデータに対応するパスを探索し(S15)、探索したパスに含まれるノードに係る局所密度の値を記憶する(S16)、という処理を繰り返す。そして、識別器2は、記憶されている局所密度を参照し、局所密度の値が最大となるクラスを、未知データが属するクラスに決定する。
【選択図】図9
Description
本発明は、未知データを多クラスに識別する識別器等に関するものである。
クラスラベルがある学習用データを基に、未知データを多クラス(厳密には2クラス以上のクラス数を意味する。)に識別する識別器は、多クラス識別器と呼ばれる。多クラス識別器の代表的な手法としては、(1)Multi-Class Support Vector Machines(以下、「多クラスSVM」という。)と、(2)k-Nearest Neighbor(以下、「k近傍法」という。)が知られている。
非特許文献1には、多クラスSVMが記載されている。一般に、SVMでは、学習用データを非線形写像によって高次の特徴空間Fに写像し、それらのデータを分離する超平面を求める。そして、未知データが超平面のどちらに分類されるかによって、未知データのクラスを予測する。但し、通常のSVMは、未知データを特定のクラスAとクラスBのいずれかに識別する識別器(以下、「2クラス識別器」という。)であり、クラス数が3以上の場合には、そのままでは識別できない。そこで、非特許文献1には、以下の2つの多クラスSVMが記載されている。
(1−1)one-versus-the-rest・・・あるクラスとそれ以外のクラスを分けるSVMをm個構築する(m:クラス数)。
(1−2)one-versus-one・・・あるクラスとあるクラスを分けるSVMをm(m−1)/2個構築する(m:クラス数)。
(1−1)one-versus-the-rest・・・あるクラスとそれ以外のクラスを分けるSVMをm個構築する(m:クラス数)。
(1−2)one-versus-one・・・あるクラスとあるクラスを分けるSVMをm(m−1)/2個構築する(m:クラス数)。
(1−1)及び(1−2)とも、複数個のSVMによる識別結果から最終的な解を決定する。(1−1)であれば、1個のSVMのみが「あるクラス」と識別すると、最終的な解を決定することができる。但し、複数個のSVMが「あるクラス」と識別すると、最終的な解が決定できない。これに対して、(1−2)であれば、多数決によって最終的な解を決定することができる。
また、非特許文献2には、k近傍法が記載されている。k近傍法では、未知データと学習用データとの距離を計算し、距離が近い方からk個の学習用データを参照し、そのk個の学習用データがどのクラスに属するかによって、未知データのクラスを識別する。k近傍法の場合、例えば、多数決によって最終的な解を決定することができる。
尚、本発明者らは、特許文献1に記載されているように、高精度な2クラス識別器を短時間で構築する識別器構築装置等を発明している。
Hsu, C.W. and Lin, C.J., "Acomparison of methods for multiclass support vector machines", IEEETRANSACTIONS ON NEURAL NETWORKS, 13(2), 2002
Bishop, C.M., 「パターン認識と機械学習」, 2007
しかしながら、非特許文献1等に記載の多クラスSVMや、非特許文献2に記載のk近傍法では、以下に示す問題点がある。
まず、多クラスSVMの問題点について説明する。SVMは、チューニングすべきパラメータ(例えば、ガウシアンカーネルの場合は分散パラメータ等)が存在し、クロスバリデーション等によってパラメータの値を決定する必要がある。また、パラメータの値は識別結果の精度に大きく影響を与える。つまり、問題点の1つ目は、チューニングが必要なパラメータが存在することによって、予測精度にばらつきが生じることである。
また、多クラスSVMでは、学習用データ数が多い場合、学習処理に必要な計算量が急激に多くなる。一般に、1個のSVMを構築する為の学習処理に必要な計算量は、学習用データの数をNとすると、O(N3)である。つまり、問題点の2つ目は、学習用データ数が多い場合には、計算に時間がかかることである。
次に、k近傍法の問題点について説明する。k近傍法でも、クロスバリデーション等によって、パラメータ「k」の値を決定する必要がある。また、パラメータ「k」の値は識別結果の精度に大きく影響を与える。つまり、問題点の1つ目は、チューニングが必要なパラメータが存在することによって、予測精度にばらつきが生じることである。
また、k近傍法では、学習用データ数が多い場合、識別処理に必要な計算量が多くなる。ここで、k近傍法の場合、学習処理は不要である。しかし、識別処理において、未知データごとに、全ての学習用データと未知データとの距離を計算する必要がある。一般に、1個の未知データの識別処理に必要な計算量は、学習用データの数をN、データの次元数をdとすると、O(dN)である。つまり、問題点の2つ目は、学習用データ数が多い場合には、計算に時間がかかることである。
尚、特許文献1では、多クラス識別器について言及していない。
本発明は、前述した問題点に鑑みてなされたものであり、その目的とすることは、学習用データ数が多い場合であっても、短時間かつ高精度に未知データを多クラスに識別する識別器等を提供することである。
前述した目的を達成するために第1の発明は、d次元の特徴量を有する未知データを多クラスに識別する識別器であって、クラスラベル及び前記特徴量を有する学習用データに基づいて構築されるd次元体の学習領域の局所密度を記憶する記憶手段と、単一の前記未知データの特徴量が入力されると、前記局所密度を参照して、前記未知データの特徴量を含む複数のd次元体の識別領域におけるクラスごとの前記学習用データの密度を算出し、算出される密度が最大となるクラスを前記未知データが属するクラスとする識別処理を行う識別手段と、を具備する識別器である。第1の発明によって、学習用データ数が多い場合であっても、短時間かつ高精度に未知データを多クラスに識別することができる。
前記複数のd次元体の識別領域は、d次元直方体の入れ子構造であることが望ましい。これによって、識別処理に必要な計算量が少なくて済み、短時間に識別処理を実行することが可能となる。
また、前記学習領域は、二分決定グラフとして構築され、前記局所密度は、前記学習用データから生成されるビットデータのビット長をnとしたときに、前記二分決定グラフの各ノードにおける前記最小項の数を2のn乗で除した値であり、前記識別手段は、クラスごとに、前記未知データから生成されるビットデータが示すパスに含まれるノードに係る前記局所密度を参照することによって、前記識別処理を行うことが望ましい。二分決定グラフを用いることによって、処理に必要な記憶容量を減らすことができ、計算時間を短縮することができる。特に、既約な順序付き二分決定グラフの場合、論理関数同士の演算がグラフのサイズにほぼ比例する程度の計算時間によって実行できる。
また、前記学習領域は、全てのクラスの前記学習用データに係る前記ビットデータが論理和演算によって単一の前記二分決定グラフに逐次追加されることによって構築されることが望ましい。これによって、全てのクラスを纏めた単一の二分決定グラフを用いることになるので、異なるクラス同士でノードを共有することができ、メモリ使用量を節約できるとともに、識別処理における計算時間も短縮することができる。
第2の発明は、d次元の特徴量を有する未知データを多クラスに識別する識別器を構築する識別器構築装置であって、クラスラベル及び前記特徴量を有する学習用データから生成されるビットデータが示すd次元体の学習領域を二分決定グラフとして構築する構築手段と、前記ビットデータのビット長をnとしたときに、前記二分決定グラフの各ノードにおける前記最小項の数を2のn乗で除した値を前記学習領域の局所密度として算出する算出手段と、を具備する識別器構築装置である。第2の発明によって、学習用データ数が多い場合であっても、短時間かつ高精度に未知データを多クラスに識別する識別器を構築することができる。
前記構築手段は、全てのクラスの前記学習用データを論理和演算によって単一の前記二分決定グラフに逐次追加することによって前記学習領域を構築することが望ましい。これによって、全てのクラスを纏めた単一の二分決定グラフを構築することになるので、異なるクラス同士でノードを共有することができ、メモリ使用量を節約できるとともに、識別処理における計算時間も短縮することができる。
第3の発明は、コンピュータを、第1の発明の識別器として機能させるためのプログラムである。第3の発明を汎用のコンピュータにインストールすることによって、第1の発明の識別器を得ることができる。
第4の発明は、コンピュータを、第2の発明の識別器構築装置として機能させるためのプログラムである。第4の発明を汎用のコンピュータにインストールすることによって、第2の発明の識別器構築装置を得ることができる。
本発明により、学習用データ数が多い場合であっても、短時間かつ高精度に未知データを多クラスに識別する識別器等を提供することができる。
以下図面に基づいて、本発明の実施形態を詳細に説明する。本発明の実施形態では、識別器が、何らかの制御システム(例えば、車両システム等)において実際に観測されるデータを多クラス(厳密には、2クラス以上)に識別することを想定している。つまり、学習用データ及び未知データは、実際のシステムにおいて観測されるデータである。尚、本発明の識別器は、学習用データを用いて未知データを多クラスに識別するものであれば、どのような用途に用いても良い。
図1は、識別器構築装置1(識別器2)のハードウエア構成図である。識別器構築装置1は、識別器2を構築するための装置である。識別器2は、未知データを多クラスに識別する装置である。尚、図1のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
識別器構築装置1(識別器2)は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続される。
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成される。
CPUは、記憶部12、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス18を介して接続された各装置を駆動制御し、識別器構築装置1(識別器2)が行う後述する処理を実現する。ROMは、不揮発性メモリであり、コンピュータのブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。RAMは、揮発性メモリであり、記憶部12、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部11が各種処理を行う為に使用するワークエリアを備える。
記憶部12は、HDD(Hard Disk Drive)であり、制御部11が実行するプログラム、プログラム実行に必要なデータ、OS(Operating System)等が格納される。プログラムに関しては、OSに相当する制御プログラムや、後述する処理をコンピュータに実行させるためのアプリケーションプログラムが格納されている。これらの各プログラムコードは、制御部11により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
メディア入出力部13(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)、USB(Universal Serial Bus)ポート等のメディア入出力装置を有する。通信制御部14は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他のコンピュータ間との通信制御を行う。ネットワークは、有線、無線を問わない。
入力部15は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。入力部15を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。表示部16は、CRTモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。尚、タッチパネル付ディスプレイのように、入力部15及び表示部16が一体であっても良い。
周辺機器I/F(Interface)部17は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器I/F部17を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器I/F部17は、USBやIEEE1394等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。バス18は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
識別器構築装置1及び識別器2は、単一のコンピュータによって構成されても良いし、複数のコンピュータによって構成されても良い。複数のコンピュータによって構成される場合、識別器構築装置1が後述する学習処理を実行するサーバとして機能し、識別器2が後述する識別処理を実行するクライアント端末として機能しても良い。
例えば、識別器2が、車両システムに搭載される場合を考える。この場合、識別器構築装置1は、市場投入前の試験走行時の車両データを学習用データとして入力し、後述する学習処理を実行する。そして、識別器2は、識別器構築装置1から出力される学習結果のデータを予め記憶し、市場投入後の本番走行時の車両データを未知データとして入力し、後述する識別処理を実行する。これによって、識別器2は、市場投入直後であっても学習用データの不足が生じないので、後述する識別処理を精度良く実行することができる。
更に、識別器構築装置1は、市場投入後の車両システムに搭載されている複数の識別器2から、ネットワーク等を介して市場投入後の本番走行時の車両データを追加の学習用データとして入力し、再度学習処理を実行する。そして、識別器構築装置1は、ネットワーク等を介して識別器2に新たな学習結果のデータを配信する。これによって、識別器2は、様々な車両による本番走行時の車両データを用いることができるので、後述する識別処理を精度良く実行することができる。
尚、後述するように、本実施の形態における識別器構築装置1及び識別器2は、学習用データ数が多い場合であっても、短時間かつ高精度に、学習処理及び識別処理を実行することができる。従って、学習用データが膨大になり、ビッグデータ化しても、処理速度の低下を招くことなく、識別処理の精度を向上することができる。
次に、図2を参照しながら、識別器構築装置1による学習処理及び識別器2による識別処理の概要を説明する。
まず、本発明の実施形態において取り扱う「多クラス識別問題」について説明する。学習用データD及び未知データは、d次元の実数値ベクトルである特徴量xによって定義される。未知データの特徴量は、特に、xnewと表記する。また、学習用データD及び未知データには、整数値のクラスラベルy={1、・・・、m}が付与される。但し、未知データに付与されるクラスラベルはNULL値である。未知データのクラスラベルは、特に、ynewと表記する。ここで、「m」はクラス数であり、m≧3である。以上から、学習用データDは、D={(xi、yi)|i=1、・・・、N)と表記できる。ここで、「N」は学習用データDのデータ数である。また、未知データは、(xnew、ynew)と表記できる。
識別器構築装置1の制御部11は、学習用データDを用いて、未知データの特徴量xnewが与えられたときの未知データのクラスラベルynewを識別する識別器2を構築する。ここで、「識別器2を構築する」とは、識別器2が予め記憶すべきデータ(=学習結果)を識別器2の記憶部12に記憶させることを意味する。そして、識別器2の制御部11は、未知データの特徴量xnewが与えられると、記憶部12に記憶されているデータ(=学習結果)を参照し、未知データのクラスラベルynewを識別する。
図2は、識別器による識別処理の概要を説明する図である。識別器2の記憶部12には、クラスラベルy及び特徴量xを有する学習用データDに基づいて構築されるd次元体の学習領域の局所密度が記憶される。そして、識別器2の制御部11は、単一の未知データの特徴量xnewが入力されると、記憶部12に記憶されている学習領域の局所密度を参照して、未知データの特徴量xnewを含む複数のd次元体の識別領域におけるクラスごとの学習用データの密度を算出し、算出される密度が最大となるクラスを未知データが属するクラスとする識別処理を行う。
ここで、図2(a)を参照しながら、「d次元体の学習領域」について説明する。図2(a)では、d次元座標空間を模式的に図示している。「○」、「△」及び「□」は、それぞれ、クラス1、クラス2及びクラス3のクラスラベルが付与されている学習用データである。ここで、d=3の場合には、学習用データは、d次元座標空間における、基準とする立方体の体積を有するものと考える。d=2の場合には、基準とする正方形の面積、d≧4の場合には、面積・体積の概念を拡張し、基準とする長さを次元数だけ乗じた量を考えれば良い。以下、特に断らない限り、「体積」と表記した場合には、面積や、面積・体積の概念を拡張した量を含むものとする。学習用データをこのように考えるときに、「d次元体の学習領域」とは、学習用データの集合によって占められる領域を意味する。
また、「学習領域の局所密度」についても説明する。学習領域の一部又は全体をなす領域を「局所領域」と表記する。「学習領域の局所密度」とは、局所領域に含まれる学習用データの数を、局所領域の体積によって割った値を意味する。識別器2の記憶部12には、学習用データDによって構築される学習領域に対して、あらゆる局所領域の局所密度が記憶される。
また、「d次元体の識別領域」についても説明する。図2(a)では、「A」、「B」及び「C」の符号が付されている点線の閉領域が、「d次元体の識別領域」である。「d次元体の識別領域」は、図2(a)に示すように、未知データの特徴量xnewを含む任意の領域である。様々な形状を有する識別領域を基準として識別処理を行うことによって、従来技術のようにパラメータチューニングを行わなくても、学習用データDの任意の分布形状に対して高精度に識別処理を行うことができる。つまり、本発明の実施の形態における識別器2では、識別処理の前ステップであるパラメータチューニングを行うことに代えて、識別処理の本ステップにおいて、学習領域から様々な形状を有する識別領域を切り出すことにより、識別処理の精度を確保する。尚、後述するように、本発明の実施の形態における識別処理によれば、様々な形状を有する識別領域を切り出しても、処理速度はほとんど低下しない。
図2(b)には、図2(a)に示す事例に対する識別処理の結果が示されている。識別領域A、B及びCの体積は、それぞれ「15」、「10」及び「30」とする。識別領域A、B及びCに含まれるクラス1、2及び3の学習用データは、「表(1)データ数」に示す通りである。また、識別領域A、B及びCにおけるクラス1、2及び3ごとの学習用データの密度は、「表(2)密度」に示す通りである。そして、「表(2)密度」の中の最大値は「0.60」であり、そのときのクラスは「クラス2」である。従って、未知データが属するクラスは、「クラス2」と識別される。
図2(c)は、複数のd次元体の識別領域が、d次元直方体の入れ子構造である場合を模式的に示している。つまり、体積が最も小さい識別領域D1は、体積が2番目に小さい識別領域D2に含まれる。同様に、識別領域D2は、識別領域D3に含まれる。同様に、識別領域D3は、識別領域D4に含まれる。複数のd次元体の識別領域がd次元直方体の入れ子構造である場合、識別処理に必要な計算量が少なくて済み、短時間に識別処理を実行することが可能となる。
次に、図3〜図8を参照しながら、識別器構築装置1による学習処理について説明する。以下では、図3のフローチャートの流れに沿って説明し、適宜図4〜図8を参照する。
図3は、識別器構築装置による学習処理の流れを示すフローチャートである。図3に示すように、識別器構築装置1の制御部11は、クラスラベル及びd次元の特徴量を有する実数値ベクトルの学習用データを入力し(S1)、学習用データを次元ごとにビット列に変換し(S2)、ビット列群の並び替えを行い(S3)、ビットデータを生成する。
図4は、ビットデータの生成処理の一例を示す図である。学習用データ21が車両データの場合、学習用データ21は、例えば、ある時刻に観測された車速、回転数、ACC(Auto Cruse Control)のON/OFFなどの複数の特徴量を有する。特徴量は、車速、回転数のような数値データ、ACCのON/OFFのようなカテゴリカルデータのいずれかに区分される。最初に、識別器構築装置1の制御部11は、学習用データ21に含まれる特徴量に対して様々な加工処理を施して所定の範囲の整数値とする。
特徴量が数値データの場合、細かく区切って離散化し、デジタル化する。例えば、数値データを小数点第1位で四捨五入して整数値とし、int型データに変換する。数値データの取り得る範囲が極端に狭い、または広い場合、制御部11は、適当な係数をかけて想定するint型データの範囲に満遍なく収まるようにする。また、数値データの分布が極端に偏っている場合、対数変換なども行う。また、特徴量が数値データであっても、取り得る値が少ない場合、例えば、エアコンの強度を示すデータなどで0〜3の整数値しか取らない場合などは、カテゴリカルデータとして取り扱っても良い。また、特徴量がカテゴリカルデータであっても、取り得る値に何らかの距離の概念が導入できる場合などは、数値データとして取り扱っても良い。尚、クラスラベルyは、カテゴリカルデータとして取り扱う。
図4(a)には、学習用データ21として、6件のデータが例示されている。クラスラベルyの取り得る値は、y={A、B、C}である。特徴量x1の取り得る値は、x1={0、1、・・・、8}である。特徴量x2の取り得る値は、x2={0、1、・・・、8}である。例えば、Noが「1」のデータは、(y、x1、x2)=(A、2、3)である。これは、特徴量(x1、x2)=(2、3)のデータがクラスAに属することを意味する。
また、図4(a)には、学習用データ21に対応するカルノー図22aが図示されている。カルノー図22aを参照すると、学習用データ21がクラスごとに固まっていることが分かる。
図4(b)には、学習用データ21が次元ごとに変換されたビット列23aが図示されている。(y1、y2)は、クラスラベルyの「A」、「B」、「C」を符号化して「0」、「1」、「2」とし、更に2進数に変換したときのビット列である。(x13、x12、x11)は、特徴量x1を2進数に変換したときのビット列である。(x23、x22、x21)は、特徴量x2を2進数に変換したときのビット列である。例えば、Noが「1」のビット列23aは、(y1、y2、x13、x12、x11、x23、x22、x21)=(0、0、0、1、0、0、1、1)である。
以下では、ビット列に対して順位の概念を導入する。そして、x13とx23のように最も左端のビットを「最上位ビット」(MSB:Most Significant Bit)、x11とx21のように最も右端のビットを「最下位ビット」(LSB:Least Significant Bit)と呼ぶこととする。
図4(c)には、ビットデータ24aが図示されている。ビットデータ24aは、数値データのビット列を最上位ビットから最下位ビットの順に並び替えることによって生成される。図4に示す例では、(y1、y2)はカテゴリカルデータのビット列であるから、並び替えを行わない。また、(x13、x12、x11)及び(x23、x22、x21)は数値データのビット列であるから、並び替えを行う。ここで、最上位ビットは、x13及びx23である。また、最下位ビットは、x11及びx21である。従って、図4(c)に示すように、「y1->y2->x13->x23->x12->x22->x11->x21」の順に並び替えが行われる。例えば、Noが「1」のビットデータ24aは、「00001101」である。
尚、S3における並び替えの処理は、必ずしも必須ではない。S3における並び替えの処理は、全ての次元を同等に扱うことになるので、データの特性について事前に何らかの情報を持っている場合、並び替えを行わない方が良いこともある。例えば、x1の次元は、データの特徴を良く表しており、x2の次元は、ほとんど変化がなく、データの特徴をあまり表していないことが分かっている場合には、x1のビット列をx2のビット列よりも上位とし、両者を同等に扱わない方が良い。S3における並び替えの処理は、データの特性について事前に何も情報を持っていない場合に有効である。
また、カテゴリ属性のビット列群は、数値属性のビット列群と区別することが望ましい。例えば、図4に示す数値属性のx1、x2の他に、カテゴリ属性のx3を含むデータを考え、カテゴリ属性のx3を変換したビット列を(x33、x32、x31)とする。この場合、制御部11は、例えば、「y1->y2->x33->x32->x31->x13->x23->x12->x22->x11->x21」の順に並び替える。カテゴリ属性と数値属性を分けた理由は、一般にカテゴリ属性の取り得る値に対して距離の概念を導入することができず、数値属性と一緒に取り扱うことが困難だからである。データの特性について事前に何も情報を持っていない場合、カテゴリ属性同士や数値属性同士は、どちらが上位になっても構わない。
また、クラスラベルyのビット列は、S3における並び替え処理を行わない。尚、図4(c)に示すように、クラスラベルyのビット列は、特徴量x1、x2のビット列群よりも上位とする。
図3の説明に戻る。次に、識別器構築装置1の制御部11は、S1〜S3の処理によって生成されるビットデータに基づいて、学習領域を二分決定グラフ(BDD:Binary Decision Diagram)として構築する(S4)。尚、学習領域は、二分決定グラフに代えて、カルノー図として構築しても良い。二分決定グラフ及びカルノー図のいずれも、論理関数を表現するために使われるデータ構造の1つである。つまり、学習領域は、論理関数を表現できるデータ構造によって構築されれば良い。以下では、混乱を避ける為に、学習領域を二分決定グラフとして構築する場合について説明する。カルノー図は、必要に応じて例示する。
図5は、学習領域の一例を示す図である。図5に示す学習領域31は、図4(c)に示すビットデータ24aに基づいて二分決定グラフとして構築されたものである。
二分決定グラフは、コンピュータにおいてポインタの配列で表現されるので、処理に必要な記憶容量を減らすことができる。また、既約な順序付き二分決定グラフの場合、論理関数同士の演算がグラフのサイズにほぼ比例する程度の計算時間によって実行できる。ここで、グラフのサイズとはノード数のことである。
順序付き二分決定グラフとは、(1)ノード同士に全順序関係が定義されている、(2)最上位ノードから定数ノードに至る全てのパスについて変数の出現順序が、全順序関係に矛盾しない、二分決定グラフである。ここで、図5に示す例では、33が最上位ノード(ルートノード)、34が定数ノードである。図5に示す例では、定数ノードは、「1」(「真」を意味する。)である。尚、最上位ノード及び定数ノードは特別なノードである為、通常のノードと符号を区別する。既約な二分決定グラフとは、(1)冗長なノードを全て削除、(2)等価なノードを全て共有、という2つの簡約化規則がこれ以上適用できなくなるまで適用されている二分決定グラフである。図5に示す学習領域31は、既約な順序付き二分決定グラフである。
図5に示す例では、楕円形状の32aなどがノードである。図5に示すビットデータ24aの各ビットは、ブーリアン変数(「真」と「偽」のいずれかを取る変数)とみなすことができる。例えば、図4(c)に示すビットデータ24aの1番目のビットy1は、ブーリアン変数とみなすことができ、ノード32aに対応している。33は最も上位のノード(ルートノード)、34は定数ノードである。
図5に示す学習領域31は、実線で示すThen枝、間隔が広い点線で示すElse枝、「*」(アスタリスク)を付した間隔が狭い点線で示す否定Else枝の3つを用いている。Then枝は、ビットデータ24aのビットの値が「1」に対応する枝である。また、Else枝及び否定Else枝は、ビットデータ24aのビットの値が「0」に対応する枝である。例えば、枝35aは否定Else枝である。否定Else枝を用いると、否定演算が短時間で実行できる。
識別器構築装置1の制御部11は、全てのクラスの学習用データをビットデータbi(i=1、・・・、N)に変換し、以下に示す論理和演算によって、単一の二分決定グラフFにビットデータbiを逐次追加することによって学習領域31を構築する。
<論理和演算>
1.F←0
2.for i=1 to N do
F←F∨bi
<論理和演算>
1.F←0
2.for i=1 to N do
F←F∨bi
ここで、ビットデータbiは、例えば図4(c)の場合、Noが「1」のデータに対応するb1は、b1=¬y1∧¬y2∧¬x13∧¬x23∧x12∧x22∧¬x11∧x21となる。但し、¬aは、論理変数aの否定を表す。
このように、全てのクラスを纏めて1つの二分決定グラフを構築することによって、異なるクラス同士でノードを共有することができ、メモリ使用量を節約できるとともに、識別処理における計算時間も短縮することができる。例えば、従来技術の多クラスSVMでは、one-versus-the-restの手法であってもクラス数と同じ数のSVMを構築する必要がある。従って、多クラスSVMよりも、本発明の方が、少なくともメモリ使用量や計算時間の面において優位であると言える。
図3の説明に戻る。次に、識別器構築装置1の制御部11は、二分決定グラフの各ノードにおける最小項(Minterm)の数を算出する(S5)。最小項とは、ブーリアン変数の集合が与えられたとき、全てのブーリアン変数のリテラルを含む積項である。例えば、ブーリアン変数の集合が(a、b、c)のとき、a∧¬b∧cは最小項であり、a∧¬bは最小項ではない。最小項の数の算出処理は、図6、図7を参照して説明する。
図6は、各ノードにおける最小項の数の算出処理を説明する図である。図7は、最小項の数の算出結果の一例を示す図である。図6に示すように、識別器構築装置1の制御部11は、ノードごとに、Positive(以下、「Po」と略記する。):最上位ノードから辿って否定枝を偶数回通る場合の最小項の数、及び、Negative(以下、「Ne」と略記する。):最上位ノードから辿って否定枝を奇数回通る場合の最小項の数、を算出する。ここで、Po+Ne=2のn乗(nはブーリアン変数の数、すなわち、ビットデータ24aのビット数)である。
最初に、識別器構築装置1の制御部11は、定数ノードの最小項の数を算出する。ここで、定数ノードのPoは2のn乗、Neは0として計算する。従って、図7に示すように、定数ノード(=ノード番号が「1」のノード)については、Po=2の8乗=256、Ne=0となる。
次に、識別器構築装置1の制御部11は、深さ優先探索によって、定数ノード以外の各ノードの最小項の数を再帰的に算出する。具体的には、識別器構築装置1の制御部11は、図6に示すように、(a)Else枝が否定枝ではない場合と、(b)Else枝が否定枝の場合に分けて、各ノードにおける最小項の数を算出する。
まず、図6(a)の場合について説明する。図6(a)では、ノード32dが算出対象のノード、Then枝によって接続された下位のノード32bのPoの値がt_p(既知)及びNeの値がt_n(既知)、並びに、Else枝によって接続された下位のノード32cのPoの値がe_p(既知)及びNeの値がe_n(既知)である。このとき、制御部11は、下位のノード32bと32cの算出結果を用いて、Po=t_p/2+e_p/2、Ne=t_n/2+e_n/2の式によって、ノード32dの最小項の数を算出する。
次に、図6(b)の場合について説明する。図6(b)では、ノード32gが算出対象のノード、Then枝によって接続された下位のノード32eのPoの値がt_p(既知)及びNeの値がt_n(既知)、並びに、否定Else枝によって接続された下位のノード32fのPoの値がe_p(既知)及びNeの値がe_n(既知)である。このとき、制御部11は、下位のノード32eと32fの算出結果を用いて、Po=t_p/2+e_n/2、Ne=t_n/2+e_p/2の式によって、ノード32gの最小項の数を算出する。
図5を参照すると、例えば、図7におけるノード番号が「2」のノードについては、下位のノード(=定数ノード34)と接続されたElse枝が否定枝であるから、図6(b)の算出方法によって最小項の数を算出する。つまり、ノード番号が「2」のノードについては、Po=256/2+0/2=128、Ne=256/2+0/2=128となる。
また、図5を参照すると、例えば、図7におけるノード番号が「3」のノードについては、下位のノードと接続されたElse枝が否定枝であるから、図6(b)の算出方法によって最小項の数を算出する。つまり、ノード番号が「3」のノードについては、Po=128/2+0/2=64、Ne=128/2+256/2=192となる。
また、図5を参照すると、例えば、図7におけるノード番号が「4」のノードについては、下位のノードと接続されたElse枝が否定枝ではないことから、図6(a)の算出方法によって最小項の数を算出する。つまり、ノード番号が「4」のノードについては、Po=256/2+128/2=192、Ne=0/2+128/2=64となる。
このようにして、識別器構築装置1の制御部11は、深さ優先探索によって、定数ノード以外の各ノードの最小項の数を再帰的に算出する。図7には、ノード番号が「1」〜「24」について、最小項の数の算出結果41が図示されている。
図3の説明に戻る。次に、識別器構築装置1の制御部11は、二分決定グラフの各ノードにおける局所密度を算出する(S6)。局所密度は、「最小項の数/2のn乗」として計算する。局所密度の算出処理は、図8を参照して説明する。
図8は、局所密度の算出結果の一例を示す図である。ここで、最上位ノードから辿って着目しているノードまでに否定枝を偶数回通るパスのことを、「P接続」という。また、最上位ノードから辿って着目しているノードまでに否定枝を奇数回通るパスのことを、「N接続」という。そして、Density_Positive(以下、「D_Po」と略記する。):各ノードにおけるP接続の局所密度、Density_Negative(以下、「D_Ne」と略記する。):各ノードにおけるN接続の局所密度、とする。
局所密度は、「最小項の数/2のn乗」として計算するので、D_Po=Po/2のn乗、D_Ne=Ne/2のn乗、である。例えば、図8におけるノード番号が「1」のノードについては、D_Po=256/2の8乗=1.000、D_Ne=0/2の8乗=0.000である。
このようにして、識別器構築装置1の制御部11は、二分決定グラフの各ノードにおける局所密度を算出する。図8には、ノード番号が「1」〜「24」について、局所密度の算出結果42が図示されている。
以上、識別器構築装置1の制御部11は、図3に示す一連の処理を行い、学習領域の局所密度を算出する。算出される学習領域の局所密度は、識別器2の記憶部12に記憶される。当然ながら、識別器2の記憶部12には、図5に示す学習領域31のグラフ構造もポインタの配列として記憶される。
次に、図9〜図12を参照しながら、識別器2による識別処理について説明する。以下では、図9のフローチャートの流れに沿って説明し、適宜図10〜図12を参照する。
図9は、識別器による識別処理の流れを示すフローチャートである。図9に示すように、識別器2の制御部11は、クラスラベルがNULLであって、d次元の特徴量を有する実数値ベクトルの未知データを入力し(S11)、未知データを次元ごとにビット列に変換し(S12)、ビット列群の並び替えを行い(S13)、未知データに関するビットデータを生成する。S12では、識別器2の制御部11は、全てのクラスラベルを符号化して未知データに付加することによって、クラス数と同じ数のビット列群を生成する。
図10〜図12は、識別処理を説明する図である。図10(a)には、未知データ25が図示されている。未知データ25の特徴量は、(x1、x2)=(2、5)である。また、未知データ25を含むカルノー図22bも図示されている。カルノー図22bでは、未知データ25を「U」で示している。
図10(b)には、未知データ25に対して、3つのクラスラベルに対応するビット列23bが図示されている。例えば、Noが「1」のビット列23bは、クラス「A」が付加されたものであり、(y1、y2、x13、x12、x11、x23、x22、x21)=(0、0、0、1、0、1、0、1)である。
図10(c)には、未知データ25に関するビットデータ24bが図示されている。識別器2の制御部11は、図3のS3において、学習用データ21に対して並び替えの処理を行った場合、図10のS13においても、並び替えの処理を同様に行う。図10(c)に示す例では、図4(c)と同様、「y1->y2->x13->x23->x12->x22->x11->x21」の順に並び替えが行われる。例えば、Noが「1」のビットデータ24bは、「00011001」である。
図9の説明に戻る。次に、識別器2の制御部11は、クラスを1つ特定し(S14)、学習領域31において、特定したクラスのビットデータに対応するパスを探索し(S15)、探索したパスに含まれるノードに係る局所密度の値をRAM等に記憶する(S16)。但し、最上位ノード、及びクラスラベルを表すノードは対象から外す。図5に示す学習領域31の例であれば、ノード番号が「F」、「24」、「22」、及び「23」のノードは記憶対象から外す。更に、記憶する局所密度の値は、パスごとの最大値のみで十分である。
そして、識別器2の制御部11は、全クラスの処理が終了しているか否かを確認し(S17)、終了していない場合(S17のNo)、S14から処理を繰り返し、終了している場合(S17のYes)、S18に進む。
ここで、図11を参照しながら、パスの探索について説明する。以下では、ノード番号が「X」(X=1〜24)のノードのことを、「ノードX」と表記する。
1例として、クラスAのビットデータに対応するパスの探索について説明する。図11に示すように、クラスAのビットデータは「00011001」である。パスの探索の開始点は最上位ノードFである。最上位ノードFの下位ノードは「ノード24」のみであるから、「ノード24」に進む。次に、y1のビットが「0」であるから、「ノード24」とElse枝によって接続されている下位ノードである「ノード23」に進む。次に、y2のビットが「0」であるから、「ノード23」とElse枝によって接続されている下位ノードである「ノード21」に進む。次に、x13のビットが「0」であるから、「ノード21」とElse枝によって接続されている下位ノードである「ノード17」に進む。次に、x23のビットが「1」であるから、「ノード17」とThen枝によって接続されている下位ノードである「ノード1」に進む。つまり、クラスAに対応するパスは、「最上位ノードF->ノード24->ノード23->ノード21->ノード17->ノード1」となる。
図9の説明に戻る。S18では、識別器2の制御部11は、S16においてRAM等に記憶されている局所密度を参照し、局所密度の値が最大となるクラスを、未知データが属するクラスに決定する。
図10(d)には、S16における記憶結果26が図示されている。まず、クラスAに対する記憶結果26について説明する。前述した通り、クラスAに対応するパスは、「最上位ノードF->ノード24->ノード23->ノード21->ノード17->ノード1」である。但し、前述した通り、「最上位ノードF」、「ノード24」、及び「ノード23」は記憶対象ではない。対象となるノードについて、図8を参照すると、「ノード21」の局所密度は「0.031」、「ノード17」の局所密度は「0.031」、「ノード1」の局所密度は「0.000」である。従って、図10(d)に示すように、クラスAに対する局所密度の最大値は「0.031」となる。
次に、クラスBに対する記憶結果26について説明する。図11に示すように、クラスBに対応するパスは、「最上位ノードF->ノード24->ノード23->ノード20->ノード16->ノード12->ノード9->ノード1」である。対象となるノードについて、図8を参照すると、「ノード20」の局所密度は「0.031」、「ノード16」の局所密度は「0.063」、「ノード12」の局所密度は「0.125」、「ノード9」の局所密度は「0.125」、「ノード1」の局所密度は「0.000」である。従って、図10(d)に示すように、クラスBに対する局所密度の最大値は「0.125」となる。
次に、クラスCに対する記憶結果26について説明する。図11に示すように、クラスCに対応するパスは、「最上位ノードF->ノード24->ノード22->ノード19->ノード1」である。対象となるノードについて、図8を参照すると、「ノード19」の局所密度は「0.031」、「ノード1」の局所密度は「0.000」である。従って、図10(d)に示すように、クラスCに対する局所密度の最大値は「0.031」となる。
そして、記憶結果26を参照すると、クラスA〜クラスCの中で、局所密度の最大値が最も大きいクラスは、「クラスB」である。従って、図10(a)に示す未知データ25が属するクラスは、「クラスB」と識別される。
図12では、カルノー図を用いて識別処理の結果を図示している。但し、図12では、クラスごとにカルノー図が定義されており、カルノー図の全体領域の面積は、2の6乗=64である。カルノー図では、未知データを「U」で図示している。
識別領域(1)〜(7)は、未知データの特徴量を含み、学習領域から様々な形状を有する領域として切り出したものとなっている。具体的には、識別領域(1)は、8×8の正方形である。識別領域(2)は、8×4の長方形である。識別領域(3)は、4×4の正方形である。識別領域(4)は、4×2の長方形である。識別領域(5)は、2×2の正方形である。識別領域(6)は、2×1の長方形である。識別領域(7)は、1×1の正方形である。識別領域(1)〜(7)は、d次元直方体(この例では、2次元長方形)の入れ子構造となっている。
例えば、識別領域(1)に対するクラスAの局所密度は、識別領域(1)に含まれるクラスAに属するデータが2個であるから、2/64=0.031となる。
識別器2の制御部11は、識別領域(1)〜(7)の全てについて局所密度を求める必要はない。例えば、識別器2の制御部11は、正方形の識別領域のみについて局所密度を求めても良い。つまり、識別器2の制御部11は、識別領域(1)、(3)、(5)、及び(1)についてのみ局所密度を求めても良い。このように正方形の識別領域のみについて局所密度を求めるだけでも、識別処理において一定の精度が確保できる。
また、図12に示すカルノー図において、正方形の識別領域のみについて局所密度を求めるということは、図5に示す二分決定グラフの学習領域31において、x13、x12、及びx11に対応するノードの局所密度のみを参照することと同じである。従って、識別器2の制御部11は、x13、x12、x11、及び定数ノードに対応するノードの局所密度のみを参照し、その中で局所密度が最大となるクラスを、未知データが属するクラスとして決定しても良い。ここで、x13及びx23、x12及びx22、並びにx11及びx21をそれぞれ同じレベルと考えると、x13、x12、及びx11は、ビット列のレベルが変わるノードと言える。
次に、学習領域31を二分決定グラフとして構築する場合の計算量について説明する。学習用データ数をN、二分決定グラフのノード数をM、クラス数をmとすると、識別器構築装置1による学習処理に必要な計算量はO(MN)である。従来技術の多クラスSVMであれば、学習処理に必要な計算量はO(m×N3)である。従って、多クラスSVMよりも、識別器構築装置1の方が、学習処理における計算量の面において優位であると言える。
また、学習用データ数をN、特徴量の次元数をd、クラス数をmとすると、識別器2による識別処理に必要な計算量はO(dm)である。従来技術のk近傍法であれば、識別処理に必要な計算量はO(dN)である。一般にはm≪Nであるから、k近傍法よりも、識別器2の方が、識別処理における計算量の面において優位であると言える。
次に、図13を参照しながら、本発明の実施形態の実施例について説明する。図13は、実施例に用いるデータ例を示す図である。図13に示すデータ例は、Machine learning classifier gallery(http://home.comcast.net/~tom.fawcett/public_html/ML-gallery/pages/index.html)に開示されているものである。図13に示すデータ例では、全て2次元空間(x、y)において複数の領域が設けられている。
本実施例及び比較例では、図13に示すデータ例の各領域からランダムに学習用データ及び未知データを取り出した。比較例は、従来技術の多クラスSVM及びk近傍法である。学習用データに対しては、領域を一意に識別する番号をクラスラベルyiとし、入力値として用いた。未知データに対しては、領域を一意に識別する番号をクラスラベルynewとし、正解値として用いた。また、本実施例及び比較例では、以下に示すように、学習用データ数を3通り、未知データ数を1通りとし、それぞれ3回の評価実験を行った。
・学習用データ数:1000、10000、100000
・未知データ数:10000
・学習用データ数:1000、10000、100000
・未知データ数:10000
以下に示す表1は、本実施例及び比較例(多クラスSVM及びk近傍法)の予測精度を比較するための表である。表1に示すように、比較例の多クラスSVM及びk近傍法は、パラメータγやkの値によって予測精度のばらつきが生じている。一方、本実施例は、パラメータチューニングを行わないので、そもそも予測精度のばらつきが生じる要素はない。また、データ数が多い場合、本実施例の精度は、比較例の多クラスSVMやk近傍法の精度と同程度であり、高い精度が確保できていると言える。尚、データ数が少ない場合、本実施例の精度は、データ例の分布形状に依存する。但し、本発明では、特に学習用データ数が多い場合を対象としていることから、データ数が多い場合において精度が確保できれば十分である。
以下に示す表2は、本実施例及び比較例(多クラスSVM)の学習時間を比較するための表である。尚、k近傍法は学習処理を行わないので、学習時間の比較はできない。表2に示すように、比較例の多クラスSVMの学習時間は、学習データ数が増えると、急激に増える。一方、本実施例の学習時間は、学習データ数に比例して増加する程度である。つまり、学習用データ数が多い場合、本実施例は、比較例の多クラスSVMよりも、学習時間が短いと言える。
以下に示す表3は、本実施例及び比較例(多クラスSVM及びk近傍法)の識別時間を比較するための表である。表3に示すように、比較例の多クラスSVM及びk近傍法の識別時間は、学習データ数に比例して増加する。一方、本実施例の識別時間は、学習データ数によらす、ほぼ一定である。つまり、学習用データ数が多い場合、本実施例は、比較例の多クラスSVM及びk近傍法よりも、識別時間が短いと言える。
以上、学習用データ数が多い場合、本実施例は、比較例の多クラスSVM及びk近傍法と同程度の精度を確保しながら、比較例の多クラスSVM及びk近傍法よりも短時間に未知データを多クラスに識別することができると言える。
<変形例>
次に、本発明の実施形態の変形例を説明する。特徴量xの次元数が多い場合、識別器構築装置1の制御部11は、学習用データに対して次元縮約手法を適用し、ビットデータのビット数nを減らしてから、二分決定グラフを構築するようにしても良い。次元縮約手法としては、例えば、主成分分析等が考えられる。これによって、特徴量xの次元数が多い場合であっても、前述した本発明の実施形態における効果を損なうことが無い。尚、学習用データに対して次元縮約手法を適用する場合、識別器2の制御部11も、未知データに対して同様の次元縮約手法を適用する。
次に、本発明の実施形態の変形例を説明する。特徴量xの次元数が多い場合、識別器構築装置1の制御部11は、学習用データに対して次元縮約手法を適用し、ビットデータのビット数nを減らしてから、二分決定グラフを構築するようにしても良い。次元縮約手法としては、例えば、主成分分析等が考えられる。これによって、特徴量xの次元数が多い場合であっても、前述した本発明の実施形態における効果を損なうことが無い。尚、学習用データに対して次元縮約手法を適用する場合、識別器2の制御部11も、未知データに対して同様の次元縮約手法を適用する。
また、識別器構築装置1の制御部11は、ビット列に対する並び替え処理において、特徴量の並び順を変えて様々なビットデータを生成することによって、様々な二分決定グラフを構築するようにしても良い。ここで、「特徴量の並び順を変える」とは、図4(c)の例であれば、特徴量x1とx2の順序を変えて、「y1->y2->x23->x13->x22->x12->x21->x11」とすることである。様々な二分決定グラフを構築することによって、学習領域から様々な形状を有する識別領域を切り出すことができるので、識別処理の精度を確保することができる。
また、識別器2の制御部11は、学習領域を直交回転してから、識別処理を行うようにしても良い。これによって、識別領域をd次元直方体の入れ子構造とし、識別処理に必要な計算量を減らしながらも、実質的には、傾きが異なるd次元直方体を切り出すことと同様の作用を奏することができる。つまり、計算時間を減らしつつ、学習領域から様々な形状を有する識別領域を切り出して、識別処理の精度を確保することができる。
また、識別器2の制御部11は、識別領域をd次元立方体に限定するようにしても良い。これによって、識別結果が特徴量の並び順に依存しないことになる。但し、前述の通り、様々な形状を有する識別領域を切り出す方が、識別処理の精度を確保することができる。従って、識別結果が特徴量の並び順に依存しないことが求められるケースにおいて、識別領域をd次元立方体に限定することが望ましい。
以上、添付図面を参照しながら、本発明に係る識別器構築装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
1………識別器構築装置
2………識別器
21………学習用データ
22a、22b………カルノー図
23a、23b………ビット列
24a、24b………ビットデータ
25………未知データ
31………学習領域
2………識別器
21………学習用データ
22a、22b………カルノー図
23a、23b………ビット列
24a、24b………ビットデータ
25………未知データ
31………学習領域
Claims (8)
- d次元の特徴量を有する未知データを多クラスに識別する識別器であって、
クラスラベル及び前記特徴量を有する学習用データに基づいて構築されるd次元体の学習領域の局所密度を記憶する記憶手段と、
単一の前記未知データの特徴量が入力されると、前記局所密度を参照して、前記未知データの特徴量を含む複数のd次元体の識別領域におけるクラスごとの前記学習用データの密度を算出し、算出される密度が最大となるクラスを前記未知データが属するクラスとする識別処理を行う識別手段と、
を具備する識別器。 - 前記複数のd次元体の識別領域は、d次元直方体の入れ子構造である請求項1に記載の識別器。
- 前記学習領域は、二分決定グラフとして構築され、
前記局所密度は、前記学習用データから生成されるビットデータのビット長をnとしたときに、前記二分決定グラフの各ノードにおける前記最小項の数を2のn乗で除した値であり、
前記識別手段は、クラスごとに、前記未知データから生成されるビットデータが示すパスに含まれるノードに係る前記局所密度を参照することによって、前記識別処理を行う
請求項1又は請求項2に記載の識別器。 - 前記学習領域は、全てのクラスの前記学習用データに係る前記ビットデータが論理和演算によって単一の前記二分決定グラフに逐次追加されることによって構築される
請求項1乃至請求項3のいずれかに記載の識別器。 - d次元の特徴量を有する未知データを多クラスに識別する識別器を構築する識別器構築装置であって、
クラスラベル及び前記特徴量を有する学習用データから生成されるビットデータが示すd次元体の学習領域を二分決定グラフとして構築する構築手段と、
前記ビットデータのビット長をnとしたときに、前記二分決定グラフの各ノードにおける前記最小項の数を2のn乗で除した値を前記学習領域の局所密度として算出する算出手段と、
を具備する識別器構築装置。 - 前記構築手段は、全てのクラスの前記学習用データを論理和演算によって単一の前記二分決定グラフに逐次追加することによって前記学習領域を構築する
請求項5に記載の識別器構築装置。 - コンピュータを、請求項1乃至請求項4のいずれかに記載の識別器として機能させるためのプログラム。
- コンピュータを、請求項5又は請求項6に記載の識別器構築装置として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012013684A JP2013152654A (ja) | 2012-01-26 | 2012-01-26 | 識別器、識別器構築装置、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012013684A JP2013152654A (ja) | 2012-01-26 | 2012-01-26 | 識別器、識別器構築装置、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013152654A true JP2013152654A (ja) | 2013-08-08 |
Family
ID=49048934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012013684A Pending JP2013152654A (ja) | 2012-01-26 | 2012-01-26 | 識別器、識別器構築装置、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013152654A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017194949A (ja) * | 2016-04-22 | 2017-10-26 | 財団法人車輌研究測試中心 | 対象物検出システム及び対象物検出方法 |
US11741363B2 (en) | 2018-03-13 | 2023-08-29 | Fujitsu Limited | Computer-readable recording medium, method for learning, and learning device |
CN116821777A (zh) * | 2023-02-28 | 2023-09-29 | 广东新禾道信息科技有限公司 | 一种新型基础测绘数据整合方法及系统 |
JP7464499B2 (ja) | 2020-10-28 | 2024-04-09 | Kddi株式会社 | コード化装置、コード化方法及びコード化プログラム |
-
2012
- 2012-01-26 JP JP2012013684A patent/JP2013152654A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017194949A (ja) * | 2016-04-22 | 2017-10-26 | 財団法人車輌研究測試中心 | 対象物検出システム及び対象物検出方法 |
US11741363B2 (en) | 2018-03-13 | 2023-08-29 | Fujitsu Limited | Computer-readable recording medium, method for learning, and learning device |
JP7464499B2 (ja) | 2020-10-28 | 2024-04-09 | Kddi株式会社 | コード化装置、コード化方法及びコード化プログラム |
CN116821777A (zh) * | 2023-02-28 | 2023-09-29 | 广东新禾道信息科技有限公司 | 一种新型基础测绘数据整合方法及系统 |
CN116821777B (zh) * | 2023-02-28 | 2024-02-13 | 广东新禾道信息科技有限公司 | 一种新型基础测绘数据整合方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Karami et al. | Choosing DBSCAN parameters automatically using differential evolution | |
Luna et al. | Design and behavior study of a grammar-guided genetic programming algorithm for mining association rules | |
JP5533894B2 (ja) | 外れ値検出装置、外れ値検出方法、プログラム及び車両故障診断システム | |
Koutra et al. | Individual and collective graph mining: principles, algorithms, and applications | |
Barbariol et al. | A review of tree-based approaches for anomaly detection | |
Ishibuchi et al. | Performance evaluation of evolutionary multiobjective optimization algorithms for multiobjective fuzzy genetics-based machine learning | |
Kumar | An optimized farthest first clustering algorithm | |
JP2013152654A (ja) | 識別器、識別器構築装置、プログラム | |
US20060200436A1 (en) | Gene expression programming with enhanced preservation of attributes contributing to fitness | |
Zhang et al. | An affinity propagation clustering algorithm for mixed numeric and categorical datasets | |
Louhichi et al. | Unsupervised varied density based clustering algorithm using spline | |
Miranda et al. | Exploring spatio-temporal dynamics of cellular automata for pattern recognition in networks | |
Osat et al. | Embedding-aided network dismantling | |
Gałka et al. | Isolation Forest based on minimal spanning tree | |
KR102158049B1 (ko) | Cf 트리를 활용한 범위 질의 기반의 데이터 클러스터링 장치 및 방법 | |
JP5182267B2 (ja) | 識別器構築装置、識別器、プログラム | |
Gain et al. | Adaptive position–based crossover in the genetic algorithm for data clustering | |
Ashlock et al. | Multi-clustering: avoiding the natural shape of underlying metrics | |
CN110019383A (zh) | 一种关联规则挖掘方法、装置及计算机可读存储介质 | |
Sieranoja | Clustering with kNN Graph and k-Means | |
CN110825707A (zh) | 数据压缩方法 | |
Cagnini et al. | PASCAL: An EDA for parameterless shape-independent clustering | |
Shen et al. | Approximating graph-constrained max-cut | |
Magdalena et al. | Hierarchical computable aggregations | |
Jabbar et al. | Grey wolf optimization algorithm for hierarchical document clustering |