文章發(fā)布于公號(hào)【數(shù)智物語(yǔ)】 (ID:decision_engine),關(guān)注公號(hào)不錯(cuò)過(guò)每一篇干貨。
本文節(jié)選自微軟亞洲研究院機(jī)器學(xué)習(xí)研究團(tuán)隊(duì)劉鐵巖、陳薇、王太峰、高飛合著的《分布式機(jī)器學(xué)習(xí):算法、理論與實(shí)踐》一書。為了讓大家更好地理解分布式機(jī)器學(xué)習(xí)。
首先,線性模型的取值范圍是不受限的,依據(jù)w和x的具體取值,它的輸出可以是非常大的正數(shù)或者非常小的負(fù)數(shù)。然而,在進(jìn)行分類的時(shí)候,我們預(yù)期得到的模型輸出是某個(gè)樣本屬于正類(如正面評(píng)價(jià))的可能性,這個(gè)可能性通常是取值在0和1之間的一個(gè)概率值。為了解決這二者之間的差距,人們通常會(huì)使用一個(gè)對(duì)數(shù)幾率函數(shù)對(duì)線性模型的輸出進(jìn)行變換,得到如下公式: 經(jīng)過(guò)變換,嚴(yán)格地講,g(x;w)已經(jīng)不再是一個(gè)線性函數(shù),而是由一個(gè)線性函數(shù)派生出來(lái)的非線性函數(shù),我們通常稱這類函數(shù)為廣義線性函數(shù)。對(duì)數(shù)幾率模型本身是一個(gè)概率形式,非常適合用對(duì)數(shù)似然損失或者交叉熵?fù)p失進(jìn)行訓(xùn)練。 其次,線性模型只能挖掘特征之間的線性組合關(guān)系,無(wú)法對(duì)更加復(fù)雜、更加強(qiáng)大的非線性組合關(guān)系進(jìn)行建模。為了解決這個(gè)問題,我們可以對(duì)輸入的各維特征進(jìn)行一些顯式的非線性預(yù)變換(如單維特征的指數(shù)、對(duì)數(shù)、多項(xiàng)式變換,以及多維特征的交叉乘積等),或者采用核方法把原特征空間隱式地映射到一個(gè)高維的非線性空間,再在高維空間里構(gòu)建線性模型。 核方法的基本思想是通過(guò)一個(gè)非線性變換,把輸入數(shù)據(jù)映射到高維的希爾伯特空間中,在這個(gè)高維空間里,那些在原始輸入空間中線性不可分的問題變得更加容易解決,甚至線性可分。支持向量機(jī)(Support Vector Machine,SVM)[10]是一類最典型的核方法,下面將以支持向量機(jī)為例,對(duì)核方法進(jìn)行簡(jiǎn)單的介紹。 支持向量機(jī)的基本思想是通過(guò)核函數(shù)將原始輸入空間變換成一個(gè)高維(甚至是無(wú)窮維)的空間,在這個(gè)空間里尋找一個(gè)超平面,它可以把訓(xùn)練集里的正例和負(fù)例盡最大可能地分開(用更加學(xué)術(shù)的語(yǔ)言描述,就是正負(fù)例之間的間隔最大化)。那么如何才能通過(guò)核函數(shù)實(shí)現(xiàn)空間的非線性映射呢?讓我們從頭談起。 圖2.6最大化間隔與支持向量機(jī) 以上的數(shù)學(xué)描述等價(jià)于如下的優(yōu)化問題:min12w2 為了求解上述有約束的優(yōu)化問題,一種常用的技巧是使用拉格朗日乘數(shù)法將其轉(zhuǎn)換成對(duì)偶問題進(jìn)行求解。具體來(lái)講,支持向量機(jī)對(duì)應(yīng)的對(duì)偶問題如下: 至此,我們弄清楚了核函數(shù)是如何和空間變換發(fā)生聯(lián)系的。核函數(shù)可以有很多不同的選擇,表2.1列出了幾種常用的核函數(shù)。 事實(shí)上,只要一個(gè)對(duì)稱函數(shù)所對(duì)應(yīng)的核矩陣滿足半正定的條件,它就能作為核函數(shù)使用,并總能找到一個(gè)與之對(duì)應(yīng)的空間映射。換言之,任何一個(gè)核函數(shù)都隱式地定義了一個(gè)“再生核希爾伯特空間”(Reproducing Kernel Hilbert Space,RKHS)。在這個(gè)空間里,兩個(gè)向量的內(nèi)積等于對(duì)應(yīng)核函數(shù)的值。 決策樹也是一類常見的機(jī)器學(xué)習(xí)模型,它的基本思想是根據(jù)數(shù)據(jù)的屬性構(gòu)造出樹狀結(jié)構(gòu)的決策模型。一棵決策樹包含一個(gè)根節(jié)點(diǎn)、若干內(nèi)部節(jié)點(diǎn),以及若干葉子節(jié)點(diǎn)。葉子節(jié)點(diǎn)對(duì)應(yīng)最終的決策結(jié)果,而其他節(jié)點(diǎn)則針對(duì)數(shù)據(jù)的某種屬性進(jìn)行判斷與分支:在這樣的節(jié)點(diǎn)上,會(huì)對(duì)數(shù)據(jù)的某個(gè)屬性(特征)進(jìn)行檢測(cè),依據(jù)檢測(cè)結(jié)果把樣本劃分到該節(jié)點(diǎn)的某棵子樹之中。通過(guò)決策樹,我們可以從根節(jié)點(diǎn)出發(fā),把一個(gè)具體的樣本最終分配到某個(gè)葉子節(jié)點(diǎn)上,實(shí)現(xiàn)相應(yīng)的預(yù)測(cè)功能。 因?yàn)樵诿總€(gè)節(jié)點(diǎn)上的分支操作是非線性的,因此決策樹可以實(shí)現(xiàn)比較復(fù)雜的非線性映射。決策樹算法的目的是根據(jù)訓(xùn)練數(shù)據(jù),學(xué)習(xí)出一棵泛化能力較強(qiáng)的決策樹,也就是說(shuō),它能夠很好地把未知樣本分到正確的葉子節(jié)點(diǎn)上。為了達(dá)到這個(gè)目的,我們?cè)谟?xùn)練過(guò)程中構(gòu)建的決策樹不能太復(fù)雜,否則可能會(huì)過(guò)擬合到訓(xùn)練數(shù)據(jù)上,而無(wú)法正確地處理未知的測(cè)試數(shù)據(jù)。常見的決策樹算法包括:分類及回歸樹(CART)[21],ID3算法[11],C4.5算法[22],決策樹樁(Decision Stump)[23]等。這些算法的基本流程都比較類似,包括劃分選擇和剪枝處理兩個(gè)基本步驟。 劃分選擇要解決的問題是如何根據(jù)某種準(zhǔn)則在某個(gè)節(jié)點(diǎn)上把數(shù)據(jù)集里的樣本分到它的一棵子樹上。常用的準(zhǔn)則有:信息增益、增益率、基尼系數(shù)等。其具體數(shù)學(xué)形式雖有差別,但是核心思想大同小異。這里我們就以信息增益為例進(jìn)行介紹。所謂信息增益,指的是在某個(gè)節(jié)點(diǎn)上,用特征j對(duì)數(shù)據(jù)集D進(jìn)行劃分得到的樣本集合的純度提升的程度。信息增益的具體數(shù)學(xué)定義如下: 其中,是特征的取值集合,而是特征取值為的那些樣本所組成的子集;Entropy(D)是樣本集合D的信息熵,描述的是D中來(lái)自不同類別的樣本的分布情況。不同類別的樣本分布越平均,則信息熵越大,集合純度越低;相反,樣本分布越集中,則信息熵越小,集合純度越高。樣本劃分的目的是找到使得劃分后平均信息熵變得最小的特征,從而使得信息增益最大。 剪枝處理要解決的問題是抑制過(guò)擬合。如果決策樹非常復(fù)雜,每個(gè)葉子節(jié)點(diǎn)上只對(duì)應(yīng)一個(gè)訓(xùn)練樣本,一定可以實(shí)現(xiàn)信息增益最大化,可這樣的后果是對(duì)訓(xùn)練數(shù)據(jù)的過(guò)擬合,將導(dǎo)致在測(cè)試數(shù)據(jù)上的精度損失。為了解決這個(gè)問題,可以采取剪枝的操作降低決策樹的復(fù)雜度。剪枝處理有預(yù)剪枝和后剪枝之分:預(yù)剪枝指的是在決策樹生成過(guò)程中,對(duì)每個(gè)節(jié)點(diǎn)在劃分前先進(jìn)行估計(jì),如果當(dāng)前節(jié)點(diǎn)的劃分不能帶來(lái)決策樹泛化性能的提升(通常可以通過(guò)一個(gè)交叉驗(yàn)證集來(lái)評(píng)估泛化能力),則停止劃分并且將當(dāng)前節(jié)點(diǎn)標(biāo)記為葉子節(jié)點(diǎn);后剪枝指的是先從訓(xùn)練集中生成一棵完整的決策樹,然后自底向上地考察去掉每個(gè)節(jié)點(diǎn)(即將該節(jié)點(diǎn)及其子樹合并成為一個(gè)葉子節(jié)點(diǎn))以后泛化能力是否有所提高,若有提高,則進(jìn)行剪枝。 其中,是加權(quán)系數(shù),它既可以在訓(xùn)練過(guò)程中根據(jù)當(dāng)前弱學(xué)習(xí)器的準(zhǔn)確程度利用經(jīng)驗(yàn)公式求得,也可以在訓(xùn)練過(guò)程結(jié)束后(各個(gè)弱學(xué)習(xí)器都已經(jīng)訓(xùn)練好以后),再利用新的學(xué)習(xí)目標(biāo)通過(guò)額外的優(yōu)化手段求得。 有研究表明Boosting在抵抗過(guò)擬合方面有非常好的表現(xiàn),也就是說(shuō),隨著訓(xùn)練過(guò)程的推進(jìn),即便在訓(xùn)練集上已經(jīng)把誤差降到0,更多的迭代還是可以提高模型在測(cè)試集上的性能。人們用間隔定理(Margin Theory)[26]來(lái)解釋這種現(xiàn)象——隨著迭代進(jìn)一步推進(jìn),雖然訓(xùn)練集上的誤差已經(jīng)不再變化,但是訓(xùn)練樣本上的分類置信度(對(duì)應(yīng)于每個(gè)樣本點(diǎn)上的間隔)卻仍在不斷變大。到今天為止,Boosting算法,尤其是與決策樹相結(jié)合的算法如梯度提升決策樹(GBDT)[27]仍然在實(shí)際應(yīng)用中挑著大梁,是很多數(shù)據(jù)挖掘比賽的奪冠熱門。 神經(jīng)網(wǎng)絡(luò)是一類典型的非線性模型,它的設(shè)計(jì)受到生物神經(jīng)網(wǎng)絡(luò)的啟發(fā)。人們通過(guò)對(duì)大腦生物機(jī)理的研究,發(fā)現(xiàn)其基本單元是神經(jīng)元,每個(gè)神經(jīng)元通過(guò)樹突從上游的神經(jīng)元那里獲取輸入信號(hào),經(jīng)過(guò)自身的加工處理后,再通過(guò)軸突將輸出信號(hào)傳遞給下游的神經(jīng)元。當(dāng)神經(jīng)元的輸入信號(hào)總和達(dá)到一定強(qiáng)度時(shí),就會(huì)激活一個(gè)輸出信號(hào),否則就沒有輸出信號(hào)(如圖2.7a所示)。 圖2.7神經(jīng)元結(jié)構(gòu)與人工神經(jīng)網(wǎng)絡(luò) 但是,由于階躍函數(shù)本身不連續(xù),對(duì)于機(jī)器學(xué)習(xí)而言不是一個(gè)好的選擇,因此在人們?cè)O(shè)計(jì)人工神經(jīng)網(wǎng)絡(luò)的時(shí)候通常采用連續(xù)的激活函數(shù),比如Sigmoid函數(shù)、雙曲正切函數(shù)(tanh)、校正線性單元(ReLU)等。它們的數(shù)學(xué)形式和函數(shù)形狀分別如圖2.8所示。 ![]() 圖2.8常用的激活函數(shù) 最基本的神經(jīng)網(wǎng)絡(luò)就是把前面描述的神經(jīng)元互相連接起來(lái),形成層次結(jié)構(gòu)(如圖2.9所示),我們稱之為全連接神經(jīng)網(wǎng)絡(luò)。對(duì)于圖2.9中這個(gè)網(wǎng)絡(luò)而言,最左邊對(duì)應(yīng)的是輸入節(jié)點(diǎn),最右邊對(duì)應(yīng)的是輸出節(jié)點(diǎn),中間的三層節(jié)點(diǎn)都是隱含節(jié)點(diǎn)(我們把相應(yīng)的層稱為隱含層)。每一個(gè)隱含節(jié)點(diǎn)都會(huì)把來(lái)自上一層節(jié)點(diǎn)的輸出進(jìn)行加權(quán)求和,再經(jīng)過(guò)一個(gè)非線性的激活函數(shù),輸出給下一層。而輸出層則一般采用簡(jiǎn)單的線性函數(shù),或者進(jìn)一步使用softmax函數(shù)將輸出變成概率形式。 ![]() 圖2.9全連接神經(jīng)網(wǎng)絡(luò) 全連接神經(jīng)網(wǎng)絡(luò)雖然看起來(lái)簡(jiǎn)單,但它有著非常強(qiáng)大的表達(dá)能力。早在20世紀(jì)80年代,人們就證明了著名的通用逼近定理(Universal Approximation Theorem[28])。最早的通用逼近定理是針對(duì)Sigmoid激活函數(shù)證明的,一般情況下的通用逼近定理在2001年被證明[29]。其數(shù)學(xué)描述是,在激活函數(shù)滿足一定條件的前提下,任意給定輸入空間中的一個(gè)連續(xù)函數(shù)和近似精度ε,存在自然數(shù)Nε和一個(gè)隱含節(jié)點(diǎn)數(shù)為Nε的單隱層全連接神經(jīng)網(wǎng)絡(luò),對(duì)這個(gè)連續(xù)函數(shù)的-逼近精度小于ε。這個(gè)定理非常重要,它告訴我們?nèi)B接神經(jīng)網(wǎng)絡(luò)可以用來(lái)解決非常復(fù)雜的問題,當(dāng)其他的模型(如線性模型、支持向量機(jī)等)無(wú)法逼近這類問題的分類界面時(shí),神經(jīng)網(wǎng)絡(luò)仍然可以所向披靡、得心應(yīng)手。近年來(lái),人們指出深層網(wǎng)絡(luò)的表達(dá)力更強(qiáng),即表達(dá)某些邏輯函數(shù),深層網(wǎng)絡(luò)需要的隱含節(jié)點(diǎn)數(shù)比淺層網(wǎng)絡(luò)少很多[30]。這對(duì)于模型存儲(chǔ)和優(yōu)化而言都是比較有利的,因此人們?cè)絹?lái)越關(guān)注和使用更深層的神經(jīng)網(wǎng)絡(luò)。 全連接神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過(guò)程中常常選取交叉熵?fù)p失函數(shù),并且使用梯度下降法來(lái)求解模型參數(shù)(實(shí)際中為了減少每次模型更新的代價(jià),使用的是小批量的隨機(jī)梯度下降法)。要注意的是,雖然交叉熵?fù)p失是個(gè)凸函數(shù),但由于多層神經(jīng)網(wǎng)絡(luò)本身的非線性和非凸本質(zhì),損失函數(shù)對(duì)于模型參數(shù)而言其實(shí)是嚴(yán)重非凸的。在這種情況下,使用梯度下降法求解通常只能找到局部最優(yōu)解。為了解決這個(gè)問題,人們?cè)趯?shí)踐中常常采用多次隨機(jī)初始化或者模擬退火等技術(shù)來(lái)尋找全局意義下更優(yōu)的解。近年有研究表明,在滿足一定條件時(shí),如果神經(jīng)網(wǎng)絡(luò)足夠深,它的所有局部最優(yōu)解其實(shí)都和全局最優(yōu)解具有非常類似的損失函數(shù)值[31]。換言之,對(duì)于深層神經(jīng)網(wǎng)絡(luò)而言,“只能找到局部最優(yōu)解”未見得是一個(gè)致命的缺陷,在很多時(shí)候這個(gè)局部最優(yōu)解已經(jīng)足夠好,可以達(dá)到非常不錯(cuò)的實(shí)際預(yù)測(cè)精度。 除了局部最優(yōu)解和全局最優(yōu)解的憂慮之外,其實(shí)關(guān)于使用深層神經(jīng)網(wǎng)絡(luò)還有另外兩個(gè)困難。 1. 首先,因?yàn)樯顚由窠?jīng)網(wǎng)絡(luò)的表達(dá)能力太強(qiáng),很容易過(guò)擬合到訓(xùn)練數(shù)據(jù)上,導(dǎo)致其在測(cè)試數(shù)據(jù)上表現(xiàn)欠佳。為了解決這個(gè)問題,人們提出了很多方法,包括DropOut[32]、數(shù)據(jù)擴(kuò)張(Data Augmentation)[33]、批量歸一化(Batch Normalization)[34]、權(quán)值衰減(Weight Decay)[35]、提前終止(Early Stopping)[36]等,通過(guò)在訓(xùn)練過(guò)程中引入隨機(jī)性、偽訓(xùn)練樣本或限定模型空間來(lái)提高模型的泛化能力。 2. 其次,當(dāng)網(wǎng)絡(luò)很深時(shí),輸出層的預(yù)測(cè)誤差很難順利地逐層傳遞下去,從而使得靠近輸入層的那些隱含層無(wú)法得到充分的訓(xùn)練。這個(gè)問題又稱為“梯度消減”問題\[37\]。研究表明,梯度消減主要是由神經(jīng)網(wǎng)絡(luò)的非線性激活函數(shù)帶來(lái)的,因?yàn)榉蔷€性激活函數(shù)導(dǎo)數(shù)的模都不太大,在使用梯度下降法進(jìn)行優(yōu)化的時(shí)候,非線性激活函數(shù)導(dǎo)數(shù)的逐層連乘會(huì)出現(xiàn)在梯度的計(jì)算公式中,從而使梯度的幅度逐層減小。為了解決這個(gè)問題,人們?cè)诳鐚又g引入了線性直連,或者由門電路控制的線性通路[38],以期為梯度信息的順利回傳提供便利。 除了全連接神經(jīng)網(wǎng)絡(luò)以外,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[13]也是十分常用的網(wǎng)絡(luò)結(jié)構(gòu),尤其適用于處理圖像數(shù)據(jù)。 卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)是受生物視覺系統(tǒng)的啟發(fā)。研究表明每個(gè)視覺細(xì)胞只對(duì)于局部的小區(qū)域敏感,而大量視覺細(xì)胞平鋪在視野中,可以很好地利用自然圖像的空間局部相關(guān)性。與此類似,卷積神經(jīng)網(wǎng)絡(luò)也引入局部連接的概念,并且在空間上平鋪具有同樣參數(shù)結(jié)構(gòu)的濾波器(也稱為卷積核)。這些濾波器之間有很大的重疊區(qū)域,相當(dāng)于有個(gè)空域滑窗,在滑窗滑到不同空間位置時(shí),對(duì)這個(gè)窗內(nèi)的信息使用同樣的濾波器進(jìn)行分析。這樣雖然網(wǎng)絡(luò)很大,但是由于不同位置的濾波器共享參數(shù),其實(shí)模型參數(shù)的個(gè)數(shù)并不多,參數(shù)效率很高。 圖2.10描述了一個(gè)2×2的卷積核將輸入圖像進(jìn)行卷積的例子。所謂卷積就是卷積核的各個(gè)參數(shù)和圖像中空間位置對(duì)應(yīng)的像素值進(jìn)行點(diǎn)乘再求和。經(jīng)過(guò)了卷積操作之后,會(huì)得到一個(gè)和原圖像類似大小的新圖層,其中的每個(gè)點(diǎn)都是卷積核在某空間局部區(qū)域的作用結(jié)果(可能對(duì)應(yīng)于提取圖像的邊緣或抽取更加高級(jí)的語(yǔ)義信息)。我們通常稱這個(gè)新圖層為特征映射(feature map)。對(duì)于一幅圖像,可以在一個(gè)卷積層里使用多個(gè)不同的卷積核,從而形成多維的特征映射;還可以把多個(gè)卷積層級(jí)聯(lián)起來(lái),不斷抽取越來(lái)越復(fù)雜的語(yǔ)義信息。 ![]() 圖2.10卷積過(guò)程示意圖 除了卷積以外,池化也是卷積神經(jīng)網(wǎng)絡(luò)的重要組成部分。池化的目的是對(duì)原特征映射進(jìn)行壓縮,從而更好地體現(xiàn)圖像識(shí)別的平移不變性,并且有效擴(kuò)大后續(xù)卷積操作的感受野。池化與卷積不同,一般不是參數(shù)化的模塊,而是用確定性的方法求出局部區(qū)域內(nèi)的平均值、中位數(shù),或最大值、最小值(近年來(lái),也有一些學(xué)者開始研究參數(shù)化的池化算子[39])。圖2.11描述了對(duì)圖像局部進(jìn)行2×2的最大值池化操作后的效果。 圖2.11池化操作示意圖 在實(shí)際操作中,可以把多個(gè)卷積層和多個(gè)池化層交替級(jí)聯(lián),從而實(shí)現(xiàn)從原始圖像中不斷抽取高層語(yǔ)義特征的目的。在此之后,還可以再級(jí)聯(lián)一個(gè)全連接網(wǎng)絡(luò),在這些高層語(yǔ)義特征的基礎(chǔ)上進(jìn)行模式識(shí)別或預(yù)測(cè)。這個(gè)過(guò)程如圖2.12所示。 圖2.12多層卷積神經(jīng)網(wǎng)絡(luò)(N1,N2,N3表示對(duì)應(yīng)單元重復(fù)的次數(shù)) 實(shí)踐中,人們開始嘗試使用越來(lái)越深的卷積神經(jīng)網(wǎng)絡(luò),以達(dá)到越來(lái)越好的圖像分類效果。圖2.13描述了近年來(lái)人們?cè)贗mageNet數(shù)據(jù)集上不斷通過(guò)增加網(wǎng)絡(luò)深度刷新錯(cuò)誤率的歷程。其中2015年來(lái)自微軟研究院的深達(dá)152層的ResNet網(wǎng)絡(luò)[40],在ImageNet數(shù)據(jù)集上取得了低達(dá)3.57%的Top-5錯(cuò)誤率,在特定任務(wù)上超越了普通人類的圖像識(shí)別能力。 ![]() 圖2.13卷積神經(jīng)網(wǎng)絡(luò)不斷刷新ImageNet數(shù)據(jù)集的識(shí)別結(jié)果 ![]() 圖2.14殘差學(xué)習(xí) 隨著卷積神經(jīng)網(wǎng)絡(luò)變得越來(lái)越深,前面提到的梯度消減問題也隨之變得越來(lái)越顯著,給模型的訓(xùn)練帶來(lái)了很大難度。為了解決這個(gè)問題,近年來(lái)人們提出了一系列的方法,包括殘差學(xué)習(xí)[40-41](如圖2.14所示)、高密度網(wǎng)絡(luò)[42](如圖2.15所示)等。實(shí)驗(yàn)表明:這些方法可以有效地把訓(xùn)練誤差傳遞到靠近輸入層的地方,為深層卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練奠定了堅(jiān)實(shí)的實(shí)踐基礎(chǔ)。 ![]() 圖2.15高密度網(wǎng)絡(luò) 很顯然,這個(gè)式子里蘊(yùn)含著對(duì)于記憶單元的循環(huán)迭代。在實(shí)際應(yīng)用中,無(wú)限長(zhǎng)時(shí)間的循環(huán)迭代并沒有太大意義。比如,當(dāng)我們閱讀文字的時(shí)候,每個(gè)句子的平均長(zhǎng)度可能只有十幾個(gè)字。因此,我們完全可以把循環(huán)神經(jīng)網(wǎng)絡(luò)在時(shí)域上展開,然后在展開的網(wǎng)絡(luò)上利用梯度下降法來(lái)求得參數(shù)矩陣U、W、V,如圖2.16所示。用循環(huán)神經(jīng)網(wǎng)絡(luò)的術(shù)語(yǔ),我們稱之為時(shí)域反向傳播(Back Propagation Through Time,BPTT)。 ![]() 圖2.16循環(huán)神經(jīng)網(wǎng)絡(luò)的展開 和全連接神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)類似,當(dāng)循環(huán)神經(jīng)網(wǎng)絡(luò)時(shí)域展開以后,也會(huì)遇到梯度消減的問題。為了解決這個(gè)問題,人們提出了一套依靠門電路來(lái)控制信息流通的方法。也就是說(shuō),在循環(huán)神經(jīng)網(wǎng)絡(luò)的兩層之間同時(shí)存在線性和非線性通路,而哪個(gè)通路開、哪個(gè)通路關(guān)或者多大程度上開關(guān)則由一組門電路來(lái)控制。這個(gè)門電路也是帶參數(shù)并且這些參數(shù)在神經(jīng)網(wǎng)絡(luò)的優(yōu)化過(guò)程中是可學(xué)習(xí)的。比較著名的兩類方法是LSTM[43]和GRU[44](如圖2.17所示)。GRU相比LSTM更加簡(jiǎn)單一些,LSTM有三個(gè)門電路(輸入門、忘記門、輸出門),而GRU則有兩個(gè)門電路(重置門、更新門),二者在實(shí)際中的效果類似,但GRU的訓(xùn)練速度要快一些,因此近年來(lái)有變得更加流行的趨勢(shì)。 ![]() 圖2.17循環(huán)神經(jīng)網(wǎng)絡(luò)中的門電路 循環(huán)神經(jīng)網(wǎng)絡(luò)可以對(duì)時(shí)間序列進(jìn)行有效建模,根據(jù)它所處理的序列的不同情況,可以把循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用場(chǎng)景分為點(diǎn)到序列、序列到點(diǎn)和序列到序列等類型(如圖2.18所示)。 ![]() 圖2.18循環(huán)神經(jīng)網(wǎng)絡(luò)的不同應(yīng)用 下面分別介紹幾種循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用場(chǎng)景。 (1)圖像配文字:點(diǎn)到序列的循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用 在這個(gè)應(yīng)用中,輸入的是圖像的編碼信息(可以通過(guò)卷積神經(jīng)網(wǎng)絡(luò)的中間層獲得,也可以直接采用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)得到的類別標(biāo)簽),輸出則是靠循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)驅(qū)動(dòng)產(chǎn)生的一句自然語(yǔ)言文本,用以描述該圖像包含的內(nèi)容。 (2)情感分類:序列到點(diǎn)的循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用 在這個(gè)應(yīng)用中,輸入的是一段文本信息(時(shí)序序列),而輸出的是情感分類的標(biāo)簽(正向情感或反向情感)。循環(huán)神經(jīng)網(wǎng)絡(luò)用于分析輸入的文本,其隱含節(jié)點(diǎn)包含了整個(gè)輸入語(yǔ)句的編碼信息,再通過(guò)一個(gè)全連接的分類器把該編碼信息映射到合適的情感類別之中。 (3)機(jī)器翻譯:序列到序列的循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用 在這個(gè)應(yīng)用中,輸入的是一個(gè)語(yǔ)言的文本(時(shí)序序列),而輸出的則是另一個(gè)語(yǔ)言的文本(時(shí)序序列)。循環(huán)神經(jīng)網(wǎng)絡(luò)在這個(gè)應(yīng)用中被使用了兩次:第一次是用來(lái)對(duì)輸入的源語(yǔ)言文本進(jìn)行分析和編碼;而第二次則是利用這個(gè)編碼信息驅(qū)動(dòng)輸出目標(biāo)語(yǔ)言的一段文本。 在使用序列到序列的循環(huán)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)機(jī)器翻譯時(shí),在實(shí)踐中會(huì)遇到一個(gè)問題。輸出端翻譯結(jié)果中的某個(gè)詞其實(shí)對(duì)于輸入端各個(gè)詞匯的依賴程度是不同的,通過(guò)把整個(gè)輸入句子編碼到一個(gè)向量來(lái)驅(qū)動(dòng)輸出的句子,會(huì)導(dǎo)致信息粒度太粗糙,或者長(zhǎng)線的依賴關(guān)系被忽視。為了解決這個(gè)問題,人們?cè)跇?biāo)準(zhǔn)的序列到序列循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上引入了所謂“注意力機(jī)制”。在它的幫助下,輸出端的每個(gè)詞的產(chǎn)生會(huì)利用到輸入端不同詞匯的編碼信息。而這種注意力機(jī)制也是帶參數(shù)的,可以在整個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程中自動(dòng)習(xí)得。 神經(jīng)網(wǎng)絡(luò)尤其是深層神經(jīng)網(wǎng)絡(luò)是一個(gè)高速發(fā)展的研究領(lǐng)域。隨著整個(gè)學(xué)術(shù)界和工業(yè)界的持續(xù)關(guān)注,這個(gè)領(lǐng)域比其他的機(jī)器學(xué)習(xí)領(lǐng)域獲得了更多的發(fā)展機(jī)會(huì),不斷有新的網(wǎng)絡(luò)結(jié)構(gòu)或優(yōu)化方法被提出。如果讀者對(duì)于這個(gè)領(lǐng)域感興趣,請(qǐng)關(guān)注每年發(fā)表在機(jī)器學(xué)習(xí)主流學(xué)術(shù)會(huì)議上的最新論文。 參考文獻(xiàn) [1]Cao Z, Qin T, Liu T Y, et al. Learning to Rank: From Pairwise Approach to Listwise Approach\[C\]//Proceedings of the 24th international conference on Machine learning. ACM, 2007: 129-136. [2]Liu T Y. Learning to rank for information retrieval\[J\]. Foundations and Trends in Information Retrieval, 2009, 3(3): 225-331. [3]Kotsiantis S B, Zaharakis I, Pintelas P. Supervised Machine Learning: A Review of Classification Techniques\[J\]. Emerging Artificial Intelligence Applications in Computer Engineering, 2007, 160: 3-24. [4]Chapelle O, Scholkopf B, Zien A. Semi-supervised Learning (chapelle, o. et al., eds.; 2006)\[J\]. IEEE Transactions on Neural Networks, 2009, 20(3): 542-542. [5]He D, Xia Y, Qin T, et al. Dual learning for machine translation\[C\]//Advances in Neural Information Processing Systems. 2016: 820-828. [6]Hastie T, Tibshirani R, Friedman J. Unsupervised Learning\[M\]//The Elements of Statistical Learning. New York: Springer, 2009: 485-585. [7]Sutton R S, Barto A G. Reinforcement Learning: An Introduction\[M\]. Cambridge: MIT press, 1998. [8]Seber G A F, Lee A J. Linear Regression Analysis\[M\]. John Wiley & Sons, 2012. [9]Harrell F E. Ordinal Logistic Regression\[M\]//Regression modeling strategies. New York: Springer, 2001: 331-343. [10]Cortes C, Vapnik V. Support-Vector Networks\[J\]. Machine Learning, 1995, 20(3): 273-297. [11]Quinlan J R. Induction of Decision Trees\[J\]. Machine Learning, 1986, 1(1): 81-106. [12]McCulloch, Warren; Walter Pitts (1943). 'A Logical Calculus of Ideas Immanent in Nervous Activity' \[EB\]. Bulletin of Mathematical Biophysics. 5(4): 115-133. [13]LeCun Y, Jackel L D, Bottou L, et al. Learning Algorithms for Classification: A Comparison on Handwritten Digit Recognition\[J\]. Neural networks: The Statistical Mechanics Perspective, 1995, 261: 276. [14]Elman J L. Finding structure in time\[J\]. Cognitive Science, 1990, 14(2): 179-211. [15]周志華. 機(jī)器學(xué)習(xí)[M]. 北京:清華大學(xué)出版社,2017. [16]Tom Mitchell. Machine Learning\[M\]. McGraw-Hill, 1997. [17]Nasrabadi N M. Pattern Recognition and Machine Learning\[J\]. Journal of Electronic Imaging, 2007, 16(4): 049901. [18]Voorhees E M. The TREC-8 Question Answering Track Report\[C\]//Trec. 1999, 99: 77-82. [19]Wang Y, Wang L, Li Y, et al. A Theoretical Analysis of Ndcg Type Ranking Measures\[C\]//Conference on Learning Theory. 2013: 25-54. [20]Devroye L, Gyrfi L, Lugosi G. A Probabilistic Theory of Pattern Recognition\[M\]. Springer Science & Business Media, 2013. [21]Breiman L, Friedman J, Olshen R A, et al. Classification and Regression Trees\[J\]. 1984. [22]Quinlan J R. C4. 5: Programs for Machine Learning\[M\]. Morgan Kaufmann, 1993. [23]Iba W, Langley P. Induction of One-level Decision Trees\[J\]//Machine Learning Proceedings 1992. 1992: 233-240. [24]Breiman L. Bagging predictors\[J\]. Machine Learning, 1996, 24(2): 123-140. [25]Schapire R E. The Strength of Weak Learnability\[J\]. Machine Learning, 1990, 5(2): 197-227. [26]Schapire R E, Freund Y, Bartlett P, et al. Boosting the Margin: A New Explanation for The Effectiveness of Voting Methods\[J\]. Annals of Statistics, 1998: 1651-1686. [27]Friedman J H. Greedy Function Approximation: A Gradient Boosting Machine\[J\]. Annals of statistics, 2001: 1189-1232. [28]Gybenko G. Approximation by Superposition of Sigmoidal Functions\[J\]. Mathematics of Control, Signals and Systems, 1989, 2(4): 303-314. [29]Csáji B C. Approximation with Artificial Neural Networks\[J\]. Faculty of Sciences, Etvs Lornd University, Hungary, 2001, 24: 48. [30]Sun S, Chen W, Wang L, et al. On the Depth of Deep Neural Networks: A Theoretical View\[C\]//AAAI. 2016: 2066-2072. [31]Kawaguchi K. Deep Learning Without Poor Local Minima\[C\]//Advances in Neural Information Processing Systems. 2016: 586-594. [32]Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: A Simple Way to Prevent Neural Networks from Overfitting\[J\]. The Journal of Machine Learning Research, 2014, 15(1): 1929-1958. [33]Tanner M A, Wong W H. The Calculation of Posterior Distributions by Data Augmentation\[J\]. Journal of the American statistical Association, 1987, 82(398): 528-540. [34]Ioffe S, Szegedy C. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift\[C\]//International Conference on Machine Learning. 2015: 448-456. [35]Krogh A, Hertz J A. A Simple Weight Decay Can Improve Generalization\[C\]//Advances in neural information processing systems. 1992: 950-957. [36]Prechelt L. Automatic Early Stopping Using Cross Validation: Quantifying the Criteria\[J\]. Neural Networks, 1998, 11(4): 761-767. [37]Bengio Y, Simard P, Frasconi P. Learning Long-term Dependencies with Gradient Descent is Difficult\[J\]. IEEE Transactions on Neural Networks, 1994, 5(2): 157-166. [38]Srivastava R K, Greff K, Schmidhuber J. Highway networks\[J\]. arXiv preprint arXiv:1505.00387, 2015. [39]Lin M, Chen Q, Yan S. Network in Network\[J\]. arXiv preprint arXiv:1312.4400, 2013. [40]He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition\[C\]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 770-778. [41]He K, Zhang X, Ren S, et al. Identity Mappings in Deep Residual Networks\[C\]//European Conference on Computer Vision. Springer, 2016: 630-645. [42]Huang G, Liu Z, Weinberger K Q, et al. Densely Connected Convolutional Networks\[C\]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017, 1(2): 3. [43]Hochreiter S, Schmidhuber J. Long Short-term Memory\[J\]. Neural Computation, 1997, 9(8): 1735-1780. [44]Cho K, Van Merrinboer B, Gulcehre C, et al. Learning Phrase Representations Using RNN Encoder-decoder for Statistical Machine Translation\[J\]. arXiv preprint arXiv:1406.1078, 2014. [45]Cauchy A. Méthode générale pour la résolution des systemes d’équations simultanées\[J\]. Comp. Rend. Sci. Paris, 1847, 25(1847): 536-538. [46]Hestenes M R, Stiefel E. Methods of Conjugate Gradients for Solving Linear Systems\[M\]. Washington, DC: NBS, 1952. [47]Wright S J. Coordinate Descent Algorithms\[J\]. Mathematical Programming, 2015, 151(1): 3-34. [48]Polyak B T. Newton’s Method and Its Use in Optimization\[J\]. European Journal of Operational Research, 2007, 181(3): 1086-1096. [49]Dennis, Jr J E, Moré J J. Quasi-Newton Methods, Motivation and Theory\[J\]. SIAM Review, 1977, 19(1): 46-89. [50]Frank M, Wolfe P. An Algorithm for Quadratic Programming\[J\]. Naval Research Logistics (NRL), 1956, 3(1-2): 95-110. [51]Nesterov, Yurii. A method of solving a convex programming problem with convergence rate O (1/k2)\[J\]. Soviet Mathematics Doklady, 1983, 27(2). [52]Karmarkar N. A New Polynomial-time Algorithm for Linear Programming\[C\]//Proceedings of the Sixteenth Annual ACM Symposium on Theory of Computing. ACM, 1984: 302-311. [53]Geoffrion A M. Duality in Nonlinear Programming: A Simplified Applications-oriented Development\[J\]. SIAM Review, 1971, 13(1): 1-37. [54]Johnson R, Zhang T. Accelerating Stochastic Gradient Descent Using Predictive Variance Reduction\[C\]//Advances in Neural Information Processing Systems. 2013: 315-323. [55]Sutskever I, Martens J, Dahl G, et al. On the Importance of Initialization and Momentum in Deep Learning\[C\]//International Conference on Machine Learning. 2013: 1139-1147. [56]Duchi J, Hazan E, Singer Y. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization\[J\]. Journal of Machine Learning Research, 2011, 12(7): 2121-2159. [57]Tieleman T, Hinton G. Lecture 6.5-rmsprop: Divide the Gradient By a Running Average of Its Recent Magnitude\[J\]. COURSERA: Neural networks for machine learning, 2012, 4(2): 26-31. [58]Zeiler M D. ADADELTA: An Adaptive Learning Rate Method\[J\]. arXiv preprint arXiv:1212.5701, 2012. [59]Kingma D P, Ba J. Adam: A Method for Stochastic Optimization\[J\]. arXiv preprint arXiv:1412.6980, 2014. [60]Reddi S, Kale S, Kumar S. On the Convergence of Adam and Beyond\[C\]// International Conference on Learning Representations, 2018. [61]Hazan E, Levy K Y, Shalev-Shwartz S. On Graduated Optimization for Stochastic Non-convex Problems\[C\]//International Conference on Machine Learning. 2016: 1833-1841. ![]() |
|