全連接網(wǎng)絡(luò)VS卷積網(wǎng)絡(luò)
1丧靡、全連接網(wǎng)絡(luò)不適合圖像識別任務(wù)的原因:
? ? ? 參數(shù)數(shù)量太多?考慮一個輸入1000*1000像素的圖片(一百萬像素,現(xiàn)在已經(jīng)不能算大圖了)籽暇,輸入層有1000*1000=100萬節(jié)點温治。假設(shè)第一個隱藏層有100個節(jié)點(這個數(shù)量并不多),那么僅這一層就有(1000*1000+1)*100=1億參數(shù)图仓,這實在是太多了罐盔!我們看到圖像只擴(kuò)大一點,參數(shù)數(shù)量就會多很多救崔,因此它的擴(kuò)展性很差惶看。
? ? ? ?沒有利用像素之間的位置信息?對于圖像識別任務(wù)來說捏顺,每個像素和其周圍像素的聯(lián)系是比較緊密的,和離得很遠(yuǎn)的像素的聯(lián)系可能就很小了纬黎。如果一個神經(jīng)元和上一層所有神經(jīng)元相連幅骄,那么就相當(dāng)于對于一個像素來說,把圖像的所有像素都等同看待本今,這不符合前面的假設(shè)拆座。當(dāng)我們完成每個連接權(quán)重的學(xué)習(xí)之后,最終可能會發(fā)現(xiàn)冠息,有大量的權(quán)重挪凑,它們的值都是很小的(也就是這些連接其實無關(guān)緊要)。努力學(xué)習(xí)大量并不重要的權(quán)重逛艰,這樣的學(xué)習(xí)必將是非常低效的躏碳。
? ? ? ? 網(wǎng)絡(luò)層數(shù)限制?我們知道網(wǎng)絡(luò)層數(shù)越多其表達(dá)能力越強(qiáng),但是通過梯度下降方法訓(xùn)練深度全連接神經(jīng)網(wǎng)絡(luò)很困難散怖,因為全連接神經(jīng)網(wǎng)絡(luò)的梯度很難傳遞超過3層吼驶。因此涩澡,我們不可能得到一個很深的全連接神經(jīng)網(wǎng)絡(luò),也就限制了它的能力搁嗓。
2布朦、卷積網(wǎng)絡(luò)解決這些問題
? ? ? ? 局部連接 (局部感受野)這個是最容易想到的请敦,每個神經(jīng)元不再和上一層的所有神經(jīng)元相連贸营,而只和一小部分神經(jīng)元相連贾漏。這樣就減少了很多參數(shù)。
? ? ? ? 權(quán)值共享?一組連接可以共享同一個權(quán)重翁垂,而不是每個連接有一個不同的權(quán)重铆遭,這樣又減少了很多參數(shù)硝桩。
? ? ? ? ? 下采樣?可以使用Pooling來減少每層的樣本數(shù)沿猜,進(jìn)一步減少參數(shù)數(shù)量,同時還可以提升模型的魯棒性碗脊。
? ? ? ?對于圖像識別任務(wù)來說啼肩,卷積神經(jīng)網(wǎng)絡(luò)通過盡可能保留重要的參數(shù),去掉大量不重要的參數(shù)衙伶,來達(dá)到更好的學(xué)習(xí)效果祈坠。
3、卷積網(wǎng)絡(luò)架構(gòu)
網(wǎng)絡(luò)架構(gòu)
如圖1所示矢劲,一個卷積神經(jīng)網(wǎng)絡(luò)由若干卷積層赦拘、Pooling層、全連接層組成芬沉。你可以構(gòu)建各種不同的卷積神經(jīng)網(wǎng)絡(luò)躺同,它的常用架構(gòu)模式為:
INPUT -> [[CONV]*N -> POOL?]*M -> [FC]*K
也就是N個卷積層疊加阁猜,然后(可選)疊加一個Pooling層,重復(fù)這個結(jié)構(gòu)M次蹋艺,最后疊加K個全連接層剃袍。
對于圖1展示的卷積神經(jīng)網(wǎng)絡(luò):
INPUT -> CONV -> POOL -> CONV -> POOL -> FC -> FC
如圖1所示,一個卷積神經(jīng)網(wǎng)絡(luò)由若干卷積層捎谨、Pooling層民效、全連接層組成。你可以構(gòu)建各種不同的卷積神經(jīng)網(wǎng)絡(luò)涛救,它的常用架構(gòu)模式為:
INPUT -> [[CONV]*N -> POOL?]*M -> [FC]*K
也就是N個卷積層疊加畏邢,然后(可選)疊加一個Pooling層,重復(fù)這個結(jié)構(gòu)M次检吆,最后疊加K個全連接層棵红。
對于圖1展示的卷積神經(jīng)網(wǎng)絡(luò):
INPUT -> CONV -> POOL -> CONV -> POOL -> FC -> FC
4、卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
? ? ? 和全連接神經(jīng)網(wǎng)絡(luò)相比咧栗,卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練要復(fù)雜一些逆甜。但訓(xùn)練的原理是一樣的:利用鏈?zhǔn)角髮?dǎo)計算損失函數(shù)對每個權(quán)重的偏導(dǎo)數(shù)(梯度),然后根據(jù)梯度下降公式更新權(quán)重致板。訓(xùn)練算法依然是反向傳播算法交煞。
5、RNN和LSTRM
? ? ?增加了一個隱層狀態(tài)斟或,從而使得RNN能夠?qū)?dāng)前輸入與歷史輸入進(jìn)行有效的融合素征。隱層狀態(tài)是歷史信息的載體。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?