1

ANNの初心者:

金の価格を予測するために、バックプロパゲーションニューラルネットワークを実装しています。データをトレーニングデータ、選択データ、テストデータに分割する必要があることを知っています。

ただし、これらのデータセットの使用方法がわかりません。最初はトレーニングセットを使用してデータネットワークをトレーニングしていましたが、トレーニング後、テストセットからネットワークへの入力を取得し、出力を比較しています。

私がこれを正しく行っているかどうかはわかりませんが、選択セットは入っていましたか?

前もって感謝します!

4

2 に答える 2

1

一般的な考え方は次のとおりです。

  1. トレーニングセットで少しの間ネットワークをトレーニングします。
  2. 多くの場合、検証セットと呼ばれる2番目のセットでネットワークを評価します。おそらくあなたが選択セットと呼んでいるものです。
  3. トレーニングセットでネットワークをもう少しトレーニングします。
  4. 選択セットで新しいネットワークを再度評価します。
  5. 古いネットワークと新しいネットワークのどちらが優れていましたか?新しいネットワークの方が優れている場合は、トレーニングをまだ活用しているので、3に進みます。新しいネットワークの方が悪い場合は、トレーニングを増やしても問題が発生する可能性があります。以前のバージョンのネットワークを使用してください。

このようにして、トレーニングをいつ停止するかを知ることができます。

これに対する簡単な変更の1つは、これまでに見られた最良のネットワークを常に追跡することです。トレーニングを停止するのは、連続して悪化するトレーニングの試みがいくつか(たとえば、3回)ある場合のみです。

3番目のセットであるテストセットが必要なのは、選択セットが間接的にトレーニングプロセスに関与しているためです。最終評価は、トレーニング中にまったく使用されなかったデータに対して行う必要があります。

簡単な実験にはこの種のことで十分ですが、一般に、システムのパフォーマンスをよりよく理解するために相互検証を使用することをお勧めします。

于 2012-04-10T02:04:08.713 に答える
0

検証セットはモデルに依存するハイパーパラメータの調整に適した場所であるとだけコメントを残したかったのですが、私はここで新しいため、そうするための評判ポイントが不足しています。これを別の投稿に値するものにするために、私は自分のtrain-validate-testプロセスの概要を含めました。実際には、私のワークフローは次のとおりです。

  1. データを特定、収集、およびクリーンアップします。データの改ざんプロセス中の不満を制限するようにしてください。
  2. データをトレーニング、検証、テストの3つのセットに分割します。
  3. プロセスの後半で構築されるより複雑なモデルを評価するために、2つの「ベース」モデルを確立します。これらのモデルの最初のものは、通常、すべての可能な機能を使用した基本的な線形/ロジスティック回帰です。2番目のモデルは、最も明らかに有益なもののみを使用します(有益な機能の最初の識別は、ユースケースによって異なり、通常、ドメイン知識、基本的なクラスタリング、単純な相関の組み合わせが含まれます)。
  4. より経験的な特徴選択(つまり、教師なしNNですが、通常はランダムフォレスト)を開始し、トレーニングセットを使用して幅広いモデルのプロトタイプを作成します。
  5. パフォーマンスの低いモデルや有益でない機能を排除する
  6. トレーニングセットの修正バージョンを使用して、残りのモデルのパフォーマンスを相互に比較し、「ベース」モデルと比較します(同じデータですが、有益な機能はありません)。パフォーマンスの低いモデルを投げます。
  7. 検証セットを使用して、各モデルの適切なハイパーパラメーターを調整します(手動またはグリッド検索のいずれかで)。考慮しているモデルの数をさらに減らし、理想的には2〜3(ベースモデルを除く)にします。
  8. 最後に、テストセットでモデルのパフォーマンスを(最適化されたハイパーパラメーターを使用して)評価します。ここでも、モデルをモデル間およびベースモデルと比較します。計算の複雑さ/コスト、解釈のしやすさ/透明性/「説明性」、および基本モデルに対するパフォーマンスの改善の問題固有の適切な組み合わせに基づいて、最終的なモデルを選択します。
于 2014-04-30T04:10:06.707 に答える