(57)【要約】【課題】入力されたデータのクラスを決定するための計算量を減少する。【解決手段】計算部は、スコア関数と入力装置から入力されたデータとから、２ｍビットの各々のスコアを計算する（Ｂ）。作成部は、計算部により計算された２ｍビットの各々のスコアのランキングを作成する（Ｃ）。付与部は、作成部により作成された２ｍビットの各々のスコアのランキングに基づいて、２ｍビットの各々に０又は１を付与する（Ｃ）。決定部は、付与部２０６により２ｍビットの各々に付与された０又は１の内容と、複数のクラスの各々のビットの０又は１の内容とに基づいて、入力されたデータに対応するクラスを決定する（Ｄ）。【選択図】図６
2018147107.tif 000002
【特許請求の範囲】
【請求項１】
各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかが付与された複数の入力データである学習データに基づいて、前記複数のビットの各々に対して、入力データについて前記ビットが１となるスコアを計算するためのスコア関数を、分類器として学習する
分類器学習装置。
【請求項２】
前記入力データに付与されたクラスを表す複数のビットにおける１となるビットのスコアと、０となるビットのスコアとの差が生ずるように、前記スコア関数を学習する請求項１記載の分類器学習装置。
【請求項３】
入力データを、各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかに分類するクラス決定装置であって、
前記複数のビットの各々に対する、入力データについて前記ビットが１となるスコアを計算するための予め学習されたスコア関数を用いて、前記入力データについて、前記複数のビットの各々が１となるスコアを計算する計算部と、
前記計算部により計算された前記複数のビットの各々のスコアに基づく０又は１の内容と、前記複数のクラスの各々を表す前記複数のビットとに基づいて、前記入力データに対応するクラスを決定するクラス決定部と、
を備えるクラス決定装置。
【請求項４】
前記クラス決定部は、
前記計算部により計算された前記複数のビットの各々のスコアのランキングを作成する作成部と、
前記作成部により作成された前記複数のビットの各々のスコアのランキングに基づいて、前記複数のビットの各々に０又は１を付与する付与部と、
前記付与部により前記複数のビットの各々に付与された０又は１の内容と、前記複数のクラスの各々のビットの０又は１の内容とに基づいて、前記入力データに対応するクラスを決定する決定部と、
を備える請求項３に記載のクラス決定装置。
【請求項５】
前記複数のクラスの各々は、０と１とが同数の２ｍ（ｍは１以上の自然数）ビットで表される、請求項３又は請求項４に記載のクラス決定装置。
【請求項６】
分類器学習装置が、各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかが付与された複数の入力データである学習データに基づいて、前記複数のビットの各々に対して、入力データについて前記ビットが１となるスコアを計算するためのスコア関数を、分類器として学習する
分類器学習方法。
【請求項７】
入力データを、各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかに分類するクラス決定装置におけるクラス決定方法であって、
計算部が、前記複数のビットの各々に対する、入力データについて前記ビットが１となるスコアを計算するための予め学習されたスコア関数を用いて、前記入力データについて、前記複数のビットの各々が１となるスコアを計算し、
クラス決定部が、前記計算部により計算された前記複数のビットの各々のスコアに基づく０又は１の内容と、前記複数のクラスの各々を表す前記複数のビットとに基づいて、前記入力データに対応するクラスを決定する、
ことを含むクラス決定方法。
【請求項８】
コンピュータを、請求項１若しくは２記載の分類器学習装置、又は請求項３〜請求項５の何れか１項に記載のクラス決定装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分類器学習装置、クラス決定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、情報処理/人工知能/機械学習分野に属する技術であって、ある入力をいくつかの事前に定義したクラスへ自動分類する分類器が提案されている。ある入力をいくつかの事前に定義したクラスへ分類する処理は、計算機による情報処理の基本操作のひとつである。
【０００３】
図８には、入力を事前に定義したラベル（クラス）へ分類する分類器の例が示されている。図８に示すように、分類器は、例えば、ある文書が入力された場合、その文書を、政治、経済、スポーツ等のクラスに分類する。また、ある画像が入力された際に、その画像を、象、車、木等のクラスに分類する。或いは、ロボットが計算機により自動操作されている状況で、待機、前進、右回転等の行動を決定する。または、人間からの指示を認識しメールを出す、ネットに接続する、 時計を表示する等のクラスに分類する、といったことが考えられる。
【０００４】
このような入力を対応するクラスへ分類する処理は、様々な情報処理システムの一部として、計算機により自律的に処理を行う際に実行される。
【０００５】
ここで、上記のようにある入力を対応するクラスへ分類するためには、分類のルールを予め作成する必要がある。
【０００６】
もっとも簡単な方法には、人間が入力毎に分類ルールを記述すれば実現することができる。
【０００７】
しかし、人間が分類ルールを作成することは、分類されるクラスの抽象化の度合いを決める点、全ての可能な入力に対する網羅性の観点等で難しく、時間と費用の両面でコストが高くなることが問題となる。人間が分類ルールを作成して、入力が正しくクラスに分類されるのは、入力の内容そのものが簡単且つ入力の個数や出力のクラスの個数が少ない場合のみである。
【０００８】
また、学習データからの機械学習により、分類ルールを作成することも行われている。
【０００９】
ここでは、扱う入力の個数や出力のクラスの個数が多種多様であるような問題を想定されている（図８参照）。このような分類を高精度に行うための分類ルールを人間が作成することは通常困難である。しかし、学習データがあれば機械学習技術を用いて分類ルールを作成することはできる。これにより、分類器は、入力を精度よく分類することができる。
【００１０】
従来、分類器は、以下のモデルを用いている。
【００１１】
2018147107.tif 000003
【００１２】
ここで、ｘは入力データである。
【００１３】
Θはパラメータである。
ｙは、クラスである。
【００１４】
2018147107.tif 000004
【００１５】
は、予測結果のクラスである。
【００１６】
Ｙは、事前に決めた全クラスの集合である。
【００１７】
Ｓ（ｘ，ｙ，Θ）は、入力ｘのときにクラスｙが選択されるスコアを計算する関数である。分類器は、各クラスについて当該関数で計算されたスコアの最も高くなったクラスを、入力ｘのクラスとして決定する。
【００１８】
上記のスコアを計算する関数は、線形モデルと、ニューラルネットワークとを用いる場合とで次のようになる。
【００１９】
（線形モデル）
【００２０】
2018147107.tif 000005
【００２１】
である。
【００２２】
ｗは、パラメータベクトル（重みベクトル）である。
ｆ（ｘ，ｙ）は、特徴ベクトルである。
【００２３】
特徴ベクトルの各要素の値は人手により抽出ルールを決めるのが一般的である。
【００２４】
なお、Θ＝ｗである。
【００２５】
（ニューラルネットワーク）
【００２６】
2018147107.tif 000006
【００２７】
である。
【００２８】
ｗは、パラメータベクトル（重みベクトル）である。
2018147107.tif 000007
【００２９】
は、特徴ベクトルである。
【００３０】
特徴ベクトルの各要素の値はニューラルネットワークにより決定される。
【００３１】
2018147107.tif 000008
【００３２】
である。
【先行技術文献】
【非特許文献】
【００３３】
【非特許文献１】Mohamed, Aly著、「Survey on multiclass classification methods」、2005年、Technical Report, Caltech.
【非特許文献２】Christopher Bishop著、「Pattern Recognition and Machine Learning」Springer; 1st ed. 2006年
【発明の概要】
【発明が解決しようとする課題】
【００３４】
従来技術（機械学習による分類ルールの獲得）では，クラスの個数が多くなると、計算コストが大きくなり、実行速度及び必要メモリの観点で次のような問題が起こる。
【００３５】
実行速度の面の問題について説明する。例えば、ロボットの自律行動で利用する場合には、計算速度が性能に大きく影響を及ぼす。つまり行動を決定するまでに時間がかかりすぎることで、選択する行動が適正でなくなる可能性がある。
【００３６】
必要メモリ量の問題について説明する。例えば、携帯端末やセンサーノードのように限定的な計算資源しかない環境では、メモリ量が多くないと計算できないような方法では実用化できない。
【００３７】
以上説明したように、従来、多様な状況に対応するためにはデータを詳細に分類したい。よって、分類するクラスの個数は多くしたい。
【００３８】
しかし、分類するクラスの個数が多くなると、クラスの決定のための計算量が多くなり、上記のように実行速度、必要メモリ量の観点で利用が困難になる。
【００３９】
本発明は、上記の課題に鑑みてなされたもので、入力されたデータを分類するための計算量を減少することの可能な分類器学習装置、クラス決定装置、方法、及びクラス決定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００４０】
本発明に係る分類器学習装置は、各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかが付与された複数の入力データである学習データに基づいて、前記複数のビットの各々に対して、入力データについて前記ビットが１となるスコアを計算するためのスコア関数を、分類器として学習する学習部を含んで構成されている。
【００４１】
分類器学習方法は、学習部が、各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかが付与された複数の入力データである学習データに基づいて、前記複数のビットの各々に対して、入力データについて前記ビットが１となるスコアを計算するためのスコア関数を、分類器として学習する。
【００４２】
本発明に係るクラス決定装置は、入力データを、各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかに分類するクラス決定装置であって、前記複数のビットの各々に対する、入力データについて前記ビットが１となるスコアを計算するための予め学習されたスコア関数を用いて、前記入力データについて、前記複数のビットの各々が１となるスコアを計算する計算部と、前記計算部により計算された前記複数のビットの各々のスコアに基づく０又は１の内容と、前記複数のクラスの各々を表す前記複数のビットとに基づいて、前記入力されたデータに対応するクラスを決定するクラス決定部と、を含んで構成されている。
【００４３】
本発明に係るクラス決定方法は、入力データを、各々０と１とで定まる複数のビットであって、かつ、１となるビット数が予め定められた複数のビットで表される複数のクラスの何れかに分類するクラス決定装置におけるクラス決定方法であって、計算部が、前記複数のビットの各々に対する、入力データについて前記ビットが１となるスコアを計算するための予め学習されたスコア関数を用いて、前記入力データについて、前記複数のビットの各々が１となるスコアを計算し、前記クラス決定部が、前記計算部により計算された前記複数のビットの各々のスコアに基づく０又は１の内容と、前記複数のクラスの各々を表す前記複数のビットとに基づいて、前記入力されたデータに対応するクラスを決定することを含む。
【００４４】
本発明に係るプログラムは、上記の分類器学習装置、又は上記のクラス決定装置の各部として機能させるためのプログラムである。
【発明の効果】
【００４５】
以上説明したように、本発明の分類器学習装置、クラス決定装置、方法、及びプログラムによれば、入力されたデータのクラスを決定するための計算量を減少することができる、という効果が得られる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施の形態のクラス決定システムを示す図である。
【図２】クラス決定装置１０のＣＰＵ２０の機能ブロック図である。
【図３】クラス決定プログラムを示す図である。
【図４】Ｋ個（２０個）のクラスの各々を、０及び１で表した符号列を示す図である。
【図５】ｍの値毎のクラスの個数の上限を示す図である。
【図６】クラス決定処理を説明する図である。
【図７】（Ａ）は、従来のクラスを決定するための計算量を示し、（Ｂ）には、本実施の形態のクラスを決定するための計算量を示す図である。
【図８】入力を事前に定義したラベル（クラス）へ分類する分類器の例を示す図である。
【発明を実施するための形態】
【００４７】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
図１には、本発明の実施の形態のクラス決定システムが示されている。図１に示すように、クラス決定システムは、クラス決定装置１０、入力装置１２、及び表示装置１４を備えている。
【００４８】
クラス決定装置１０は、ＣＰＵ２０、ＲＯＭ２２、ＲＡＭ２４、入出力ポート（Ｉ／Ｏ）２６、及びバス２８を備えたコンピュータにより構成されている。ＣＰＵ２０、ＲＯＭ２２、ＲＡＭ２４、及び入出力ポート（Ｉ／Ｏ）２６は、バス２８により、相互に接続されている。
【００４９】
ＲＯＭ２２には、ＣＰＵ２０がクラス決定処理（図３参照）を実行するためのクラス決定プログラムが記憶されている。クラス決定プログラムは、ＲＯＭ２２から読み出され、ＲＡＭ２４に展開されて、ＣＰＵ２０により実行される。
【００５０】
図２には、クラス決定装置１０のＣＰＵ２０の機能ブロック図が示されている。ＣＰＵ２０が後述するクラス決定処理（図３参照）を実行すると、ＣＰＵ２０が以下の各部２０２〜２０８として機能する。
【００５１】
図２に示すように、クラス決定装置１０は、後述するスコア関数と、入力装置１２から入力されたデータとから、２ｍビットの各々のスコアを計算する計算部２０２を備えている。
【００５２】
詳細には後述するが、スコア関数は、入力装置１２から入力されたデータが、各々０と１とが同数の２ｍ（ｍは１以上の自然数）ビットで表される複数のクラスの中の対応するクラスに応じた各ビットのスコアを計算するためのスコア関数である。より詳細には、スコア関数は、各ビットのスコアのランキングに基づいて各ビットに０又は１を付与すると、０又は１が付与された２ｍビットは上記データに対応するクラスのビットの内容となるスコアを計算するためのスコア関数である。
クラス決定装置１０は、後述する学習方法により、２ｍビットで表される複数のクラスの何れかが付与された複数の入力データである学習データに基づいて、複数のビットの各々に対して、当該ビットが１となるスコアを計算するためのスコア関数を予め学習しておく。
【００５３】
クラス決定装置１０は、計算部２０２により計算された２ｍビットの各々のスコアに基づく０又は１の内容と、複数のクラスの各々のビットの０又は１の内容とに基づいて、入力されたデータに対応するクラスを決定するクラス決定部を備えている。クラス決定部は、作成部２０４、付与部２０６、及び決定部２０８を備えている。
【００５４】
クラス決定部の作成部２０４は、計算部２０２により計算された２ｍビットの各々のスコアのランキングを作成する。付与部２０６は、作成部２０４により作成された２ｍビットの各々のスコアのランキングに基づいて、２ｍビットの各々に０又は１を付与する。決定部２０８は、付与部２０６により２ｍビットの各々に付与された０又は１の内容と、複数のクラスの各々のビットの０又は１の内容とに基づいて、入力されたデータに対応するクラスを決定する。
【００５５】
次に、本実施の形態の作用を説明する。
まず、クラス決定装置１０は、２ｍビットで表される複数のクラスの何れかが付与された複数の入力データである学習データに基づいて、複数のビットの各々に対して、当該ビットが１となるスコアを計算するためのスコア関数を予め学習しておく。
そして、クラス決定装置１０は、入力されたデータに対して、学習したスコア関数を用いて、クラス決定処理を行う。
図３には、クラス決定処理の１例を示すフローチャートが示されている。本実施の形態では、入力されたデータがどのクラスに対応するのかを決定する。
【００５６】
図４には、Ｋ個（２０個）のクラスの各々を、０及び１で表した符号列が示されている。図５には、ｍの値に応じたクラスの個数の上限が示されている。図６は、本実施の形態のクラス決定処理を説明する図が示されている。
【００５７】
図４に示すように、各クラスＡ〜Ｔは、０と１とが同数の２ｍ（ｍは１以上の自然数）ビットで表される。各クラスＡ〜Ｔのビット列は互いに異なる。上記例では、ｍ＝３、従って各クラスは６ビットで表される。なお、各クラスのビット列の０の個数及び１の個数はともに同数の３個である。各クラスは、０と１とが同数でなくともよい。しかし、本実施の形態では、各クラスは、０と１とが同数としている。各クラスを、このように０と１とが同数の２ｍ（ｍは１以上の自然数）ビットで表される表現する理由を以下に説明する。
【００５８】
まず、２ｍビットの符号（０、１）で表現できるクラスの個数の上限を説明する。
上記のように、各クラスを、２ｍビットで表し、０と１とが同数とすると、クラスの個数の上限は、2mＣmで計算される。
ｍ＝１の場合には、表現できるクラスの個数は１である。
ｍ＝３の場合には、表現できるクラスの個数は２０個である。
ｍ＝１６の場合には、表現できるクラスの個数は６億個以上である。
ｍとｍ＋１とで表現できるクラスの個数の上限に関する関係は次の通りである。
【００５９】
2018147107.tif 000009
【００６０】
このように、ｍとｍ＋１とで表現できるクラスの個数の上限に関する関係は、ｍが大きくなると４倍に漸近的に近づくことが理解できる。
【００６１】
各クラスのビット数は固定で、各ビットが０又は１の定数であるという条件で、２ｍビットで表現するクラスの個数の上限を最大化することを考える。
【００６２】
２ｍビットの内、例えば、１の数をｍ−１個（０の数はｍ＋１）とすると、表現できるクラスの数は、次の通りである。
【００６３】
2018147107.tif 000010
【００６４】
また、２ｍビットの内、例えば、１の数をｍ個（０の数もｍ個）とすると、表現できるクラスの数は、次の通りである。
【００６５】
2018147107.tif 000011
【００６６】
２ｍビットの内、例えば、１の数をｍ＋１個（０の数はｍ−１）とすると、表現できるクラスの数は、次の通りである。
【００６７】
2018147107.tif 000012
【００６８】
つまり、
2018147107.tif 000013
【００６９】
の関係が成り立つ。
【００７０】
2mＣmが、表現できるクラスの個数が最大である。以上より、各クラスを、２ｍビットで表し、０と１とが同数としている。
【００７１】
例えば、
2018147107.tif 000014
【００７２】
図３のステップ３０２で、図６（Ａ）に示すように、入力装置１２からデータｘが入力される。
【００７３】
ステップ３０４で、図６（Ｂ）に示すように、各ビットεのスコアを計算するためのスコア関数（Ｓ（ｘ,ε.Θ））と、入力されたデータｘとから、各ビットεのスコアを計算する。例えば、図６（Ｂ）に示すように、上位ビット１〜６について順に、０．３、１．３、０．５、０．８、−０．１、２．５のように計算される。
【００７４】
ステップ３０６で、各ビットのスコアから、各ビットのランキングを作成する。上記例では、図６（Ｃ）に示すように、６ビット、２ビット、４ビット、３ビット、１ビット、５ビットの順になる。
【００７５】
ステップ３０８で、上位のｍビットに１を、下位のｍビットに０を付与する。上記例では、６ビット、２ビット、４ビットに１を付与し、３ビット、１ビット、５ビットに０を付与する。
【００７６】
ステップ３１０で、０又は１が付与された２ｍビットの内容と、複数のクラス（上記例では、２０個（図４参照））のビットの０又は１の内容とから、入力されたデータｘに対応するクラスを決定する。図６（Ｄ）に示すように、上記例では、０１０１０１となり、図４から、入力されたデータｘに対応するクラスはクラスＦが決定される。
【００７７】
ステップ３１２で、クラス（Ｆ）を、表示装置１４に表示する。
【００７８】
以上説明したように、本実施の形態では、１（又は０）になるビットの数がｍ個と固定されている。このように、１（又は０）になるビットの数がｍ個と固定されていると、上記のように入力されたデータｘに対応するクラスの決定は、各ビットのランキングの問題となる。これに対し、従来のように、１（又は０）になるビットの数が固定されていないと、クラスの決定は、マルチラベル分類の問題となる。
【００７９】
クラスの決定が、各ビットのランキングの問題となると次の利点がある。
【００８０】
第１に、スコア関数の決定のための学習（モデル化）が容易である。クラスの逆引き計算が容易になる。
第２に、閾値が不要となる。マルチラベル分類の問題の場合は、例えば「０以上を１とする」といった取り決めのための閾値が必要となる。
第３に、ランキング問題の場合は，クラス間の相対的なスコアを利用することができる。
【００８１】
ランキング問題は、正解が１になるビットのスコアが０になるビットのスコアよりも相対的に高くなればよい。よって、（必要であれば）モデル化に相対スコアを利用することができ、モデルの表現力を高くすることができる。
【００８２】
次に、スコア関数の学習方法を説明する。スコア関数の学習は、クラス決定装置１０によって行われてもよいし、クラス決定装置１０とは別の分類器学習装置によって行われてもよい。本実施の形態では、スコア関数は、学習データを用いた機械学習により決定される。比較のため、最初に従来の決定方法を説明する。
【００８３】
（従来）
学習データを、
2018147107.tif 000015
とする。
【００８４】
ｘ（ｎ）は、学習データ中のｎ番目の入力である。
ｙ（ｎ）は、学習データ中のｎ番目の入力に対する正解クラスである。
Ｎは、学習データの総数である。
【００８５】
従来の学習では、正解クラスＦの場合のスコアが他のクラスよりも高くなるようパラメータΘを調整する。つまりスコアＦ>{Ａ, Ｂ, Ｃ, Ｄ, Ｅ, Ｇ, Ｈ, ・・・, Ｔ}となるように、パラメータΘを調整する。
【００８６】
具体的には、次の目的関数Ψを最小化する。
2018147107.tif 000016
ただし、
2018147107.tif 000017
【００８７】
Ｓ（ｘ，ｙ′，Θ）は、分類クラスがｙ′となるスコアを計算するスコア関数である。
Ｓ（ｘ，ｙ，Θ）は、分類クラスがｙとなるスコアを計算するスコア関数である。
Ｅ（ｙ，ｙ′）は、正解以外の分類クラス y’ と正解分類クラス y 間の距離である。
【００８８】
上記目的関数の具体的な内容から理解されるように、パラメータΘを調整するためには、入力されたデータｘ及び正解のクラスｙから求められる値Ｓ（ｘ，ｙ，Θ）と、入力されたデータｘ及び正確以外の各クラスｙ′から求められる値Ｓ（ｘ，ｙ′，Θ）との差を計算する必要がある。
【００８９】
（本実施の形態）
これに対し、本実施の形態では、ランキング問題として定式化できる。即ち、正解クラスの符号が１になるもののスコアが０になるものを上回ればよい。
【００９０】
上記例（正解のクラスがＦの場合）、符号は、０１０１０１であるので、上位ビットから２、４、６番目のビットのスコアと、１、３、５番目のビットのスコアとの差が生ずるように学習する。より詳細には、上位ビットから２、４、６番目のビットのスコアが、１、３、５番目のビットのスコアより大きくなればよい。
【００９１】
具体的には、
2018147107.tif 000018
【００９２】
である。これらが満たされるように、各ビットのスコア関数のパラメータΘを学習する。
【００９３】
2018147107.tif 000019
ただし、
2018147107.tif 000020
【００９４】
2018147107.tif 000021
は、学習データである。
【００９５】
ｘ（ｎ）は、学習データ中のｎ番目の入力データである。
ｇ（ｎ）は、学習データ中のｎ番目の入力データに対する正解クラスの符号で１になるビット番号の集合である。
εは、１から固定長符号のビット数（２ｍビット）までの整数の集合である。
Ｎは、学習データの総数である。
【００９６】
上記目的関数の具体的な内容から理解されるように、パラメータΘを学習するためには、入力されたデータｘ及び１となるビット（上記例では、２、４、６ビット）ｅから求められる値Ｓ（ｘ，ｅ，Θ）と、入力されたデータｘ及び０となるビット（上記例では、１、３、５のビット）ｅ′から求められる値Ｓ（ｘ，ｅ′，Θ）との差を計算すれば足りる。
【００９７】
以上説明した例では、スコア関数は、学習データを用いた機械学習により決定されるが、必ずしも機械学習に限定されず、例えば、ニューラルネットワークやサポートベクターマシン等を用いて決定してもよい。
【００９８】
次に、本実施の形態の効果を説明する。
図７（Ａ）には、従来のクラスを決定するための計算量を示し、図７（Ｂ）には、本実施の形態のクラスを決定するための計算量を示す。
【００９９】
入力されたデータｘの特徴ベクトルをＨとする。これは、従来も本実施の形態でも同じである。
【０１００】
一方、クラスの決定のためには、従来ではクラスの総数Ｋ分のＨ×Ｋの回数の計算が必要となるのに対し、本実施の形態では、Ｈ×Ｂ（クラスのビットの総数（２ｍ個））で進む。
【０１０１】
本実施の形態の計算量に対する従来の計算量の比はＫ／Ｂとなる。Ｋ／Ｂが大きければ大きいほど、計算量の削減の効果がある。
【０１０２】
例えば、Ｋ＝２５０で、Ｂ＝１０（ｍ＝５）の場合には、（Ｋ／Ｂ）＝２５．２倍の計算量を減少することができる。
【０１０３】
また、Ｋ＝６００，０００，０００、Ｂ＝３２（ｍ＝１６）の場合には、（Ｋ／Ｂ）＝１８，７５０，０００倍の計算量を減少することができる。
【０１０４】
よって、本実施の形態では、低計算資源環境でも、高速に超多クラス分類問題を解くことが可能となる。これにより、例えば、機械による自動操縦などの環境でより多くの行動 やきめ細かい行動を選択可能な設定を構築することができるようになり、実世界での機械の自律行動の幅を広げることが可能となる。
【０１０５】
なお、クラス決定装置１０のクラス決定処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、クラス決定装置１０に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１０６】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１０７】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１０８】
１０  クラス決定装置
１２  入力装置
１４  表示装置
２０  ＣＰＵ
２０２  計算部
２０４  作成部
２０６  付与部
２０８  決定部
【図１】
2018147107.tif 000022
【図２】
2018147107.tif 000023
【図３】
2018147107.tif 000024
【図４】
2018147107.tif 000025
【図５】
2018147107.tif 000026
【図６】
2018147107.tif 000027
【図７】
2018147107.tif 000028
【図８】
2018147107.tif 000029