next up previous contents
Next: 結論 Up: 実験 Previous: 正弦波の学習   目次

方形波

入力波形が正弦波の時は大体が学習できることが分かったが、もう少し複雑な波形である方形波でも学習できるのかどうか調べた。

本実験で用いた方形波は以下の様に定義した。

1周期におけるサンプリング数(分割数)を$n$、合成する高調波成分の数を$m$とした時、時間$i$における教師信号$\hat{y_i}$

\begin{displaymath}
\hat{y_i}= \frac{4}{\pi}\sum_{k=1}^{m}\frac{\sin{((2k-1)2\pi i/n)}}{2k-1}
\end{displaymath} (6.3)

とする。一般的に方形波は高調波の数を増やすことで複雑な波形となる。 方形波をフーリエ級数展開した式において、基本波から第3高調波、第5高調波・・・というように 高調波をいくつ合成するかで、入力波形の難しさを変更することにした。 以降、式6.3におけるmのことを高調波数と呼ぶことにする。 尚、評価値・ルーレット選択の選択確率には正弦波と同様のアルゴリズムを用いることにする。 交叉方法は2点交叉+一様交叉+エリート保存選択とした。

図 6.14: 方形波の高調波数2、分割数1から100におけるバックプロパゲーションの誤差


\includegraphics[scale=1.0]{fig/houkeiha13-a/gnu13-a_patarn_2.eps}

高調波数が1だと正弦波と同じ入力波形となるため、まず、高調波数を2とした時の方形波について実験を行った。 最終世代のエリート遺伝子を適用した時のバックプロパゲーションによる評価値を分割数1〜100まで変更した時 の結果を図 6.14 に示す。 正弦波における結果である図 6.3と比較してみると、全体的に学習の誤差が大きくなっていることが分かる。 また、正弦波のときと同様に分割数が極端に小さい場合においては、学習の誤差がほとんどなかった。

図 6.15: 高調波数が2、分割数50の方形波を学習させた時の教師信号の出力


\includegraphics[scale=1.0]{fig/houkeiha13-a/gnu2-50_inp.eps}

図 6.16: 高調波数が2、分割数50の方形波を学習させた時のカオスニューロンの出力


\includegraphics[scale=1.0]{fig/houkeiha13-a/gnu2-50_out.eps}

学習に成功した例として、分割数50の教師信号とカオスニューロンの出力信号の値を図 6.15, 図 6.16に示す。 この2つの図より、カオスニューロンの出力信号の値は、望ましい信号である教師信号よりも振幅が小さくなることが分かった。

図 6.17: 方形波の高調波数5、分割数1から100におけるバックプロパゲーションの誤差
\includegraphics[scale=1.0]{fig/houkeiha13-a/gnu13-a_patarn_5.eps}

次にもう少し複雑な波形として、高調波を5つ合成した方形波について同様の実験を行った。 図 6.17にその結果を示す。 高調波数が2つのときと比べると、さらに誤差が大きくなり、誤差が0.2を超える点が多く見られる様になった。

図 6.18: 方形波の高調波数1から100、分割数24におけるバックプロパゲーションの誤差


\includegraphics[scale=1.0]{fig/houkeiha13-a/gnu13-a_clock_24.eps}

次に入力の難しさと学習の精度にはどういう関係があるのかを調べるために、 分割数を固定して合成する高調波の数を変更したらどうなるのか実験を行った。 正弦波の実験において分割数が極端に小さい例では、学習ができることが分かっているので、 分割数が24とある程度大きいもので実験を行った。その時の各高調波数における評価値(誤差)のグラフを 図 6.18に表す。 このグラフを見てみると、学習できている点と学習できていない点は斑に分布しているため、 高調波と誤差の間には直接的な誤差の原因が見られない。

図 6.19: 分割数と高調波数を変更した時の学習(誤差0.1以下)した点


\includegraphics[scale=1.0]{fig/matome/gnu13-a_0.1.eps}

ここで、学習に成功した時の入力の性質についてまとめる。 図 6.19は高調波数, 分割数をそれぞれ1〜100まで変更した時に 学習した点をプロットしたものである。 高調波数と分割数に、比例の関係があるところで傾きによって学習に成功する点とそうでない点が見られた。

図 6.20: それぞれの高調波数,分割数における入力波形
\includegraphics[scale=0.6]{fig/input/seikou/gnu_3_86.eps} \includegraphics[scale=0.6]{fig/input/seikou/gnu_40_80.eps}
($a$)高調波数3,分割数80(成功例1) ($b$)高調波数40,分割数80(成功例2)
\includegraphics[scale=0.6]{fig/input/sippai/gnu_20_35.eps} \includegraphics[scale=0.6]{fig/input/sippai/gnu_20_80.eps}
($c$)高調波数20,分割数35(失敗例1) ($d$)高調波数20,分割数80(失敗例2)
\includegraphics[scale=0.6]{fig/input/sippai/gnu_40_81.eps} \includegraphics[scale=0.6]{fig/input/sippai/gnu_50_59.eps}
($e$)高調波数40,分割数81(失敗例3) ($f$)高調波数50,分割数59(失敗例4)

