(57)【要約】【課題】顔画像データを、撮影条件または被写体の性状により分類することが可能なデータ分類装置を提供する。【解決手段】マップ生成部２１が、マップの各プロトタイプの属するクラスタを仮に決定し、各プロトタイプを順次、クラスタに分類する対象となるべき注目プロトタイプとして選択し、各クラスタごとに、各クラスタに属している少なくとも１つのプロトタイプと、注目プロトタイプとの間の測度を演算し、演算された測度に基づき、前記注目プロトタイプの属するべきクラスタを必要に応じて変更する。これらの処理を繰り返すことにより、人物の顔が撮影された顔画像データを、その撮影状態、被写体の性状で定義されるクラスタに分割された自己組織化マップを得ることができる。【選択図】　　　　図２
2004062482.tif 000002
【特許請求の範囲】
【請求項１】
人物の顔が撮影された顔画像データを分類する顔画像データ分類装置であって、
複数の顔画像データを用いて、任意の顔画像データと、撮影条件と被写体の性状の少なくとも一つで定義される複数のクラスタとの対応関係を学習形成する学習形成手段と、
学習形成された前記対応関係を用いて、顔画像データが属するクラスタを決定するクラスタ決定手段と、
を有することを特徴とする顔画像データ分類装置。
【請求項２】
請求項１に記載のデータ分類装置であって、
各クラスタに属する顔画像データから、共通の撮影条件で撮影された顔画像データ、または共通の被写体の性状をもつ顔画像データを抽出する抽出手段を有することを特徴とする顔画像データ分類装置。
【請求項３】
請求項１又は２に記載のデータ分類装置であって、
前記学習形成手段は、
（ａ）各プロトタイプの属するクラスタを仮に決定し、
（ｂ）各プロトタイプを順次、クラスタに分類する対象となるべき注目プロトタイプとして選択し、
（ｃ）各クラスタごとに、各クラスタに属している少なくとも１つのプロトタイプと、前記注目プロトタイプとの間の測度を演算し、
（ｄ）前記演算された測度に基づき、前記注目プロトタイプの属するべきクラスタを必要に応じて変更し、
前記（ｂ）、（ｃ）、（ｄ）の処理を、各プロトタイプの属するべきクラスタの変更がなくなるまで繰返して行って、各プロトタイプをクラスタに分類することを特徴とするデータ分類装置。
【請求項４】
請求項１又は２に記載のデータ分類装置であって、
前記学習形成手段は、
（ａ）前記各顔画像データについて、その属するクラスタを決定し、
（ｂ）各顔画像データを順次、クラスタに分類する対象となるべき注目顔画像データとして選択し、
（ｃ）各クラスタごとに、当該クラスタに属している少なくとも１つの顔画像データと、クラスタに分類する対象となった注目顔画像データとの間で所定の相関値を演算し、
（ｄ）前記相関値に基づき、前記注目顔画像データの属するべきクラスタを決定し、
前記（ｂ）、（ｃ）、（ｄ）の処理を、各顔画像データの属するべきクラスタの変更がなくなるまで繰返して行って、各顔画像データをクラスタに分類することを特徴とするデータ分類装置。
【請求項５】
人物の顔が撮影された顔画像データを分類する顔画像データ分類方法であって、
複数の顔画像データを用いて、任意の顔画像データと、撮影条件と被写体の性状の少なくとも一つで定義される複数のクラスタとの対応関係を学習形成する学習形成ステップと、
学習形成された前記対応関係を用いて、顔画像データが属するクラスタを決定するクラスタ決定ステップと、
を含むことを特徴とする顔画像データ分類方法。
【請求項６】
請求項５に記載のデータ分類方法であって、
各クラスタに属する顔画像データから、共通の撮影条件で撮影された顔画像データ、または共通の被写体の性状をもつ顔画像データを抽出する抽出ステップを含むことを特徴とする顔画像データ分類方法。
【請求項７】
請求項５又は６に記載のデータ分類方法であって、
前記学習形成ステップでは、
（ａ）各プロトタイプの属するクラスタを仮に決定し、
（ｂ）各プロトタイプを順次、クラスタに分類する対象となるべき注目プロトタイプとして選択し、
（ｃ）各クラスタごとに、各クラスタに属している少なくとも１つのプロトタイプと、前記注目プロトタイプとの間の測度を演算し、
（ｄ）前記演算された測度に基づき、前記注目プロトタイプの属するべきクラスタを必要に応じて変更し、
前記（ｂ）、（ｃ）、（ｄ）の処理を、各プロトタイプの属するべきクラスタの変更がなくなるまで繰返して行って、各プロトタイプをクラスタに分類することを特徴とするデータ分類方法。
【請求項８】
請求項５又は６に記載のデータ分類方法であって、
前記学習形成ステップでは、
（ａ）前記各顔画像データについて、その属するクラスタを決定し、
（ｂ）各顔画像データを順次、クラスタに分類する対象となるべき注目顔画像データとして選択し、
（ｃ）各クラスタごとに、当該クラスタに属している少なくとも１つの顔画像データと、クラスタに分類する対象となった注目顔画像データとの間で所定の相関値を演算し、
（ｄ）前記相関値に基づき、前記注目顔画像データの属するべきクラスタを決定し、
前記（ｂ）、（ｃ）、（ｄ）の処理を、各顔画像データの属するべきクラスタの変更がなくなるまで繰返して行って、各顔画像データをクラスタに分類することを特徴とするデータ分類方法。
【請求項９】
人物の顔が撮影された顔画像データを分類する顔画像データ分類プログラムであって、
複数の顔画像データを用いて、任意の顔画像データと、撮影条件と被写体の性状の少なくとも一つで定義される複数のクラスタとの対応関係を学習形成する学習形成工程と、
学習形成された前記対応関係を用いて、顔画像データが属するクラスタを決定するクラスタ決定工程と、
を含むことを特徴とする顔画像データ分類プログラム。
【請求項１０】
請求項９に記載のデータ分類プログラムであって、
各クラスタに属する顔画像データから、共通の撮影条件で撮影された顔画像データ、または共通の被写体の性状をもつ顔画像データを抽出する抽出工程を含むことを特徴とする顔画像データ分類プログラム。
【請求項１１】
請求項９又は１０に記載のデータ分類プログラムであって、
前記学習形成工程では、
（ａ）各プロトタイプの属するクラスタを仮に決定し、
（ｂ）各プロトタイプを順次、クラスタに分類する対象となるべき注目プロトタイプとして選択し、
（ｃ）各クラスタごとに、各クラスタに属している少なくとも１つのプロトタイプと、前記注目プロトタイプとの間の測度を演算し、
（ｄ）前記演算された測度に基づき、前記注目プロトタイプの属するべきクラスタを必要に応じて変更し、
前記（ｂ）、（ｃ）、（ｄ）の処理を、各プロトタイプの属するべきクラスタの変更がなくなるまで繰返して行って、各プロトタイプをクラスタに分類することを特徴とするデータ分類プログラム。
【請求項１２】
請求項９又は１０に記載のデータ分類プログラムであって、
前記学習形成工程では、
（ａ）前記各顔画像データについて、その属するクラスタを決定し、
（ｂ）各顔画像データを順次、クラスタに分類する対象となるべき注目顔画像データとして選択し、
（ｃ）各クラスタごとに、当該クラスタに属している少なくとも１つの顔画像データと、クラスタに分類する対象となった注目顔画像データとの間で所定の相関値を演算し、
（ｄ）前記相関値に基づき、前記注目顔画像データの属するべきクラスタを決定し、
前記（ｂ）、（ｃ）、（ｄ）の処理を、各顔画像データの属するべきクラスタの変更がなくなるまで繰返して行って、各顔画像データをクラスタに分類することを特徴とするデータ分類プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、自己組織化マップを用いて、データの分類を行うデータ分類装置、データ分類方法、及びそのプログラムに関する。
【０００２】
【従来の技術】
近年、情報機器の普及・発展に伴い、人々が受取る情報量はますます増加している。このような背景の下では、必要な情報を選びやすくするため、人間の介入なしに情報を認識し分類する技術の開発が要望されている。
【０００３】
こうした要望に対し、分類対象のデータについて比較して類似性のあるもの同士を一群のデータとして分類する、クラスタリング方法が考えられている。ここで類似性の判断に際しては、最尤度推定法、Ｋ−ｍｅａｎｓ法、併合法、ＭＤＳ（Ｍｕｌｔｉ−Ｄｉｍｅｎｓｉｏｎａｌ　Ｓｃａｌｉｎｇ）法などが知られている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来のクラスタリング方法は、パラメータの設定等、人間の介入が不可欠で、自律的にクラスタリング処理を実行できないという問題点があった。
【０００５】
また、従来のクラスタリング方法では、人物の顔が撮影された顔画像データを分類する場合、撮影時のフラッシュの有無や日射の方向などの撮影条件、人物の表情などの被写体の性状を細かく分類可能なマップを得ることができなかった。
【０００６】
［関連技術］
一方、比較的自律的にクラスタリング処理を行うための方法として、パターンデータの１つとしての入力画像データを格子空間マップ上で分類整理するものがある。この分類整理のためには、例えば自己組織化特徴マッピング（以下、ＳＯＭと略す）（Ｔ．　コホーネン　Ｓｅｌｆ−ｏｒｇａｎｉｚｉｎｇ　ｆｏｒｍａｔｉｏｎ　ｏｆ　ｔｏｐｏｌｏｇｉｃａｌｌｙ　ｃｏｒｒｅｃｔ　ｆｅａｔｕｒｅ　ｍａｐｓ．　Ｂｉｏｌｏｇｉｃａｌ　Ｃｙｂｅｒｎｅｔｉｃｓ，　１９８２）を利用している。このＳＯＭは、データが入力される入力層と、格子空間マップの競合層とからなる２階層のネットワークで、入力はある重みづけがされ、各格子に入力される。入力各成分についての重みづけをまとめたものを重みベクトルと称する。
【０００７】
当初、重みベクトルは次の方法で初期化される。すなわち、上記コホーネンの文献に示されるように、学習の対象となる複数の入力ベクトル（ここでの特徴量セットに相当する）の中からプロトタイプ数と同数の入力ベクトルＩをランダムに選び出し、各格子の重みベクトルの初期化を行う。また、同じく、コホーネンによれば、各重みベクトルに乱数で初期値を設定することとしても構わない。
【０００８】
次に、重みベクトルの学習を行う。この学習課程においては、学習用の特徴量セットが生成され、当該学習用特徴量セットと格子空間上の各格子の重みベクトルとの所定測度（例えばユークリッド距離）が演算される。そして各格子のうち、関係が最大（測度が最小）となる格子（勝利ノード）を見いだす。そして格子空間上、その格子（勝利ノード）に対し近傍に存在する各格子について、学習用特徴量セットとの測度が小さくなるように、その重みベクトルを補正する。このような重みベクトルの補正を行いつつ学習を繰り返すことで、互いに類似する特徴量からなる特徴量セットに対し、最小測度を有する格子が特定の領域に集中するようになり、データの分類に適用可能な状態となる。ここで、重みベクトルを補正する対象となる格子を選ぶにあたり、勝利ノードからのマップ上の距離を用いる。また、補正量は、勝利ノードｃからの距離に応じて変化させることが好ましく、補正量の大きさも変更可能としておくことが好ましい。一般的には、次の（１）式のように近隣のノードの重みベクトルＩに近づくよう重みベクトルｗを補正する。
【０００９】
【数１】
2004062482.tif 000003
なお、
【数２】
2004062482.tif 000004
ここで、α（ｔ）は、補正量の大きさを支配する量で、学習係数と呼ばれる。また、σ（ｔ）は、重みベクトルを修正する範囲の変化を決定する関数であり、近傍関数と呼ばれる。これらは時間ｔに対し、ともに単調減少する関数である。勝者ノードを中心にマップ上のノード間距離Ｒｍａｘが、
【数３】
2004062482.tif 000005
の範囲に属する格子について（１）式による補正が行われるが、学習の繰り返しの中で、Ｒｍａｘはσ（ｔ）によって減少する。近傍関数σ（ｔ）としては、トライアングル型、レクトアングル型（四角）、メキシカンハット型等の関数を用いる。この近傍関数σ（ｔ）の選択によっても、学習結果に影響があることが知られている。なお、ｔは、「時刻」であり、特徴量セットが入力されるごとにインクリメントされる。また、｜｜ｒｃ−ｒｊ｜｜は、勝利ノードと、重みベクトルの補正対象ノードの間のノルム（距離）である。
【００１０】
しかし、上記技術をそのまま適用したのでは、直ちに自律的なデータ分類を行うことはできない。自律的なデータ分類を実現するには、まず、学習後の格子空間マップが適切なものであるかの判断が必要である。すなわち、（１）最適な格子空間マップを獲得する方法が必要である。また、当該学習後の格子空間マップを利用してデータ分類を行うときには、分類の基準となる境界線を上記格子空間上に形成し、分類対象として与えられたデータについての特徴量セットに対して最小測度を有する格子が、どの境界線内に属するか（この境界線で区切られた格子空間上の領域を以下、クラスタと呼ぶ）に基づき、当該データを分類することが適切である。すなわち、（２）クラスタの境界を決定する方法も求められる。
【００１１】
このうち、（１）最適な格子空間マップを獲得する方法として、コホーネンは、平均量子化誤差が最小となるマップを選択するという方法を提案している。つまり、学習条件を互いに異ならせて形成した複数の格子空間マップのうち、平均量子化誤差が最小のものを選択し、これを近似的に最適な格子空間マップとするのである。この方法によると、入力される特徴量セットの空間のトポロジーがマップのトポロジーに反映されない。いわば、トポロジーの保存度が低い。これは、クラスタリングの方法によっては誤分類に結びつくこともある。
【００１２】
トポロジーの保存に配慮したものとして、トポロジー関数（ｔｏｐｏｇｒａｐｈｉｃ　ｆｕｎｃｔｉｏｎ）と呼ばれる所定の指標を学習中にモニタし、これにより学習条件を制御して適切なマップを形成する技術（Ａｕｔｏ−ＳＯＭ法）も開発されている。しかし、トポロジー関数の演算自体が負荷の高い処理であるため、学習時間が長くなる問題点がある。
【００１３】
次に（２）クラスタの境界を自律的に決定する方法としては、Ｕ−Ｍａｔｒｉｘ（Ｕｎｉｆｉｅｄ　Ｄｉｓｔａｎｃｅ　Ｍａｔｒｉｘ　Ｍｅｔｈｏｄｓ）法と呼ばれる方法や、ポテンシャル法と呼ばれる方法が研究されている。ここで、Ｕ−Ｍａｔｒｉｘ法については、Ａ．Ｕｌｔｓｃｈ　ｅｔ．　ａｌ．，　”Ｋｎｏｗｌｅｄｇｅ　Ｅｘｔｒａｃｔｉｏｎ　ｆｒｏｍ　Ａｒｔｉｆｉｃｉａｌ　Ｎｅｕｒａｌ　Ｎｅｔｗｏｒｋｓ　ａｎｄ　Ａｐｐｌｉｃａｔｉｏｎｓ”，Ｐｒｏｃ．Ｔｒａｎｓｐｕｔｅｒ　Ａｎｗｅｎｄｅｒ　Ｔｒｅｆｆｅｎ／　Ｗｏｒｌｄ　Ｔｒａｎｓｐｕｔｅｒ　Ｃｏｎｇｒｅｓｓ　ＴＡＴ／ＷＴＣ　９３　Ａａｃｈｅｎ，　Ｓｐｒｉｎｇｅｒ　１９９３に詳しく開示されている。Ｕ−Ｍａｔｒｉｘでは、マップ上で隣接する２つの格子間の距離を次のように定義する。すなわち、当該２つの格子の各重みベクトルの成分毎の差について、その絶対値を総和したものや、当該差の二乗平均などを距離として定義するのである。すると、類似性の高い特徴量セットにそれぞれ強く結合（重みベクトルが特徴量セットに近い値を持つもの、このようなものを以下、「特徴量セットにプロトタイピングされている」と表現する）している隣接格子間、つまり、類似性の高い２つの特徴量セットのそれぞれにプロトタイピングされている隣接格子間の上記距離は小さくなり、類似性の低い２つの特徴量セットのそれぞれにプロトタイピングされている隣接格子間の距離は大きくなる。そこでこの距離の大きさを高さとした３次元的な面を考えると、互いに類似する特徴量セットにプロトタイピングされた格子間に対応する面の高さは低くなり「谷」を形成するのに対し、互いに異なる特徴量セットにプロトタイピングされた格子間に対応する面の高さは高くなり「山」を形成する。従ってこの「山」に沿って境界線を形成すれば、類似性の高い特徴量セットにプロトタイピングされている格子の集合（クラスタ）を規定できる。Ｕ−Ｍａｔｒｉｘは、いわば、自己組織化マップでは入力空間での距離が保存されない点を補強したものであるということができる。
【００１４】
しかしＵ−Ｍａｔｒｉｘは、「山」と「谷」との高低差が明瞭であれば境界を規定できるものの、現実の情報処理では「山」と「谷」との高低差は期待されるほど明瞭にならず、３次元面の高さはゆるやかに変化することも多い。この場合には、人為的に境界線を設定する必要があって、必ずしも自律的に境界が決定できるわけではない。
【００１５】
一方のポテンシャル法は、Ｄ．Ｃｏｏｍａｎｓ，　Ｄ．Ｌ．Ｍａｓｓａｒｔ，　Ａｎａｌ．Ｃｈｅｍ．Ａｃｔａ．，　５−３，　２２５−２３９（１９８１）に開示されているもので、事前に定めたポテンシャル関数を用いて、入力データに対する関数の値を重ね合わせて入力データを近似的に表現する母集団の確率密度関数を推定し、重なりあいの少ない部分を境界として決定するというものである。ポテンシャル関数としてはガウシアン型の関数とすることが多い。具体的には、Ｎ個の入力ベクトルからなる入力データ群があるとき、それぞれＫ次元の大きさを持つとするとｌ番目の入力データが他の入力データから受ける平均的なポテンシャル（ｌ番目入力が全体の入力集合に対する寄与率）Ψｌを次の（２），（３）式によって定義する。
【００１６】
【数４】
2004062482.tif 000006
【００１７】
尚、ｘｋｌはｌ番目入力のｋ番目の成分を意味する。また、αはスムージングパラメータで分類されるクラスタの数に影響を与える。従って、ポテンシャル法では、その分布形状を仮定する分布関数の最適化や、各種パラメータの最適化が入力ベクトル集合ごとに求められ、要するに分類対象となるデータの特性について事前に知識が必要であるうえ、人為的調整が不可欠となる。また、このポテンシャル法では、入力データから得られる特徴量セットが高次元になると、それについて適切な確率密度分布を求めるにはサンプルが多数なければならず、少数の格子からなるマップに対しての適用が困難であるという問題点がある。つまり、ポテンシャル法についても、必ずしも自律的に境界が決定できるわけではない。
【００１８】
これらの問題点を解決するため、例えば特開平７−２３４８５４号公報、特開平８−３６５５７号公報、「自己組織化特徴マップ上のデータ密度ヒストグラムを用いた教師無しクラスタ分類法」，電子情報通信学会論文誌Ｄ−ＩＩ　Ｖｏｌ．Ｊ７９−ＤＩＩＮｏ．７　ｐｐ．１２８０−１２９０，　１９９６年７月などに開示された技術が研究されている。しかしながら、どの技術においても、入力されるデータの構成自体や、マッピングの結果において、分類に使いたい特徴が十分な距離をあけて各格子にプロトタイピングされることを前提としており、画像データの分類において例えば見られるような、分類してほしい特徴毎の分布形状の差異や重なり、その特徴にプロトタイピングされている格子のマップ上の位置の重心間の距離にばらつきがある場合などでは、マップ上でクラスタの境界が複雑に入り組むため、適切なクラスタリングができなくなる。
【００１９】
さらに、関連技術においては、マップ上の格子の数については研究の過程で経験的に決定するだけで、実際の用途に適合した適切な格子の数を決定するといったことは配慮されていなかった。しかしながら、適切な数よりも格子の数が少ない場合、クラスタ境界部の格子と、別のクラスタに属するべき特徴量セットが強く結合されてしまう場合があり、この場合は分類誤りが多くなる。この点について、格子の数を追加／削減して平均量子化誤差が所定量を下回るようにするという技術が、Ｊａｍｅｓ　Ｓ．　Ｋｉｒｋ　ｅｔ．　ａｌ．　”Ａ　Ｓｅｌｆ−Ｏｒｇａｎｉｚｅｄ　Ｍａｐ　ｗｉｔｈ　Ｄｙｎａｍｉｃ　Ａｒｃｈｉｔｅｃｔｕｒｅ　ｆｏｒ　Ｅｆｆｉｃｉｅｎｔ　Ｃｏｌｏｒ　Ｑｕａｎｔｉｚａｔｉｏｎ”，　ＩＪＣＮＮ’０１，　２１２８−２１３２に開示されている。尤も、この技術では、入力データに対応する特徴量セットの空間でのデータ分布を写像した格子が追加等されるだけなので、データ分類において重要となる、クラスタ境界付近の格子の数を増大させるというようなことには配慮されていない。そこで例えば当初から格子の数を多くしておくこととしてもよいが、この場合、計算時間が長くなって実用的でない。
【００２０】
また、プロトタイプを用いることなく、入力されるデータ（パターンデータ）を直接、クラスタに分類する場合も同様に、パターンデータの集合の確率的性質に基づき、パターンデータの集合をクラスタに分類する方法がある。なお、ここで確率的性質は、例えばベイズ学習により確率分布パラメータを逐次的に推定する方法や、ポテンシャル関数を用いる方法が知られている。しかし、この場合に確率的性質を推定するにあたっては、入力されるパターンデータについて、予めクラスタリングのヒントとなる情報（例えばラベル）が付与されている必要がある。これは、当該ヒントとなる情報ごとに、パターンデータを仮に分類した上で、各分類での確率分布を推定する演算を要するからである。
【００２１】
そこで、個々のパターンデータ間の類似度を所定の関数により演算し、パターンデータ空間の構造を分析し、その分析結果としての構造に従ってクラスタリングを行うこともできる。この種の方法には、Ｋ−ｍｅａｎｓ法や分割併合法（いわゆるＩＳＯＤＡＴＡ法）として知られている方法があるが、いずれも人為的にパラメータを設定する必要がある。すなわち、Ｋ−ｍｅａｎｓ法では、パターンデータ群をいくつのクラスタに分割したいかを表す最終クラスタ数を設定しておかなければならない。また、クラスタ中心値と呼ばれるパラメータの設定に、クラスタリングの結果が敏感に依存してしまい、設定する値に応じてクラスタリング結果の良否が決ってしまう問題点もある。
【００２２】
一方、分割併合法においても、クラスタ除去閾値、クラスタ分割閾値、クラスタ併合閾値といった数多くのパラメータ設定が必要であり、クラスタリング結果は、これらの値の設定に大きく依存している。
【００２３】
本発明は、上記実情に鑑みて為されたもので、自律的にクラスタリングを行うことのできるデータ分類装置を提供することを目的とする。
【００２４】
また、顔画像データを、撮影条件または被写体の性状により分類することが可能なデータ分類装置を提供することを目的とする。
【００２５】
【課題を解決するための手段】
上記従来例の問題点を解決するための本発明に係る顔画像データ分類装置は、複数の顔画像データを用いて、任意の顔画像データと、撮影条件と被写体の性状の少なくとも一つで定義される複数のクラスタとの対応関係を学習形成する学習形成手段と、学習形成された前記対応関係を用いて、顔画像データが属するクラスタを決定するクラスタ決定手段と、を有することを特徴とする。
【００２６】
また、本発明に係る顔画像データ分類方法は、複数の顔画像データを用いて、任意の顔画像データと、撮影条件と被写体の性状の少なくとも一つで定義される複数のクラスタとの対応関係を学習形成する学習形成ステップと、学習形成された前記対応関係を用いて、顔画像データが属するクラスタを決定するクラスタ決定ステップと、を含む方法である。
【００２７】
また、本発明に係る顔画像データ分類プログラムは、複数の顔画像データを用いて、任意の顔画像データと、撮影条件と被写体の性状の少なくとも一つで定義される複数のクラスタとの対応関係を学習形成する学習形成工程と、学習形成された前記対応関係を用いて、顔画像データが属するクラスタを決定するクラスタ決定工程と、を含むプログラムである。
【００２８】
上記顔画像データ分類装置、方法又はプログラムにおいて、各クラスタに属する顔画像データから、共通の撮影条件で撮影された顔画像データ、または共通の被写体の性状をもつ顔画像データを抽出することが好ましい。
【００２９】
顔画像データとクラスタとの対応関係の学習形成は、（ａ）各プロトタイプの属するクラスタを仮に決定し、（ｂ）各プロトタイプを順次、クラスタに分類する対象となるべき注目プロトタイプとして選択し、（ｃ）各クラスタごとに、各クラスタに属している少なくとも１つのプロトタイプと、前記注目プロトタイプとの間の測度を演算し、（ｄ）前記演算された測度に基づき、前記注目プロトタイプの属するべきクラスタを必要に応じて変更し、前記（ｂ）、（ｃ）、（ｄ）の処理を、各プロトタイプの属するべきクラスタの変更がなくなるまで繰返して行って、各プロトタイプをクラスタに分類することが好ましい。
【００３０】
または、顔画像データとクラスタとの対応関係の学習形成は、（ａ）前記各顔画像データについて、その属するクラスタを決定し、（ｂ）各顔画像データを順次、クラスタに分類する対象となるべき注目顔画像データとして選択し、（ｃ）各クラスタごとに、当該クラスタに属している少なくとも１つの顔画像データと、クラスタに分類する対象となった注目顔画像データとの間で所定の相関値を演算し、（ｄ）前記相関値に基づき、前記注目顔画像データの属するべきクラスタを決定し、前記（ｂ）、（ｃ）、（ｄ）の処理を、各顔画像データの属するべきクラスタの変更がなくなるまで繰返して行って、各顔画像データをクラスタに分類することが好ましい。
【００３１】
【発明の実施の形態】
本発明の実施の形態について図面を参照しながら説明する。以下に説明するデータ分類装置は、人物の顔が撮影された顔画像データを、その撮影条件と被写体の少なくとも一つで定義されるクラスタに分類するデータ分類装置である。
【００３２】
本実施の形態に係るデータ分類装置１は、図１に示すように、ＣＰＵ１１と、ＲＡＭ１２と、ＲＯＭ１３と、ハードディスク１４と、画像入力用インタフェース１５と、ディスプレイ１６と、外部記憶部１７とから基本的に構成され、これら各部はバス接続されている。すなわち、本実施の形態のデータ分類装置１は、一般的なパーソナルコンピュータによってソフトウエア的に実現される。このソフトウエアは、一般的にはＣＤＲＯＭやＤＶＤＲＯＭなどの記録媒体に格納された状態で頒布され、またはネットワークを介してダウンロードされる（ネットワークに対する接続インタフェースは図示を省略した）。そして、当該記録媒体によって頒布される場合には外部記憶部１７にて読み出されて、所定のインストール処理により、ハードディスク１４に格納される。また、ネットワークを介してダウンロードされた場合も同様に、ハードディスク１４にインストールされる。
【００３３】
ＣＰＵ１１は、このハードディスク１４に格納されているプログラムに従って動作し、基本的にはＷｉｎｄｏｗｓ（登録商標）等のオペレーティングシステムの管理下で本実施の形態のデータ分類装置１を具現化するデータ分類プログラム等を実行する。
【００３４】
ＲＡＭ１２は、ＣＰＵ１１のワークメモリとして利用されるもので、ＣＰＵ１１の処理中に各種パラメータやデータを記憶するために用いられる。ＲＯＭ１３は、主としてオペレーティングシステムの読み込みの処理など、データ分類装置１が起動する際に必要となるプログラムが格納されている。この起動用プログラムの内容は広く知られているので、その説明を省略する。
【００３５】
ハードディスク１４は、オペレーティングシステムの本体や、種々のプログラムがインストールされている。また、本実施の形態においては、このハードディスク１４には、既に説明したように、データ分類プログラムがインストールされている。尚、ここではハードディスク内に格納されている場合について例示したが、例えばＳＲＡＭ（Ｓｔａｔｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）や、ＥＥＰＲＯＭ等の不揮発性メモリにインストールしても構わないし、図１に示したように、ＣＰＵ１１と同一筐体に含まなくても、図示しないネットワークインタフェースを介して接続される別のコンピュータ内にインストールされていてもよい。
【００３６】
画像入力用インタフェース１５には、スキャナ等の画像入力装置が接続され、当該画像入力装置から画像データの入力を受けて、ＣＰＵ１１に出力する。ディスプレイ１６は、ＣＰＵ１１からの指示に従って、画像を表示する。
【００３７】
［実施の形態１］
ここで第１の実施の形態として、具体的に入力されるパターンデータ（顔画像データ）について、各パターンデータを代表するプロトタイプを生成し、そのプロトタイプをマップ上で分類した上で、当該マップ上で分類されたプロトタイプ群を、入力される各パターンデータの分類に供するものについて、第１の実施の形態として説明する。本実施の形態のデータ分類プログラムは、マップ生成部２１と、クラスタ境界決定部２２とを含み、マップ生成部２１は、ＳＯＭ学習部３１と、マップ選択部３２と、学習条件設定部３３と、プロトタイプ追加部３４とを備える。ここでは、これらの各部が、それぞれソフトウエアモジュールとして実現されることとしているが、ハードウエア的に論理回路によって構成されても構わない。このＣＰＵ１１における処理については後に詳しく述べる。
【００３８】
［処理の詳細］
ここでＣＰＵ１１が実行するデータ分類プログラムの詳細について、図２を参照しながら説明する。マップ生成部２１は、例えば既に説明した自己組織化マッピング（ＳＯＭ）により、プロトタイプマップを形成し、形成したプロトタイプマップの情報をクラスタ境界決定部２２に出力する。クラスタ境界決定部２２は、マップ生成部２１から入力されるプロトタイプマップに対し、各プロトタイプをクラスタに分類する。以下、これらの各部についての動作を分けて詳しく述べる。
【００３９】
［マップ生成］
まず、マップ生成部２１のＳＯＭ学習部３１は、学習条件設定部３３から入力される複数（例えばＭセット（Ｍは２以上の整数））の学習条件のセットの各々に対応するＭ個のプロトタイプマップ候補を生成する。各マップ候補は、各プロトタイプを特定する情報に対して、そのプロトタイプと特徴量セットの成分の各々との関係重みの情報を関連づけたものである。本実施の形態においては、マップを構成するプロトタイプは必ずしも格子点状に配列されている必要はない（この場合、プロトタイプを特定する情報にプロトタイプのマップ上の座標情報が含まれてもよい）が、以下の説明では簡単のため、格子点状に配列されているものとして説明する。
【００４０】
マップ選択部３２は、各マップ候補を量子化誤差（ＱＥ）と、トポロジカル・プロダクト（以下、ＴＰと呼ぶ）とを演算して、これらに基づき、クラスタ決定に適したマップを一つ、チャンピオンマップとして選択する。ここで、量子化誤差は、次の（４）式で演算される。
【００４１】
【数５】
2004062482.tif 000007
【００４２】
（４）式において、Ｐはマップ学習に用いる特徴量セットの数（つまり学習パターン数）であり、Ｅｊは、ｊ番目の特徴量セットベクトルであり、Ｗｃは、ｊ番目の特徴量セットベクトルに対しての勝利ノードの重みベクトルである。なお、この量子化誤差については、コホーネンらにより広く知られたものであるので、その詳細な説明を省略する。
【００４３】
また、ＴＰは、次の（５）式で演算される。
【００４４】
【数６】
2004062482.tif 000008
【００４５】
このＴＰは、入力層での空間（特徴量セットの空間）と、競合層での空間（プロトタイプの空間）との相対的位置関係が一致するほど小さい値となるもので、バウアー（Ｂａｕｅｒ）らによって、Ｂａｕｅｒ，　Ｈ．Ｕ．，　ａｎｄ　Ｐａｗｅｌｚｉｋ，　Ｋ．Ｒ．，（１９９２），　”Ｑｕａｎｔｉｆｙｉｎｇ　ｔｈｅ　ｎｅｉｇｈｂｏｒｈｏｏｄ　ｐｒｅｓｅｒｖａｔｉｏｎ　ｏｆ　ｓｅｌｆ−ｏｒｇａｎｉｚｉｎｇ　ｆｅａｔｕｒｅ　ｍａｐｓ．”　ＩＥＥＥ　Ｔｒａｎｓ．　Ｎｅｕｒａｌ　Ｎｅｔｗｏｒｋｓ，　３，　５７０−５７９などの論文で提案されているものである。
【００４６】
マップ選択部３２は、これらＱＥとＴＰとの値を用いて、次の（６）式にて演算されるスコア値が小さいものをチャンピオンマップＭＡＰｃとして選択し、その選択結果を出力する。
【００４７】
【数７】
2004062482.tif 000009
つまり、
【数８】
2004062482.tif 000010
である。
【００４８】
また、マップ選択部３２は、当初は、このチャンピオンマップの選択結果を後段のクラスタ境界決定部２２には出力せず、少なくとも一度、学習条件設定部３３に出力する。そして事前に設定された回数だけ繰返してチャンピオンマップの選択を行った後に、その時点での選択結果をクラスタ境界決定部２２に出力する。
【００４９】
学習条件設定部３３は、学習条件として例えば学習用の入力データの数（学習の回数）Ｎと、近傍距離σ（ｔ）と、学習係数α（ｔ）とのセットをＭセット出力する。この学習条件設定部３３は、当初はこれらの値や関数（Ｎ，σ（ｔ），α（ｔ））をランダムなパラメータに基づいて決定するか、事前に定められたセット（プリセット）として決定する。また、この学習条件設定部３３は、マップ選択部３２からチャンピオンマップの選択結果の入力を受けて、当該選択結果のマップ候補に対応する学習条件のセットを取出す。そして、この取出した学習条件のセットを基準として、さらにＭ個の学習条件のセットを生成して設定し、ＳＯＭ学習部３１に出力する。
【００５０】
なお、プロトタイプ追加部３４は、クラスタ境界決定がされた後に、プロトタイプマップの所定の位置にプロトタイプを追加してさらに学習を行わせるものであるが、クラスタ境界決定部２２の動作に関係するので、後に詳しく説明する。
【００５１】
ここで、マップ生成部２１における学習の動作について説明する。当初、学習条件設定部３３がランダムな、又は事前に定められたパラメータを用いて学習条件のセットを複数（例えばＭセット）生成して出力する。ＳＯＭ学習部３１は、学習条件設定部３３が出力する各学習条件のセットに応じてＭ個のプロトタイプマップの候補（マップ候補）を生成し、マップ選択部３２に出力する。マップ選択部３２は、これらのマップ候補の中から、量子化誤差とＴＰとの双方を用いて学習状態がクラスタリングに対して好適となっているマップ（チャンピオンマップ）を選択し、その選択結果を学習条件設定部３３に出力する。すると、学習条件設定部３３が当該チャンピオンマップの生成に用いられた学習条件に基づき、新たな学習条件のセットを複数生成し、再度ＳＯＭ学習部３１に出力して複数のマップ候補を生成させる。
【００５２】
このようにして、マップ候補の生成、チャンピオンマップの選択、学習条件の再設定という動作を所定の回数だけ繰返し、その結果得られたチャンピオンマップがクラスタの境界設定対象マップとしてクラスタ境界決定部２２に出力される。
【００５３】
［クラスタ境界決定］
クラスタ境界決定部２２は、マップ生成部２１から入力される境界設定対象となったマップについて、図３に示すような処理を実行する。具体的にクラスタ境界決定部２２は、入力されたマップに含まれるプロトタイプの各々に固有の番号を割当てて、仮のクラスタリング結果を生成する（Ｓ１）。この番号は、所定の順序に「１」から順に「Ｐ」（プロトタイプの数をＰとする）まで番号を振ったものでよい。この番号が仮のクラスタ番号となる。すなわち、当初は、各プロトタイプが互いに異なるクラスタに分類される。
【００５４】
次に、クラスタ境界決定部２２は、プロトタイプペアを抽出し、抽出したプロトタイプペアに係る各プロトタイプの重みベクトル間の類似度（Ｃｄ）を計算する（Ｓ２）。この計算の結果は、類似度テーブルとしてＲＡＭ１２に格納される。ここでプロトタイプペアというのは、各プロトタイプを順次注目プロトタイプとして選択し、注目プロトタイプと、他のプロトタイプとのすべての組み合せを採ったもの、すなわち２つのプロトタイプの組み合せ（ｃｏｍｂｉｎａｔｉｏｎ）のすべてをいっている。またここで類似度とは、各重みベクトルの成分ごとの差の二乗和（距離）を用いる。
【００５５】
この類似度をクラス（所定の数値範囲ごと）に分類して、各クラスごとの出現頻度の情報を生成し（図４）、この出現頻度が最大となった距離をＣｄとし、所定の「０」に近い微小量δ（例えばδ＝０．０１）を決定しておく。あるいは、出現頻度が最大となる距離より短くかつ頻度が減少から増加に転じる最大の距離をＣｄとしてもよい。
【００５６】
次に、クラスタ番号の更新処理を開始する（Ｓ３）。このクラスタ番号更新処理は、図５に示すようなものであるが、ここでは簡単のため、クラスタの境界を決定しようとするプロトタイプマップとして３×３の格子マップがあるとして説明する。当初プロトタイプマップに対しては処理Ｓ１にて、３×３＝９個のプロトタイプにそれぞれ図６（ａ）に示すような「１」〜「９」の固有の番号を割当ててある。
【００５７】
クラスタ境界決定部２２は、各プロトタイプを順次、注目プロトタイプとして選択する（Ｓ１１）。そして、当該注目プロトタイプに隣接する（仮にクラスタリングされたプロトタイプマップ上で所定距離内の）プロトタイプの属しているクラスタを選択し（Ｓ１２）、当該選択したクラスタに属するプロトタイプを抽出する（Ｓ１３）。
【００５８】
図６の例では例えば左下側の「１」を注目プロトタイプとして、それに隣接するクラスタの番号「１」，「４」，「５」，「２」のそれぞれについて、各クラスタに属するプロトタイプを選択することになる。そして、クラスタ境界決定部２２は、処理Ｓ１２にて選択したクラスタに属する各プロトタイプと注目プロトタイプとの測度としての相関量を次の（７）式（類似度の低下に伴い、所定微分値より急速に「０」に漸近する関数）を用いて演算し（Ｓ１４）、この相関量に基づき注目プロトタイプの属するクラスタを決定する。
【００５９】
【数９】
2004062482.tif 000011
【００６０】
ここで、ｙ＊は、注目プロトタイプの重みベクトルであり、ｙｉは、ｉ番目のプロトタイプの重みベクトルである。また、χは、プロトタイプベクトルの集合であり、χ（ｃ）は、クラスタ番号ｃのプロトタイプベクトルの集合である。また、αの決定に用いられるＣｄ，δは、処理Ｓ２にて得たものであり、Ｌｎは、自然対数を表す。すなわち、（７）式は、注目プロトタイプと、クラスタ番号ｃに属するプロトタイプとの距離の総和を全体平均で除したもので、注目プロトタイプと、クラスタｃの相関量を表し、クラスタｃの中に注目プロトタイプとの重みベクトル間の相関量の大きいプロトタイプが多いほど（７）式は、大きい値となる。
【００６１】
クラスタ境界決定部２２は、（７）式が最も大きい値となるクラスタの番号を、注目プロトタイプのクラスタ番号として仮決定し（Ｓ１５）、この仮決定の内容を記憶する（Ｓ１６）。
【００６２】
ここで図６（ａ）に示したクラスタ「１」に分類されたプロトタイプが注目プロトタイプである場合、隣接プロトタイプとして「１」に属するプロトタイプについては、当初は他のプロトタイプがないので、演算されず、「４」に属するプロトタイプ、「５」に属するプロトタイプ、「２」に属するプロトタイプとの間の相関量が演算され、例えば「４」に属するプロトタイプとの距離が最も短い場合、注目プロトタイプの属するクラスタを「１」から「４」に変更する（図６（ｂ））。ここで隣接するプロトタイプだけでなく、全プロトタイプとの演算を行ってもよい。そのようにすると、プロトタイプマップ上は距離があるが、重みベクトル間の距離は小さいというようなプロトタイプを同一クラスタにまとめることができる。しかしながら、このようにすると、計算時間が大きくなるので、ここでは事前にＴＰを用いた評価を加味してプロトタイプマップ上の距離と、重みベクトル間の距離とが大きく違わないようなマップを選択したのである。
【００６３】
そしてクラスタ境界決定部２２は、すべてのプロトタイプを注目プロトタイプとして選択したか否かを調べ（Ｓ１７）、まだ選択されていないプロトタイプがあれば（Ｎｏならば）、処理Ｓ１１に戻って処理を続ける。また、処理Ｓ１７において、すべてのプロトタイプが選択されているならば（Ｙｅｓならば）、クラスタ番号更新の処理を終了する。
【００６４】
クラスタ境界決定部２２は、図３に示す処理に戻り、このようにして仮決定した内容と、更新処理前のクラスタ番号とを比較し、クラスタ番号に変化があったか（クラスタ番号がまだ収束していないか）を調べ（Ｓ４）、変化があった場合には（Ｙｅｓならば）、当該仮決定した内容を新たに仮のクラスタリング結果とし、処理Ｓ３を繰返して実行する。また、処理Ｓ４にて変化がなければ（Ｎｏならば）、すなわち収束したならば、現在のクラスタリング結果を出力する。
【００６５】
なお、上述の処理Ｓ２でのＣｄの決定方法に代えて、各注目プロトタイプについて、他のプロトタイプとの類似度の統計量を演算し、各注目プロトタイプごとの統計量に対して、さらに所定の統計処理を行った結果を用いて、Ｃｄを決定してもよい。この場合、Ｃｄは、次の（９）式で決められる。
【００６６】
【数１０】
2004062482.tif 000012
【００６７】
ここで、ｋは、クラスタ決定の対象となるプロトタイプが現在属するクラスタに隣接するクラスタであり、Ｃ１は、「１」より大きな正の定数である。この（９）式によりＣｄを決めることで、隣接クラスタの中で、少なくとも１つのクラスタに属するすべてのプロトタイプが、クラスタ決定の対象となるプロトタイプに影響する。また、個々のプロトタイプごとに適したＣｄを適応的に決定することが可能となる。
【００６８】
［プロトタイプの追加］
なお、本実施形態では、クラスタ境界決定部２２がクラスタリング結果を直ちに最終的な結果として出力せず、少なくとも１度、マップ生成部２１のプロトタイプ追加部３４に戻して出力する処理を行ってもいる。この処理を行うか否かは、設計者またはユーザの任意である。プロトタイプ追加部３４は、クラスタリング結果を参照して、クラスタの境界部に新規プロトタイプを生成して、再度学習を行わせるべく、ＳＯＭ学習部３１に当該新規プロトタイプ追加後のプロトタイプマップを出力する。この際の学習は、微調整を目的とするものなので、例えばクラスタリング前の学習ではα（ｔ）＝０．２、σ（ｔ）＝２．０と初期設定して、７００パターンを１００００回学習するよう学習条件パラメータが設定されていた場合でも、新規プロトタイプ追加後の学習では、α（ｔ）＝０．００２、σ（ｔ）＝１．０、パターンの繰返し入力が１００といった学習条件パラメータで構わない。
【００６９】
具体的に、図６（ａ）のように当初仮にクラスタリングされていたプロトタイプマップに対して、クラスタ境界決定部２２が、クラスタ図６（ｃ）のようなクラスタリング結果を出力したとすると、この「４」と「６」との境界に新規プロトタイプを形成する（図６（ｄ））。ここで図６（ｄ）では、理解のために先のクラスタリング結果を括弧つきで示したが、このようにプロトタイプを追加した後は、先のクラスタリング結果は無意味なものである。
【００７０】
なお、新規プロトタイプは、必ずしもクラスタ境界に沿って全体的に追加しなければならないものではなく、その少なくとも一部に追加するものであっても構わない。この場合において、追加する部分としては、学習入力ベクトル（パターン）に対して最も距離の短い、最近接プロトタイプとなった回数（パターンの数）に基づいて決定することが好ましい。ＳＯＭ学習やＶＱ学習といった学習方法では、Ｕ−Ｍａｔｒｉｘ法が利用するように、クラスタの中心部ではプロトタイプの密度が大きくなり、クラスタ境界部ではプロトタイプの密度が小さくなる。従って、学習入力パターンに対して最近接プロトタイプとなる機会が少なく、所定の閾値以下の場合、つまりプロトタイプの密度が所定のしきい値よりも低い部分は、クラスタ境界近傍のプロトタイプとみなすことができる。そこで、当該部分に新規プロトタイプを追加するようにすれば、境界全体に沿って追加することがなくなり、再度の学習や、再度のクラスタリングにかかる効率を向上できる。
【００７１】
また、追加する新規プロトタイプの重みベクトルを決定するには、追加しようとする位置（例えば境界部分）近傍の既存プロトタイプの重みベクトルに対する所定の統計演算結果（例えば算術平均値）により重みベクトルを決定する。
【００７２】
［動作］
次に、本実施の形態に係るデータ分類装置１の動作について説明する。まず、学習条件設定部３３が複数の学習条件パラメータのセットＳ１，Ｓ２，…ＳＭを出力して、ＳＯＭ学習部３１において当該学習条件パラメータのセットの数に対応した（Ｍ個の）プロトタイプマップが生成される。ＳＯＭ学習部３１は、外部から入力される学習画像データに基づき所定の特徴量ベクトルを生成し、各プロトタイプマップの各プロトタイプと当該特徴量ベクトルの各成分との結合重みを調整する。ＳＯＭ学習部３１のこの動作は、コホーネンらの記述により広く知られたものである。本実施形態において、学習画像データとは、人物の顔が撮影された顔画像データであり、この顔画像データとしては、フラッシュ光を受けたもの／受けないもの、横から／上から光（日射）を受けたものなどの撮影条件が異なる顔画像データや、口を開けたもの／閉じたもの、眼鏡をかけたもの／かけないもの、笑った／怒った表情のもの、正面を向いたもの／うつむいたものなど被写体の性状が異なる複数の顔画像データである。
【００７３】
ＳＯＭ学習部３１により生成された複数のプロトタイプマップは、マップ選択部３２に出力され、マップ選択部３２が各マップに含まれるプロトタイプに関する演算から、量子化誤差（ＱＥ）及びトポロジカル・プロダクト（ＴＰ）に基づき、量子化誤差が低く、ＴＰにより示される入力層での空間（特徴量セットの空間）と、競合層での空間（プロトタイプの空間）との相対的位置関係の一致度、すなわち、重みベクトル間の距離と、競合層での距離との一致度が高いマップを選択する。これにより、類似する画像データに反応するプロトタイプ間のマップ上の距離が小さくなる。
【００７４】
そして選択されたマップの学習に用いられた学習条件パラメータのセットに基づき、学習条件設定部３３が再度学習条件パラメータのセットを複数生成してＳＯＭ学習部３１に出力し、複数のマップが再度生成され、その中から、ＱＥ及びＴＰに基づくマップ選択が行われる。こうして、学習条件パラメータが再帰的に調整され、マップの学習形成が再帰的に行われる。
【００７５】
このような再帰的学習の結果得られたマップについて、クラスタ境界決定部２２が、マップ上のプロトタイプを順次選択し、その選択したプロトタイプとそれに隣接するプロトタイプとの間の相関量が大きいもの同士を一つのクラスタにまとめる。つまり、プロトタイプのマップ上での隣接関係及び相関量によって各プロトタイプの属するクラスタが決定される。そして、この処理を繰返し実行して、クラスタリングの結果が収束したところで、そのクラスタリングの結果をプロトタイプ追加部３４に出力する。
【００７６】
プロトタイプ追加部３４がクラスタの境界部分に新規プロトタイプを追加したマップを生成して、このマップをＳＯＭ学習部３１に出力し、所定の学習条件を設定して再度学習を行わせる。この際は学習条件パラメータのセットは１つだけでよく、従ってマップは一つだけで構わない。そこで、この一つのマップの学習処理が完了すると、当該マップを（マップ選択部３２を介することなく）そのままクラスタ境界決定部２２に出力し、クラスタ境界決定部２２が改めてクラスタリングの処理を行う。
【００７７】
このクラスタリングの処理を行い、複数の顔画像データを用いて学習形成した場合のマップの例を図９に示す。図９では、各プロトタイプ５１にはクラスタの番号が付されている。ここで、番号１は図１０（ａ）に示すような「フラッシュ有り、且つ、口を閉じた顔」の顔画像データが属するクラスタの番号であり、番号２は図１０（ｂ）に示すような「フラッシュ有り、且つ、口を開けた顔」の顔画像データが属するクラスタの番号であり、番号３は図１０（ｃ）に示すような「フラッシュ無し、且つ、口を閉じた顔」の顔画像データが属するクラスタの番号であり、番号４は図１０（ｄ）に示すような「フラッシュ無し、且つ、口を開けた顔」の顔画像データが属するクラスタの番号である。各クラスタは、「フラッシュの有無」、「口の開閉」という２つの条件で定義されている。このように、本実施形態では、一つ以上の撮影条件または被写体の性状で定義される複数のクラスタに分割された自己組織化マップが学習形成される。なお、このマップは説明の便宜のための簡単な一例であり、別の例では、他の様々な撮影条件、被写体の性状ごとにクラスタリングされ、クラスタの番号が付されたマップが学習形成される。
【００７８】
そしてこのクラスタリングの処理の結果として得られたマップが分類処理に供される。すなわち、分類対象として入力された画像データに対して特徴量ベクトルを生成し、この特徴量ベクトルに対して最も結合重みの大きいプロトタイプ（入力された画像データに反応するプロトタイプ）を見いだす。そして当該プロトタイプの属するクラスタの番号が、当該画像データの分類番号となる。これにより、互いに類似する画像データに対して特定の分類番号が決定され、互いに異なる画像データに対しては、異なる分類番号が決定される。例えば、「フラッシュ有り、且つ、口を開けた顔」の顔画像データが入力されると、この顔画像データの特徴量ベクトルが図９に示されるマップの番号２が付されたプロトタイプと結合重みが大きいことが判別される。この結果、入力された顔画像データには分類番号２が決定される。そして、この自己組織化マップが出力され、その結果は、ディスプレイ１６に表示され、また図示しないプリンタ等により印字される。
【００７９】
本実施形態のデータ分類装置では、このように形成された自己組織化マップを用いて顔画像データを分類処理することにより、撮影条件や被写体の性状の細かな条件で、顔画像データを分類することができる効果がある。例えば、フラッシュ光を受けたもの／受けないもの、横から／上から光（日射）を受けたものなどの撮影条件が異なる顔画像データや、口を開けたもの／閉じたもの、眼鏡をかけたもの／かけないもの、笑った／怒った／困った表情のもの、正面を向いたもの／うつむいたもの／上を向いたものなど被写体の性状に応じて、顔画像データを分類することができる効果がある。なお、撮影条件、被写体の性状は、ここに挙げたものに限られない。
【００８０】
また、本実施形態では、例えば「フラッシュ有り、且つ、口を開けた顔」に分類された顔画像データと、「フラッシュ有り、且つ、口を閉じた顔」に分類された顔画像データは、「フラッシュ有り」という点では共通しているが、別の分類番号が決定されてしまう。これを回避するために、データ分類装置に、次に説明する共通の撮影条件の顔画像データまたは共通の被写体の性状の顔画像データを抽出する機能を追加してもよい。
【００８１】
ハードディスクには１４には、前もって、１つの撮影条件または１つの被写体の性状に対応して、その特徴を含むクラスタの分類番号が関連付けられた対応表を記憶されている。図９に示すマップの対応表を例として説明すると、「口を開けた顔」という被写体の性状に対して分類番号２，４が設定されており、「フラッシュ有り」という撮影条件に対して分類番号１，２が設定されている。この分類番号の設定は、人が各分類番号に属する顔画像データを目視で確認して、共通の特徴を持つ分類番号を選別して設定してもよいし、他の方法で行ってもよい。
【００８２】
ＣＰＵ１１は、複数の顔画像データに対して自己組織化マップを用いて分類処理を行った後、それらの顔画像データをその分類番号と関連付けてハードディスク１４に記憶する。ここで、ユーザからの１つの撮影条件または被写体の性状の画像データを要求する指令があると、ＣＰＵ１１はその撮影条件または被写体の性状に対応したクラスタの分類番号を対応表から読み出し、それらの分類番号が関連付けられた顔画像データを全て抽出する。そして、これらの抽出された顔画像データをユーザに提供する。このようにして共通の特徴をもつ顔画像データが抽出される。例えば、「フラッシュ有り」の顔画像データを要求する指令があると、ＣＰＵ１１は対応表から分類番号１，２を読み出し、これらの分類番号が関連付けられた図１０（ａ），（ｂ）を抽出する。
【００８３】
また、共通の特徴をもつ顔画像データは次のようにして抽出してもよい。この方法では、まず、上述したマップの学習形成方法で複数の自己組織化マップを用意する。これらの複数のマップは、顔画像データに対する分類条件が異なる。例えば、第１のマップは分類条件が細かく、図９に示すマップのようにフラッシュの有無および口の開閉が判別されるが、第２のマップは分類条件が粗く、フラッシュの有無のみが判別され、口の開閉は判別されない。このような分類条件の異なるマップは、マップの学習形成時に特徴量やパラメータを異なるものとしたり、マップの投影する座標系を変えたり、またはクラスタの階層構造を得る手段であるメルティングアルゴリズム（Ｋｅｎｎｅｔｈ　Ｒｏｓｅ　ｅｔ　ａｌ．，”Ｓｔａｔｉｓｔｉｃａｌ　Ｍｅｃｈａｎｉｃｓａｎｄ　Ｐｈａｓｅ　Ｔｒａｎｓｉｔｉｏｎ　ｉｎ　Ｃｌｕｓｔｅｒｉｎｇ”，Ｐｈｙｓ．Ｒｅｖ．Ｌｅｔｔ．６５，ｐｐ．９４５−９４８（１９９０））を用いればよい。
【００８４】
ＣＰＵ１１は、まず分類条件の細かい第１の自己組織化マップを用いて顔画像データの分類を行う。例えば、第１の自己組織化マップでは、「フラッシュ有り、且つ、口を開けた顔」の顔画像データと、「フラッシュ有り、且つ、口を閉じた顔」の顔画像データに対して、互いに異なるクラスタの分類番号が決定される。ＣＰＵ１１は、その後、ユーザの指示があると、さらに、分類条件の異なる第２の自己組織化マップを用いて顔画像データの分類を行う。これにより上記２つの顔画像データは、「フラッシュ有り」の顔画像データとして同じクラスタの分類番号が決定される。このような処理を行うことにより、同種の顔画像データが抽出され、ユーザに提供される。この再分類された顔画像データは、第１の自己組織化マップで決定された分類番号と、第２の自己組織化マップで決定された分類番号とともに、ハードディスク１４に保存すればよい。
【００８５】
なお、ここまでの説明では、学習条件パラメータを再帰的に調整して学習し、プロトタイプ間の相関度を用いてクラスタを決定し、クラスタ決定後にプロトタイプを追加して再学習、再度のクラスタ決定を行うこととしているが、プロトタイプを追加する技術については、既に用いられているプロトタイプマップの学習形成と、クラスタリング技術に独立して適用してもよい。この場合、プロトタイプマップの学習には、ＳＯＭだけでなく、ＶＱ学習なども用いてもよい。
【００８６】
［第２の実施の形態］
次に、本発明の第２の実施形態に係るデータ分類装置を説明する。第２の実施形態では、第１の実施形態と、顔画像データとクラスタとの対応関係を学習形成する方法が異なる。第２の実施形態では、パターンデータを直接的にクラスタリングしている。本実施の形態のデータ分類プログラムは、図１１に示すように、クラスタ決定部４１と、分類部４２とを含んで構成されている。
【００８７】
クラスタ決定部４１は、クラスタリングのための学習を行うときに動作し、後に詳しく説明する、クラスタリング処理を実行してクラスタリング結果（いわゆるクラスタフィルタ）を生成して、分類部４２に出力する。分類部４２は、実際の分類処理を実行するときに動作し、入力されたクラスタリング結果を記憶して（例えばハードディスク１４に格納して）、入力されるパターンデータについて、当該クラスタフィルタを参照しながら、どのクラスタに分類されるべきデータであるかを決定し、その決定の結果を分類結果として出力する。この分類部４２の処理の詳細についても後に詳しく述べる。
【００８８】
［処理の詳細］
ここでＣＰＵ１１が実行するデータ分類プログラムにおけるクラスタ決定部４１及び分類部４２の処理の詳細について説明する。まず、クラスタ決定部４１の処理の詳細について説明する。ＣＰＵ１１は、クラスタ決定部４１の処理として、図１２に示す処理が行われ、入力されたＮ個のパターンデータをＲＡＭ１２又はハードディスク１４に記憶し、入力された順番に、「１」から「Ｎ」までの番号をクラスタ番号として仮に割当てる（Ｓ２１）。また、各パターンデータについて、その性状を特徴づける量をパターンベクトルとして演算する。ＣＰＵ１１は、これら（仮の）クラスタ番号と、パターンベクトルとを、それぞれ対応するパターンデータに関連づけて格納しておく。当該パターンベクトル間の類似度を所定の関数によって演算する（Ｓ２２）。ここで類似度の演算に用いられる関数は、例えばパターンベクトル間の測度、具体的にはパターンベクトル間の成分ごとの差の二乗和を用いる。すなわち、複数のパターンデータから２つのパターンデータの組み合せを選択し、各組み合せに係る２つのパターンデータの２つのパターンベクトル間の測度を類似度として演算し、当該類似度を類似度テーブルとしてＲＡＭ１２に記憶する。
【００８９】
またここで（８）式により、後に相関値の演算に用いるパラメータ、αを演算しておく。具体的には、処理Ｓ２２で演算した類似度をクラス（所定数値範囲）ごとに分類して各クラスごとの出現頻度の情報を生成して、当該出現頻度が最大となった距離をＣｄとし、「０」に近い、所定の微小量δを決定して、αを演算する。この処理は、既に説明したプロトタイプ間の類似度を演算して、αを決定する処理と同様のものである。
【００９０】
なお、この場合にも、Ｃｄについては、当該出現頻度が最大となった距離の代わりに、各注目パターンデータについて、他のパターンデータとの類似度の統計量を演算し、各注目パターンデータごとの統計量に対して、さらに所定の統計処理（各統計量の最小値）を行った結果を用いて、すなわち（９）式にてＣｄを決定してもよい。この（９）式によりＣｄを決めることで、隣接クラスタの中で、少なくとも１つのクラスタに属するすべてのパターンデータが、クラスタ決定の対象となるパターンデータに影響する。また、個々のパターンデータごとに適したＣｄを適応的に決定することが可能となる。
【００９１】
そしてＣＰＵ１１は、クラスタ番号の更新処理を開始する（Ｓ２３）。このクラスタ番号の更新処理は、図１３に示すようなものであり、後に詳しく説明する。クラスタ番号の更新処理が完了すると、ＣＰＵ１１は、処理Ｓ２３の前後で、クラスタ番号に変化がないか（クラスタリングの収束が完了したか）を調べ（Ｓ２４）、変化があった場合（収束していない場合；Ｎｏの場合）には、処理Ｓ２３を繰返して実行する。また、処理Ｓ２４において、変化がなかった場合（クラスタリングが収束した場合、Ｙｅｓの場合）、処理を完了して、当該クラスタリングの結果（パターンデータとクラスタ番号とを関連づけた情報を含むもの）をハードディスク１４に格納する。
【００９２】
ここで、処理Ｓ２３のクラスタ番号の更新処理について図１３を参照しながら説明する。ＣＰＵ１１は、まず各パターンデータを順次、注目パターンデータとして選択する（Ｓ３１）。この選択の順序は、例えば処理Ｓ２１において仮のクラスタ番号を割当てた順序（例えば入力順）であってもよい。そしてＣＰＵ１１は、注目パターンデータに対して現在割当てられているクラスタ番号を取得し、その近傍クラスタを決定する（Ｓ３２）。ここで近傍クラスタ番号は、例えば類似度テーブルを参照しながら、注目パターンデータとの間の類似度の高い順に複数のパターンデータを取り出し、当該取り出した複数のパターンデータの各々に割当てられているクラスタ番号とする。なお、取り出すパターンデータの個数は、予め「８個」等と決めておいてもよいし、近傍クラスタとして決定されたクラスタ番号が複数（例えば「４個」等の所定個数）となるまでと決めておいてもよい。また、ここで近傍クラスタには、注目パターンデータ自身が属しているクラスタが含まれる。
【００９３】
ＣＰＵ１１は、近傍クラスタとして決定されたクラスタの番号を用いて、各近傍クラスタに現在属しているパターンデータを、決定された近傍クラスタごとに取り出し（Ｓ３３）、近傍クラスタごとに取出されたパターンデータと、注目パターンデータとの間の相関量を（７）式（類似度の低下に伴い、所定微分値より急速に「０」に漸近する関数）によって演算する（Ｓ３４）。すなわち、ｙ＊を注目パターンデータのパターンベクトルとし、取出されたパターンデータのうち、ｉ番目のパターンデータのパターンベクトルをｙｉとし、（７）式により、クラスタ番号ｃに属するパターンデータのパターンベクトルと、注目パターンデータのパターンベクトルとの間の距離（類似度）の総和を全体平均で除した値を演算する。そしてこの値が、注目パターンデータと、クラスタ番号ｃに属するパターンデータ群との間の相関量とするのである。
【００９４】
ＣＰＵ１１は、近傍クラスタごとに、そのクラスタに属するパターンデータ群と、注目パターンデータとの相関量を演算しておき、近傍クラスタのうち、相関量が最大となったものを選びだす（Ｓ３５）。そして注目パターンデータと当該選び出した近傍クラスタの番号とを関連づけて、仮の更新結果としてＲＡＭ１２に記憶しておく（Ｓ３６）。
【００９５】
そしてＣＰＵ１１は、すべてのパターンデータを注目パターンデータとして選択したか否かを調べ（Ｓ３７）、すべてのパターンデータを選択していなければ（未選択のものがあれば、Ｎｏであれば）、処理Ｓ３１に戻って処理を続ける。また、処理Ｓ３７において、未選択のものがなければ（Ｙｅｓであれば）、ＲＡＭ１２に記憶された仮の更新結果に基づいて、各パターンデータに現在関連づけられているクラスタ番号を更新し（Ｓ３８）、クラスタ番号の更新処理を完了する。ここで、一旦仮の更新結果として保持した上で、最後に更新を実行しているのは、ある注目パターンデータに対する更新処理により、後で注目パターンデータとして選択されるパターンデータのクラスタ番号の決定に影響を及ぼさないようにしたものである。
【００９６】
このように本実施の形態では、ＣＰＵ１１は、パターンデータごとに定義される、パターンベクトル間の距離により、クラスタ間の隣接関係を規定しながら、各クラスタに属しているパターンデータ群と、クラスタリング（分類学習）の対象となっている注目パターンデータとの相関量に基づいて、より相関性の高いクラスタに注目パターンデータを分類するという処理をクラスタリングの結果に変化がなくなるまで繰返して行う。なお、ここでは、近傍クラスタを決定した上で、当該近傍クラスタとの関係において相関量の演算を行うようにしているが、ＣＰＵ１１の処理速度が十分であれば、すべてのクラスタについて総当り的に、上記相関量の演算を行うようにしても構わない。この場合、処理Ｓ３２、Ｓ３３は、必ずしも必要でなくなり、処理Ｓ３４において、すべてのクラスタについて、各クラスタに属しているパターンデータ群と、注目パターンデータとの相関量を演算することとなる。
【００９７】
次に、こうして生成されたクラスタリングの結果を用いて、実際にデータの分類を行う処理（分類部４２の処理）について説明する。分類の対象となるパターンデータ（対象パターンデータ）が入力されると、ＣＰＵ１１は、当該対象パターンデータについてのパターンベクトル（対象ベクトル）を演算により求め、ハードディスク１４に格納されているクラスタリングの結果（例えばパターンデータと、そのパターンデータについてのパターンベクトルと、クラスタ番号とを関連づけたもの）を参照して、クラスタリングの結果に含まれている各パターンベクトル（基準ベクトル）と、対象パターンベクトルとの距離を演算する。そして、その距離が最も短い基準ベクトル（対象パターンベクトルに対して、最も類似度の高い基準ベクトル）を見いだして、当該見いだした基準ベクトルに関連づけられたクラスタ番号を分類結果として出力する。
【００９８】
上述した本実施形態においても、画像データとクラスタとの対応関係が学習形成されるため、この対応関係を用いて顔画像データを分類処理することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るデータ分類装置の構成ブロック図である。
【図２】本発明の第１の実施の形態に係るデータ分類装置の構成ブロック図である。
【図３】クラスタリングの処理を表すフローチャート図である。
【図４】プロトタイプ間の距離のヒストグラムの検出例を表す説明図である。
【図５】クラスタリングの処理におけるクラスタ更新処理の一例を表すフローチャート図である。
【図６】クラスタリングの処理の動作例を表す説明図である。
【図７】プロトタイプマップのクラスタリング結果の一例を表す説明図である。
【図８】プロトタイプの追加状態とその後のクラスタリング結果の一例を表す説明図である。
【図９】顔画像データの自己組織化マップのクラスタリング結果の一例を表す説明図である。
【図１０】複数種類の顔画像データの例を示す説明図である。
【図１１】本発明の第２の実施の形態に係るデータ分類装置の構成ブロック図である。
【図１２】クラスタリングの処理を表すフローチャート図である。
【図１３】クラスタリングの処理を表すフローチャート図である。
【符号の説明】
１　データ分類装置、１１　ＣＰＵ、１２　ＲＡＭ、１３　ＲＯＭ、１４　ハードディスク、１５　画像入力用インタフェース、１６　ディスプレイ、１７　外部記憶部、２１　マップ生成部、２２　クラスタ境界決定部、３１　ＳＯＭ学習部、３２　マップ選択部、３３　学習条件設定部、３４　プロトタイプ追加部、４１　クラスタ決定部、４２　分類部、５０　マップ、５１　プロトタイプ。
【図１】
2004062482.tif 000013
【図２】
2004062482.tif 000014
【図３】
2004062482.tif 000015
【図４】
2004062482.tif 000016
【図５】
2004062482.tif 000017
【図６】
2004062482.tif 000018
【図７】
2004062482.tif 000019
【図８】
2004062482.tif 000020
【図９】
2004062482.tif 000021
【図１０】
2004062482.tif 000022
【図１１】
2004062482.tif 000023
【図１２】
2004062482.tif 000024
【図１３】
2004062482.tif 000025