(57)【要約】【課題】  複数の識別器の多様性を実現しつつ、各識別器が高い識別性能を有するようにする。【解決手段】  データ処理方法に、それぞれがラベルを持つ複数の学習データを有する学習データセットを、決定木の最上位ノードに設定する学習データ設定工程と、前記学習データに対する選択確率を設定する選択確率設定工程と、前記決定木の各ノードに配された学習データの集合から、前記選択確率に基づいて、前記学習データの組み合わせを選択する選択工程と、選択した前記学習データの組み合わせを用いて、前記決定木の各ノードに配された前記学習データの集合を、少なくとも２つの部分集合に分割する分岐規則を決定する規則決定工程と、前記分岐規則に基づいて分割された部分集合を下位のノードに分配する分配工程とを備える。【選択図】  図１
2015090559.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがラベルを持つ複数の学習データを有する学習データセットを、決定木の最上位ノードに設定する学習データ設定工程と、
前記学習データに対する選択確率を設定する選択確率設定工程と、
前記決定木の各ノードに配された学習データの集合から、前記選択確率に基づいて、前記学習データの組み合わせを選択する選択工程と、
選択した前記学習データの組み合わせを用いて、前記決定木の各ノードに配された前記学習データの集合を、少なくとも２つの部分集合に分割する分岐規則を決定する規則決定工程と、
前記分岐規則に基づいて分割された部分集合を下位のノードに分配する分配工程と
を有することを特徴とするデータ処理方法。
【請求項２】
それぞれがラベルを持つ複数の学習データを有する学習データセットを、多段型識別器に入力する入力工程と、
前記学習データに対する選択確率を設定する選択確率設定工程と、
前記多段型識別器の各段において、少なくとも１つの学習データの集合から、前記選択確率に基づいて、前記学習データの組み合わせを選択する選択工程と、
選択した前記学習データの組み合わせを用いて、前記少なくとも１つの学習データの集合を、少なくとも２つの部分集合に分割する識別規則を決定する規則決定工程と
を有することを特徴とするデータ処理方法。
【請求項３】
前記選択工程で選択された学習データに対して、前記選択確率を小さくする更新工程を更に有することを特徴とする請求項１または２に記載のデータ処理方法。
【請求項４】
前記更新工程では、前記選択確率を、前記選択工程において選択された結果と、前記少なくとも２つの部分集合に分割した結果との、少なくとも一方に基づいて更新することを特徴とする請求項３に記載のデータ処理方法。
【請求項５】
前記選択確率設定工程では、予め定めた前記学習データの重要度に基づいて、重要度の高い学習データに対しては、相対的に大きな選択確率を設定することを特徴とする請求項１乃至４のいずれか１項に記載のデータ処理方法。
【請求項６】
前記規則決定工程では、前記選択した学習データに対する分離度を基準にして前記規則を決定することを特徴とする請求項１または２に記載のデータ処理方法。
【請求項７】
前記基準は、前記選択した学習データにおける差が最大となる基準であることを特徴とする請求項６に記載のデータ処理方法。
【請求項８】
前記選択確率設定工程では、前記学習データの組み合わせに対して前記選択確率を設定することを特徴とする請求項１または２に記載のデータ処理方法。
【請求項９】
請求項１乃至８のいずれか１項に記載のデータ処理方法により学習した、少なくとも１つの識別器に、識別対象である入力データを入力する入力工程と、
前記少なくとも１つの識別器を用いて前記入力データを識別する識別工程と、
前記識別工程の結果に基づき、前記入力データに対する識別結果を算出する工程と
を有することを特徴とするデータ識別方法。
【請求項１０】
それぞれがラベルを持つ複数の学習データを有する学習データセットを、決定木の最上位ノードに設定する学習データ設定手段と、
前記学習データに対する選択確率を設定する選択確率設定手段と、
前記決定木の各ノードに配された学習データの集合から、前記選択確率に基づいて、前記学習データの組み合わせを選択する選択手段と、
選択した前記学習データの組み合わせを用いて、前記決定木の各ノードに配された前記学習データの集合を、少なくとも２つの部分集合に分割する分岐規則を決定する規則決定手段と、
前記分岐規則に基づいて分割された部分集合を下位のノードに分配する分配手段と
を有することを特徴とするデータ処理装置。
【請求項１１】
それぞれがラベルを持つ複数の学習データを有する学習データセットを、多段型識別器に入力する入力手段と、
前記学習データに対する選択確率を設定する選択確率設定手段と、
前記多段型識別器の各段において、少なくとも１つの学習データの集合から、前記選択確率に基づいて、前記学習データの組み合わせを選択する選択手段と、
選択した前記学習データの組み合わせを用いて、前記少なくとも１つの学習データの集合を、少なくとも２つの部分集合に分割する識別規則を決定する規則決定手段と
を有することを特徴とするデータ処理装置。
【請求項１２】
請求項９または１０に記載のデータ処理装置により学習した、少なくとも１つの識別器と、
識別対象である入力データを入力する手段と、
前記少なくとも１つの識別器を用いて前記入力データを識別する識別手段と、
前記識別手段での結果に基づき、前記入力データに対する識別結果を算出する手段とを有することを特徴とする識別装置。
【請求項１３】
請求項１乃至９のいずれか１項に記載のデータ処理方法をコンピュータに実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データに対して所定の識別を実施する識別器を学習するためのデータ処理方法、及び、その識別器を用いたデータ識別方法に関するものである。
【背景技術】
【０００２】
入力パターンがいずれのカテゴリのパターンであるかといった識別や、入力パターンを説明変数とし、それに対応する目的変数の推定を行う方法として、様々な方法が提案されている。このような方法の１つとして、多数の学習データを用いて学習した複数の決定木を用いる方法が挙げられる。
【０００３】
例えば、非特許文献１に記載のＢａｇｇｉｎｇ  Ｔｒｅｅｓのように、まず、多数の学習データから、ブートストラップサンプリングにより、複数の学習データサブセットを生成し、各学習データサブセットを用いて決定木を学習する。そして、学習した各決定木の、入力パターンに対する出力を統合することにより、入力パターンに対する識別を行う方法が提案されている。
【０００４】
一般的に、複数の識別器を統合して用いる識別方法では、複数の識別器が多様性を有していることが重要である。Ｂａｇｇｉｎｇ  Ｔｒｅｅｓでは、ブートストラップサンプリングにより生成された多様な学習データサブセットを、それぞれの決定木の学習に用いることで、多様な決定木を生成することができる。そのため、入力パターンに対する、それらの決定木の識別結果を統合することで、高い性能を実現することができる。
【０００５】
この多様性を更に高める方法として、非特許文献２に記載のＲａｎｄｏｍｉｚｅｄ  Ｔｒｅｅｓでは、決定木の各ノードにおける分岐規則を、無作為に選択して各決定木を生成する。これにより、１つ１つの決定木の性能は低いが、非常に多様な決定木が生成されるため、このような複数の決定木を利用することで、高い性能を実現することができる。
【０００６】
また、複数の識別器の多様性を高めながら、各識別器の性能も高めることを目的として、特許文献１に開示の手法も提案されている。この手法では、識別において有効な識別規則に、相対的に高い選択確率を与えて、そのような識別規則が優先的に選択されるように各識別器を生成する。このような方法により、複数の識別器の多様性を確保しながら、各識別器の性能を向上させることができ、結果として、高い識別性能を実現できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２８７１７９号公報
【特許文献２】特開２０１１−２１６０８７号公報
【非特許文献】
【０００８】
【非特許文献１】Ｌ．Ｂｒｅｉｍａｎ，“Ｂａｇｇｉｎｇ  Ｐｒｅｄｉｃｔｏｒｓ”，Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  ２６，ｐｐ．１２３−４００，１９９６
【非特許文献２】Ｌ．Ｂｒｅｉｍａｎ，“Ｒａｎｄｏｍ  Ｆｏｒｅｓｔｓ”，Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  ４５，ｐｐ．５−３２，２００１
【発明の概要】
【発明が解決しようとする課題】
【０００９】
このように、複数の識別器を用いた識別を行うために、そのような複数の識別器の学習方法として、複数の識別器の多様性を高めつつ、各識別器が高い識別性能を有するような識別器の学習方法が望まれている。
【００１０】
本発明は、このような点に鑑みてなされたものであり、複数の識別器の多様性を実現しつつ、各識別器が高い識別性能を有するように、各識別器を学習する方法、及び、その複数の識別器を用いたデータ識別方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明によれば、データ処理方法に、それぞれがラベルを持つ複数の学習データを有する学習データセットを、決定木の最上位ノードに設定する学習データ設定工程と、前記学習データに対する選択確率を設定する選択確率設定工程と、前記決定木の各ノードに配された学習データの集合から、前記選択確率に基づいて、前記学習データの組み合わせを選択する選択工程と、選択した前記学習データの組み合わせを用いて、前記決定木の各ノードに配された前記学習データの集合を、少なくとも２つの部分集合に分割する分岐規則を決定する規則決定工程と、前記分岐規則に基づいて分割された部分集合を下位のノードに分配する分配工程とを備える。
【発明の効果】
【００１２】
本発明によれば、複数の識別器を用いてデータを識別するデータ識別方法において用いる、複数の識別器の学習において、複数の識別器の多様性を実現しつつ、各識別器が高い識別性能を有するような学習が可能になる。また、その複数の識別器を用いることにより、高い識別性能を持ったデータ識別が実現できるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態における識別器学習方法の処理を示すフローチャートである。
【図２】第１の実施形態における識別器学習方法の処理構成図である。
【図３】第１の実施形態におけるパターン識別方法の処理を示すフローチャートである。
【図４】第１の実施形態におけるパターン識別方法の処理構成図である。
【図５】第２の実施形態における識別器学習方法の処理を示すフローチャートである。
【図６】第２の実施形態における識別器学習方法の処理構成図である。
【図７】第３の実施形態における識別器学習方法の処理を示すフローチャートである。
【図８】第３の実施形態における識別器学習方法の処理構成図である。
【図９】第２の実施形態における識別器学習方法により学習した識別器を用いたパラメータ選択方法の処理を示すフローチャートである。
【図１０】第２の実施形態における識別器学習方法により学習した識別器を用いたパラメータ選択方法の処理構成図である。
【図１１】第２の実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理を示すフローチャートである。
【図１２】第２の実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理構成図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照しながら本発明の実施形態を説明する。
【００１５】
＜第１の実施形態＞
本発明の第１の実施形態として、人物の顔画像を入力し、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを、複数の識別器により識別する方法において用いる複数の識別器の学習方法の例を示す。尚、本実施形態では、この識別器として決定木を用いる。
【００１６】
図１に、本実施形態の識別器学習方法の処理フローチャートを示す。また、図２に、本実施形態の識別器学習方法の処理ブロック図を示す。以下、図１及び図２を用いて、本実施形態の識別器学習方法の例について説明する。
【００１７】
学習データ入力ステップ１０では、複数の識別器の学習に用いる、多数の学習データを入力する。本実施形態では、多数の学習データとして、多数の人物の顔画像を用いる。具体的には、本実施形態では、人物の顔の領域を切り出した、４０×４０画素のグレースケール画像を用いる。
【００１８】
以下、このような画像を、単に顔画像と記載する。これらの顔画像は、予め定めた複数の特定の人物の顔画像と、特定の人物以外の任意の人物の顔画像から構成される。本実施形態では、予め定めた特定の人物を、Ａ〜Ｊまでの１０人とし、それらの人物の顔画像に関しては、対応する人物のラベルとともに、図２の学習データ保持部２０ＤＢに記録する。特定の人物以外の任意の人物の顔画像については、予め定めた特定の人物ではないというラベルとともに、同じく学習データ保持部２０ＤＢに記録する。
【００１９】
本実施形態のデータ処理では、１０人の特定の人物に関しては、それぞれ１００枚の、様々な状況下で撮影された顔画像を学習データとする。また、特定の人物以外の、任意の人物の顔画像については、同じく様々な状況で撮影された３０００枚の顔画像を学習データとし、計４０００枚の顔画像を学習データとして用いる。学習データ入力ステップ１０での処理は、図２の学習データ入力部２０により実行され、このような、計４０００枚の顔画像が、それぞれに対応するラベルとともに、学習データ保持部２０ＤＢに記録される。
【００２０】
次に、データ選択確率初期化ステップ１１において、図２に示した、入力された学習データそれぞれについてのデータ選択確率２１ｄを用意し、それらの値を初期化する処理を行う。データ選択確率２１ｄは、後述するデータ選択ステップ１４において参照されるものである。より具体的には、詳細は後述するが、データ選択ステップ１４において、学習データからデータを選択する際に、この値に比例した確率でデータを選択する。
【００２１】
このデータ選択確率初期化ステップ１１は、図２のデータ選択確率初期化部２１により実行され、入力された各学習データそれぞれについて、１つの非負実数値を選択確率として設定する選択確率設定を行う。このデータ選択確率初期化ステップ１１は、この実数値の初期化を行う処理であり、本実施形態では、全ての学習データに均等な値を設定する。具体的には、本実施形態では、単純に、この値に１を設定する。尚、本実施形態では、各学習データに均等な値を設定するようにしているが、これに限るものではなく、例えば、予め定めた特定の人物に対応する学習データには、より大きい値を設定する等してもよい。
【００２２】
続いて、決定木学習開始ステップ１２において、１本目の決定木の学習を開始する。図２の破線で囲まれた部分が、決定木の学習を行う処理ブロック２００である。ここでは、学習データ設定部２２が、図２の学習データ保持部２０ＤＢに記録されている全学習データである学習データセットを、決定木の最上位ノードに設定する学習データ設定の処理を行う。
【００２３】
次に、ノード選択ステップ１３において、決定木の１つのノードを選択する。学習の開始時は、決定木のノードは最上位ノードしか存在しないので、ここで最上位ノードが選択される。それ以降では、後述のデータ分配ステップ１７においてリーフノードと判定されたノード以外のノードを選択することになる。このノード選択処理は、図２のノード選択部６４により実行される。
【００２４】
続いて、データ選択ステップ１４において、ノード選択ステップ１３で選択されたノードに設定されている学習データから、少数の学習データを選択する処理を行う。この処理は、図２のデータ選択部２４により実行される。データ選択部２４は、データ選択確率２１ｄを参照して、選択されたノードに設定されている学習データそれぞれに対応するデータ選択確率に従って、少数の学習データを選択する。本実施形態では、少数の学習データとして、ラベルの異なる２つの学習データを選択する。
【００２５】
そして、データ選択ステップ１４において選択された少数の学習データに基づいて、分岐規則決定ステップ１５で、図２の分岐規則決定部２５により、当該ノードにおける分岐規則を決定する処理を行う。ここでは、選択した少数の学習データが、より良く分割されるように、分離度を基準にして分岐規則を求め、それを当該ノードにおける分岐規則とする。本実施形態の決定木の各ノードでは、画像データのある位置の１つの画素値が、所定画素値より大きいか否かに基づいて分岐する方法を用いる。
【００２６】
そこで、本実施形態では、選択した２つの学習データに関して、同一の画素位置において、最も差分の大きい画素位置を探索し、その位置におけるそれぞれの画素の平均値を求める。そして、差分の最も大きい画素位置における画素値が、求めた平均値より大きいか否かに基づいて分岐する分岐規則を、当該ノードの分岐規則とする。
【００２７】
本実施形態では、このような分岐規則を、より良く分割するような分岐規則として決定するが、本発明はこれに限るものではなく、決定木の分岐方法に応じて任意の方法を用いればよい。例えば、決定木の分岐方法として、画像中の異なる２つの位置ｘ１、ｘ２の画素値を比較し、その画素値の大小によって分岐するような分岐方法を用いる場合、以下の式の基準で、２つの位置を決定するといったようにすればよい。
【００２８】
【数１】
2015090559.tif 000003
【００２９】
ここで、Ｉ（ｘ）は、位置ｘにおける画素値を意味し、Ｉの添え字は、選択された２つの画像を区別するためのものである。このように、決定木に用いる分岐方法や、対象となるデータに応じて、より良く分割するような分岐規則を決定してやればよい。
【００３０】
データ選択確率更新ステップ１６では、データ選択ステップ１４で選択された少数の学習データに対応するデータ選択確率を更新する処理を行う。この処理は、図２のデータ選択確率更新部２６により実行され、データ選択確率２１ｄに記録されている、データ選択部２４で選択した学習データに対応するデータ選択確率を更新する。ここでは、データ選択ステップ１４で選択された学習データが、以降のデータ選択ステップ１４での処理において選択されにくくなるように、選択された学習データに対応するデータ選択確率を小さくする処理を行う。具体的には、本実施形態では、対応するデータ選択確率に１以下の値（例えば、０．１等）を乗じることにより更新する。
【００３１】
次に、データ分配ステップ１７において、分岐規則決定ステップ１５で決定した分岐規則に基づいて、当該ノードに設定されている学習データの集合の分割を行い、分割した学習データの部分集合それぞれを、下位のノードに設定する処理を行う。この処理は、図２のデータ分配部２７で実行される。本実施形態においては、２つに分岐する分岐規則を、決定木の分岐規則として用いるので、当該ノードに設定されている学習データは、２つの学習データに分割される。
【００３２】
この分割された学習データそれぞれに対して新たなノードを生成し、各ノードに、それぞれの学習データを設定する。この時、下位の各ノードに設定された学習データが、全て同じラベルのデータであるか否かを判定し、学習データのラベルが全て同じであったら、そのノードをリーフノードと判定する。ここでリーフノードと判定されたノードについては、これ以上の分割を行わない。そのため、このリーフノードについては、前述のように、ノード選択ステップ１３において選択をしないようにする。
【００３３】
そして、全ノード終了判定１３ｅにおいて、リーフノード以外のノードが全て選択されたか否かを判定し、まだリーフノード以外のノードが残っているならば、上記ノード選択ステップ１３からデータ分配ステップ１７の処理を繰り返し実行する。このような処理を繰り返し行い、リーフノード以外の全てのノードが選択されたと判定された段階で、１本の決定木の学習処理が終了となる。
【００３４】
１本の決定木の学習処理終了後、決定木データ出力ステップ１８において、学習が終了した決定木のデータを外部に出力する処理を行う。この処理は、図２の決定木データ出力部２８により実行され、分岐規則決定部２５で決定された、各ノードにおける分岐規則、及び、リーフノードに設定された学習データのラベル情報の記録を行う。
【００３５】
決定木データ出力ステップ１８での処理終了後、予め定めた所定の本数の決定木の学習が行われるまで、決定木学習開始ステップ１２に戻り、決定木の学習処理を繰り返し実行する。複数の決定木の学習処理を行い、所定の本数の決定木が生成された段階、つまり、所定数学習判定１２ｅにおいて、所定数の決定木が生成されたと判断された段階で、本実施形態の識別器の学習方法の処理が終了となる。決定木の本数は、問題依存ではあるが、十分に多いことが望ましく、本実施形態では、５００本の決定木の学習を行い、５００本分の決定木データが外部に出力されることとする。
【００３６】
上記説明した方法で決定木を学習することにより、異なるラベルの学習データをより良く分割する基準で分岐規則を決定するため、非特許文献２のＲａｎｄｏｍｉｚｅｄ  Ｔｒｅｅｓ等と比較して、１つ１つの決定木の性能を高めることができる。特に、リーフノードに近い下位ノードでは、ノードに残った学習データの数は少なくなり、且つ、類似しているデータである可能性が高いが、その中の異なるラベルのデータを好適に分割する基準で分岐規則を決定するため、決定木の性能を高めることができる。また、学習データそれぞれに対してデータ選択確率を用意しておき、選択された回数に応じて、データ選択確率を小さくすることで、多様に学習データが選択される。
【００３７】
そのため、選択された学習データを用いて決定した分岐規則は、高い多様性を持っており、その結果、複数の決定木の多様性も実現することができる。特に、最上位ノードに近い上位のノードでは、選択される候補となる学習データの数が多いため、より多様に学習データが選択される。そのため、決定される分岐規則も高い多様性を持ち、その結果、下位のノードに設定される学習データの組み合わせも多様になり、これによって、決定木の多様性が実現できる。このように、本実施形態の識別器学習方法では、複数の識別器の多様性を確保しながら、１つ１つの識別器の性能も高めることができ、そのため、この複数の識別器を用いたデータ識別方法において、高い識別性能を実現できる可能性が高くなる。
【００３８】
この複数の識別器を用いて、人物の顔画像を入力し、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別するパターン識別方法の例を示す。
【００３９】
図３に、本実施形態のパターン識別方法の処理フローを示す。また、図４に、本実施形態のパターン識別方法の処理ブロック図を示す。以下、図３及び図４を用いて、本実施形態のパターン識別方法の例について説明する。
【００４０】
まず、決定木データ入力ステップ３０において、上記方法で学習した決定木のデータを入力する処理を行う。この処理は、図４の決定木データ入力部４０により行われ、上記説明した、図２の決定木データ出力部２８で出力された決定木データを入力し、それを決定木データ保持部４０ＤＢに記録する処理を行う。
【００４１】
続いて、データ入力ステップ３１で、識別対象データである入力データとして、決定木の学習に用いた画像と同様な、顔画像データを入力する。この処理は、図４のデータ入力部４１で行われ、本実施形態では、前述のように、顔画像として、人物の顔の領域を切り出した、４０×４０画素のグレースケール画像を入力する。
【００４２】
そして、決定木識別結果算出ステップ３２で、１本目の決定木を用い、データ入力ステップ３１で入力された入力データに対する識別処理を行う。ここでの処理は、図４の決定木結果算出部４２により実行され、決定木データ保持部４０ＤＢに記録されている１本の決定木を選択し、その最上位ノードに対応する分岐規則による入力データ分岐から始めて、決定木による探索処理を行う。そして、最終的に到達したリーフノードに対応したラベルを、当該決定木の識別結果とする。
【００４３】
決定木識別結果記録ステップ３３では、決定木識別結果算出ステップ３２で求めた決定木の識別結果、つまり、最終的に到達したリーフノードに対応したラベル情報を記録する。ここでは、図４の決定木識別結果算出部４２により求めたラベルを、決定器識別結果４３ｄに累積的に記録する処理を行う。例えば、本実施形態ならば、決定木識別結果算出部４２の識別結果が、予め定めた特定の人物の１人であるＡに対応するラベルであったならば、Ａである可能性に１つ投票を行う。また、例えば、決定器識別結果算出部４２の識別結果が、予め定めた特徴の人物以外であるというラベルであったならば、特定の人物以外である可能性に１つ投票するというような処理を行う。
【００４４】
このような、１つの決定木での決定木識別結果算出ステップ３２、及び、決定木識別結果記録ステップ３３の処理を、決定木データ保持部４０ＤＢに記録されている全ての決定木について繰り返し実行する。そして、全決定木終了判定３２ｅにおいて、全決定木での上記処理が終了した段階で、次の識別結果統合ステップ３４の処理に進む。
【００４５】
識別結果統合ステップ３４では、複数の決定木による識別結果を統合して、最終的な識別結果を算出する処理を行う。この処理は、図４の識別結果統合部４４により実行され、本実施形態では、単純に、最も多くの投票を集めた識別結果を、最終的な識別結果とする。つまり、例えば、多数の決定木による識別結果において、Ｂである可能性に、最も多くの投票がなされた場合、入力された入力データは、Ｂの顔画像であるという識別結果とする。そして、最後に、識別結果出力ステップ３５において、識別結果統合ステップ３４において算出した最終的な識別結果を、外部に出力する。この処理は、図４の識別結果出力部４５により行われる。
【００４６】
以上の処理により、上記説明した複数の決定木を用い、入力された顔画像データが、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別することが可能になる。このように、１つ１つの識別器での識別結果に対する信頼度が低くても、多数の多様な識別器での結果を統合することにより、高い識別性能を実現できる可能性が高くなる。本発明では、多数の識別器の多様性を確保しつつ、１つ１つの識別器の性能が、非特許文献２のＲａｎｄｏｍｉｚｅｄ  Ｔｒｅｅｓ等と比べて向上できる可能性が高く、その結果、最終的な識別性能も、向上する可能性が高くなる。
【００４７】
尚、本実施形態では、上記のように決定木の学習を行ったが、一般的な決定木に適用可能な、深さの制限や、枝刈り等を行っても構わない。この場合、リーフノードに異なるラベルの学習データが残る場合があるが、その場合、学習時にその比率を記録しておき、識別時には、その比率に応じた投票を行う等すればよい。
【００４８】
また、決定木の分岐規則を決定する際に、２つの学習データを選択して、それに基づいて分岐規則を決定したが、選択する学習データは、２つに限るものではなく、その他の個数でも構わない。例えば、１つの学習データと、それとは異なるラベルの３つの学習データの、計４つのデータを選択し、１つの学習データと、残りの３つの学習データをより良く分割するように分岐規則を決定してもよい。
【００４９】
更に、本実施形態では、二分木の例を示したが、一般的にはｎ分木の決定木に適用可能であり、この場合、例えば、ラベルの異なる３つの学習データを選択し、それぞれがより良く分割されるような３分割の分岐規則を決定するようにしてもよい。
【００５０】
また、本実施形態の識別時には、単純に、最も投票が多かった識別結果を、最終的な識別結果としたが、学習データにラベルごとのデータの偏りがある場合、その偏りに従った誤判定をしてしまう可能性がある。そのため、例えば、各ラベルに対応する投票数に、それぞれに対応する所定の係数を乗じ、その後の値の大小に基づいて、最終的な識別結果を算出するというようにしてもよい。ここでの所定の係数は、例えば、ラベルごとのデータ数に応じて決める、または、学習データとは別の検定データを用意しておき、その検定データでの識別性能が高くなるように、それぞれの係数を決めてやるというようにすればよい。
【００５１】
＜第２の実施形態＞
本発明の第２の実施形態では、特定の物体を山積みにした状態を撮像し、撮像した画像に基づいて、山積み状態の各物体の概略位置・姿勢を推定するパターン識別方法における、撮像及び前処理のパラメータの評価を行う識別器の学習方法の例を示す。本実施形態でも、この識別器として、決定木を用いる。
【００５２】
まず、本実施形態におけるパラメータ評価を行う目的と概要について説明する。特定の物体を山積みにした状態を撮像し、撮像した画像に基づいて、山積み状態の各物体の概略位置・姿勢を推定するパターン識別方法としては、例えば、特許文献２の手法等が開示されている。
【００５３】
一般的に、このようなパターン識別方法では、パラメータを対象の物体ごとに適切に設定することにより、識別性能を向上させることができる。そのようなパラメータとしては、例えば、露光時間といった撮像時のパラメータや、前処理としてのエッジ抽出におけるフィルタサイズといった前処理のパラメータがある。本実施形態では、この識別方法が出力すべき正しい結果、つまり、撮像された山積み状態の各物体の概略位置・姿勢の正解値を用意せずに、撮像や、前処理のパラメータの評価を行うための複数の決定木を学習する。そして、この複数の決定木を用いた評価結果に基づいて、撮像や前処理の適切なパラメータを設定することを目的としている。
【００５４】
具体的には、まず、実際に、様々なパラメータで撮像や前処理を行い、その結果として得られる、それぞれのパラメータについての中間データである前処理後画像を生成する。次に、それぞれの前処理後画像について、予め定めた複数の特徴量を抽出して特徴データを生成する。そして、複数の特徴データに基づいて識別性能を予測するように学習した複数の決定木を用い、各前処理後画像について抽出した複数の特徴データにより、それぞれについての識別性能を予測する。
【００５５】
つまり、各パラメータに従って生成された前処理後画像から抽出した複数の特徴量に基づき、識別性能の予測を行う。そして、この予測した識別性能を、各パラメータの評価値とし、評価値が、最も高いパラメータを、この対象物体における適切なパラメータとして設定することを目的としている。このように、本実施形態では、各パラメータそれぞれについて得られる特徴量を説明変数、対応する識別性能の予測値を目的変数として出力する回帰モデルとしての複数の決定木の学習を行う。
【００５６】
説明のため、まず、本実施形態における識別器学習方法により学習した識別器を用いて、適切なパラメータを選択するパラメータ選択方法について説明する。図９に、本実施形態における、パラメータ選択方法の処理フローを示す。また、図１０に、本実施形態における、パラメータ選択方法の処理ブロック図を示す。以下、図９及び図１０を用いて、本実施形態の識別器学習方法により学習した識別器を用いたパラメータ選択方法について説明する。
【００５７】
決定木データ入力ステップ９０は、後述の評価値推定ステップ９５において、識別性能の予測値を算出するための決定木データを入力する。この処理は、図１０の決定木データ入力部１００により行われ、ここでは、予め生成された決定木データを入力する処理を行う。決定木データの詳細と、その学習方法に関しては、後に詳細に説明する。
【００５８】
パラメータ設定部１０１は、パラメータ候補保持部１０１ＤＢに予め記録されている種々のパラメータを、パラメータ候補保持部１０１ＤＢから読み出し、撮像部１０２及び前処理部１０３に、それぞれ設定する。パラメータ候補保持部１０１ＤＢには、撮像部１０２、前処理部１０３に設定する種々のパラメータが、それぞれ記録されている。
【００５９】
撮像部１０２に設定するパラメータの項目としては、例えば、露光時間やアンプのゲインといった項目が挙げられ、それぞれの項目について、パラメータの値の候補が記録されている。具体的には、露光時間であれば、例えば、１ｍｓ、２ｍｓ、４ｍｓ、・・・、５００ｍｓというような、露光時間として設定するパラメータの候補が記録されている。
【００６０】
本実施形態では、露光時間に関してＮｔ個のパラメータの候補があり、アンプのゲインに関してＮｇ個のパラメータの候補が予め記録されているとする。パラメータ設定部１０１では、これらの候補を読み出し、候補の全組み合わせ（即ち、本実施形態では、Ｎｔ×Ｎｇ個）を、順に撮像部１０２に設定する処理を行う。ここでの処理は、図９の撮像パラメータ設定ステップ９１０に対応する。撮像パラメータの設定後、撮像ステップ９２において、撮像部１０２により、特定の物体を山積みにした状態を設定されたパラメータに基づいて撮像し、撮像した画像を、前処理部１０３に送る処理を行う。
【００６１】
続いて、前処理パラメータ設定ステップ９１１において、パラメータ設定部１０１が、撮像部１０２と同様に、前処理部１０３に対してパラメータを設定する処理を行う。前処理部１０３に設定するパラメータの項目としては、例えば、ノイズ除去のための平滑化フィルタのフィルタサイズや、γ補正のための係数といった項目が挙げられる。また、連続値として設定する項目だけでなく、例えば、バイアス補正を行うか否か、といった２値的な項目があってもよい。また、エッジ抽出処理として、Ｓｏｂｅｌフィルタ、Ｐｒｅｗｉｔｔフィルタ、Ｌａｐｌａｃｉａｎフィルタのいずれを使うか、といった多値的な項目があってもよい。
【００６２】
更に、例えば、平滑化フィルタ、γ補正、及び、エッジ抽出処理の順序を、どのような順序で行うか、といった項目も含むことができる。本実施形態では、様々な項目に関するパラメータの候補の全組み合わせとして、Ｎｐ個の組み合わせがあるとし、それを順に前処理部１０３に設定する処理を行う。前処理パラメータの設定後、前処理ステップ９３において、撮像部１０２より送られてきた画像に対して、設定されたパラメータに基づく前処理を、前処理部１０３にて実施し、前処理後画像１０３ｄを生成する処理を行う。
【００６３】
次に、特徴抽出ステップ９４で、前処理後画像１０３ｄに基づいて、予め定められた複数の特徴量を抽出する処理を行う。ここでの処理は、図１０の特徴抽出部１０４により行われる。特徴量としては、様々なものが挙げられる。本実施形態では、前処理後画像の輝度値の平均値、分散、歪度、尖度、最頻値、エントロピーや、下記の文献に記載されたＣｏ‐ｏｃｃｕｒｒｅｎｃｅ  Ｍａｔｒｉｘを用いたテクスチャー特徴量など、ｆ個の特徴量を用いる。
【００６４】
Ｒｏｂｅｒｔ  Ｍ．Ｈａｒａｌｉｃｋ，Ｋ．Ｓｈａｎｍｕｇａｍ，ａｎｄ  Ｉｔｓｈａｋ  Ｄｉｎｓｔｅｉｎ，“Ｔｅｘｔｕｒｅ  Ｆｅａｔｕｒｅｓ  ｆｏｒ  Ｉｍａｇｅ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ”，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｓｙｓｔｅｍ，Ｍａｎ  ａｎｄ  Ｃｙｂｅｒｎａｔｉｃ，Ｖｏｌ．６，ｐｐ．６１０−６２１，１９７３
特徴抽出部１０４では、このような特徴量を前処理後画像１０３ｄから抽出し、特徴データとして、それらを順に並べた特徴ベクトル１０４ｄを生成する処理を行う。本実施形態では、このように、前処理後画像１０３ｄから、画像のマクロな性質を表す特徴量を抽出するが、画像の性質を表現するような特徴量であれば、その他の特徴量でも構わない。
【００６５】
評価値推定ステップ９５では、決定木データ入力ステップ９０において入力された複数の決定木データを用い、特徴抽出部１０４で生成した特徴ベクトル１０４ｄに基づいて、パラメータ設定部１０１により設定されたパラメータの評価値を求める処理を行う。この決定木データは、前処理画像から抽出したｆ個の特徴量を並べた特徴ベクトルを説明変数とし、その前処理後画像に対して識別処理を実行した際の識別性能を目的変数とした回帰モデルである。
【００６６】
ここで、本実施形態における決定木の詳細、及び、その学習を行うための学習データ生成方法について説明する。図１１に、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理フローを示す。また、図１２に、本実施形態における識別器の学習、及びその学習に用いる学習データ生成方法の処理ブロック図を示す。
【００６７】
以下、図１１及び図１２を用いて、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法について説明する。尚、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理部の構成は、図１０に示した、本実施形態におけるパラメータ選択方法の処理部の構成と同様の部分が多数ある。そのため、同様の部分については、詳細な説明を省略し、差異の部分について詳細に説明する。
【００６８】
前述のように、本実施形態における識別器は、前処理後画像から抽出した複数の特徴量を並べた特徴ベクトルに基づき、その前処理後画像を利用した識別方法における識別性能を予測する回帰モデルである。この回帰モデルの学習には、入力である特徴ベクトル（説明変数）と、それに対応した出力である識別性能（目的変数）を組とした、モデル生成用のデータを多数用いる。そのため、まず、様々な物体を用い、説明変数と目的変数を組としたデータを生成し、それらを用いて、識別器を学習する。ここで、この識別器として、第１の実施形態と同様に、本実施形態でも決定木を用いる。
【００６９】
目的変数、つまり、識別性能を求めるためには、前述のように、識別方法が出力すべき正解値を用意しておく必要がある。そのため、ここでは、様々な物体について、その物体を山積みの状態にしたものを用意し、それを撮像した画像における、山積み状態の各物体の概略位置・姿勢を正解値として用意する。ここで用意した正解値を、図１２の正解値入力部１２０により入力し、正解値データ１２０ｄとして保持しておく。この物体を山積みの状態にしたもの、及び、対応する正解値を用意する工程が、図１１の識別対象設定ステップ１１０に対応する。
【００７０】
各物体の概略位置・姿勢の正解値は、例えば、山積み状態の物体を撮像した画像において、各物体上の、複数の所定の箇所の、画像内での位置を指定することにより求めることができる。ここで行う正解値の用意は、コストの大きい作業ではあるが、予め生成しておく識別性能推定モデルの生成段階でのみ必要であり、この段階でいくつかの事例に対して実施すればよい。つまり、一旦、決定木の学習を行えば、新たな対象に対しては、個別に正解値の用意をする必要はなく、正解値の用意というコストは抑えることができる。
【００７１】
尚、ここで用いる様々な物体の中には、本実施形態において、パラメータの評価を行う対象の物体は含まれていない。もし、ここで用いる様々な物体の中に、本実施形態において、パラメータの評価を行う対象の物体が含まれているならば、ここで用意した各物体の概略位置・姿勢の正解値を用いて、実際の識別性能を推定してパラメータを評価すればよい。
【００７２】
１つの山積み状態、及び、その正解値を用意した後、その１つの山積み状態について、多数の説明変数、つまり、前処理後画像から抽出した特徴ベクトルと、それぞれに対応する目的変数、つまり、識別性能を求める処理を行う。
【００７３】
図１１の撮像パラメータ設定ステップ１１１０から、前処理ステップ１１３、及び、特徴抽出ステップ１１４での処理は、図９の撮像パラメータ設定ステップ９１０から、特徴抽出ステップ９４までの処理と同様の処理である。つまり、まず、パラメータ設定部１２１が、パラメータ候補保持部１２１ＤＢからパラメータの候補を読み出して、撮像部１２２に設定する（図１１の撮像パラメータ設定ステップ１１１０）。そして、撮像部１２２が、用意した山積み状態を撮像する（図１１の撮像ステップ１１２）。次いで、同様に、前処理部１２３にパラメータの候補を設定し（図１１の前処理パラメータ設定ステップ１１１１）、前処理部１２３が、撮像された画像に対する前処理を行って（図１１の前処理ステップ１２３）、モデル生成用前処理後画像１２３ｄを生成する。
【００７４】
このモデル生成用前処理画像１２３ｄは、決定木学習用のデータを生成するために用いるモデル生成用中間データとしての前処理後画像を意味する。そして、特徴抽出部１２４が、モデル生成用前処理画像１２３ｄに対して、予め定められた複数の特徴量を抽出し、それらを並べたモデル生成用特徴ベクトル１２４ｄを生成する（図１１の特徴抽出ステップ１１４）。このモデル生成用特徴ベクトル１２４ｄが、決定木の学習において、説明変数として利用する特徴ベクトルである。
【００７５】
識別処理ステップ１１５では、識別処理部１２５により、モデル生成用前処理後画像１２３ｄに対して識別処理を行い、その識別結果と、用意した正解値データ１２０ｄとを比較することにより、識別性能１２５ｄを求める処理を行う。本実施形態では、ここでの識別方法として、特許文献２に記載のパターン識別方法を用い、物体の概略位置・姿勢の候補を、識別信頼度の高い順に複数求める処理を行う。そして、正解値データ１２０ｄに存在する正解値との誤差が、所定の誤差以内（例えば、位置ずれ数画素以内、且つ、姿勢ずれが数度以内）である候補を識別成功と考え、候補の個数ごとに、適合率（Ｐｒｅｃｉｓｉｏｎ）と再現率（Ｒｅｃａｌｌ）を算出する。最後に、再現率ごとの適合率の平均である、平均適合率（Ａｖｅｒａｇｅ  Ｐｒｅｃｉｓｉｏｎ）を求め、これを識別性能１２５ｄとする。
【００７６】
図１１の撮像パラメータ設定ステップ１１１０から、特徴抽出ステップ１１４、及び、識別処理ステップ１１５までの処理により、１つの山積み状態について、１つのモデル生成用特徴ベクトル（説明変数）と、１つの識別性能（目的変数）が得られる。そして、得られたモデル生成用ベクトルと識別性能を１組としたデータを、決定木学習部１２６に送信する。このデータは前述のように、決定木の学習に用いられる。
【００７７】
上記、撮像パラメータ設定ステップ１１１０から、特徴抽出ステップ１１４、及び、識別処理ステップ１１５までの処理を、候補となるパラメータごとに繰り返し実行する。そうして、用意した１つの山積み状態について、複数のモデル生成用ベクトルと識別性能の組を生成する。この繰り返し処理は、図１１の全前処理パラメータ候補選択終了条件１１１１ｅ、及び、全撮像パラメータ候補選択終了条件１１１０ｅが双方とも満たされるまで実行される。撮像のパラメータの候補がＮｃ通りで、前処理のパラメータの候補がＮｐ通りであれば、１つの山積み状態について、Ｎｃ×Ｎｐ組の、モデル生成用ベクトルと識別性能の組が生成されることになる。
【００７８】
これらのモデル生成用特徴ベクトルと、識別性能を組としたデータは、全て、決定木学習部１２６に送信される。これにより、用意した１つの山積み状態についての処理が終了となる。上記１つの山積み状態についての処理を、予め定めた所定数の物体に関する山積み状態に対して行う。予め定めた所定数、つまり、処理を実行する山積み状態の数は、多いことが望ましいが、１０から２０程度でも構わない。所定数の物体に関する山積み状態に対する処理終了後、つまり、図１１の全識別対象設定終了条件１１０ｅが満たされた場合、決定木学習ステップ１１６の処理に進む。
【００７９】
決定木学習ステップ１１６では、複数組のモデル生成用特徴ベクトルと識別性能を組としたデータに基づいて、回帰モデルである多数の決定木を学習する処理を行う。この処理は、図１２の決定木学習部１２６により実行される。ここまでの処理により、例えば、山積み状態数がＮｙ、撮像のパラメータ候補数がＮｃ、前処理のパラメータ候補数がＮｐであるとすると、Ｎｙ×Ｎｃ×Ｎｐ組の、モデル生成用特徴ベクトルと識別性能の組が得られている。もし、Ｎｙ＝２０、Ｎｃ＝３０、Ｎｐ＝４０００ならば、２０×３０×４０００＝２４０００００組のデータが得られていることになる。決定木学習部１２６では、このような多数組のデータを用い、モデル生成用特徴ベクトルを説明変数、識別性能を目的変数とした回帰モデルとして、多数の決定木を生成する。
【００８０】
図５に、本実施形態の識別器学習方法の処理フローを示す。また、図６に、本実施形態の識別器学習方法の処理ブロック図を示す。以下、図５、及び、図６を用いて、本実施形態の識別器学習方法の例について説明する。尚、本実施形態の識別器学習方法における処理の内、第１の実施形態における識別器学習方法と同様の処理に関しては、適宜、説明を省略する。また、図１１の決定木学習ステップ１１６までの処理により、多数組のモデル生成用特徴ベクトルと識別性能の組が、決定木学習部１２６に入力されており、これらは、図６の学習データ保持部６０ＤＢに記録されているとする。
【００８１】
まず、正規化係数算出ステップ５１では、正規化係数算出部６１により、学習データ保持部６０ＤＢに記録されている全モデル生成用特徴ベクトルの、各ベクトルの要素の標準偏差を求める。そして、各標準偏差の逆数を、対応するベクトルの要素の正規化係数６１ｄとして算出する処理を行う。ここで求めた正規化係数６１ｄは、後述の分岐規則決定ステップ５６において、決定木の分岐規則決定のために用いられる。
【００８２】
次に、データ選択確率設定ステップ５２において、図６に示した、入力された学習データそれぞれについてのデータ選択確率６２ｄを用意し、それらの値を設定する処理を行う。データ選択確率６２ｄは、後述の、データ選択ステップ５５において参照されるもので、第１の実施形態と同様、学習データからデータを選択する際に、この値に比例した確率でデータを選択する。このデータ選択確率設定ステップ５２は、図６のデータ選択確率初期化部６２により実行され、入力された各学習データそれぞれについて、それぞれのデータに応じた１つの非負実数値を設定する。
【００８３】
本実施形態では、第１の実施形態とは異なり、全学習データに対して均等な確率を設定するのではなく、選択されることが好ましい重要度の高いデータに対して相対的に大きなデータ選択確率を設定する。具体的には、本実施形態では、学習データを構成するモデル生成用特徴ベクトルと識別性能の内、識別性能が高い、若しくは、低いものに関して、高いデータ選択確率を設定する。これは、中庸な識別性能である結果よりも、性能が高くなる場合、若しくは、低くなる場合の推定性能を高めることを重視するためである。このように、データ選択確率は、学習する決定木の目的に応じて設定することが可能である。
【００８４】
また、本実施形態では、学習に用いる学習データが非常に多く存在するため、第１の実施形態とは異なり、決定木の学習途中で、このデータ選択確率の更新を行わない。なぜなら、非常に多くの学習データが存在する場合、各学習データが選択される確率がそもそも低く、データ選択確率の更新を行わなくても、多様な学習データが選択されるからである。
【００８５】
続いて、決定木学習開始ステップ５３において、１本目の決定木の学習を開始する。図６の破線で囲まれた部分が、決定木の学習を行う処理ブロック６００であり、ここでは、第１の実施形態と同様に、学習データ設定部６３により、学習データ保持部６０ＤＢに記録されている全学習データを、決定木の最上位ノードに設定する処理を行う。
【００８６】
次に、ノード選択ステップ５４では、図６のノード選択部６４により、第１の実施形態と同様に、リーフノードと判定された以外の決定木の１つのノードを選択する。また、データ選択ステップ５５でも、第１の実施形態と同様、選択されたノードに設定されている学習データから、データ選択確率６２ｄの確率に従って、少数の学習データを選択する処理を行う。本実施形態は、第１の実施形態とは異なり、第１の実施形態におけるラベルに対応するものは、連続値である識別性能である。本実施形態においても、ここで２つの学習データを選択するが、ラベルが異なるという基準ではなく、目的変数である識別性能が、予め定めた所定値（例えば０．０５等）以上異なるデータを選択する。
【００８７】
そして、データ選択ステップ５５において選択された少数の学習データに基づいて、分岐規則決定ステップ５６で、当該ノードにおける分岐規則を決定する処理を行う。ここでの処理は、図６の分岐規則決定部６６により行われ、正規化係数算出部６１で求めた正規化係数６１ｄを参照して、選択した少数の学習データが、より良く分割されるような分岐規則を求め、それを当該ノードにおける分岐規則とする。本実施形態の決定木の各ノードでは、第１の実施形態と同様に、説明変数である特徴ベクトルの、ある１つの要素が、所定値より大きいか、小さいかに基づいて分岐する方法を用いる。
【００８８】
そこで、本実施形態では、選択した２つの学習データそれぞれの説明変数である特徴ベクトルの各要素の値を、正規化係数６１ｄの対応する値を乗じた値について、同一の要素における差が最も大きい要素を探索する。そして、その要素におけるそれぞれの値の平均値を求める。そして、最も差の大きい要素における値が、求めた平均値より大きいか否かに基づいて分岐する分岐規則を、当該ノードの分岐規則とする。本実施形態における特徴ベクトルの各要素は、平均や分散等、異なるレンジを持つ値であるため、直接、値の差に基づいて分岐規則を決定してしまうと、レンジの大きい要素が選択されてしまいがちになる。
【００８９】
そこで、上記のように、各要素に関する標準偏差に基づいて値を正規化することにより、このようなレンジの違いを吸収する。本実施形態では、このような方法で分岐規則を決定するが、第１の実施形態と同様、本発明はこれに限るものではなく、性質の異なる学習データが好適に分割されるような方法で決定すれば、その他の方法でも構わない。
【００９０】
次に、データ分配ステップ５７において、第１の実施形態と同様に、分岐規則決定ステップ５６で決定した分岐規則に基づいて、当該ノードに設定されている学習データの分割を行い、分割した学習データそれぞれを、下位のノードに設定する処理を行う。この処理は、図６のデータ分配部５７で実行される。第１の実施形態では、下位のノードに設定された学習データが、全て同じラベルであった場合に、そのノードをリーフノードと判定した。本実施形態では、前述のように、第１の実施形態におけるラベルに対応するものは、連続値である識別性能である。
【００９１】
そこで、ラベルが全て同一であるという基準ではなく、ノードに設定された学習データの全組み合わせの中で、最も大きい識別性能の差が、予め定めた所定値以下であるかどうかにより、リーフノードであるか否かを判定する。ここで用いる所定値としては、データ選択ステップ５５におけるデータ選択の基準に用いた所定値と同様の値を用いる等すればよい。
【００９２】
そして、第１の実施形態と同様、全ノード終了判定５４ｅにおいて、リーフノード以外のノードが全て選択されるまで、上記ノード選択ステップ５４からデータ分配ステップ５７の処理を繰り返し実行する。このような処理を繰り返し行い、リーフノード以外の全てのノードが選択されたと判定された段階で、１本の決定木の学習処理が終了となる。
【００９３】
１本の決定木の学習処理終了後、決定木データ出力ステップ５８において、学習が終了した決定木のデータを外部に出力する処理を行う。この処理は、図６の決定木データ出力部６８により実行され、分岐規則決定部６６で決定された、各ノードにおける分岐規則、及び、各リーフノードに対応する目的変数の値の記録を行う。ここで、本実施形態では、各リーフノードに対応する目標変数の値には、各リーフノードに残された学習データそれぞれに対応する識別性能の平均値を用いる。
【００９４】
本実施形態では、このように、リーフノードに対応する目的変数の値として、リーフノードに残された学習データの識別性能の平均値を用いるが、本発明における決定木学習方法は、これに限るものではない。例えば、平均値ではなく、中央値を用いてもよいし、また、平均値や中央値のように、統合した値を用いるのではなく、リーフノードに残った各学習データそれぞれに対応する複数の識別性能を、全て記録するようにしても構わない。
【００９５】
決定木出力ステップ５８での処理終了後、第１の実施形態と同様に、予め定めた所定の本数の決定木の学習が行われるまで、決定木学習開始ステップ５３に戻り、決定木の学習処理を繰り返し実行する。そして、所定の本数の決定木が生成された段階、つまり、所定数学習判定５３ｅにおいて、所定数の決定木が生成されたと判断された段階で、本実施形態の識別器の学習方法の処理が終了となる。本実施形態でも、決定木の本数は、十分に多いことが望ましいので、本実施形態では、５００本の決定木の学習を行い、５００本分の決定木データが外部に出力されることになる。
【００９６】
このように学習した複数の決定木が、本実施形態におけるパラメータ選択方法において、設定されたパラメータの評価値を求めるための決定木となる。この処理は、図１１の決定木学習ステップ１１６に対応し、この処理により、本実施形態における識別器の学習、及び、その学習に用いる学習データ生成方法の処理が終了となる。
【００９７】
上記説明した方法で学習した決定木は、多数組のモデル生成用特徴ベクトルと、それに対応する識別性能の事例に基づいて生成している。このため、抽出した特徴データの条件等に基づき、ルールベースでパラメータを評価するといった手法と比較して、より適切なパラメータの評価を行える可能性が高い。
【００９８】
図９の評価値推定ステップ９５では、評価値推定部１０５により、上記方法により予め生成しておいた複数の決定木を用い、特徴抽出部１０４で生成した特徴ベクトル１０４ｄに基づき、識別性能の推定値を求める処理を行う。ここで学習した複数の決定木を用いた識別性能の推定値を求める処理は、基本的には、第１の実施形態と同様である。ただし、各決定木の結果を統合する部分が少々異なるので、その部分について説明する。第１の実施形態では、各決定木の識別結果は、いずれの人物の顔画像であるかというラベルであった。これに対して、本実施形態では、連続値である識別性能の推定値であるので、第１の実施形態と同様の、投票による結果の統合は、単純にはできない。
【００９９】
そこで、ここでは、単純に、各決定木の結果である識別性能の推定値の平均値を、最終的な推定値として用いる。そして、求めた識別性能の推定値を、パラメータ設定部１０１により設定されたパラメータの評価値とみなす。これにより、パラメータ設定部１０１により設定した、撮像、及び、前処理のパラメータの評価値が得られることになり、この評価値を用いて撮像等のパラメータを選択することで、パターン識別において好適なパラメータを選択することが可能になる。
【０１００】
尚、本実施形態では、上記のように、各決定木の結果の平均値を、最終的な推定値として用いたが、本発明はこれに限るものではなく、例えば、各決定木の結果の中央値を用いてもよい。また、第１の実施形態と同様の投票に基づく方法として、各決定木の結果を、適当な量子化レベル（例えば、０．０５ごと等）で量子化し、量子化された各区分に対する投票を行って、投票数が最大であった区分に対応する値を、最終的な結果としてもよい。
【０１０１】
また、前述のように、決定木のリーフノードに対応する値として、リーフノードに残された学習データそれぞれに対応する識別結果を統合した値に限らない。各学習データそれぞれに対応する複数の識別性能を、全て記録した場合は、例えば、重み付き投票等で最終的な結果を求めてもよい。具体的には、リーフノードに残されていた学習データの数がｋ個であったならば、それぞれの識別性能を量子化し、対応する区分に、１／ｋの値で投票を行い、全ての投票結果を集計して、最大の投票値であった区分に対応する値を最終的な結果としてもよい。
【０１０２】
このように、本発明の識別器学習方法は、離散的なラベルの識別だけでなく、入力データを目的変数とし、所望の目的変数を求める回帰モデルの学習方法としても適用可能である。また、学習データが非常に多い時には、データ選択確率の更新を行わなくても、確率的に、多様なデータが選択され、その結果、多様な識別器が生成されることなり、その結果、複数の識別器を用いることで、良好な推定性能を実現できる可能性が高くなる。本実施形態のように、データ選択確率の更新を行わない場合は、各識別器の学習を並列に実行することが可能になり、識別器学習の処理時間を高速化することも可能となる。
【０１０３】
＜第３の実施形態＞
本発明の第３の実施形態では、第１の実施形態と同様に、人物の顔画像を入力する。そして、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを、複数の識別器により識別する方法において用いる複数の識別器の学習方法を示す。
【０１０４】
本実施形態では、他の実施形態と異なり、いわゆる決定木ではなく、決定木を簡略化した、多段型の識別器である、下記文献に開示のＦｅｒｎ型識別器を用いる。Ｆｅｒｎ型識別器とは、複数の要素識別器を直列に並べた識別器である。Ｆｅｒｎ型識別器では、一般に、比較的単純な、２値の要素識別器が用いられる。つまり、何らかの単純な識別規則に基づきデータを識別して、｛０、１｝の一方を結果として出力するような要素識別器を用いるのが一般的である。
【０１０５】
Ｍｕｓｔａｆａ  Ｏｚｕｙｓａｌ，Ｍｉｃｈａｅｌ  Ｃａｌｏｎｄｅｒ，Ｖｉｎｃｅｎｔ  Ｌｅｐｅｔｉｔ  ａｎｄ  Ｐａｓｃａｌ  Ｆｕａ，“Ｆａｓｔ  Ｋｅｙｐｏｉｎｔ  Ｒｅｃｏｇｎｉｔｉｏｎ  ｕｓｉｎｇ  Ｒａｎｄｏｍ  Ｆｅｒｎｓ”，ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，Ｖｏｌ．３２，  Ｎｏ．３，ｐｐ．４４８−４６１，Ｍａｒｃｈ  ２０１０
図７に、本実施形態の識別器学習方法の処理フローを示す。また、図８に、本実施形態の識別器学習方法の処理ブロック図を示す。以下、図７、及び、図８を用いて、本実施形態の識別器学習方法の例について説明する。尚、本実施形態において、第１の実施形態と同様の部分については、適宜、説明を省略する。
【０１０６】
学習データ入力ステップ７０は、第１の実施形態における学習データ入力ステップ１０と同様の処理であり、複数のＦｅｒｎ型識別器の学習に用いる、多数の学習データを入力する。本実施形態でも、多数の学習データとして、第１の実施形態と同様の、多数の人物の顔画像を用いる。学習データ入力ステップ７０での処理は、図８の学習データ入力部８０により実行され、第１の実施形態と同様の学習データが、学習データ保持部８０ＤＢに記録される。
【０１０７】
次に、データ組合せ選択確率初期化ステップ７１において、図８に示した、入力された学習データそれぞれの組み合わせについてのデータ選択確率８１０ｄを用意し、それらの値を初期化する処理を行う。データ組合せ選択確率８１０ｄは、第１の実施形態におけるデータ選択確率２１ｄと類似したものであるが、各学習データ個別の選択確率ではなく、２つの学習データの組み合わせに関する選択確率を示すものである。このデータ組合せ選択確率初期化ステップ７１は、図８のデータ組合せ選択確率初期化部８１により実行され、入力された学習データ全ての、２つの学習データの組み合わせそれぞれについて、１つの非負実数値を設定する。このデータ組合せ選択確率初期化ステップ７１は、この実数値の初期化を行う処理であり、本実施形態では、全ての学習データの組み合わせに対して、０、または、１の値を設定する。
【０１０８】
具体的には、同じラベルである２つの学習データの組み合わせについては０を設定し、それ以外の組み合わせについては１と設定する。このような値を設定することにより、同一のラベルであるデータの組み合わせが選択されないようになる。尚、本実施形態でも、第１の実施形態と同様、異なるラベルの学習データの組み合わせについて、均等な値を設定するようにしているが、これに限るものではない。例えば、予め定めた所定のラベルの組み合わせである学習データには、より大きい値を設定する等してもよい。具体的には、本実施形態であれば，特定の人物に対応するラベル間の組み合わせについては、より大きい値を設定する等してもよい。
【０１０９】
続いて、Ｆｅｒｎ学習開始ステップ７２において、１つ目のＦｅｒｎ型識別器の学習を開始する。図８の破線で囲まれた部分が、Ｆｅｒｎ型識別器の学習を行う処理ブロック８００である。この処理では、当該Ｆｅｒｎ型識別器の学習用に、データ組合せ選択確率８１０ｄの、現時点のコピーである、単一Ｆｅｒｎ用選択確率８１１ｄを生成する処理を行う。この単一Ｆｅｒｎ用選択確率８１１ｄは、後述の、データ選択部８３での処理である、データ選択ステップ７３において用いられる。
【０１１０】
続いて、データ選択ステップ７３において、Ｆｅｒｎ学習開始ステップ７２において生成した、単一Ｆｅｒｎ用選択確率８１１ｄに基づいて、図８のデータ選択部８３により、２つの学習データの組み合わせを選択する処理を行う。この処理では、単一Ｆｅｒｎ用選択確率８１１ｄに記録されている２つの学習データの組み合わせに関する選択確率に比例した確率で、学習データ保持部８０ＤＢに記録されている学習データから、２つの学習データの組み合わせを選択する。
【０１１１】
そして、データ選択ステップ７４において選択された２つの学習データに基づいて、識別規則決定ステップ７４で、Ｆｅｒｎ型識別器の１つの識別規則を決定する処理を行う。ここでの処理は、図８の識別規則決定部８４により行われ、選択した２つの学習データが、より良く分割されるような識別規則を求め、それをＦｅｒｎ型識別器の１つの識別規則とする。本実施形態のＦｅｒｎ型識別器の要素識別器としては、第１の実施形態の決定木の各ノードにおける分岐方法と同様のものを用いる。即ち、画像データのある位置の１つの画素値が、所定画素値より大きいか、小さいかに基づいて、｛０、１｝の識別を行う方法を用いる。
【０１１２】
そこで、本実施形態でも、第１の実施形態と同様、選択した２つの学習データそれぞれの、同一の画素位置において、最も差分の大きい画素位置を探索し、その位置におけるそれぞれの画素の平均値を求める。そして、差分の最も大きい画素位置における画素値が、求めた平均値より大きいか否かに基づいて識別を行う識別規則を、Ｆｅｒｎ型識別器の１つの識別規則とする。本実施形態でも、このような基準で識別規則を決定するが、本発明はこれに限るものではなく、第１の実施形態の説明において述べたのと同様に、任意の基準を用いて決定すればよい。
【０１１３】
次に、データ識別ステップ７５において、全学習データに対し、識別規則決定ステップ７４で決定した識別規則を用いた識別を行う。この処理は、図８のデータ識別部８５で実行され、全ての学習データそれぞれに対して、｛０、１｝いずれかの識別結果を求める。ここで求めた、各学習データに対する識別結果は、次のデータ組合せ選択確率更新ステップ７６、及び、Ｆｅｒｎデータ出力ステップ７７において用いられる。
【０１１４】
データ選択確率更新ステップ７６では、データ組合せ選択確率８１０ｄ、及び、単一Ｆｅｒｎ用選択確率８１１ｄを更新する処理を行う。この処理は、データ選択ステップ７３で選択された学習データの組み合わせ、及び、データ識別ステップ７５で求めた、各学習データに対する識別結果に基づく。
【０１１５】
ここでの処理は、図８のデータ組合せ選択確率更新部８６で実行され、まず、データ選択ステップ７３で選択された学習データの組み合わせに対応する、データ組合せ選択確率８１０ｄの値を小さくする処理を行う。これにより、以降のＦｅｒｎ型識別器の学習において、同じ組み合わせの学習データが選択されにくくなる。本実施形態でも、第１の実施形態と同様に、対応するデータ組合せ選択確率に１以下の値を乗じることにより更新する。
【０１１６】
次に、データ識別ステップ７５で求めた、各学習データに対する識別結果に基づき、同一の識別結果であった学習データの全ての組み合わせについて、それぞれに対応する単一Ｆｅｒｎ用選択確率８１１ｄの値を０に設定する。これにより、Ｆｅｒｎ型識別器内の、少なくとも１つの識別規則によって、異なる識別結果となった学習データの組み合わせは、当該Ｆｅｒｎ型識別器の学習においては、選択されないようになる。尚、データ選択ステップ７３で選択された学習データの組み合わせについては、識別規則決定ステップ７４において、必ず異なる識別結果となるように、識別規則を決定しているため、対応する単一Ｆｅｒｎ用選択確率８１１ｄの値は、ここで必ず０に設定される。そのため、当該Ｆｅｒｎ型識別器の学習において、同じ学習データの組み合わせが選択されることはなくなる。
【０１１７】
そして、所定識別規則数終了判定７３ｅにおいて、予め定めた所定個数（例えば１０個）の識別規則を生成したかに基づき、所定個数に達していなければ、上記データ選択ステップ７３からデータ組合せ選択確率更新ステップ７６の処理を繰り返し実行する。このような処理を所定個数分だけ繰り返し行い、所定個数の識別規則を生成した段階で、１つのＦｅｒｎ型識別器の学習処理が終了となる。１つのＦｅｒｎ型識別器の識別規則の所定個数は、基本的には任意の数でよく、用いる学習データの数等に応じて予め定めておけばよく、本実施形態では１０個としている。
【０１１８】
１つのＦｅｒｎ型識別器の学習処理終了後、Ｆｅｒｎデータ出力ステップ７７において、学習が終了したＦｅｒｎ型識別器のデータを外部に出力する処理を行う。この処理は、図８のＦｅｒｎデータ出力部８７により実行され、以下の２つの情報の記録を行う。１つは、識別規則決定部８４で決定された所定個数分の識別規則である。もう１つは、当該Ｆｅｒｎ型識別器の全識別規則による結果の組み合わせそれぞれにおけるラベル確率分布である。ここで出力する、全識別規則による結果の組み合わせそれぞれにおけるラベル確率分布について、具体的に、本実施形態の場合について説明する。
【０１１９】
本実施形態では、１０個の識別規則を用い、各識別規則について｛０、１｝の２通りの結果が存在するので、結果の全組み合わせは、２１０＝１０２４通りの組み合わせが存在する。そのため、この１０２４通り全てについて、ラベル確率分布を記録することになる。このラベル確率分布は、Ｆｅｒｎ型識別器の学習時に、データ識別ステップ７５において求めた、各学習データに対する識別結果に基づいて生成する。
【０１２０】
つまり、例えば、１０個の識別規則による識別結果が全て０であるものに対応するラベル確率分布は、全学習データの内、全ての識別結果が０であった学習データのラベル情報に基づいて生成する。ここで、ある識別結果の組み合わせＳ（Ｓは１０個の｛０、１｝を並べた１０ｂｉｔの値）であった、各ラベルに対応する学習データの個数が、以下の表に示すような結果になっていたとする。
【０１２１】
【表１】
2015090559.tif 000004
【０１２２】
この場合、この識別結果の組み合わせＳに対するラベル確率分布は、Ａ：３／２４＝０．１２５、Ｂ：０、・・・、Ｊ：１／２４＝０．４１６６・・、特定の人物以外：０．６２５、というように生成される。このような、ラベルごとの確率であるラベル確率分布を、識別結果の全組み合わせについて生成し、それを外部に出力することになる。
【０１２３】
尚、Ｆｅｒｎ型識別器では、対応する学習データが１つも存在しないような識別結果の組み合わせも存在する。そのような場合、本実施形態では、そのような識別結果の組み合わせに対応するラベル確率分布として、特定の人物以外の確率を１とし、それ以外が０であるようなラベル確率分布を生成する。本実施形態では、対応する学習データが１つも存在しない場合、このようなラベル確率分布とするが、これに限るものではなく、例えば、全ての確率を０とするようなラベル確率分布でも構わない。
【０１２４】
Ｆｅｒｎデータ出力ステップ７７での処理終了後、予め定めた所定数のＦｅｒｎ型識別器の学習が行われるまで、Ｆｅｒｎ学習開始ステップ７２に戻り、Ｆｅｒｎ型識別器の学習処理を繰り返し実行する。複数のＦｅｒｎ型識別器の学習処理を行い、所定数のＦｅｒｎ型識別器が生成された段階、つまり、所定数学習判定７２ｅにおいて、所定数のＦｅｒｎ型識別器が生成されたと判断された段階で、本実施形態の複数の識別器の学習方法の処理が終了となる。Ｆｅｒｎ型識別器の数は、これも十分に多いことが望ましい。Ｆｅｒｎ型識別器は、一般的に、他の実施形態で用いた決定木と比較して、性能が低い可能性があるので、本実施形態では、１０００個のＦｅｒｎ型識別器の学習を行い、１０００個分のＦｅｒｎ型識別器のデータが外部に出力されることになる。
【０１２５】
上記説明した方法によりＦｅｒｎ型識別器を学習することにより、第１の実施形態と同様に、異なるラベルの学習データをより良く分割する基準で識別規則を決定する。このため、上記文献のＦｅｒｎ型識別器等と比較して、１つ１つのＦｅｒｎ型識別器の性能を高めることができる。また、学習データの組み合わせそれぞれに対してデータ組合せ選択確率を用意しておき、選択された回数に応じて、データ組合せ選択確率を小さくすることで、多様に学習データが選択される。そのため、第１の実施形態と同様に、選択された学習データを用いて決定した識別規則に、高い多様性を持たせることができ、その結果、複数のＦｅｒｎ型識別器の多様性も実現することができる。このように、本実施形態の識別器学習方法でも、他の実施形態と同様、複数の識別器の多様性を確保しながら、１つ１つの識別器の性能も高めることができる。そのため、この複数の識別器を用いたパターン識別方法において、高い識別性能を実現できる可能性が高くなる。
【０１２６】
この複数のＦｅｒｎ型識別器を用いて、人物の顔画像を入力し、その画像内の人物が、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別するパターン識別方法の例を示す。本実施形態のパターン識別方法の基本的な処理は、第１の実施形態におけるパターン識別方法と同様であり、第１の実施形態のパターン識別方法における、決定木を用いた識別、及び、その結果の統合部分のみが異なるので、その部分のみ説明する。
【０１２７】
第１の実施形態におけるパターン識別方法では、決定木を用いた識別を行ったが、本実施形態におけるパターン識別方法では、Ｆｅｒｎ型識別器を用いた識別を行う。具体的には、入力データに対して、Ｆｅｒｎ型識別器の各識別規則による識別結果を求め、その識別結果の組み合わせに基づき、対応するラベル確率分布を、当該Ｆｅｒｎ型識別器の結果として求める。この処理を、複数のＦｅｒｎ型識別器それぞれについて実施し、全Ｆｅｒｎ型識別器の結果を求める。
【０１２８】
第１の実施形態では、各決定木の結果は１つのラベルであり、その投票により結果を統合し、それを最終的な出力とした。本実施形態では、ラベル確率分布が１つのＦｅｒｎ型識別器の結果であるので、そのラベル確率分布に応じた重み付き投票により結果を統合する。つまり、単純に、Ｆｅｒｎ型識別器の結果として得られたラベル確率分布の各ラベルの確率値を、それぞれのラベルに投票し、最も高い値となったラベルを、最終的な結果とする。このような処理により、上記説明した複数のＦｅｒｎ型識別器を用い、入力された顔画像データが、予め定めた複数の特定の人物のいずれであるか、または、そのいずれでもないかを識別することが可能になる。
【０１２９】
このように、本発明の識別器学習方法は、決定木に限らず、本実施形態のＦｅｒｎ型識別器のような多段型識別器等、その他の識別器にも適用可能である。また、他の実施形態のように、１つの学習データに対して、１つの選択確率を設定するような方法だけでなく、本実施形態のように、データの組み合わせに対して選択確率を設定することも可能である。
【０１３０】
＜その他の実施形態＞
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、コンピュータ読み取り可能なプログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１３１】
更に、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【０１３２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図１】
2015090559.tif 000005
【図２】
2015090559.tif 000006
【図３】
2015090559.tif 000007
【図４】
2015090559.tif 000008
【図５】
2015090559.tif 000009
【図６】
2015090559.tif 000010
【図７】
2015090559.tif 000011
【図８】
2015090559.tif 000012
【図９】
2015090559.tif 000013
【図１０】
2015090559.tif 000014
【図１１】
2015090559.tif 000015
【図１２】
2015090559.tif 000016