また、学習に成功・失敗した時の入力波形を図 6.20に示す。 ($a$), ($b$)は学習に成功した例、($c$), ($d$), ($e$), ($f$)は学習に失敗した例である。 まず、学習に失敗した例について検討する。($c$), ($f$), ($e$)では、1周期の中央において、0.5となる点が存在しない。 また($c$)では、周期の中央前後にてお互い正反対の方向に傾いている。 ($d$)では方形波が二重に重なった様にも見える。 その一方学習に成功した例では、信号が滑らかに繋がっており、周期の真ん中にも点が存在している。 1周期の中央に点があるかないかは分割数が偶数か奇数かによって決まる。 図 6.19において1つ置きに学習ができている所を見ると、 このことが波形の学習の難しさの要素となっていることが分かる。

図 6.21: バックプロパゲーション終了後におけるカオスニューロンの動作(方形波)
\includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu40-41_after2.eps} \includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu40-41_after_kyousi.eps}
($a$ - 1)高調波数40,分割数41(カオスニューロン) ($a$ - 2)高調波数40,分割数41(教師信号)
\includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu40-88_after2.eps} \includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu40-88_after_kyousi.eps}
($b$ - 1)高調波数40,分割数88(カオスニューロン) ($b$ - 2)高調波数40,分割数88(教師信号)
\includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu10-49_after2.eps} \includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu10-49_after_kyousi.eps}
($c$ - 1)高調波数10,分割数49(カオスニューロン) ($c$ - 2)高調波数10,分割数49(教師信号)
\includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu10-38_after2.eps} \includegraphics[scale=0.53]{fig/houkeiha13-a/afterpro/gnu10-38_after_kyousi.eps}
($d$ - 1)高調波数10,分割数38(カオスニューロン) ($d$ - 2)高調波数10,分割数38(教師信号)

次に方形波について、バックプロパゲーションが終了してから、カオスニューロンの出力を入力に戻しその次の値の予測を行った。 図 6.21にその結果を示す。グラフの右半分が教師信号、左半分が予測値、つまりカオスニューロンの出力である。 ($a$), ($c$)では大まかな形を予測できているが、($b$), ($d$)においては、全く違う形のものを出力している。 この時の評価値は、($a$)で0.02768, ($b$)で0.049976, ($c$)で0.122344, ($d$)で0.402097となっている。 評価値だけでは、予測できるものとそうでないものを判別することはできないが、評価値の高いものほど全く違う波形を出したり、 値が収束してしまったりしている。 また、($b$)のようにサンプリング数が多いものについても、方形波の周波数が多い出力となっていたり、収束していることが多いという 結果が得られた。

図 6.22: 高調波数60,分割数43の方形波を学習させた時の遺伝的アルゴリズムの評価値の推移


\includegraphics[scale=1.0]{fig/houkeiha13-a/gnu60-43_gene.eps}

図 6.23: 高調波数60,分割数38の方形波を学習させた時の遺伝的アルゴリズムの評価値の推移


\includegraphics[scale=1.0]{fig/houkeiha13-a/gnu60-38_gene.eps}

次に方形波の遺伝的アルゴリズムによる学習の様子を図 6.22, 図 6.23に示す。 これはどちらも学習に成功した時の例である。誤差の評価値に不安定な要素がありながらも学習していっていることが分かる。

次に、学習の精度を向上させるべく、評価方法を変更することにした。 これまでの実験では、パラメータを1回適用して、バックプロパゲーションで学習させた時の最終周期の誤差を 評価値として用いていた。すべての遺伝子について言えることではないが、 適用したパラメータによって1回は学習に成功するが、もう一度適用したときに学習に失敗する という場合がある。 これは、バックプロパゲーションの重みの初期値をランダム関数で決めていて、実行するたびに初期値が 変わるからである。つまり重みの初期値によっては学習できるものとそうでないものができたということである。 このような不安定な誤差の要素も含めて遺伝的アルゴリズムで学習するために、 初期値を変更したバックプロパゲーションへの適用を3回行った中で、 最終周期の誤差が最も大きくなるものを評価値として用いることにした。

図 6.24: 分割数と高調波数を変更した時の学習(誤差0.1以下)した点(評価方法変更後)


\includegraphics[scale=1.0]{fig/matome/gnu14_0.1.eps}

評価値の変更後の結果を図 6.24に示す。 この結果と図 6.19を比較してみると、学習できた点の数は減少している。 これは、図 6.19はバックプロパゲーション1回分の評価値であるのに対して 図 6.24では3回分の評価値の中で最も悪いものを遺伝的アルゴリズムの評価値をしてため、 学習成功の基準が厳しくなったからであると考えられる。 しかしながら、この評価値の変更によって、バックプロパゲーションの初期値による不安定な要素を取り除くことはできなかった。 これが今後の課題である。


next up previous contents
Next: 結論 Up: 実験 Previous: 正弦波の学習   目次
Deguchi Lab. 2010年3月5日