正弦波の予測でニューラルネットワークを改善するにはどうすればよいですか?


21

ここでは、見て: 生成された正弦波 あなたは場所を正確にトレーニングデータの終了を確認することができます。トレーニングデータから行くまで111

Kerasと、tanhアクティベーションを使用した1-100-100-2の高密度ネットワークを使用しました。pとqの2つの値pとqから結果を計算します。このように、1より小さい値のみを使用して、任意のサイズの数値を実現できます。

私はまだこの分野の初心者であるため、簡単に説明してください。


1
明確にするために、トレーニングデータは約-1.5〜+1.5であるため、ネットワークはそれを正確に学習しましたか。あなたの質問は、トレーニングデータの範囲外の目に見えない数に結果を外挿することですか?
ニールスレーター

11
すべてをフーリエ変換して、周波数領域で作業してみてください。
ニック・アルジェ

4
将来のレビュアーへ:これが閉鎖のフラグが立てられている理由がわかりません。私には完全に明らかなようです。それは、ニューラルネットワークで周期的なデータをモデル化するための戦略についてです。
シコラックスは、

1
機械学習の領域内の初心者にとっては、これは合理的な質問だと思うので、ここで説明する必要があります。私はそれを閉じません
-Aksakal

1
これが役立つかどうかはわかりませんが、バニラNNは箱から出して多項式関数を学習することしかできません。固定間隔で多項式を任意に近づけることができるため、実際にはこれで問題ありません。しかし、間隔の終わりを超えて広がる正弦波を決して学習できないことを意味します。以下に他の回答が指摘しているトリックは、問題をそのように解決できるものに変換することです。それがフーリエ変換が示唆することであり、その場合、正弦波を学習することは単に定数を学習することです。
ウッコ

回答:


19

フィードフォワードネットワークを使用しています。他の答えは、FFNNがトレーニングデータの範囲を超えた外挿に優れていないことは正しいです。

ただし、データは定期的な品質を持っているため、LSTMを使用したモデリングに問題がある可能性があります。LSTMは、シーケンスで動作するさまざまなニューラルネットワークセルであり、以前に「見た」ものに関する「記憶」を持っています。この抽象の本の章では、 LSTMのアプローチがあることを示唆している資格の定期的な問題に成功。

この場合、トレーニングデータはタプルのシーケンスであり、新しい入力x i + 1の正確な予測を行うタスクです。(xi,sin(xi))、いくつかのためのnおよび Iいくつかのインデックス増加するシーケンス。各入力シーケンスの長さ、カバーする間隔の幅、および間隔は、ユーザー次第です。直観的には、ある期間に限定されるのではなく、広範囲の値をカバーするトレーニングシーケンスで、1期間をカバーする通常のグリッドが開始するのに適した場所であると期待します。xi+1xi+nni

