振幅と周期が時間とともに変化する時系列データのニューラルネットワークによる予測

小野寺 光永, 長嶋 雲兵, 吉田 裕亮, 青山 智夫, 細矢 治夫


Return

1.はじめに

 生体の断層イメージを測定する核磁気共鳴(NMR)のシグナルやBelousov-Zhabotinsky反応(BZ)などの振動反応の酸化還元ポテンシャルは、振幅と周期が時間とともに変化していく時系列データである。従来、時系列データの周波数解析は、統計的モデル、ニューラルネットワーク(NN)モデル等により行われてきた。自己回帰モデル[1]などの統計的モデルを用いた時系列解析の応用の例は、自然現象のみならず、人口動態、交通、経済等様々な分野に広がっている[2][3]。これらの解析の多くは、各周期の最大振幅と周期の両方が同時に時間とともに変化しないモデルを使っているが、最近統計的モデルを用いて、振幅や周期が同時に変化する時系列データに対する解析も行われるようになってきた[3][4][5]。NMRやBZ反応のシグナルは、multiple nonstationary frequenciesで表されることが知られており、その近似関数も調べられている[6][7]。しかし、従来の統計的モデルを用いて精度の良い近似関数を得るためには、多くの試行錯誤を必要とする。
 ニューラルネットワークモデルは、脳における神経細胞の信号伝達系をモデルとした情報処理手法であり、パターン認識、最適化問題など、様々な分野に応用されている[8]。ニューラルネットワークモデルによるによる時系列現象の解析は、主に株価予測などの経済的な分野で使われている。これまでに、ニューラルネットワークモデルを用いて周期が時間とともに変化しない周期関数の予測については、精度良く行うことができることが知られていたが[9]、最近、青山らにより、振幅は一定だが周期が変化する時系列データが再現可能であることが報告された[10][11]。
 ところが、NMRのシグナルのような振幅と周期が同時に時間とともに変化する時系列データの予測は、統計的モデル、ニューラルネットワークモデルどちらにおいてもほとんど行われてこなかった。そこで本研究では、ニューラルネットワークによる解析モデルを構築し、振幅と周期が時間とともに変化する時系列データの予測に関してその有効性を調べた。

2.ニューラルネットワーク法

 ニューラルネットワーク(NN)は、人間の脳の情報伝達方式を模倣した情報処理手法であり、モデル化したニューロン(形式ニューロン)を多数つなげてネットワークを構築し、情報処理を行う。 NNはニューロンの結合方式によりいくつかに分類されるが、その中でも階層型NNは分類とfittingにおいて特徴的な動作をする[12]。本研究では、この階層型NNの持つfitting能力を利用し、求める時系列データの予測を行うことを試みる。
 階層型NNは、入力層、中間層、出力層の3層からなり、各層間のニューロンは固有の重みで結合されている。データは入力層ニューロンへ入力され、出力層へ向かって進む過程において処理が施された後、出力層ニューロンより出力される。階層型NNでは入力データに対して望ましい出力を得られるようにニューロン間の結合の重みを更新(学習)していくが、本研究ではそれをバックプロパゲーション法[8]により行った。

3.モデル

 本モデルでは、対象とするデータ(時間とともに振幅、周期とも変化する時系列データ)を表す関数F(ti)が、振幅変化を表す関数g(ti)と、周期が関数h(ti)で変化する周期関数sin(h(ti))の積として以下のように表されると仮定する。

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)に従いあらかじめ学習を終えたものであり、この全体のモデルの中ではそれぞれ関数の役割を果たすニューロンとなる。(gNNcNN の構造は後述する。)
 左から入力された時刻ti は、v1およびv2という重みをかけられ、それ自身独立したNNであるgNNcNN に渡される。gNNcNN の出力は、それぞれw1、w2という重みをかけられF(ti)が計算される。従って、時刻ti の出力値はw1 g(v1 ti) × w2 c(v2 ti)となり、その教師データをFl(ti)(時刻ti の振幅と周期が変化する時系列データの値)として、ネットワークの重み(v1, v2, w1, w2)をバックプロパゲーションにより決定する。


Fig.3.1. Overview of neural network model for time series where amplitudes and frequencies are changing

