next up previous contents
Next: 方形波の学習 Up: 実験 Previous: パラメータ   目次

正弦波の学習

入力する方形波は以下の様に定義した。 1周期におけるサンプリング数(分割数)を$n$、合成する高調波成分の数を$m$とした時、時間$i$における信号$y_i$
\begin{displaymath}
y_i= \frac{4}{\pi}\sum_{k=1}^{m}\frac{\sin{((2k-1)2\pi i/n)}}{2k-1}
\end{displaymath} (6.1)

とする。一般的に方形波は高調波の数を増やすことで複雑な波形となる。 方形波をフーリエ級数展開した式において、基本波から第3高調波、第5高調波・・・というように 高調波をいくつ合成するかで、入力波形の難しさを変更することにした。 以降、式 6.1におけるmのことを高調波数と呼ぶことにする。バックプロパゲーションへの入力はこの方形波を$n$でサンプリングした点を入力していく。 今回はこの高調波数を1にすることで、正弦波の入力とする。 遺伝的アルゴリズムにおいて、子孫を選択する際に遺伝子の評価をしなければならないのだが、 まず評価値を決めなければならない。バックプロパゲーションにおいて、学習させたい教師信号の値と カオスニューロンの出力との誤差に絶対値を取り、1周期の中でこの値が最大となるものを選出する。 バックプロパゲーションの学習終了となった時のこの最大値を評価値とした。 ある遺伝子$s_i$における評価値の値を $\varepsilon(s_i)$とし、


\begin{displaymath}
q_i = \frac{\varepsilon(s_i)}{\displaystyle \sum_{j=1}^N \varepsilon(s_j)}
\end{displaymath} (6.2)

となる$q_i$を定義する。誤差の低いものを優先的に選びたいので、選択確率は($1-q_i$)とした。

時系列データの予測を行うのが目的であるので、ある時刻における正弦波の値を入力したら、 次の時刻の正弦波の値を出力するのが望ましい。 つまり、カオスニューロンの望ましい出力としては、入力波形の次の状態である教師信号の値を出力することである。 よって、時刻$i$における入力信号を、式 6.1$y_i$、教師信号は$y_{i+1}$とした。

図 6.1: バックプロパゲーション終了後におけるカオスニューロンの動作
\includegraphics[scale=0.6]{fig/sin/afterpro1/after1_11.eps} \includegraphics[scale=0.6]{fig/sin/afterpro1/after1_14.eps}
(a)分割数11の例 (b)分割数14の例
\includegraphics[scale=0.6]{fig/sin/afterpro1/after1_16.eps} \includegraphics[scale=0.6]{fig/sin/afterpro1/after1_18.eps}
(c)分割数16の例 (d)分割数18の例


表 6.1: 各分割数におけるバックプロパゲーションによる評価値
分割数 評価値(誤差)
11 0.048374
14 0.132785
16 0.066616
18 0.130889

まず、正弦波を教師信号として入力し遺伝的アルゴリズムとカオスニューロン、バックプロパゲーションによって学習を行う。 学習できたかどうかを判別するために、最終世代のエリート遺伝子においてバックプロパゲーションの終了後、誤差伝搬をせず入力信号として正弦波の波形を 送ったときにどうなるかという実験を行った。図 6.1にその結果を示す。 図 6.1の横軸は時間を表し、''・''はカオスニューロンの出力、点線は教師信号の出力である。 これを見てみると、分割数が14, 18の時は点線から若干ずれているように見えるが、分割数11, 分割数16の時は 点線に沿っている様に見える。 また、この時の各分割数における誤差を表 6.1に示す。 これらの結果より、誤差が0.1以下のときに学習成功と定義することにする。

時系列データを予測するには正しい信号が途絶えてもその次の未来を予測し続けなければならない。 よって、バックプロパゲーションが終了してから、カオスニューロンの出力を入力に戻すことでその次の値の予測を行う。 これを動作させた結果を図 6.2,図 6.3に示す。 分割数が18の例では、次の値を予測し続けれているが、分割数が39の例においてはカオスニューロンの値が収束してしまい、 値が一定となってしまった。もちろん誤差が大きい場合は収束するが、 誤差が小さければ予測し続けれるといった特徴は見られなかった。 また、分割数が極端に小さい値においては予測ができることが分かった。

