logo
Loading...

請問 在CNN卷積神經網路中,資料透過卷積神經網路處裡後,在後面接上全連接層的用意是時麼 ? - Cupoy

不好意思 剛學 所以對於神經網路知識有點混亂卷積好像可以讓權重共用,減少參數量,但全連接的參數量很多...

請問 在CNN卷積神經網路中,資料透過卷積神經網路處裡後,在後面接上全連接層的用意是時麼 ?

2019/08/21 下午 03:23
機器學習共學討論版
林宣威
觀看數:42
回答數:2
收藏數:0

不好意思 剛學 所以對於神經網路知識有點混亂

卷積好像可以讓權重共用,減少參數量,但全連接的參數量很多,有時參數量多,好像會對一個模型不好

請問 在CNN卷積神經網路中,資料透過卷積神經網路處裡後,在後面接上全連接層的用意是時麼 ? 

回答列表

  • 2019/08/22 下午 06:40
    Jeffrey
    贊同數:1
    不贊同數:0
    留言數:0

    全連接層其實就是CNN的多維轉成1維, 把訓練出來的特徵集合組合在一起,以利後續做分類預測。

  • 2019/08/22 下午 11:32
    Patrick Ruan
    贊同數:1
    不贊同數:0
    留言數:0

    在我們的程式模型設定後,常常用 model.summary() 查看各層的參數量。


    通常觀看各層的參數是確實會發現卷積層的參數都不多,池化層都是零,整個量大的都是連接層,原因是卷積層呈現的參數都是在記錄訓練出來的卷積參數,幾乎都是固定公式算出來的,

    都是【輸入的channel 數x (卷積filters) x 輸出 feature map 數 +輸出 feature map 數】,


    這些參數都跟照片大小無關 ,比如說一張黑白照片 16*16 = 256 個  pixel 跟 另一個黑白 28*28 =784 pixel  經過 Conv2D(32,(3X3)) 你會發現不論哪一張照片經過這一層參數都會是一樣 1*3*3*32+32 = 320

    另外我們也常常說池化層降低參數量,但是在 Summary() 裡直接看 pooling layers 參數量看不出有甚麼作用,其實每家一次 (2,2) 的 pooling layer,可以發現全連階層幾乎都少了  3/4 的參數量。


    當我們找好了處理相片的卷積參數後,照片資料經過這些參數的運算後還是要從 "二維*深度" 全部都要被處理,所以輸入照片有多大具有多少資料量,這時候就要面對了,所以在 Flatten 之後送入分類器處理,所以參數量就爆出來了。


    另一種比較深入的研究,可以上網了解卷積層具有參數共用的設計,這也就是為什麼參數這麼少的另一個原因。