3.1.振幅変化を表す関数値の予測

 振幅変化を表す関数値g(ti)(以下振幅変換関数)の予測を行うために、入力ti(時間)に対しg(ti)を出力するNNを構築した。本研究で用いた振幅変換関数予測のためのNNは、入力層ニューロン数2、中間層ニューロン数15、出力層ニューロン数1の3層から成る、パーセプトロン型NNである(Fig.3.2)。ただし、入力層のニューロンの一つ(図中で定数1.0を入力しているもの)はバイアスニューロンである。ニューロンの動作関数は、中間層ではシグモイド関数、出力層では線形関数を用いた。出力層において線形関数を用いたのは、[0, 1]を越える出力を保証するためである。従って、このNNの中間層からの出力(out_hid j , j =0,…,14)と出力層からの出力(out_out i , i =0)はそれぞれ式3.2, 式3.4のようになる。ただし、out_in k は入力層ニューロンからの出力値を、wj ki m は入力層ニューロンk と中間層ニューロンj の間の重み、wi jm oは中間層ニューロンj と出力層ニューロンi の間の重みをそれぞれ表す。

(3.2)
(3.3)
(3.4)

 また、NNの問題点として中間層ニューロン数の任意性が挙げられ、この決定により結果が大きく左右される。そこで、再構築学習法[12]によりネットワークの学習を行い、中間層ニューロン数の最小化を試みた。再構築法では通常のバックプロパゲーション法による学習過程と、ある大きさを越えた重みの軽減、つまり忘却の過程を繰り返す。学習と忘却を繰り返すことにより、消去より学習の効果が強く反映して結合が強くなるものと、結合が弱くなりほとんど0になるものとに2分され、情報伝達に関係ないニューロンの孤立化がおこり、中間層ニューロン数の最小化が行われる。


Fig.3.2.Network for g function

 ネットワークの学習は、予測対象データは、周期関数が振幅を変化させる関数g(ti)によりなんらかの変化を受けた結果であるという前提の下に、少なくとも振幅変換を受ける前のデータの極値は一定であったと考えることにより行う。変換前の極大値が1.0、極小値が-1.0であったと仮定すると、式3.1より、極大値、極小値の時刻の点列{dti } = {ti : δFti = 0} について式3.5の関係式が成り立つ。

(3.5)

従って、点列の値dti を入力とした時の出力を|F(dti )|として学習させることは、振幅変換関数g を学習させることと等価である。

3.2.周期変化を表す関数の予測

 周期変化を表す関数h(ti)(周期変換関数)の予測を行うために、入力ti(時間)に対しh(ti)を出力するNNを構築した。本研究で用いた周期変換関数予測のためのNNは、中間層が2層から成る、4層のパーセプトロン型NNであり、各層のニューロン数は入力層2、第1中間層20、第2中間層5、出力層1である(Fig.3.3)。ただし、入力層のニューロンの一つはバイアスニューロンである。ニューロンの動作関数も振幅変換関数予測と同様、中間層ではシグモイド関数、出力層では線形関数を用いた。出力層において線形関数を用いたのは、[0, 1]を越える出力を保証するためである。また、中間層第2層目では、関数fittingとしての各ニューロンの役割を明確にするため、前層からの出力和に入力時刻のi 乗(i=0,…4)をかけあわせた値を出力値とした。つまり、中間層第1層目のニューロンj と中間層第2層目のニューロンi の間の重みをwi jm n 、中間層第1層目の出力値をout_hid1 j とすると、中間層第2層目の出力値(out_hid2 i , i =0,…,4)は式3.6のようになる。

(3.6)

 また前節の振幅変換関数予測の際と同様に、再構築学習法によりネットワークの学習を行い、各中間層ニューロンについてニューロン数の最小化を試みた。


Fig.3.3.Network for h function

 ネットワークの学習は、予測対象データは周期関数がなんらかの変化を受けた結果であるという前提を下に、周期を変化させる関数h(ti)による変化を受ける以前の周期は一定であったと考えることにより行う。この場合、前節の{dti } = {ti : δFti = 0}で考えると、h(ti)の役割は不等間隔のdt 0 , dt 1 , …を等間隔に変換することに他ならない。そこで、本研究の周期変換予測の学習では入力として{dti } = {ti : δFti = 0}および {lti : F(lti )=0} を用意し、dti , (i =0,1,…)の教師データを(i +0.5)π、lti , (i =0,1,…)の教師データをi πとして学習を行った。教師データを(i +0.5)π、i πとしたのは、式3.1からわかるように、本研究では周期表現にsine関数を用いるからである。

4.最小自乗法による予測

 本研究で作成したNNとの性能の比較を行うために、振幅変換関数と周期変換関数をそれぞれ最小自乗法により決定し、その関数式を用いて予測を行うことを試みた。
 最小自乗法による予測は、式3.1に示す仮定の下で以下の手順により行う。

