本文根據(jù)最近學(xué)習(xí)TensorFlow書籍網(wǎng)絡(luò)文章的情況,特將一些學(xué)習(xí)心得做了總結(jié),詳情如下.如有不當(dāng)之處,請各位大拿多多指點,在此謝過。
一、相關(guān)性概念
1、卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionNeural Network,CNN)
19世紀(jì)60年代科學(xué)家最早提出感受野(ReceptiveField)。當(dāng)時通過對貓視覺皮層細胞研究,科學(xué)家發(fā)現(xiàn)每一個視覺神經(jīng)元只會處理一小塊區(qū)域的視覺圖像,即感受野。20世紀(jì)80年代,日本科學(xué)家提出神經(jīng)認知機(Neocognitron)的概念,被視為卷積神經(jīng)網(wǎng)絡(luò)最初的實現(xiàn)原型。神經(jīng)認知機中包含兩類神經(jīng)元:S-cells和C-cells。S-cells用來抽取特征,對應(yīng)我們現(xiàn)在主流卷積神經(jīng)網(wǎng)絡(luò)中的卷積核濾波操作;C-cells用來抗形變,對應(yīng)現(xiàn)在的激活函數(shù)、最大池化(Max-Pooling)等操作。
一般情況下,卷積神經(jīng)網(wǎng)絡(luò)由多個卷積層構(gòu)成,每個卷積層通常會進行如下操作:
(1) 圖像通過多個不同的卷積核的濾波,并加偏置(bias),提取出局部特征,每一個卷積核會映射出一個新的2D圖像。
(2) 將前面卷積核的濾波處理結(jié)果,進行非線性的激活函數(shù)處理。目前最常見的是使用ReLU函數(shù),之前Sigmoid函數(shù)應(yīng)用較多。
(3)多激活函數(shù)處理的結(jié)果再進行池化操作(即降采樣,例如:將4*4的圖片降為1*1的圖片),一般會使用最大池化,保留最顯著特征,并提升模型畸變?nèi)萑棠芰Α?/p>
這幾個步驟就構(gòu)成了最常見的卷積層,也可以再加上一個LRN(LocalResponse Normalization,局部響應(yīng)歸一化層)層,現(xiàn)在非常流行的Trick還有BatchNormalization等。
2、池化層
3、卷積核尺寸
4、神經(jīng)網(wǎng)絡(luò)算法相關(guān)特性
4.1、優(yōu)點
(1)可以高效提取特征。
當(dāng)我們面對一個分類任務(wù)時,傳統(tǒng)的機器學(xué)習(xí)算法,一般要首先明確feature和label,然后拿數(shù)據(jù)取“喂”訓(xùn)練模型并保存,最后測試模型的準(zhǔn)確性。這就需要我們確定好特征,當(dāng)特征數(shù)目很少就無法精確進行分類而引起欠擬合;當(dāng)特征數(shù)目很多,又會在分類過程中太過于看重某個特征引起分類錯誤,產(chǎn)生過擬合。而神經(jīng)網(wǎng)絡(luò)則不需要做大量的特征工程,可以直接把數(shù)據(jù)“灌”進去而讓其自身訓(xùn)練,自我“修正”,即可達到預(yù)期效果。 (2)數(shù)據(jù)格式更加簡易
利用傳統(tǒng)的機器學(xué)習(xí)解決分類問題時,數(shù)據(jù)不能直接“灌”進去的,需要對數(shù)據(jù)進行一些處理,譬如量綱的歸一化,格式的轉(zhuǎn)化等等,然而在神經(jīng)網(wǎng)絡(luò)里卻不需要額外對數(shù)據(jù)做過多的處理。
(3) 參數(shù)數(shù)目的少量性
同樣在面對一個分類問題時,利用傳統(tǒng)機器學(xué)習(xí)SVM來做的話,需要涉及核函數(shù),懲罰因子,松弛變量等等參數(shù),而這些不同的參數(shù)組合會對模型效果產(chǎn)生不一樣的影響,想要迅速而又準(zhǔn)確的得到最適合模型的參數(shù),需要對相關(guān)理論知識有深入研究,但對于一個基本的三層神經(jīng)網(wǎng)絡(luò)來說(輸入-隱含-輸出),只需要初始化時給每一個神經(jīng)元上隨機的賦予一個權(quán)重w和偏置項b,在訓(xùn)練過程中,這兩個參數(shù)就會不斷的修正,調(diào)整到最優(yōu)質(zhì),使模型的誤差最小。所以從這個角度來看,我們的工作效率會更佳。 4.2、缺點
新聞熱點
疑難解答
圖片精選