CNNの全結合層の構造について

7 views (last 30 days)
sousi shimozima
sousi shimozima on 15 Oct 2018
Answered: Kazuya on 18 Oct 2018
書籍やMATLABでニューラルネットについて学んでいます。そこで、疑問に思ったことがあります。  CNNのネットワークである画像を通して畳み込み層で計算し、プーリング層で圧縮した後、全結合層で結合する際の一つのノードに出力されるものはどのようなものになるのでしょうか。  例えば、CNNである画像に畳み込み層でフィルターを100枚かけて、プーリン層を経て、サイズ8×8の特徴マップが100枚あるものを結合する時は、結合された後の一つのノードはそれぞれの値に重みをかけて特徴をより反映した、サイズが8×8のものが合成されるのでしょうか?それとも、一つのノードには重みをかけて合成された一つの数値(例えば1056など)になるのでしょうか?結合された後の一つのノードが具体的にどのようなものか(サイズや形など)理解できなかったので、どなたかよろしくお願いします。  

Answers (1)

Kazuya
Kazuya on 18 Oct 2018
結論からいうと、「一つのノードには重みをかけて合成された一つの数値(例えば1056など)」になるかと。
fullyConnectedLayer:全結層のドキュメンテーションページが参考になるかもしれません。 https://jp.mathworks.com/help/deeplearning/ref/nnet.cnn.layer.fullyconnectedlayer.html
例題の1つ「全結合層の初期の重みとバイアスの指定」に下記のようなネットワークを例にした記載があります。
layers = [imageInputLayer([28 28 1])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,'Stride',2)
fullyConnectedLayer(10)
softmaxLayer
classificationLayer]
"畳み込み層のチャネル (特徴マップ) の 1 方向に対して、出力は (28-5+2x0)/1 + 1=24 になります。最大プーリング層には重ならない領域があるため、各方向に 2 (24/2=12) だけダウンサンプリングします。畳み込み層の 1 つのチャネルに対して、最大プーリング層の出力は 12x12 = 144 になります。畳み込み層には 20 個のチャネルがあるため、最大プーリング層の出力は 144x20 = 2880 になります。これが全結合層の入力のサイズです。"
ということで、、上の場合ですと全結層の出力は 10個の数値で、最大プーリング層の出力 2880個全ての重み付き結合だと読み取れますが、いかがでしょうか?

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!