説明

分類支援マップ作成方法およびそれを実行するためのプログラムならびに分類支援マップ作成装置

【課題】学習データを学習させる順番にかかわらず、未知データを正しく分類することができる未知データの分類に有用な分類支援マップを作成することが可能な分類支援マップ作成方法を提供する。
【解決手段】この分類支援マップ作成方法は、ベクトルデータからなる未知データの分類を支援する自己組織化マップ3を作成するための自己組織化マップ作成方法であって、それぞれが未学習のベクトルデータを有する複数の未学習セル4aを含む未学習マップ4を準備するステップと、複数の未学習セル4aに対応するとともに、学習積算値を有する複数の擬似セル5aを含む擬似マップ5を準備するステップと、ベクトルデータからなる学習データを擬似マップ5に学習させるステップと、学習された擬似マップ5の擬似セル5aが有する学習積算値を未学習マップ4の未学習セル4aの有するベクトルデータに反映させるステップとを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分類支援マップ作成方法および分類支援マップ作成装置に関し、特に、ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成方法およびそれを実行するためのプログラムならびに分類支援マップ作成装置に関する。
【背景技術】
【0002】
従来、ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成方法が知られている。また、上記の分類支援マップとして、たとえば、T.Kohonen氏が提案した自己組織化マップ(SOM:Self−Organizing Maps)が知られている。そして、この自己組織化マップ(SOM)の作成方法として、従来、種々の作成方法が提案されている(たとえば、特許文献1参照)。
【0003】
上記特許文献1に提案された自己組織化マップ(SOM)の作成方法では、未学習のベクトルデータを有する複数のセルからなる未学習マップの各セルに学習データを学習させることによって自己組織化マップを作成している。なお、未学習マップの各セルに学習データを学習させる際には、未学習マップの中から学習データを構成するベクトルデータとのベクトル間距離(ユークリッド距離)が最も小さいベクトルデータを有する単一のセルを選択するとともに、選択したセルおよびその近傍領域のセルに対して学習データを学習させている。
【0004】
【特許文献1】特開2001−229362号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に提案された自己組織化マップの作成方法では、学習データを学習させる毎に、選択したセルおよびその近傍領域のセルのベクトルデータが変化されるので、学習データを学習させるべきセルを順次選択する際に、前の学習データの未学習マップへの学習状況によって選択されるセルが異なる場合があるという不都合がある。このため、学習データを学習させる順番によって、得られる自己組織化マップが異なる場合があるという問題点がある。したがって、上記特許文献1の自己組織化マップの作成方法では、学習データを学習させる順番によっては、未知データを正しく分類することができる未知データの分類に有用な分類支援マップが作成できない場合があるという問題点がある。
【0006】
この発明は、上記のような課題を解決するためになされたものであり、この発明の1つの目的は、学習データを学習させる順番にかかわらず、未知データを正しく分類することができる未知データの分類に有用な分類支援マップを作成することが可能な分類支援マップ作成方法を提供することである。
【課題を解決するための手段および発明の効果】
【0007】
上記目的を達成するために、この発明の第1の局面における分類支援マップ作成方法は、ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成方法であって、それぞれが未学習のベクトルデータを有する複数の未学習セルを含む未学習マップを準備するステップと、複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップを準備するステップと、ベクトルデータからなる学習データを擬似マップに学習させるステップと、学習された擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させるステップとを備えている。なお、本発明における「未学習」は、全く学習データを学習させていない場合のみならず、複数の学習データがある場合に、1つ以上の学習データを学習させたが、全ての学習データの学習は完了していない場合も含む。
【0008】
この第1の局面による分類支援マップ作成方法では、上記のように、複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップに、ベクトルデータからなる学習データを学習させた後、学習された擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させることによって、複数の学習データを順次学習させる場合に、全ての学習データを擬似マップに学習させる間は、未学習マップの各未学習セルのベクトルデータは変化されない。これにより、未学習マップで学習データを学習させるべきセルを選択した後、その選択された未学習マップのセルに対応する擬似マップのセルに学習データを学習させるようにすれば、未学習マップで学習データを学習させるべきセルを選択する際に、未学習マップのセルのベクトルデータは変化しないので、学習データを学習させる順番によって、未学習マップの選択されるセルが異なるという不都合が生じない。これにより、複数の学習データを学習させる場合にも、学習データを学習させる順番によって、得られる自己組織化マップが異なるのを抑制することができる。したがって、学習データを学習させる順番にかかわらず、未知データを正しく分類することができる未知データの分類に有用な分類支援マップを作成することができる。
【0009】
上記第1の局面による分類支援マップ作成方法において、好ましくは、未学習マップから未学習セルの集合体からなる第1ブロックを選択するステップをさらに備え、学習データを擬似マップに学習させるステップは、未学習マップの第1ブロックに対応する擬似マップの第2ブロックに含まれる擬似セルに学習データを学習させるステップを含む。このように構成すれば、学習データに対応する第2ブロックに含まれる複数の擬似セルに学習データを学習させることができるので、学習データに対応する単一のセルとその近傍領域のセルに対して学習データを学習させる場合と異なり、学習データを学習させる近傍領域の範囲を設定するための近傍関数を設定する必要がない。これにより、近傍関数の設定に熟練していない者でも、容易に、学習データを学習させることができるので、容易に、分類支援マップを作成することができる。
【0010】
この場合において、好ましくは、未学習マップから第1ブロックを選択するステップは、未学習マップから抽出される、未学習セルの集合体からなる複数のブロック毎に、ブロックに含まれる複数の未学習セルの未学習のベクトルデータに基づいて、ブロックのベクトルデータとしてのブロックデータを算出するステップと、学習データを複数のブロックのブロックデータと比較して、複数のブロックの中から学習データに対応するブロックデータを有する第1ブロックを選択するステップとを含む。このように構成すれば、容易に、未学習マップから学習データに対応する第1ブロックを選択することができる。
【0011】
上記第2ブロックに含まれる擬似セルに学習データを学習させるステップを含む構成において、好ましくは、第2ブロックに含まれる擬似セルに学習データを学習させるステップは、第2ブロックに含まれる全ての擬似セルの有するベクトルデータに、学習データに基づくベクトルデータをそれぞれ加算するステップを含む。このように構成すれば、容易に、第2ブロックに含まれる全ての擬似セルに学習データを学習させることができる。
【0012】
この場合において、好ましくは、学習データに基づくベクトルデータを加算するステップは、第2ブロックに含まれる擬似セルの有するベクトルデータをwとし、学習データをxとし、第2ブロックに含まれる擬似セルの数をcとした場合に、w+x/cで表される式に基づいて、第2ブロックに含まれる擬似セルの有するベクトルデータに学習データに基づくベクトルデータをそれぞれ加算するステップを含む。このように構成すれば、容易に、第2ブロックに含まれる全ての擬似セルの有するベクトルデータに、学習データに基づくベクトルデータをそれぞれ加算することができる。
【0013】
上記第2ブロックに含まれる擬似セルに学習データを学習させるステップを含む構成において、好ましくは、第2ブロックに含まれる擬似セルに学習データを学習させるステップは、第2ブロックに含まれる全ての擬似セルの有するベクトルデータに、学習データと第1ブロックの未学習セルが有する未学習のベクトルデータとの差に基づくベクトルデータをそれぞれ加算するステップを含む。このように構成すれば、容易に、第2ブロックに含まれる擬似セルに学習データを学習させることができる。
【0014】
この場合において、好ましくは、学習データと第1ブロックの未学習セルが有する未学習のベクトルデータとの差に基づくベクトルデータを加算するステップは、第2ブロックに含まれる擬似セルの有するベクトルデータをwとし、定数をtとし、学習データをxとし、第1ブロックの未学習セルが有する未学習のベクトルデータをwとし、第2ブロックに含まれる擬似セルの数をcとした場合に、w+t・(x−w)/cで表される式に基づいて、第2ブロックに含まれる擬似セルの有するベクトルデータに、学習データと第1ブロックの未学習セルが有する未学習のベクトルデータとの差に基づくベクトルデータをそれぞれ加算するステップを含む。このように構成すれば、容易に、第2ブロックに含まれる全ての擬似セルの有するベクトルデータに、学習データと第1ブロックの未学習セルが有する未学習のベクトルデータとの差に基づくベクトルデータをそれぞれ加算することができる。
【0015】
上記第2ブロックを含む構成において、好ましくは、学習データを擬似マップに学習させるステップは、擬似セルに対する学習データの学習の度合いを表す学習負荷率をdivとし、第2ブロックに含まれる擬似セルの数をcとした場合に、div+1/cで表される式に基づいて、学習負荷率の積算値を算出するステップを含み、擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させるステップは、学習データが学習された擬似マップの擬似セルが有するベクトルデータを学習負荷率の積算値で割ることにより、学習データが学習された擬似セルが有するベクトルデータを反映させた未学習セルのベクトルデータを算出するステップを含む。このように構成すれば、容易に、学習データが学習された擬似マップの擬似セルが有するベクトルデータを、未学習マップの対応する未学習セルに反映させることができる。
【0016】
上記第1の局面による分類支援マップ作成方法において、好ましくは、学習データを擬似マップに学習させるステップを全ての学習データについて実行した後に、擬似マップのベクトルデータを未学習マップに反映させるステップを実行する。このように構成すれば、容易に、全ての学習データを学習させた擬似セルのベクトルデータを未学習マップの未学習セルに反映することができる。
【0017】
上記ブロックデータを算出するステップと、第1ブロックを選択するステップと、第1ブロックに対応する第2ブロックに含まれる擬似セルに学習データを学習させるステップと、擬似マップのベクトルデータを未学習マップに反映させるステップとを含む構成において、好ましくは、未学習マップから抽出されるM個以上の未学習セルの集合体からなる複数の第3ブロック毎に、ブロックデータを算出するステップと、複数の第3ブロックの中から第1ブロックを選択するステップと、第1ブロックに対応する第2ブロックに含まれる擬似セルに学習データを学習させるステップと、擬似マップのベクトルデータを未学習マップに反映させるステップとが実行された後、未学習マップから抽出されるN個(N<M)以上の未学習セルの集合体からなる複数の第4ブロック毎に、ブロックデータを算出するステップと、複数の第4ブロックの中から第1ブロックを選択するステップと、第1ブロックに対応する第2ブロックに含まれる擬似セルに学習データを学習させるステップと、擬似マップのベクトルデータを未学習マップに反映させるステップとが実行される。このように構成すれば、M個以上の擬似セルを含む比較的大きな第2ブロック毎に、比較的粗く学習データを学習させた後、N個(N<M)以上の擬似セルを含む比較的小さな第2ブロック毎にも、比較的細かく学習データを学習させることができる。これにより、最初から比較的小さな第2ブロック毎に学習データを学習させる場合と異なり、類似したベクトルデータを有する複数の擬似セルからなる領域が擬似マップ上に局所的な固まりを有した状態で複数に分散して形成されるのを抑制することができる。このため、分類支援マップ上に類似したベクトルデータを有する複数のセルからなる領域が局所的な固まりを有した状態で複数に分散して形成されるのを抑制することができる。
【0018】
この発明の第2の局面における分類支援マップ作成装置は、ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成装置であって、それぞれが未学習のベクトルデータを有する複数の未学習セルを含む未学習マップを記憶する未学習マップ記憶手段と、複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップを記憶する擬似マップ記憶手段と、 ベクトルデータからなる学習データを擬似マップに学習させる擬似マップ学習手段と、 学習された擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させる未学習マップ反映手段とを備えている。
【0019】
この第2の局面による分類支援マップ作成装置では、上記のように、複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップに、 ベクトルデータからなる学習データを学習させた後、学習された擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させることによって、複数の学習データを順次学習させる場合に、全ての学習データを擬似マップに学習させる間は、未学習マップの各未学習セルのベクトルデータは変化されない。これにより、未学習マップで学習データを学習させるべきセルを選択した後、その選択された未学習マップのセルに対応する擬似マップのセルに学習データを学習させるようにすれば、未学習マップで学習データを学習させるべきセルを選択する際に、未学習マップのセルのベクトルデータは変化しないので、学習データを学習させる順番によって、未学習マップの選択されるセルが異なるという不都合が生じない。これにより、複数の学習データを学習させる場合にも、学習データを学習させる順番によって、得られる自己組織化マップが異なるのを抑制することができる。したがって、学習データを学習させる順番にかかわらず、未知データを正しく分類することができる未知データの分類に有用な分類支援マップを作成することができる。
【0020】
上記第2の局面による分類支援マップ作成装置において、好ましくは、未学習マップから未学習セルの集合体からなる第1ブロックを選択するブロック選択手段をさらに備え、擬似マップ学習手段は、未学習マップの第1ブロックに対応する擬似マップの第2ブロックに含まれる擬似セルに学習データを学習させる擬似セル学習手段を含む。このように構成すれば、学習データに対応する第2ブロックに含まれる複数の擬似セルに学習データを学習させることができるので、学習データに対応する単一のセルとその近傍領域のセルに対して学習データを学習させる場合と異なり、学習データを学習させる近傍領域の範囲を設定するための近傍関数を設定する必要がない。これにより、近傍関数の設定に熟練していない者でも、容易に、学習データを学習させることができるので、容易に、分類支援マップを作成することができる。
【0021】
この場合において、好ましくは、ブロック選択手段は、未学習マップから抽出される、未学習セルの集合体からなる複数のブロック毎に、ブロックに含まれる複数の未学習セルの未学習のベクトルデータに基づいて、ブロックのベクトルデータとしてのブロックデータを算出するブロックデータ算出手段と、学習データを複数のブロックのブロックデータと比較して、複数のブロックの中から学習データに対応するブロックデータを有する第1ブロックを選択するブロックデータ比較選択手段とを含む。このように構成すれば、容易に、未学習マップから学習データに対応する第1ブロックを選択することができる。
【0022】
この発明の第3の局面における分類支援マップ作成方法を実行するためのプログラムは、ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成方法を実行するためのプログラムであって、それぞれが未学習のベクトルデータを有する複数の未学習セルを含む未学習マップを読み出すステップと、複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップを読み出すステップと、ベクトルデータからなる学習データを擬似マップに学習させるステップと、学習された擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させるステップとを備えている。
【0023】
この第3の局面による分類支援マップ作成方法を実行するためのプログラムでは、上記のように、複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップに、ベクトルデータからなる学習データを学習させた後、学習された擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させることによって、複数の学習データを順次学習させる場合に、全ての学習データを擬似マップに学習させる間は、未学習マップの各未学習セルのベクトルデータは変化されない。これにより、未学習マップで学習データを学習させるべきセルを選択した後、その選択された未学習マップのセルに対応する擬似マップのセルに学習データを学習させるようにすれば、未学習マップで学習データを学習させるべきセルを選択する際に、未学習マップのセルのベクトルデータは変化しないので、学習データを学習させる順番によって、未学習マップの選択されるセルが異なるという不都合が生じない。これにより、複数の学習データを学習させる場合にも、学習データを学習させる順番によって、得られる自己組織化マップが異なるのを抑制することができる。したがって、学習データを学習させる順番にかかわらず、未知データを正しく分類することができる未知データの分類に有用な分類支援マップを作成することができる。
【発明を実施するための最良の形態】
【0024】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下の実施形態の説明では、本発明による分類支援マップ作成方法および分類支援マップ作成装置の一例としての自己組織化マップ作成方法および自己組織化マップ作成装置を例にとって説明する。
【0025】
(第1実施形態)
図1は、本発明の第1実施形態による自己組織化マップ作成方法に用いる自己組織化マップ作成装置の構成を説明するための模式図である。まず、図1を参照して、第1実施形態の自己組織化マップ作成方法に用いる自己組織化マップ作成装置について説明する。
【0026】
第1実施形態の自己組織化マップ作成方法に用いる自己組織化マップ作成装置1は、図1に示すように、未学習マップ記憶部2aと、擬似マップ記憶部2bと、ブロック選択部2cと、擬似マップ学習部2dと、未学習マップ反映部2eとを含んでいる。また、ブロック選択部2cは、ブロック重みデータ算出部2fと、ブロック重みデータ比較選択部2gとを含んでおり、擬似マップ学習部2dは、擬似セル学習部2hを含んでいる。
【0027】
また、未学習マップ記憶部2aは、後述する未学習マップを記憶するために設けられている。また、擬似マップ記憶部2bは、後述する擬似マップを記憶するために設けられている。また、ブロック選択部2cは、未学習マップから学習データに対応する、未学習セルの集合体からなるブロックを選択するために設けられている。また、擬似マップ学習部2dは、擬似マップに学習データを学習させるために設けられている。また、未学習マップ反映部2eは、学習データが学習された擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させるために設けられている。また、ブロック重みデータ算出部2fは、未学習マップから抽出される複数の抽出ブロック毎に、抽出ブロックに含まれる複数の未学習セルのベクトルデータに基づいて、抽出ブロックのベクトルデータとしてのブロック重みデータを算出するために設けられている。また、ブロック重みデータ比較選択部2gは、学習データを未学習マップの複数の抽出ブロックのブロック重みデータと比較して、複数の抽出ブロックの中から学習データとのベクトル間距離が最も小さいブロック重みデータを有する抽出ブロックを選択するために設けられている。また、擬似セル学習部2hは、擬似マップの後述する学習対象ブロックに含まれる擬似セルに学習データを学習させるために設けられている。
【0028】
また、第1実施形態による自己組織化マップ作成方法は、未学習マップに学習データを学習させて自己組織化マップ(SOM)を作成する学習アルゴリズムと、自己組織化マップを構成するセルのクラス分けを行うクラス分けアルゴリズムとによって構成されている。また、第1実施形態による自己組織化マップの作成方法では、図2に示すような自己組織化マップ(SOM)3を作成する。この自己組織化マップ3は、マス目状に配置された複数のセル3aによって構成されている。この複数のセル3aは、縦横に複数同数ずつ(第1実施形態では、10個ずつ)配置されている。また、各セル3aは、複数の要素(第1実施形態では、4つの要素)からなるベクトルデータを有することが可能なように構成されている。
【0029】
図3〜図8は、本発明の第1実施形態による自己組織化マップ作成方法の学習アルゴリズムを説明するための図である。図9〜図13は、本発明の第1実施形態による自己組織化マップ作成方法のクラス分けアルゴリズムを説明するための図である。まず、図3〜図8を参照して、第1実施形態による自己組織化マップ作成方法の学習アルゴリズムについて説明する。
【0030】
(学習アルゴリズム)
第1実施形態による学習アルゴリズムは、図3に示すように、ステップS1〜ステップS9によって構成されている。まず、ステップS1において、未学習マップの準備を行う。ここで、未学習マップとは、それぞれが未学習のベクトルデータを有する複数の未学習セルからなるマップである。未学習マップの準備では、まず、ベクトルデータを全く有していない複数のセルからなるマップを準備する。そして、図4に示すように、ベクトルデータを全く有していないセルからなるマップの各セルに対して、乱数表を用いて所定のベクトルデータを割り付ける。なお、第1実施形態では、要素1〜要素4の4つの要素からなるベクトルデータを各セルに割り付ける。これにより、所定の未学習のベクトルデータを有する複数の未学習セルからなる未学習マップが準備される。また、第1実施形態では、未学習マップは、n×n(第1実施形態では10×10)の未学習セルからなるとする。
【0031】
次に、ステップS2以降のグローバルエリア学習段階に進む。グローバルエリア学習段階では、擬似マップから比較的大きなブロックを抽出してその抽出ブロック毎に学習データを学習させることにより擬似マップに学習データを比較的粗く学習させる。そして、その後、学習させた擬似マップの各擬似セルのベクトルデータを未学習マップの各未学習セルに反映させる。なお、擬似マップとは、未学習マップの複数の未学習セルに対応する複数の擬似セルからなるマップである。これにより、第1実施形態による擬似マップは、未学習マップに対応してn×n(第1実施形態では10×10)の擬似セルからなる。また、擬似マップの各擬似セルは、それぞれがベクトルデータからなる学習積算値w(wa1,wa2,wa3,wa4)を有するように構成されている。なお、学習積算値wは、擬似マップに学習データxが学習されるのに伴って変化する値である。
【0032】
ステップS2では、未学習マップおよび擬似マップから抽出する抽出ブロックの大きさの設定および量子化誤差errの「0」への初期化を行う。このステップS2では、比較的大きなブロック毎に学習データを学習させるために、抽出ブロックをm×m=m個(=M個)以上のセルによって構成するとともに、m=n/2(5=10/2)に設定する。すなわち、第1実施形態では、未学習マップおよび擬似マップが10×10のセルからなるので、抽出ブロックを5×5(m×m)以上のセルを有する比較的大きなブロックに設定する。また、量子化誤差errは、学習データx(x,x,x,x)と、後述する未学習マップから選択される選択ブロックのブロック重みデータとの誤差であり、学習データx(x,x,x,x)が選択ブロックにどの程度反映されるかを示す指標となる値である。なお、ブロック重みデータは、ブロックを構成する全てのセルのベクトルデータの平均値である。
【0033】
次に、ステップS3において、直前量子化誤差err(before)に対して、ステップS2で「0」に設定した量子化誤差errの値のコピー(err(before)=err)を行うことにより、直前量子化誤差err(before)を0に初期化した後、量子化誤差errを「0」に初期化(err=0)する。そして、サブルーチンを呼び出す。なお、直前量子化誤差err(before)とは、ステップS3〜S5を1回の学習サイクルとして、その学習サイクルを繰り返し実行する場合に、前回の学習サイクルの最後の学習データxによる学習演算の際に算出される量子化誤差を意味する。また、上記ステップS3の処理により、1回目の学習サイクルでは、直前量子化誤差err(before)=0となる。
【0034】
次に、ステップS4のサブルーチンは、図5に示すように、ステップS11〜ステップS17によって構成されている。このサブルーチンでは、ステップS11において、未学習マップから5×5=5個(=25個)以上の縦横に同数の未学習セルを有する全ての比較的大きなブロックを抽出するとともに、その抽出した全ての比較的大きなブロック(抽出ブロック)についてブロック重みデータBを算出する。このブロック重みデータBの算出は、抽出ブロックに含まれる各未学習セルのベクトルデータを要素毎に合計した後、抽出ブロックに含まれる未学習セルの合計数で割ることによって行う。これにより、抽出ブロックに含まれる全ての未学習セルの各要素毎の重みの平均値であるブロック重みデータBが算出される。たとえば、図6に示すように、未学習マップ4から5×5=25個の未学習セル4aからなる抽出ブロック50を抽出した場合には、以下の式(1)〜式(4)に示すようにブロック重みデータB(bi1,bi2,bi3,bi4)を算出する。また、以下の式(1)〜式(4)において、a1〜a125と、a2〜a225と、a3〜a325と、a4〜a425とは、それぞれ、抽出ブロック50に含まれる各未学習セル4aの要素1〜要素4の値である。
【0035】
ブロック重みデータbi1=(a1+a1+a1+・・・・+a125)/25・・・(1)
ブロック重みデータbi2=(a2+a2+a2+・・・・+a225)/25・・・(2)
ブロック重みデータbi3=(a3+a3+a3+・・・・+a325)/25・・・(3)
ブロック重みデータbi4=(a4+a4+a4+・・・・+a425)/25・・・(4)
次に、ステップS12において、図7に示すように、擬似マップ5の準備を行うとともに、擬似マップ5を構成する各擬似セル5aの学習積算値w(wa1,wa2,wa3,wa4)の「0」への初期化((wa1,wa2,wa3,wa4)=(0,0,0,0))を行う。次に、ステップS13において、上記した未学習マップのm×m(5×5)以上の未学習セルからなる比較的大きな抽出ブロックの中から学習データx(x,x,x,x)とのベクトル間距離が最も小さいブロック重みデータBを有する抽出ブロックを選択する。たとえば、図6に示すように、未学習マップ4から抽出し得る5×5以上のセルからなる全ての抽出ブロックの中で、5×5の抽出ブロック50が学習データxとのベクトル間距離が最も小さいブロック重みデータBを有する場合には、この抽出ブロック50を選択ブロックとして選択する。また、この選択ブロックのブロック重みデータは、B(bs1,bs2,bs3,bs4)とする。
【0036】
次に、ステップS14において、量子化誤差errの算出を行う。この量子化誤差errの算出は、以下の式(5)によって行う。なお、1個目の学習データxの学習演算の際には、以下の式(5)において、ステップS3(図3参照)で設定したように、直前量子化誤差err(before)=0となる。
【0037】
量子化誤差err=err(before)+{(x−bs1+(x−bs2+(x−bs3+(x−bs41/2・・・(5)
次に、ステップS15において、擬似マップの学習対象ブロックを構成する全ての擬似セルに対して学習データx(x,x,x,x)を学習させるための学習演算を行う。なお、学習対象ブロックとは、擬似マップから選択されるとともに、学習データxが学習されるブロックであり、ステップS13において選択した選択ブロックに対応するブロックである。すなわち、図6に示すように、未学習マップ4から選択ブロックとして抽出ブロック50を選択した場合には、図8に示すように、抽出ブロック50に対応する擬似マップ5のブロック51が学習対象ブロックとなる。また、学習演算は、w=w(before)+x/cで表される式を用いて、学習対象ブロックに含まれる擬似セルの有する学習前の学習積算値w(before)に学習データxに基づくベクトルデータ(x/c)を加算することにより擬似セルの学習積算値wを算出することによって行う。そして、この学習演算を学習対象ブロックに含まれる全ての擬似セルについて行うことにより、学習対象ブロックに含まれる全ての擬似セルの学習積算値wを算出する。なお、上記の式において、cは、学習対象ブロックに含まれる擬似セルの数である。
【0038】
たとえば、図8に示すように、5×5(=25個)の擬似セル5aからなる学習対象ブロック(ブロック51)において、学習前の学習積算値w(before)(wab1,wab2,wab3,wab4)を有する擬似セル52に対して学習データx(x,x,x,x)の学習演算を行う場合には、以下の式(6)〜式(9)に示すように、擬似セル52の学習積算値w(wa1,wa2,wa3,wa4)を算出する。なお、1個目の学習データxに対応する学習積算値wの演算では、ステップS12(図5参照)の処理により、以下の式(6)〜(9)においてwab1〜wab4は全て「0」となる。
【0039】
学習積算値wa1(要素1)=wab1+x/25・・・(6)
学習積算値wa2(要素2)=wab2+x/25・・・(7)
学習積算値wa3(要素3)=wab3+x/25・・・(8)
学習積算値wa4(要素4)=wab4+x/25・・・(9)
また、ステップS15において、学習対象ブロックの各擬似セルに対する学習データxの学習の度合いを表す学習負荷率divの積算値(div)の算出も行う。この学習負荷率の積算値divの算出は、擬似セルが有する学習演算前の学習負荷率をdiv(before)とし、学習対象ブロックに含まれる擬似セルの数をcとした場合に、div=div(before)+1/cで表される式を用いて行う。すなわち、この学習負荷率の積算値divは、学習データxを学習対象ブロックに学習させる毎に、その学習対象ブロックに含まれる擬似セルの数cの逆数を積算した値となる。具体的には、図8に示すように、5×5(=25個)の擬似セル5aからなる学習対象ブロック(ブロック51)に含まれる擬似セル52について学習負荷率の積算値divを算出する場合には、以下の式(10)に示すように算出する。なお、1個目の学習データxに対応する学習負荷率の積算値divの演算では、学習演算前の学習負荷率div(before)は「0」であるので、以下の式(10)においてdiv(before)=0となる。
【0040】
学習負荷率の積算値div=div(before)+1/25・・・(10)
次に、ステップS16において、学習データxの個数分(全ての学習データx)の学習演算が終了したかどうかが判断される。学習データxの個数分の学習演算が終了した場合には、次のステップS17に進む。一方、学習データxの個数分の学習演算が終了していない場合には、上記したステップS13〜S16を繰り返し実行する。
【0041】
次に、ステップS17において、未学習マップを構成する全ての未学習セルのベクトルデータに擬似マップの擬似セルが有する学習積算値wを反映させるための演算を行う。この演算では、ステップS15で算出した学習積算値w(wa1,wa2,wa3,wa4)および学習負荷率の積算値divを用いてw=w/divで表される式により、擬似セルの学習積算値wを反映させた未学習セルのベクトルデータw(w,w,w,w)を算出する。具体的には、以下の式(11)〜(14)に示すように学習積算値wを反映させた未学習セルのベクトルデータw(w,w,w,w)を算出する。
【0042】
学習積算値wa1を反映させた未学習セルのベクトルデータw=wa1/div・・・(11)
学習積算値wa2を反映させた未学習セルのベクトルデータw=wa2/div・・・(12)
学習積算値wa3を反映させた未学習セルのベクトルデータw=wa3/div・・・(13)
学習積算値wa4を反映させた未学習セルのベクトルデータw=wa4/div・・・(14)
上記式(11)〜式(14)により、たとえば、学習データX1(0.03,3.1,0.2,2.8)が学習された5×5の学習対象ブロックと、学習データX2(0.4,2.9,0.2,2.7)が学習された3×3の学習対象ブロックと、学習データX3(0.01,3.2,0.1,2.9)が学習された4×4の学習対象ブロックとに含まれた所定の擬似セルが有する学習積算値wを未学習セルのベクトルデータに反映させる場合には、その未学習セルのベクトルデータw(w,w,w,w)は、以下の式(15)〜式(18)のように算出される。
【0043】
=(0.03×1/25+0.4×1/9+0.01×1/16)/(1/25+1/9+1/16)=0.22・・・(15)
=(3.1×1/25+2.9×1/9+3.2×1/16)/(1/25+1/9+1/16)=3.03・・・(16)
=(0.2×1/25+0.2×1/9+0.1×1/16)/(1/25+1/9+1/16)=0.17・・・(17)
=(2.8×1/25+2.7×1/9+2.9×1/16)/(1/25+1/9+1/16)=2.78・・・(18)
なお、学習積算値wを学習負荷率の積算値divで割ることにより、未学習セルのベクトルデータwを求めるのは、以下の理由による。すなわち、学習積算値wは、学習データxを学習対象ブロックに含まれる擬似セルの数cで割ったベクトルデータx/cを積算することによって求められるので、学習積算値wは、学習対象ブロックに含まれる擬似セルの数cの逆数1/cの要素が蓄積された値になる。このため、学習積算値wに蓄積された1/cの要素を除去して未学習セルのベクトルデータwを算出するために、学習積算値wを1/cの積算値である学習負荷率の積算値divで割ることにより未学習セルのベクトルデータwを求めている。なお、この場合にも、学習対象ブロックに含まれる擬似セルの数cに対応する各学習データxの学習度合い(学習データxの影響の割合)の要素は残しながら、未学習セルのベクトルデータwが求められる。すなわち、上記式(15)を式変形することにより、以下の式(19)のように表すことができる。
【0044】
=(144×0.03+400×0.4+225×0.01)/769・・・(19)
この式(19)により、3つの学習データ(0.03、0.4および0.01)にそれぞれかかる係数の中で、3×3の擬似セルからなる学習対象ブロックに学習される0.4の学習データにかかる係数(400)が最も大きいとともに、4×4の擬似セルからなる学習対象ブロックに学習される0.01の学習データにかかる係数(225)がその次に大きいとともに、5×5の擬似セルからなる学習対象ブロックに学習される0.03の学習データにかかる係数(144)が最も小さいことが判る。これにより、3×3の最も小さい学習対象ブロックから、4×4および5×5へ学習対象ブロックの大きさが大きくなるにつれて、学習データxの影響の割合(学習の度合い)が小さくなるように、未学習セルのベクトルデータwが算出されることが判る。
【0045】
上記式(11)〜(14)により、擬似マップを構成する全ての擬似セルに対応する未学習マップの全ての未学習セルについてそれぞれ学習積算値wを反映させたベクトルデータwを算出する。そして、算出したベクトルデータwによって各未学習セルの有するベクトルデータを書き換える。
【0046】
次に、図3のステップS5において、学習回数が予め設定された規定値D1に達したか、または、量子化誤差errと直前量子化誤差err(before)との差が予め設定された規定値D2よりも小さいかが判断される。なお、学習回数とは、ステップS3〜S5による学習サイクルが実行された回数を意味する。学習回数が規定値D1に達したか、または、量子化誤差errと直前量子化誤差err(before)との差が規定値D2よりも小さい場合には、次のステップS6に進む。一方、学習回数が規定値D1に達しておらず、かつ、量子化誤差errと直前量子化誤差err(before)との差が規定値D2以上の場合には、ステップS3〜S5による学習サイクルを繰り返し実行する。
【0047】
次に、ステップS6以降では、学習の後半段階である通常学習段階に進む。通常学習段階は、ステップS6〜S9によって構成されている。この通常学習段階では、グローバルエリア学習段階に比べて小さなブロックまでを対象として学習データxを学習させる。これにより、通常学習段階では、グローバルエリア学習段階に比べて、より細かく擬似マップに学習データxが学習される。ステップS6における抽出ブロック(m×m)の大きさの設定では、擬似マップから抽出し得る全てのブロックを対象として学習データxを学習させるために、m=2に設定する。これにより、サブルーチンのステップS11(図5参照)において、2×2=4個(=N個)以上のセルからなる全てのブロックが抽出ブロックとして未学習マップから抽出される。そして、抽出した全ての抽出ブロックについてブロック重みデータを算出するとともに、全ての抽出ブロックの中から学習データxとのベクトル間距離が最も小さいブロック重みデータを有するブロックを選択ブロックとして選択する。そして、選択した選択ブロックに対応する擬似マップの学習対象ブロックに対して学習データxの学習演算を行う。そして、この学習演算によって算出した学習対象ブロックに含まれる各擬似セルの学習積算値wを未学習マップの各未学習セルが有するベクトルデータに反映させる。
【0048】
また、通常学習段階では、ステップS9(図3参照)において、学習回数が予め設定された規定値D3に達したか、または、量子化誤差errと直前量子化誤差err(before)との差が予め設定された規定値D4よりも小さいかを判断する。これにより、ステップS7〜S9からなる学習サイクルは、学習回数が規定値D3に達するか、または、量子化誤差errと直前量子化誤差err(before)との差が規定値D4よりも小さくなるまで行われる。なお、通常学習段階における学習回数の規定値D3は、グローバルエリア学習段階における学習回数の規定値D1よりも大きい値に設定する。これにより、通常学習段階では、グローバルエリア学習段階よりも多くの学習サイクルが実行される。また、通常学習段階における量子化誤差errと直前量子化誤差err(before)との差の規定値D4は、グローバルエリア学習段階における量子化誤差errと直前量子化誤差err(before)との差の規定値D2よりも小さい値に設定する。これにより、通常学習段階では、グローバルエリア学習段階よりも量子化誤差errと直前量子化誤差err(before)との差が小さくなるまで学習サイクルが実行される。ステップS6〜S9からなる通常学習段階の上記以外の処理方法は、上記したステップS2〜S5からなるグローバルエリア学習段階の処理方法と同様である。
【0049】
上記のようにして、擬似マップに学習データxを学習させるとともに、学習させた擬似マップの擬似セルが有する学習積算値wを未学習マップの未学習セルが有するベクトルデータに反映させることにより自己組織化マップを作成する。
【0050】
第1実施形態では、上記のように、複数の未学習セル4aに対応するとともに、学習前の学習積算値w(before)を有する複数の擬似セル5aを含む擬似マップ5に、学習データxを学習させた後、学習された擬似マップ5の擬似セル5aが有する学習積算値wを未学習マップ4の擬似セル5aに対応する未学習セル4aに反映させることによって、複数の学習データxを順次学習させる場合に、全ての学習データxを擬似マップ5に学習させる間は、未学習マップ4の各未学習セル4aのベクトルデータは変化されない。これにより、未学習マップ4で学習データxを学習させるべき未学習セル4aを選択した後、その選択された未学習マップ4の未学習セル4a(選択ブロック)に対応する擬似マップ5の擬似セル5a(学習対象ブロック)に学習データxを学習させることによって、未学習マップ4で学習データxを学習させるべき未学習セル4aを選択する際に、未学習マップ4の未学習セル4aのベクトルデータは変化しないので、学習データxを学習させる順番によって、未学習マップ4の選択される未学習セル4aが異なるという不都合が生じない。これにより、複数の学習データxを学習させる場合にも、学習データxを学習させる順番によって得られる自己組織化マップ3が異なるのを抑制することができる。したがって、学習データxを学習させる順番にかかわらず、未知データを正しく分類することができる未知データの分類に有用な分類支援マップを作成することができる。
【0051】
また、第1実施形態では、未学習マップ4の抽出ブロックの中から学習データxに対応する選択ブロックを選択するとともに、選択ブロックに対応する擬似マップ5の学習対象ブロックに含まれる擬似セル5aに学習データxを学習させることによって、学習データxに対応する単一のセルとその近傍領域のセルに対して学習データxを学習させる場合と異なり、学習データxを学習させる近傍領域の範囲を設定するための近傍関数を設定する必要がない。これにより、近傍関数の設定に熟練していない者でも、容易に、学習データxを学習させることができるので、容易に、自己組織化マップ3を作成することができる。
【0052】
また、第1実施形態では、5×5=25個(M個)以上の擬似セル5aからなる学習対象ブロック毎に、学習対象ブロックに含まれる各擬似セル5aに学習データxを学習させるとともに、擬似マップ5の各擬似セル5aが有する学習積算値wを未学習マップ4の各未学習セル4aに反映させた後、2×2=4個(N個(N<M))以上の擬似セル5aからなる学習対象ブロック毎に、学習対象ブロックに含まれる各擬似セル5aに学習データxを学習させるとともに、擬似マップ5の各擬似セル5aが有する学習積算値wを未学習マップ4の各未学習セル4aに反映させることによって、25個以上の擬似セル5aを含む比較的大きな学習対象ブロック毎に、比較的粗く学習データxを学習させた後、4個以上の擬似セル5aを含む比較的小さな学習対象ブロック毎にも、比較的細かく学習データxを学習させることができる。これにより、最初から比較的小さな学習対象ブロック毎に学習データxを学習させる場合と異なり、類似した学習積算値wを有する複数の擬似セル5aからなる領域が擬似マップ5上に局所的な固まりを有した状態で複数に分散して形成されるのを抑制することができる。このため、擬似マップ5の学習積算値5aを未学習マップ4に反映させて作成する自己組織化マップ3上に、類似したベクトルデータを有する複数のセル3aからなる領域が局所的な固まりを有した状態で複数に分散して形成されるのを抑制することができる。
【0053】
次に、図9〜図13を参照して、第1実施形態による自己組織化マップ作成方法のクラス分けアルゴリズムについて説明する。
【0054】
(クラス分けアルゴリズム)
このクラス分けアルゴリズムでは、上記学習アルゴリズムによって作成した自己組織化マップを構成するセルのクラス分けを行う。なお、クラスとは、学習データxを分類するために各学習データxに与えられた分類名である。第1実施形態では、各学習データxがα、β、γの3つのクラスのいずれか1つに分類されているとともに、自己組織化マップを構成するセルをα、β、γの3つのクラスに分類する場合について説明する。また、自己組織化マップを構成する各セルは、各クラスに属する可能性割合を示すクラス所属値Rを有している。第1実施形態では、各セルは3つのクラス所属値(Rα、RβおよびRγ)を有している。
【0055】
まず、図9に示すように、ステップS21において、自己組織化マップ3(図10参照)を構成する全てのセル3aのクラス所属値Rを「0」に初期化する。すなわち、図10に示すように、自己組織化マップ3を構成する全てのセル3aのα、βおよびγクラスに対応するクラス所属値Rα、RβおよびRγを「0」に設定する。
【0056】
次に、ステップS22において、自己組織化マップ3から2×2以上の縦横に同数のセル3aが配置された全てのブロックを抽出するとともに、その抽出した全てのブロック(抽出ブロック)についてブロック重みデータB(bj1,bj2,bj3,bj4)を算出する。このブロック重みデータBは、上記学習アルゴリズムによるブロック重みデータB(式(1)〜式(4)参照)と同様にして算出する。すなわち、図11に示すように、2×2=4個のセル3aからなる抽出ブロック53を抽出した場合には、以下の式(20)〜式(23)に示すようにブロック重みデータB(bj1,bj2,bj3,bj4)を算出する。なお、以下の式(20)〜式(23)において、a1〜a1と、a2〜a2と、a3〜a3と、a4〜a4とは、それぞれ、抽出ブロック53に含まれる各セル3aの要素1〜要素4の値である。
【0057】
ブロック重みデータbj1=(a1+a1+a1+a1)/4・・・(20)
ブロック重みデータbj2=(a2+a2+a2+a2)/4・・・(21)
ブロック重みデータbj3=(a3+a3+a3+a3)/4・・・(22)
ブロック重みデータbj4=(a4+a4+a4+a4)/4・・・(23)
次に、ステップS23において、クラス分けの対象となるクラス分け対象ブロックの決定を行う。このクラス分け対象ブロックの決定は、上記の2×2以上のセル3aからなる全ての抽出ブロックの中から学習データx(x,x,x,x)とのベクトル間距離が最も小さいブロック重みデータBを有するブロックを選択することにより行う。たとえば、図12に示すように、自己組織化マップ3から抽出し得る全ての抽出ブロックの中で、3×3のブロック54が学習データxとのベクトル間距離が最も小さいブロック重みデータBを有する場合には、このブロック54をクラス分け対象ブロックに決定する。
【0058】
次に、ステップS24において、クラス分け対象ブロックに含まれる全てのセル3aのクラス所属値Rを算出する。このクラス所属値Rの算出は、以下の式(24)による演算によって行う。なお、以下の式(24)において、Rの「d」は、上記ステップS23において用いた学習データxの所属クラスである。つまり、式(24)の演算は、学習データxの所属クラスについてのみ行う。また、R(before)は、演算前のセル3aのdクラスに対応するクラス所属値である。また、uは、係数であり、たとえば、u=1/(dクラスに属する学習データxの個数)によって求められる。また、bは、クラス分け対象ブロックを構成するセル3aの数である。
【0059】
=R(before)+u(1/b)・・・(24)
具体的には、図12に示すように、αクラスに属する学習データxに対応して3×3=9個のセルからなるブロック54をクラス分け対象ブロックに決定するとともに、そのクラス分け対象ブロック(ブロック54)中の9個のセル55のクラス所属値Rαを算出する場合には、以下の式(25)により算出する。なお、1個目の学習データxに対応するクラス所属値の演算では、ステップS21の処理により、以下の式(25)において、Rα(before)=0となる。
【0060】
α=Rα(before)+u(1/9)・・・(25)
全ての学習データxについて、クラス分け対象ブロックを決定するとともに、そのクラス分け対象ブロックに含まれる全てのセル3aについて各学習データxの所属クラス(α、βまたはγ)のクラス所属値Rを上記した式(24)の演算により求める。このようなクラス所属値Rの演算処理により各セル3aのそれぞれについて、各クラスα、β、γのクラス所属値Rα、Rβ、Rγが算出される。
【0061】
次に、ステップS25において、学習データxの個数分(全ての学習データx)のクラス所属値Rの演算が終了したかどうかが判断される。学習データxの個数分のクラス所属値Rの演算が終了した場合には、次のステップS26に進む。一方、学習データxの個数分のクラス所属値Rの演算が終了していない場合には、ステップS22〜S25を繰り返し実行する。
【0062】
次に、ステップS26において、自己組織化マップ3を構成する全てのセル3aの所属クラスを決定する。この所属クラスの決定では、各セル3aの有するクラス所属値R(Rα、Rβ、Rγ)の中で最大の値を有するクラスをそのセル3aの所属クラスに決定する。たとえば、図13に示すように、セル56がRα=3、Rβ=0.1、Rγ=0.4のクラス所属値をそれぞれ有している場合には、αクラスのクラス所属値Rαが最大であるので、セル56の所属クラスは、αクラスに決定する。このようにして、図13に示すように、全てのセル3aの所属クラスを決定することによって、自己組織化マップ3を構成する全てのセル3aのクラス分けを行う。
【0063】
(第2実施形態)
図14は、本発明の第2実施形態による自己組織化マップ作成方法の学習アルゴリズムのサブルーチンを説明するためのフローチャートである。次に、図14を参照して、本発明の第2実施形態による自己組織化マップ作成方法の学習アルゴリズムについて説明する。
【0064】
第2実施形態による自己組織化マップ作成方法の学習アルゴリズムでは、上記第1実施形態による自己組織化マップ作成方法の学習アルゴリズムと異なり、学習対象ブロックに含まれる擬似セルに対する学習演算の際に、学習対象ブロックに含まれる全ての擬似セルが有する学習前の学習積算値w(before)に、学習データxと選択ブロックに含まれる未学習セルが有するベクトルデータwとの差に基づくベクトルデータをそれぞれ加算する。これにより、学習対象ブロックに含まれる擬似セルの学習積算値wが算出される。すなわち、第2実施形態では、図14に示すように、ステップS25において、w=w(before)+t・(x−w)/cで表される式を用いて、学習対象ブロックに含まれる擬似セルの有する学習前の学習積算値w(before)に、学習データxと選択ブロックに含まれる未学習セルが有するベクトルデータwとの差に基づくベクトルデータ(t・(x−w)/c)を加算することにより擬似セルの学習積算値wを算出する。そして、この学習演算を学習対象ブロックに含まれる全ての擬似セルについて行うことにより、学習対象ブロックに含まれる全ての擬似セルの学習積算値wを算出する。なお、上記の式において、tは、学習データxを擬似セルに学習させる度合いを表す定数であり、cは、学習対象ブロックに含まれる擬似セルの数である。
【0065】
具体的には、5×5(=25個)の擬似セル5a(図8参照)からなる学習対象ブロック(ブロック51)において、学習前の学習積算値w(before)(wab1,wab2,wab3,wab4)を有する擬似セル52に対して学習データx(x,x,x,x)の学習演算を行う場合には、以下の式(26)〜式(29)に示すように、擬似セル52の学習積算値w(wa1,wa2,wa3,wa4)を算出する。なお、この際、擬似セル52に対応する未学習マップ4(図6参照)の選択ブロック(抽出ブロック50)内の未学習セルは、ベクトルデータw(wb1,wb2,wb3,wb4)を有しているとする。
【0066】
学習積算値wa1(要素1)=wab1+t・(x−wb1)/25・・・(26)
学習積算値wa2(要素2)=wab2+t・(x−wb2)/25・・・(27)
学習積算値wa3(要素3)=wab3+t・(x−wb3)/25・・・(28)
学習積算値wa4(要素4)=wab4+t・(x−wb4)/25・・・(29)
また、第2実施形態では、ステップ27の未学習マップを構成する全ての未学習セルのベクトルデータに対して擬似マップの擬似セルが有する学習積算値wを反映させるための演算において、w=w+v・wで表される式により、擬似セルの学習積算値wを反映させた未学習セルのベクトルデータw(w,w,w,w)を算出する。なお、この式において、vは係数である。具体的には、以下の式(30)〜式(33)に示すように学習積算値wを反映させた未学習セルのベクトルデータw(w,w,w,w)を算出する。
【0067】
学習積算値wa1を反映させた未学習セルのベクトルデータw=wb1+v・wa1・・・(30)
学習積算値wa2を反映させた未学習セルのベクトルデータw=wb2+v・wa2・・・(31)
学習積算値wa3を反映させた未学習セルのベクトルデータw=wb3+v・wa3・・・(32)
学習積算値wa4を反映させた未学習セルのベクトルデータw=wb4+v・wa4・・・(33)
なお、第2実施形態では、上記第1実施形態と異なり、学習負荷率の積算値divを求めないとともに、学習対象ブロックに含まれる擬似セルの数cの逆数1/cが蓄積された学習積算値wを学習負荷率の積算値divで割ることなく、未学習セルのベクトルデータwを求める。
【0068】
上記式(30)〜式(33)により、たとえば、学習データX1(0.03,3.1,0.2,2.8)が学習された5×5の学習対象ブロックと、学習データX2(0.4,2.9,0.2,2.7)が学習された3×3の学習対象ブロックと、学習データX3(0.01,3.2,0.1,2.9)が学習された4×4の学習対象ブロックとに含まれた所定の擬似セルが有する学習積算値wをベクトルデータ(0.02,2.9,0.22,2.7)を有する未学習セルに反映させる場合には、その未学習セルのベクトルデータw(w,w,w,w)は、以下の式(34)〜式(37)のように算出される。なお、この場合、係数v=1とする。
【0069】
=0.02+1×(1×(0.03−0.02)/25+1×(0.4−0.02)/9+1×(0.01−0.02)/16)=0.06・・・(34)
=2.9+1×(1×(3.1−2.9)/25+1×(2.9−2.9)/9+1×(3.2−2.9)/16)=2.93・・・(35)
=0.22+1×(1×(0.2−0.22)/25+1×(0.2−0.22)/9+1×(0.1−0.22)/16)=0.21・・・(36)
=2.7+1×(1×(2.8−2.7)/25+1×(2.7−2.7)/9+1×(2.9−2.7)/16)=2.72・・・(37)
上記式(30)〜(33)により、擬似マップを構成する全ての擬似セルに対応する未学習マップの全ての未学習セルについて、それぞれ学習積算値wを反映させたベクトルデータwを算出する。そして、算出したベクトルデータwによって各未学習セルの有するベクトルデータを書き換える。第2実施形態による自己組織化マップ作成方法の上記以外の処理方法は、上記第1実施形態による自己組織化マップ作成方法の処理方法と同様である。
【0070】
第2実施形態では、上記のように、複数の未学習セル4aに対応するとともに、学習前の学習積算値w(before)を有する複数の擬似セル5aを含む擬似マップ5に、学習データxを学習させた後、学習された擬似マップ5の擬似セル5aが有する学習積算値wを未学習マップ4の擬似セル5aに対応する未学習セル4aに反映させることによって、複数の学習データxを順次学習させる場合に、全ての学習データxを擬似マップ5に学習させる間は、未学習マップ4の各未学習セル4aのベクトルデータは変化されない。これにより、未学習マップ4で学習データxを学習させるべき未学習セル4aを選択した後、その選択された未学習マップ4の未学習セル4a(選択ブロック)に対応する擬似マップ5の擬似セル5a(学習対象ブロック)に学習データxを学習させることによって、未学習マップ4で学習データxを学習させるべき未学習セル4aを選択する際に、未学習マップ4の未学習セル4aのベクトルデータは変化しないので、学習データxを学習させる順番によって、未学習マップ4の選択される未学習セル4aが異なるという不都合が生じない。これにより、複数の学習データxを学習させる場合にも、学習データxを学習させる順番によって得られる自己組織化マップ3が異なるのを抑制することができる。したがって、学習データxを学習させる順番にかかわらず、未知データを正しく分類することができる未知データの分類に有用な分類支援マップを作成することができる。
【0071】
第2実施形態による上記以外の効果は、上記第1実施形態による効果と同様である。
【0072】
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
【0073】
たとえば、上記実施形態では、本発明の分類支援マップ作成方法およびそれを実行するためのプログラムならびに分類支援マップ作成装置の一例としての自己組織化マップ作成方法およびそれを実行するためのプログラムならびに自己組織化マップ作成装置について説明したが、本発明はこれに限らず、自己組織化マップ作成方法およびそれを実行するためのプログラムならびに自己組織化マップ作成装置以外の分類支援マップ作成方法およびそれを実行するためのプログラムならびに分類支援マップ作成装置についても本発明を適用することができる。
【0074】
また、上記実施形態では、学習アルゴリズムにおいて、ベクトルデータを全く有していないセルからなるマップの各セルに対して、乱数表を用いて所定のベクトルデータを割り付けることにより、未学習マップの準備を行ったが、本発明はこれに限らず、上記以外の方法を用いて未学習マップの準備を行ってもよい。たとえば、ベクトルデータを全く有していないセルからなるマップの全てのセルに対して、全ての要素が「0」からなるベクトルデータを割り付けることなどにより、未学習マップの準備を行ってもよい。
【0075】
また、上記第2実施形態では、学習積算値wを学習負荷率の積算値divで割ることなく未学習セルのベクトルデータwを求めたが、本発明はこれに限らず、上記第2実施形態による学習データxと未学習セルのベクトルデータとの差分を積算することにより学習積算値wを求める方法の場合にも、学習積算値wを学習負荷率の積算値divで割ることにより未学習セルのベクトルデータwを求めるようにしてもよい。
【0076】
また、上記実施形態では、マップを構成する各セルをマス目によって表したが、本発明はこれに限らず、各セルをマス目以外の種々の形状によって表してもよい。たとえば、各セルを円や点などによって表してもよい。
【0077】
また、上記実施形態では、自己組織化マップの各セルをα、βおよびγの3つのクラスにクラス分けした例について説明したが、本発明はこれに限らず、自己組織化マップの各セルを3つ以外のクラスにクラス分けする場合にも、本発明を適用することができる。
【0078】
また、上記実施形態では、ベクトルデータとして4個の要素からなるベクトルデータを用いたが、本発明はこれに限らず、2個以上の要素からなるベクトルデータであればよい。
【0079】
また、上記実施形態では、ブロックデータとしてブロックに含まれる全てのセルの各要素の重みの平均値を用いたが、本発明はこれに限らず、ブロックデータとしてブロックに含まれる全てのセルの各要素の重みの標準偏差などを用いてもよい。
【0080】
また、上記実施形態では、未学習マップおよび擬似マップとして、縦横に同数のセルが配置されたマップを使用した例について説明したが、本発明はこれに限らず、未学習マップおよび擬似マップとして、縦横で配置されたセルの数が異なるマップを使用してもよい。
【図面の簡単な説明】
【0081】
【図1】本発明の第1実施形態による自己組織化マップ作成方法に用いる自己組織化マップ作成装置の構成を説明するための模式図である。
【図2】図1に示した第1実施形態による自己組織化マップ作成装置によって作成される自己組織化マップの構成を示した図である。
【図3】本発明の第1実施形態による自己組織化マップ作成方法の学習アルゴリズムを説明するためのフローチャートである。
【図4】本発明の第1実施形態による自己組織化マップ作成方法の学習アルゴリズムを説明するための図である。
【図5】図3に示した第1実施形態による学習アルゴリズムのサブルーチンを説明するためのフローチャートである。
【図6】本発明の第1実施形態による自己組織化マップ作成方法の学習アルゴリズムを説明するための図である。
【図7】本発明の第1実施形態による自己組織化マップ作成方法の学習アルゴリズムを説明するための図である。
【図8】本発明の第1実施形態による自己組織化マップ作成方法の学習アルゴリズムを説明するための図である。
【図9】本発明の第1実施形態による自己組織化マップ作成方法のクラス分けアルゴリズムを説明するためのフローチャートである。
【図10】本発明の第1実施形態による自己組織化マップ作成方法のクラス分けアルゴリズムを説明するための図である。
【図11】本発明の第1実施形態による自己組織化マップ作成方法のクラス分けアルゴリズムを説明するための図である。
【図12】本発明の第1実施形態による自己組織化マップ作成方法のクラス分けアルゴリズムを説明するための図である。
【図13】本発明の第1実施形態による自己組織化マップ作成方法のクラス分けアルゴリズムを説明するための図である。
【図14】本発明の第2実施形態による自己組織化マップ作成方法の学習アルゴリズムのサブルーチンを説明するためのフローチャートである。
【符号の説明】
【0082】
1 自己組織化マップ作成装置
2a 未学習マップ記憶部(未学習マップ記憶手段)
2b 擬似マップ記憶部(擬似マップ記憶手段)
2c ブロック選択部(ブロック選択手段)
2d 擬似マップ学習部(擬似マップ学習手段)
2e 未学習マップ反映部(未学習マップ反映手段)
2f ブロック重みデータ算出部(ブロックデータ算出手段)
2g ブロック重みデータ比較選択部(ブロックデータ比較選択手段)
2h 擬似セル学習部(擬似セル学習手段)
3 自己組織化マップ(分類支援マップ)
3a セル
4 未学習マップ
4a 未学習セル
5 擬似マップ
5a 擬似セル
50 抽出ブロック(ブロック、第3ブロック)


【特許請求の範囲】
【請求項1】
ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成方法であって、
それぞれが未学習のベクトルデータを有する複数の未学習セルを含む未学習マップを準備するステップと、
前記複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップを準備するステップと、
ベクトルデータからなる学習データを前記擬似マップに学習させるステップと、
学習された前記擬似マップの擬似セルが有するベクトルデータを前記未学習マップの前記擬似セルに対応する未学習セルに反映させるステップとを備えた、分類支援マップ作成方法。
【請求項2】
前記未学習マップから前記未学習セルの集合体からなる第1ブロックを選択するステップをさらに備え、
前記学習データを擬似マップに学習させるステップは、前記未学習マップの前記第1ブロックに対応する前記擬似マップの第2ブロックに含まれる前記擬似セルに前記学習データを学習させるステップを含む、請求項1に記載の分類支援マップ作成方法。
【請求項3】
前記未学習マップから第1ブロックを選択するステップは、
前記未学習マップから抽出される、前記未学習セルの集合体からなる複数のブロック毎に、前記ブロックに含まれる複数の前記未学習セルの未学習のベクトルデータに基づいて、前記ブロックのベクトルデータとしてのブロックデータを算出するステップと、
前記学習データを前記複数のブロックのブロックデータと比較して、前記複数のブロックの中から前記学習データに対応する前記ブロックデータを有する第1ブロックを選択するステップとを含む、請求項2に記載の分類支援マップ作成方法。
【請求項4】
前記第2ブロックに含まれる擬似セルに学習データを学習させるステップは、前記第2ブロックに含まれる全ての前記擬似セルの有するベクトルデータに、前記学習データに基づくベクトルデータをそれぞれ加算するステップを含む、請求項2または3に記載の分類支援マップ作成方法。
【請求項5】
前記学習データに基づくベクトルデータを加算するステップは、前記第2ブロックに含まれる擬似セルの有するベクトルデータをwとし、前記学習データをxとし、前記第2ブロックに含まれる擬似セルの数をcとした場合に、w+x/cで表される式に基づいて、前記第2ブロックに含まれる擬似セルの有するベクトルデータに前記学習データに基づくベクトルデータをそれぞれ加算するステップを含む、請求項4に記載の分類支援マップ作成方法。
【請求項6】
前記第2ブロックに含まれる擬似セルに学習データを学習させるステップは、前記第2ブロックに含まれる全ての前記擬似セルの有するベクトルデータに、前記学習データと前記第1ブロックの未学習セルが有する未学習のベクトルデータとの差に基づくベクトルデータをそれぞれ加算するステップを含む、請求項2または3に記載の分類支援マップ作成方法。
【請求項7】
前記学習データと前記第1ブロックの未学習セルが有する未学習のベクトルデータとの差に基づくベクトルデータを加算するステップは、前記第2ブロックに含まれる擬似セルの有するベクトルデータをwとし、定数をtとし、前記学習データをxとし、前記第1ブロックの未学習セルが有する未学習のベクトルデータをwとし、前記第2ブロックに含まれる擬似セルの数をcとした場合に、w+t・(x−w)/cで表される式に基づいて、前記第2ブロックに含まれる擬似セルの有するベクトルデータに、前記学習データと前記第1ブロックの未学習セルが有する未学習のベクトルデータとの差に基づくベクトルデータをそれぞれ加算するステップを含む、請求項6に記載の分類支援マップ作成方法。
【請求項8】
前記学習データを擬似マップに学習させるステップは、前記擬似セルに対する前記学習データの学習の度合いを表す学習負荷率をdivとし、前記第2ブロックに含まれる擬似セルの数をcとした場合に、div+1/cで表される式に基づいて、前記学習負荷率の積算値を算出するステップを含み、
前記擬似マップの擬似セルが有するベクトルデータを未学習マップの擬似セルに対応する未学習セルに反映させるステップは、前記学習データが学習された前記擬似マップの擬似セルが有するベクトルデータを前記学習負荷率の積算値で割ることにより、前記学習データが学習された前記擬似セルが有するベクトルデータを反映させた前記未学習セルのベクトルデータを算出するステップを含む、請求項2〜7のいずれか1項に記載の分類支援マップ作成方法。
【請求項9】
前記学習データを擬似マップに学習させるステップを全ての学習データについて実行した後に、前記擬似マップのベクトルデータを未学習マップに反映させるステップを実行する、請求項1〜8のいずれか1項に記載の分類支援マップ作成方法。
【請求項10】
前記未学習マップから抽出されるM個以上の前記未学習セルの集合体からなる複数の第3ブロック毎に、前記ブロックデータを算出するステップと、前記複数の第3ブロックの中から前記第1ブロックを選択するステップと、前記第1ブロックに対応する前記第2ブロックに含まれる擬似セルに学習データを学習させるステップと、前記擬似マップのベクトルデータを未学習マップに反映させるステップとが実行された後、
前記未学習マップから抽出されるN個(N<M)以上の前記未学習セルの集合体からなる複数の第4ブロック毎に、前記ブロックデータを算出するステップと、前記複数の第4ブロックの中から前記第1ブロックを選択するステップと、前記第1ブロックに対応する前記第2ブロックに含まれる擬似セルに学習データを学習させるステップと、前記擬似マップのベクトルデータを未学習マップに反映させるステップとが実行される、請求項2〜9のいずれか1項に記載の分類支援マップ作成方法。
【請求項11】
ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成装置であって、
それぞれが未学習のベクトルデータを有する複数の未学習セルを含む未学習マップを記憶する未学習マップ記憶手段と、
前記複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップを記憶する擬似マップ記憶手段と、
ベクトルデータからなる学習データを前記擬似マップに学習させる擬似マップ学習手段と、
学習された前記擬似マップの擬似セルが有するベクトルデータを前記未学習マップの前記擬似セルに対応する未学習セルに反映させる未学習マップ反映手段とを備えた、分類支援マップ作成装置。
【請求項12】
前記未学習マップから前記未学習セルの集合体からなる第1ブロックを選択するブロック選択手段をさらに備え、
前記擬似マップ学習手段は、前記未学習マップの前記第1ブロックに対応する前記擬似マップの第2ブロックに含まれる前記擬似セルに前記学習データを学習させる擬似セル学習手段を含む、請求項11に記載の分類支援マップ作成装置。
【請求項13】
前記ブロック選択手段は、
前記未学習マップから抽出される、前記未学習セルの集合体からなる複数のブロック毎に、前記ブロックに含まれる複数の前記未学習セルの未学習のベクトルデータに基づいて、前記ブロックのベクトルデータとしてのブロックデータを算出するブロックデータ算出手段と、
前記学習データを前記複数のブロックのブロックデータと比較して、前記複数のブロックの中から前記学習データに対応する前記ブロックデータを有する第1ブロックを選択するブロックデータ比較選択手段とを含む、請求項12に記載の分類支援マップ作成装置。
【請求項14】
ベクトルデータからなる未知データの分類を支援する分類支援マップを作成するための分類支援マップ作成方法を実行するためのプログラムであって、
それぞれが未学習のベクトルデータを有する複数の未学習セルを含む未学習マップを読み出すステップと、
前記複数の未学習セルに対応するとともに、所定のベクトルデータを有する複数の擬似セルを含む擬似マップを読み出すステップと、
ベクトルデータからなる学習データを前記擬似マップに学習させるステップと、
学習された前記擬似マップの擬似セルが有するベクトルデータを前記未学習マップの前記擬似セルに対応する未学習セルに反映させるステップとを備えた、分類支援マップ作成方法を実行するためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate