越早知道越好(全連接層工作原理)全連接層如何進(jìn)行分類,CNN 入門講解:什么是全連接層(Fully Connected Layer)?,海南網(wǎng)址導(dǎo)航,
目錄:
1.全連接層作用是什么
2.什么叫全連接層
3.全連接層的原理
4.全連接層圖片
5.全連接層怎么分類
6.全連接層 attention
7.全連接層的缺點(diǎn)
8.全連接層和全連接網(wǎng)絡(luò)
9.全連接層參數(shù)
10.全連接層數(shù)
1.全連接層作用是什么
新年第一更祝大家新年快樂萬事如意這個(gè)時(shí)候還愿意點(diǎn)進(jìn)來,新的一年肯定要起飛了這情人節(jié)和新年連著過啊這對(duì)情侶意味著什么,意味著要帶情人去見家長(zhǎng)了當(dāng)然對(duì)一些情侶意味著,情人節(jié)過不好,估計(jì)年也過不好對(duì)于那些沒用男女朋友的,不要心急,不要灰心
2.什么叫全連接層
好好學(xué)習(xí),好好生活,站直走路背影要美總有一個(gè)人愿意跨過所有時(shí)間來到你身邊可能ta步履蹣跚,衣衫不整但你一定要以最帥/美的姿生石灰密度態(tài)迎接ta那些過年沒回家的也不要失望心中有方向哪怕整個(gè)世界阻攔你你都會(huì)回家的我來教大家放個(gè)煙花




3.全連接層的原理
----------------------------------------- _φ_(..) 正文開始--------------------------------------------微信公號(hào):follow_bobo
4.全連接層圖片
首發(fā)于專欄卷積神經(jīng)網(wǎng)絡(luò)(CNN)入門講解時(shí)隔一個(gè)月,我又來更新啦啦啦啦可能有很多小伙伴已經(jīng)不滿了你怎么更新這么慢啊其實(shí)不是的,其實(shí)我很多已經(jīng)寫好了但是出于神秘原因,不能發(fā)為什么不能發(fā),以后你們就知道了----------------------生石灰密度----------------好吧,正文現(xiàn)在才開始-----------------------------------------------------
5.全連接層怎么分類
上一期我們講到激活函數(shù)(Activation Function),假設(shè)我們經(jīng)過一個(gè)Relu之后的輸出如下Relu:


6.全連接層 attention
然后開始到達(dá)全連接層啊啊啊,終于開始進(jìn)入CNN的末尾了已經(jīng)推到敵軍老家了,準(zhǔn)備開始攻打水晶了大家堅(jiān)持住,黎明前,最黑暗

7.全連接層的缺點(diǎn)
以上圖為例,我們仔細(xì)看上圖全連接層的結(jié)構(gòu),全連接層中的每一層是由許多神經(jīng)元組成的(1x 4096)的平鋪結(jié)構(gòu),上圖不明顯,我們看下圖

8.全連生石灰密度接層和全連接網(wǎng)絡(luò)
注:上圖和我們要做的下面運(yùn)算無聯(lián)系并且不考慮激活函數(shù)和bias 當(dāng)我第一次看到這個(gè)全連接層,我的第一個(gè)問題是:它是怎么樣把3x3x5的輸出,轉(zhuǎn)換成1x4096的形式

9.全連接層參數(shù)
很簡(jiǎn)單,可以理解為在中間做了一個(gè)卷積

10.全連接層數(shù)
從上圖我們可以看出,我們用一個(gè)3x3x5的filter 去卷積激活函數(shù)的輸出,得到的結(jié)果就是一個(gè)fully connected layer 的一個(gè)神經(jīng)元的輸出,這個(gè)輸出就是一個(gè)值因?yàn)槲覀冇?096個(gè)神經(jīng)元
我們實(shí)際就是用一個(gè)3x3x5x4096的卷積層去卷積激活函數(shù)的輸出以VGG-16再舉個(gè)例子吧再VGG-16全連接層中對(duì)224x224x3的輸入,最后生石灰密度一層卷積可得輸出為7x7x512,如后層是一層含4096個(gè)神經(jīng)元的FC,則可用卷積核為7x7x512x4096的全局卷積來實(shí)現(xiàn)這一全連接運(yùn)算過程。
很多人看到這,可能就恍然大悟哦,我懂了,就是做個(gè)卷積唄不你不懂敲黑板了麻煩后排吃東西的同學(xué)叫下前排玩游戲的同學(xué)去把第一排的同學(xué)吵醒我要說重點(diǎn)了?。。。。。。。。。?!這一步卷積一個(gè)非常重要的作用就是把分布式特征representation映射到樣本標(biāo)記空間
什么,聽不懂那我說人話就是它把特征representation整合到一起,輸出為一個(gè)值這樣做,有一個(gè)什么好處?就是大大減少特征位置對(duì)分類帶來的影響來,讓我來舉個(gè)簡(jiǎn)單的例子

這個(gè)例子可能過于簡(jiǎn)單了點(diǎn)可是我生石灰密度懶得畫了,大家將就著看吧從上圖我們可以看出,貓?jiān)诓煌奈恢?,輸出的feature值相同,但是位置不同對(duì)于電腦來說,特征值相同,但是特征值位置不同,那分類結(jié)果也可能不一樣 而這時(shí)全連接層filter的作用就相當(dāng)于
喵在哪我不管我只要喵于是我讓filter去把這個(gè)喵找到實(shí)際就是把feature map 整合成一個(gè)值這個(gè)值大哦,有喵這個(gè)值小那就可能沒喵和這個(gè)喵在哪關(guān)系不大了有沒有魯棒性有大大增強(qiáng)了有沒有喵喵喵 因?yàn)榭臻g結(jié)構(gòu)特性被忽略了,所以全連接層不適合用于在方位上找Pattern的任務(wù),比如segmentation
ok, 我們突然發(fā)現(xiàn)全連接層有兩層1x4096fully connected laye生石灰密度r平鋪結(jié)構(gòu)(有些網(wǎng)絡(luò)結(jié)構(gòu)有一層的,或者二層以上的)好吧也不是突然發(fā)現(xiàn),我只是想增加一點(diǎn)戲劇效果

但是大部分是兩層以上呢這是為啥子呢泰勒公式都知道吧意思就是用多項(xiàng)式函數(shù)去擬合光滑函數(shù)我們這里的全連接層中一層的一個(gè)神經(jīng)元就可以看成一個(gè)多項(xiàng)式我們用許多神經(jīng)元去擬合數(shù)據(jù)分布但是只用一層fully connected layer 有時(shí)候沒法解決非線性問題
而如果有兩層或以上fully connected layer就可以很好地解決非線性問題了說了這么多,我猜你應(yīng)該懂的聽不懂?那我換個(gè)方式給你講我們都知道,全連接層之前的作用是提取特征全理解層的作用是分類我們現(xiàn)在的任務(wù)是去區(qū)別一圖片是不是貓

哈哈哈,貓貓好可愛我生石灰密度先擼一把先擼完了,回來啦(嗯,怎么好像哪里不對(duì))假設(shè)這個(gè)神經(jīng)網(wǎng)絡(luò)模型已經(jīng)訓(xùn)練完了全連接層已經(jīng)知道

