如果你是搞 AI 算法的同學,相信你在很多地方都見過全連接層。
本文引用地址:http://www.ex-cimer.com/article/202402/455609.htm無論是卷積神經網絡(CNN),還是自然語言處理(NLP)網絡,都能看到全連接層的身影。
那么到底什么是全連接層,這一層在神經網絡中有什么作用,以及它和矩陣乘法、卷積運算有什么關系呢?
1、什么是全連接層
全連接層(Fully Connected Layer),有時也被叫作密集層(Dense Layer)。
之所以這么叫,是因為這一層的每個神經元都與前一層的每個神經元連接在一起,形成了一個全連接的網絡結構。
全連接結構:圖源網絡
這種全連接的方式與卷積和池化不同,卷積和池化是通過固定大小的卷積核或池化窗口在輸入上移動,以便有效地捕捉局部特征。
因此,"全連接"強調了這一層中的神經元與前一層中的所有神經元之間的連接,與卷積和池化層的局部連接方式形成對比。
2、全連接有什么作用
既然是所有神經元的全部連接,說明它可以捕獲到前面所有的特征,經過運算就可以更加有效、完備的融合所有特征。
使得神經網絡最終看到的特征是個全局特征(一只貓),而不是局部特征(眼睛或者鼻子)。
有一個螞蟻開會的比喻來比喻全連接層,比較形象。
假設你是一只螞蟻,你的任務是找小面包。這時候你的視野比較窄,只能看到很小一片區域,也就只能看到一個大面包的部分。
當你找到一片面包之后,你根本不知道你找到的是不是全部的面包,所以你們所有的螞蟻開了個會。
你們互相把自己找到的面包的信息分享出來,通過開會分享,最終你們確認,哦,你們找到了一個大面包。
上面說的螞蟻開會的過程,就是全連接,這也是為什么,全連接需要把所有的節點都連接起來,盡可能的完成所有節點的信息共享。
說到這,大概就能理解全連接的作用了吧,那就是可以完成全部特征的融合。
3、全連接和卷積以及矩陣乘的關系
單純從數學運算上來看,全連接就是矩陣運算,關于矩陣運算的本質,這里說的更清晰一些:5分鐘搞懂矩陣乘法的本質。
全連接和卷積的區別,除了上面說的前者是全局視野,卷積是局部視野之外,還有一個很重要的聯系。
那就是如果卷積的卷積核變為1x1,那么相當于卷積核的每一個像素都與輸入圖片的每一個像素相關聯,此時1x1的卷積,也就變成了矩陣乘了。
全連接一般放在一個神經網絡的最后,用來做分類。
假設神經網絡前面很多層學到了1000個特征,那么最后一層全連接就可以把這1000個特征進行全部融合,融合之后就可以知道這張圖片是一只狗。
借用“圖靈的貓”對這個算法的解釋:全連接層在整個卷積神經網絡中起到“分類器”的作用。
如果說卷積層、池化層和激活函數層等操作是將原始數據映射到隱層特征空間的話,全連接層則起到將學到的“分布式特征表示”映射到樣本標記空間的作用。
評論