17

私はアルゴリズムに取り組んでおり、入力が与えられ、それらの出力が与えられ、3か月間の出力が与えられた場合(ギブまたはテイク)、将来の出力が何であるかを見つけて計算する方法が必要です。
さて、与えられたこの問題は証券取引所に関連している可能性があり、特定の制約と特定の結果が与えられており、次を見つける必要があります。
私はニューラル ネットワークの株式市場予測に出くわしました。Googleで検索するか、ここここここで読むことができます。

アルゴリズムの作成を開始するには、レイヤーの構造がどうあるべきかを理解できませんでした。
指定された制約は次のとおりです。

  • 出力は常に整数になります。
  • 出力は常に 1 から 100 の間になります。
  • たとえば、株式市場と同じように、正確な入力はありません。株価が 1 と 100 の間で変動することがわかっているだけなので、これを唯一の入力と見なす (または見なさない) 場合があります。
  • 過去 3 か月 (またはそれ以上) の記録があります。

さて、私の最初の質問は、入力にいくつのノードを使用するかです。

出力は 1 つだけです。しかし、私が言ったように、入力レイヤーに 100 ノードを使用する必要があります (株価が常に整数であり、常に 1 と 100 の間であると仮定すると?)

隠れ層はどうですか?ノードはいくつありますか?ここでも 100 個のノードを使用すると、ネットワークがあまりトレーニングされないと思います。入力ごとに、以前のすべての入力も考慮する必要があるからです。

たとえば、4 か月目の 1 日目の出力を計算しているとします。非表示/中間層に 90 個のノードが必要です (簡単にするために、各月を 30 日と仮定します)。今は2つのケースがあります

  • 私たちの予測は正しく、結果は予測どおりでした。
  • 私たちの予測は失敗し、結果は予測とは異なりました。

いずれにせよ、4 か月目の 2 日の出力を計算するときは、90 個の入力だけでなく、最後の結果 (予測ではなく、同じです!)も必要なので、中間層/非表示層に 91 個のノードがあります。

など、ノードの数は毎日増加し続けます、AFAICT.

したがって、私の他の質問は、動的に変化する場合、非表示/中間層のノード数をどのように定義/設定するかです。

私の最後の質問は、私が気付いていない他の特定のアルゴリズム (このようなもの/もの) はありますか? このニューラル ネットワーキングをいじる代わりに、それを使用する必要がありますか?

最後に、(むしろ私が作成しているアルゴリズム) 出力を予測する原因となる可能性のある、私が見逃している可能性のあるものはありますか?

4

3 に答える 3

25

あなたの質問への答えとして言うべきことがたくさんあります。実際、あなたの質問は、一般的な時系列予測の問題と、このタスクのためのニューラルネットワークアプリケーションに対応しています。ここではいくつかの最も重要なキーのみを書いていますが、これを読んだ後は、クエリに対するGoogleの結果を詳しく調べる必要がありますtime series prediction neural network。原則が詳細にカバーされている作品はたくさんあります。さまざまなソフトウェア実装(ソースコードを使用)も存在します(これは、c ++のコードを使用した例の1つにすぎません)。

1)問題は、データの前処理と正しい入出力係数の選択に関する99%であり、ニューラルネットワークまたはその他のものを問わず使用する具体的な機器に関する問題はわずか1%であると言わなければなりません。補足として、ニューラルネットワークは他のほとんどのデータ分析方法を内部的に実装できます。たとえば、別の回答で言及されているように、SVDに密接に関連する主成分分析(PCA)にニューラルネットワークを使用できます。

2)入出力値が特定の領域に厳密に適合することは非常にまれです。実際のデータは絶対値で無制限と見なすことができますが(その変更によってチャネルが生成されているように見えても、すぐに分解される可能性があります)、ニューラルネットワークは安定した状態でのみ動作できます。これが、データが通常最初に増分に変換される理由です(i番目のポイントとi-1の間のデルタを計算するかlog、それらの比率から取得することによって)。[0、100]リージョン内にあると宣言しますが、とにかくデータを使用して実行することをお勧めします。そうしないと、ニューラルネットワークは、次の各値が前と等しい予測を生成する、いわゆるナイーブ予測子に縮退する可能性が高くなります。

次に、データは[0、1]または[-1、+1]に正規化されます。2つ目は、+ 1が上に移動し、-1が下に移動することを示す時系列予測の場合に適しています。ネット内のニューロンにハイパータン活性化関数を使用します。

3)NNに入力データをフィードする必要があります。sliding window日付の。たとえば、1年間のデータがあり、すべてのポイントが1日である場合、ウィンドウのサイズ(たとえば、1か月)を選択し、過去から未来へと日ごとにスライドさせる必要があります。ウィンドウの右端の日がNNのターゲット出力です。これは非常に単純なアプローチです(はるかに複雑です)。継続的に到着するデータの処理方法を尋ねるという理由だけで言及します。答えは、NNを毎日変更/拡大する必要はないということです。ウィンドウサイズが固定された定数構造を使用し、最も古いポイントを「忘れる」(NNに提供しない)だけです。持っているすべてのデータを単一の入力として扱うのではなく、それを多くの小さなベクトルに分割し、それらでNNをトレーニングして、ネットがデータを一般化し、規則性を見つけることができるようにすることが重要です。

4)スライディングウィンドウのサイズは、NN入力サイズです。出力サイズは1です。パフォーマンスを向上させるには、非表示のレイヤーサイズで遊ぶ必要があります。sqrt(in * out)のように、入力と出力の間にある値から始めます。

最新の調査によると、リカレントニューラルネットワークは時系列予測のタスクに対してより適切に機能しているようです。

于 2012-10-30T12:19:28.430 に答える
6

スタンの言うことには同意する

1) 問題はデータの前処理に関する 99% であると言わざるを得ません

私は 25 年以上にわたり、ヘリコプターの飛行制御を含むさまざまな航空宇宙アプリケーションにニューラル ネットワークを適用してきました。入力/出力データ セットの設定がすべてで、それ以外はすべて二次的なものです。

smirkman のコメントで、ニューラル ネットワークは「価値のあるものを何も生み出さなかったので」すぐに取り下げられたということに驚いています。

トピックがニューラル ネットワークの株式市場予測について議論していることを考えると、私はそれを機能させたと言えます。テスト結果は、私のウェブサイト www.nwtai.com からダウンロードできます。

それがどのように行われたかは明かしませんが、Neural Networks の使用をより真剣に探求したくなる興味深いデータが十分にあります。

于 2015-08-19T22:48:34.003 に答える
2

この種の問題は、100 万ドルのNetFlix 賞を勝ち取ろうとする何千人もの人々によって特によく研究されました。

以前の送信は、多くの場合、 K Nearest Neigboursに基づいていました。その後、特異値分解サポート ベクター マシン、および確率的勾配降下法を使用して提出が行われました。勝者は、いくつかのテクニックのブレンドを使用しました。

優れたコミュニティ フォーラムを読むと、過去から未来を予測するための最良の方法について多くの洞察が得られます。また、さまざまなメソッドの大量のソース コードも見つかります。

面白いことに、ニューラル ネットワークは価値のあるものを何も生成しなかったため、すぐに破棄されました (個人的には、重要な NN が価値のあるものを生成するのをまだ見たことがありません)。

あなたが始めているなら、SVDを最初のパスとしてお勧めします。非常に簡単に作成でき、多くの場合、データに関する驚くべき洞察が得られます。

幸運を!

于 2012-10-30T11:54:21.373 に答える