(57)【要約】【課題】ニューラルガス及びＳＯＭによる自己組織化の機能を組み合わせることで、幾何学的な概念を用いて、形状の分類及び識別を行う多様体集合自己組織化装置等を提供する。【解決手段】多様体を有する１つまたは複数の入力データにおける各多様体のデータベクトルと、自己組織化マップを作成するニューラルガスから自己組織化マップを作成するＳＯＭにおける当該ニューラルガスを構成するガスモジュールデータの各データベクトルとの距離を算出する距離算出手段と、当該入力データと最短の距離にある前記ニューラルガスが作成した自己組織化マップを勝者マップとして決定する勝者マップ決定手段と、勝者マップに基づいて当該入力データを学習してクラスマップを推定するクラスマップ推定手段と、前記各ニューラルガスが学習する量に基づいて前記ガスモジュールを更新するデータ更新手段と、を備える。【選択図】図１
2008250886.tif 000002
【特許請求の範囲】
【請求項１】
多様体を有する１つまたは複数の入力データにおける各多様体のデータベクトルと、自己組織化マップを作成するニューラルガスから自己組織化マップを作成するＳＯＭにおける当該ニューラルガスを構成するガスモジュールデータの各データベクトルとの距離を算出する距離算出手段と、
前記距離算出手段が算出した距離に基づいて当該入力データと最短の距離にある前記ニューラルガスが作成した自己組織化マップを勝者マップとして決定する勝者マップ決定手段と、
前記勝者マップ決定手段が決定した勝者マップに基づいて当該入力データを学習することで当該入力データの分布を近似してクラスマップとして推定するクラスマップ推定手段と、
前記クラスマップ推定手段が推定したクラスマップに基づいて前記各ニューラルガスが学習する量を決定し、学習する量に基づいて前記ガスモジュールを更新するデータ更新手段と、を備える多様体自己組織化装置。
【請求項２】
前記クラスマップ推定手段は前記勝者マップに含まれるガスモジュールの各データベクトルと前記入力データにおける各多様体のデータベクトルとの距離の順位を算出し正規化してクラスマップを推定することを特徴とする、請求項１記載の多様体自己組織化装置。
【請求項３】
前記入力データにおける各多様体のデータを所定の数に基づいて点に分解して当該点の位置情報を座標値として保持するドット分解手段を備える、請求項１ないし２記載の多様体自己組織化装置。
【請求項４】
前記ドット分解手段は前記入力データにおける各多様体のデータの座標値の最大値及び最小値に基づいて所定の領域を決定し、当該領域において当該入力データを点に分解することを特徴とする、請求項３記載の多様体自己組織化装置。
【請求項５】
多様体を有する１つまたは複数の入力データにおける各多様体のデータベクトルと、自己組織化マップを作成するニューラルガスから自己組織化マップを作成するＳＯＭにおける当該ニューラルガスを構成するガスモジュールデータの各データベクトルとの距離を算出する距離算出ステップと、
前記距離算出ステップで算出された距離に基づいて当該入力データと最短の距離にある前記ニューラルガスが作成した自己組織化マップを勝者マップとして決定する勝者マップ決定ステップと、
前記勝者マップ決定ステップで決定された勝者マップに基づいて当該入力データを学習することで当該入力データの分布を近似してクラスマップとして推定するクラスマップ推定ステップと、
前記クラスマップ推定ステップが推定したクラスマップに基づいて前記各ニューラルガスが学習する量を決定し、学習する量に基づいて前記ガスモジュールを更新するデータ更新ステップと、を含む多様体自己組織化方法。
【請求項６】
コンピュータを、多様体を有する１つまたは複数の入力データにおける各多様体のデータベクトルと、自己組織化マップを作成するニューラルガスから自己組織化マップを作成するＳＯＭにおける当該ニューラルガスを構成するガスモジュールデータの各データベクトルとの距離を算出する距離算出手段と、
前記距離算出手段が算出した距離に基づいて当該入力データと最短の距離にある前記ニューラルガスが作成した自己組織化マップを勝者マップとして決定する勝者マップ決定手段と、
前記勝者マップ決定手段が決定した勝者マップに基づいて当該入力データを学習することで当該入力データの分布を近似してクラスマップとして推定するクラスマップ推定手段と、
前記クラスマップ推定手段が推定したクラスマップに基づいて前記各ニューラルガスが学習する量を決定し、学習する量に基づいて前記ガスモジュールを更新するデータ更新手段として機能させるための多様体自己組織化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データの集合から自己組織化マップを作成して形状を認識、識別する多様体自己組織化装置、多様体自己組織化方法、及び、多様体自己組織化プログラムに関する。
【背景技術】
【０００２】
非特許文献１に示すKohonenの自己組織化写像（Self-Organizing  Map：ＳＯＭ）は、一連のデータベクトル群が与えられたときに、それらが何か未知の隠れ変数を引数とする連続写像によって生成されたものとみなし、与えられたデータ群を最も自然に表現する写像を自己組織的に発見する学習アルゴリズムである。ＳＯＭは、高次元のベクトルデータを互いの類似関係（位相）をできる限り保存しつつ低次元（通常は２次元）の空間（ここでは底空間と呼ぶ）へ写像する。すなわちデータベクトルｘ1とｘ2が互いに似ていれば、つまり距離‖ｘ1−ｘ2‖の値が小さければ、底空間における対応する点も互いに近くなるような位相保存写像を自己組織的に発見するアルゴリズムである。
【０００３】
２次元の正方形領域：Ｂ＝Ｉ2＝Ｉ×Ｉを底空間とし、この領域の各点をｎ次元のデータ空間へ連続全射する有界な写像φを考えると、底空間Ｂ全体はｎ次元空間内の２次元多様体Ｍへと写像される。すなわち
【０００４】
【数１】
2008250886.tif 000003
である。この時、ＳＯＭはこの逆の問題を解くアルゴリズムとみることができる。すなわち、観測データ集合Ｕ＝｛ｘ1，ｘ2，・・・，ｘm｝が与えられたとき、これらの分布を近似する多様体Ｍから底空間Ｂへの以下の式に示す連続全射な写像
【０００５】
【数２】
2008250886.tif 000004
【０００６】
【数３】
2008250886.tif 000005
を自己組織的に見つけるアルゴリズムである。ここで、ξはｘiを底空間へ写像した点であり、通常はｘiに対する「勝者（Best  Matching  Unit：ＢＭＵ）」の底空間における位置ベクトルで近似する。
【０００７】
わかりやすくするために、図１９に従来技術のＳＯＭの概要を説明するための模式図を示す。図中の球状の各玉（ノード）の集合をマップとする。マップ上にある各ノードはベクトルデータを表している。隣り合うノードまたは近くのノードは類似しており、離れるにつれて類似度が低くなっているという特徴を持つマップである。
一方、形状パターンを認識する技術においては、通常はピクセル画像の濃淡値をベクトルデータとして認識することが多い。
【非特許文献１】T.Khonen,  "Self-organized  formation  of  topology  correct  feature  maps"，  Bological  Cybernetics,  vol43,  1982,  pp.59-69
【発明の開示】
【発明が解決しようとする課題】
【０００８】
多くのパターン認識問題に関して、（非線形）多様体集合の自己組織化マップの必要性は非常に大きい。今、ＳＯＭを用いて自己組織化したい対象｛Ｏ1，Ｏ2，Ｏ3，・・・｝が与えられたとする。この時、ＳＯＭの目的は、対象データ｛Ｏi｝を｛Ｏi｝の類似度に応じてマップ上に配置することである。対象データ｛Ｏi｝をそれぞれ１つのベクトルデータとして表現できるならば、通常はＳＯＭによりマップを作成することができる。しかし、１回の観測では対象データ｛Ｏi｝に関しての断片的な情報しか得られず、対象データ｛Ｏi｝の集合全体で初めて対象データ｛Ｏi｝を表現しうる場合が多くある。
【０００９】
例えば、複数の人物の顔写真を元に自己組織化マップを作成する場合を考える。Ａ氏、Ｂ氏、Ｃ氏・・・といた場合に、もしＡ氏とＢ氏の顔が似ていれば二人を底空間上で近くに配置し、また、Ｄ氏とＥ氏の顔が似ていなければ二人を遠くに配置したい。この時問題になるのは、顔は３次元形状を持つにも関わらず、写真は２次元だということである。つまり、１枚の写真では顔の全ての情報をもたらすことはできない（例えば、正面から撮った写真では鼻の高さが分からない等）。また、ある角度から見たときはＡ氏とＣ氏が似ているかもしれないが、他の角度から見たときは全く似ていないということもあり得る。そこで、各人を様々な角度から撮った写真が必要になる。すなわち、「Ａ氏を撮影した写真の集合」というクラスが必要になる。そして、顔の自己組織化マップを作るには、各クラスのクラスデータがどのように分布しているか、分布全体の類似度を以って判断しなければならない。
【００１０】
このように、ひとつの対象物から観測されたデータ集合は、その対象物固有の部分空間上に分布する。そして多くの場合、それらは非線形空間を形成する。このように観測データの集合が固有の部分空間を作ることを利用する手法を部分空間法と呼ぶ。部分空間法を利用したＳＯＭのバリエーションはすでにいくつか提案されており、最も代表的なものは適応部分空間ＳＯＭ（Adaptive  Subspace  SOM：ＡＳＳＯＭ）である（T.Kohonen,  S.Kaski  &  H.Lappalainen,  "Self-organized  formation  of  various  invariant-feature  in  the  adaptive-subspace  SOM",  Neural  Computation,  9,  1997,  pp1321-1344）。これは、ＳＯＭの各ユニットが線形部分空間に対応する。ＡＳＳＯＭを非線形空間に拡張したものとしては、カーネル法を利用したもの（H.Kawano,  K.Horio  &  T.Yamakawa,  "Nonliner  adaptive  manifold  self-organizing  map  with  reproducing  kernels  and  its  apprication  to  pose  invariant  face  recognition"  IEEEJ  Trans.EIS,  125,  6,  2005,  pp948-955）や自己連想型ニューラルネット（K.Tokunaga  &  T.Furukawa,  "Nonliner  ASSOM  Constituted  of  Autoassociative  Neural  Modules",  Proc.of  WSOM05,  2005,  pp637-644）を用いたものが提案されている。これらの違いは、非線形多様体をどのような手法で近似表現するのかの違いであり、本質的には等価な手法群と言えるが、これらの手法では幾何学的な概念を用いて多様体間の対応関係を見出すことはできないという課題が残る。
【００１１】
また、パターン認識をする技術の中で、特に形状の識別を伴うものは難易度の高い課題が多い。その理由は「形」そのものをベクトルデータとして自然な形で表現することが難しいからである。通常は上記に示したように、ピクセル画像の濃淡値をベクトルデータとすることが多いが、それだとわずかな位置ずれや形状のゆらぎに敏感すぎて、「形」の自然な表現とは言い難い。従って、高い識別力を得ようとするならば、識別対象のデータに特有の特徴を予めヒューリスティックに発見しておき、識別前にその特徴量をデータから抽出する必要があった。しかしながら、この方法では、事前処理に時間が掛かる上に識別の精度が事前処理に依存してしまうという問題があった。
【００１２】
そこで、本発明は前記課題を解決するためになされたものであり、ニューラルガス（以下ＮＧとする）及びＳＯＭによる自己組織化の機能を組み合わせることで、幾何学的な概念を用いて、物体形状の分類及び識別を行う多様体集合自己組織化装置、多様体自己組織化方法、及び、多様体集合自己組織化プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
（１．ＮＧ−ＳＯＭによる自己組織化マップの作成）
本発明に係る多様体自己組織化装置は、多様体を有する１つまたは複数の入力データにおける各多様体のデータベクトルと、自己組織化マップを作成するニューラルガスから自己組織化マップを作成するＳＯＭにおける当該ニューラルガスを構成するガスモジュールデータの各データベクトルとの距離を算出する距離算出手段と、前記距離算出手段が算出した距離に基づいて当該入力データと最短の距離にある前記ニューラルガスが作成した自己組織化マップを勝者マップとして決定する勝者マップ決定手段と、前記勝者マップ決定手段が決定した勝者マップに基づいて当該入力データを学習することで当該入力データの分布を近似してクラスマップとして推定するクラスマップ推定手段と、前記クラスマップ推定手段が推定したクラスマップに基づいて前記各ニューラルガスが学習する量を決定し、学習する量に基づいて前記ガスモジュールを更新するデータ更新手段と、を備える。
【００１４】
このように、本発明においては自己組織化マップを作成するニューラルガスを元に、さらにＳＯＭにより自己組織化マップを作成するという２段階の処理（ＮＧ−ＳＯＭ）を行うことで、形状を多様的に捉えることができ、高い精度の認識、識別力を得ることができる。
なお、上記においてはクラスマップ推定手段としているが、多様体を有する１つまたは複数の入力データの集合をクラスとし、クラスにおける各多様体のデータ集合をクラスデータとする。従ってクラスマップとは、クラスレベルの集合をマッピングしたものである。
【００１５】
（２．正規化）
本発明に係る多様体自己組織化装置において、前記クラスマップ推定手段は前記勝者マップに含まれるガスモジュールの各データベクトルと前記入力データにおける各多様体のデータベクトルとの距離の順位を算出し正規化してクラスマップを推定することを特徴とする。
このように、本発明においては勝者マップに含まれるガスモジュールの各データベクトルと入力データにおける各多様体のデータベクトルとの距離を相対的に算出することで正規化するため、より望ましい形で演算を行うことができ、認識、識別力の精度を上げることが可能となる。
【００１６】
（３．ドット分解）
本発明に係る多様体自己組織化装置は、前記入力データにおける各多様体のデータを所定の数に基づいて点に分解して当該点の位置情報を座標値として保持するドット分解手段を備える。
このように、本発明においては入力データにおける各多様体のデータを所定の数に基づいて点に分解し、当該点の位置情報を座標値として保持することで、従来行っていたような、入力データに特有の特徴を予めヒューリスティックに発見しておき、識別前にその特徴量を入力データから抽出するといった前処理の代わりに、座標値の抽出を行うだけで前処理が済むようになるため、処理を簡潔にすることができ処理速度も上げることができる。また、形状のエッジ部分の座標値を検出することで、形状を正確に捉えることが可能となり認識、識別の精度を上げることができる。
【００１７】
（４．エクステントの決定）
本発明に係る多様体自己組織化装置において、前記ドット分解手段は前記入力データにおける各多様体のデータの座標値の最大値及び最小値に基づいて所定の領域を決定し、当該領域において当該入力データを点に分解することを特徴とする。
このように、本発明においては入力データにおける各多様体のデータの座標値の最大値及び最小値に基づいてエクステント領域を決定し、この領域内において処理を行うため、入力データの大小に関わらず、形状を認識、識別することが可能となる。従って、拡大、縮小された入力データの形状に対しても、高い認識、識別力を得ることができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態を説明する。本発明は多くの異なる形態で実施可能である。従って、本実施形態の記載内容のみで本発明を解釈すべきではない。また、本実施形態の全体を通して同じ要素には同じ符号を付けている。
【００１９】
本実施の形態では、主に装置について説明するが、所謂当業者であれば明らかな通り、本発明はシステム、方法、及び、コンピュータを動作させるためのプログラムとしても実施できる。また、本発明はハードウェア、ソフトウェア、または、ハードウェア及びソフトウェアの実施形態で実施可能である。プログラムは、ハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光記憶装置、または、磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。さらに、プログラムはネットワークを介した他のコンピュータに記録することができる。
【００２０】
（本発明の第１の実施形態）
[１．  定義]
図１は、本実施形態に係る多様体自己組織化装置の概念を示した模式図である。図１（ａ）は、観測した入力データの領域を示す。第１の空間領域１０１、第２の空間領域１０３、第３の空間領域１０４及び、第４の空間領域１０５はそれぞれニューラルガスのクラスを示しており、クラス中にある個々のデータをクラスデータとする。複数の人物の顔写真に例えると、第１の空間領域１０１、第２の空間領域１０３、第３の空間領域１０４、及び、第４の空間領域１０５はそれぞれクラスが異なっていることから、人物が異なることを意味する。また、それぞれのクラスが持つクラスデータは、顔写真を様々な角度や距離から撮影した場合のそれぞれの写真を意味する。
【００２１】
ここで、例えば、第２の空間領域１０３をＢ氏、第３の空間領域１０４をＣ氏、第５の空間領域１０４をＤ氏の顔データとした場合、Ｂ氏とＣ氏、及び、Ｃ氏とＤ氏は互いに重なるクラスデータを保持している。これは、例えばＢ氏とＣ氏は右側面から見た場合は非常に似ているが、その他角度から見ると違う顔である場合等を示している。同様にＣ氏とＤ氏もある側面だけが似ている場合等は、一部のクラスデータが重なる場合がある。当然３氏共通に似ている箇所（例えば後頭部）があれば、３つのクラスのクラスデータが重なることもある。
【００２２】
図１（ｂ）は、図１（ａ）のデータに基づいて、クラス及びクラスデータを格子状に配置したマップである。図１（ｂ）のマップ全体をペアレントマップといい、その中の１つの格子をチャイルドマップという。つまり、ペアレントマップはチャイルドマップのマップであると言える。また、チャイルドマップ自体もガスモジュールにより各クラスごとのマップが作成されている。すなわち、本発明に係る多様体自己組織化装置は、ガスモジュールにより作成された自己組織化マップ（ニューラルガス：ＮＧ）をさらに自己組織化マップ（ＳＯＭ）として２段階に写像するというものである。
【００２３】
[２．  構成]
[２．１  ハードウェア構成]
図２は、本実施形態に係る多様体自己組織化装置のハードウェア構成の模式図である。
多様体自己組織化装置３００は、ＣＰＵ（Central  Processing  Unit）２０１と、メインメモリ２０２と、マザーボードチップセット２０３と、ビデオカード２０４と、ＨＤＤ（Hard  Disk  Drive）２１１と、ブリッジ回路２１２と、光学ドライブ２２１と、キーボード２２２と、マウス２２３とを備える。
【００２４】
メインメモリ２０２は、ＣＰＵバス及びマザーボードチップセット２０３を介してＣＰＵ２０１に接続されている。ビデオカード２０４は、ＡＧＢ（Accelerated  Graphics  Port）及びマザーボードチップセット２０３を介してＣＰＵ２０１に接続している。ＨＤＤ２１１は、ＰＣＩ（Peripheral  Component  Interconnect）バス及びマザーボードチップセット２０３を介してＣＰＵ２０１に接続している。
【００２５】
光学ドライブ２２１は、低速バス、低速バスとＰＣＩバスのブリッジ回路２１２、ＰＣＩバス及びマザーボードチップセット２０３を介してＣＰＵ２０１に接続している。同様の接続構成で、キーボード２２２及びマウス２２３もＣＰＵ２０１に接続している。光学ドライブ２２１は、光ディスクにレーザー光を照射してデータを読み込む（または読み書きする）ドライブであり、例えばＣＤ−ＲＯＭドライブ、ＤＶＤドライブなどが該当する。
なお、図２は本実施形態に係る多様体自己組織化装置のハードウェア構成を模式的に示した一例に過ぎず、本実施形態を適用可能であれば、他の様々な構成を採ることができる。
【００２６】
多様体自己組織化装置３００は、多様体自己組織化プログラムをＨＤＤ１２１に複製して、メインメモリ２０２に複製した多様体自己組織化プログラムがロード可能に構成する所謂インストール（ここで示したインストールは例示に過ぎない）を行うことで構築することができ、コンピュータを制御するＯＳ（Operating  System）へ利用者が多様体自己組織化装置３００の起動を命令することで、多様体自己組織化プログラムがメインメモリ２０２にロードされて起動する。
なお、多様体自己組織化プログラムは、ＣＤ−ＲＯＭ等の記録媒体から提供されるようにしてもよいし、ネットワークを介して他のコンピュータから提供されるようにしてもよい。
【００２７】
[２．２  構成要素]
図３は、本実施形態に係る多様体自己組織化装置のモジュール構成図である。
多様体自己組織化装置３００は、入力手段３０１と、ドット分解手段３５０と、ガスモジュールレベル距離算出手段３０５と、最適ガスモジュール特定手段３１０と、クラス別ガスモジュールレベル距離算出手段３１５と、クラス別勝者マップ特定手段３２０と、勝者マップ別ガスモジュールソート手段３２５と、ガスモジュールレベル更新係数算出手段３３０と、チャイルドマップレベル更新係数算出手段３３５と、結合係数更新手段３４０と、出力手段３４５を備える。
入力手段３０１は、クラスデータ及びその他利用者からの指示に基づいたデータの入力処理を行う。
【００２８】
ガスモジュールレベル距離算出手段３０５は、クラスデータの参照ベクトルとガスモジュールの参照ベクトルとの差（以下、距離とする）を算出する処理を行う。すなわち、一のクラスにおける一のクラスデータの参照ベクトルと、一のチャイルドマップにおける一のガスモジュールの参ベクトルとの距離を求める。ここでは、全てのクラスにおける全てのクラスデータの参照ベクトルと、全てのチャイルドマップにおける全てのガスモジュールの参照ベクトルについて計算が行われる。
【００２９】
最適ガスモジュール特定手段３１０は、チャイルドマップにおいてガスモジュールレベル距離算出手段３０５が算出した距離が最も短いガスモジュールの特定を行う。すなわち、一のクラスにおける一のクラスデータについて、一のチャイルドマップにおける最も距離が短いガスモジュールを特定する。ここでは、全てのクラスにおける全てのクラスデータについて、全てのチャイルドマップにおける最短距離のガスモジュールが特定される。
【００３０】
クラス別ガスモジュールレベル距離積算手段３１５は、最適ガスモジュール特定手段３１０で特定したガスモジュールの最短の距離をクラス別に積算する処理を行う。すなわち、一のクラスにおける各クラスデータについて、一のチャイルドマップにおける最短のガスモジュールの距離を積算する。ここでは、全てのクラスにおける全てのクラスデータについて、全てのチャイルドマップにおける最短のガスモジュールの距離が積算される。
【００３１】
クラス別勝者マップ特定手段３２０は、クラス別ガスモジュールレベル距離積算手段３１５がクラス別に算出した距離の積算値のうち、最小値を有するチャイルドマップを勝者マップとして特定する処理を行う。すなわち、一のクラスについて前記で求めた最小の積算値を有するチャイルドマップを、そのクラスにおける勝者マップとする。ここでは、全てのクラスについて、そのクラスにおける１つの勝者マップが特定される。
【００３２】
ここで、図４に、前記クラス別勝者マップ特定手段３２０が勝者マップを特定した様子を示した模式図を示す。図４においてペアレントマップ４００は３つのチャイルドマップをマッピングしている。また、チャイルドマップは４つのガスモジュールをマッピングしている。そして、クラスは２つのクラス（Class  AとClass  B）を対象としており、それぞれのクラスは１１個のクラスデータを有している。ここでは、Class  Aに最も近いMap1がClass  Aの勝者マップとして特定され、Class  Bに最も近いMap3がClass  Bの勝者マップとして特定されている。Map2は、いずれのクラスからも最短距離にないため勝者マップとして特定されていない。このように、各クラスごとに１つの勝者マップが特定される。
【００３３】
図３に戻って、勝者マップ別ガスモジュールソート手段３２５は、各クラスに対応する勝者マップにおけるガスモジュールを距離に従いソートする処理を行う。すなわち、一のクラスにおける一のクラスデータについて、そのクラスの勝者マップにおけるガスモジュールを距離に従いソートする。ここでは、全てのクラスにおける全てのクラスデータと、そのクラスの勝者マップにおける全てのガスモジュールとの距離に従いガスモジュールのソートを行う。
なお、ソートする順序は昇順でも降順でもどちらでもよい。
【００３４】
ガスモジュールレベル更新係数算出手段３３０は、勝者マップ別ガスモジュールソート手段３２５によりソートされたソート順位に応じてガスモジュールレベルの更新係数を算出する処理を行う。すなわち、一のクラスにおける一のクラスデータについて、そのクラスの勝者マップにおけるガスモジュールのソート順位に応じたガスモジュールレベルの更新係数を算出する。ここでは、全てのクラスにおける全てのクラスデータについて、そのクラスの勝者マップにおける全てのガスモジュールの更新係数が算出される。
【００３５】
上記処理は、勝者マップに基づいてクラスデータを学習させている。すなわち、勝者マップに基づいて、その対応するクラスデータを反映させたマップ（ここではクラスマップとする）を推定していると言える。クラスマップを推定している様子を示す模式図を図５に示す。図４と同様に、ペアレントマップ４００は３つのチャイルドマップをマッピングしている。また、チャイルドマップは４つのガスモジュールをマッピングしている。そして、クラスは２つのクラス（Class  AとClass  B）を対象としており、それぞれのクラスは１１個のクラスデータを有している。Class  Aの勝者マップはMap1で、Class  Bの勝者マップはMap3である。そして、Map1に基づいてClass  Aのクラスデータを学習し、Map3に基づいてClass  Bのクラスデータを学習することでそれぞれに対応するクラスマップを推定している。
【００３６】
図３に戻って、チャイルドマップレベル更新係数算出手段３３５は、前記で推定されたクラスマップに基づいて、チャイルドマップレベルの更新係数を算出する処理を行う。すなわち、一のクラスの勝者マップに基づいて推定されたクラスマップに対して、一のチャイルドマップのＳＯＭ平面における距離に応じた、チャイルドマップレベルの更新係数を算出する。ここでは、全てのクラスのクラスマップに対して、全てのチャイルドマップの更新係数が算出される。
【００３７】
結合係数更新手段３４０は、ガスモジュールの結合係数を更新する処理を行う。すなわち、一のチャイルドマップにおける一のガスモジュールの結合係数を、一のクラスにおける一のクラスデータにおけるガスモジュールレベルの更新係数とチャイルドマップレベルの更新係数に基づいて更新する。これにより、チャイルドマップの更新が行われる。ここでは、全てのチャイルドマップにおける全てのガスモジュールの結合係数について更新処理が行われる。
【００３８】
チャイルドマップの更新が行われた様子を示す模式図を図６に示す。ここでも図５と同様に、ペアレントマップ４００は３つのチャイルドマップをマッピングしている。また、チャイルドマップは４つのガスモジュールをマッピングしている。そして、クラスは２つのクラス（Class  AとClass  B）を対象としており、それぞれのクラスは１１個のクラスデータを有している。Class  Aの勝者マップはMap1で、Class  Bの勝者マップはMap3である。図５において推定されたクラスマップに基づいて、チャイルドマップのＳＯＭ平面における距離に応じた更新係数で全てのガスモジュールの結合係数が更新されている。ガスモジュールの結合係数が更新された結果、ペアレントマップ４００に示すように各チャイルドマップが更新される。
【００３９】
ドット分解手段３５０は、形状をドットに分解する処理を行う。前記で述べたように物体の形状をベクトルデータとして自然な形で表現することは難しい。そこで、本発明に係る多様体自己組織化装置３００では、物体の「形」を無数の小さな点の集合で表現された一種の「データ分布」と見なして処理を行うことが可能である。ドット分解手段３５０は物体の「形」を「データ分布」と見なして処理を行うために、ドットに分解する処理を行う。こうして物体の形状をドットに分解することで、前記のようなニューラルガスとＳＯＭを組み合わせた自己組織化処理（以下、ＮＧ−ＳＯＭとする）を応用することが可能となる。
【００４０】
ドット分解処理について図を用いて説明する。図７は、文字の形をドット分解して分布表現をした様子を示した図である。ここでは、文字「Ａ」及び文字「Ｂ」をそれぞれドットに分解している。このように形状をドットに分解して、それぞれの文字を前記処理におけるクラス、それぞれの文字におけるドットを前記処理におけるクラスデータとして扱うことで、ＮＧ−ＳＯＭの処理を利用して文字「Ａ」及び文字「Ｂ」の自己組織化マップを作成することができる。つまり、ドット分解処理とＮＧ−ＳＯＭ処理を組み合わせることで高い精度で物体の形状を認識したり、識別したりすることが可能となる。
【００４１】
[３．  アルゴリズム]
本発明の実施形態における多様体自己組織化装置３００の動作を説明する。多様体自己組織化装置３００のアルゴリズムは大きく以下の３つのステップに分けることができる。
（１）  勝者マップの決定
（２）  クラスマップの推定
（３）  結合係数の更新
である。
まず、上記３つのステップのアルゴリズムを、数式を用いて説明する。（１）勝者マップの決定ステップでは、各クラスにおけるクラスデータの参照ベクトルに対して、仮の勝者マップを全てのチャイルドマップに対して決定する。ｋ番目のチャイルドマップにおけるｉ番目のクラスのｊ番目のクラスデータｘi,jに対する勝者は次式で定義される。
【００４２】
【数４】
2008250886.tif 000006
ここで、ｗk,lはｋ番目のチャイルドマップにおけるｌ番目のガスモジュールのデータベクトルである。
【００４３】
次に、各クラスとチャイルドマップとの距離は平均量子化誤差を以って推定値とし、その平均量子化誤差が最小となるチャイルドマップを勝者マップとする。
【００４４】
【数５】
2008250886.tif 000007
各クラスに対して、勝者マップにおける勝者ガスモジュールが次式により真の勝者となる。
【００４５】
【数６】
2008250886.tif 000008
【００４６】
（２）クラスマップの推定ステップは、各クラスに対してデータ分布を近似する「クラスマップ」をそのクラスの勝者マップに基づいて推定する。推定には以下の式によるバッチ型のアルゴリズムを利用する。
【００４７】
【数７】
2008250886.tif 000009
【００４８】
【数８】
2008250886.tif 000010
ここで、ｈは近傍関数で、通常はガウス関数を用いる。
【００４９】
（３）結合係数の更新ステップは、各チャイルドマップが各クラスを学習する量を、チャイルドマップ間の距離を与える関数ｄを元に、近傍関数ｇにより次式で決定する。
【００５０】
【数９】
2008250886.tif 000011
最後に、各チャイルドマップが推定クラスマップの内分点になるように以下の式によるバッチ型アルゴリズムで更新する。
【００５１】
【数１０】
2008250886.tif 000012
【００５２】
【数１１】
2008250886.tif 000013
以上が本発明に係る多様体自己組織化装置３００のアルゴリズムである。
なお、数７及び数９の式に示した分母は省略してもよい。
【００５３】
[４．  動作]
次に、多様体自己組織化装置３００の動作について以下に詳細に説明する。
図８は、本発明の実施形態に係る多様体自己組織化装置３００のガスモジュールレベル距離算出手段３０５が行うガスモジュールレベルでの距離算出の動作を示すフローチャートである。
まず、一のクラスにおける一のクラスデータと、一のチャイルドマップにおける一のガスモジュールとの差（距離）を求める処理が行われる（ステップＳ８０１）。当該チャイルドマップにおける全てのガスモジュールについて処理が行われたかどうかが判定され（ステップＳ８０２）、全てのガスモジュールについて処理が行われていない場合は、当該チャイルドマップの別の未処理のガスモジュールを処理対象とする処理が行われ（ステップＳ８０３）、ステップＳ８０１の処理に戻る。当該チャイルドマップにおける全てのガスモジュールについて処理が行われた場合は、全てのチャイルドマップについて処理が行われたかどうかが判定され（ステップＳ８０４）、全てのチャイルドマップについて処理が行われていない場合は、別の未処理のチャイルドマップを処理対象とする処理が行われ（ステップＳ８０５）、ステップＳ８０１の処理に戻る。同様に全てのクラスにおける全てのクラスデータについてステップＳ８０１の処理が繰り返して行われ、全てのクラスについて処理が行われたらこの処理を終了する。
【００５４】
図９は、本発明の実施形態に係る多様体自己組織化装置３００の最適ガスモジュール特定手段３１０が行う最適なガスモジュールの特定の動作を示すフローチャートである。
まず、一のクラスにおける一のクラスデータについて、一のチャイルドマップにおいて最も距離が短いガスモジュールを特定する（ステップＳ９０１）。当該クラスデータに対して、全てのチャイルドマップについて処理が行われたかどうかが判定され（ステップＳ９０２）、全てのチャイルドマップについて処理が行われていない場合は、別の未処理のチャイルドマップを処理対象とする処理が行われる（ステップＳ９０３）。全てのチャイルドマップについて処理が行われた場合は、ステップＳ９０４に進む。以下は同様に全てのクラスにおける全てのクラスデータについてステップＳ９０１の処理が繰り返して行われ、全てのクラスについて処理が行われたらこの処理を終了する。
【００５５】
図１０は、本発明の実施形態に係る多様体自己組織化装置３００のクラス別ガスモジュールレベル距離積算手段３１５が行うクラス別のガスモジュールレベルの距離を積算する動作を示すフローチャートである。
まず、一のクラスにおける各クラスデータについて、一のチャイルドマップにおける前記処理で特定されたガスモジュールの最短の距離を積算する（ステップＳ１００１）。当該クラスの全てのクラスデータについて処理が行われたかが判定され（ステップＳ１００２）、全てのクラスデータについて処理が行われていない場合は、当該クラスの別の未処理のクラスデータを処理対象とする処理を行い（ステップＳ１００３）、ステップＳ１００１の処理に戻る。全てのクラスデータについて処理が行われていた場合は、全てのチャイルドマップについて処理が行われたかが判定される（ステップＳ１００４）。以降、全てのクラスについて、全てのチャイルドマップにおけるステップＳ１００１の処理が行われると、この処理を終了する。
【００５６】
図１１は、本発明の実施形態に係る多様体自己組織化装置３００のクラス別勝者マップ特定手段３２０が行うクラス別の勝者マップの特定の動作を示すフローチャートである。
まず、一のクラスについて、前記処理で算出した積算値の最小値を有するチャイルドマップを、そのクラスにおける勝者マップとして特定する（ステップＳ１１０１）。全てのクラスについて処理が行われたかが判定され（ステップＳ１１０２）、全てのクラスについて処理が行われていない場合は、別の未処理のクラスを処理対象とする処理を行い（ステップＳ１１０３）、ステップＳ１１０１に戻る。全てのクラスについて処理が行われた場合は、この処理を終了する。ここまでが、前記アルゴリズムの（１）勝者マップの決定ステップである。
【００５７】
次に、（２）クラスマップの推定処理について説明する。図１２は、本発明の実施形態に係る多様体自己組織化装置３００の勝者マップ別ガスモジュールソート手段３２５が行う勝者マップ別のガスモジュールのソートの動作を示すフローチャートである。
まず、一のクラスにおける一のクラスデータについて、そのクラスの勝者マップにおけるガスモジュールをそれぞれの距離に従いソートする（ステップＳ１２０１）。当該クラスにおける全てのクラスデータについて処理が行われたかが判定され（ステップＳ１２０２）、全てのクラスデータについて処理が行われていない場合は、当該クラスの別の未処理のクラスデータを処理対象とする処理を行い（ステップＳ１２０３）、ステップＳ１２０１に戻る。全てのクラスデータについて処理が行われた場合は、全てのクラスについて処理が行われたかが判定される（ステップＳ１２０４）。全てのクラスについて処理が行われていない場合は、別の未処理のクラスを処理対象とする処理を行い（ステップＳ１２０５）、ステップＳ１２０１に戻る。全てのクラスについて処理が行われた場合は、この処理を終了する。
【００５８】
図１３は、本発明の実施形態に係る多様体自己組織化装置３００のガスモジュールレベル更新係数算出手段３３０が行うガスモジュールレベルの更新係数の算出の動作を示すフローチャートである。
まず、一のクラスにおける一のクラスデータについて、そのクラスの勝者マップにおけるガスモジュールのソート順位に応じたガスモジュールレベルの更新係数を算出する（ステップＳ１３０１）。当該勝者マップにおける、全てのガスモジュールの順位について処理が行われたかが判定され（ステップＳ１３０２）、全てのガスモジュールの順位について処理が行われていない場合は、当該勝者マップの別の未処理のガスモジュールを処理対象とする処理を行い（ステップＳ１３０３）、ステップＳ１３０１の処理に戻る。以降、全てのガスモジュールの順位について処理が行われた場合は、全てのクラスにおける全てのクラスデータについてステップＳ１３０１の処理が繰り返して行われ、全てのクラスについて処理が行われるとこの処理を終了する。この処理において、勝者マップにおけるガスモジュールのソート順位に応じたガスモジュールレベルの更新係数が算出され、その更新係数に基づいて作成されたマップをクラスマップとして推定する。ここまでの処理が前記アルゴリズムの（２）クラスマップの推定処理である。
【００５９】
次に、（３）結合係数の更新処理について説明する。図１４は、本発明の実施形態に係る多様体自己組織化装置３００のチャイルドマップレベル更新係数算出手段３３５が行うチャイルドマップレベルの更新係数の算出の動作を示すフローチャートである。
まず、一のクラスについて、そのクラスの勝者マップから推定されたクラスマップに対する、一のチャイルドマップのＳＯＭ平面における距離に応じたチャイルドマップレベルの更新係数を算出する（ステップＳ１４０１）。当該クラスマップに対して、全てのチャイルドマップについて処理が行われたかが判定され（ステップＳ１４０２）、全てのチャイルドマップについて処理が行われていない場合は、当該クラスマップに対する別の未処理のチャイルドマップを処理対象とする処理を行い（ステップＳ１４０３）、ステップＳ１４０１の処理に戻る。以降、全てのクラスについてステップＳ１４０１の処理が繰り返して行われ、全てのクラスについて処理が行われるとこの処理を終了する。
【００６０】
図１５は、本発明の実施形態に係る多様体自己組織化装置３００の結合係数更新手段３４０が行う結合係数の更新の動作を示すフローチャートである。
まず、一のチャイルドマップにおける一のガスモジュールの結合係数を、一のクラスにおける一のクラスデータのガスモジュールレベルの更新係数、及び、チャイルドマップレベルの更新係数に基づいて更新する（ステップＳ１５０１）。当該クラスの全てのクラスデータについて処理が行われたかが判定され（ステップＳ１５０２）、全てのクラスデータについて処理が行われていない場合は、当該クラスの別の未処理のクラスデータを処理対象とする処理を行う。全てのクラスデータについて処理を行っていた場合は、全てのクラスについて処理が行われたかが判定される（ステップＳ１５０４）。全てのクラスについて処理が行われていない場合は、別の未処理のクラスを処理対象とする処理を行う（ステップＳ１５０５）。以降、全てのクラスについて処理を行っていた場合は、全てのチャイルドマップにおける全てのガスモジュールについてステップＳ１５０１の処理が繰り返して行われ、全てのチャイルドマップについて処理が行われるとこの処理を終了する。ここまでの処理が（３）結合係数の更新処理である。
以上のように本発明に係る多様体自己組織化装置は、ニューラルガスのＳＯＭにより自己組織化を行うため、入力データを多様的に捉えることができ、形状を高い精度で認識したり識別したりすることが可能となる。従って、人物の顔写真をマッピングするような場合でも対応することができる。
【００６１】
[５．  ドット分解]
[５−１．  動作]
以下、ドット分解処理とＮＧ−ＳＯＭの組み合わせについて説明する。図１６は、本発明に係る多様体自己組織化装置３００の、ドット分解処理をした場合のＮＧ−ＳＯＭによる識別動作を示すフローチャートである。
まず、手書きの英字がスキャナ等の画像読み取り装置により入力される（ステップＳ１６０１）。入力された英字の画面上における座標値の最大値及び最小値に基づいて、英字を全て包含するようにエクステントを決定し、エクステント領域として設定する（ステップＳ１６０２）。設定されたエクステント領域において所定のサンプリング数でドット分解する（ステップＳ１６０３）。一のクラスにおける一のクラスデータと、一のチャイルドマップにおける一のガスモジュールの参照ベクトルの差（距離）を算出する（ステップＳ１６０４）。当該チャイルドマップにおける全てのガスモジュールについて処理が行われたかが判定され（ステップＳ１６０５）、全てのガスモジュールについて処理が行われていない場合は、当該チャイルドマップの別の未処理のガスモジュールを処理対象とする処理を行い（ステップＳ１６０６）、ステップＳ１６０４の処理に戻る。全てのガスモジュールについて処理が行われていた場合は、全てのチャイルドマップについて処理が行われたかが判定される（ステップＳ１６０７）。全てのチャイルドマップについて処理が行われていない場合は、別の未処理のチャイルドマップを処理対象とする処理を行い（ステップＳ１６０８）、ステップＳ１６０４の処理に戻る。全てのチャイルドマップについて処理が行われていた場合は、全てのガスモジュールの中で最短のガスモジュールを特定して（ステップＳ１６０９）処理を終了する。以上のような処理を行うことで、手書きで入力された英字が何の文字であるかを認識して特定することができる。
なお、上記処理において、全てのガスモジュールの中で最短のガスモジュールを特定するようにしたが、チャイルドマップごとに距離を積算して、その積算値が最も小さいチャイルドマップを特定するようにしてもよい。
【００６２】
[５−２．  処理結果]
以下、本発明に係る多様体自己組織化装置３００の処理結果について説明する。図１７は、クラスごとにマップを作成した様子を示す模式図である。まず手書きのアルファベット２６文字を用意する。そして、各文字（クラス）ごとにマップを作成する。
【００６３】
ここで、使用する全てのデータ数はアルファベット２６文字×手書き文字１０人分である。そのうち９人分のデータをトレーニングデータとし、１人分をテストデータとした。そして、親ＳＯＭのチャイルドマップ数を８×８＝６４（マップ）、子ＮＧのガスモジュール数を１００とし、学習回数を３００回行う条件でシミュレーションを行った。シミュレーション方法は、１つ抜き法により全データをトレーニング及びテストの両方に用いる。すなわち、１０人中９人分をトレーニングデータとしてＮＧ−ＳＯＭの学習を行い、トレーニングに用いなかった１人分のデータをテストデータとして認識を行った。この組み合わせ（全部で１０パターン）でシミュレーションを行い、各認識結果の平均を正しい認識結果とした。
【００６４】
図１８は、実際にシミュレーションした結果作成されたクラスごとのマップの一例（文字Ａと文字Ｎのみ）を示した図である。図からわかるように、トレーニングデータの中間的なデータが作成されている。また、学習によりトレーニングデータから歪んだ形状の文字も得ることができた。
以下の表はシミュレーション結果を示す。
【００６５】
【表１】
2008250886.tif 000014
全テストの識別率の平均は０．８０３８４６であった。トレーニングデータとして使用していない手書き文字をテストデータとして上記のような識別率を得ることができたのは、本発明に係る多様体自己組織化装置３００が識別対象の形状のずれやゆらぎに対してロバストであることを示していると言える。
【００６６】
このように、本発明においては、ドット分解処理とＮＧ−ＳＯＭを組み合わせて行うことで、物体形状のずれやゆらぎに対してロバストになり、手書き文字のような識別対象の場合でも高い認識力及び識別力を得ることができる。また、従来は識別対象に特有の特徴を予めヒューリスティックに発見しておき、識別前にその特徴量をデータから抽出する必要があり、この方法では、事前処理に時間が掛かる上に識別の精度が事前処理に依存してしまうという問題があったが、本発明に係る多様体自己組織化装置３００のようにドット分解処理を行うことで事前処理を軽減することができる。
【００６７】
なお、ドット分解処理におけるエクステントの設定処理は必須の処理ではない。
また、本実施形態においては文字の識別を例示して説明したが、ロボットの自己位置の推定、セキュリティー分野における顔識別、文字認識、医療分野に用いるエコー画像の識別や心電図の波形のような形状を識別する装置の場合にも適用可能である。
【００６８】
以上の前記実施形態により本発明を説明したが、本発明の技術的範囲は実施形態に記載の範囲には限定されず、この実施形態に多様な変更又は改良を加えることが可能である。そして、かような変更又は改良を加えた実施の形態も本発明の技術的範囲に含まれる。このことは、特許請求の範囲及び課題を解決する手段からも明らかなことである。
【図面の簡単な説明】
【００６９】
【図１】本実施形態に係る多様体自己組織化装置の概念を示した模式図である。
【図２】本実施形態に係る多様体自己組織化装置のハードウェア構成の模式図である。
【図３】本実施形態に係る多様体自己組織化装置のモジュール構成図である。
【図４】勝者マップを特定した様子を示した模式図である。
【図５】クラスマップを推定している様子を示す模式図である。
【図６】チャイルドマップの更新が行われた様子を示す模式図である。
【図７】文字の形をドット分解して分布表現をした様子を示した図である。
【図８】ガスモジュールレベルでの距離算出の動作を示すフローチャートである。
【図９】最適なガスモジュールの特定の動作を示すフローチャートである。
【図１０】クラス別のガスモジュールレベルの距離を積算する動作を示すフローチャートである。
【図１１】クラス別の勝者マップの特定の動作を示すフローチャートである。
【図１２】勝者マップ別のガスモジュールのソートの動作を示すフローチャートである。
【図１３】ガスモジュールレベルの更新係数の算出の動作を示すフローチャートである。
【図１４】チャイルドマップレベルの更新係数の算出の動作を示すフローチャートである。
【図１５】結合係数の更新の動作を示すフローチャートである。
【図１６】ドット分解処理をした場合のＮＧ−ＳＯＭによる識別動作を示すフローチャートである。
【図１７】クラスごとにマップを作成した様子を示す模式図である。
【図１８】シミュレーションした結果作成されたクラスごとのマップの一例を示した図である。
【図１９】従来技術のＳＯＭの概要を説明するための模式図である。
【符号の説明】
【００７０】
１０１  第１の空間領域
１０３  第２の空間領域
１０４  第３の空間領域
１０５  第４の空間領域
２０１  ＣＰＵ
２０２  メインメモリ
２０３  ＭＢチップセット
２０４  ビデオカード
２１１  ＨＤＤ
２１２  ブリッジ回路
２１３  ネットワークインターフェース
２２１  光学ドライブ
２２２  キーボード
２２３  マウス
３００  多様体自己組織化装置
３０１  入力手段
３０５  ガスモジュールレベル処理算出手段
３１０  最適ガスモジュール特定手段
３１５  クラス別ガスモジュールレベル距離積算手段
３２０  クラス別勝者マップ特定手段
３２５  勝者マップ別ガスモジュールソート手段
３３０  ガスモジュールレベル更新係数算出手段
３３５  チャイルドマップレベル更新係数算出手段
３４０  結合係数更新手段
３４５  出力手段
３５０  ドット分解手段
４００  ペアレントマップ
１７００  アルファベット一覧
１７０２  ドット分布表
１８００  アルファベット形状マップ
【図１】
2008250886.tif 000015
【図２】
2008250886.tif 000016
【図３】
2008250886.tif 000017
【図４】
2008250886.tif 000018
【図５】
2008250886.tif 000019
【図６】
2008250886.tif 000020
【図７】
2008250886.tif 000021
【図８】
2008250886.tif 000022
【図９】
2008250886.tif 000023
【図１０】
2008250886.tif 000024
【図１１】
2008250886.tif 000025
【図１２】
2008250886.tif 000026
【図１３】
2008250886.tif 000027
【図１４】
2008250886.tif 000028
【図１５】
2008250886.tif 000029
【図１６】
2008250886.tif 000030
【図１７】
2008250886.tif 000031
【図１８】
2008250886.tif 000032
【図１９】
2008250886.tif 000033