F(ti) = g(ti)×sin(h(ti)) | (3.1) |
この仮定の下で、以下の処理過程に従いデータ(F(ti))の予測を行う。
(1) 振幅変化を表す関数値g(ti)を得るNNを構築する。
(2) 周期変化を表す関数値h(ti)を得るNNを構築する。
(3) 3.1式の関係を用いて求める結果(F(ti))を得る。
つまり、処理過程(1)で振幅変化の学習と予測を行い、処理過程(2)で周期変化の学習と予測を行うことにより周期のみが変化する周期データの再現と予測を行い、最後の処理過程(3)で(1),(2)の結果を掛け合わせることにより最終的な結果である振幅、周期ともに変化する時系列データの再現と予測を行う。
全体の処理のモデルをFig.3.1に示す。ただし、出力層の×はかけ算を行うことを表し、w1, w2、v1, v2はそれぞれネットワークの重みを表す。また、gNN は振幅変化予測を行うNN(上述の処理過程(1))を、cNN は周期(変化)予測を行うNN(上述の処理過程(2))をそれぞれ表す。これらは、処理過程(1), (2)に従いあらかじめ学習を終えたものであり、この全体のモデルの中ではそれぞれ関数の役割を果たすニューロンとなる。(gNN、cNN の構造は後述する。)
左から入力された時刻ti は、v1およびv2という重みをかけられ、それ自身独立したNNであるgNN とcNN に渡される。gNN とcNN の出力は、それぞれw1、w2という重みをかけられF(ti)が計算される。従って、時刻ti の出力値はw1 g(v1 ti) × w2 c(v2 ti)となり、その教師データをFl(ti)(時刻ti の振幅と周期が変化する時系列データの値)として、ネットワークの重み(v1, v2, w1, w2)をバックプロパゲーションにより決定する。
(3.2) | |
(3.3) | |
(3.4) |
また、NNの問題点として中間層ニューロン数の任意性が挙げられ、この決定により結果が大きく左右される。そこで、再構築学習法[12]によりネットワークの学習を行い、中間層ニューロン数の最小化を試みた。再構築法では通常のバックプロパゲーション法による学習過程と、ある大きさを越えた重みの軽減、つまり忘却の過程を繰り返す。学習と忘却を繰り返すことにより、消去より学習の効果が強く反映して結合が強くなるものと、結合が弱くなりほとんど0になるものとに2分され、情報伝達に関係ないニューロンの孤立化がおこり、中間層ニューロン数の最小化が行われる。
ネットワークの学習は、予測対象データは、周期関数が振幅を変化させる関数g(ti)によりなんらかの変化を受けた結果であるという前提の下に、少なくとも振幅変換を受ける前のデータの極値は一定であったと考えることにより行う。変換前の極大値が1.0、極小値が-1.0であったと仮定すると、式3.1より、極大値、極小値の時刻の点列{dti } = {ti : δF/δti = 0} について式3.5の関係式が成り立つ。
(3.5) |
従って、点列の値dti を入力とした時の出力を|F(dti )|として学習させることは、振幅変換関数g を学習させることと等価である。
(3.6) |
また前節の振幅変換関数予測の際と同様に、再構築学習法によりネットワークの学習を行い、各中間層ニューロンについてニューロン数の最小化を試みた。
ネットワークの学習は、予測対象データは周期関数がなんらかの変化を受けた結果であるという前提を下に、周期を変化させる関数h(ti)による変化を受ける以前の周期は一定であったと考えることにより行う。この場合、前節の{dti } = {ti : δF/δti = 0}で考えると、h(ti)の役割は不等間隔のdt 0 , dt 1 , …を等間隔に変換することに他ならない。そこで、本研究の周期変換予測の学習では入力として{dti } = {ti : δF/δti = 0}および {lti : F(lti )=0} を用意し、dti , (i =0,1,…)の教師データを(i +0.5)π、lti , (i =0,1,…)の教師データをi πとして学習を行った。教師データを(i +0.5)π、i πとしたのは、式3.1からわかるように、本研究では周期表現にsine関数を用いるからである。
(1) 振幅変換関数の決定。
学習区間中の{dti } = {ti : δF/δti = 0}を満たす時刻とその時のデータ列{|F(dt 0 )|, |F(dt 1 )|,… }に対して式4.1を満たす係数xk の決定を最小自乗法により行う。振幅変換関数を近似する変数の次数は1〜4の間で試行錯誤的に決定した。
(4.1) |
(2) 周期変換関数の決定。
学習区間中でdti = {ti : δF/δti = 0}、{lti } : F(lti )=0}を満たす時刻に対して式4.2, 式4.3を満たす係数yk の決定を最小自乗法により行う。周期変換関数を近似する変数の次数は1〜4の間で試行錯誤的に決定した。
(4.2) | |
(4.3) |
(1) data1[t] = sin((0.01976t )2)/(0.01976t )
(t =0〜492, ただし、data[0]=0)
(2) data2[t] = sin((0.01976t )2)/exp(0.001976t )
(t =0〜492, ただし、data[0]=0)
(3) data3[t] = sin(100000/(t +558))/(0.002(t +558))
(t =0〜621)
(4) data4[t] = 100cos(0.3(t +11)+1)exp(-0.005(t +11))+25cos(0.31(t +11)+3)exp(-0.003(t +11))
(t =0〜1025)
NNによる学習の際には、上記のデータを[-1,1]にスケールした。また、Fig.3.1に示した全体のモデルの各重みv1, v2, w1, w2は、簡単のため全て1.0としている。
誤差の計算と予測性能の評価には、相対誤差の平均と標準偏差を用いる。相対誤差を用いるのは、減衰データを扱うため、絶対誤差よりも誤差と真の値との比の比較が重要だからである。真の値をf(t ), (t =0,…n-1)、それに対応する結果をx(t ), (t =0,…n-1)とするとき、相対誤差の平均と(r err )と標準偏差(s )は、それぞれ以下の式により求めた。
(5.1) | |
(5.2) | |
(5.3) |
以降本稿では、相対誤差をただ単に誤差という。次節からそれぞれのデータ列についての数値実験の結果を説明する。
また、Fig.4.1.a, 5.1.a, 6.1, 8.1.a〜10.1.aにNNの、Fig.4.2.a, 5.2.a, 6.2, 8.2.a〜10.2.aにLSの予測結果全体を示した。グラフ中の実線は実データ、破線は予測結果、点線は振幅変換関数の予測結果をそれぞれ表し、図中の縦線はそれ以前が学習区間で、それ以降が予測区間であることを表す。また、Fig.4.1.b, 5.1.b, 8.1.b〜10.1.bにNNの、Fig.4.2.b, 5.2.b, 8.2.b〜10.2.bに LSの予測結果のみの拡大図を示した。以下の数値実験では、振幅変換関数および周期変換関数予測のための学習回数はそれぞれ30000回とした。また、再構築法における消去は振幅変換関数予測では300回に1回、周期変換関数予測では3500回に1回とした。
Fig.4.1.a. Prediction of sin(t 2)/t and g function by NN. | Fig.4.1.b. Magnified figure 4.1.a for t =402〜491 by NN. |
Fig.4.2.a. Prediction of sin(t 2)/t and g function by LS. | Fig.4.2.b. Magnified figure 4.2.a for t =402〜491 by LS. |
NNの予測区間における各周期の平均誤差は、予測全周期において平均学習誤差とほぼ同じであった。LSによる平均誤差と比較すると、学習誤差、及び予測第1, 2周期目はNNの方が誤差が小さいが、予測周期が進むに従いLSの方が誤差が小さくなっていた。Fig.4.2.aを見るとLSでは学習区間における振幅変換関数のt=0への外挿結果が非常に悪いが、LSはもともと外挿の精度が保証されてない。それにもかかわらず、data1の予測はLSを用いて予想外に精度良く行われた。
Fig.5.1.a. Prediction of sin(t 2)exp(-t ) and g function by NN. | Fig.5.1.b. Magnified figure 5.1.a for t =402〜491 by NN. |
Fig.5.2.a. Prediction of sin(t 2)exp(-t ) and g function by LS. | Fig.5.2.b. Magnified figure 5.2.a for t =402〜491 by LS. |
data2の場合、平均学習誤差よりも各予測周期の誤差の方が小さく、data2の予測が非常に高い精度で行われていた。NNとLSの平均誤差を詳しく比較したところ、予測全周期においてNNの誤差の方が小さく、特に第15周期の予測ではNNの誤差がLSと比較して約半分となっていた。
以上の結果より、本モデルを用いて、sin(t 2)exp(-t )という関数の学習と予測が精度良く行われ、LSより精度の良い結果を得られるということができる。
Fig. 6.1. Prediction of sin(1/t )/t and g function by NN. | Fig. 6.2. Prediction of sin(1/t )/t and g function by LS. |
NNによる各予測周期の誤差は、3層のパーセプトロン型NNを用いた場合も1.0を超え、精度が悪かった。Fig.6.1をみると周期変化の予測誤差が大きく、周期が長くなるデータの予測は難しいことがわかった。LSによる平均学習誤差は0.488であり、3層のパーセプトロン型NNとほぼ同じであったが、第1周期目の予測誤差は2.430であり、3層のパーセプトロン型NNの学習誤差1.032と比較しても誤差が大きかった。Fig.6.2.aをみると、この場合も周期の誤差のためであることがわかる。
以上の結果より、NN、LSともに周期が1/t に比例して長くなるデータの周期予測は難しく、従って、sin(1/t )/t という関数への両モデルの適用は難しいということができる。
以下では紙面の都合上case2の結果を示す。
case2ではdata4の第20周期から第24周期(t =399〜501)における予測を行った。学習区間は第1周期から第19周期(t =0〜398)である。この時のNNによる平均学習誤差は0.144、標準偏差は0.327であった。また、LSによる平均学習誤差は0.251、標準偏差は0.684であった。Fig.8.1とFig.8.2にグラフによる結果を示す。
Fig.8.1.a. Prediction of multiple data (0〜501) and g function by NN. | Fig.8.1.b. Magnified figure 8.1.a for t =399〜501 by NN. |
Fig.8.2.a. Prediction of multiple data (0〜501) and g function by LS. | Fig.8.2.b. Magnified figure 8.2.a for t =399〜501 by LS. |
NNによる予測区間の誤差は、予測第2周期目までは平均学習誤差とほぼ同じであった。またFig.8.1.bから振幅変換関数の予測誤差が大きくなっていくことがわかるが、これはNNが学習区間全体の傾向から予測を行うためである。一方LSによる平均誤差を調べると、NNによる結果と比較して学習及び予測の全周期で誤差が大きかった。これはFig.8.1.aとFig.8.2.aの比較により、LSの方が振幅変換関数の予測精度が悪いためであるとわかる。このような結果になったのは、時刻380付近からはじまる振幅の減衰を鋭敏にとらえてしまったためである。LSは学習データから関数式を決定するため、予測に関しては直前のデータの影響を強く受けてしまう。
case1〜case4の結果をまとめる。まず予測精度については、全てのcaseにおいて少なくとも学習後1周期先の予測は学習誤差と同等の精度で行うことができた。しかしcase4のように学習区間が長いデータは、NNでは学習区間中の値が小さい箇所の変化を正確にとらえることは難しく、学習誤差自体が大きかった。
LSとの比較の結果は、case2を除きLSの方が学習誤差が小さく、特にcase3, case4の学習区間が長いデータにおいてはその差が顕著であった。しかし予測区間においては、case1〜case4全てにおいてNNの方が精度の良い予測結果を得ることができた。このことから、NNがLSと比較し外挿に対して有効であるということができる。
予測精度について振幅変換、周期変換の精度の点から比較すると、case1では振幅変換関数予測、周期変換関数予測の精度がともにLSに比べNNの方が良かった。case2, case3でも振幅変換関数予測の精度はNNの方が良かった。case4では周期変換関数予測の精度がNNの方が良かった。これらの結果から、NNは振幅変換関数の予測を行うことに対し有効であるということができる。
(5.4) | |
(5,5) | |
(5.6) |
以下にdata1、data4のcase2のそれぞれの場合について結果を説明する。 Table1, 2の構成は左側の列からNNによる予測の平均誤差、標準偏差、最小自乗法(LS)による予測の平均誤差、標準偏差であり、各行には学習区間における誤差の平均値と各予測周期における誤差を載せた。ただし、学習区間の誤差の平均値を求める際には、学習区間の第1周期目を除いて計算を行った。これは、最小自乗法は外挿の精度が保証されていないため、平均値を求める際に第1周期目を含めると、その他の学習周期の学習誤差を反映しない値になる恐れがあるためである。
5.5.1.data1
ノイズを含まない場合と同様に、t =0〜401の10周期を用いて学習を行った後、t =402〜492の5周期の予測を行った。Table1にこの実行の平均誤差と標準偏差を示す。Fig.9.1とFig.9.2にグラフを示す。
周期 | 平均誤差(NN) | 標準偏差(NN) | 平均誤差(LS) | 標準偏差(LS) |
学習区間の相対誤差平均 | 0.284 | 1.145 | 0.275 | 1.145 |
第11周期 (予測) | 0.273 | 0.419 | 0.229 | 0.282 |
第12周期 (予測) | 0.165 | 0.216 | 0.257 | 0.207 |
第13周期 (予測) | 0.260 | 0.293 | 0.291 | 0.168 |
第14周期 (予測) | 0.470 | 1.013 | 1.010 | 2.408 |
第15周期 (予測) | 0.228 | 0.294 | 0.791 | 0.346 |
Fig.9.1.a. Prediction of sin(t 2)/t and g function by NN. | Fig.9.1.b. Magnified figure 9.1.a for t =402〜491 by NN. |
Fig.9.2.a. Prediction of sin(t 2)/t and g function by LS. | Fig.9.2.b. Magnified figure 9.2.a for t =402〜491 by LS. |
Table1のNNによる平均誤差の結果より、予測第3周期目までは平均学習誤差と同等の精度で予測が行われたことがわかる。またNNとLSの平均誤差を比較すると、学習区間、及び予測第1周期目はLSの方が誤差が小さいが、予測周期が進むに従いNNの誤差の方が小さくなることがわかる。これはFig.9.2.aからもわかるとおりLSでは振幅変化を予測区間において正確にとらえることができなかったためである。LSの振幅変化の予測はFig.4.2.bのノイズを含まないデータの結果と比較しても明らかに誤差が大きくなっている。
以上の結果より、ノイズを加えたdata1の予測が、我々のモデルを用いて学習後3周期までは精度良く行うことができ、またLSによる結果と比べ、特に振幅変換関数予測に対して精度の良い結果を得られるということができる。
5.5.2.data4の第20周期から第24周期の予測 (case2)
ノイズを加えたdata4の第20周期から第24周期(t =399〜501)における予測を行った。学習区間は第1周期から第19周期(t =0〜501)である。Table3に、この実行の平均誤差と標準偏差を示す。Fig.10.1とFig.10.2にグラフを示す。
周期 | 平均誤差(NN) | 標準偏差(NN) | 平均誤差(LS) | 標準偏差(LS) |
学習区間の相対誤差平均 | 0.306 | 1.089 | 0.398 | 2.203 |
第20周期 (予測) | 0.423 | 1.075 | 0.246 | 0.287 |
第21周期 (予測) | 0.238 | 0.189 | 0.370 | 0.087 |
第22周期 (予測) | 0.426 | 0.623 | 0.644 | 0.175 |
第23周期 (予測) | 0.499 | 0.427 | 1.038 | 0.202 |
第24周期 (予測) | 0.474 | 0.276 | 1.703 | 0.400 |
Fig.10.1.a. Prediction of multiple data (0〜501) and g function by NN. | Fig.10.1.b. Magnified figure 10.1.a for t =399〜501 by NN. |
Fig.10.2.a. Prediction of multiple data (0〜501) and g function by LS. | Fig.10.2.b. Magnified figure 10.2.a for t =399〜501 by LS. |
Table2のNNによる平均誤差の結果より、予測第2周期目までは平均学習誤差と同等の精度で予測が行われたことがわかる。一方LSによる予測では、NNによる予測と比較して予測第1周期の誤差は小さいが、予測周期が進むに従い誤差が大きいことがわかる。これはFig.10.2.aからLSでは振幅変換関数を予測区間において正確にとらえられていないためであることがわかる。
以上の結果より、ノイズを加えたdata4のcase2での学習と予測が、我々のモデルを用いて予測第2周期目までは精度良く行われ、またLSによる結果と比較して、特に振幅変換関数予測に対して良い結果を得られるということができる。ここに結果は示さないが、case1の場合でも同様の結果を得た。
5.5.3.ノイズを含むデータの予測のまとめと考察
ノイズを含むデータに対する本モデルの有効性を調べるため、data1とdata4のcase1, case2にs/n比が20となるように正規誤差を加え、予測を行った。その結果、data1では予測開始後の3周期、data4のcase1とcase2では予測開始後2周期の予測を学習とほぼ同等の精度で行うことができた。また、LSとの比較によりNNの有効性を検証した。その結果、data1では、NNの振幅変換関数の予測精度がLSと比較して良く、そのため予測周期が進むに従いNNの方が誤差が小さかった。data4のcase2においても振幅変換関数の精度はNNの方が良く、case1も同様であった。
以上の結果から、ノイズを含むデータに対しても本モデルは十分適応可能であり、LSと比較して特に振幅変換関数の予測に対して精度の良い結果を得られるということができる。
データ | 最適数 |
data1 | 4 |
data2 | 12 |
data3 | 13 |
data4(case1) | 3 |
data4(case2) | 6 |
data4(case3) | 8 |
data4(case4) | 6 |
noised data1 | 4 |
noised data4(case1) | 4 |
noised data4(case2) | 8 |
データ | 周期変換関数 |
data1(sin(t 2)/t) | 1.03xt 2 |
data2(sin(t 2)exp(-t)) | 0.88xt 2 |
data4(case1) | 0.64yt |
data4(case2) | 0.14xt 2 + 1.82yt |
data4(case3) | 0.09xt 2 + 2.24yt + 0.03z |
data4(case4) | 0.54xt 2 + 1.26yt |
noised data1 | 1.13xt 2 |
noised data4(case1) | 0.84yt - 0.06z |
nosied data4(case2) | 0.14xt 2 + 1.76yt - 0.04z |
data1とdata2の結果を見ると、周期変換関数として2次式が得られている。これは、実データの周期変化がt 2によるという事実と合致しており、実データの性質をよくとらえていることがわかる。
data4のcase1では1次式が得られたが、data4ではそれぞれの周期変化は1次関数によるため、得られた関数式はある程度妥当なものである。しかし、実際は二つの周期関数の和で表され、厳密に1次関数で表すことができない。case2では2次式が得られたが、これはcase1よりも長期間の学習を行うことで二つの周期関数の和で表される微妙な周期変化を学習できたことによる。case3、case4も、case2と同様に2次式が得られた。特にcase4では、case2, case3と比較しても2次式への結合が強くなっていることがわかる。
ノイズを含むデータの結果をみると、data1ではノイズを含まないdata1の結果とほぼ同じ関数式が得られている。data4のcase1,case2では、どちらも0次の項を含み、3つのニューロンを要しているが、得られた関数式はノイズを含まないデータの結果と最高次数が同じであり、係数も似通っている。これらはNNの平滑能力を示すものである。
以上の結果から、第2中間層は、data3を除く本研究で用いた全てのデータで、t 0からt 2までの3つのニューロンがあれば充分であるということができる。これは、周期変換関数予測を行うNNにより、各データでその実データの性質と合致する関数式が得られるためであり、本モデルの妥当性が確かめられたということができる。
以上の結果から、本研究で用いたNNモデルは、NMRのシグナルやBZ反応などの振動反応のシグナルなどに見られる、振幅と周期が時間とともに変化する時系列データの解析に有効であり、LSの結果と比較すると、特に振幅変化の予測に有効であるということができる。 今後、data3のようなタイプのデータに対応させていく必要がある。また、ノイズを含むさらに多様なデータの予測を行っていく必要があり、ノイズを除去するためのフィルタの作成なども必要である。