8

ニューラル ネットワークにおけるバイアス ノードの役割と、小さなネットワークで活性化関数をシフトするためにバイアス ノードが重要である理由を理解しています。私の質問は次のとおりです: 非常に大規模なネットワーク (より具体的には、ReLu 活性化関数、3 つの畳み込み層、2 つの隠れ層、および 100,000 を超える接続を使用した画像認識のための畳み込みニューラル ネットワーク) では、バイアスは依然として重要ですか、それともその影響は得られますか?発生する膨大な数のアクティベーションによって失われますか?

私が質問する理由は、過去にバイアスノードを実装するのを忘れたネットワークを構築したことがありますが、1 つ追加すると、パフォーマンスにごくわずかな違いが見られたからです。特定のデータセットがバイアスを必要としなかったという点で、これは偶然だったのでしょうか? 大規模なネットワークでは、より大きな値でバイアスを初期化する必要がありますか? 他のアドバイスをいただければ幸いです。

4

2 に答える 2

8

バイアス ノード/タームは、予測される出力がバイアスされないようにするためだけに存在します。入力に ​​-1 から +1 までのダイナミック (範囲) があり、出力が単に入力を +3 だけ変換したものである場合、バイアス項を持つニューラル ネットワークは、ゼロ以外の重みを持つバイアス ニューロンを単純に持ちます。残りはゼロになります。そのような状況でバイアス ニューロンがない場合、シグモイド/タンジェントと乗算を使用して、すべての活性化関数と重みが最適化され、せいぜい単純な加算を模倣します。

入力と出力の両方が同じ範囲、たとえば -1 から +1 の場合、バイアス項はおそらく役に立たないでしょう。

あなたが言及した実験でバイアスノードの重みを見ることができます。それは非常に低く、おそらく入力と出力がすでに中央にあることを意味します。または、それは重要であり、他の重みの分散が減少し、ニューラル ネットワークがより安定した (過適合になりにくい) ようになると思います。

于 2014-09-12T07:10:44.743 に答える
3

バイアスは、すべてのレイヤーの入力に 1 のような定数を追加することと同じです。次に、その定数の重みはバイアスに相当します。追加するのは本当に簡単です。

ネットワークはすべてのレイヤーに独自のバイアスノードを作成することを「学習」できるため、理論的には必要ありません。ニューロンの 1 つは、重みを非常に高く設定して常に 1 にするか、0 に設定して常に定数 0.5 (シグモイド ユニットの場合) を出力することができます。ただし、これには少なくとも 2 つのレイヤーが必要です。

于 2014-09-12T09:41:30.640 に答える