5

それで、ニューラル ネットワークについて学び始めましたが、基本を理解するのが難しいと感じています。誰でも提供できるヘルプに感謝します..

1) ニューロンに入力すべき基準値はありますか? たとえば、ニューロンに 5 つの着信接続がある場合、各接続は a) 0 と 1 の間の連続値を提供する必要がありますか? b) 0 か 1 か? c) 他に何かありますか?

2) tanh の活性化関数を使用する場合、内積の入力が約 3 (tanh(3) = .995) に達すると、ニューロンは 1 を出力し始めることを意味します。20 個の非表示ノードのレイヤーがある場合、アクティベーション関数を最大限に活用しないようにするには、重みを小さくする必要があることを意味します (.05 マーク前後)。では、なぜ開始ウェイトを -1 から 1 の間に設定するのでしょうか? それらを非常に小さく始めたほうがいいですか?

3) ニューロンの出力はどうあるべきですか? a) 0 と 1 の間の値? b) 0 か 1 か? c) 他に何かありますか? 一部の ANN には、-1 から 1 の間で出力するニューロンがありますか (見たことがあると思いますか?)

4) 入力層と出力層のルールが変わったような?入力層については、入力データを適切な形式にエンコードする必要があると思います。それは常に0と1の間の値にエンコードすることを意味しますか? 出力層についても同様に、おそらく出力値を有用なものにマッサージする必要がありますか? したがって、ANN が 0 から 1 の間の連続値を出力し、YES または NO が必要な場合は、<0.5 は NO、>0.5 は YES というルールを作成できます。それがどのように機能するのですか?

5) スカラー入力値をバイナリにエンコードすることの欠点はありますか? 大きな数の最終ビットが 1 であるにもかかわらず、その数 + 1 の最終ビットが 0 であるというのは少し奇妙に思えますか? より適切に機能する値をエンコードするより継続的な方法はありますか?

申し訳ありませんが、たくさんの質問..回答に感謝します。ありがとう!

4

1 に答える 1

7
  1. 正規化された値はトレーニングに大いに役立つため、入力が短い範囲にあることを確認してください。範囲がどうあるべきかは、タスクによって異なります。変数が本来ブール値である場合もありますが、実際の値の場合は、それらをスケーリングしてゼロに中央揃えすることをお勧めします。そうしないと、ネットワークはデータの平均と分散を学習するのに時間がかかります。これは、非常に高速で非常に単純なアルゴリズムがあるため、無駄です。

  2. 大きな重みで開始すると、トレーニングの動作は予測できなくなります。初期の重みを [-1, 1] にするべきだと言う人を聞いたことがありません。一般的なレシピ、AFAIKは、平均0と分散1の小さなランダムガウスを使用することです(randnMatlabまたはNumPyで取得したもの)。

  3. アクティベーション関数に依存します。隠れ層ニューロンの場合、tanh は一般的な活性化関数であり、範囲は [-1, 1] です。出力層の場合、適切な活性化関数はタスクによって異なります。回帰では、線形 (無制限) の活性化が必要ですが、確率推定と分類では、範囲 (0, 1) のロジスティックまたはソフトマックス活性化が必要です。

  4. これは、質問 1 と 3 の繰り返しです。

  5. なぜあなたがこれをしたいのか本当に理解できません。浮動小数点数に何か問題がありますか?

于 2013-09-12T08:39:11.673 に答える