(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】自己組織化マップの学習装置、方法およびプログラム並びに状態判定装置
(51)【国際特許分類】
G06N 3/088 20230101AFI20240213BHJP
G06F 11/07 20060101ALI20240213BHJP
G06F 18/232 20230101ALI20240213BHJP
【FI】
G06N3/088
G06F11/07 140Z
G06F11/07 151
G06F11/07 190
G06F18/232
(21)【出願番号】P 2019224869
(22)【出願日】2019-12-12
【審査請求日】2022-09-12
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100108523
【氏名又は名称】中川 雅博
(74)【代理人】
【識別番号】100098305
【氏名又は名称】福島 祥人
(74)【代理人】
【識別番号】100125704
【氏名又は名称】坂根 剛
(74)【代理人】
【識別番号】100187931
【氏名又は名称】澤村 英幸
(72)【発明者】
【氏名】長谷川 弘
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開平04-337406(JP,A)
【文献】特開平07-134157(JP,A)
【文献】特開2009-037565(JP,A)
【文献】徳高 平蔵 ほか,"自己組織化マップ(SOM)とその応用",日本ファジィ学会誌,日本ファジィ学会,2001年,第13巻, 第4号,pp. 3-13,ISSN 0915-647X
【文献】和田 容房,"複数勝者法による分散表現階層構造型自己学習モデル",電子情報通信学会論文誌,社団法人電子情報通信学会 ,2005年,第J88-D-II巻, 第3号,pp. 636-645,ISSN 0915-1923
【文献】吉田 英正 ほか,"複数勝者自己組織マップによる疑似直交情報の分離と領野形成",電子情報通信学会技術研究報告,社団法人電子情報通信学会,2004年,第104巻, 第139号,pp. 79-84,ISSN 0913-5685
【文献】WU, W et al.,"SOMO-m Optimization Algorithm with Multiple Winners",Discrete Dynamics in Nature and Society [online],2012年,Vol. 2012,pp. 1-13,[retrieved on 2024.01.24], Retrieved from the Internet: <URL: https://www.hindawi.com/journals/ddns/2012/969104/>,<DOI: 10.1155/2012/969104>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06F 11/07
G06F 18/232-18/2337
(57)【特許請求の範囲】
【請求項1】
観測空間を前記観測空間より低次元の潜在空間に変換する自己組織化マップの学習装置であって、
前記観測空間上の入力ベクトルと前記潜在空間上の各ニューロンの参照ベクトルとの間の距離Dを求める距離計算部と、
前記距離Dを最小とする最小値ニューロンを特定する最小値ニューロン特定部と、
前記最小値ニューロンがL個(Lは2以上)存在する場合、L個の前記最小値ニューロンからM個(Mは
2以上)の選択ニューロンを選択するニューロン選択部と、
M個の前記選択ニューロンを勝者ニューロンとして、前記潜在空間上の各ニューロンの参照ベクトルを更新する更新部と、を備える自己組織化マップの学習装置。
【請求項2】
前記ニューロン選択部は、
L個の前記最小値ニューロンからランダムにM個の前記選択ニューロンを選択するランダム選択部を含む、請求項1に記載の自己組織化マップの学習装置。
【請求項3】
前記更新部は、近傍関数の出力をMで除算する、請求項2に記載の自己組織化マップの学習装置。
【請求項4】
前記ニューロン選択部は、
選択するニューロンの個数Mを学習時間tに対して可変に設定する選択数決定部を含む、請求項1~3のいずれか一項に記載の自己組織化マップの学習装置。
【請求項5】
前記距離計算部は、前記距離Dを調整値A(Aは1より大きい数値)で除算する、請求項1~4のいずれか一項に記載の自己組織化マップの学習装置。
【請求項6】
前記調整値Aは、学習時間tが進むにつれて減少する関数f(t)で表される、請求項5に記載の自己組織化マップの学習装置。
【請求項7】
前記調整値Aは、調整幅bを用いて、学習時間tが進むにつれて減少する関数f(t)に対して、f(t)-bからf(t)+bの間の値がランダムに設定される、請求項5に記載の自己組織化マップの学習装置。
【請求項8】
前記調整幅bは、学習時間tに対して可変に設定される、請求項7に記載の自己組織化マップの学習装置。
【請求項9】
前記調整値Aは、学習時間tが進むにつれて減少する関数f(t)に対して、平均値がf(t)である正規分布に従う、請求項5に記載の自己組織化マップの学習装置。
【請求項10】
前記正規分布の分散は、学習時間tの対して可変に設定される、請求項9に記載の自己組織化マップの学習装置。
【請求項11】
前記距離は、ユークリッド距離を含む、請求項1~10のいずれか一項に記載の自己組織化マップの学習装置。
【請求項12】
前記距離は、ハミング距離を含む、請求項1~10のいずれか一項に記載の自己組織化マップの学習装置。
【請求項13】
前記観測空間の未知の状態の事象を計測して得られる観測データから入力ベクトルを取得する入力ベクトル取得部と、
前記入力ベクトルを請求項1~12に記載の
学習装置により学習された自己組織化マップを用いて前記潜在空間上のデータに変換する変換部と、
前記変換部において取得されたSOM出力データに基づいて、前記観測空間の状態を判定する判定部と、を備える状態判定装置。
【請求項14】
前記観測空間の未知の状態の事象を計測して得られる計測データから入力ベクトルを取得する入力ベクトル取得部と、
前記入力ベクトルを請求項1~12に記載の
学習装置により学習された自己組織化マップを用いて前記潜在空間上のデータに変換する変換部と、
前記変換部において取得されたSOM出力データに基づいて、前記観測空間に生じた故障の種別を判定する判定部と、を備える故障判定装置。
【請求項15】
コンピュータによって実行される、観測空間を前記観測空間より低次元の潜在空間に変換する自己組織化マップの学習方法であって、
前記観測空間上の入力ベクトルと前記潜在空間上の各ニューロンの参照ベクトルとの間の距離Dを求める距離計算工程と、
前記距離Dを最小とする最小値ニューロンを特定する最小値ニューロン特定工程と、
前記最小値ニューロンがL個(Lは2以上)存在する場合、L個の前記最小値ニューロンからM個(Mは
2以上)の選択ニューロンを選択するニューロン選択工程と、
M個の前記選択ニューロンを勝者ニューロンとして、前記潜在空間上の各ニューロンの参照ベクトルを更新する更新工程と、を備える自己組織化マップの学習方法。
【請求項16】
観測空間を前記観測空間より低次元の潜在空間に変換する自己組織化マップの学習方法を実行させるプログラムであって、
コンピュータに、
前記観測空間上の入力ベクトルと前記潜在空間上の各ニューロンの参照ベクトルとの間の距離Dを求める距離計算処理と、
前記距離Dを最小とする最小値ニューロンを特定する最小値ニューロン特定処理と、
前記最小値ニューロンがL個(Lは2以上)存在する場合、L個の前記最小値ニューロンからM個(Mは
2以上)の選択ニューロンを選択するニューロン選択処理と、
M個の前記選択ニューロンを勝者ニューロンとして、前記潜在空間上の各ニューロンの参照ベクトルを更新する更新処理と、を実行させる自己組織化マップの学習プログラム。
【請求項17】
前記観測空間の未知の状態の事象を計測して得られる観測データから入力ベクトルを取得する入力ベクトル取得工程と、
前記入力ベクトルを請求項15に記載の学習方法により学習された自己組織化マップを用いて前記潜在空間上のデータに変換する変換工程と、
前記変換工程において取得されたSOM出力データに基づいて、前記観測空間の状態を判定する判定工程と、を備え
、前記入力ベクトル取得工程、前記変換工程、および、前記判定工程がコンピュータにより実行される状態判定方法。
【請求項18】
コンピュータに、
前記観測空間の未知の状態の事象を計測して得られる観測データから入力ベクトルを取得する入力ベクトル取得処理と、
前記入力ベクトルを請求項16に記載の
学習プログラムにより学習された自己組織化マップを用いて前記潜在空間上のデータに変換する変換処理と、
前記変換処理において取得されたSOM出力データに基づいて、前記観測空間の状態を判定する判定処理と、を実行させる状態判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自己組織化マップを生成する技術、および、生成された自己組織化マップを用いて観測空間上の状態を判定する技術に関する。
【背景技術】
【0002】
自己組織化マップ(SOM:Self-Organizing Map)は、教師なし学習を行うニューラルネットワークである。SOMは、入力ベクトルを、それらの類似度に応じて自動的に分類するクラスタリング能力に優れる。SOMでは、高次元の観測空間上の入力ベクトルを、観測空間より低次元である潜在空間上のベクトルに写像することで、高次元の入力ベクトルを低次元のマップ上に投影することができる。SOMでは、例えば、投影された2次元のマップを観察することで、入力ベクトルのクラスタリングが可能となる。
【0003】
下記特許文献1においては、交通データを入力ベクトルとして学習を行い、自己組織化マップを生成している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1においては、自己組織化マップを生成するとき、勝者ユニットを決定し、勝者ユニットの重みベクトルを更新する処理が実行される。また、特許文献1においては、勝者ユニットの近傍に位置する近傍ユニットの重みベクトルを更新する処理が実行される。
【0006】
本発明の目的は、観測空間上の入力ベクトルが示す状態を効果的に自己組織化マップに反映させることである。
【課題を解決するための手段】
【0007】
(1)本発明の一局面に従う自己組織化マップの学習装置は、観測空間を観測空間より低次元の潜在空間に変換する自己組織化マップの学習装置であって、観測空間上の入力ベクトルと潜在空間上の各ニューロンの参照ベクトルとの間の距離Dを求める距離計算部と、距離Dを最小とする最小値ニューロンを特定する最小値ニューロン特定部と、最小値ニューロンがL個(Lは2以上)存在する場合、L個の最小値ニューロンからM個(MはLより小さい整数)の選択ニューロンを選択するニューロン選択部と、M個の選択ニューロンを勝者ニューロンとして、潜在空間上の各ニューロンの参照ベクトルを更新する更新部とを備える。
【0008】
本発明によれば、単一の勝者ニューロンが選択される場合と比較して、学習効率を向上させることができる。
【0009】
(2)ニューロン選択部は、L個の最小値ニューロンからランダムにM個の選択ニューロンを選択するランダム選択部を含んでもよい。学習処理にランダム性を持たせることができる。
【0010】
(3)更新部は、近傍関数の出力をMで除算してもよい。1つの入力ベクトルに対する学習量が過大となることを抑制することができる。
【0011】
(4)ニューロン選択部は、選択するニューロンの個数Mを学習時間tに対して可変に設定する選択数決定部を含んでもよい。学習処理にランダム性を持たせることができる。
【0012】
(5)距離計算部は、距離Dを調整値A(Aは1より大きい数値)で除算してもよい。最小の距離に近いニューロンについても勝者ニューロンとして学習させることが可能となり、学習効率が向上する。
【0013】
(6)調整値Aは、学習時間tが進むにつれて減少する関数f(t)で表されてもよい。学習の初期段階では学習の範囲を広く設定し、学習が進むにつれて局所的に学習処理が実行されるようにすることができる。
【0014】
(7)調整値Aは、調整幅bを用いて、学習時間tが進むにつれて減少する関数f(t)に対して、f(t)-bからf(t)+bの間の値がランダムに設定されてもよい。学習処理にランダム性を持たせることができる。
【0015】
(8)調整幅bは、学習時間tに対して可変に設定されてもよい。学習処理にランダム性を持たせることができる。
【0016】
(9)調整値Aは、学習時間tが進むにつれて減少する関数f(t)に対して、平均値がf(t)である正規分布に従うものであってもよい。学習処理にランダム性を持たせることができる。
【0017】
(10)正規分布の分散は、学習時間tの対して可変に設定されてもよい。学習処理にランダム性を持たせることができる。
【0018】
(11)距離は、ユークリッド距離を含んでもよい。
【0019】
(12)距離は、ハミング距離を含んでもよい。
【0020】
(13)本発明の他の局面に従う状態判定装置は、観測空間の未知の状態の事象を計測して得られる観測データから入力ベクトルを取得する入力ベクトル取得部と、入力ベクトルを上記(1)~(12)に記載の学習方法により学習された自己組織化マップを用いて潜在空間上のデータに変換する変換部と、変換部において取得されたSOM出力データに基づいて、観測空間の状態を判定する判定部とを備える。
【0021】
(14)本発明は、また、故障判定装置にも向けられている。
【0022】
(15)本発明は、また、自己組織化マップの学習方法およびプログラムにも向けられている。
【0023】
(16)本発明は、また、状態判定方法およびプログラムにも向けられている。
【発明の効果】
【0024】
本発明によれば、観測空間上の入力ベクトルが示す状態を効果的に自己組織化マップに反映させることができる。
【図面の簡単な説明】
【0025】
【
図1】
図1は、本実施の形態に係るSOM学習装置の機能ブロック図である。
【
図3】
図3は、最小値ニューロン取得部のブロック図である。
【
図4】
図4は、ニューロン選択部のブロック図である。
【
図6】
図6は、ユークリッド距離による学習処理の例を示す図である。
【
図7】
図7は、ハミング距離による学習処理の例を示す図である。
【
図8】
図8は、本実施の形態に係る故障判定装置が搭載された機器を示す図である。
【
図9】
図9は、故障判定装置の機能ブロック図である。
【
図10】
図10は、SOM学習装置および故障判定装置をプログラムにより実行するコンピュータを示す図である。
【
図11】
図11は、SOM学習処理を示すフローチャートである。
【
図12】
図12は、故障判定処理を示すフローチャートである。
【発明を実施するための形態】
【0026】
[1]SOMによる学習処理
次に、添付の図面を参照しながら本発明の実施の形態に係るSOM学習処理について説明する。
【0027】
(1)SOM学習装置の構成
図1は、本実施の形態に係るSOM学習装置1の機能ブロック図である。
図1に示すように、SOM学習装置1は、SOM学習データ10、データ入力部11、距離計算部12、最小値ニューロン特定部13、ニューロン選択部14および更新部15を備える。
【0028】
SOM学習データ10は、ハードディスク、メモリ等の記憶装置に格納される。本実施の形態においては、データ入力部11、距離計算部12、最小値ニューロン特定部13、ニューロン選択部14および更新部15は、ハードウェア回路により構成される場合を例に説明する。しかし、これら機能部11~15の一部または全部がCPU(Central Proccesing Unit)およびCPU上で動作するプログラムにより実現されてもよい。これら機能部11~15がプログラムにより実現される場合の実施の形態は後述する。
【0029】
データ入力部11は、観測データS1,S2,…,Snを入力する。観測データS1,S2,…,Snは、入力ベクトルx(t)を生成するための元となるデータである。本実施の形態においては、データ入力部11は、n次元の観測データS1,S2,…,Snを入力するが、データ入力部11が入力するデータは特に限定されるものではない。データ入力部11が、時系列のデジタル信号やアナログ信号を入力する形態であってもよい。
【0030】
データ入力部11は、観測データS1,S2,…,Snに基づいて入力ベクトルx(t)を生成する。データ入力部11は、入力ベクトルx(t)を、距離計算部12に出力する。また、データ入力部11は、入力ベクトルx(t)を、更新部15に出力する。
【0031】
図2は、SOM学習処理の概念図である。
図2において、入力層は、観測空間の入力ベクトルx(t)が入力される層である。
図2において、出力層は、潜在空間のニューロン(ノード)が配置される層である。この例では、出力層は、m
1×m
2の長方形の領域を有しており、m
1×m
2個のニューロンが配置されている。出力層のニューロンN
i,j(i=1,2,…,m
1、j=1,2,…,m
2)は、入力層の1点を示す参照ベクトルw
i,j(t-1)を保持している。
【0032】
距離計算部12は、入力ベクトルx(t)と参照ベクトルwi,j(t-1)との距離Di,jを計算する。距離計算部12は、潜在空間の全てのニューロンNi,jについて、入力ベクトルx(t)と参照ベクトルwi,j(t-1)との距離Di,jを計算する。距離計算部12は、距離Di,jとして、例えば、入力ベクトルx(t)と参照ベクトルwi,j(t-1)とのユークリッド距離を計算する。距離計算部12は、あるいは、距離Di,jとして、入力ベクトルx(t)と参照ベクトルwi,j(t-1)とのハミング距離を計算する。
【0033】
最小値ニューロン特定部13は、距離計算部12から距離Di,jを入力する。最小値ニューロン特定部13は、距離計算部12が計算した全てのNi,jに対する距離Di,jを入力する。つまり、最小値ニューロン特定部13は、m1×m2個の距離Di,jを入力する。最小値ニューロン特定部13は、入力したm1×m2個の距離Di,jの中で最小値をとる距離Di,jを特定する。つまり、最小値ニューロン特定部13は、入力ベクトルx(t)との距離が最小となるニューロンNi,jを特定する。最小値ニューロン特定部13は、特定した最小値ニューロンNp,qを示す最小値ニューロン指定情報Eminをニューロン選択部14に出力する。
【0034】
最小値ニューロン指定情報Eminは、以下の式で表される。
Emin={(p,q)|Dp,q≦Di,j}(0≦i≦m1,0≦j≦m2)
【0035】
最小値ニューロン特定部13は、入力ベクトルx(t)との距離が最小となる最小値ニューロンNp,qが複数存在する場合には、最小値ニューロン指定情報Eminに複数の最小値ニューロンNp,qを指定する情報を含める。最小値ニューロン特定部13の構成については、後で詳しく説明する。
【0036】
ニューロン選択部14は、最小値ニューロン特定部13から最小値ニューロン指定情報Eminを入力する。ニューロン選択部14は、最小値ニューロン指定情報Eminにおいて特定されている複数の最小値ニューロンNp,qから一部のニューロンを選択ニューロンNP,Qとして選択する。本実施の形態においては、ニューロン選択部14は、最小値ニューロン指定情報Eminにおいて特定されているL個(Lは整数)の最小値ニューロンNp,qからM個(MはLより小さい整数)のニューロンを選択ニューロンNP,Qとして選択する。ただし、最小値ニューロンNp,qの数が、L=1個である場合には、選択ニューロンNP,Qとして、最小値ニューロンNp,qがそのまま選択される。
【0037】
選択ニューロン指定情報Eselは、以下の式で表される。
Esel={(P,Q)|Esel⊂Emin,EselはEminからM個選択}
また選択ニューロンNP,Qは、以下の式で表される。
NP,Q=Ni,j((i,j)⊂Esel)
【0038】
ニューロン選択部14は、選択された選択ニューロンNP,Qを示す選択ニューロン指定情報Eselを更新部15に出力する。ニューロン選択部14の構成は、後で詳しく説明する。
【0039】
更新部15は、ニューロン選択部14から、選択ニューロン指定情報Eselを入力する。更新部15は、また、データ入力部11から、入力ベクトルx(t)を入力する。更新部15は、選択ニューロン指定情報Eselにより指定された全ての選択ニューロンNP,Qについて参照ベクトルの更新処理を実行する。
【0040】
更新部15による更新処理は、具体的には以下のとおりである。更新部15は、SOM学習データ10を参照し、選択ニューロンNP,Qについて参照ベクトルwP,Q(t-1)を取得する。次に、更新部15は、入力ベクトルx(t)と参照ベクトルwP,Q(t-1)との距離に基づいて、参照ベクトルwP,Q(t-1)を更新する。参照ベクトルwP,Q(t-1)を更新するとき、学習量は、近傍関数hにより決定される。
【0041】
更新部15は、また、近傍関数hを用いて選択ニューロンNP,Qと共に学習させる近傍ニューロンNnearを決定する。更新部15は、各選択ニューロンNP,Qに対して、近傍ニューロンNnearを決定する。そして、更新部15は、近傍ニューロンNnearについても入力ベクトルx(t)と参照ベクトルwnear(t-1)との距離に基づいて、参照ベクトルwnear(t-1)を更新する。更新部15は、M個の全ての選択ニューロンNP,Qについて、選択ニューロンNP,Qおよび近傍ニューロンNnearに対して参照ベクトルwi,j(t-1)の更新処理を実行する。
【0042】
近傍関数hは、ニューロンNi,jの位置情報および勝者ニューロンの位置情報に基づいて学習量の分配量を決定する。近傍関数hは、勝者ニューロンに近いニューロンほど多くの学習量を分配する関数である。本実施の形態においては、M個の選択ニューロンNP,Qが勝者ニューロンとして用いられる。また、近傍関数hは、時間tが経過するにつれて学習量の分配を小さくする関数である。
【0043】
SOM学習装置1は、複数の入力ベクトルx(t)を入力し、参照ベクトルwi,j(t-1)の更新処理を実行する。SOM学習装置1は、また、1つの入力ベクトルx(t)についても、参照ベクトルwi,j(t-1)の更新処理を複数回実行する。これにより、SOM学習データ10に記憶されている参照ベクトルwi,jが更新され、SOM学習装置1の学習処理が実行される。
【0044】
(2)最小値ニューロン特定部の構成
次に、最小値ニューロン特定部13の構成について説明する。
図3は、最小値ニューロン特定部13の機能ブロック図である。最小値ニューロン特定部13は、除算部131、最小値判定部132、調整値設定部133および調整幅設定部134を備える。
【0045】
(2-1)調整値Aによる除算
調整値設定部133は、調整値Aを生成する。調整値設定部133は、調整値Aを除算部131に出力する。除算部131は、調整値設定部133が出力した調整値Aを入力する。除算部131は、また、距離計算部12が出力した距離Di,jを入力する。除算部131は、距離Di,jを調整値A=a(aは実数)で除算する。最小値判定部132は、調整値Aで除算されたm1×m2個の距離Di,jを入力し、距離Di,jの最小値を判定する。最小値判定部132は、判定した距離Di,jの最小値に基づいて最小値ニューロンNp,qを特定し、最小値ニューロン指定情報Eminを生成する。最小値判定部132は、最小値ニューロン指定情報Eminを、ニューロン選択部14に出力する。
【0046】
調整値Aとして“1”が設定される場合、最小値判定部132は、距離計算部12から入力した距離Di,jをそのまま評価して、最小値ニューロンNp,qを特定する。調整値Aとして1より大きい実数が設定される場合、最小値判定部132は、距離計算部12から入力した距離Di,jを調整値Aで除算した上で、最小値ニューロンNp,qを特定する。つまり、除算部131において、距離Di,jが調整値Aで除算されることにより、距離Di,jの分解能が荒くなる。例えば、2つの距離Di,jが“100”および“101”である場合、調整値Aを“1”として、距離Di,jをそのまま評価すれば、距離Di,jは“100”の方が小さくなる。しかし、距離Di,jを1より大きい調整値A=“10”で除算し、距離Di,jを整数値として扱った場合、いずれの距離も“10”となる。このようにして、距離Di,jの分解能を荒くすることにより、最小値に近い値を有するニューロンについても、最小値ニューロンNp,qとして選択されるように調整している。
【0047】
(2-2)関数f(t)による調整値Aの生成
上記(2-1)においては、調整値Aとして整数や実数などの定数aを用いている。本実施の形態の最小値ニューロン特定部13は、調整値Aとして、時間tの関数である関数f(t)を用いることもできる。調整値Aは、関数f(t)により以下のように表される。
A=f(t)
【0048】
関数f(t)は、広義または狭義の単調減少関数である。つまり、関数f(t)は、学習時間tが進むにつれて小さくなる。これにより、学習処理の初期段階では、距離Di,jの分解能を低下させる度合いを大きくし、最小値ニューロンNp,qとして学習させるニューロンの範囲を広くする。一方、学習処理が進むにつれて、距離Di,jの分解能を低下させる度合いを小さくし、最小値ニューロンNp,qとして学習させるニューロンの範囲を狭くするようにできる。このようにして、学習の初期段階では全体を広く学習対象とし、学習処理が進むにつれて局所的に学習処理が実行されるようにすることができる。
【0049】
調整値設定部133は、また、調整値Aを、関数f(t)に対して、平均値をf(t)とする正規分布に従う値に設定してもよい。関数f(t)は、上記のとおり、広義または狭義の単調減少関数である。これにより、学習時間tが進むにつれて局所的に学習処理が実行されるようにしつつ、さらに、調整値Aにばらつきを持たせることで、学習処理にランダム性を持たせることができる。また、平均値をf(t)とする正規分布において、その分散を学習時間tに対して可変に設定するようにしてもよい。これにより、さらに、学習処理にランダム性を持たせることができる。
【0050】
(2-3)調整値Aに対する調整幅bの付加
上記(2-1)および(2-2)においては、除算部131は、距離D
i,jを調整値Aで除算している。本実施の形態の最小値ニューロン特定部13は、調整値Aに調整幅bを付加することもできる。
図3に示すように、最小値ニューロン特定部13は、調整幅設定部134を備える。調整幅設定部134は、調整幅bを出力する。調整幅bは、整数や実数などの定数である。
【0051】
除算部131は、調整値設定部133が出力した調整値Aを入力する。除算部131は、また、調整幅設定部134が出力した調整幅bを入力する。除算部131は、距離Di,jを修正調整値A’で除算する。修正調整値A’は、A-bからA+bの間の値であって、ランダムに選択される値である。調整値Aが定数aの場合、修正調整値A’は、a-bからa+bまでの間の値がランダムに選択される。調整値Aが関数f(t)の場合、修正調整値A’は、f(t)-bからf(t)+bまでの間の値がランダムに選択される。このように修正調整値A’として、A-bからA+bの間の値をランダムに選択することにより、修正調整値A’にランダム性を持たせることができる。これにより、最小値判定部132における最小値ニューロンNp,qの判定処理にランダム性を持たせることができ、学習効果を向上させることができる。
【0052】
本実施の形態の調整幅設定部134は、さらに、調整幅bを学習時間tに対して可変に設定可能となっている。つまり、調整幅設定部134は、調整幅bを時間tに対して変動する値を設定可能となっている。例えば、調整幅設定部134は、乱数発生部を備え、調整幅bをランダムに設定することができる。このとき、調整幅設定部134は、所定の値の範囲内で調整幅bを設定するようにしてもよい。
【0053】
(3)ニューロン選択部の構成
次に、ニューロン選択部14の構成について説明する。
図4は、ニューロン選択部14の機能ブロック図である。ニューロン選択部14は、ランダム選択部141および選択数決定部142を備える。
【0054】
選択数決定部142は、最小値ニューロン特定部13が出力した最小値ニューロン指定情報Eminを入力する。選択数決定部142は、最小値ニューロン指定情報Eminに基づいて選択数Mを出力する。具体的には、選択数決定部142は、最小値ニューロン指定情報Eminを参照し、最小値ニューロンNp,qの個数Lを取得する。選択数決定部142は、乱数発生部を有しており、最小値ニューロンNp,qの個数Lより小さい選択数Mをランダムに決定する。このように、選択数Mを学習時間tに対して可変に設定することにより、学習処理にランダム性を与えることができる。
【0055】
ランダム選択部141は、最小値ニューロン特定部13が出力した最小値ニューロン指定情報Eminを入力する。ランダム選択部141は、また、選択数決定部142から選択数Mを入力する。ランダム選択部141は、乱数発生部を有しており、L個の最小値ニューロンNp,qの中からM個の選択ニューロンNP,Qをランダムに選択する。ランダム選択部141は、ランダムに選択された選択ニューロンNP,Qを示す選択ニューロン指定情報Eselを、更新部15に出力する。これにより、ニューロン選択部14において、L個の最小値ニューロンNp,qの中からM個の選択ニューロンNP,Qをランダムに選択することができ、学習効果を向上させることができる。また、選択ニューロンの選択数Mもランダムに設定されるので、さらに学習効果を向上させることができる。
【0056】
(4)更新部の構成
次に、更新部15の構成について説明する。
図5は、更新部15の機能ブロック図である。更新部15は、参照ベクトル更新部151および選択数取得部152を備える。
【0057】
参照ベクトル更新部151は、SOM学習データ10を参照し、参照ベクトルwi,j(t-1)を取得する。参照ベクトル更新部151は、また、データ入力部51が出力した入力ベクトルx(t)を取得する。参照ベクトル更新部151は、また、ニューロン選択部14が出力した選択ニューロン指定情報Eselを入力する。参照ベクトル更新部151は、M個の選択ニューロンNP,Qを勝者ニューロンとして、参照ベクトルwi,j(t-1)の更新を行う。上述したように、更新部15は、M個の全ての選択ニューロンNP,Qについて、選択ニューロンNP,Qおよび近傍ニューロンNnearに対して参照ベクトルwi,j(t-1)の更新処理を実行する。
【0058】
ここで、参照ベクトル更新部151は、近傍関数hを用いて、参照ベクトルwi,j(t-1)の学習量を決定する。また、参照ベクトル更新部151は、近傍関数hを用いて、勝者ニューロンとともに更新処理を実行する近傍ニューロンNnearを決定する。近傍関数hは、tに関する単調減少であり、tが無限大で0に収束する。また、近傍関数hは、出力層(潜在空間)の各ニューロンNi,jと選択ニューロンNP,Qとの距離に関して単調減少する。また、単調減少の程度はtが増加するほど大きくなる。
【0059】
本実施の形態の参照ベクトル更新部151は、通常の近傍関数hに代えて、近傍関数h’を用いることもできる。近傍関数h’は以下の式で表される。
h’= h/M
つまり、近傍関数h’は、通常の近傍関数hを選択数Mで除算した関数である。選択数取得部152は、ニューロン選択部14の選択数決定部142から選択数Mを取得する。参照ベクトル更新部151は、選択数取得部152から選択数Mを取得し、近傍関数hをMで除算し、近傍関数h‘を得る。参照ベクトル更新部151は、通常の近傍関数hに代えて、近傍関数h’を用いることにより、学習の分配量を小さくすることができる。つまり、本実施の形態においては、ニューロン選択部14において選択されたM個の選択ニューロンNP,Qを勝者ニューロンとして更新処理が実行される。そこで、近傍関数h’を用いることで、1つの入力ベクトルx(t)に対する学習の分配量が過大とならないようにすることができる。
【0060】
(5)SOM学習処理の具体例
次に、以上のとおり構成されたSOM学習装置1によるSOM学習処理の具体例ついて説明する。以下の説明では、SOM学習処理においてユークリッド距離を使用する具体例とハミング距離を使用する具体例とを説明する。
【0061】
(5-1)ユークリッド距離による学習処理の例
まず、SOM学習処理においてユークリッド距離を使用する具体例を説明する。
図6は、ユークリッド距離を使用したSOM学習処理が扱うベクトルおよび計算方法を示す図である。
【0062】
データ入力部11(
図1参照)は、観測データS
1,S
2,…,S
nを入力し、入力ベクトルx(t)=(R
1,R
2,…,R
n)を出力する(
図6のEX1-1)。R
1,R
2,…,R
nは実数である。例えば、観測データS
1,S
2,…,S
nが、S
1=R
1,S
2=R
2,…,S
n=R
nであり、入力ベクトルx(t)は、観測データS
1,S
2,…,S
nをベクトル化したものであってもよい。あるいは、入力ベクトルx(t)=(R
1,R
2,…,R
n)は、観測データS
1,S
2,…,S
nから特徴データを抽出することによって得られた特徴ベクトルであってもよい。
【0063】
次に、距離計算部12(
図1参照)は、入力ベクトルx(t)=(R
1,R
2,…,R
n)と参照ベクトルw
i,j(t-1)=(w
1(i,j),w
2(i,j),・・・,w
n(i,j))との距離D
i,jを計算する。距離計算部12は、
図6の(EX1-2)に示すように、ユークリッド距離により距離D
i,jを計算する。
【0064】
次に、最小値ニューロン特定部13により最小値ニューロンN
p,qが特定され、さらに、ニューロン選択部14により選択ニューロンN
P,Qが選択される。最小値ニューロン特定部13およびニューロン選択部14の処理の内容は、
図3および
図4を用いて説明した場合と同様である。つまり、最小値ニューロン特定部13は、調整値Aとして、実数aまたは関数f(t)を用いて、距離D
i,jを調整値Aで除算することにより、最小値ニューロンN
p,qを特定する。あるいは、調整幅bを用いて、修正調整値A’を算出し、距離D
i,jを修正調整値A’で除算することにより、最小値ニューロンN
p,qを特定する。また、ニューロン選択部14は、選択数Mを用いて、L個の最小値ニューロンN
p,qの中からM個の選択ニューロンN
P,Qを選択する。
【0065】
続いて、更新部15は、参照ベクトルw
i,j(t-1)の更新処理を実行する。更新部15は、
図6の(EX1-3)に示すように、近傍関数h((i,j),(P,Q),t)を係数として、参照ベクトルw
i,j(t-1)の更新処理を実行する。(P,Q)は、上述したように、選択ニューロンN
P,Qを指定する情報であり、N
P,Q=N
i,j((i,j)⊂E
sel)である。近傍関数hは、勝者ニューロンである選択ニューロンN
P,Qに近いニューロンN
i,jほど多くの学習量を分配する。また、近傍関数hは、時間tが経過するにつれて学習量の分配を小さくする関数である。以上の学習処理により、SOM学習装置1は、ユークリッド距離を用いて参照ベクトルw
i,j(t-1)の更新処理を実行する。また、更新部15は、
図5を用いて説明したように、近傍関数hを選択数Mで除算することにより得られる近傍関数h’を用いることができる。これにより、1つの入力ベクトルx(t)が、学習に与える影響が大きくならないように抑制することができる。
【0066】
(5-2)ハミング距離による学習処理の例
次に、SOM学習処理においてハミング距離を使用する具体例を説明する。
図7は、ハミング距離を使用したSOM学習処理が扱うベクトルおよび計算方法を示す図である。
【0067】
データ入力部11(
図1参照)は、観測データS
1,S
2,…,S
nを入力する。S
1,S
2,…,S
nは、それぞれpビットのビット列である。入力ベクトルx(t)は、観測データS
1,S
2,…,S
nをS
1,S
2,…,S
nの順に結合したベクトルであり、p×nビットのビット列である(
図7のEX2-1)。あるいは、入力ベクトルx(t)は、観測データS
1,S
2,…,S
nから特徴データを抽出することによって得られた特徴ベクトル(ビット列)であってもよい。
図7においては、入力ベクトルx(t)を32ビットのビット列で表している。また、入力ベクトルx(t)として32ビットのビット列を用いる場合、
図7の(EX2-1)に示すように、参照ベクトルw
i,j(t-1)も32ビットのビット列で表される。
図7においては、x(t)と参照ベクトルw
i,j(t-1)として、32ビットのビット列の具体例を示している。
【0068】
次に、距離計算部12(
図1参照)は、入力ベクトルx(t)と参照ベクトルw
i,j(t-1)との距離D
i,jを計算する。距離計算部12は、
図7の(EX2-2)に示すように、入力ベクトルx(t)と参照ベクトルw
i,j(t-1)との排他的論理和(XOR)を計算することにより、距離D
i,j(ハミング距離)を計算する。距離D
i,j(ハミング距離)において、ビット列に含まれる“1”の個数により、入力ベクトルx(t)と参照ベクトルw
i,j(t-1)との距離が評価される。ビット列に含まれる“1”の個数が少ないほど、距離D
i,jは小さいと評価される。
【0069】
次に、最小値ニューロン特定部13により最小値ニューロンN
p,qが特定され、さらに、ニューロン選択部14により選択ニューロンN
P,Qが選択される。最小値ニューロン特定部13およびニューロン選択部14の処理の内容は、
図3および
図4を用いて説明した場合と同様である。ただし、最小値ニューロン特定部13は、ハミング距離により計算された距離D
i,jにおいて、“1”の数が最小のニューロンを、最小値ニューロンN
p,qとして特定する。
【0070】
続いて、更新部15は、参照ベクトルw
i,j(t-1)の更新処理を実行する。更新部15は、
図7の(EX2-3)に示すように、近傍関数h((i,j),(P,Q),t)に基づいて、学習させるビットの数を決める。ここでは、近傍関数h=0.5と計算された場合を例に説明する。(EX2-2)の具体例で示すように、ハミング距離により計算された距離D
i,jは、ビット“1”が16箇所含まれている。そして、近傍関数h=0.5であるので、16×0.5=8となり、16個のビット“1”から8個のビット“1”をランダムに選択する。(EX2-3)において、8個のビット“1”がランダムに選択されたビット例を、学習選択ベクトルyで示している。つまり、ユークリッド距離を用いた学習処理においては、近傍関数hは、学習量計算における乗算係数として用いられたが、ハミング距離の学習処理においては、近傍関数hは、学習させるビット数を決定するために用いられる。
【0071】
次に、更新部15は、参照ベクトルw
i,j(t-1)と学習選択ベクトルyとの排他的論理和を計算し、参照ベクトルw
i,j(t-1)の学習処理を実行する。
図7の(EX2-4)に、更新された参照ベクトルw
i,j(t)を示す。
【0072】
以上説明したように、本実施の形態のSOM学習装置1は、最小値ニューロンNp,qがL個(Lは2以上)存在する場合、L個の最小値ニューロンNp,qからM個(MはLより小さい整数)の選択ニューロンNP,Qを選択する。そして、SOM学習装置1は、M個の選択ニューロンNP,Qを勝者ニューロンとして、潜在空間上の各ニューロンの参照ベクトルwi,j(t-1)を更新する。これにより、単一の勝者ニューロンが選択される場合と比較して、学習効率を向上させることができる。
【0073】
[2]SOMによる故障判定処理
次に、上述したSOM学習データ10を利用した故障判定処理について説明する。
図8は、故障判定装置5が搭載された機器7を示す図である。機器7には、複数のデバイス8が配置されている。機器7には、基板上あるいはデバイス8内に複数のセンサ9が設けられる。センサ9は、機器7の基板上あるいはデバイス8内を流れる電圧を測定するセンサである。センサ9は、電圧測定値を観測データS
1,S
2,…,S
nとして出力する。
【0074】
図9は、故障判定装置5のブロック図である。故障判定装置5は、データ入力部51、変換部52、判定部53およびSOM学習データ10を備える。データ入力部51は、電圧測定値を観測データS
1,S
2,…,S
nとして入力する。データ入力部51は、観測データS
1,S
2,…,S
nに基づいて入力ベクトルxを生成する。
【0075】
変換部52は、データ入力部51の出力した入力ベクトルxを入力する。変換部52は、SOM学習データ10を参照し、参照ベクトルw
i,jを取得する。SOM学習データ10は、上述した
図1に示すSOM学習装置1により学習されたデータである。故障判定装置5を動作させる前段階として、SOM学習装置1は、機器7のセンサ9が出力した複数の観測データS
1,S
2,…,S
nを入力し、参照ベクトルw
i,jの学習を行う。故障判定装置5が備えるSOM学習データ10は、学習済みの参照ベクトルw
i,jを保持している。
【0076】
変換部52は、入力ベクトルxと参照ベクトルwi,jの距離を計算し、距離Di,jが最小となるニューロンを勝者ニューロンとして決定する。変換部52は、勝者ニューロンの潜在空間(出力層)における位置情報を判定部53に出力する。判定部53は、勝者ニューロンの位置情報に基づいて、入力ベクトルxの故障種別を判定する。
【0077】
判定部53は、予め故障種別のマップ情報を有している。つまり、判定部53は、学習済みのSOM学習データ10の潜在空間におけるニューロンの位置情報と故障種別とを対応付けたマップ情報を有している。故障判定装置5においては、潜在空間上のいずれかのニューロンが勝者ニューロンとして点火した場合、点火した勝者ニューロンの位置情報に基づいて機器7の故障種別を判定可能である。
【0078】
[3]プログラム
上記実施の形態においては、SOM学習装置1が備えるデータ入力部11、距離計算部12、最小値ニューロン特定部13、ニューロン選択部14および更新部15は、ハードウェア回路により構成される場合を例に説明した。また、故障判定装置5が備えるデータ入力部51、変換部52および判定部53は、ハードウェア回路により構成される場合を例に説明した。次に、各機能部11~15,51~53がCPU上で動作するプログラムにより実現される実施の形態を説明する。
【0079】
図10に示すように、コンピュータ20は、CPU21、ROM22、RAM23、ドライバ24、入力部25、出力部26、記憶部27および通信部28を備える。これらデバイスはバスを介して接続される。記憶部27は、例えば、ハードディスクであり、SOM学習プログラムP1および故障判定プログラムP2が記憶される。ROM22は、例えば、不揮発性メモリである。ROM22がSOM学習プログラムP1および故障判定プログラムP2を記憶してもよい。CPU21は、RAM23を作業領域として使用しつつ、記憶部27またはROM22に記憶されたSOM学習プログラムP1および故障判定プログラムP2を実行することにより次に示すSOM学習方法および故障判定方法を実行する。
【0080】
(1)SOM学習方法
図11は、SOM学習方法を示すフローチャートである。まず、ステップS11において、コンピュータ20は、入力ベクトルx(t)を生成する。次に、ステップS12において、コンピュータ20は、入力ベクトルx(t)と参照ベクトルw
i,j(t-1)との距離D
i,jを計算する。次に、ステップS13において、コンピュータ20は、距離D
i,jが最小となる最小値ニューロンN
p,qを特定し、最小値ニューロン指定情報E
minを出力する。最小値ニューロン指定情報E
minには、L個の最小値ニューロンN
p,qを指定する情報が含まれる。次に、ステップS14において、コンピュータ20は、L個の最小値ニューロンN
p,qからM個の選択ニューロンN
P,Qをランダムに選択し、選択ニューロン指定情報E
selを出力する。
【0081】
次に、ステップS15において、コンピュータ20は、選択ニューロン指定情報E
selで指定されたM個の選択ニューロンN
P,Qの1つのニューロンを勝者ニューロンとして参照ベクトルw
i,j(t-1)の更新処理を実行する。続いて、コンピュータ20は、M個の選択ニューロンN
P,Qに含まれる他のニューロンについても勝者ニューロンとして参照ベクトルw
i,j(t-1)の更新処理を実行する。次に、ステップS16において、コンピュータ20は、全ての入力ベクトルx(t)について参照ベクトルw
i,j(t-1)の更新処理を実行したか否かを判定する。全ての入力ベクトルx(t)について参照ベクトルw
i,j(t-1)の更新処理を実行していない場合には、ステップS11に戻り、次の入力ベクトルx(t)について参照ベクトルw
i,j(t-1)の更新処理を実行する。全ての入力ベクトルx(t)について参照ベクトルw
i,j(t-1)の更新処理が終了すると、
図11の処理を終了する。コンピュータ20は、さらに、同じ入力ベクトルx(t)について、
図11で示す処理を複数回実行してもよい。
【0082】
(2)故障判定方法
図12は、故障判定方法を示すフローチャートである。まず、ステップS21において、コンピュータ20は、入力ベクトルxを生成する。次に、ステップS22において、コンピュータ20は、入力ベクトルxと参照ベクトルw
i,jとの距離D
i,jを計算する。次に、ステップS23において、コンピュータ20は、距離D
i,jが最小となるニューロンN
i,jを特定し、勝者ニューロンとして決定する。
【0083】
次に、コンピュータ20は、勝者ニューロンの位置情報に基づいて故障種別の判定を行う。例えば、コンピュータ20の出力部に、故障種別を表示させる。あるいは、コンピュータ20の出力部に潜在空間上のマップおよび勝者ニューロンの位置を表示させてもよい。以上で、コンピュータは、入力ベクトルxについての故障判定処理を終了する。
【0084】
図10に示すように、SOM学習プログラムP1または故障判定プログラムP2は、コンピュータ20がドライバ24を介して読み取り可能な記録媒体(例えばCD-ROM241、メモリカード242等)に格納された形態で提供され、記憶部27またはROM22にインストールされてもよい。また、通信部28が通信網に接続されている場合、通信網に接続されたサーバから配信されたSOM学習プログラムP1または故障判定プログラムP2が記憶部27またはROM22にインストールされてもよい。
【0085】
[4]他の実施の形態
上記の実施の形態においては、SOM学習データ10を利用して故障判定を行う場合を例に説明した。例えば、機器7の電圧を観測データとすることにより、機器7の異常状態を故障判定装置5において判定することが可能である。あるいは、機器7に対して何らかの不正な行為が行われた場合にも、故障判定装置5は、機器7に対する不正行為を判定することも可能である。
【0086】
故障判定装置5は、センサやカメラの出力あるいはネットワークの状態等を観測することにより、観測対象の平常状態でない異常現象を検出することが可能である。故障判定を行う対象としては、例えば、発電所その他工場等のプラント、産業用ロボット等の機械装置、電車や自動車、自動二輪車等の車両、ビルの電力設備、空調設備等のインフラ設備等が想定される。
【0087】
また、上記の実施の形態においては、故障判定装置5は、センサ9が測定する電圧値を観測データとして入力したが、観測データはこれに限定されるものではない。例えば、電流値、温度、圧力等を測定するセンサからの入力を観測データとして用いてもよい。
【0088】
上記の実施の形態においては、SOM学習データ10を利用して故障判定を行う場合を例に説明したが、SOM学習データ10の利用方法は、これに限定されるものではない。例えば、SOM学習データ10を利用することで、故障に限らず機器7の状態を判定する状態判定装置を構成することも可能である。例えば、機器7の稼働状態、安定状態などを判定する装置として構成することも可能である。
【0089】
なお、本発明の具体的な構成は、前述の実施の形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【0090】
1 … SOM学習装置
5 … 故障判定装置
7 … 機器
8 … デバイス
9 … センサ
10 … SOM学習データ
11 … データ入力部
12 … 距離計算部
13 … 最小値ニューロン特定部
14 … ニューロン選択部
15 … 更新部
S1,S2,…,Sn … 観測データ
x(t) … 入力ベクトル
wi,j(t-1),wi,j(t-1) … 参照ベクトル
Emin … 最小値ニューロン指定情報
Esel … 選択ニューロン指定情報