私はトレーニング中のこの 5-5-2 バックプロパゲーション ニューラル ネットワークを持っており、LeCun によるこの素晴らしい記事を読んだ後、彼が提案するいくつかのアイデアを実践し始めました。
現在、私は自分で作成した 10 倍の交差検証アルゴリズムで評価しています。これは基本的に次のようになります。
for each epoch
for each possible split (training, validation)
train and validate
end
compute mean MSE between all k splits
end
私の入力と出力は標準化されており (平均 0、分散 1)、tanh 活性化関数を使用しています。すべてのネットワーク アルゴリズムは適切に動作しているようです。sin 関数を近似するために同じ実装を使用しましたが、かなりうまく機能します。
さて、問題はタイトルが示すとおりです。各トレーニング/検証セットを個別に標準化する必要がありますか、それともデータセット全体を一度標準化する必要がありますか?
後者を行った場合、ネットワークは意味のある予測を生成しないことに注意してください。ただし、出力を見るだけでなく、より「理論的な」答えを得ることが好きです。
ちなみに、私は C で実装しましたが、C++ にも慣れています。