當(dāng)我們得到以上特征,我就可以判斷這個(gè)東東是貓了因?yàn)槿B接層的作用主要就是實(shí)現(xiàn)分類(Classification)從下圖,我們可以看出
紅色的神經(jīng)元表示這個(gè)特征被找到了(激活了)同一層的其他神經(jīng)元,要么貓的特征不明顯,要么沒找到當(dāng)我們把這些找到的特征組合在一起,發(fā)現(xiàn)最符合要求的是貓ok,我認(rèn)為這是貓了那我們現(xiàn)在往前走一層那們現(xiàn)在要對(duì)子特征分類,也就是對(duì)貓頭,貓尾巴,貓腿等進(jìn)行分類
比如我們現(xiàn)在要把貓頭找出來
貓頭有這么些個(gè)特征于是我們下一步的任務(wù)就是把貓頭的這么些子特征找到,比如眼睛啊,耳朵啊
道理和區(qū)別貓一生石灰密度樣當(dāng)我們找到這些特征,神經(jīng)元就被激活了(上圖紅色圓圈)這細(xì)節(jié)特征又是怎么來的?就是從前面的卷積層,下采樣層來的至此,關(guān)于全連接層的信息就簡(jiǎn)單介紹完了全連接層參數(shù)特多(可占整個(gè)網(wǎng)絡(luò)參數(shù)80%左右),近期一些性能優(yōu)異的網(wǎng)絡(luò)模型如ResNet和GoogLeNet等均用全局平均池化(global average pooling,GAP)取代全連接層來融合學(xué)到的深度特征
需要指出的是,用GAP替代FC的網(wǎng)絡(luò)通常有較好的預(yù)測(cè)性能于是還出現(xiàn)了以后會(huì)慢慢介紹的-----------------------------------------------------------------------------生石灰密度-----------------
說實(shí)話,說的有點(diǎn)簡(jiǎn)單但是我不能擺公式啊不能擺計(jì)算啊所以大家就將就著看吧有問題在下面留言-------------------------------------------------------------------
新年快樂啦有人說以前的文風(fēng)太浮夸現(xiàn)在我嚴(yán)謹(jǐn)一些不知道大家喜歡不喜歡的點(diǎn)個(gè)贊問題匯總簡(jiǎn)答(持續(xù)更新):(1)全連接層對(duì)模型的影響? 首先我們明白全連接層的組成如下:
二層全連接層結(jié)構(gòu) 那么全連接層對(duì)模型影響參數(shù)就是三個(gè):全接解層的總層數(shù)(長(zhǎng)度)單個(gè)全連接層的神經(jīng)元數(shù)(寬度)激活函數(shù)首先我們要明白激活函數(shù)的作用是:增加模型的非線性表達(dá)能力更詳細(xì)了解請(qǐng)生石灰密度去:如果全連接層寬度不變,增加長(zhǎng)度:
優(yōu)點(diǎn):神經(jīng)元個(gè)數(shù)增加,模型復(fù)雜度提升;全連接層數(shù)加深,模型非線性表達(dá)能力提高理論上都可以提高模型的學(xué)習(xí)能力如果全連接層長(zhǎng)度不變,增加寬度:優(yōu)點(diǎn):神經(jīng)元個(gè)數(shù)增加,模型復(fù)雜度提升理論上可以提高模型的學(xué)習(xí)能力。
難度長(zhǎng)度和寬度都是越多越好?肯定不是(1)缺點(diǎn):學(xué)習(xí)能力太好容易造成過擬合(2)缺點(diǎn):運(yùn)算時(shí)間增加,效率變低那么怎么判斷模型學(xué)習(xí)能力如何?看Training Curve 以及 Validation Curve,在其他條件理想的情況下,如果Training Accuracy 高, Validation Accuracy 低,也就是過擬合 了,可以嘗試去減少層數(shù)生石灰密度或者參數(shù)。
如果Training Accuracy 低,說明模型學(xué)的不好,可以嘗試增加參數(shù)或者層數(shù)至于是增加長(zhǎng)度和寬度,這個(gè)又要根據(jù)實(shí)際情況來考慮了PS:很多時(shí)候我們?cè)O(shè)計(jì)一個(gè)網(wǎng)絡(luò)模型,不光考慮準(zhǔn)確率,也常常得在Accuracy/Efficiency 里尋找一個(gè)好的平衡點(diǎn)。
麻煩大家給我點(diǎn)個(gè)贊,就是那種讓我看起來,寫的還不錯(cuò)的樣子!拜托了??!o(′^`)o