(57)【要約】【課題】未知クラスの検出精度を向上させることを課題とする。【解決手段】学習装置は、教師データに含まれる既知クラス、または、教師データに含まれない未知クラスに対象データを判別する判別器の学習を、教師データを用いて実行する。そして、学習装置は、判別器の複数の層において、教師データの少なくとも一部より、複数の層における特徴量から未知クラスに対応する未知クラス特徴量を生成する。その後、学習装置は、既知クラスおよび未知クラスの特徴量が分離されるように、判別器の学習を実行する。【選択図】図２
2019159836.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
教師データに含まれる既知クラス、または、前記教師データに含まれない未知クラスに対象データを判別する判別器の学習を、前記教師データを用いて実行し、
前記判別器の複数の層において、前記教師データの少なくとも一部より、前記複数の層における特徴量から未知クラスに対応する未知クラス特徴量を生成し、
前記既知クラスおよび前記未知クラスの特徴量が分離されるように、前記判別器の学習を実行する、
処理を実行させる学習プログラム。
【請求項２】
請求項１に記載の学習プログラムであって、前記コンピュータに、
前記教師データを用いて前記既知クラスの判別を前記判別器に学習させる時に、前記判別器が前記教師データのクラス判別結果を出力する途中で前記複数の層から出力する前記既知クラスの特徴量を用いて、前記未知クラス特徴量を生成し、
前記既知クラスが判別できるように、および、前記既知クラスおよび前記未知クラスの特徴量が分離されるように、前記判別器の学習を実行する処理を実行させる学習プログラム。
【請求項３】
請求項１または２に記載の学習プログラムであって、前記コンピュータに、
多段に構成される前記複数の層それぞれにおいて、前段の層から出力される複数の特徴量から、前記既知クラスに対応する既知クラス特徴量と前記未知クラス特徴量とを生成して後段の層に入力し、
前記複数の層の最終層から出力される判別の予測結果に基づいて、前記判別器の学習を実行する処理を実行させる学習プログラム。
【請求項４】
請求項３に記載の学習プログラムであって、前記コンピュータに、
前記複数の層の最終層から前記既知クラスと判断される既知クラスの確率と前記未知クラスと判断される未知クラスの確率とを出力し、
前記既知クラスに対しては、前記既知クラスの確率が向上かつ前記未知クラスの確率が低下するように前記判別器の学習を実行し、前記未知クラスに対しては、前記未知クラスの確率が向上かつ前記既知クラスの確率が低下するように前記判別器の学習を実行する処理を実行させる学習プログラム。
【請求項５】
請求項３に記載の学習プログラムであって、前記コンピュータに、
前記複数の層の最終層から前記既知クラスと判断される既知クラスの確率を出力し、
前記既知クラスに対しては、前記既知クラスの確率が向上するように前記判別器の学習を実行し、前記未知クラスに対しては、前記既知クラスの確率が低下するように前記判別器の学習を実行する処理を実行させる学習プログラム。
【請求項６】
請求項３に記載の学習プログラムであって、前記コンピュータに、
前記判別器の複数の層において、各層から出力される複数の特徴量からランダムに選択した複数の特徴量を用いて、前記未知クラス特徴量を生成する処理を実行させる学習プログラム。
【請求項７】
請求項３に記載の学習プログラムであって、前記コンピュータに、
前記判別器の複数の層において、各層から出力される複数の特徴量の平均と分散を用いて、前記未知クラス特徴量を生成する処理を実行させる学習プログラム。
【請求項８】
コンピュータが、
教師データに含まれる既知クラス、または、前記教師データに含まれない未知クラスに対象データを判別する判別器の学習を、前記教師データを用いて実行し、
前記判別器の複数の層において、前記教師データの少なくとも一部より、前記複数の層における特徴量から未知クラスに対応する未知クラス特徴量を生成し、
前記既知クラスおよび前記未知クラスの特徴量が分離されるように、前記判別器の学習を実行する、
処理を実行する学習方法。
【請求項９】
教師データに含まれる既知クラス、または、前記教師データに含まれない未知クラスに対象データを判別する判別器の学習を、前記教師データを用いて実行する第１学習部と、
前記判別器の複数の層において、前記教師データの少なくとも一部より、前記複数の層における特徴量から未知クラスに対応する未知クラス特徴量を生成する生成部と、
前記既知クラスおよび前記未知クラスの特徴量が分離されるように、前記判別器の学習を実行する第２学習部と
を有する学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法および学習装置に関する。
【背景技術】
【０００２】
学習済みのモデルを利用して、既存クラスではないことの判別を行うオープンセット認識（Open  Set  Recognition）がある。オープンセット認識に関する技術としては、既知クラスによる特徴空間の中で、未知クラスに相当する領域を設定して、未知クラスを判別する手法が知られている。
【０００３】
図１５は、オープンセット認識を説明する図である。図１５に示すように、既知クラスの学習データを特徴空間に射影し、特徴空間をクラス１が属する空間１、クラス２が属する空間２、クラス３が属する空間３の部分空間に分割する。そして、適用時に既知クラスの部分空間に属さないデータを未知クラスのデータとして検出する。例えば、判別対象のデータＸ１が空間３に分類された場合、データＸ１をクラス３と判別し、判別対象のデータＸ２がいずれの空間にも分類されない場合、データＸ２を未知クラスと判別する。
【０００４】
このようなオープンセット認識は、学習データに含まれないクラスが入力された場合に、エラーを返すことで誤検出による深刻な問題が発生する前に処理を中断することに使用される。また、オープンセット認識は、学習済みのクラスと未学習のクラスを分割し、未学習のクラスのみラベル付けを行い、専用の分類器を作成することで逐次学習を行うことに使用される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１５２６５４号公報
【特許文献２】国際公開第２０１１／０９２７９３号
【特許文献３】特開２０１６−１８３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記技術では、未知クラスの検出精度が高くない。具体的には、空間分割に使用する特徴空間が既知クラスのデータ分類によって生成されるので、未知クラスのデータと既知クラスのデータが正しく分割できる空間になっていないことがあり、未知クラスのデータの検出に失敗する場合がある。
【０００７】
図１６は、未知クラスの誤検出を説明する図である。上記手法では、未知クラスのデータの特徴を想定せずに空間を分割するので、未知クラスのデータの特徴量が既知クラスのデータの特徴量と特徴空間上で重なったり、近い位置になることがある。この場合、図１６に示すように、いずれの既知クラスにも属さないはずの未知クラスＹのデータがクラス１やクラス３に分類されることがあり、未知クラスの誤検出が発生する。
【０００８】
一つの側面では、未知クラスの検出精度を向上させることができる学習プログラム、学習方法および学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の案では、学習プログラムは、コンピュータに、教師データに含まれる既知クラス、または、前記教師データに含まれない未知クラスに対象データを判別する判別器の学習を、前記教師データを用いて実行する処理を実行させる。学習プログラムは、コンピュータに、前記判別器の複数の層において、前記教師データの少なくとも一部より、前記複数の層における特徴量から未知クラスに対応する未知クラス特徴量を生成する処理を実行させる。学習プログラムは、コンピュータに、前記既知クラスおよび前記未知クラスの特徴量が分離されるように、前記判別器の学習を実行する処理を実行させる。
【発明の効果】
【００１０】
一実施形態によれば、未知クラスの検出精度を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１にかかる学習装置を説明する図である。
【図２】図２は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図３】図３は、学習装置によるクラス分類の学習全体例を説明する図である。
【図４】図４は、特徴量Ａの生成例を説明する図である。
【図５】図５は、特徴量Ａに基づく仮想的な特徴量の生成例を説明する図である。
【図６】図６は、特徴量Ｂの生成例を説明する図である。
【図７】図７は、特徴量Ｂに基づく仮想的な特徴量の生成例を説明する図である。
【図８】図８は、特徴量Ｃの生成例を説明する図である。
【図９】図９は、判別器による予測クラスの予測結果を説明する図である。
【図１０】図１０は、正しいクラスの確率が上がるように学習する例を説明する図である。
【図１１】図１１は、仮想クラスの確率が下がるように学習する例を説明する図である。
【図１２】図１２は、処理の流れを示すフローチャートである。
【図１３】図１３は、実施例１によるクラス領域の分割例を説明する図である。
【図１４】図１４は、ハードウェア構成例を説明する図である。
【図１５】図１５は、オープンセット認識を説明する図である。
【図１６】図１６は、未知クラスの誤検出を説明する図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する学習プログラム、学習方法および学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１３】
［学習装置の説明］
図１は、実施例１にかかる学習装置を説明する図である。図１に示す学習装置１０は、教師データに含まれる既知クラス、または、教師データに含まれない未知クラスに対象データを判別する判別器（以下では、クラス判別器と記載する場合がある）の学習を実行するコンピュータ装置の一例である。
【００１４】
この学習装置１０は、機械学習や深層学習（ディープラーニング・Deep  Learning；DL）において、教師データに含まれる既知のクラスの他に、教師データに含まれない未知のクラスのデータに適用される可能性がある状況で、学習対象である教師データに含まれない未知クラスのデータが入力されたときに正しく未知クラスであることを検出できる判別器を学習する。例えば、学習装置１０は、クラスが猫の画像データと、クラスが犬の画像データを用いて、画像データが入力されたときに猫か犬かを判別できるように判別器を学習し、鳥の画像データが入力されたときには未知クラスのデータであることを検出できるように、判別器を学習する。
【００１５】
具体的には、学習装置１０は、教師データを用いて判別器の学習を行う。学習装置１０は、判別器の複数の層において、教師データの少なくとも一部より、複数の層における特徴量から未知クラスに対応する未知クラス特徴量を生成する。その後、学習装置１０は、既知クラスおよび未知クラスの特徴量が分離されるように、判別器の学習を行う。
【００１６】
ここで、適用されるデータは、未知クラスのデータであっても、既知クラスのデータとまったく無関係というわけではなく、同一のカテゴリに属すると考えることができる。例えば、既知クラスのデータが文字画像なら、未知クラスのデータは別の文字画像であり、動物の画像などではないことが多い。
【００１７】
そこで、実施例１にかかる学習装置１０は、未知クラスの特徴量を既知クラスの特徴量に基づき生成することで、未知クラスの検出に使用する特徴空間を生成する。例えば、図１に示すように、学習装置１０は、未知クラスのデータである「７」の画像データ、「８」の画像データ、「９」の画像データのそれぞれが、既知クラスである「１」の画像データ、「２」の画像データ、「３」の画像データそれぞれを分割した中間的な特徴量の組み合わせを有していると想定する。
【００１８】
そして、学習装置１０は、既知クラスを分割する最終的な特徴空間を生成するために使用されるこの中間的な特徴量を組み合わせて、未知クラスに対応する仮想的な特徴量を生成する。そして、学習装置１０は、仮想的な特徴量に基づき未知クラスの特徴空間を生成し、この未知クラスの特徴空間を用いて、未知クラスを検出するので、未知クラスの検出精度を向上させることができる。
【００１９】
［機能構成］
図２は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。図２に示すように、学習装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００２０】
通信部１１は、他の装置との通信を制御する処理部であり、例えば通信インタフェースである。例えば、通信部１１は、管理者の端末から、処理開始指示を受信する。また、通信部１１は、管理者の端末等から、学習対象である教師データを受信して学習データＤＢ１３に格納する。
【００２１】
記憶部１２は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、学習データＤＢ１３、学習結果ＤＢ１４を記憶する。
【００２２】
学習データＤＢ１３は、学習対象のデータである教師データを記憶するデータベースである。具体的には、学習データＤＢ１３は、クラスが既知である既知クラスのデータを記憶し、例えば「クラス、データ」を対応付けて記憶する。
【００２３】
学習結果ＤＢ１４は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１４は、制御部２０による学習データの判別結果（分類結果）、機械学習やディープラーニングによって学習された各種パラメータなどを記憶する。
【００２４】
制御部２０は、学習装置１０全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部２０は、クラス判別器２１、第１学習部２２、クラス処理部２３を有する。なお、クラス判別器２１と第１学習部２２とクラス処理部２３は、プロセッサなどが実行するプロセスによって実現することもできる。
【００２５】
クラス判別器２１は、入力された入力データのクラスを判別する処理部である。具体的には、クラス判別器２１は、後述する各学習部によって学習されたニューラルネットワークなどを用いた学習モデルを適用した判別器（学習器）であり、入力データのクラス判別を実行する。例えば、クラス判別器２１は、少なくとも１つの特徴生成器と、判別器（分類器）とを有し、入力データから特徴量を生成し、生成した特徴量を用いてクラス判別を実行する。
【００２６】
また、クラス判別器２１は、入力データから特徴量を生成し、生成した特徴量が未知クラスの領域に該当する場合、当該入力データが教師データのクラスに含まれない未知クラスのデータであると検出する。このとき、クラス判別器２１は、画面や管理者端末にエラー情報を出力するエラー処理を実行することもできる。
【００２７】
第１学習部２２は、学習データＤＢ１３に記憶される既知クラスのデータである教師データを用いて、クラス判別器２１を学習する処理部である。具体的には、第１学習部２２は、教師データに含まれる各クラスを判別（分類）できるように、誤差逆伝播法などによって、ニューラルネットワークなど用いた学習モデルを学習する。
【００２８】
クラス処理部２３は、特徴量生成部２４、仮想特徴量生成部２５、第２学習部２６を有し、未知クラスのデータが入力された場合に、未知クラスのデータあることが検出できるように、クラス判別器２１を学習する処理部である。
【００２９】
特徴量生成部２４は、クラス判別器２１の学習時に、クラス判別器２１の複数の層を用いて、教師データの特徴量を生成する処理部である。例えば、特徴量生成部２４は、ニューラルネットワークを用いた学習器である場合、入力層、中間層の各層から出力される特徴量を取得して、仮想特徴量生成部２５に出力する。
【００３０】
また、特徴量生成部２４は、クラス判別器２１が複数の特徴量生成器を有する場合、各特徴量生成器から出力される特徴量を取得して、仮想特徴量生成部２５に出力する。また、特徴量生成部２４は、クラス判別器２１が複数の特徴量生成器を有し、各特徴量生成器が複数の層を有する場合、各層または各特徴量生成器から出力される特徴量を取得して、仮想特徴量生成部２５に出力する。
【００３１】
仮想特徴量生成部２５は、教師データの少なくとも一部より、複数の層における特徴量から未知クラスに対応する未知クラス特徴量を生成する処理部である。具体的には、仮想特徴量生成部２５は、学習データである教師データのクラスを分類するクラス判別器２１の学習中に、中間特徴量を組み合わせて未知クラスのデータに対応する、未知クラス特徴量の一例である仮想的な特徴量を生成する。
【００３２】
例えば、仮想特徴量生成部２５は、（手法１−１）学習中に、複数の層などから出力される複数の特徴量の各次元の値をランダムに組み合わせて、仮想的な特徴量を生成することができる。また、仮想特徴量生成部２５は、（手法１−２）学習中の特徴量の分布（平均や分散）に従った特徴量をランダムに生成することができる。
【００３３】
第２学習部２６は、第１学習部による教師データのクラスの分類に加えて、既知クラスのデータと仮想的な未知クラスのデータとが分割できるような特徴空間を学習する処理部である。具体的には、第２学習部２６は、深層学習等の特徴生成を多段に繰り返す学習器において、特徴量生成部２４が生成した特徴量と、仮想特徴量生成部２５が生成した仮想的な特徴量とを用いて、クラス判別の通常学習に加えて、未知クラスが検出できるように、クラス判別器２１を学習する。
【００３４】
例えば、第２学習部２６は、（手法２−１）仮想的な未知データに対する未知クラスを新たに作成し、仮想的な未知データは未知クラスに分類されるように学習する。また、第２学習部２６は、（手法２−２）既知クラスのデータに対しては、真のクラス確率が最大になる様に、仮想的な未知クラスのデータに対しては、どの既知クラスの確率も低くなるように学習する。なお、第１学習部２２による学習と第２学習部２６による学習は、別々のフローで並行して実行することもでき、第１学習部２２による学習時と同時に、第２学習部２６による学習を実行することもできる。
【００３５】
［具体例］
次に、図３から図１１を用いて、クラス処理部２３による学習を説明する。なお、ここで説明する特徴量の次元などは一例であり、任意に設定変更することができる。
【００３６】
図３は、学習装置１０によるクラス分類の学習全体例を説明する図である。図３に示すように、ここでは、クラス判別器２１が、特徴生成器Ａと特徴生成器Ｂと特徴生成器Ｃと判別器とを有する例で説明する。そして、教師データとして、クラス１のデータＤ１、クラス２のデータＤ２、クラス３のデータＤ３、クラス４のデータＤ４を用いることとする。なお、ここでは、一例として、特徴生成器ＡがＮＮの入力層に対応し、特徴生成器Ｂと特徴生成器ＣとがＮＮの中間層に対応し、判別器がＮＮの出力層に対応する例で説明する。また、各特徴生成器が複数の層を有する場合は、各特徴生成器について後述する処理を実行することもできる。
【００３７】
また、各既知クラスのデータは、元のデータの説明変数である特徴量を有する。例えば、図３に示すように、クラス１のデータＤ１の特徴量は、「0.21、1.25、1.18」、クラス１のデータＤ２の特徴量は、「0.23、2.49、2.87」、クラス２のデータＤ３の特徴量は、「1.92、0.81、2.32」、クラス２のデータＤ４の特徴量は、「0.86、2.01、1.76」とする。
【００３８】
（特徴量Ａの生成）
このような状態で、特徴量生成部２４は、既知データ（既知クラスのデータ）を特徴生成器Ａに入力して、図４に示す中間特徴量（特徴量Ａ）を取得する。図４は、特徴量Ａの生成例を説明する図である。図４に示すように、特徴量生成部２４は、クラス１のデータＤ１の特徴量Ａとして「0.57、3.90、3.33、3.10、2.98」、クラス１のデータＤ２の特徴量Ａとして「0.74、4.73、1.58、5.45、1.34」、クラス２のデータＤ３の特徴量Ａとして「1.04、3.08、3.26、4.19、0.17」、クラス２のデータＤ４の特徴量Ａとして「0.25、2.37、2.46、3.03、0.99」を取得する。
【００３９】
続いて、仮想特徴量生成部２５は、上記手法１−１を用いて、各特徴量Ａから仮想的な特徴量を生成する。図５は、特徴量Ａに基づく仮想的な特徴量の生成例を説明する図である。図５に示すように、仮想特徴量生成部２５は、各特徴量Ａからランダムに特徴量を取得して仮想的な特徴量を２つ生成する。
【００４０】
例えば、仮想特徴量生成部２５は、クラス２のデータＤ３の特徴量Ａ「1.04、0.17」とクラス１のデータＤ１の特徴量Ａ「3.90、3.33」とクラス２のデータＤ４の特徴量Ａ「3.03」とを組み合わせて、仮想クラスの仮想データＶ１の特徴量「1.04、3.90、3.33、3.03、0.17」とする。また、仮想特徴量生成部２５は、クラス１のデータＤ２の特徴量Ａ「0.74、5.45」とクラス２のデータＤ４の特徴量Ａ「2.37」とクラス１のデータＤ１の特徴量Ａ「3.33、2.98」とを組み合わせて、仮想クラスの仮想データＶ２の特徴量「0.74、2.37、3.33、5.45、2.98」とする。なお、ここでは２つの仮想的な未知クラスのデータの特徴量を生成する例を説明したが、これに限定されるものではなく、任意の数の仮想データを生成することができる。
【００４１】
（特徴量Ｂの生成）
続いて、特徴量生成部２４は、図５で生成した６つの各データの特徴量Ａを特徴生成器Ｂに入力して、図６に示す中間特徴量（特徴量Ｂ）を取得する。図６は、特徴量Ｂの生成例を説明する図である。図６に示すように、特徴量生成部２４は、クラス１のデータＤ１の特徴量Ｂとして「8.71、6.41、4.07、1.67」、クラス１のデータＤ２の特徴量Ｂとして「5.25、6.6、5.99、0.17」、クラス２のデータＤ３の特徴量Ｂとして「8.85、5.8、6.18、0.06」、クラス２のデータＤ４の特徴量Ｂとして「8.65、6.54、6.96、2.8」を取得する。同様に、特徴量生成部２４は、仮想クラスの仮想データＶ１の特徴量Ｂとして「5.29、7.44、5.23、0.9」、仮想クラスの仮想データＶ２の特徴量Ｂとして「1.06、6.73、2.01、2.62」を取得する。
【００４２】
（仮想特徴量Ｂの生成）
その後、仮想特徴量生成部２５は、上記手法１−２を用いて、各特徴量Ｂから仮想的な特徴量を生成する。図７は、特徴量Ｂに基づく仮想的な特徴量の生成例を説明する図である。図７に示すように、仮想特徴量生成部２５は、特徴量Ｂの分布（平均・分散）に従った仮想的な特徴量Ｃを２つ生成する。
【００４３】
例えば、仮想特徴量生成部２５は、各クラスの特徴量Ｂの次元ごとに平均値と分散値とを算出する。図７で説明すると、仮想特徴量生成部２５は、データＤ１の特徴量Ｂ「8.71」とデータＤ２の特徴量Ｂ「5.25」とデータＤ３の特徴量Ｂ「8.85」とデータＤ４の特徴量Ｂ「8.65」と仮想データＶ１の特徴量Ｂ「5.29」と仮想データＶ２の特徴量Ｂ「1.06」とを用いて、平均値「6.30」と分散値「7.90」を算出する。
【００４４】
同様に、仮想特徴量生成部２５は、データＤ１の特徴量Ｂ「6.41」とデータＤ２の特徴量Ｂ「6.60」とデータＤ３の特徴量Ｂ「5.80」とデータＤ４の特徴量Ｂ「6.54」と仮想データＶ１の特徴量Ｂ「7.44」と仮想データＶ２の特徴量Ｂ「6.73」とを用いて、平均値「6.58」と分散値「0.23」を算出する。
【００４５】
同様に、仮想特徴量生成部２５は、データＤ１の特徴量Ｂ「4.07」とデータＤ２の特徴量Ｂ「5.99」とデータＤ３の特徴量Ｂ「6.18」とデータＤ４の特徴量Ｂ「6.96」と仮想データＶ１の特徴量Ｂ「5.23」と仮想データＶ２の特徴量Ｂ「2.01」とを用いて、平均値「5.07」と分散値「2.67」を算出する。
【００４６】
また、仮想特徴量生成部２５は、データＤ１の特徴量Ｂ「1.67」とデータＤ２の特徴量Ｂ「0.17」とデータＤ３の特徴量Ｂ「0.06」とデータＤ４の特徴量Ｂ「2.80」と仮想データＶ１の特徴量Ｂ「0.90」と仮想データＶ２の特徴量Ｂ「2.62」とを用いて、平均値「1.37」と分散値「1.17」を算出する。
【００４７】
さらに、仮想特徴量生成部２５は、次元ごとに算出した平均値と分散値の正規分布からサンプリングされた値を用いて、仮想クラスの仮想データＶ３と仮想クラスの仮想データＶ４とを生成する。例えば、仮想特徴量生成部２５は、平均値「6.30」と分散値「7.90」の正規分布からサンプリングされた値「4.94」、平均値「6.58」と分散値「0.23」の正規分布からサンプリングされた値「6.17」、平均値「5.07」と分散値「2.67」の正規分布からサンプリングされた値「5.62」、平均値「1.37」と分散値「1.17」の正規分布からサンプリングされた値「0.25」を、仮想クラスの仮想データＶ３の特徴量とする。同様の手法で、仮想特徴量生成部２５は、仮想クラスの仮想データＶ４の特徴量を生成する。
【００４８】
（最終特徴量Ｃの生成）
続いて、特徴量生成部２４は、図７で生成した８つの各データの特徴量を特徴生成器Ｃに入力して、図８に示す最終特徴量（特徴量Ｃ）を取得する。図８は、特徴量Ｃの生成例を説明する図である。図８に示すように、特徴量生成部２４は、クラス１のデータＤ１の特徴量Ｃとして「0.24、0.13」、クラス１のデータＤ２の特徴量Ｃとして「0.53、0.52」、クラス２のデータＤ３の特徴量Ｃとして「1.12、1.50」、クラス２のデータＤ４の特徴量Ｂとして「1.11、1.71」を取得する。同様に、徴量生成部２４は、仮想クラスの仮想データＶ１の特徴量Ｃとして「1.67、0.48」、仮想クラスの仮想データＶ２の特徴量Ｃとして「1.83、0.25」、仮想クラスの仮想データＶ３の特徴量Ｃとして「0.24、0.37」、仮想クラスの仮想データＶ４の特徴量Ｃとして「0.59、1.44」を取得する。
【００４９】
（予測クラスの判別結果：例１）
その後、クラス判別器２１は、図８に示す最終特徴量（特徴量Ｃ）が判別器に入力されると、予測クラスの判別結果（予測クラスの確率）を出力する。ここで、予測クラスの確率とは、入力された判別対象データがどのクラスであるかを示す確率であり、一般的には、一番確率が高いクラスが判別対象データのクラスと判別される。
【００５０】
図９は、判別器による予測クラスの予測結果を説明する図である。図９に示すように、クラス判別器２１は、クラス１のデータＤ１について、入力されたデータＤ１の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.82、クラス２＝0.10、仮想クラス＝0.08」を出力し、クラス１のデータＤ２について、入力されたデータＤ２の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.67、クラス２＝0.04、仮想クラス＝0.29」を出力する。
【００５１】
また、クラス判別器２１は、クラス２のデータＤ３について、入力されたデータＤ３の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.21、クラス２＝0.70、仮想クラス＝0.19」を出力し、クラス２のデータＤ４について、入力されたデータＤ４の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.02、クラス２＝0.91、仮想クラス＝0.07」を出力する。
【００５２】
また、クラス判別器２１は、仮想クラスの仮想データＶ１について、入力された仮想データＶ１の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.15、クラス２＝0.14、仮想クラス＝0.71」を出力し、仮想クラスの仮想データＶ２について、入力された仮想データＶ２の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.03、クラス２＝0.28、仮想クラス＝0.69」を出力する。
【００５３】
同様に、クラス判別器２１は、仮想クラスの仮想データＶ３について、入力された仮想データＶ３の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.00、クラス２＝0.11、仮想クラス＝0.89」を出力し、仮想クラスの仮想データＶ４について、入力された仮想データＶ４の特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.04、クラス２＝0.02、仮想クラス＝0.92」を出力する。
【００５４】
（学習：手法２−１）
その後、第２学習部２６は、上記手法２−１を用いて、正しいクラスの確率が上がる様に、誤差逆伝播法などによってクラス判別器２１（学習モデル全体）を学習する。図１０は、正しいクラスの確率が上がるように学習する例を説明する図である。図１０に示すように、第２学習部２６は、クラス１のデータＤ１およびデータＤ２については、予測クラスのクラス１の確率が上がり、予測クラスのクラス２および仮想クラスが下がるように、学習モデルを学習する。また、第２学習部２６は、クラス２のデータＤ３およびデータＤ４については、予測クラスのクラス２の確率が上がり、予測クラスのクラス１および仮想クラスが下がるように、学習モデルを学習する。一方で、第２学習部２６は、仮想クラスのデータＶ１、Ｖ２、Ｖ３、Ｖ４については、予測クラスの仮想クラスの確率が上がり、予測クラスのクラス１およびクラス２が下がるように、学習モデルを学習する。
【００５５】
（予測クラスの判別結果（例１）と学習（手法２−２））
次に、図１０では、上記手法２−１を用いた学習例を説明したが、図１１では、上記手法２−２を用いた学習手法について説明する。図１１は、仮想クラスの確率が下がるように学習する例を説明する図である。
【００５６】
図１１に示すように、クラス判別器２１は、クラス１のデータＤ１について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.90、クラス２＝0.10」を出力し、クラス１のデータＤ２について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.81、クラス２＝0.19」を出力する。また、クラス判別器２１は、クラス２のデータＤ３について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.21、クラス２＝0.79」を出力し、クラス２のデータＤ４について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.08、クラス２＝0.92」を出力する。
【００５７】
また、クラス判別器２１は、仮想クラスの仮想データＶ１について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.72、クラス２＝0.28」を出力し、仮想クラスの仮想データＶ２について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.48、クラス２＝0.52」を出力する。同様に、クラス判別器２１は、仮想クラスの仮想データＶ３について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.86、クラス２＝0.14」を出力し、仮想クラスの仮想データＶ４について、特徴量Ｃに基づき、予測クラスの確率として「クラス１＝0.23、クラス２＝0.77」を出力する。
【００５８】
その後、第２学習部２６は、クラス１のデータＤ１およびデータＤ２については、予測クラスのクラス１の確率が上がり、予測クラスのクラス２が下がるように、学習モデルを学習する。また、第２学習部２６は、クラス２のデータＤ３およびデータＤ４については、予測クラスのクラス２の確率が上がり、予測クラスのクラス１が下がるように、学習モデルを学習する。一方で、第２学習部２６は、仮想クラスのデータＶ１、Ｖ２、Ｖ３、Ｖ４については、予測クラスのクラス１およびクラス２が下がるように、学習モデルを学習する。
【００５９】
［処理の流れ］
図１２は、処理の流れを示すフローチャートである。図１２に示すように、第１学習部２２は、既知クラスの教師データを用いて、クラス判別器２１全体を学習する（Ｓ１０１）。ここで、第１学習部２２は、１ステップや１イテレーションなどのように任意の量だけ学習を実行することができる。
【００６０】
続いて、特徴量生成部２４は、教師データを読み込み（Ｓ１０２）、多段に構成される特徴生成器のうち、未処理かつ先頭の特徴量生成器を選択する（Ｓ１０３）。
【００６１】
そして、特徴量生成部２４は、選択した特徴量生成器に教師データを入力して、既知クラスのデータの特徴量または未知クラス（仮想クラス）のデータの特徴量を生成する（Ｓ１０４）。なお、先頭の特徴量生成器の場合は、既知クラスのデータの特徴量のみが生成される。
【００６２】
続いて、仮想特徴量生成部２５は、特徴量生成部２４によって生成された特徴量を用いて、仮想クラスに対応する仮想的な特徴量を生成する（Ｓ１０５）。そして、後段に未処理の特徴量生成器が存在する場合（Ｓ１０６：Ｙｅｓ）、次の特徴量生成器についてＳ１０３以降を実行する。
【００６３】
一方、後段に未処理の特徴量生成器が存在しない場合（Ｓ１０６：Ｎｏ）、クラス判別器２１は、最後の特徴量を用いて、既知クラスと未知クラスを分類する（Ｓ１０７）。その後、第２学習部２６は、分類結果（予測結果）と上記手法２−１または手法２−２を用いて、クラス判別器２１全体を学習する（Ｓ１０８）。
【００６４】
そして、学習を継続する場合は（Ｓ１０９：Ｎｏ）、Ｓ１０２以降を繰り返し、学習を終了する場合は（Ｓ１０９：Ｙｅｓ）、処理を終了する。
【００６５】
［効果］
上述したように、学習装置１０は、学習器の中間特徴量の分布を使ってランダムな特徴量を未知クラスの特徴量として生成し、既知クラスの特徴量と未知クラスの特徴量の分布を使ってさらに別の未知クラスの特徴量を順次生成する。そして、学習装置１０は、未知クラスの特徴量が未知クラスとして分類されるように学習する。これにより、未知クラスおよび既知クラスの判別を行う形の学習を行って、特徴量空間を分割することにより、既知クラスを判別する特徴量空間では適切に分離できない未知クラスのデータが、適切に分離・判別される。したがって、学習装置１０は、既知のクラスに似ているが異なる特徴を持つ未知クラスが入力された場合に、未知クラスであることが正しく出力される学習モデルを生成することができる。
【００６６】
図１３は、実施例１によるクラス領域の分割例を説明する図である。図１３の（ａ）に示すように、一般的な学習手法では、空間分割に使用する特徴空間が既知クラスのデータの分類によってのみ作成されるので、未知クラスと既知クラスの空間分割が正確ではなく、未知クラスであるデータＸの誤検出が多発する。一方で、図１３の（ｂ）に示すように、実施例１による学習手法では、通常学習時の特徴生成時に仮想的な未知クラスに対応する特徴量を生成して、この特徴量を用いて、特徴生成を多段に繰り返す学習器（クラス判別器２１）を学習できるので、未知クラスと既知クラスの空間分割をより正確に実現でき、未知クラスであるデータＸやデータＺの誤検出を減少させることができる。
【実施例２】
【００６７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６８】
［学習器］
実施例１にかかるクラス判別器２１（学習器）には、ＳＶＭ（Support  Vector  Machine）、勾配法、ニューラルネットワークなど様々な学習手法を採用することができる。
【００６９】
［手法の選択］
上記実施例１では、最初に手法１−１を用いて仮想的な特徴量を生成した後、次に手法１−２を用いて仮想的な特徴量を生成する例を説明したが、これに限定されるものではない。順番を入れ替えてもよく、いずれか一方だけを複数回用いてもよく、任意に変更することができる。また、手法２−１および手法２−２も任意に選択することができる。
【００７０】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。
【００７１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７２】
［ハードウェア］
図１４は、ハードウェア構成例を説明する図である。図１４に示すように、学習装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図１４に示した各部は、バス等で相互に接続される。
【００７３】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図２に示した機能を動作させるプログラムやＤＢを記憶する。
【００７４】
プロセッサ１０ｄは、図２に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図２等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、学習装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、クラス判別器２１、第１学習部２２、クラス処理部２３等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、クラス判別器２１、第１学習部２２、クラス処理部２３等と同様の処理を実行するプロセスを実行する。
【００７５】
このように学習装置１０は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。また、学習装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、学習装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００７６】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００７７】
１０  学習装置
１１  通信部
１２  記憶部
１３  学習データＤＢ
１４  学習結果ＤＢ
２０  制御部
２１  クラス判別器
２２  第１学習部
２３  クラス処理部
２４  特徴量生成部
２５  仮想特徴量生成部
２６  第２学習部
【図１】
2019159836.tif 000003
【図２】
2019159836.tif 000004
【図３】
2019159836.tif 000005
【図４】
2019159836.tif 000006
【図５】
2019159836.tif 000007
【図６】
2019159836.tif 000008
【図７】
2019159836.tif 000009
【図８】
2019159836.tif 000010
【図９】
2019159836.tif 000011
【図１０】
2019159836.tif 000012
【図１１】
2019159836.tif 000013
【図１２】
2019159836.tif 000014
【図１３】
2019159836.tif 000015
【図１４】
2019159836.tif 000016
【図１５】
2019159836.tif 000017
【図１６】
2019159836.tif 000018