機器學習常用模型


(原作:MSRA劉鐵岩著《分布式機器學習:算法、理論與實踐》。這一部分敘述很清晰,適合用於系統整理NN知識)

 

線性模型

線性模型是最簡單的,也是最基本的機器學習模型。其數學形式如下:g(X;W)=WTX。有時,我們還會在WTX的基礎上額外加入一個偏置項b,不過只要把X擴展出一維常數分量,就可以把帶偏置項的線性函數歸並到WTX的形式之中。線性模型非常簡單明了,參數的每一維對應了相應特征維度的重要性。但是很顯然,線性模型也存在一定的局限性。

 

首先,線性模型的取值范圍是不受限的,依據w和x的具體取值,它的輸出可以是非常大的正數或者非常小的負數。然而,在進行分類的時候,我們預期得到的模型輸出是某個樣本屬於正類(如正面評價)的可能性,這個可能性通常是取值在0和1之間的一個概率值。為了解決這二者之間的差距,人們通常會使用一個對數幾率函數對線性模型的輸出進行變換,得到如下公式:

  

經過變換,嚴格地講,g(x;w)已經不再是一個線性函數,而是由一個線性函數派生出來的非線性函數,我們通常稱這類函數為廣義線性函數。對數幾率模型本身是一個概率形式,非常適合用對數似然損失或者交叉熵損失進行訓練。

 

其次,線性模型只能挖掘特征之間的線性組合關系,無法對更加復雜、更加強大的非線性組合關系進行建模。為了解決這個問題,我們可以對輸入的各維特征進行一些顯式的非線性預變換(如單維特征的指數、對數、多項式變換,以及多維特征的交叉乘積等),或者采用核方法把原特征空間隱式地映射到一個高維的非線性空間,再在高維空間里構建線性模型。

 

核方法與支持向量機

 

決策樹與Boosting

 

神經網絡

神經網絡是一類典型的非線性模型,它的設計受到生物神經網絡的啟發。人們通過對大腦生物機理的研究,發現其基本單元是神經元,每個神經元通過樹突從上游的神經元那里獲取輸入信號,經過自身的加工處理后,再通過軸突將輸出信號傳遞給下游的神經元。當神經元的輸入信號總和達到一定強度時,就會激活一個輸出信號,否則就沒有輸出信號(如圖2.7a所示)。

 

圖2.7 神經元結構與人工神經網絡

 

這種生物學原理如果用數學語言進行表達,就如圖2.7b所示。神經元對輸入的信號進行線性加權求和,然后依據求和結果的大小來驅動一個激活函數ψ,用以生成輸出信號。生物系統中的激活函數類似於階躍函數:

 

但是,由於階躍函數本身不連續,對於機器學習而言不是一個好的選擇,因此在人們設計人工神經網絡的時候通常采用連續的激活函數,比如Sigmoid函數、雙曲正切函數(tanh)、校正線性單元(ReLU)等。它們的數學形式和函數形狀分別如圖2.8所示。

圖2.8 常用的激活函數

 

1.全連接神經網絡

最基本的神經網絡就是把前面描述的神經元互相連接起來,形成層次結構(如圖2.9所示),我們稱之為全連接神經網絡。對於圖2.9中這個網絡而言,最左邊對應的是輸入節點,最右邊對應的是輸出節點,中間的三層節點都是隱含節點(我們把相應的層稱為隱含層)。每一個隱含節點都會把來自上一層節點的輸出進行加權求和,再經過一個非線性的激活函數,輸出給下一層。而輸出層則一般采用簡單的線性函數,或者進一步使用softmax函數將輸出變成概率形式。

 

圖2.9 全連接神經網絡

 

全連接神經網絡雖然看起來簡單,但它有着非常強大的表達能力。早在20世紀80年代,人們就證明了著名的通用逼近定理(Universal Approximation Theorem[28])。最早的通用逼近定理是針對Sigmoid激活函數證明的,一般情況下的通用逼近定理在2001年被證明[29]。其數學描述是,在激活函數滿足一定條件的前提下,任意給定輸入空間中的一個連續函數和近似精度ε,存在自然數Nε和一個隱含節點數為Nε的單隱層全連接神經網絡,對這個連續函數的L-逼近精度小於ε。這個定理非常重要,它告訴我們全連接神經網絡可以用來解決非常復雜的問題,當其他的模型(如線性模型、支持向量機等)無法逼近這類問題的分類界面時,神經網絡仍然可以所向披靡、得心應手。近年來,人們指出深層網絡的表達力更強,即表達某些邏輯函數,深層網絡需要的隱含節點數比淺層網絡少很多[30]。這對於模型存儲和優化而言都是比較有利的,因此人們越來越關注和使用更深層的神經網絡。

 