(Jimenez-Guarneros、MagdielおよびGomez-Gil、PilarおよびFonseca-Delgado、RigobertoおよびRamirez-Cortes、ManuelおよびAlarcon-Aquino、Vicente、「LSTMニューラルネットワークを使用した正弦関数の長期予測」、Nature-ハイブリッド知的システムのインスピレーションを受けてデザイン


2
ここでモデル化されているシーケンスは何ですか?時間ステップは何ですか?これは、単純な曲線近似アプリケーションのように見えます。
デビッドJ.ハリス

@ DavidJ.Harris回答を更新しました。
Sycoraxが復活モニカ言う

1/(2π)

これは、たとえば、彼らが市場予測を行う方法ですか?
マルクスアペル

3
いいえ、それは市場予測の方法ではありません。少なくともあなたがお金を稼ぐためにどうするかは違います。
アクサカル

13

やりたいことが、このような単純な周期関数を学ぶことであれば、ガウス過程の使用を検討することができます。GPを使用すると、適切な共分散関数を指定することにより、ドメインの知識をある程度強化できます。この例では、データが周期的であることがわかっているため、周期的なカーネルを選択できます。モデルはこの構造を推定します。図に例を示します。ここでは、潮の高さのデータを近似しようとしているので、周期構造を持っていることがわかります。私は周期構造を使用しているため、モデルはこの周期性を(多かれ少なかれ)正しく推定します。OFCニューラルネットワークについて学習しようとしている場合、これは実際には関係ありませんが、これは手作業の機能よりも少し良いアプローチかもしれません。ちなみに、ニューラルネットワークとgpは理論的に密接に関連しています。ここに画像の説明を入力してください

GPは、ニューラルネットとは異なり、大規模なデータセットやディープネットワークに拡張するのが難しいため、必ずしも有用ではありませんが、このような低次元の問題に関心がある場合は、おそらくより高速で信頼性が高くなります。

(図では、黒い点がトレーニングデータであり、赤い点がターゲットです。正しくない場合でも、モデルはおおよそ周期性を学習していることがわかります。色付きのバンドは、モデルの信頼区間です。予測)


2
このプロットは美しいです。
シコラックスは、モニカを復活させる

11

ニューラルネットワークを含む機械学習アルゴリズムは、任意の関数を近似することを学習できますが、トレーニングデータの密度が十分にある区間でのみです。

統計ベースの機械学習アルゴリズムは、補間を実行しているときに最適に機能します-トレーニング例に近い、またはその間の値を予測します。

トレーニングデータ以外では、外挿を期待しています。しかし、それを達成する簡単な方法はありません。ニューラルネットワークは、統計を介してのみ関数を分析的に学習することはありません。これは、ほぼすべての教師付き学習MLテクニックに当てはまります。より高度なアルゴリズムは、十分な例(およびモデル内の自由なパラメーター)があれば、選択した関数に任意に近づけることができますが、提供されるトレーニングデータの範囲内でのみそうします。

ネットワーク(または他のML)がトレーニングデータの範囲外でどのように動作するかは、使用されるアクティベーション関数を含むアーキテクチャによって異なります。

sinsin(x),sin(2x+π/4)sin


「ニューラルネットワークは、関数を分析的に学習することはなく、統計を介してのみ学習します。」-同じことは、実際に使用されているほとんどすべてについて言えます。たとえば、FFTは分析的にも学習しません。サンプリングレートと周期を無限に増やして、真の関数に無限に近づけることができますが、NNについても同じことが言えます。
アクサカル

@Aksakal:はい、そうです。ただし、「すべてのMLアルゴリズムが関数を分析的に学習することは決してない」とは言いたくありませんでした。誰かが間違いなくベイジアン分析学習者や遺伝的プログラミングなどの反例を思い付くからです。私はそれを編集してより一般的なものにするよう試みます
ニール・スレーター

9

場合によっては、機能を周期関数で変換する@Neil Slaterの推奨アプローチが非常にうまく機能し、最適なソリューションになる可能性があります。ここでの難点は、周期/波長を手動で選択する必要がある場合があることです(この質問を参照)。

周期性をネットワークにより深く埋め込む場合、最も簡単な方法は、1つ以上のレイヤーでアクティベーション関数としてsin / cosを使用することです。このペーパーでは、定期的なアクティベーション機能を扱うための潜在的な困難と戦略について説明します。

また、このペーパーでは、ネットワークの重みが周期関数に依存する、異なるアプローチを採用しています。また、より柔軟なため、sin / cosの代わりにスプラインを使用することを提案しています。これは昨年の私のお気に入りの論文の1つであったため、そのアプローチを使用しなくても読む(または少なくともビデオを見る)価値はあります。


9

あなたは間違ったアプローチを取りました。問題を解決するためにこのアプローチでは何もできません。

問題に対処する方法はいくつかあります。機能エンジニアリングを通じて最も明白なものを提案します。線形の特徴として時間を差し込む代わりに、それをモジュラスT = 1の残りとして置きます。たとえば、t = 0.2、1.2、2.2はすべてt1 = 0.1などの特徴になります。Tが波の周期よりも大きい限り、これは機能します。このことをネットに接続して、それがどのように機能するかを見てください。

機能エンジニアリングは過小評価されています。AI / MLにはこの傾向があり、営業担当者はすべての入力をネットにダンプすると主張し、どうにかしてそれらをどう処理するかを理解します。確かに、あなたの例で見たように、それはそうですが、それから簡単に壊れます。これは、最も単純な場合でも優れた機能を構築することがいかに重要であるかを示す素晴らしい例です。

また、これが機能エンジニアリングの最も粗雑な例であることを理解してほしい。それはあなたにあなたがそれで何ができるかについてのアイデアを与えることです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.