人工智能,就像長生不老和星際漫游一樣,是人類最美好的夢想之一。雖然計算機技術(shù)已經(jīng)取得了長足的進(jìn)步,但是到目前為止,還沒有一臺電腦能產(chǎn)生“自我”的意識。但是自 2006 年以來,機器學(xué)習(xí)領(lǐng)域,取得了突破性的進(jìn)展。圖靈試驗,至少不是那么可望而不可及了。至于技術(shù)手段,不僅僅依賴于云計算對大數(shù)據(jù)的并行處理能力,而且依賴于算法。這個算法就是深度學(xué)習(xí)Deep Learning。借助于 Deep Learning 算法,人類終于找到了如何處理“抽象概念”這個亙古難題的方法。
機器學(xué)習(xí)(Machine Learning)是一門專門研究計算機怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識或技能,重新組織已有的知識結(jié)構(gòu)市值不斷改善自身的性能的學(xué)科,簡單地說,機器學(xué)習(xí)就是通過算法,使得機器能從大量的歷史數(shù)據(jù)中學(xué)習(xí)規(guī)律,從而對新的樣本做智能識別或預(yù)測未來。
機器學(xué)習(xí)在圖像識別、語音識別、自然語言理解、天氣預(yù)測、基因表達(dá)、內(nèi)容推薦等很多方面的發(fā)展還存在著沒有良好解決的問題。
傳統(tǒng)的模式識別方法:通過傳感器獲取數(shù)據(jù),然后經(jīng)過預(yù)處理、特征提取、特征選擇、再到推理、預(yù)測或識別。
開始的通過傳感器(例如CMOS)來獲得數(shù)據(jù)。然后經(jīng)過預(yù)處理、特征提取、特征選擇,再到推理、預(yù)測或者識別。最后一個部分,也就是機器學(xué)習(xí)的部分,絕大部分的工作是在這方面做的,也存在很多的paper和研究。
而中間的三部分,概括起來就是特征表達(dá)。良好的特征表達(dá),對最終算法的準(zhǔn)確性起了非常關(guān)鍵的作用,而且系統(tǒng)主要的計算和測試工作都耗在這一大部分。但,這塊實際中一般都是人工完成的,靠人工提取特征。而手工選取特征費時費力,需要專業(yè)知識,很大程度上靠經(jīng)驗和運氣,那么機器能不能自動的學(xué)習(xí)特征呢?深度學(xué)習(xí)的出現(xiàn)就這個問題提出了一種解決方案。
人腦的視覺機理
1981 年的諾貝爾醫(yī)學(xué)獎,頒發(fā)給了 David Hubel(出生于加拿大的美國神經(jīng)生物學(xué)家)和TorstenWiesel,以及 Roger Sperry。前兩位的主要貢獻(xiàn),是“發(fā)現(xiàn)了視覺系統(tǒng)的信息處理”可視皮層是分級的。
1958 年,DavidHubel 和Torsten Wiesel 在 JohnHopkins University,研究瞳孔區(qū)域與大腦皮層神經(jīng)元的對應(yīng)關(guān)系。他們在貓的后腦頭骨上,開了一個3 毫米的小洞,向洞里插入電極,測量神經(jīng)元的活躍程度。
然后,他們在小貓的眼前,展現(xiàn)各種形狀、各種亮度的物體。并且,在展現(xiàn)每一件物體時,還改變物體放置的位置和角度。他們期望通過這個辦法,讓小貓瞳孔感受不同類型、不同強弱的刺激。
之所以做這個試驗,目的是去證明一個猜測。位于后腦皮層的不同視覺神經(jīng)元,與瞳孔所受刺激之間,存在某種對應(yīng)關(guān)系。一旦瞳孔受到某一種刺激,后腦皮層的某一部分神經(jīng)元就會活躍。經(jīng)歷了很多天反復(fù)的枯燥的試驗,David Hubel 和Torsten Wiesel 發(fā)現(xiàn)了一種被稱為“方向選擇性細(xì)胞(Orientation Selective Cell)”的神經(jīng)元細(xì)胞。當(dāng)瞳孔發(fā)現(xiàn)了眼前的物體的邊緣,而且這個邊緣指向某個方向時,這種神經(jīng)元細(xì)胞就會活躍。
這個發(fā)現(xiàn)激發(fā)了人們對于神經(jīng)系統(tǒng)的進(jìn)一步思考。神經(jīng)-中樞-大腦的工作過程,或許是一個不斷迭代、不斷抽象的過程。
例如,從原始信號攝入開始(瞳孔攝入像素 Pixels),接著做初步處理(大腦皮層某些細(xì)胞發(fā)現(xiàn)邊緣和方向),然后抽象(大腦判定,眼前的物體的形狀,是圓形的),然后進(jìn)一步抽象(大腦進(jìn)一步判定該物體是只氣球)。
這個生理學(xué)的發(fā)現(xiàn),促成了計算機人工智能,在四十年后的突破性發(fā)展。
總的來說,人的視覺系統(tǒng)的信息處理是分級的。從低級的V1區(qū)提取邊緣特征,再到V2區(qū)的形狀或者目標(biāo)的部分等,再到更高層,整個目標(biāo)、目標(biāo)的行為等。也就是說高層的特征是低層特征的組合,從低層到高層的特征表示越來越抽象,越來越能表現(xiàn)語義或者意圖。而抽象層面越高,存在的可能猜測就越少,就越利于分類。例如,單詞集合和句子的對應(yīng)是多對一的,句子和語義的對應(yīng)又是多對一的,語義和意圖的對應(yīng)還是多對一的,這是個層級體系。
機器學(xué)習(xí)的特征
特征是機器學(xué)習(xí)系統(tǒng)的原材料,對最終模型的影響是毋庸置疑的。如果數(shù)據(jù)被很好的表達(dá)成了特征,通常線性模型就能達(dá)到滿意的精度。
特征表示的粒度
學(xué)習(xí)算法在一個什么粒度上的特征表示,才有能發(fā)揮作用?就一個圖片來說,像素級的特征根本沒有價值。例如下面的摩托車,從像素級別,根本得不到任何信息,其無法進(jìn)行摩托車和非摩托車的區(qū)分。而如果特征是一個具有結(jié)構(gòu)性(或者說有含義)的時候,比如是否具有車把手(handle),是否具有車輪(wheel),就很容易把摩托車和非摩托車區(qū)分,學(xué)習(xí)算法才能發(fā)揮作用。
初級(淺層)特征表示
既然像素級的特征表示方法沒有作用,那怎樣的表示才有用呢?
1995 年前后,Bruno Olshausen和 David Field 兩位學(xué)者任職 Cornell University,他們試圖同時用生理學(xué)和計算機的手段,雙管齊下,研究視覺問題。
他們收集了很多黑白風(fēng)景照片,從這些照片中,提取出400個小碎片,每個照片碎片的尺寸均為 16x16 像素,不妨把這400個碎片標(biāo)記為 S[i], i = 0,.. 399。接下來,再從這些黑白風(fēng)景照片中,隨機提取另一個碎片,尺寸也是 16x16 像素,不妨把這個碎片標(biāo)記為 T。
他們提出的問題是,如何從這400個碎片中,選取一組碎片,S[k], 通過疊加的辦法,合成出一個新的碎片,而這個新的碎片,應(yīng)當(dāng)與隨機選擇的目標(biāo)碎片 T,盡可能相似,同時,S[k] 的數(shù)量盡可能少。用數(shù)學(xué)的語言來描述,就是:Sum_k (a[k] * S[k]) --> T, 其中 a[k] 是在疊加碎片 S[k] 時的權(quán)重系數(shù)。
為解決這個問題,Bruno Olshausen和 David Field 發(fā)明了一個算法,稀疏編碼(Sparse Coding)。
稀疏編碼是一個重復(fù)迭代的過程,每次迭代分兩步:
1)選擇一組 S[k],然后調(diào)整 a[k],使得Sum_k (a[k] * S[k]) 最接近 T。
2)固定住 a[k],在 400 個碎片中,選擇其它更合適的碎片S’[k],替代原先的 S[k],使得Sum_k (a[k] * S’[k]) 最接近 T。
經(jīng)過幾次迭代后,最佳的 S[k] 組合,被遴選出來了。令人驚奇的是,被選中的 S[k],基本上都是照片上不同物體的邊緣線,這些線段形狀相似,區(qū)別在于方向。
Bruno Olshausen和 David Field 的算法結(jié)果,與 David Hubel 和Torsten Wiesel 的生理發(fā)現(xiàn),不謀而合!
也就是說,復(fù)雜圖形,往往由一些基本結(jié)構(gòu)組成。比如下圖:一個圖可以通過用64種正交的edges(可以理解成正交的基本結(jié)構(gòu))來線性表示。比如樣例的x可以用1-64個edges中的三個按照0.8,0.3,0.5的權(quán)重調(diào)和而成。而其他基本edge沒有貢獻(xiàn),因此均為0 。
另外,不僅圖像存在這個規(guī)律,聲音也存在。人們從未標(biāo)注的聲音中發(fā)現(xiàn)了20種基本的聲音結(jié)構(gòu),其余的聲音可以由這20種基本結(jié)構(gòu)合成。
結(jié)構(gòu)性特征表示
小塊的圖形可以由基本edge構(gòu)成,更結(jié)構(gòu)化,更復(fù)雜的,具有概念性的圖形如何表示呢?這就需要更高層次的特征表示,比如V2,V4。因此V1看像素級是像素級。V2看V1是像素級,這個是層次遞進(jìn)的,高層表達(dá)由底層表達(dá)的組合而成。專業(yè)點說就是基basis。V1取提出的basis是邊緣,然后V2層是V1層這些basis的組合,這時候V2區(qū)得到的又是高一層的basis。即上一層的basis組合的結(jié)果,上上層又是上一層的組合basis……(所以有大牛說Deep learning就是“搞基”,因為難聽,所以美其名曰Deep learning或者Unsupervised Feature Learning)
直觀上說,就是找到make sense的小patch再將其進(jìn)行combine,就得到了上一層的feature,遞歸地向上learning feature。
在不同object上做training是,所得的edge basis 是非常相似的,但object parts和models 就會completely different了(那咱們分辨car或者face是不是容易多了)。
我們知道需要層次的特征構(gòu)建,由淺入深,但每一層該有多少個特征呢?
任何一種方法,特征越多,給出的參考信息就越多,準(zhǔn)確性會得到提升。但特征多意味著計算復(fù)雜,探索的空間大,可以用來訓(xùn)練的數(shù)據(jù)在每個特征上就會稀疏,都會帶來各種問題,并不一定特征越多越好。
深度學(xué)習(xí)的基本思想
假設(shè)我們有一個系統(tǒng)S,它有n層(S1,…Sn),它的輸入是I,輸出是O,形象地表示為:I =>S1=>S2=>…..=>Sn => O,如果輸出O等于輸入I,即輸入I經(jīng)過這個系統(tǒng)變化之后沒有任何的信息損失(呵呵,大牛說,這是不可能的。信息論中有個“信息逐層丟失”的說法(信息處理不等式),設(shè)處理a信息得到b,再對b處理得到c,那么可以證明:a和c的互信息不會超過a和b的互信息。這表明信息處理不會增加信息,大部分處理會丟失信息。當(dāng)然了,如果丟掉的是沒用的信息那多好啊),保持了不變,這意味著輸入I經(jīng)過每一層Si都沒有任何的信息損失,即在任何一層Si,它都是原有信息(即輸入I)的另外一種表示。現(xiàn)在回到我們的主題Deep Learning,我們需要自動地學(xué)習(xí)特征,假設(shè)我們有一堆輸入I(如一堆圖像或者文本),假設(shè)我們設(shè)計了一個系統(tǒng)S(有n層),我們通過調(diào)整系統(tǒng)中參數(shù),使得它的輸出仍然是輸入I,那么我們就可以自動地獲取得到輸入I的一系列層次特征,即S1,…, Sn。
對于深度學(xué)習(xí)來說,其思想就是對堆疊多個層,也就是說這一層的輸出作為下一層的輸入。通過這種方式,就可以實現(xiàn)對輸入信息進(jìn)行分級表達(dá)了。
另外,前面是假設(shè)輸出嚴(yán)格地等于輸入,這個限制太嚴(yán)格,我們可以略微地放松這個限制,例如我們只要使得輸入與輸出的差別盡可能地小即可,這個放松會導(dǎo)致另外一類不同的Deep Learning方法。上述就是Deep Learning的基本思想。
淺層學(xué)習(xí)和深度學(xué)習(xí)
20世紀(jì)80年代末期,用于人工神經(jīng)網(wǎng)絡(luò)的反向傳播算法(也叫Back Propagation算法或者BP算法)的發(fā)明,給機器學(xué)習(xí)帶來了希望,掀起了基于統(tǒng)計模型的機器學(xué)習(xí)熱潮。這個熱潮一直持續(xù)到今天。人們發(fā)現(xiàn),利用BP算法可以讓一個人工神經(jīng)網(wǎng)絡(luò)模型從大量訓(xùn)練樣本中學(xué)習(xí)統(tǒng)計規(guī)律,從而對未知事件做預(yù)測。這種基于統(tǒng)計的機器學(xué)習(xí)方法比起過去基于人工規(guī)則的系統(tǒng),在很多方面顯出優(yōu)越性。這個時候的人工神經(jīng)網(wǎng)絡(luò),雖也被稱作多層感知機(Multi-layer Perceptron),但實際是種只含有一層隱層節(jié)點的淺層模型。
20世紀(jì)90年代,各種各樣的淺層機器學(xué)習(xí)模型相繼被提出,例如支撐向量機(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regression)等。這些模型的結(jié)構(gòu)基本上可以看成帶有一層隱層節(jié)點(如SVM、Boosting),或沒有隱層節(jié)點(如LR)。這些模型無論是在理論分析還是應(yīng)用中都獲得了巨大的成功。相比之下,由于理論分析的難度大,訓(xùn)練方法又需要很多經(jīng)驗和技巧,這個時期淺層人工神經(jīng)網(wǎng)絡(luò)反而相對沉寂。
2006年,加拿大多倫多大學(xué)教授、機器學(xué)習(xí)領(lǐng)域的泰斗Geoffrey Hinton和他的學(xué)生RuslanSalakhutdinov在《科學(xué)》上發(fā)表了一篇文章,開啟了深度學(xué)習(xí)在學(xué)術(shù)界和工業(yè)界的浪潮。這篇文章有兩個主要觀點:1)多隱層的人工神經(jīng)網(wǎng)絡(luò)具有優(yōu)異的特征學(xué)習(xí)能力,學(xué)習(xí)得到的特征對數(shù)據(jù)有更本質(zhì)的刻畫,從而有利于可視化或分類;2)深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練上的難度,可以通過“逐層初始化”(layer-wise pre-training)來有效克服,在這篇文章中,逐層初始化是通過無監(jiān)督學(xué)習(xí)實現(xiàn)的。
當(dāng)前多數(shù)分類、回歸等學(xué)習(xí)方法為淺層結(jié)構(gòu)算法,其局限性在于有限樣本和計算單元情況下對復(fù)雜函數(shù)的表示能力有限,針對復(fù)雜分類問題其泛化能力受到一定制約。深度學(xué)習(xí)可通過學(xué)習(xí)一種深層非線性網(wǎng)絡(luò)結(jié)構(gòu),實現(xiàn)復(fù)雜函數(shù)逼近,表征輸入數(shù)據(jù)分布式表示,并展現(xiàn)了強大的從少數(shù)樣本集中學(xué)習(xí)數(shù)據(jù)集本質(zhì)特征的能力。(多層的好處是可以用較少的參數(shù)表示復(fù)雜的函數(shù))
深度學(xué)習(xí)的實質(zhì),是通過構(gòu)建具有很多隱層的機器學(xué)習(xí)模型和海量的訓(xùn)練數(shù)據(jù),來學(xué)習(xí)更有用的特征,從而最終提升分類或預(yù)測的準(zhǔn)確性。因此,“深度模型”是手段,“特征學(xué)習(xí)”是目的。區(qū)別于傳統(tǒng)的淺層學(xué)習(xí),深度學(xué)習(xí)的不同在于:1)強調(diào)了模型結(jié)構(gòu)的深度,通常有5層、6層,甚至10多層的隱層節(jié)點;2)明確突出了特征學(xué)習(xí)的重要性,也就是說,通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預(yù)測更加容易。與人工規(guī)則構(gòu)造特征的方法相比,利用大數(shù)據(jù)來學(xué)習(xí)特征,更能夠刻畫數(shù)據(jù)的豐富內(nèi)在信息。
深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)
深度學(xué)習(xí)是機器學(xué)習(xí)研究中的一個新的領(lǐng)域,其動機在于建立、模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),它模仿人腦的機制來解釋數(shù)據(jù),例如圖像,聲音和文本。深度學(xué)習(xí)是無監(jiān)督學(xué)習(xí)的一種。
深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究。含多隱層的多層感知器就是一種深度學(xué)習(xí)結(jié)構(gòu)。深度學(xué)習(xí)通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。
Deep learning本身算是machine learning的一個分支,簡單可以理解為neural network的發(fā)展。大約二三十年前,neural network曾經(jīng)是ML領(lǐng)域特別火熱的一個方向,但是后來確慢慢淡出了,原因包括以下幾個方面:
1)比較容易過擬合,參數(shù)比較難tune,而且需要不少trick;
2)訓(xùn)練速度比較慢,在層次比較少(小于等于3)的情況下效果并不比其它方法更優(yōu);
所以中間有大約20多年的時間,神經(jīng)網(wǎng)絡(luò)被關(guān)注很少,這段時間基本上是SVM和boosting算法的天下。但是,一個癡心的老先生Hinton,他堅持了下來,并最終(和其它人一起B(yǎng)engio、Yann.lecun等)提成了一個實際可行的deep learning框架。
Deep learning與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)之間有相同的地方也有很多不同:
二者的相同在于deep learning采用了神經(jīng)網(wǎng)絡(luò)相似的分層結(jié)構(gòu),系統(tǒng)由包括輸入層、隱層(多層)、輸出層組成的多層網(wǎng)絡(luò),只有相鄰層節(jié)點之間有連接,同一層以及跨層節(jié)點之間相互無連接,每一層可以看作是一個logistic regression模型;這種分層結(jié)構(gòu),是比較接近人類大腦的結(jié)構(gòu)的。
而為了克服神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的問題,DL采用了與神經(jīng)網(wǎng)絡(luò)很不同的訓(xùn)練機制。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中,采用的是back propagation的方式進(jìn)行,簡單來講就是采用迭代的算法來訓(xùn)練整個網(wǎng)絡(luò),隨機設(shè)定初值,計算當(dāng)前網(wǎng)絡(luò)的輸出,然后根據(jù)當(dāng)前輸出和label之間的差去改變前面各層的參數(shù),直到收斂(整體是一個梯度下降法)。而deep learning整體上是一個layer-wise的訓(xùn)練機制。
深度學(xué)習(xí)的訓(xùn)練過程
使用自下上升非監(jiān)督學(xué)習(xí)(就是從底層開始,一層一層的往頂層訓(xùn)練)
采用無標(biāo)定數(shù)據(jù)(有標(biāo)定數(shù)據(jù)也可)分層訓(xùn)練各層參數(shù),這一步可以看作是一個無監(jiān)督訓(xùn)練過程,是和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)區(qū)別最大的部分(這個過程可以看作是feature learning過程):
具體的,先用無標(biāo)定數(shù)據(jù)訓(xùn)練第一層,訓(xùn)練時先學(xué)習(xí)第一層的參數(shù)(這一層可以看作是得到一個使得輸出和輸入差別最小的三層神經(jīng)網(wǎng)絡(luò)的隱層),由于模型capacity的限制以及稀疏性約束,使得得到的模型能夠?qū)W習(xí)到數(shù)據(jù)本身的結(jié)構(gòu),從而得到比輸入更具有表示能力的特征;在學(xué)習(xí)得到第n-1層后,將n-1層的輸出作為第n層的輸入,訓(xùn)練第n層,由此分別得到各層的參數(shù);
自頂向下的監(jiān)督學(xué)習(xí)(就是通過帶標(biāo)簽的數(shù)據(jù)去訓(xùn)練,誤差自頂向下傳輸,對網(wǎng)絡(luò)進(jìn)行微調(diào))
基于第一步得到的各層參數(shù)進(jìn)一步fine-tune整個多層模型的參數(shù),這一步是一個有監(jiān)督訓(xùn)練過程;第一步類似神經(jīng)網(wǎng)絡(luò)的隨機初始化初值過程,由于DL的第一步不是隨機初始化,而是通過學(xué)習(xí)輸入數(shù)據(jù)的結(jié)構(gòu)得到的,因而這個初值更接近全局最優(yōu),從而能夠取得更好的效果;所以deep learning效果好很大程度上歸功于第一步的feature learning過程。
CNNs卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)的一種,已成為當(dāng)前語音分析和圖像識別領(lǐng)域的研究熱點。它的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。該優(yōu)點在網(wǎng)絡(luò)的輸入是多維圖像時表現(xiàn)的更為明顯,使圖像可以直接作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程。卷積網(wǎng)絡(luò)是為識別二維形狀而特殊設(shè)計的一個多層感知器,這種網(wǎng)絡(luò)結(jié)構(gòu)對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。
CNNs是受早期的延時神經(jīng)網(wǎng)絡(luò)(TDNN)的影響。延時神經(jīng)網(wǎng)絡(luò)通過在時間維度上共享權(quán)值降低學(xué)習(xí)復(fù)雜度,適用于語音和時間序列信號的處理。
CNNs是第一個真正成功訓(xùn)練多層網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí)算法。它利用空間關(guān)系減少需要學(xué)習(xí)的參數(shù)數(shù)目以提高一般前向BP算法的訓(xùn)練性能。CNNs作為一個深度學(xué)習(xí)架構(gòu)提出是為了最小化數(shù)據(jù)的預(yù)處理要求。在CNN中,圖像的一小部分(局部感受區(qū)域)作為層級結(jié)構(gòu)的最低層的輸入,信息再依次傳輸?shù)讲煌膶樱繉油ㄟ^一個數(shù)字濾波器去獲得觀測數(shù)據(jù)的最顯著的特征。這個方法能夠獲取對平移、縮放和旋轉(zhuǎn)不變的觀測數(shù)據(jù)的顯著特征,因為圖像的局部感受區(qū)域允許神經(jīng)元或者處理單元可以訪問到最基礎(chǔ)的特征,例如定向邊緣或者角點。
卷積神經(jīng)網(wǎng)絡(luò)的歷史
1962年Hubel和Wiesel通過對貓視覺皮層細(xì)胞的研究,提出了感受野(receptive field)的概念,1984年日本學(xué)者Fukushima基于感受野概念提出的神經(jīng)認(rèn)知機(neocognitron)可以看作是卷積神經(jīng)網(wǎng)絡(luò)的第一個實現(xiàn)網(wǎng)絡(luò),也是感受野概念在人工神經(jīng)網(wǎng)絡(luò)領(lǐng)域的首次應(yīng)用。神經(jīng)認(rèn)知機將一個視覺模式分解成許多子模式(特征),然后進(jìn)入分層遞階式相連的特征平面進(jìn)行處理,它試圖將視覺系統(tǒng)模型化,使其能夠在即使物體有位移或輕微變形的時候,也能完成識別。
通常神經(jīng)認(rèn)知機包含兩類神經(jīng)元,即承擔(dān)特征抽取的S-元和抗變形的C-元。S-元中涉及兩個重要參數(shù),即感受野與閾值參數(shù),前者確定輸入連接的數(shù)目,后者則控制對特征子模式的反應(yīng)程度。許多學(xué)者一直致力于提高神經(jīng)認(rèn)知機的性能的研究:在傳統(tǒng)的神經(jīng)認(rèn)知機中,每個S-元的感光區(qū)中由C-元帶來的視覺模糊量呈正態(tài)分布。如果感光區(qū)的邊緣所產(chǎn)生的模糊效果要比中央來得大,S-元將會接受這種非正態(tài)模糊所導(dǎo)致的更大的變形容忍性。我們希望得到的是,訓(xùn)練模式與變形刺激模式在感受野的邊緣與其中心所產(chǎn)生的效果之間的差異變得越來越大。為了有效地形成這種非正態(tài)模糊,F(xiàn)ukushima提出了帶雙C-元層的改進(jìn)型神經(jīng)認(rèn)知機。
Van Ooyen和Niehuis為提高神經(jīng)認(rèn)知機的區(qū)別能力引入了一個新的參數(shù)。事實上,該參數(shù)作為一種抑制信號,抑制了神經(jīng)元對重復(fù)激勵特征的激勵。多數(shù)神經(jīng)網(wǎng)絡(luò)在權(quán)值中記憶訓(xùn)練信息。根據(jù)Hebb學(xué)習(xí)規(guī)則,某種特征訓(xùn)練的次數(shù)越多,在以后的識別過程中就越容易被檢測。也有學(xué)者將進(jìn)化計算理論與神經(jīng)認(rèn)知機結(jié)合,通過減弱對重復(fù)性激勵特征的訓(xùn)練學(xué)習(xí),而使得網(wǎng)絡(luò)注意那些不同的特征以助于提高區(qū)分能力。上述都是神經(jīng)認(rèn)知機的發(fā)展過程,而卷積神經(jīng)網(wǎng)絡(luò)可看作是神經(jīng)認(rèn)知機的推廣形式,神經(jīng)認(rèn)知機是卷積神經(jīng)網(wǎng)絡(luò)的一種特例。
卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡(luò)是一個多層的神經(jīng)網(wǎng)絡(luò),每層由多個二維平面組成,而每個平面由多個獨立神經(jīng)元組成。
卷積神經(jīng)網(wǎng)絡(luò)的概念示范:輸入圖像通過和三個可訓(xùn)練的濾波器和可加偏置進(jìn)行卷積,濾波過程如圖一,卷積后在C1層產(chǎn)生三個特征映射圖,然后特征映射圖中每組的四個像素再進(jìn)行求和,加權(quán)值,加偏置,通過一個Sigmoid函數(shù)得到三個S2層的特征映射圖。這些映射圖再進(jìn)過濾波得到C3層。這個層級結(jié)構(gòu)再和S2一樣產(chǎn)生S4。最終,這些像素值被光柵化,并連接成一個向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),得到輸出。
一般地,C層為特征提取層,每個神經(jīng)元的輸入與前一層的局部感受野相連,并提取該局部的特征,一旦該局部特征被提取后,它與其他特征間的位置關(guān)系也隨之確定下來;S層是特征映射層,網(wǎng)絡(luò)的每個計算層由多個特征映射組成,每個特征映射為一個平面,平面上所有神經(jīng)元的權(quán)值相等。特征映射結(jié)構(gòu)采用影響函數(shù)核小的sigmoid函數(shù)作為卷積網(wǎng)絡(luò)的激活函數(shù),使得特征映射具有位移不變性。
此外,由于一個映射面上的神經(jīng)元共享權(quán)值,因而減少了網(wǎng)絡(luò)自由參數(shù)的個數(shù),降低了網(wǎng)絡(luò)參數(shù)選擇的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)中的每一個特征提取層(C-層)都緊跟著一個用來求局部平均與二次提取的計算層(S-層),這種特有的兩次特征提取結(jié)構(gòu)使網(wǎng)絡(luò)在識別時對輸入樣本有較高的畸變?nèi)萑棠芰Α?/p>
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程
神經(jīng)網(wǎng)絡(luò)用于模式識別的主流是有指導(dǎo)學(xué)習(xí)網(wǎng)絡(luò),無指導(dǎo)學(xué)習(xí)網(wǎng)絡(luò)更多的是用于聚類分析。對于有指導(dǎo)的模式識別,由于任一樣本的類別是已知的,樣本在空間的分布不再是依據(jù)其自然分布傾向來劃分,而是要根據(jù)同類樣本在空間的分布及不同類樣本之間的分離程度找一種適當(dāng)?shù)目臻g劃分方法,或者找到一個分類邊界,使得不同類樣本分別位于不同的區(qū)域內(nèi)。這就需要一個長時間且復(fù)雜的學(xué)習(xí)過程,不斷調(diào)整用以劃分樣本空間的分類邊界的位置,使盡可能少的樣本被劃分到非同類區(qū)域中。
卷積網(wǎng)絡(luò)在本質(zhì)上是一種輸入到輸出的映射,它能夠?qū)W習(xí)大量的輸入與輸出之間的映射關(guān)系,而不需要任何輸入和輸出之間的精確的數(shù)學(xué)表達(dá)式,只要用已知的模式對卷積網(wǎng)絡(luò)加以訓(xùn)練,網(wǎng)絡(luò)就具有輸入輸出對之間的映射能力。卷積網(wǎng)絡(luò)執(zhí)行的是有導(dǎo)師訓(xùn)練,所以其樣本集是由形如:(輸入向量,理想輸出向量)的向量對構(gòu)成的。所有這些向量對,都應(yīng)該是來源于網(wǎng)絡(luò)即將模擬的系統(tǒng)的實際“運行”結(jié)果。它們可以是從實際運行系統(tǒng)中采集來的。在開始訓(xùn)練前,所有的權(quán)都應(yīng)該用一些不同的小隨機數(shù)進(jìn)行初始化。“小隨機數(shù)”用來保證網(wǎng)絡(luò)不會因權(quán)值過大而進(jìn)入飽和狀態(tài),從而導(dǎo)致訓(xùn)練失敗;“不同”用來保證網(wǎng)絡(luò)可以正常地學(xué)習(xí)。實際上,如果用相同的數(shù)去初始化權(quán)矩陣,則網(wǎng)絡(luò)無能力學(xué)習(xí)。
訓(xùn)練算法與傳統(tǒng)的BP算法差不多。主要包括4步,這4步被分為兩個階段:
第一階段,向前傳播階段:
a)從樣本集中取一個樣本(X,Yp),將X輸入網(wǎng)絡(luò);
b)計算相應(yīng)的實際輸出Op。
在此階段,信息從輸入層經(jīng)過逐級的變換,傳送到輸出層。這個過程也是網(wǎng)絡(luò)在完成訓(xùn)練后正常運行時執(zhí)行的過程。在此過程中,網(wǎng)絡(luò)執(zhí)行的是計算(實際上就是輸入與每層的權(quán)值矩陣相點乘,得到最后的輸出結(jié)果):Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))
第二階段,向后傳播階段
a)算實際輸出Op與相應(yīng)的理想輸出Yp的差;
b)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。
卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點
卷積神經(jīng)網(wǎng)絡(luò)CNN主要用來識別位移、縮放及其他形式扭曲不變性的二維圖形。由于CNN的特征檢測層通過訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí),所以在使用CNN時,避免了顯式的特征抽取,而隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí);再者由于同一特征映射面上的神經(jīng)元權(quán)值相同,所以網(wǎng)絡(luò)可以并行學(xué)習(xí),這也是卷積網(wǎng)絡(luò)相對于神經(jīng)元彼此相連網(wǎng)絡(luò)的一大優(yōu)勢。卷積神經(jīng)網(wǎng)絡(luò)以其局部權(quán)值共享的特殊結(jié)構(gòu)在語音識別和圖像處理方面有著獨特的優(yōu)越性,其布局更接近于實際的生物神經(jīng)網(wǎng)絡(luò),權(quán)值共享降低了網(wǎng)絡(luò)的復(fù)雜性,特別是多維輸入向量的圖像可以直接輸入網(wǎng)絡(luò)這一特點避免了特征提取和分類過程中數(shù)據(jù)重建的復(fù)雜度。
流的分類方式幾乎都是基于統(tǒng)計特征的,這就意味著在進(jìn)行分辨前必須提取某些特征。然而,顯式的特征提取并不容易,在一些應(yīng)用問題中也并非總是可靠的。卷積神經(jīng)網(wǎng)絡(luò),它避免了顯式的特征取樣,隱式地從訓(xùn)練數(shù)據(jù)中進(jìn)行學(xué)習(xí)。這使得卷積神經(jīng)網(wǎng)絡(luò)明顯有別于其他基于神經(jīng)網(wǎng)絡(luò)的分類器,通過結(jié)構(gòu)重組和減少權(quán)值將特征提取功能融合進(jìn)多層感知器。它可以直接處理灰度圖片,能夠直接用于處理基于圖像的分類。
卷積網(wǎng)絡(luò)較一般神經(jīng)網(wǎng)絡(luò)在圖像處理方面有如下優(yōu)點:
a)輸入圖像和網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)能很好的吻合;
b)特征提取和模式分類同時進(jìn)行,并同時在訓(xùn)練中產(chǎn)生;c)權(quán)重共享可以減少網(wǎng)絡(luò)的訓(xùn)練參數(shù),使神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)變得更簡單,適應(yīng)性更強。
審核編輯 :李倩
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4779瀏覽量
101040 -
機器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8438瀏覽量
132921 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5512瀏覽量
121408
原文標(biāo)題:深度學(xué)習(xí)詳解
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論