全連接神經網絡在訓練過程中常常選取交叉熵損失函數,並且使用梯度下降法來求解模型參數(實際中為了減少每次模型更新的代價,使用的是小批量的隨機梯度下降法)。要注意的是,雖然交叉熵損失是個凸函數,但由於多層神經網絡本身的非線性和非凸本質,損失函數對於模型參數而言其實是嚴重非凸的。在這種情況下,使用梯度下降法求解通常只能找到局部最優解。為了解決這個問題,人們在實踐中常常采用多次隨機初始化或者模擬退火等技術來尋找全局意義下更優的解。近年有研究表明,在滿足一定條件時,如果神經網絡足夠深,它的所有局部最優解其實都和全局最優解具有非常類似的損失函數值[31]。換言之,對於深層神經網絡而言,“只能找到局部最優解”未見得是一個致命的缺陷,在很多時候這個局部最優解已經足夠好,可以達到非常不錯的實際預測精度。

 

除了局部最優解和全局最優解的憂慮之外,其實關於使用深層神經網絡還有另外兩個困難。

 

  • 首先,因為深層神經網絡的表達能力太強,很容易過擬合到訓練數據上,導致其在測試數據上表現欠佳。為了解決這個問題,人們提出了很多方法,包括DropOut[32]、數據擴張(Data Augmentation)[33]、批量歸一化(Batch Normalization)[34]、權值衰減(Weight Decay)[35]、提前終止(Early Stopping)[36]等,通過在訓練過程中引入隨機性、偽訓練樣本或限定模型空間來提高模型的泛化能力。

     

  • 其次,當網絡很深時,輸出層的預測誤差很難順利地逐層傳遞下去,從而使得靠近輸入層的那些隱含層無法得到充分的訓練。這個問題又稱為“梯度消減”問題[37]。研究表明,梯度消減主要是由神經網絡的非線性激活函數帶來的,因為非線性激活函數導數的模都不太大,在使用梯度下降法進行優化的時候,非線性激活函數導數的逐層連乘會出現在梯度的計算公式中,從而使梯度的幅度逐層減小。為了解決這個問題,人們在跨層之間引入了線性直連,或者由門電路控制的線性通路[38],以期為梯度信息的順利回傳提供便利。

2.卷積神經網絡

除了全連接神經網絡以外,卷積神經網絡(Convolutional Neural Network,CNN)[13]也是十分常用的網絡結構,尤其適用於處理圖像數據。

 

卷積神經網絡的設計是受生物視覺系統的啟發。研究表明每個視覺細胞只對於局部的小區域敏感,而大量視覺細胞平鋪在視野中,可以很好地利用自然圖像的空間局部相關性。與此類似,卷積神經網絡也引入局部連接的概念,並且在空間上平鋪具有同樣參數結構的濾波器(也稱為卷積核)。這些濾波器之間有很大的重疊區域,相當於有個空域滑窗,在滑窗滑到不同空間位置時,對這個窗內的信息使用同樣的濾波器進行分析。這樣雖然網絡很大,但是由於不同位置的濾波器共享參數,其實模型參數的個數並不多,參數效率很高。

 

圖2.10描述了一個2×2的卷積核將輸入圖像進行卷積的例子。所謂卷積就是卷積核的各個參數和圖像中空間位置對應的像素值進行點乘再求和。經過了卷積操作之后,會得到一個和原圖像類似大小的新圖層,其中的每個點都是卷積核在某空間局部區域的作用結果(可能對應於提取圖像的邊緣或抽取更加高級的語義信息)。我們通常稱這個新圖層為特征映射(feature map)。對於一幅圖像,可以在一個卷積層里使用多個不同的卷積核,從而形成多維的特征映射;還可以把多個卷積層級聯起來,不斷抽取越來越復雜的語義信息。

 

圖2.10 卷積過程示意圖

 

除了卷積以外,池化也是卷積神經網絡的重要組成部分。池化的目的是對原特征映射進行壓縮,從而更好地體現圖像識別的平移不變性,並且有效擴大后續卷積操作的感受野。池化與卷積不同,一般不是參數化的模塊,而是用確定性的方法求出局部區域內的平均值、中位數,或最大值、最小值(近年來,也有一些學者開始研究參數化的池化算子[39])。圖2.11描述了對圖像局部進行2×2的最大值池化操作后的效果。

 

圖2.11 池化操作示意圖

 

在實際操作中,可以把多個卷積層和多個池化層交替級聯,從而實現從原始圖像中不斷抽取高層語義特征的目的。在此之后,還可以再級聯一個全連接網絡,在這些高層語義特征的基礎上進行模式識別或預測。這個過程如圖2.12所示。

 

圖2.12 多層卷積神經網絡(N1,N2,N3表示對應單元重復的次數)

 

實踐中,人們開始嘗試使用越來越深的卷積神經網絡,以達到越來越好的圖像分類效果。圖2.13描述了近年來人們在ImageNet數據集上不斷通過增加網絡深度刷新錯誤率的歷程。其中2015年來自微軟研究院的深達152層的ResNet網絡[40],在ImageNet數據集上取得了低達3.57%的Top-5錯誤率,在特定任務上超越了普通人類的圖像識別能力。

 

圖2.13 卷積神經網絡不斷刷新ImageNet數據集的識別結果

 

圖2.14殘差學習

 