図 6.2: 分割数18において、バックプロパゲーション終了後に、出力を入力に戻した時のカオスニューロンの動作
\includegraphics[scale=1.0]{fig/sin/afterpro2/gnu1-18_after2.eps}
図 6.3: 分割数39において、バックプロパゲーション終了後に、出力を入力に戻した時のカオスニューロンの動作

\includegraphics[scale=1.0]{fig/sin/afterpro2/gnu1-39_after2.eps}

次に最大誤差の推移のグラフについて検討する。学習に成功した代表例として、分割数が5, 19, 31の正弦波における 最大誤差の推移のグラフを図 6.4, 図 6.5, 図 6.6に表す。 これらは学習時間によって最大誤差がどのように変化しているかを示している。 図 6.5では、誤差の変動にほとんどばらつきが見られない右肩下がりの曲線となった。 図 6.4, 図 6.6では、学習開始付近の時間では誤差に 大きくばらつきはあるが、学習時間が200を過ぎた辺りから、 そのばらつきと共に誤差が減少していくようなグラフとなっている。 図 6.4, 図 6.5, 図 6.6を比べてみると、 どれも学習の仕方に違いがあるように見れる。これについて後ほど検討することにする。 また、各分割数におけるエリート遺伝子のパラメータを表 6.2に示す。

図 6.4: 分割数5の正弦波を学習させた時の最大誤差の推移
\includegraphics[scale=1.0]{fig/sin/gnu1-5_gosa.eps}

図 6.5: 分割数19の正弦波を学習させた時の最大誤差の変位
\includegraphics[scale=1.0]{fig/sin/gnu1-19_gosa.eps}

図 6.6: 分割数31の正弦波を学習させた時の最大誤差の変位
\includegraphics[scale=1.0]{fig/sin/gnu1-31_gosa.eps}


表 6.2: エリート遺伝子のパラメータ
  カオスニューロン バックプロパゲーション
  $\alpha$ $k_f$ $k_r$ $\eta$
5 6.171875 0.03125 0.5000 0.8125 0.06250
19 3.730469 0.18750 0.2500 0.6875 0.34375
31 5.468750 0.09375 0.1875 0.7500 0.25000

次に、入力する波形のパターンを変えても同じパラメータで動作できるのかを調べる実験を行った。 まず、分割数5の遺伝子を選択し、分割数1〜50の正弦波にそのパラメータを適用して学習を行った。 その結果を図 6.7に示す。 横軸は適用した分割数、縦軸がその分割数に分割数5の遺伝子を適用した時の最大誤差をそれぞれ表す。 分割数5の最大誤差以外はおよそ0.5と高い誤差を示しており、 分割数5によって得られたエリート遺伝子と比べると、全体的に学習できていないことが分かる。

先ほどの実験で、それぞれの分割数によって、エリート遺伝子を適用した時の カオスニューロンの学習の仕方に違いがあることが分かった。 この違いは適用した遺伝子にあるのではないのかと考え、分割数5の正弦波の学習によって得られたエリート遺伝子を 分割数18の正弦波の学習に用いる実験を行う。 この時のバックプロパゲーションにおける誤差の推移は図 6.8のようになった。 このグラフを見てみると、図 6.4の特性と似たような学習の仕方をしていることが分かる。

これらの結果より、入力波形によってカオスニューラルネットやバックプロパゲーションのパラメータが適している値は異なり、 同じ遺伝子を使って学習できるならば、似たような学習をするという傾向があることが分かる。

図 6.7: 分割数5におけるエリート遺伝子を分割数1から50の正弦波に適用した時の最大値
\includegraphics[scale=1.0]{fig/sin/5elete_gclock_pt1.eps}

図 6.8: 分割数5におけるエリート遺伝子を分割数18の正弦波に適用した時の最大誤差の推移
\includegraphics[scale=1.0]{fig/sin/gnu1-18_gosa.eps}


next up previous contents
Next: 方形波の学習 Up: 実験 Previous: パラメータ   目次
Deguchi Lab. 2012年3月9日