(1) 振幅変換関数の決定。
学習区間中の{dti } = {ti : δFti = 0}を満たす時刻とその時のデータ列{|F(dt 0 )|, |F(dt 1 )|,… }に対して式4.1を満たす係数xk の決定を最小自乗法により行う。振幅変換関数を近似する変数の次数は1〜4の間で試行錯誤的に決定した。

(4.1)

(2) 周期変換関数の決定。
学習区間中でdti = {ti : δFti = 0}、{lti } : F(lti )=0}を満たす時刻に対して式4.2, 式4.3を満たす係数yk の決定を最小自乗法により行う。周期変換関数を近似する変数の次数は1〜4の間で試行錯誤的に決定した。

(4.2)
(4.3)
(3) F(ti ) = g(ti )×sin(h(ti )π)により振幅と周期が変化する時系列データの結果を得る。

5.数値実験とその結果

 数値実験に用いたデータ列は以下のとおりである。

(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.a10.1.aにNNの、Fig.4.2.a, 5.2.a, 6.2, 8.2.a10.2.aにLSの予測結果全体を示した。グラフ中の実線は実データ、破線は予測結果、点線は振幅変換関数の予測結果をそれぞれ表し、図中の縦線はそれ以前が学習区間で、それ以降が予測区間であることを表す。また、Fig.4.1.b, 5.1.b, 8.1.b10.1.bにNNの、Fig.4.2.b, 5.2.b, 8.2.b10.2.bに LSの予測結果のみの拡大図を示した。以下の数値実験では、振幅変換関数および周期変換関数予測のための学習回数はそれぞれ30000回とした。また、再構築法における消去は振幅変換関数予測では300回に1回、周期変換関数予測では3500回に1回とした。

5.1.data1の結果

 data1は、時間の経過とともに振幅が1/t で減衰し、周期がt 2に比例して短くなるデータである。data1の予測をt =0〜401の10周期を用いて学習を行った後、t =402〜492の5周期に対して行った。この時のNNによる平均学習誤差は0.078、標準偏差は0.390であった。また、LSによる平均学習誤差は0.135、標準偏差は0.599であった。Fig.4.1Fig.4.2にグラフによる結果を示す。

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を用いて予想外に精度良く行われた。

5.2.data2の結果

 data2は、時間の経過とともに振幅がexp(-t )で減衰し、周期がt 2に比例して短くなるデータである。data1の場合と同様に、t =0〜401の10周期を用いて学習を行った後、t =402〜492の5周期の予測を行った。この時のNNによる平均学習誤差は0.128、標準偏差は0.396であった。また、LSによる平均学習誤差は0.136、標準偏差は0.481であった。Fig.5.1Fig.5.2にグラフによる結果を示す。

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より精度の良い結果を得られるということができる。

5.3.data3の結果

 data3は、時間の経過とともに振幅が1/t で減衰し、周期が1/t に比例して長くなるデータである。data1, data2と同様に、10周期(t =0〜302)を用いて学習を行った後、5周期(t =303〜621)の予測を行った。その結果、data3では周期変換関数予測を行うNNの学習精度が著しく悪かった。この原因として、周期予測を行うNNの第2中間層で各ニューロンの働きを式3.6のように固定してしまったため、data3のように周期が1/t で変化するデータに十分対応できなかったということが考えられた。そこで、周期予測を行うNNの第2中間層を除いて3層のパーセプトロン型NNとし、周期変化の予測を行った。この時のNNによる平均学習誤差は0.480、標準偏差は2.357であった。また、LSによる平均学習誤差は0.488、標準偏差は1.809であった。Fig.6.1Fig.6.2にグラフによる結果を示す。

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 という関数への両モデルの適用は難しいということができる。

5.4.data4の結果

 data4は、NMRなどのシグナルに代表的なmultiple nonstationary frequenciesの近似関数で、時間の経過とともに振幅がexp(-0.005t )で減衰し、周期が0.3t +1で一定のデータと、時間の経過とともに振幅がexp(-0.003t )で減衰し、周期が0.31t +3で一定のデータの和からなる多項式データである。そのためdata1〜data3よりも複雑であり、実データのグラフ(Fig.7)からもわかるとおり、予測開始時刻や学習範囲により予測精度の差が大きいことが予想された。そこで、予測開始時刻をt =212(case1)、t =399(case2)、t =605(case2)、t =802(case4)とし、そこからdata1〜data3と同様に、5周期の予測を行うことを試みた。


Fig. 7. Multiple nonstationary frequencies whose amplitudes and frequencies
simultaneously change with time(data4)

 以下では紙面の都合上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.1Fig.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.aFig.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.5.ノイズを含むデータの予測

 本モデルのノイズを含むデータへの適応性を見るために、data1とdata4にs/n比が20である正規誤差を加え、予測を行った。ここで、s/n比(r)はデータの標準偏差をノイズの標準偏差で割ったものとし、ノイズを含まない実際のデータをf(t )、ノイズの標準偏差をpn とするとき、以下のように表すことができる。

(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.1Fig.9.2にグラフを示す。

Table1. Mean relative error and standard deviation of data4
周期 平均誤差(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.1Fig.10.2にグラフを示す。

Table2. Mean relative error and standard deviation of data4
周期 平均誤差(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と比較して特に振幅変換関数の予測に対して精度の良い結果を得られるということができる。

6.中間層ニューロン数の最適化

振幅変換関数予測、周期変換関数予測を行う各NNを、再構築学習法で学習した際の結合荷重値の結果から、中間層ニューロンの最適数について考察を行う。

6.1.振幅変換関数予測を行うNN

 振幅変換関数を求めるNNの中間層ニューロン数について説明する。Table3に示したのは、各データの実行より得られた振幅変換関数を求めるNNの中間層ニューロンの最適数である。
 data2, data3は他のデータに比べニューロンを多く必要としていることがわかるが、これらのニューロンの結合状態を調べた結果、極めて似通ったつながりをしているニューロンが複数組存在した。従って、data2, data3は再構築法において消去が不十分であったと考えられる。またdata4では、case1からcase3までは3,6,8と順に多くのニューロンを必要としているのに対し、case4では6と少ない。これは、本論文には示さなかったが、再構築法を行わないcase4の実行では振幅変換関数の学習と予測の結果が多少良かったことから、case4では再構築法により必要以上にニューロンを消去してしまったためと考えられる。またnoiseを含むデータは、含まないものに比べ同じかそれより2程度多くのニューロンを必要としていることがわかる。
 以上の結果より、今回用いた振幅変換関数を予測するNNの中間層ニューロン数はたかだか10程度で良いという結論を得た。

Table3. 中間層ニューロンの最適数
データ 最適数
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

6.2.周期変換関数予測を行うNN

 周期変換関数を求めるNNの2つの中間層ニューロン数の最適数について説明する。
 まず、第1中間層ニューロン数の最適化であるが、ここには示さなかったが、入力層からの結合がどれも小さく、また、第1中間層から第2中間層間の結合はどの値も似通っており、第1中間層ニューロン数の最適化を行うことは難しい。これは消去率を極めて低く設定しているためであると考えられるが、これより低い消去率においてもこの層の最適化を再構築法により行うことは難しかった。
 Table4に示したのは周期変換関数を求めるNNの第2中間層ニューロンを最適化して、式3.6を用いて決定した周期変換関数である。表中のx,y,z は、前層からの入力や重みにより決定される値であり、t は時間である。

Table4. 周期変換関数予測を行うNNにより得られた周期変換関数
データ 周期変換関数
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により、各データでその実データの性質と合致する関数式が得られるためであり、本モデルの妥当性が確かめられたということができる。

7.まとめと結論

 本研究では、NMRのシグナルやBZ反応などの振動反応の酸化還元ポテンシャルなど化学現象に見られる、時間とともに振幅と周期が同時に変化する時系列データの予測を行うために、ニューラルネットワーク(NN)を用いたモデルを構築し、data1〜data4の4つのデータを用いて数値実験を行った。data1は時間の経過とともに振幅が1/t で減衰し、周期がt 2に比例して短くなるデータ、data2は時間の経過とともに振幅がexp(-t )で減衰し、周期がt 2に比例して短くなるデータ、data3は時間の経過とともに振幅が1/t で減衰し、周期が1/t に比例して長くなるデータである。またdata4は、時間の経過とともに振幅が減衰し周期が一定のデータの和からなる多項式データである。各データをモデルに与え学習させた後、学習後5周期の予測を行うことを試みた。各数値実験では、最小自乗法(LS)を用いて関数式を求め、その予測を試みることにより、本モデルの有効性の検証を行った。
 その結果、data1、data2のような単純なデータの予測は、予測全周期において学習誤差と同等の精度で行うことができた。LSの結果と比較すると、data1では予測周期が進むに従いLSの方が精度が良かったが、data2では全予測区間でNNの方が精度が良かった。
 data3では、周期変換関数を求めるNNの第2中間層にdata3の周期変化を表現できるニューロンがなかったため、精度の良い学習が行われなかった。周期変換関数を求めるNNを3層のパーセプトロン型NNとした場合は、学習はほぼ正確に行われたが、予測の精度は悪かった。またLSによる結果は、学習区間ではほぼ正確に再現されていたが、予測区間の誤差は大きかった。これらの結果から、data3の予測が難しいことがわかった。
 data4は、data1〜data3と比較してそのデータがより複雑であり、予測開始時刻による精度の違いが予想されたため、予測開始時刻をt =212(case1)、t =399(case2)、t =605(case2)、t =802(case4)とし、そこからdata1〜data3と同様に、5周期の予測を行うことを試みた。その結果、予測開始時刻による差はあるものの、少なくとも学習後1周期先の予測は学習誤差と同等の精度で行うことができた。しかし学習区間が長いcase4では学習誤差自体が大きかった。LSの結果と比較すると、学習はLSの方が精度良く行われ、特にcase3, case4の学習区間が長いデータでその差が顕著であった。しかし予測においては、case1〜case4全てにおいてNNの方が精度の良い予測結果を得ることができた。これは主に、NNの振幅変換関数を予測する精度がLSと比較して良いためであった。
 次に、data1, data4のcase1,case2にs/n比が20のノイズを加え、同様に5周期の予測を行い、本モデルの応用の可能性を検証した。その結果、ノイズを含むデータに対しても本モデルは十分適応可能であった。またLSの結果と比較すると、特に振幅変換関数の予測で高い精度を得られた。
 本モデルを構成している2つのNNの中間層ニューロンの最適数については、今回用いた振幅変換関数を予測するNNの中間層ニューロン数はたかだか10程度で良いという結論を得た。周期変換関数の2つの中間層については、第1中間層ニューロン数の最適化を行うことは難しいことがわかった。 また第2中間層のニューロン数を最適化することにより、各データでその実データの周期変化と合致する関数式が得られ、本モデルの妥当性が確かめられた。第2中間層ニューロンは、data3を除く本研究で用いた全てのデータにおいてt 0からt 2までの3つのニューロンがあれば充分であるということがわかった。

 以上の結果から、本研究で用いたNNモデルは、NMRのシグナルやBZ反応などの振動反応のシグナルなどに見られる、振幅と周期が時間とともに変化する時系列データの解析に有効であり、LSの結果と比較すると、特に振幅変化の予測に有効であるということができる。 今後、data3のようなタイプのデータに対応させていく必要がある。また、ノイズを含むさらに多様なデータの予測を行っていく必要があり、ノイズを除去するためのフィルタの作成なども必要である。

参考文献

[1] 北川源四郎, 時系列解析プログラミング, 岩波書店, 東京, 1993.
[2] 赤池弘次監修, 時系列解析の実際 I, 朝倉書店, 東京, 1994.
[3] 赤池弘次監修, 時系列解析の実際 II, 朝倉書店, 東京, 1995.
[4] 南慶一郎,河田聡, 時間で特性が変化する信号の新解析手法---時間-周波数解析, インターフェース, 20 (1994), 110-121.
[5] M. West, Bayesian Inference in Cyclical Component Dynamic Linear Models, Journal of the American Statistical Association, 90 (1995), 1301-1312.
[6] G. L. Bretthorst, Bayesian Spectrum Analysis on Quadrature NMR Data with Noise Correlations, Maximum Entropy and Bayesian Methods, J. Skilling (Ed.), Kluwer Acad. Publs., Dordrecht, 1989, pp. 261.
[7] G. L. Bretthorst, Bayesian Model Selection: Examples Relevant to NMR, Maximum Entropy and Bayesian Methods, J. Skilling (Ed.), Kluwer Acad. Publs., Dordrecht, 1989, pp. 377.
[8] 萩原将文, ニューロ・ファジィ・遺伝的アルゴリズム, 産業図書, 東京, 1994.
[9] 上村龍太郎, 回帰ニューラルネットワークによる時系列パターンの復元, 情報処理学会人工知能研究会報告, 70 (1990), 1-10.
[10] 青山智夫,井須芳美,長嶋雲兵, 階層型ニューラルネットワークによる時系列現象の予想, IPSJ Sig Notes, 95-HPC-59 (1995), 13-17.
[11] 小野寺光永,長嶋雲兵,吉田裕亮,青山智夫,細矢治夫, 振幅と周期が時間とともに変化する時系列データのニューラルネットワークによる予測, IPSJ Sig Notes, 95-HPC-63 (1996), 13-18.
[12] 市川紘, 階層型ニューラルネットワーク 非線形問題解析への応用, 共立出版, 東京, 1993.
Return