たたみ込みネットワークのバイアスに関する質問


11

CNNに必要な重みとバイアスの数を把握しようとしています。

(3、32、32)-imageがあり、(32、5、5)-filterを適用したいとします。各フィーチャマップには5x5の重みがあるので、3 x(5x5)x 32のパラメーターが必要です。次に、バイアスを追加する必要があります。(3 x(5x5)+ 1)x 32パラメータしかないので、バイアスはすべての色(RGB)で同じですか?

これは正しいです?異なる重みを使用している間、各画像の深度全体にわたって同じバイアス(この場合は3)を維持しますか?何故ですか?

回答:


6

バイアスは仮想ニューロンごとに動作するため、単一の出力がある場合に複数のバイアス入力を持つことに価値はありません。これは、異なるバイアスの重みを単一のバイアスに加算することと同じです。

最初の非表示レイヤーの出力であるフィーチャマップでは、色が分離されなくなりました*。事実上、各フィーチャマップは次のレイヤーの「チャネル」ですが、通常は別々に視覚化され、チャネルを組み合わせて入力が視覚化されます。これについてのもう1つの考え方は、元の画像の個別のRGBチャネルが入力の3つの「機能マップ」であるということです。

前のレイヤーにあるチャネルまたはフィーチャの数は関係ありません。次のレイヤーの各フィーチャマップへの出力は、そのマップの単一の値です。1つの出力値は1つの仮想ニューロンに対応し、1つのバイアス重みが必要です。

CNNでは、質問で説明したように、同じ重み(バイアスの重みを含む)が出力フィーチャマップの各ポイントで共有されます。したがって、各フィーチャマップには、独自のバイアスの重みとprevious_layer_num_features x kernel_width x kernel_height接続の重みがあります。

したがって、はい、(3 x (5x5) + 1) x 32最初のレイヤーの合計重みになる結果は、最初の非表示レイヤーがRGB入力を32の個別のフィーチャマップに処理するCNNに適しています。


*動作するカラーチャネルに分離できるCNN ウェイトの視覚化を見て混乱するかもしれません。


フィルターごとに1つのバイアスがあると思いました...仮想ニューロンの定義は異なりますか?
チャーリーパーカー、

@CharlieParkerパラメータの数に関して、フィルタごとの1つのバイアスは、ニューロンごとの1つのバイアスと同じです。CNN機能マップのアーキテクチャを表示する同等の方法がいくつかあります。1つは、多数のニューロンがすべて同じパラメータを共有する「完全に拡張された」層のようなものです。もう1つは、各畳み込みフィルターを単一のニューロンのローカル接続を記述するものと考えることであり、レイヤーはこの同じニューロンを繰り返し使用します。だから私たちはおそらくニューロンの同じ定義を持っていると思いますが、答えは物事をただ1つの視点から説明します。
Neil Slater

興味深いことに、各フィルターの各ニューロンについて考えていると思います。何らかの理由で、各ニューロンの各アクティブ化を考えていましたが、フィルターは画像の多くの場所でアクティブになるため、もちろん、もっと多くのニューロンを念頭に置いていました。
チャーリーパーカー

1

同じ特徴を検出するために共有の重みとバイアス(レイヤー内のすべての非表示ニューロンに同じ重みとバイアス)を使用するのはCNNの特性です。これは、単純なニューラルネットワークと比較してより深い学習につながります。これを参照として読むことができます:

http://deeplearning.net/tutorial/lenet.html
http://neuralnetworksanddeeplearning.com/chap6.html#introducing_convolutional_networks


別の質問をしています。私の質問はバイアスについてです。式から、各フィーチャマップには異なる重みがあるように見えますが、すべてのフィーチャマップで同じバイアスが使用されています。
ユーザー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.