web-dev-qa-db-ja.com

最大プーリング層に続く完全に接続された層の寸法を理解する

以下の図(アーキテクチャ)では、次元256x13x13? 4096の代わりに、256 * 13 * 13 = 43264であってはなりませんか?

Convolutional Neural Network

18
xlax

私が正しければ、あなたはなぜ4096x1x1レイヤーはずっと小さくなります。

それは、完全に接続されたレイヤーだからです。最後の最大プール層のすべてのニューロン(= 256*13*13=43264ニューロン)は、完全に接続された層のeveryニューロンに接続されます。

これは、ALLからALLに接続されたニューラルネットワークの例です。 enter image description here ご覧のとおり、layer2はlayer3よりも大きくなっています。それは彼らが接続できないという意味ではありません。

最後の最大プーリング層の変換はありません->最大プーリング層のすべてのニューロンは、次の層のすべての4096ニューロンに接続されています。

「密」操作とは、これらすべての接続(= 4096 * 43264接続)の重みとバイアスを計算し、ニューロンのバイアスを追加して次の出力を計算することを意味します。

MLPと同じように接続されています。

しかし、なぜ4096?理由はありません。それはただの選択です。 8000だったかもしれませんし、20だったかもしれませんが、それはネットワークに最適なものに依存します。

20
Thomas W

あなたは、最後の畳み込み層が256 x 13 x 13 = 43264ニューロンを持っているという点で正しいです。ただし、stride = 3およびpool_size = 2の最大プール層があります。これにより、サイズ256 x 6 x 6の出力が生成されます。これを完全に接続されたレイヤーに接続します。それを行うには、最初に出力をフラット化する必要があります。これは256 x 6 x 6 = 9216 x 1という形になります。 9216ニューロンを4096ニューロンにマップするために、9216 x 4096重み行列を密/完全に接続されたレイヤーの重みとして導入します。したがって、w^T * x = [9216 x 4096]^T * [9216 x 1] = [4096 x 1]。つまり、9216ニューロンのそれぞれは、すべての4096ニューロンに接続されます。そのため、このレイヤーは高密度または完全に接続されたレイヤーと呼ばれます。

他の人が上記で述べたように、なぜこれが4096であるべきかについての厳しいルールはありません。データセット全体の変動性をキャプチャするために、高密度層は十分な数のニューロンを持っている必要があります。検討中のデータセット-ImageNet 1K-は非常に難しく、1000のカテゴリがあります。そのため、4096で始まるニューロンはあまり多くありません。

8

いいえ、4096はそのレイヤーの出力の次元ですが、入力の次元は13x13x256です。図にあるように、両方が同じである必要はありません。

6

プール層の出力サイズは

output = (input size - window size) / (stride + 1)

上記の場合、入力サイズは13です。プーリングのほとんどの実装では、計算で境界ピクセルを保持するためにパディングの追加レイヤーが追加されるため、入力サイズは14になります。

最も一般的なウィンドウサイズとストライドはW = 2とS = 2なので、式に入れます

output = (14 - 2) / (2 + 1)
output = 12 / 3
output = 4

サイズ4x4の256個の機能マップが作成され、それを平坦化すると、

flatten = 4 x 4 x 256
flatten = 4096

これがあなたの質問に答えることを願っています。

1
saurabh kumar

画像で表示します。下のネットワークAlexnetの画像を見てください

enter image description here

レイヤー256 * 13 *13 しましょう max pooling演算子の場合、256 * 6 * 6 = 9216。その後、平坦化されて4096完全接続ネットワークに接続されるため、パラメーターは9216 * 4096になります。計算されたすべてのパラメーターは、以下のExcelで確認できます。

enter image description here

enter image description here

引用:

https://www.learnopencv.com/understanding-alexnet/

https://medium.com/@smallfishbigsea/a-walk-through-of-alexnet-6cbd137a5637

0
Jayhello

畳み込み層から完全に接続された層、つまり密な層への移行がどのようになるかを知りたいと思います。畳み込み層を表示する別の方法は、それが密な層ですが、接続が疎であることを理解する必要があります。これについては、グッドフェローの本Deep Learningの第9章で説明されています。

Sparse connections

同様のことがプール操作の出力にも当てはまり、畳み込み層の出力に似たものになりますが、要約されます。すべての畳み込みカーネルのすべての重みは、完全に接続されたレイヤーに接続できます。これは通常、多くのニューロンを含む最初の完全に接続されたレイヤーを必要とするため、実際の分類/回帰を行う2番目(または3番目)のレイヤーを使用できます。

畳み込み層の後に来る密な層のニューロン数の選択に関しては、畳み込み層のような数学的なルールはありません。レイヤーは完全に接続されているため、通常のマルチレイヤーパーセプトロンと同様に、任意のサイズを選択できます。