深度學(xué)習(xí)的”深度”, 早幾年討論的挺多的,身邊有不同的理解:深度=更大規(guī)模的網(wǎng)絡(luò),也有認(rèn)為:深度=更抽象的特征,近年來(lái)物理上也有人側(cè)面顯示:深度=玻璃相轉(zhuǎn)變,如果后者的觀點(diǎn)成立,那么僅僅引入GPU甚至FPGA硬件的目的只是加快, 沒(méi)有算法的幫助(調(diào)參也算一種算法,后面會(huì)解釋)是不會(huì)加深的!(注:等號(hào)表示強(qiáng)關(guān)系,不表示等價(jià))
度量”深“
這個(gè)”深“同復(fù)雜度的聯(lián)系是很緊密的。神經(jīng)網(wǎng)絡(luò)的復(fù)雜度,我們可以使用層數(shù),神經(jīng)元數(shù)目,或者連接權(quán)重?cái)?shù)目作為度量。相對(duì)的,數(shù)據(jù)本身的復(fù)雜度,我們用帶標(biāo)簽的數(shù)據(jù)的比例和不帶標(biāo)簽的數(shù)據(jù)的比例來(lái)衡量。
深度=規(guī)模?網(wǎng)絡(luò)復(fù)雜性同分類誤差之間的聯(lián)系:
70-90年代關(guān)于神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)結(jié)論可謂多如牛毛,基本上很多討論了規(guī)模和泛化之間的關(guān)系,尤其是分類問(wèn)題,關(guān)于分類的訓(xùn)練誤差和測(cè)試誤差(泛化能力),基本上歸結(jié)為幾個(gè)基本要求和限制:
模型要多復(fù)雜: 增加復(fù)雜度總是能擬合好訓(xùn)練樣本,而要獲得良好的泛化能力,普遍認(rèn)為復(fù)雜度應(yīng)該為訓(xùn)練數(shù)據(jù)數(shù)目的某種冪次,才能有較好的泛化能力。而且冪次要求小于1,若不然,每增加一個(gè)訓(xùn)練樣本,都必須要擴(kuò)充網(wǎng)絡(luò),這種模型沒(méi)有任何實(shí)際意義。謝天謝地,神經(jīng)網(wǎng)絡(luò)可以滿足這個(gè)要求,參考文獻(xiàn)3。 要多少訓(xùn)練數(shù)據(jù):如果網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)為 N,連接權(quán)重?cái)?shù)為W,那么泛化誤差小于任意指定值ε 的一個(gè)合理的要求便是: 訓(xùn)練數(shù)據(jù)的數(shù)目 >(W/ε)Log(N/ε),這說(shuō)明復(fù)雜的模型需要更多的訓(xùn)練以獲得優(yōu)秀的泛化能力!事實(shí)上,不斷提高數(shù)據(jù)量,多層感知器模型也能達(dá)到目前深度學(xué)習(xí)的水平(參考文獻(xiàn)2),認(rèn)為深度學(xué)習(xí)=普通多層神經(jīng)網(wǎng)絡(luò),的確有現(xiàn)實(shí)的理由。 奧卡姆剃刀疑惑:理論上,帶一層隱藏層的核基神經(jīng)網(wǎng)絡(luò)可以將任意數(shù)據(jù)擬合好(理解為級(jí)數(shù)展開(kāi),每個(gè)項(xiàng)就是一個(gè)隱藏神經(jīng)元),那么提高復(fù)雜度的作用是啥?無(wú)法爭(zhēng)辯的事實(shí)是,數(shù)據(jù)量足夠高以后,簡(jiǎn)單的分類器都能給出優(yōu)秀的結(jié)果。關(guān)于這一點(diǎn)從相變角度能解釋為何需要實(shí)際工程需要一個(gè)“過(guò)度復(fù)雜的網(wǎng)絡(luò)”,而不是一個(gè)大小“剛剛好的”網(wǎng)絡(luò)。 復(fù)雜的代價(jià):一個(gè)基本的定理,測(cè)試誤差 >= 訓(xùn)練誤差 + 模型復(fù)雜度,過(guò)度復(fù)雜的代價(jià)便是過(guò)擬合。防止過(guò)擬合的方法沒(méi)有通論,業(yè)界通稱“黑魔法”。
上面4點(diǎn)告訴我們的表象是,針對(duì)靜態(tài)非時(shí)序分類問(wèn)題,我們貌似可以不要高大上的算法,只要數(shù)據(jù)量足夠,網(wǎng)絡(luò)足夠復(fù)雜,機(jī)器夠大,速度夠快,懂點(diǎn)“黑魔法”,在現(xiàn)在的工業(yè)界的數(shù)據(jù)量和模型通常都是用億來(lái)衡量其規(guī)模的時(shí)代,此乃現(xiàn)世王道。
深度=更多抽象特征?一連串問(wèn)題來(lái)了,何為特征?何為好的特征?深度學(xué)習(xí)的特征為何被稱為抽象的?多層和抽象的關(guān)系是啥?
特征=函數(shù)展開(kāi)的基函數(shù)?數(shù)學(xué)上將基函數(shù)理解成特征是可以的,當(dāng)然不必要完備,也不必要正交。比如下圖,圖片特征提取,稀疏編碼就是在一堆特征當(dāng)中尋找最少且擬合最好的特征組,前提假設(shè)是圖片都可以被分解為這些特征的線性疊加。然而前提要求分解仍然是線性的,使得機(jī)器上好計(jì)算,但是實(shí)際問(wèn)題需要的特征通常是不同類型的組合,強(qiáng)行線性組合就像是吃正宗粵菜的時(shí)候來(lái)個(gè)山東煎餅果子一樣。(圖取自吳恩達(dá)的slide)
特征=低維流形嵌入?
產(chǎn)生成千上萬(wàn)個(gè)沒(méi)經(jīng)驗(yàn)證的特征總是容易的,但去除冗余特征,也就是去掉那些添不添加都不影響結(jié)果的特征,就需要相當(dāng)?shù)募记?。一種便是通過(guò)低維流形去尋找最重要的結(jié)構(gòu),這種方法可以利用多層自編碼去逐層壓縮維度,也可以用傳統(tǒng)多層神經(jīng)網(wǎng)絡(luò)+Isomap類似的方法一步到位地壓縮維度,然后不斷調(diào)整使得嵌入低維的數(shù)據(jù)點(diǎn)“互相分離的最遠(yuǎn)”。由于數(shù)據(jù)點(diǎn)靠的近表示相似,故此這種方法能將數(shù)據(jù)本身的平移旋轉(zhuǎn)按順序嵌入到每塊低維子流形當(dāng)中。反過(guò)來(lái)說(shuō),如果訓(xùn)練數(shù)據(jù)已經(jīng)包含有其本身的旋轉(zhuǎn)平移,其低維子流形將會(huì)被填充得“更加的豐滿”(如綠色的圓圈,因?yàn)槭謱憯?shù)字1無(wú)論如何寫都是“ |” 的某種旋轉(zhuǎn)拉伸),其低維的邊界就更容易被發(fā)現(xiàn)。然而這種方法是假設(shè)數(shù)據(jù)的可解釋性隱藏在其低維流形結(jié)構(gòu)上,難免讓人費(fèi)解,而且不同標(biāo)簽的嵌入子流形能否被充分分離也是非常困難的事情。(參考G.E.Hinton 06年 nature, Y LeCun,etc)