CNN相关知识总结
CNN簡介
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種深度的監(jiān)督學(xué)習(xí)下的機器學(xué)習(xí)模型,具有極強的適應(yīng)性,善于挖掘數(shù)據(jù)局部特征,提取全局訓(xùn)練特征和分類,它的權(quán)值共享結(jié)構(gòu)網(wǎng)絡(luò)使之更類似于生物神經(jīng)網(wǎng)絡(luò),在模式識別各個領(lǐng)域都取得了很好的成果。CNN是一種前饋神經(jīng)網(wǎng)絡(luò),它的人工神經(jīng)元可以響應(yīng)一部分覆蓋范圍內(nèi)的周圍單元,對于大型圖像處理有出色表現(xiàn)。
CNN節(jié)省訓(xùn)練開銷的方式是權(quán)共享weight sharing,讓一組神經(jīng)元使用相同的權(quán)值。
它的三個基本概念為:局部感受野(Local receptive fields),共享權(quán)重(Shared weights),和池化(Pooling)。
CNN背景
1966年,Minisky和Papert在他們的《感知器》一書中提出了上述的感知器的研究瓶頸,指出理論上還不能證明將感知器模型擴展到多層網(wǎng)絡(luò)是有意義的。這在人工神經(jīng)網(wǎng)絡(luò)的歷史上書寫了極其灰暗的一章。對ANN的研究,始于1890年開始于美國著名心理學(xué)家W.James對于人腦結(jié)構(gòu)與功能的研究,半個世紀(jì)后W.S.McCulloch和W.A.Pitts提出了M-P模型,之后的1958年Frank Rosenblatt在這個基礎(chǔ)上又提出了感知器,此時對ANN的研究正處在升溫階段,《感知器》這本書的出現(xiàn)就剛好為這剛剛?cè)计鸬娜斯ど窠?jīng)網(wǎng)絡(luò)之火潑了一大盆冷水。一時間人們仿佛感覺對以感知器為基礎(chǔ)的ANN的研究突然間走到盡頭,看不到出路了。于是,幾乎所有為ANN提供的研究基金都枯竭了,很多領(lǐng)域的專家紛紛放棄了這方面課題的研究。
CNN結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)CNN的結(jié)構(gòu)一般包含這幾個層:
卷積層(Convolutional layer),使用卷積核進行特征提取和特征映射。卷積神經(jīng)網(wǎng)路中每層卷積層由若干卷積單元組成,每個卷積單元的參數(shù)都是通過反向傳播算法優(yōu)化得到的。卷積運算的目的是提取輸入的不同特征,第一層卷積層可能只能提取一些低級的特征如邊緣、線條和角等層級,更多層的網(wǎng)絡(luò)能從低級特征中迭代提取更復(fù)雜的特征。
線性整流層(Rectified Linear Units layer, ReLU layer),或稱激勵層、激活層。由于卷積也是一種線性運算,因此需要增加非線性映射。這一層神經(jīng)的激勵函數(shù)(Activation function)一般使用線性整流(Rectified Linear Units, ReLU)f(x)=max(0,x),層次越深,相對于其他的函數(shù)效果較好,其他的激活函數(shù)還有Sigmod,tanh函數(shù)等,但是sigmod和tanh都存在飽和的問題,如上圖所示,當(dāng)x軸上的值較大時,對應(yīng)的梯度幾乎為0,若是利用BP反向傳播算法, 可能造成梯度消失的情況,也就學(xué)不到東西了。
在每個卷積層之后,通常會立即應(yīng)用一個非線性層(或激活層)。其目的是給一個在卷積層中剛經(jīng)過線性計算操作(只是數(shù)組元素依次(element wise)相乘與求和)的系統(tǒng)引入非線性特征。過去,人們用的是像雙曲正切和 S 型函數(shù)這樣的非線性方程,但研究者發(fā)現(xiàn) ReLU 層效果好得多,因為神經(jīng)網(wǎng)絡(luò)能夠在準(zhǔn)確度不發(fā)生明顯改變的情況下把訓(xùn)練速度提高很多(由于計算效率增加)。它同樣能幫助減輕梯度消失的問題——由于梯度以指數(shù)方式在層中消失,導(dǎo)致網(wǎng)絡(luò)較底層的訓(xùn)練速度非常慢。ReLU 層對輸入內(nèi)容的所有值都應(yīng)用了函數(shù) f(x) = max(0, x)。用基本術(shù)語來說,這一層把所有的負(fù)激活(negative activation)都變?yōu)榱恪_@一層會增加模型乃至整個神經(jīng)網(wǎng)絡(luò)的非線性特征,而且不會影響卷積層的感受野。
參見 Geoffrey Hinton(即深度學(xué)習(xí)之父)的論文:Rectified Linear Units Improve Restricted Boltzmann Machines
作者:機器之心https://www.zhihu.com/question/52668301/answer/131573702
池化層(Pooling layer),進行下采樣,對特征圖稀疏處理,減少數(shù)據(jù)運算量。通常在卷積層之后會得到維度很大的特征,將特征切成幾個區(qū)域,取其最大值或平均值,得到新的、維度較小的特征。
- 很明顯就是減少參數(shù)
Pooling就有平移不變性((translation invariant)
在幾個 ReLU 層之后,程序員也許會選擇用一個池化層(pooling layer)。它同時也被叫做下采樣(downsampling)層。在這個類別中,也有幾種可供選擇的層,最受歡迎的就是最大池化( max-pooling)。它基本上采用了一個過濾器(通常是 2x2 的)和一個同樣長度的步幅。然后把它應(yīng)用到輸入內(nèi)容上,輸出過濾器卷積計算的每個子區(qū)域中的最大數(shù)字。
池化層還有其他選擇,比如平均池化(average pooling)和 L2-norm 池化 。這一層背后的直觀推理是:一旦我們知道了原始輸入(這里會有一個高激活值)中一個特定的特征,它與其它特征的相對位置就比它的絕對位置更重要??上攵?#xff0c;這一層大幅減小了輸入卷的空間維度(長度和寬度改變了,但深度沒變)。這到達(dá)了兩個主要目的。第一個是權(quán)重參數(shù)的數(shù)目減少到了75%,因此降低了計算成本。第二是它可以控制過擬合(overfitting)。這個術(shù)語是指一個模型與訓(xùn)練樣本太過匹配了,以至于用于驗證和檢測組時無法產(chǎn)生出好的結(jié)果。出現(xiàn)過擬合的表現(xiàn)是一個模型在訓(xùn)練集能達(dá)到 100% 或 99% 的準(zhǔn)確度,而在測試數(shù)據(jù)上卻只有50%。
CNN(卷積神經(jīng)網(wǎng)絡(luò))是什么? 作者:機器之心
全連接層( Fully-Connected layer), 通常在CNN的尾部進行重新擬合,減少特征信息的損失。把所有局部特征結(jié)合變成全局特征,用來計算最后每一類的得分。
* Dropout 層:在神經(jīng)網(wǎng)絡(luò)有了非常明確的功能。上一節(jié),我們討論了經(jīng)過訓(xùn)練后的過擬合問題:訓(xùn)練之后,神經(jīng)網(wǎng)絡(luò)的權(quán)重與訓(xùn)練樣本太過匹配以至于在處理新樣本的時候表現(xiàn)平平。Dropout 的概念在本質(zhì)上非常簡單。Dropout 層將「丟棄(drop out)」該層中一個隨機的激活參數(shù)集,即在前向通過(forward pass)中將這些激活參數(shù)集設(shè)置為 0。簡單如斯。既然如此,這些簡單而且似乎不必要且有些反常的過程的好處是什么?在某種程度上,這種機制強制網(wǎng)絡(luò)變得更加冗余。這里的意思是:該網(wǎng)絡(luò)將能夠為特定的樣本提供合適的分類或輸出,即使一些激活參數(shù)被丟棄。此機制將保證神經(jīng)網(wǎng)絡(luò)不會對訓(xùn)練樣本「過于匹配」,這將幫助緩解過擬合問題。另外,Dropout 層只能在訓(xùn)練中使用,而不能用于測試過程,這是很重要的一點。
參考 Geoffrey Hinton 的論文:Dropout: A Simple Way to Prevent Neural Networks from Overfitting
CNN的特點
局部連接、權(quán)值共享、池化操作及多層結(jié)構(gòu)。
CNN能夠通過多層非線性變換,從數(shù)據(jù)中自動學(xué)習(xí)特征,從而代替手工設(shè)計的特征,且深層的結(jié)構(gòu)使它具有很強的表達(dá)能力和學(xué)習(xí)能力。許多研究實驗已經(jīng)表明了CNN結(jié)構(gòu)中深度的重要性。例如從結(jié)構(gòu)來看, AlexNet、VGG、GooleNet及ResNet的一個典型的發(fā)展趨勢是它們的深度越來越深。在CNN中,通過增加深度從而增加網(wǎng)絡(luò)的非線性來使它能夠更好地擬合目標(biāo)函數(shù),獲得更好的分布式特征。
CNN應(yīng)用
- 圖像分類
- 人臉識別
- 音頻檢索
- ECG分析
- 其他:短文本聚類[103]、視覺追蹤[104]、圖像融合[105]等領(lǐng)域中.
參考:周飛燕, 金林鵬, 董軍. 卷積神經(jīng)網(wǎng)絡(luò)研究綜述[J]. 計算機學(xué)報, 2017, 40(6):1229-1251.
參考:
總結(jié)
- 上一篇: 一加首款机械键盘来了:水晶旋钮 无小数字
- 下一篇: “流浪地球”科不科学?这个问题还能再争论