2

バックプロパゲーション アルゴリズムを使用してニューラル ネットワークをトレーニングしています。これは全体的なエラーのグラフです。

ここに画像の説明を入力

(私はこの式で全体的なエラーを計算しています: http://www.colinfahey.com/neural_network_with_back_propagation_learning/neural_network_with_back_propagation_learning_en.html パート 6.3: 全体的なトレーニングエラー)

私は Power Trendline を使用しました。計算後、epoches = 13000 => 全体的なエラー = 0.2 であることがわかりました。

これ高すぎない?

このチャートは正常ですか?トレーニング プロセスに時間がかかりすぎるようです. 私は何をすべきか?もっと速い方法はありませんか?

編集: 私のニューラル ネットワークには、200 個のニューロンを持つ隠れ層があります。入力層と出力層には 10 ~ 12 個のニューロンがあります。私の問題は、キャラクターのクラスタリングです。(教師付きトレーニングにより、ペルシャ語の文字をいくつかのクラスターにクラスター化します)

4

1 に答える 1

1

では、非表示層に 10 ~ 12 個の非表示ノードを持つ 200 個の入力ノードを持つ ANN を使用していますが、非表示層と出力層に使用している活性化関数は何ですか?

これは標準のバック プロパゲーション トレーニング アルゴリズムですか? また、どのトレーニング関数を使用していますか? トレーニング関数の各タイプは、トレーニングの速度に影響を与えます。場合によっては、その一般化能力に影響を与えるため、ニューラル ネットワークがトレーニング データにのみ適しているようなデータに対してトレーニングしたくない場合があります。

したがって、理想的には、実際のデータのサブサンプル (15% など) になる適切なトレーニング データが必要です。共役勾配ベースのアルゴリズムを使用してデータをトレーニングできます: http://www.mathworks.co.uk/help/toolbox/nnet/ug/bss331l-1.html#bss331l-2 これにより、ネットワークがすばやくトレーニングされます。

10 ~ 12 個のノードはデータにとって理想的ではない可能性があります。5 個のブロック単位で数を変更するか、別のレイヤーを追加してみてください。一般に、レイヤーを増やすと、問題を分類するネットワークの能力が向上しますが、計算の複雑さが増します。トレーニングを遅くします。

おそらく、これらの 10 ~ 12 個のノードは、分類しようとしている「機能」ですか?

その場合は、それらを正規化することをお勧めします。そのため、アクティベーション関数に応じて、それぞれを 0 から 1 または -1 から 1 に再スケーリングします (たとえば、tan sigmoidal は -1 から +1 の範囲の値を生成します): http://www. heatonresearch.com/node/706

また、ニューラル ネットワークをトレーニングして、隠れ層に必要なノードの理想的な数を特定することもできます。

于 2012-03-05T16:12:25.337 に答える