一文掌握常用的机器学习模型(免费课程+送书福利)
導讀:人工智能和大數(shù)據(jù)時代,解決最有挑戰(zhàn)性問題的主流方案是分布式機器學習。
近幾年,機器學習在許多領(lǐng)域取得了前所未有的成功,由此也徹底改變了人工智能的發(fā)展方向,引發(fā)了大數(shù)據(jù)時代的到來。其中最富有挑戰(zhàn)性的問題是由分布式機器學習解決的。所以,要了解機器學習究竟能夠帶來什么樣前所未有的新機遇、新突破,就必須了解分布式機器學習。
本文節(jié)選自微軟亞洲研究院機器學習研究團隊劉鐵巖、陳薇、王太峰、高飛合著的《分布式機器學習:算法、理論與實踐》一書。為了讓大家更好地理解分布式機器學習,AI科技大本營聯(lián)合華章科技特別邀請到了本書的作者之一——微軟亞洲研究院副院長劉鐵巖老師進行在線公開課分享,詳情請見文末信息,還有福利哦~~
分布式機器學習并非分布式處理技術(shù)與機器學習的簡單結(jié)合。一方面,它必須考慮機器學習模型構(gòu)成與算法流程本身的特點,否則分布式處理的結(jié)果可能失之毫厘、謬以千里;另一方面,機器學習內(nèi)含的算法隨機性、參數(shù)冗余性等,又會帶來一般分布式處理過程所不具備的、宜于專門利用的便利。
——節(jié)選自周志華老師對該書的推薦語
01 線性模型
線性模型是最簡單的,也是最基本的機器學習模型。其數(shù)學形式如下:g(x;w)=。有時,我們還會在的基礎(chǔ)上額外加入一個偏置項b,不過只要把x擴展出一維常數(shù)分量,就可以把帶偏置項的線性函數(shù)歸并到的形式之中。
線性模型非常簡單明了,參數(shù)的每一維對應(yīng)了相應(yīng)特征維度的重要性。但是很顯然,線性模型也存在一定的局限性。
首先,線性模型的取值范圍是不受限的,依據(jù)w和x的具體取值,它的輸出可以是非常大的正數(shù)或者非常小的負數(shù)。
然而,在進行分類的時候,我們預(yù)期得到的模型輸出是某個樣本屬于正類(如正面評價)的可能性,這個可能性通常是取值在0和1之間的一個概率值。為了解決這二者之間的差距,人們通常會使用一個對數(shù)幾率函數(shù)對線性模型的輸出進行變換,得到如下公式:
經(jīng)過變換,嚴格地講,g(x;w)已經(jīng)不再是一個線性函數(shù),而是由一個線性函數(shù)派生出來的非線性函數(shù),我們通常稱這類函數(shù)為廣義線性函數(shù)。對數(shù)幾率模型本身是一個概率形式,非常適合用對數(shù)似然損失或者交叉熵損失進行訓練。
其次,線性模型只能挖掘特征之間的線性組合關(guān)系,無法對更加復(fù)雜、更加強大的非線性組合關(guān)系進行建模。
為了解決這個問題,我們可以對輸入的各維特征進行一些顯式的非線性預(yù)變換(如單維特征的指數(shù)、對數(shù)、多項式變換,以及多維特征的交叉乘積等),或者采用核方法把原特征空間隱式地映射到一個高維的非線性空間,再在高維空間里構(gòu)建線性模型。
02 核方法與支持向量機
核方法的基本思想是通過一個非線性變換,把輸入數(shù)據(jù)映射到高維的希爾伯特空間中,在這個高維空間里,那些在原始輸入空間中線性不可分的問題變得更加容易解決,甚至線性可分。
支持向量機(Support Vector Machine,SVM)[10]是一類最典型的核方法,下面將以支持向量機為例,對核方法進行簡單的介紹。
支持向量機的基本思想是通過核函數(shù)將原始輸入空間變換成一個高維(甚至是無窮維)的空間,在這個空間里尋找一個超平面,它可以把訓練集里的正例和負例盡最大可能地分開(用更加學術(shù)的語言描述,就是正負例之間的間隔最大化)。
那么如何才能通過核函數(shù)實現(xiàn)空間的非線性映射呢?讓我們從頭談起。
假設(shè)存在一個非線性映射函數(shù)Φ,可以幫我們把原始輸入空間變換成高維非線性空間。我們的目的是在變換后的空間里,尋找一個線性超平面,它能夠把所有正例和負例分開,并且距離該超平面最近的正例和負例之間的間隔最大。這個訴求可以用數(shù)學語言表述如下:
其中,是離超平面最近的正例和負例之間的間隔(如圖2.6所示)。
▲圖2.6 最大化間隔與支持向量機
以上的數(shù)學描述等價于如下的優(yōu)化問題:min12w2
上式中的約束條件要求所有的正例和負例分別位于超平面的兩側(cè)。某些情況下,這種約束可能過強,因為我們所擁有的訓練集有時是不可分的。這時候,就需要引入松弛變量,把上述優(yōu)化問題改寫為:
其實這種新的表述等價于最小化一個加了正則項的Hinge損失函數(shù)。這是因為當小于0的時候,樣本被超平面正確地分到相應(yīng)的類別里,ξi=0;反之,ξi將大于0,且是的上界:最小化ξi就相應(yīng)地最小化了。基于以上討論,其實支持向量機在最小化如下的目標函數(shù):
其中,是正則項,對它的最小化可以限制模型的空間,有效提高模型的泛化能力(也就是使模型在訓練集和測試集上的性能更加接近)。
為了求解上述有約束的優(yōu)化問題,一種常用的技巧是使用拉格朗日乘數(shù)法將其轉(zhuǎn)換成對偶問題進行求解。具體來講,支持向量機對應(yīng)的對偶問題如下:
在對偶空間里,該優(yōu)化問題的描述只與和的內(nèi)積有關(guān),而與映射函數(shù)本身的具體形式無關(guān)。因此,我們只需定義兩個樣本和之間的核函數(shù)k(xi,xj),用以表征其映射到高維空間之后的內(nèi)積即可:
至此,我們弄清楚了核函數(shù)是如何和空間變換發(fā)生聯(lián)系的。核函數(shù)可以有很多不同的選擇,表2.1列出了幾種常用的核函數(shù)。
事實上,只要一個對稱函數(shù)所對應(yīng)的核矩陣滿足半正定的條件,它就能作為核函數(shù)使用,并總能找到一個與之對應(yīng)的空間映射。換言之,任何一個核函數(shù)都隱式地定義了一個“再生核希爾伯特空間”(Reproducing Kernel Hilbert Space,RKHS)。在這個空間里,兩個向量的內(nèi)積等于對應(yīng)核函數(shù)的值。
03 決策樹與Boosting
決策樹也是一類常見的機器學習模型,它的基本思想是根據(jù)數(shù)據(jù)的屬性構(gòu)造出樹狀結(jié)構(gòu)的決策模型。一棵決策樹包含一個根節(jié)點、若干內(nèi)部節(jié)點,以及若干葉子節(jié)點。
葉子節(jié)點對應(yīng)最終的決策結(jié)果,而其他節(jié)點則針對數(shù)據(jù)的某種屬性進行判斷與分支:在這樣的節(jié)點上,會對數(shù)據(jù)的某個屬性(特征)進行檢測,依據(jù)檢測結(jié)果把樣本劃分到該節(jié)點的某棵子樹之中。
通過決策樹,我們可以從根節(jié)點出發(fā),把一個具體的樣本最終分配到某個葉子節(jié)點上,實現(xiàn)相應(yīng)的預(yù)測功能。
因為在每個節(jié)點上的分支操作是非線性的,因此決策樹可以實現(xiàn)比較復(fù)雜的非線性映射。決策樹算法的目的是根據(jù)訓練數(shù)據(jù),學習出一棵泛化能力較強的決策樹,也就是說,它能夠很好地把未知樣本分到正確的葉子節(jié)點上。
為了達到這個目的,我們在訓練過程中構(gòu)建的決策樹不能太復(fù)雜,否則可能會過擬合到訓練數(shù)據(jù)上,而無法正確地處理未知的測試數(shù)據(jù)。常見的決策樹算法包括:分類及回歸樹(CART)[21],ID3算法[11],C4.5算法[22],決策樹樁(Decision Stump)[23]等。
這些算法的基本流程都比較類似,包括劃分選擇和剪枝處理兩個基本步驟。
劃分選擇要解決的問題是如何根據(jù)某種準則在某個節(jié)點上把數(shù)據(jù)集里的樣本分到它的一棵子樹上。常用的準則有:信息增益、增益率、基尼系數(shù)等。其具體數(shù)學形式雖有差別,但是核心思想大同小異。
這里我們就以信息增益為例進行介紹。所謂信息增益,指的是在某個節(jié)點上,用特征j對數(shù)據(jù)集D進行劃分得到的樣本集合的純度提升的程度。信息增益的具體數(shù)學定義如下:
其中,是特征的取值集合,而是特征取值為的那些樣本所組成的子集;Entropy(D)是樣本集合D的信息熵,描述的是D中來自不同類別的樣本的分布情況。
不同類別的樣本分布越平均,則信息熵越大,集合純度越低;相反,樣本分布越集中,則信息熵越小,集合純度越高。樣本劃分的目的是找到使得劃分后平均信息熵變得最小的特征,從而使得信息增益最大。
剪枝處理要解決的問題是抑制過擬合。如果決策樹非常復(fù)雜,每個葉子節(jié)點上只對應(yīng)一個訓練樣本,一定可以實現(xiàn)信息增益最大化,可這樣的后果是對訓練數(shù)據(jù)的過擬合,將導致在測試數(shù)據(jù)上的精度損失。
為了解決這個問題,可以采取剪枝的操作降低決策樹的復(fù)雜度。剪枝處理有預(yù)剪枝和后剪枝之分:預(yù)剪枝指的是在決策樹生成過程中,對每個節(jié)點在劃分前先進行估計,如果當前節(jié)點的劃分不能帶來決策樹泛化性能的提升(通常可以通過一個交叉驗證集來評估泛化能力),則停止劃分并且將當前節(jié)點標記為葉子節(jié)點;后剪枝指的是先從訓練集中生成一棵完整的決策樹,然后自底向上地考察去掉每個節(jié)點(即將該節(jié)點及其子樹合并成為一個葉子節(jié)點)以后泛化能力是否有所提高,若有提高,則進行剪枝。
在某些情況下,由于學習任務(wù)難度大,單棵決策樹的性能會捉襟見肘,這時人們常常會使用集成學習來提升最終的學習能力。集成學習有很多方法,如Bagging[24]、Boosting[25]等。
Boosting的基本思路是先訓練出一個弱學習器,再根據(jù)弱學習器的表現(xiàn)對訓練樣本的分布進行調(diào)整,使得原來弱學習器無法搞定的錯誤樣本在后續(xù)的學習過程中得到更多的關(guān)注,然后再根據(jù)調(diào)整后的樣本分布來訓練下一個弱學習器。
如此循環(huán)往復(fù),直到最終學到的弱學習器的數(shù)目達到預(yù)設(shè)的上限,或者弱學習器的加權(quán)組合能夠達到預(yù)期的精度為止。最終的預(yù)測模型是所有這些弱學習器的加權(quán)求和:
其中,是加權(quán)系數(shù),它既可以在訓練過程中根據(jù)當前弱學習器的準確程度利用經(jīng)驗公式求得,也可以在訓練過程結(jié)束后(各個弱學習器都已經(jīng)訓練好以后),再利用新的學習目標通過額外的優(yōu)化手段求得。
有研究表明Boosting在抵抗過擬合方面有非常好的表現(xiàn),也就是說,隨著訓練過程的推進,即便在訓練集上已經(jīng)把誤差降到0,更多的迭代還是可以提高模型在測試集上的性能。
人們用間隔定理(Margin Theory)[26]來解釋這種現(xiàn)象——隨著迭代進一步推進,雖然訓練集上的誤差已經(jīng)不再變化,但是訓練樣本上的分類置信度(對應(yīng)于每個樣本點上的間隔)卻仍在不斷變大。
到今天為止,Boosting算法,尤其是與決策樹相結(jié)合的算法如梯度提升決策樹(GBDT)[27]仍然在實際應(yīng)用中挑著大梁,是很多數(shù)據(jù)挖掘比賽的奪冠熱門。
04 神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)是一類典型的非線性模型,它的設(shè)計受到生物神經(jīng)網(wǎng)絡(luò)的啟發(fā)。人們通過對大腦生物機理的研究,發(fā)現(xiàn)其基本單元是神經(jīng)元,每個神經(jīng)元通過樹突從上游的神經(jīng)元那里獲取輸入信號,經(jīng)過自身的加工處理后,再通過軸突將輸出信號傳遞給下游的神經(jīng)元。
當神經(jīng)元的輸入信號總和達到一定強度時,就會激活一個輸出信號,否則就沒有輸出信號(如圖2.7a所示)。
▲圖2.7 神經(jīng)元結(jié)構(gòu)與人工神經(jīng)網(wǎng)絡(luò)
這種生物學原理如果用數(shù)學語言進行表達,就如圖2.7b所示。神經(jīng)元對輸入的信號進行線性加權(quán)求和:,然后依據(jù)求和結(jié)果的大小來驅(qū)動一個激活函數(shù)ψ,用以生成輸出信號。生物系統(tǒng)中的激活函數(shù)類似于階躍函數(shù):
但是,由于階躍函數(shù)本身不連續(xù),對于機器學習而言不是一個好的選擇,因此在人們設(shè)計人工神經(jīng)網(wǎng)絡(luò)的時候通常采用連續(xù)的激活函數(shù),比如Sigmoid函數(shù)、雙曲正切函數(shù)(tanh)、校正線性單元(ReLU)等。它們的數(shù)學形式和函數(shù)形狀分別如圖2.8所示。
▲圖2.8 常用的激活函數(shù)
1. 全連接神經(jīng)網(wǎng)絡(luò)
最基本的神經(jīng)網(wǎng)絡(luò)就是把前面描述的神經(jīng)元互相連接起來,形成層次結(jié)構(gòu)(如圖2.9所示),我們稱之為全連接神經(jīng)網(wǎng)絡(luò)。對于圖2.9中這個網(wǎng)絡(luò)而言,最左邊對應(yīng)的是輸入節(jié)點,最右邊對應(yīng)的是輸出節(jié)點,中間的三層節(jié)點都是隱含節(jié)點(我們把相應(yīng)的層稱為隱含層)。
每一個隱含節(jié)點都會把來自上一層節(jié)點的輸出進行加權(quán)求和,再經(jīng)過一個非線性的激活函數(shù),輸出給下一層。而輸出層則一般采用簡單的線性函數(shù),或者進一步使用softmax函數(shù)將輸出變成概率形式。
▲圖2.9 全連接神經(jīng)網(wǎng)絡(luò)
全連接神經(jīng)網(wǎng)絡(luò)雖然看起來簡單,但它有著非常強大的表達能力。早在20世紀80年代,人們就證明了著名的通用逼近定理(Universal Approximation Theorem[28])。
最早的通用逼近定理是針對Sigmoid激活函數(shù)證明的,一般情況下的通用逼近定理在2001年被證明[29]。
其數(shù)學描述是,在激活函數(shù)滿足一定條件的前提下,任意給定輸入空間中的一個連續(xù)函數(shù)和近似精度ε,存在自然數(shù)Nε和一個隱含節(jié)點數(shù)為Nε的單隱層全連接神經(jīng)網(wǎng)絡(luò),對這個連續(xù)函數(shù)的-逼近精度小于ε。
這個定理非常重要,它告訴我們?nèi)B接神經(jīng)網(wǎng)絡(luò)可以用來解決非常復(fù)雜的問題,當其他的模型(如線性模型、支持向量機等)無法逼近這類問題的分類界面時,神經(jīng)網(wǎng)絡(luò)仍然可以所向披靡、得心應(yīng)手。
近年來,人們指出深層網(wǎng)絡(luò)的表達力更強,即表達某些邏輯函數(shù),深層網(wǎng)絡(luò)需要的隱含節(jié)點數(shù)比淺層網(wǎng)絡(luò)少很多[30]。這對于模型存儲和優(yōu)化而言都是比較有利的,因此人們越來越關(guān)注和使用更深層的神經(jīng)網(wǎng)絡(luò)。
全連接神經(jīng)網(wǎng)絡(luò)在訓練過程中常常選取交叉熵損失函數(shù),并且使用梯度下降法來求解模型參數(shù)(實際中為了減少每次模型更新的代價,使用的是小批量的隨機梯度下降法)。
要注意的是,雖然交叉熵損失是個凸函數(shù),但由于多層神經(jīng)網(wǎng)絡(luò)本身的非線性和非凸本質(zhì),損失函數(shù)對于模型參數(shù)而言其實是嚴重非凸的。在這種情況下,使用梯度下降法求解通常只能找到局部最優(yōu)解。為了解決這個問題,人們在實踐中常常采用多次隨機初始化或者模擬退火等技術(shù)來尋找全局意義下更優(yōu)的解。
近年有研究表明,在滿足一定條件時,如果神經(jīng)網(wǎng)絡(luò)足夠深,它的所有局部最優(yōu)解其實都和全局最優(yōu)解具有非常類似的損失函數(shù)值[31]。換言之,對于深層神經(jīng)網(wǎng)絡(luò)而言,“只能找到局部最優(yōu)解”未見得是一個致命的缺陷,在很多時候這個局部最優(yōu)解已經(jīng)足夠好,可以達到非常不錯的實際預(yù)測精度。
除了局部最優(yōu)解和全局最優(yōu)解的憂慮之外,其實關(guān)于使用深層神經(jīng)網(wǎng)絡(luò)還有另外兩個困難。
首先,因為深層神經(jīng)網(wǎng)絡(luò)的表達能力太強,很容易過擬合到訓練數(shù)據(jù)上,導致其在測試數(shù)據(jù)上表現(xiàn)欠佳。為了解決這個問題,人們提出了很多方法,包括DropOut[32]、數(shù)據(jù)擴張(Data Augmentation)[33]、批量歸一化(Batch Normalization)[34]、權(quán)值衰減(Weight Decay)[35]、提前終止(Early Stopping)[36]等,通過在訓練過程中引入隨機性、偽訓練樣本或限定模型空間來提高模型的泛化能力。
其次,當網(wǎng)絡(luò)很深時,輸出層的預(yù)測誤差很難順利地逐層傳遞下去,從而使得靠近輸入層的那些隱含層無法得到充分的訓練。這個問題又稱為“梯度消減”問題\[37\]。研究表明,梯度消減主要是由神經(jīng)網(wǎng)絡(luò)的非線性激活函數(shù)帶來的,因為非線性激活函數(shù)導數(shù)的模都不太大,在使用梯度下降法進行優(yōu)化的時候,非線性激活函數(shù)導數(shù)的逐層連乘會出現(xiàn)在梯度的計算公式中,從而使梯度的幅度逐層減小。為了解決這個問題,人們在跨層之間引入了線性直連,或者由門電路控制的線性通路[38],以期為梯度信息的順利回傳提供便利。
2. 卷積神經(jīng)網(wǎng)絡(luò)
除了全連接神經(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è)計是受生物視覺系統(tǒng)的啟發(fā)。研究表明每個視覺細胞只對于局部的小區(qū)域敏感,而大量視覺細胞平鋪在視野中,可以很好地利用自然圖像的空間局部相關(guān)性。
與此類似,卷積神經(jīng)網(wǎng)絡(luò)也引入局部連接的概念,并且在空間上平鋪具有同樣參數(shù)結(jié)構(gòu)的濾波器(也稱為卷積核)。這些濾波器之間有很大的重疊區(qū)域,相當于有個空域滑窗,在滑窗滑到不同空間位置時,對這個窗內(nèi)的信息使用同樣的濾波器進行分析。
這樣雖然網(wǎng)絡(luò)很大,但是由于不同位置的濾波器共享參數(shù),其實模型參數(shù)的個數(shù)并不多,參數(shù)效率很高。
圖2.10描述了一個2×2的卷積核將輸入圖像進行卷積的例子。所謂卷積就是卷積核的各個參數(shù)和圖像中空間位置對應(yīng)的像素值進行點乘再求和。
經(jīng)過了卷積操作之后,會得到一個和原圖像類似大小的新圖層,其中的每個點都是卷積核在某空間局部區(qū)域的作用結(jié)果(可能對應(yīng)于提取圖像的邊緣或抽取更加高級的語義信息)。
我們通常稱這個新圖層為特征映射(feature map)。對于一幅圖像,可以在一個卷積層里使用多個不同的卷積核,從而形成多維的特征映射;還可以把多個卷積層級聯(lián)起來,不斷抽取越來越復(fù)雜的語義信息。
▲圖2.10 卷積過程示意圖
除了卷積以外,池化也是卷積神經(jīng)網(wǎng)絡(luò)的重要組成部分。池化的目的是對原特征映射進行壓縮,從而更好地體現(xiàn)圖像識別的平移不變性,并且有效擴大后續(xù)卷積操作的感受野。
池化與卷積不同,一般不是參數(shù)化的模塊,而是用確定性的方法求出局部區(qū)域內(nèi)的平均值、中位數(shù),或最大值、最小值(近年來,也有一些學者開始研究參數(shù)化的池化算子[39])。圖2.11描述了對圖像局部進行2×2的最大值池化操作后的效果。
▲圖2.11 池化操作示意圖
在實際操作中,可以把多個卷積層和多個池化層交替級聯(lián),從而實現(xiàn)從原始圖像中不斷抽取高層語義特征的目的。在此之后,還可以再級聯(lián)一個全連接網(wǎng)絡(luò),在這些高層語義特征的基礎(chǔ)上進行模式識別或預(yù)測。這個過程如圖2.12所示。
▲圖2.12 多層卷積神經(jīng)網(wǎng)絡(luò)(N1,N2,N3表示對應(yīng)單元重復(fù)的次數(shù))
實踐中,人們開始嘗試使用越來越深的卷積神經(jīng)網(wǎng)絡(luò),以達到越來越好的圖像分類效果。圖2.13描述了近年來人們在ImageNet數(shù)據(jù)集上不斷通過增加網(wǎng)絡(luò)深度刷新錯誤率的歷程。
其中2015年來自微軟研究院的深達152層的ResNet網(wǎng)絡(luò)[40],在ImageNet數(shù)據(jù)集上取得了低達3.57%的Top-5錯誤率,在特定任務(wù)上超越了普通人類的圖像識別能力。
▲圖2.13 卷積神經(jīng)網(wǎng)絡(luò)不斷刷新ImageNet數(shù)據(jù)集的識別結(jié)果
▲圖2.14殘差學習
隨著卷積神經(jīng)網(wǎng)絡(luò)變得越來越深,前面提到的梯度消減問題也隨之變得越來越顯著,給模型的訓練帶來了很大難度。為了解決這個問題,近年來人們提出了一系列的方法,包括殘差學習[40-41](如圖2.14所示)、高密度網(wǎng)絡(luò)[42](如圖2.15所示)等。
實驗表明:這些方法可以有效地把訓練誤差傳遞到靠近輸入層的地方,為深層卷積神經(jīng)網(wǎng)絡(luò)的訓練奠定了堅實的實踐基礎(chǔ)。
▲圖2.15 高密度網(wǎng)絡(luò)
3. 循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[14]的設(shè)計也有很強的仿生學基礎(chǔ)。我們可以聯(lián)想一下自己如何讀書看報。當我們閱讀一個句子時,不會單純地理解當前看到的那個字本身,相反我們之前讀到的文字會在腦海里形成記憶,而這些記憶會幫助我們更好地理解當前看到的文字。
這個過程是遞歸的,我們在看下一個文字時,當前文字和歷史記憶又會共同成為我們新的記憶,并對我們理解下一個文字提供幫助。其實,循環(huán)神經(jīng)網(wǎng)絡(luò)的設(shè)計基本就是依照這個思想。
我們用表示在時刻的記憶,它是由t時刻看到的輸入和時刻的記憶st-1共同作用產(chǎn)生的。這個過程可以用下式加以表示:
很顯然,這個式子里蘊含著對于記憶單元的循環(huán)迭代。在實際應(yīng)用中,無限長時間的循環(huán)迭代并沒有太大意義。比如,當我們閱讀文字的時候,每個句子的平均長度可能只有十幾個字。
因此,我們完全可以把循環(huán)神經(jīng)網(wǎng)絡(luò)在時域上展開,然后在展開的網(wǎng)絡(luò)上利用梯度下降法來求得參數(shù)矩陣U、W、V,如圖2.16所示。用循環(huán)神經(jīng)網(wǎng)絡(luò)的術(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ò)類似,當循環(huán)神經(jīng)網(wǎng)絡(luò)時域展開以后,也會遇到梯度消減的問題。為了解決這個問題,人們提出了一套依靠門電路來控制信息流通的方法。
也就是說,在循環(huán)神經(jīng)網(wǎng)絡(luò)的兩層之間同時存在線性和非線性通路,而哪個通路開、哪個通路關(guān)或者多大程度上開關(guān)則由一組門電路來控制。
這個門電路也是帶參數(shù)并且這些參數(shù)在神經(jīng)網(wǎng)絡(luò)的優(yōu)化過程中是可學習的。比較著名的兩類方法是LSTM[43]和GRU[44](如圖2.17所示)。GRU相比LSTM更加簡單一些,LSTM有三個門電路(輸入門、忘記門、輸出門),而GRU則有兩個門電路(重置門、更新門),二者在實際中的效果類似,但GRU的訓練速度要快一些,因此近年來有變得更加流行的趨勢。
▲圖2.17 循環(huán)神經(jīng)網(wǎng)絡(luò)中的門電路
循環(huán)神經(jīng)網(wǎng)絡(luò)可以對時間序列進行有效建模,根據(jù)它所處理的序列的不同情況,可以把循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用場景分為點到序列、序列到點和序列到序列等類型(如圖2.18所示)。
▲圖2.18 循環(huán)神經(jīng)網(wǎng)絡(luò)的不同應(yīng)用
下面分別介紹幾種循環(huán)神經(jīng)網(wǎng)絡(luò)的應(yīng)用場景。
(1)圖像配文字:點到序列的循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用
在這個應(yīng)用中,輸入的是圖像的編碼信息(可以通過卷積神經(jīng)網(wǎng)絡(luò)的中間層獲得,也可以直接采用卷積神經(jīng)網(wǎng)絡(luò)預(yù)測得到的類別標簽),輸出則是靠循環(huán)神經(jīng)網(wǎng)絡(luò)來驅(qū)動產(chǎn)生的一句自然語言文本,用以描述該圖像包含的內(nèi)容。
(2)情感分類:序列到點的循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用
在這個應(yīng)用中,輸入的是一段文本信息(時序序列),而輸出的是情感分類的標簽(正向情感或反向情感)。循環(huán)神經(jīng)網(wǎng)絡(luò)用于分析輸入的文本,其隱含節(jié)點包含了整個輸入語句的編碼信息,再通過一個全連接的分類器把該編碼信息映射到合適的情感類別之中。
(3)機器翻譯:序列到序列的循環(huán)神經(jīng)網(wǎng)絡(luò)應(yīng)用
在這個應(yīng)用中,輸入的是一個語言的文本(時序序列),而輸出的則是另一個語言的文本(時序序列)。循環(huán)神經(jīng)網(wǎng)絡(luò)在這個應(yīng)用中被使用了兩次:第一次是用來對輸入的源語言文本進行分析和編碼;而第二次則是利用這個編碼信息驅(qū)動輸出目標語言的一段文本。
在使用序列到序列的循環(huán)神經(jīng)網(wǎng)絡(luò)實現(xiàn)機器翻譯時,在實踐中會遇到一個問題。
輸出端翻譯結(jié)果中的某個詞其實對于輸入端各個詞匯的依賴程度是不同的,通過把整個輸入句子編碼到一個向量來驅(qū)動輸出的句子,會導致信息粒度太粗糙,或者長線的依賴關(guān)系被忽視。為了解決這個問題,人們在標準的序列到序列循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上引入了所謂“注意力機制”。在它的幫助下,輸出端的每個詞的產(chǎn)生會利用到輸入端不同詞匯的編碼信息。
而這種注意力機制也是帶參數(shù)的,可以在整個循環(huán)神經(jīng)網(wǎng)絡(luò)的訓練過程中自動習得。
神經(jīng)網(wǎng)絡(luò)尤其是深層神經(jīng)網(wǎng)絡(luò)是一個高速發(fā)展的研究領(lǐng)域。隨著整個學術(shù)界和工業(yè)界的持續(xù)關(guān)注,這個領(lǐng)域比其他的機器學習領(lǐng)域獲得了更多的發(fā)展機會,不斷有新的網(wǎng)絡(luò)結(jié)構(gòu)或優(yōu)化方法被提出。如果讀者對于這個領(lǐng)域感興趣,請關(guān)注每年發(fā)表在機器學習主流學術(shù)會議上的最新論文。
參考文獻
[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]周志華. 機器學習[M]. 北京:清華大學出版社,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.
想要獲得這本書,可參加AI科技大本營在線公開課,將在公開課微信群中抽出5名用戶送出《分布式機器學習:算法、理論與實踐》一書(添加小助手微信csdnai,回復(fù):機器學習,加入課程交流群)
公開課介紹:
嘉賓:劉鐵巖
主題:推進機器學習發(fā)展:技術(shù)前沿與未來展望
時間:11月29日20-21點
嘉賓簡介:
劉鐵巖,博士,人工智能領(lǐng)域國際知名學者。現(xiàn)任微軟亞洲研究院副院長,IEEE會士,ACM杰出會員,美國卡內(nèi)基梅隆大學客座教授,英國諾丁漢大學榮譽教授,中國科技大學教授、博導。在AI領(lǐng)域發(fā)表論文200余篇。最新著作《分布式機器學習》現(xiàn)已出版。
總結(jié)
以上是生活随笔為你收集整理的一文掌握常用的机器学习模型(免费课程+送书福利)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++20 要来了!
- 下一篇: 39个史诗级奇葩代码注释,程序不会崩,但