ファジィ進化計算アルゴリズムによるファジィニューラルネットの学習
本研究ではこれまでに,解の遺伝子表現形 (genotype) の値としてファジィ数を利用可能なファジィ進化計算アルゴリズムを提案した.その提案手法の応用例として,ファジィニューラルネットの学習を試みた.学習対象のニューラルネットは,結合強度としきい値が実数ではなくファジィ数に拡張されている [Ishibuchi et al., 1993] .この結合強度としきい値を進化計算におけるgenotypeの値として用い,提案手法によって最適化する.
ニューラルネットの学習タスクとして関数近似問題を用いた.近似対象の関数をF(x)とすると,xは実数ベクトルであり,F(x)はファジィ数である.簡単化のため,ここではF(x)を対称三角型ファジィ数とし,入力は1次元(つまり実数スカラ)とする.実験で用いたF(x)の例を図1に示す.図1に示された5つの曲線はそれぞれ,縦軸の値の大きいものから順に,
- F(x)∣0.0U
- F(x)∣0.5U
- F(x)∣1.0U ( =F(x)∣1.0L )
- F(x)∣0.5L
- F(x)∣0.0L
を表している.ただし,
F(x)∣αはF(x)のα-レベル集合(区間)を表しており,F(x)∣0.0はF(x)のサポート集合を表している.また,
F(x)∣αUおよびF(x)∣αLはそれぞれα-レベル集合の上限および下限を表している.F(x)はここでは対称三角型ファジィ数のため,F(x)∣1.0は上限と下限の値が等しい.
図1: 実数入力・ファジィ数出力の目標関数の例
図1の目標関数を近似するように学習させた結果,学習後のファジィニューラルネットは,図2に示す関数を出力した.ただしこの結果は,提案手法であるファジィ進化計算アルゴリズムのバリエーションの1つとして,進化戦略アルゴリズム (Evolution Strategy; ES) を拡張したファジィESを用いた場合の例である.図2の破線は図1と同じ曲線であり,実線がニューラルネットの出力を表している.実線で示された5つの曲線の意味は目標関数の曲線と同様であり,ニューラルネットが出力するファジィ数のサポート集合,0.5-レベル集合,1.0-レベル集合の上限,下限を表している.ただし,ユニットの活性化関数として用いたシグモイド関数の非線形性により,ニューラルネットから出力されるファジィ数は対称三角型ではない.
図2: 学習後のファジィニューラルネットからの出力
図2から,1.0-レベル集合は十分良く近似できており,0.5-レベル集合も概ねよく近似できているが,サポート集合(特にその上限)には一定の誤差が見られる.これは,レベルαの値を誤差の重みに用いており,レベルαの値が小さくなるほど目標と実出力との誤差を小さく見積もったためである.つまり,レベルαの値がより大きいほど誤差が小さくなるように学習できたことがわかる.
学習曲線を図3に示す.LUとCWはそれぞれLUモデルとCWモデルの違いを,100と500は子個体数の違いを表している.例えばLU(100)は,genotypeの値をLUモデルで表現した場合で,かつ,子個体数を100とした場合の学習曲線である.この図より,本実験の設定においては,
- CWモデルよりLUモデルのほうが適している
- 100個体より500個体のほうが適している
ことがわかる.
図3: 学習曲線
ここまでに示した実験結果はESを拡張したファジィESの場合の結果である.このほかに本研究では,GAを拡張したファジィGA,PSOを拡張したファジィPSOを同じ課題に適用し,これらの比較を行った.その結果,この課題に最も適した手法はファジィGAであることがわかった.