隨着卷積神經網絡變得越來越深,前面提到的梯度消減問題也隨之變得越來越顯著,給模型的訓練帶來了很大難度。為了解決這個問題,近年來人們提出了一系列的方法,包括殘差學習[40-41](如圖2.14所示)、高密度網絡[42](如圖2.15所示)等。實驗表明:這些方法可以有效地把訓練誤差傳遞到靠近輸入層的地方,為深層卷積神經網絡的訓練奠定了堅實的實踐基礎。

 

圖2.15 高密度網絡

 

3.循環神經網絡

循環神經網絡(Recurrent Neural Network,RNN)[14]的設計也有很強的仿生學基礎。我們可以聯想一下自己如何讀書看報。當我們閱讀一個句子時,不會單純地理解當前看到的那個字本身,相反我們之前讀到的文字會在腦海里形成記憶,而這些記憶會幫助我們更好地理解當前看到的文字。這個過程是遞歸的,我們在看下一個文字時,當前文字和歷史記憶又會共同成為我們新的記憶,並對我們理解下一個文字提供幫助。其實,循環神經網絡的設計基本就是依照這個思想。我們用表示在時刻的記憶,它是由t時刻看到的輸入時刻的記憶st-1共同作用產生的。這個過程可以用下式加以表示:

 

 

很顯然,這個式子里蘊含着對於記憶單元的循環迭代。在實際應用中,無限長時間的循環迭代並沒有太大意義。比如,當我們閱讀文字的時候,每個句子的平均長度可能只有十幾個字。因此,我們完全可以把循環神經網絡在時域上展開,然后在展開的網絡上利用梯度下降法來求得參數矩陣U、W、V,如圖2.16所示。用循環神經網絡的術語,我們稱之為時域反向傳播(Back Propagation Through Time,BPTT)。

 

圖2.16 循環神經網絡的展開

 

和全連接神經網絡、卷積神經網絡類似,當循環神經網絡時域展開以后,也會遇到梯度消減的問題。為了解決這個問題,人們提出了一套依靠門電路來控制信息流通的方法。也就是說,在循環神經網絡的兩層之間同時存在線性和非線性通路,而哪個通路開、哪個通路關或者多大程度上開關則由一組門電路來控制。這個門電路也是帶參數並且這些參數在神經網絡的優化過程中是可學習的。比較著名的兩類方法是LSTM[43]和GRU[44](如圖2.17所示)。GRU相比LSTM更加簡單一些,LSTM有三個門電路(輸入門、忘記門、輸出門),而GRU則有兩個門電路(重置門、更新門),二者在實際中的效果類似,但GRU的訓練速度要快一些,因此近年來有變得更加流行的趨勢。

 

圖2.17 循環神經網絡中的門電路

 

循環神經網絡可以對時間序列進行有效建模,根據它所處理的序列的不同情況,可以把循環神經網絡的應用場景分為點到序列、序列到點和序列到序列等類型(如圖2.18所示)。

 

圖2.18 循環神經網絡的不同應用

 

下面分別介紹幾種循環神經網絡的應用場景。

 

(1)圖像配文字:點到序列的循環神經網絡應用

 

在這個應用中,輸入的是圖像的編碼信息(可以通過卷積神經網絡的中間層獲得,也可以直接采用卷積神經網絡預測得到的類別標簽),輸出則是靠循環神經網絡來驅動產生的一句自然語言文本,用以描述該圖像包含的內容。

 

(2)情感分類:序列到點的循環神經網絡應用

 

在這個應用中,輸入的是一段文本信息(時序序列),而輸出的是情感分類的標簽(正向情感或反向情感)。循環神經網絡用於分析輸入的文本,其隱含節點包含了整個輸入語句的編碼信息,再通過一個全連接的分類器把該編碼信息映射到合適的情感類別之中。

 

(3)機器翻譯:序列到序列的循環神經網絡應用

 

在這個應用中,輸入的是一個語言的文本(時序序列),而輸出的則是另一個語言的文本(時序序列)。循環神經網絡在這個應用中被使用了兩次:第一次是用來對輸入的源語言文本進行分析和編碼;而第二次則是利用這個編碼信息驅動輸出目標語言的一段文本。

 

在使用序列到序列的循環神經網絡實現機器翻譯時,在實踐中會遇到一個問題。輸出端翻譯結果中的某個詞其實對於輸入端各個詞匯的依賴程度是不同的,通過把整個輸入句子編碼到一個向量來驅動輸出的句子,會導致信息粒度太粗糙,或者長線的依賴關系被忽視。為了解決這個問題,人們在標准的序列到序列循環神經網絡的基礎上引入了所謂“注意力機制”。在它的幫助下,輸出端的每個詞的產生會利用到輸入端不同詞匯的編碼信息。而這種注意力機制也是帶參數的,可以在整個循環神經網絡的訓練過程中自動習得。

 

神經網絡尤其是深層神經網絡是一個高速發展的研究領域。隨着整個學術界和工業界的持續關注,這個領域比其他的機器學習領域獲得了更多的發展機會,不斷有新的網絡結構或優化方法被提出。如果讀者對於這個領域感興趣,請關注每年發表在機器學習主流學術會議上的最新論文。

 

參考文獻:

[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, Gyrfi 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 Merrinboer 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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM