0

ntstoolを使用して、1x1247 入力ベクトルでトレーニングすることにより、NAR (非線形自己回帰) ネット オブジェクトを作成しました。(6 年間の毎日の株価) すべての手順を終了し、結果のネット オブジェクトをワークスペースに保存しました。

このオブジェクトを使用して、たとえば t = 2000 の y(t) を予測する方法がわかりません (t = 1:1247 のモデルをトレーニングしました)。

他のいくつかのスレッドでは、人々は sim(net, t) 関数を使用することを推奨しましたが、これは t のどの値に対しても同じ結果をもたらします。(net(t)関数と同じ)

4

2 に答える 2

1

私は特定のニューラル ネットワーク コマンドに精通していませんが、この問題に間違った方法で取り組んでいると思います。通常、時間の経過とともに進化をモデル化します。これを行うには、特定のウィンドウ (たとえば 3 か月) を指定します。

現在トレーニングしているのは、時間の進化に関する情報を持たない単一の入力ベクトルです。常に同じ予測が得られる理由は、トレーニングに 1 つのポイントのみを使用したためです (1247 次元ですが、それでも 1 ポイントです)。

おそらく、この性質の入力ベクトルを作成したいと思うでしょう (簡単にするために、月で作業していると仮定します):

[month1 month2; month2 month 3; month3 month4]

この例には、3 か月の進化を伴う 2 つのトレーニング ポイントが含まれています。重なっていることに注意してください。

于 2013-05-06T15:11:35.363 に答える
0

ネットワークの使用 ネットワークの学習と検証が完了したら、ネットワーク オブジェクトを使用して、任意の入力に対するネットワーク応答を計算できます。たとえば、建物データ セットの 5 番目の入力ベクトルに対するネットワーク応答を見つけたい場合は、次の a = net(houseInputs(:,5)) a = 34.3922 を使用できます。このコマンドを試すと、出力が次のようになります。ネットワークが初期化されたときの乱数ジェネレーターの状態によって異なります。以下では、ネットワーク オブジェクトを呼び出して、住宅データ セット内のすべての入力ベクトルの同時セットの出力を計算します。これはシミュレーションのバッチ モード形式で、すべての入力ベクトルが 1 つの行列に配置されます。これは、ベクトルを 1 つずつ表示するよりもはるかに効率的です。a = net(houseInputs); ニューラル ネットワークがトレーニングされるたびに、初期の重みとバイアスの値が異なり、トレーニング セット、検証セット、テスト セットへのデータの分割が異なるため、異なる解が得られる可能性があります。その結果、同じ問題でトレーニングされた異なるニューラル ネットワークは、同じ入力に対して異なる出力を与える可能性があります。精度の高いニューラル ネットワークが見つかったことを確認するには、数回再トレーニングします。より高い精度が必要な場合は、初期ソリューションを改善するための手法が他にもいくつかあります。詳細については、ニューラル ネットワークの一般化の改善とオーバーフィッティングの回避を参照してください。強いテキスト 何度か再訓練します。より高い精度が必要な場合は、初期ソリューションを改善するための手法が他にもいくつかあります。詳細については、ニューラル ネットワークの一般化の改善とオーバーフィッティングの回避を参照してください。強いテキスト 何度か再訓練します。より高い精度が必要な場合は、初期ソリューションを改善するための手法が他にもいくつかあります。詳細については、ニューラル ネットワークの一般化の改善とオーバーフィッティングの回避を参照してください。強いテキスト

于 2013-09-20T10:04:07.770 に答える