深度学习概论
深度學習
?
一、深度學習出現的原因、時間及研究現狀
機器學習是人工智能的一個分支,而在很多時候幾乎成為人工智能的代名詞。簡單來說,機器學習就是通過算法使得機器能從大量歷史數據中學習規律,從而對新的樣本做智能識別或對未來做預測。從20世紀80年代末期以來,機器學習的發展大致經歷了兩次浪潮:淺層學習(shallow learning)和深度學習(deep learning)。
1.1深度學習興起的淵源及時間
深度學習起源于對神經網絡的研究,20世紀60年代,受神經科學對人腦結構研究的啟發,為了讓機器也具有類似人一樣的智能,人工神經網絡被提出用于模擬人腦處理數據的流程。最著名的學習算法稱為感知機。但隨后人們發現,兩層結構的感知機模型不包含隱層單元,輸入是人工預先選擇好的特征,輸出是預測的分類結果,因此只能用于學習固定特征的線性函數,而無法處理非線性分類問題。Minsky等指出了感知機的這一局限,由于當時其他人工智能研究學派的抵觸等原因,使得對神經網絡的研究遭受到巨大的打擊,陷入低谷。直到20世紀80年代中期,反向傳播算法(back propogation,BP)的提出,提供了一條如何學習含有多隱層結構的神經網絡模型的途徑,讓神經網絡研究得以復蘇。
由于增加了隱層單元,多層神經網絡比感知機具有更靈活且更豐富的表達力,可以用于建立更復雜的數學模型,但同時也增加了模型學習的難度,特別是當包含的隱層數量增加的時候,使用BP算法訓練網絡模型時,常常會陷入局部最小值,而在計算每層節點梯度時,在網絡低層方向會出現梯度衰竭的現象。因此,訓練含有許多隱層的深度神經網絡一直存在困難,導致神經網絡模型的深度受到限制,制約了其性能。
2006年之前,大多數機器學習仍然在探索淺層結構(Shallow- structured)架構,這種架構上包含了一層典型的非線性特征變換的單層,而缺乏自適應非線性特征的多層結構。如常規的隱馬爾科夫模型(HMM),線性或非線性動態系統,條件隨機域(CRFs),最大熵(Max-Entropy)模型,支持向量機(SVM),邏輯回歸,內核回歸和具有單層隱含層的多層感知器(MLP)神經網絡。這些淺層學習模型有一個常見屬性,就是由僅有的單層組成的簡單架構負責轉換原始輸入信號或輸入特征為特定問題特征空間時,其過程不可觀察。以支持向量機為例,它是一種淺層線性獨立模型,當使用內核技巧時具有一層特征轉換層,否則具有零層特征轉換層。淺層架構在許多簡單或受限問題中,早已被證明卓有成效,但是由于它們的有限建模與表現能力,導致在處理涉及自然信號如人的講話,自然的聲音和語言,自然的圖像和視覺場景等更為復雜的現實應用時,產生了困難。
在實際應用中,例如對象分類問題(對象可是文檔、圖像、音頻等),人們不得不面對的一個是問題是如何用數據來表示這個對象,當然這里的數據并非初始的像素或者文字,也就是這些數據是比初始數據具有更為高層的含義,這里的數據往往指的是對象的特征。例如人們常常將文檔、網頁等數據用詞的集合來表示,根據文檔的詞集合表示到一個詞組短語的向量空間(vector space model, VSM模型)中,然后才能根據不同的學習方法設計出適用的分類器來對目標對象進行分類。因此,選取什么特征或者用什么特征來表示某一對象對于解決一個實際問題非常的重要。然而,人為地選取特征的時間代價是非常昂貴,另外勞動成本也高,而所謂的啟發式的算法得到的結果往往不穩定,結果好壞經常是依靠經驗和運氣。于是,人們考慮到自動學習來完成特征抽取這一任務。深度學習(Deep Learning)[1]的產生就是緣于此任務,它又被稱為無監督的特征學習(Unsupervised Feature Learning),從這個名稱就可以知道這是一個沒有人為參與的特征選取方法。
深度結構學習,或者通常更多人稱之為深度學習(Deep Learning),從 2006 年開始作為一個新興的領域出現在機器學習研究當中。深度學習(DeepLearning)的概念是2006年左右由GeoffreyHinton等人在《Science》上發表的一篇文章《Reducing the dimensionality of data with neural networks》提出來的,開啟了深度學習在學術界和工業界的浪潮。這篇文章有兩個主要觀點:1)多隱層的人工神經網絡具有優異的特征學習能力,學習得到的特征對數據有更本質的刻畫,從而有利于可視化或分類;2)深度神經網絡在訓練上的難度,可以通過“逐層初始化”(layer-wise pre-training)來有效克服,在這篇文章中,逐層初始化是通過無監督學習實現的。2006年的另外3篇論文[2-4]改變了訓練深度架構失敗的狀況,由Hinton的革命性的在深度置信網(Deep Belief Networks,DBNs)上的工作所引領。
1.2國內外研究現狀
盡管專家們研究了很多年深層神經網絡算法分析,但進展并不十分順利。研究者對于通常意義下的隱含層是二層或三層的實驗結果有了比較好的進展,但是對于訓練更深層隱含層的神經網絡卻得到了比較差的結果。
在無監督預訓練出現之前,訓練深度神經網絡通常非常困難,而其中一個特例是卷積神經網絡。卷積神經網絡受視覺系統的結構啟發而產生。第一個卷積神經網絡計算模型是Fukushima[5]于1980年在神經認知機中提出的,基于神經元之間的局部連接和分層組織圖像轉換,將有相同參數的神經元應用于前一層神經網絡的不同位置,得到一種平移不變神經網絡結構形式。后來,LeCun等人[6,7]在該思想的基礎上,分別在1989年和1998年用誤差梯度設計并訓練卷積神經網絡,在一些模式識別任務上得到優越的性能。至今,基于卷積神經網絡的模式識別系統是最好的實現系統之一,尤其在手寫體字符識別任務上表現出非凡的性能。
1986年,Hinton,Sejnowsky, Rumelhart等人在Hopfield網絡中加入隨機機制,提出了玻爾茲曼機[8],這種模型與真實空間相對應,方便理解,但由于模型學習過程容易發散,因此算法往往并不收斂。同年,Hinton和Smolensk等人又提出了受限制玻爾茲曼機(Restricted Boltzmann Machine, RBM),這種模型僅有可見節點與隱藏節點的連接,相同節點彼此獨立,因此,算法比較高效[9]。
2000年,Hinton提出了對比散度(Contrastive Divergence, CD)的學習算法[10],它的優點就在于,該算法使用了一個近似概率分布的差異度量對比散度[11]。對比散度在進行學習時十分高效,比如,馬爾可夫隨機領域(MarkovRandom Fields, MRF)、RBM模型等[12]。
2006 年,Hinton 提出了深度置信網絡(Deep Belief Nets,DBN)模型及其無監督學習算法,即基于層疊的 RBM 深度信念網絡的學習算法[2]。這種算法的過程就是,一個深度學習網絡模型可以看成是由若干個 RBM 堆疊在一起,而訓練學習的過程,就是由低層到高層,無監督地逐步訓練這些 RBM,其中,每一個 RBM 都可以通過 CD 算法來進行快速訓練。所以,整個深度學習網絡的訓練過程就轉化為對多個 RBM 的訓練學習的問題,而直接繞過了從整體上進行訓練的高度復雜性。這種通過 RBM 算法而訓練生成的網絡在它的頂層是無方向連接的,然后在它下邊的所有低層的方向全是向下的。在進行了分層的 RBM 算法之后,通過神經網絡的學習算法再對網絡進行參數的微調,從而使整個深度學習網絡收斂到一個局部最優點上。這兩種方法的結合,本質上即是,先通過逐層地通過 RBM 法使網絡模型獲得一個較優的初始值,再進行進一步地傳統訓練,這樣做的優點就是,既解決了網絡整體的時間復雜度低的問題,又避免了傳統方法易陷入局部最優解的問題,同時,獲得了不錯的初始參數值和最終的效果較好的參數值[12]。
2008 年,Tieleman 提出了隨機極大似然(Stochastic Maximum Likelihood, SML)算法,即連續對比散度(Persistent Contrastive Divergence, PCD)算法[13],這個算法非常重要,因為它不僅修正了 CD 算法極大似然度的缺點,而且保證了極大似然數的學習,基于 PCD 的 RBM 算法比原來的 CD算法更加高效。
2009 年,Tieleman 提出了增加一組額外的參數來學習 PCD 的算法,即馬爾可夫鏈蒙特卡羅(Markov chain MonteCarlo, MCMC)采樣,為以后的基于 RBM 的改進算法開辟了框架基礎[14]。
2009 年到 2010 年,專家們提出了很多基于回火的馬爾可夫鏈蒙特卡羅采樣(Tempered MCMC)算法,包括模擬回火(Simulated Tempering)算法,回火轉移(Tempered Transition)算法,并行回火(ParallelTempering)算法等,另外還有,模式跳轉的 MCMC 方法[15]。不過這些算法的實質,都是基于回火的馬爾可夫鏈蒙特卡羅采樣算法的改進的 RBM 算法,都是基于Tieleman 在 2009 年的論文[16]。
深度學習在實際應用過程中也得到了廣泛的關注。孫志軍等人[17]提出一種基于多層自動編碼器的特征提取算法,該算法的深度學習網絡模型的訓練分為無監督訓練以及基于邊際Fisher準則的監督式精雕訓練過程。針對如何將深度學習應用到網絡入侵檢測中以提高入侵檢測準確率的問題,李春林等人[18]結合網絡數據的特點給出一種深度學習網絡的設計方法,并在此基礎上提出一種基于深度學習的入侵檢測方法。針對建立射線無損檢測智能化信息處理平臺的需要,余永維等人[19]提出一種基于深度學習網絡的智能識別方法。王憲保等人[20]根據樣本特征建立深度置信網絡,同時訓練獲取網絡的初始權值,并提出一種基于深度學習的太陽能電池片表面缺陷檢測方法。Kim等人[21]運用支持向量機和類概率輸出網絡,提出一種新的深層結構模型為解決模式分類問題提供更好的泛化能力。實驗表明,隨著層數的增加,所提出的深層結構與理想的貝葉斯分類器更加接近。Shang等人[22]基于深層學習技術構建軟傳感器,并將其應用于工業領域,以評估重柴油95%點下調原油蒸餾裝置。基于深層玻爾茲曼機,Leng等人[23]提出一種新穎的三維模型識別機制,這種機制可分為兩部分:一是基于深層玻爾茲曼機特征檢測,二是基于半監督學習的分類方法。
[1] Hinton G E and Salakhutdinov R R. Reducingthe dimensionality of data with neural networks [J]. Science, 2006, 28, 313:504-507.
[2] Hinton G E, Osindero S, Teh Y. A fastlearning algorithm for deep belief nets [J]. Neural Computation, 2006, 18(7):1527-1554.
[3] Bengio Y, Lamblin P, Popovici D andLarochelle H.?Greedy Layer-Wise Training of Deep Networks, in J. Platt etal. (Eds), Advances in Neural Information Processing Systems 19 (NIPS 2006),pp. 153-160, MIT Press, 2007.
[4] Marc’AurelioRanzato, Christopher Poultney, Sumit Chopra and Yann LeCun.?Efficient Learningof Sparse Representations with an Energy-Based Model, in J. Platt etal. (Eds), Advances in Neural Information Processing Systems (NIPS 2006), MITPress, 2007
[5] Fukushima K. Neocognitron: aself-organizing neural network model for a mechanism of pattern recognitionunaffected by shift in position [J]. Biological Cybernetics, 1980, 36(4):193-202.
[6] LeCun Y, Bottou L, Bengio Y, Haffner P.Gradient-based learning applied to document recognition [J].? Proceedings of the IEEE, 1998, 86(11):2278-2324.
[7] LeCun Y, Boser B, Denker J S, Henderson D,Howard R E, Hubbard W, Jackel L D. Backpropagation applied to handwritten zipcode recognition [J]. Neural Computation, 1989, 1(4): 541-551.
[8] Ackley H, Hinton E, Sejnowski J. ALearning Algorithm for Boltzmann Machines [J]. Cognitive Science, 1985:147–169.
[9] Smolensk P. Information Processing inDynamical Systems: Foundations of Harmony Theory [J]. Parallel DistributedProcessing, 1986(1): 194–281.
[10] Hinton G E. Training Products of Expertsby Minimizing Contrastive Divergence [J]. Neural Computation, 2000(14):1771–1800.
[11] Carreira M A, Hinton G E. On ContrastiveDivergence Learning [J]. Journal of Machine Learning Research, 2006.
[12] Sutskever I, Tieleman T. On theConvergence Properties of Contrastive Divergence[J]. Journal of MachineLearning Research Proceedings Track, 2010(9):789–795.
[13] Desjardins G, Carville A, Bengio Y, etal. Tempered Markov Chain Monte Carlo for Training of Restricted BoltzmannMachine[C]. Sardinia, Italy: Proceedings of Aistats, 2010:145–152.
[14] Salakhutdinov R. Learning in MarkovRandom Fields Using Tempered Transitions [C]// Advances in Neural InformationProcessing Systems, 2010.
[15] Andrieu C, Defreitas N, Doucette A, etal. An Introduction to MCMC for Machine Learning [J]. Machine Learning, 2003,50(1):5–43.
[16] Tieleman T. Training Restricted BoltzmannMachines Using Approximations to the Likelihood Gradient[C]//Proceedings of the25th international conference on Machine Learning. New York, NY, USA: ACM,ICML, 2008:1064–1071.
[17]孫志軍,薛磊,許陽明。基于深度學習的編輯Fisher分析特征提取算法[J]。電子與信息學報,2013,35(4): 805-811。
[18]李春林,黃月江,王宏,牛長喜。一種基于深度學習的網絡入侵檢測方法[J]。信息安全與通信保密,2014,10:68-71。.
[19]余永維,殷國富,殷鷹,杜柳青。基于深度學習網絡的射線圖像缺陷識別方法[J]。儀器儀表學報,2014,35(9): 2012-2019。
[20] 王憲保,李 潔,姚明海,何文秀,錢沄濤。基于深度學習的太陽能電池片表面缺陷檢測方法[J]。模式識別與人工智能,2014,27(6): 517-523。
[21] Sangwook Kim, Zhibin Yu, Rhee Man Kil,Minho Lee. Deep learning of support vector machines with class probability outputnetworks [J]. Neural Networks, In press, 2014.
[22] Chao Shang, Fan Yang, Dexian Huanga,Wenxiang Lyu. Data-driven soft sensor development based on deep learning technique[J]. Journal of Process Control, 2014, 24: 223-233.
[23] Biao Leng, Xiangyang Zhang, Ming Yao,Zhang Xiong. A 3D model recognition mechanism based on deep Boltzmann machines[J]. Neurocomputing, 2015, 151: 593-602.
?
二、深度學習的基本內容、理論基礎及其代表性模型
2.1 深度學習的基本內容
深度學習是機器學習技術的其中之一,該領域主要是探討包含多層結點的人工神經網絡的建模和學習問題。為實現模式識別和無監督特征學習,深度學習在分層架構中的信息處理階段建立多層結構。深度學習處于神經網絡、圖形化建模、優化、模式識別和信號處理多個研究領域的交集。兩個重要的原因使得深度學習在當今研究應用中如此受到歡迎:一是為計算硬件顯著降低了成本,二是大幅增加的芯片處理能力。
為了說明深度學習的主要研究內容和主要的研究方法,這里給出深度學習的比較常見的四種定義:
(1)深度學習是一類利用多層非線性信息處理方法來進行無監督或者有監督的特征提取或者變換,從而實現模式分析和分類的機器學習技術。
(2)深度學習是一個為了對數據間的復雜關系進行建模而學習多級表示的機器學習子門類。由于高級特征和概念是根據低級特征定義的,因而特征的層次結構被稱為深度架構。這類模型中的多數基于表示的無監督學習。
(3)深度學習是指這樣一個機器學習的子領域,即學習多級表示(這種多級表示對應特征或因子或者概念的層級結構),其中高級概念是由低級概念所定義的,同一級別中的概念有助于定義高級概念。觀察量可以用很多方式來表示(如圖像可以用像素的向量表示),但是有些表示能夠使得從樣例中對感興趣的任務進行學習時更加簡單(例如圖像是否是人臉圖像),該領域的研究試圖定義如何更好地創造表示以及如何學習這些表示。
(4)深度學習是機器學習研究的新領域,是為了使機器學習更加靠近它最初的目標——人工智能而發展起來的。深度學習主要是關于學習多級表示和抽象,這些表示和抽象應該有助于使得諸如圖像、聲音和文本之類的數據更加有意義。
深度學習采用的訓練過程是:
(1)自下上升的無監督學習。采用無標簽數據分層訓練各層參數,這是一個無監督訓練的過程(也是一個特征學習的過程),是和傳統神經網絡區別最大的部分。
(2)自頂向下的監督學習。在預訓練后,采用有標簽的數據來對網絡進行區分性訓練,此時誤差自頂向下傳輸。預訓練類似傳統神經網絡的隨機初始化,但由于深度學習的第一步不是隨機初始化而是通過學習無標簽數據得到的,因此這個初值比較接近全局最優,所以深度學習效果好很大程度上歸功于第一步的特征學習過程。
隨著 Hinton 在 DBN 上的研究不斷的深入,使得他最終通過構建深度神經網絡實現了系統學習效率的顯著提升。深度學習算法因為使用了多層神經網絡,因此它具備更強的表達能力,可以對復雜的客觀事物進行描述。針對深度學習算法的這一特點,Hinton 設計了一種算法“greedy layer-wiseunsupervised learning algorithm”,通過這種算法來有效的對深度模型進行訓練。
這種算法本質上是一種貪婪算法,它的基本原理是,首先構造一個擁有多層的人工神經網絡,在這個多層模型中,所處在模型的層次越高則說明這一層對可見層輸入樣本的表示就越抽象,相反如果處于模型的較低層,那么它僅僅能夠表示輸入樣本的低維特征。因此整體說來,這個算法的總體訓練的過程就是首先對輸入樣本進行簡單的表示,然后隨著所在深度模型層次的不斷提升,開始對輸入樣本進行越來越抽象的表示,最終得到對樣本的本質表示的過程。
2.2 深度學習的理論基礎
假設一個系統,它是一個層的結構,是系統的輸入,是系統輸出,形象地表示為:=>=>=>=>?=>,如果輸出等于輸入,物理意義也就是表明在經過系統變化之后,輸入I的信息量沒有任何損失,和原始的輸入保持了不變,這表明了輸入經過每一層Si均沒有丟失任何信息,即在任何一層Si,它都是輸入也就是原始信息的另外一種表示。簡單說,深度學習的精髓也就是,在一個n層的神經網絡中,任何一層的輸入和輸出是“相等”的。學習過程中,我們希望它是不需要人為干預的,它能夠自動地學習對象的特征。在給定一組原始的輸入(可以是一堆圖像或者文本、一段語音等等),經過一個包含n層的系統S時,我們通過調整系統中參數,使得輸出與輸入相等,即輸出仍然是輸入,這樣,我們就獲取了輸入?(原始數據)的一系列的層次特征,記為。
另外,前面是假設輸出嚴格地等于輸入,即這個地方“相等”有兩個含義在里面:第一個是說不是在絕對形式上的相等,而是在抽象意義上的相等;另外一點指的是限制的約束的程度,比如說是不會造成歧義的完全“相等”還是有適當寬松條件的“相等"。而絕對意義上的“相等”這個限制太嚴格,我們可以略微地放松這個限制,例如我們只要使得輸入與輸出的差別盡可能地小即可,這個放松會形成另外一類不同的深度學習的方法。上述就是深度學習的基本思想,而上述中的兩個思想也對應了深度學習中的兩個經典的方法Auto Encoder和Sparse Coding,還有一個很常用的方法就是受限玻爾茲曼機(Restrict Boltzmann Machine , RBM)。
2.3 五種典型的深度學習代表性模型
典型的深度學習模型有卷積神經網絡 (convolutional neuralnetwork, CNN) 模型、受限玻爾茲曼機(restricted Boltzmann machine,RBM)、深度置信網絡 (deep belief network, DBN) 模型、棧式自動編碼器(stacked auto-encoder, SAE)以及深度玻爾茲曼機(deep Boltzman machine, DBM)。
模型一:卷積神經網絡 (convolutional neural network, CNN) 模型
LeCun的卷積神經網絡由卷積層和子抽樣層兩種類型的神經網絡層組成。每一層有一個拓撲圖結構,即在接收域內,每個神經元與輸入圖像中某個位置對應的固定二維位置編碼信息關聯。在每層的各個位置分布著許多不同的神經元,每個神經元有一組輸入權值,這些權值與前一層神經網絡矩形塊中的神經元關聯;同一組權值和不同輸入矩形塊與不同位置的神經元關聯。卷積神經網絡是多層的感知器神經網絡,每層由多個二維平面塊組成,每個平面塊由多個獨立神經元組成為了使網絡對平移旋轉比例縮放以及其他形式的變換具有不變性,對網絡的結構進行一些約束限制:
??? (1)特征提取。每一個神經元從上一層的局部接收域得到輸入,迫使其提取局部特征;
??? (2)特征映射。網絡的每一個計算層由多個特征映射組成,每個特征映射都以二維平面的形式存在,平面中的神經元在約束下共享相同的權值集;
??? (3)子抽樣。該計算層跟隨在卷積層后,實現局部平均和子抽樣,使特征映射的輸出對平移等變換的敏感度下降。
卷積神經網絡本質上實現一種輸入到輸出的映射關系,能夠學習大量輸入與輸出之間的映射關系,不需要任何輸入和輸出之間的精確數學表達式,只要用已知的模式對卷積神經網絡加以訓練,就可以使網絡具有輸入輸出之間的映射能力。卷積神經網絡執行的是有監督訓練,在開始訓練前,用一些不同的小隨機數對網絡的所有權值進行初始化。
卷積神經網絡的訓練分為兩個階段:
(a)向前傳播階段。從樣本集中抽取一個樣本(X,YP),將X輸入給網絡,信息從輸入層經過逐級變換傳送到輸出層,計算相應的實際輸出:
(b)向后傳播階段,也稱為誤差傳播階段。計算實際輸出與理想輸出的差異:
并按最小化誤差的方法調整權值矩陣。
卷積神經網絡的特征檢測層通過訓練數據來進行學習,避免顯式的特征提取,而是隱式地從訓練數據中學習特征,而且同一特征映射面上的神經元權值相同,網絡可以并行學習,這也是卷積神經網絡相對于其他神經網絡的一個優勢。權值共享降低了網絡的復雜性,特別是多維向量的圖像可以直接輸入網絡這一特點避免了特征提取和分類過程中數據重建的復雜度。
卷積神經網絡的成功依賴于兩個假設:(a)每個神經元有非常少的輸入,這有助于將梯度在盡可能多的層中進行傳播;(b)分層局部連接結構是非常強的先驗結構,特別適合計算機視覺任務,如果整個網絡的參數處于合適的區域,基于梯度的優化算法能得到很好的學習效果卷積神經網絡的網絡結構更接近實際的生物神經網絡,在語音識別和圖像處理方面具有獨特的優越性,尤其是在視覺圖像處理領域進行的實驗,得到了很好的結果。
模型二:受限玻爾茲曼機(restricted Boltzmann machine, RBM)
受限玻爾茲曼機(Restricted Boltzmann Machine, RBM)從本質上可以看作—個二部圖,也可看作一個馬爾可夫隨機場(Markov Random Field,MRF)。主要由可視層(v)和隱含層(h)所組成,h結點均為二值單元,V可以是二值單元也可以不是。同一層的單元之間沒有連接,也就是說v層單元之間彼此獨立,h層單元之間同樣獨立。v層單元和h層單元則是通過權值W全連接。
通常RBM模型的能量定義為
其中v為可視層單元,h為隱含層單元,W為可視層與隱含層之間的連接權值,b為隱含層的偏差,c為可視層的偏差,為系統參數。于是,再給定輸入數據v下模型的概率為:
,
.
其中,為未規范化概率,是劃分函數,即為模型中所有v和h的分布和。此時v和h的條件概率分別為:
這里為sigmoid函數。
??? RBM的模型參數優化過程可以看成是最大對數似然下的模型估計,同時也等價于模型能量最小化的優化問題。對參數W的更新通常是基于所謂的對比散度(Contrastive Divergence, CD)來進行梯度上升以提高模型的對數似然。
模型三:深度置信網絡 (deep belief network, DBN) 模型
??? 深度置信網絡(DeepBelief Network, DBN)是一種有向圖模型,其目標是在觀察到數據的情況下,通過調整變量之間的權值,推導出隱含變量的狀態。通常情況下,DBN的頂部兩層可以看作是一個RBM,而最髙層以下的網絡則可以看作是有向 sigmoid 置信網絡(Sigmoid Belief Network)。
??? 一個典型的兩隱含層DBN的聯合概率分布可以表示為
其中是模型參數,表示可視層v和第一隱含層之間的連接權值,表示第一隱含層和第二隱含層之間的連接權值。是有向sigmoid置信網絡的概率分布,是頂層RBM的聯合概率分布。因此模型的目標是通過模型建立對輸入數據的最大似然估計。
訓練深度網絡的難題之一就是如何初始化網絡的權值,優化多隱含層的非線性深度網絡通常是非常困難的,而只有初始化到較好的權值,網絡才有可能避免陷入局部極小值。Hinton等提出通過無監督的貪婪逐層預訓練(Greedy LayerwisePretraining)來初始化DBN的權值,即把相鄰兩層看作是一個RBM,自底向上依次訓練網絡
模型四:棧式自動編碼器(stacked auto-encoder, SAE)
棧式自動編碼器(Stacked Auto-Ecoder, SAE)于2006年由Hinton等人提出,是一種包含多隱含層神經元的神經網絡模型[53]。棧式自動編碼器可以看作是由多個自動編碼器首尾相連而成,因此先介紹自動編碼器。
??? 自編碼模型是一個兩層的神經網絡,第一層稱為編碼層,第二層稱為解碼層。自動編碼器的輸入x為d維的二值向量,輸出為d’維的隱含層表示y。將X看成是信號,y看成是編碼,則自動編碼器的工作過程可以看成是兩個階段,即編碼階段和解碼階段。
??? 在編碼階段,x和y之間通過函數S來映射,即
其中,s為非線性函數。在解碼階段,使用編碼y通過相似的非線性函數來將輸入信號y進行重建,
重建信號記為z, z也可以看作自動編碼器對x的預測值。模型參數W、b和b’可以通過最小化平均重建誤差來進行優化。平均重建誤差可以通過多種方式來進行定義,具體形式取決于在給定編碼的情況下對重建數據分布的假設。
最終目標是希望y是描述數據變化的主因子方向的坐標的分布式表示。由于隱含層都是非線性激活的,因此自動編碼器和PCA的描述能力不同,它能夠描述輸入分布當中的多模式,這使得將多個自動編碼器進行組合的SA具有描述高階非線性統計特征的能力。在Hinton提出的SAE模型中,為了加快權值學習速度,也為了將權值初始化到較好的初值以獲得接近全局最優的局部最優值,SAE必須進行預訓練。在預訓練的過程中,從輸入層開始,把相鄰兩層看作是單獨的受限玻爾茲曼機(Restricted Boltzmann Machine, RBM)來進行訓練,以更低一層的輸出作為更高一層的輸入,從而完成對權值的初始化。而在訓練的過程中,由于使用向后傳遞算法依然存在梯度耗散的問題,所以將SAE展開,此時自底向上傳播的過程可以看作是對輸入數據進行編碼,而自頂向下傳播的過程可看作是解碼的過程。同時為了防止SAE對數據產生過擬合而影響推廣能力,在微調時會對權值添加一定的噪聲。
近年來,隨著對自動編碼器研究的深入,消噪S動編碼器(denoising Auto-Encoder, dAE)己經成為一種被廣泛應用的自動編碼器模型,常見的SAE模型都采用這一模型作為基本模塊。
模型五:深度玻爾茲曼機(deep Boltzman machine, DBM)
??? 深度玻爾茲曼機(DeepBoltzman Machine, DBM)是一種無向圖模型,具備學習抽象級別不斷提高的內部表示的能力。DBM可以通過無監督學習的方式從數據本身學習高層表示,然后通過有監督學習的方式使用少量標注數據來對模型進行微調。和DBN不同的是,DBM的估計推導過程包含自上而下的反饋,需要均值長算法進行學習,因而能夠更好的傳遞和處理輸入數據的不確定性和歧義。
同樣考慮一個沒有層內連接的兩隱含層DBM,忽略掉可視層和隱含層中的偏差值,則模型的能量可以定義為
其中是模型參數,表示可視層v和第一隱含層之間的連接權值,表示第一隱含層和第二隱含層之間的連接權值。那么。分配到某個可視層狀態v的概率為:
則可視層單元、第一隱含層單元和第二隱含層單元的條件概率分別為:
和DBN僅有頂層是REM不同的是,DBM中相鄰兩層均構成一個RBM。對于RBM,在將它訓練好之后,整個生成式模型可以表示為
其中是由參數定義的關于的隱式先驗。
DBM的結構決定了它的預訓練和訓練算法與DBN不同,DBM的預訓練算法主要是對權值進行調整,以彌補一開始僅有自底向上而沒有自頂向下的信號流的問題。DBM的訓練過程對比DBN更加復雜,由于DBM屬于無向圖模型,中間層和上下層直接相連,因此通常采用均值算法。
?
三、深度學習的實際應用成功案例
3.1語音識別
在國際上,IBM、Google等公司都快速進行了DNN語音識別的研究,并且速度飛快。國內方面,阿里巴巴、科大訊飛、百度、中科院自動化所等公司或研究單位,也在進行深度學習在語音識別上的研究。
語音識別系統長期以來,在描述每個建模單元的統計概率模型時,大多采用的是混合高斯模型(GMM)。這種模型由于估計簡單,適合海量數據訓練,同時有成熟的區分度訓練技術支持,長期以來,一直在語音識別應用中占有壟斷性地位。但這種混合高斯模型本質上是一種淺層網絡建模,不能充分描述特征的狀態空間分布。另外,GMM建模的特征維數一般是幾十維,不能充分描述特征之間的相關性。最后,GMM建模本質上是一種似然概率建模,雖然區分度訓練能夠模擬一些模式類之間的區分性,但能力有限。
微軟研究院語音識別專家鄧立和俞棟從2009年開始和深度學習專家Geoffery Hinton合作。2011年微軟宣布基于深度神經網絡的識別系統取得成果并推出產品,徹底改變了語音識別原有的技術框架。采用深度神經網絡后,可以充分描述特征之間的相關性,可以把連續多幀的語音特征并在一起,構成一個高維特征。最終的深度神經網絡可以采用高維特征訓練來模擬。由于深度神經網絡采用模擬人腦的多層結果,可以逐級地進行信息特征抽取,最終形成適合模式分類的較理想特征。這種多層結構和人腦處理語音圖像信息時,是有很大的相似性。深度神經網絡的建模技術,在實際線上服務時,能夠無縫地和傳統的語音識別技術相結合,在不引起任何系統額外耗費情況下,大幅度提升了語音識別系統的識別率。其在線的使用方法具體如下:在實際解碼過程中,聲學模型仍然是采用傳統的HMM模型,語音模型仍然是采用傳統的統計語言模型,解碼器仍然是采用傳統的動態WFST解碼器。但在聲學模型的輸出分布計算時,完全用神經網絡的輸出后驗概率乘以一個先驗概率來代替傳統HMM模型中的GMM的輸出似然概率。百度在實踐中發現,采用深層神經網絡(DNN)進行聲音建模的語音識別系統相比于傳統的GMM語音識別系統而言,相對誤識別率能降低25%。最終在2012年11月,百度上線了第一款基于DNN的語音搜索系統,成為最早采用DNN技術進行商業語音服務的公司之一。
國際上,Google也采用了深層神經網絡進行聲音建模,是最早突破深層神經網絡工業化應用的企業之一。但Google產品中采用的深度神經網絡只有4-5層,而百度采用的深度神經網絡多達9層。這種結構差異的核心其實是百度更好地解決了深度神經網絡在線計算的技術難題,因此百度線上產品可以采用更復雜的網絡模型。這將對于未來拓展海量語料的DNN模型訓練有更大的優勢。
3.2圖像識別
圖像是深度學習最早嘗試的應用領域。早在1989年,Yann LeCun和他的同事們就發表了卷積神經網絡(ConvolutionNeural Networks, 簡稱CNN)的工作。CNN是一種帶有卷積結構的深度神經網絡,通常至少有兩個非線性可訓練的卷積層,兩個非線性的固定卷積層和一個全連接層,一共至少5個隱含層。CNN的結構受到著名的Hubel-Wiesel生物視覺模型的啟發,尤其是模擬視覺皮層V1和V2層中Simple Cell和Complex Cell的行為。在很長時間里,CNN雖然在小規模的問題上,如手寫數字,取得過當時世界最好結果,但一直沒有取得巨大成功。這主要原因是,CNN在大規模圖像上效果不好,比如像素很多的自然圖片內容理解,所以沒有得到計算機視覺領域的足夠重視。這個情況一直持續到2012年10月,Geoffrey Hinton和他的兩個學生在著名的Image Net問題上用更深的CNN取得世界最好結果,使得圖像識別大踏步前進。在Hinton的模型里,輸入就是圖像的像素,沒有用到任何的人工特征。
這個驚人的結果在之前沒有發生的原因當然包括算法的提升,比如dropout等防止過擬合技術,但最重要的是,GPU帶來的計算能力提升和更多的訓練數據。百度在2012年底將深度學習技術成功應用于自然圖像OCR識別和人臉識別等問題,并推出相應的桌面和移動搜索產品,2013年,深度學習模型被成功應用于一般圖片的識別和理解。從百度的經驗來看,深度學習應用于圖像識別不但大大提升了準確性,而且避免了人工特征抽取的時間消耗,從而大大提高了在線計算效率。可以很有把握地說,從現在開始,深度學習將取代“人工特征+機器學習”的方法而逐漸成為主流圖像識別方法。
3.3自然語言處理
除了語音和圖像,深度學習的另一個應用領域問題是自然語言處理(NLP)。經過幾十年的發展,基于統計的模型已經成為NLP的主流,但作為統計方法之一的人工神經網絡在NLP領域幾乎沒有受到重視。最早應用神經網絡的NLP問題是語言模型。加拿大蒙特利爾大學教授Yoshua Bengio等人于2003年提出用embedding的方法將詞映射到一個矢量表示空間,然后用非線性神經網絡來表示N-Gram模型。世界上最早的深度學習用于NLP的研究工作誕生于NEC美國研究院,其研究員Ronan Collobert和Jason Weston從2008年開始采用embedding和多層一維卷積的結構,用于POS Tagging、Chunking、Named Entity Recognition、Semantic Role Labeling等四個典型NLP問題。值得注意的是,他們將同一個模型用于不同任務,都能取得與業界最前沿相當的準確率。最近以來,斯坦福大學教授Chris Manning等人在將深度學習用于NLP的工作也值得關注。
總的來說,深度學習在NLP上取得的進展沒有在語音圖像上那么令人影響深刻。一個很有意思的悖論是:相比于聲音和圖像,語言是唯一的非自然信號,是完全由人類大腦產生和處理的符號系統,但模仿人腦結構的人工神經網絡卻似乎在處理自然語言上沒有顯現明顯優勢?我們相信,深度學習在NLP方面有很大的探索空間。從2006年圖像深度學習成為學術界熱門課題到2012年10月GeofferyHinton在Image Net上的重大突破,經歷了6年時間。
3.4搜索廣告CTR(Click-Through-Rate)預估
搜索廣告是搜索引擎的主要變現方式,而按點擊付費(Cost Per Click,CPC)又是其中被最廣泛應用的計費模式。在CPC模式下,預估的CTR(p-CTR)越準確,點擊率就會越高,收益就越大。通常,搜索廣告的p-CTR是通過機器學習模型預估得到。提高p-CTR的準確性,是提升搜索公司、廣告主、搜索用戶三方利益的最佳途徑。
傳統上,Google、百度等搜索引擎公司以LogisticRegression(LR)作為預估模型。而從2012年開始,百度開始意識到模型的結構對廣告CTR預估的重要性:使用扁平結構的LR嚴重限制了模型學習與抽象特征的能力。為了突破這樣的限制,百度嘗試將DNN作用于搜索廣告,而這其中最大的挑戰在于當前的計算能力還無法接受級別的原始廣告特征作為輸入。作為解決,在百度的DNN系統里,特征數從數量級被降到了,從而能被DNN正常地學習。這套深度學習系統已于2013年5月開始服務于百度搜索廣告系統,每天為數億網民使用。
DNN在搜索廣告系統中的應用還遠遠沒有成熟,其中DNN與遷移學習的結合將可能是一個令人振奮的方向。使用DNN,未來的搜索廣告將可能借助網頁搜索的結果優化特征的學習與提取;亦可能通過DNN將不同的產品線聯系起來,使得不同的變現產品不管數據多少,都能互相優化。未來的DNN一定會在搜索廣告中起到更重要的作用。
?
四、深度學習面臨的問題、未來發展趨勢和研究方向
4.1 深度學習面臨的問題
問題一:深度學習理論方面
理論方面的問題主要體現在兩個方面,一個是統計學習方面的,另一個是計算方面的。深度模型相對于淺層模型有更好的對非線性函數的表示能力。具體來說,對于任意一個非線性函數,根據神經網絡的Universal Approximation Theory,一定能找到一個淺層網絡和一個深度網絡來足夠好地表示。但深度網絡只需要少得多的參數。但可表示性不代表可學習性。人們需要了解深度學習的樣本復雜度,也就是需要多少訓練樣本才能學習到足夠好的深度模型。從另一方面來說,不知道需要多少計算資源才能通過訓練得到更好的模型,有什么理想的計算優化方法等等。由于深度模型都是非凸函數,這方面的理論研究極其困難。
問題二:深度學習數學建模方面
在推進深度學習的學習理論和計算理論的同時,是否可以提出新的分層模型,使其不但具有傳統深度模型所具有的強大表示能力,還具有其他的好處,比如更容易做理論分析。另外,針對具體應用問題,如何設計一個最適合的深度模型來解決問題?研究發現,無論在圖像深度模型,還是語言深度模型,似乎都存在深度和卷積等共同的信息處理結構。甚至對于語音聲學模型,研究人員也在探索卷積深度網絡。那么一個更有意思的問題是,是否存在可能建立一個通用的深度模型或深度模型的建模語言,作為統一的框架來處理語音、圖像和語言。
問題三:深度學習應用實踐方面
需要指出的是,對于互聯網公司而言,如何在工程上利用大規模的并行計算平臺來實現海量數據訓練,是各家公司從事深度學習技術研發首先要解決的問題。傳統的大數據平臺如Hadoop,由于數據處理的Latency太高,顯然不適合需要頻繁迭代的深度學習。現有成熟的DNN訓練技術大都是采用隨機梯度法(SGD)方法訓練的。這種方法本身不可能在多個計算機之間并行。即使是采用GPU進行傳統的DNN模型進行訓練,其訓練時間也是非常漫長的,一般訓練幾千小時的聲學模型所需要幾個月的時間。而隨著互聯網服務的深入,海量數據訓練越來越重要,DNN這種緩慢的訓練速度必然不能滿足互聯網服務應用的需要。Google搭建的DistBelief,是一個采用普通服務器的深度學習并行計算平臺,采用異步算法,由很多計算單元獨立地更新同一個參數服務器的模型參數,實現了隨機梯度下降算法的并行化,加快了模型訓練速度。與Google采用普通服務器不同,百度的多GPU并行計算平臺,克服了傳統SGD訓練的不能并行的技術難題,神經網絡的訓練已經可以在海量語料上并行展開。可以預期,未來隨著海量數據訓練的DNN技術的發展,語音圖像系統的識別率還會持續提升。
目前最大的深度模型所包含的參數大約在100億的數量級還不及人腦的萬分之一。而由于計算成本的限制實際運用于產品中的深度模型更是遠遠低于這個水平。而深度模型的一個巨大優勢在于在有海量數據的情況下很容易通過增大模型來達到更高的準確率。因此發展適合深度模型的更高速的硬件也將是提高深度模型的識別率的重要方向。
4.2深度學習的發展趨勢
4.2.1大數據與深度學習
機器學習理論研究主要關注的問題是模型的泛化(generalization)能力與模型容量(capacity)之間的關系。模型的泛化能力說明該模型對訓練集外的新數據是否能產生滿意的預測或分類效果;模型容量是對模型靈活性的一個評估標準,標明了為使得模型具有更強的泛化性能所需提供的必要訓練數據量。因此,用于模型訓練的數據集規模是決定該模型是否具有泛化能力的重要條件。
深度結構模型由多級非線性變換構成,是典型的高復雜度模型,其模型容量比淺層模型顯著增加。不充足的訓練數據集通常導致模型過擬合、泛化能力差,這也是早期訓練深度神經網絡模型效果不佳的原因之一。
在當前的大數據環境下,訓練數據不充足的瓶頸已突破;另一方面,大數據內部隱藏的復雜多變的高階統計特性也正需要深度結構這樣的高容量模型來有效捕獲。因此,大數據與深度學習是必然的契合,互為助力,推動各自的發展。
在工業界一直有個很流行的觀點:在大數據條件下,簡單的機器學習模型會比復雜模型更加有效。例如,在很多的大數據應用中,最簡單的線性模型得到大量使用。而最近深度學習的驚人進展,促使我們也許到了要重新思考這個觀點的時候。簡而言之,在大數據情況下,也許只有比較復雜的模型,或者說表達能力強的模型,才能充分發掘海量數據中蘊藏的豐富信息。運用更強大的深度模型,也許我們能從大數據中發掘出更多有價值的信息和知識。
淺層模型有一個重要特點,就是假設靠人工經驗來抽取樣本的特征,而強調模型主要是負責分類或預測。在模型的運用不出差錯的前提下(如假設互聯網公司聘請的是機器學習的專家),特征的好壞就成為整個系統性能的瓶頸。因此,通常一個開發團隊中更多的人力是投入到發掘更好的特征上去的。要發現一個好的特征,就要求開發人員對待解決的問題要有很深入的理解。而達到這個程度,往往需要反復地摸索,甚至是數年磨一劍。因此,人工設計樣本特征,不是一個可擴展的途徑。
深度學習的實質,是通過構建具有很多隱層的機器學習模型和海量的訓練數據,來學習更有用的特征,從而最終提升分類或預測的準確性。所以“深度模型”是手段,“特征學習”是目的。區別于傳統的淺層學習,深度學習的不同在于:1、強調了模型結構的深度,通常有5層、6層,甚至10多層的隱層節點;2、明確突出了特征學習的重要性:通過逐層特征變換,將樣本在原空間的特征表示變換到一個新特征空間,使分類或預測更加容易。
與人工規則構造特征的方法相比,利用大數據來學習特征,更能刻畫數據豐富的內在信息。所以,在未來的幾年里,深度模型將應用于大數據,而不是淺層的線性模型。
4.2.2互聯網與深度學習
互聯網作為一個數據平臺、數據集散地,聚集了海量的數據,因此完全可以借助新的大數據理論和技術,分析其中蘊含的豐富內容和信息,發現其中存在的系統規律,以便互聯網提供更好的服務和應用,為互聯網行業實現更好、更快的持續發展提供定量化依據。目前,最典型、最主要的互聯網服務和應用包括搜索引擎、網絡新聞、電子商務、社交網絡、網絡游戲等,大數據新理論、新技術對其中的許多服務和應用都有實用價值,將助推互聯網服務與應用得到更好的發展。
一方面,互聯網與大數據的發展相輔相成,主要表現在:首先,互聯網的發展為大數據的發展提供了更多數據、信息與資源;其次,大數據的發展為互聯網的發展提供了更多的支撐、服務于應用。
另一方面,在當前的大數據環境下,訓練數據問題已經逐漸被解決,同時,大數據內部隱藏的復雜多變的高階統計特性也正需要深度結構這樣的高容量模型來有效捕獲。因此,大數據與深度學習是必然的契合,互為助力,推動各自的發展。
因此,互聯網的發展為深度學習的迅速發展和應用提供了海量的數據信息資源和訓練數據,同時,深度學習能夠從互聯網產生的數據中自動的提取多層特征表示,通過數據驅動的方式,采用一系列的非線性變換,從互聯網原始數據中提取由低層到高層、由具體到抽象、由一般到特定語義的特征。
例如,傳統的搜索,其交互方式是人工提煉出關鍵詞輸入,才返回答案。所以使用搜索引擎其實是一種技術,考驗的是人能否準確觀察問題、恰當提煉主題詞,做到這些才有可能得到自己想要的信息。這就與一切搜索引擎“公平地為每個人提供信息”的初衷相悖了。而深度學習的技術配合上大數據的儲備,語音搜索、圖像搜索等新興技術就不再僅僅是技術的噱頭,而是將互聯網搜索用戶從數億拓展到數十億的大生意。這也是Google、蘋果和百度紛紛在語音搜索上推出新產品的原因。
4.2.3深度學習的理論分析和數據表示
深度學習模型的一個開放性問題是為何深度學習的訓練非常困難。一個可能的答案是深度結構神經網絡有許多層,每一層由多個非線性神經元組成,使得整個深度結構神經網絡的非線性程度更強,減弱了基于梯度的尋優方法的有效性;另一個可能的答案是局部極值的數量和結構隨著深度結構神經網絡深度的增加而發生定性改變,使得訓練模型變得更加困難。造成深度學習訓練困難的原因究竟是由于用于深度學習模型的監督訓練準則大量存在不好的局部極值,還是因為訓練準則對優化算法來說過于復雜,這是值得探討的問題。此外,對堆棧自編碼網絡學習中的模型是否有合適的概率解釋,能否得到深度學習模型中似然函數梯度的小方差和低偏差估計,能否同時訓練所有的深度結構神經網絡層,除了重構誤差外,是否還存在其他更合適的可供選擇的誤差指標來控制深度結構神經網絡的訓練過程,是否存在容易求解的RBM配分函數的近似函數,這些問題還有待未來研究。是否可以考慮引入退火重要性抽樣來解決局部極值問題,不依賴于配分函數的學習算法也值得嘗試等等問題,都有待于我們進行研究。
數據的表示方式對學習性能具有很大的影響,除了局部表示、分布表示和稀疏分布表示外,可以充分利用表示理論研究成果。是否還存在其他形式的數據表示方式,是否可以通過在學習的表示上施加一些形式的稀疏罰,從而對RBM和自編碼模型的訓練性能起到改進作用,以及如何改進。是否可以用便于提取好的表示并且包含更簡單優化問題的凸模型代替RBM和自編碼模型;不增加隱單元的數量,用非參數形式的能量函數能否提高RBM的容量等,未來還需要進一步探討這些問題。此外,除了卷積神經網絡DBN和堆棧自編碼網絡之外,是否還存在其他可以用于有效訓練的深度學習模型,有沒有可能改變所用的概率模型使訓練變得更容易,是否存在其他有效的或者理論上有效的方法學習深度學習模型,這也是未來需要進一步研究的問題。現有的方法,如DBN-HMM和DBN-CRF,在利用DBN的能力方面只是簡單的堆棧疊加基本模型,還沒有充分發掘出DBN的優勢,需要研究DBN的結構特點,充分利用DBN的潛在優勢,找到更好的方法建立數據的深度學習模型,可以考慮將現有的社會網絡基因調控網絡結構化建模理論以及稀疏化建模等理論運用其中。
4.2.4深度學習的特征提取
除了高斯-伯努利模型之外,還有哪些模型能用來從特征中提取重要的判別信息,未來需要提出有效的理論指導在每層搜索更加合適的特征提取模型。自編碼模型保持了輸入的信息,這些信息在后續的訓練過程中可能會起到重要作用,未來需要研究用對比散度算法(Contrastive Divergence, CD)訓練的RBM 是否保持了輸入的信息,在沒有保持輸入信息的情況下如何進行修正。樹和圖等結構的數據由于大小和結構可變而不容易用向量表示其中包含的信息,如何泛化深度學習模型來表示這些信息,也是未來需要研究的問題。盡管當前的產生式預訓練加判別式微調學習策略看起來對許多任務都運行良好,但是在某些語言識別等其他任務中卻失敗了,對這些任務,產生式預訓練階段的特征提取似乎能很好地描述語音變化,但是包含的信息不足以區分不同的語言,未來需要提出新的學習策略,對這些學習任務提取合適的特征,這可以在很大程度上減小當前深度學習系統所需模型的大小。
4.2.5深度學習的預訓練算法
由于隨機初始化的深度結構神經網絡采用基于梯度的算法訓練總是不能成功,而產生式預訓練方法卻有效,因此未來需要研究訓練深度結構神經網絡的貪婪逐層預訓練算法在最小化訓練數據的似然函數方面結果,是否過于貪婪,以及除了貪婪逐層預訓練的許多變形和半監督嵌入算法之外,還有什么其他形式的算法能得到深度結構神經網絡的局部訓練信息。同時,無監督逐層訓練過程對訓練深度學習模型起到幫助作用,但有實驗表明訓練仍會陷入局部極值并且無法有效利用數據集中的所有信息,能否提出用于深度學習的更有效的優化策略來突破這種限制,基于連續優化的策略能否用于有效改進深度學習的訓練過程,這些問題還需要繼續研究。二階梯度方法和自然梯度方法在理論研究中可證明對訓練求解深度學習模型有效,但是這些算法還不是深度結構神經網絡優化的標準算法,未來還需要進一步驗證和改進這些算法,研究其能否代替微批次隨機梯度下降類算法。當前的基于微批次隨機梯度優化算法難以在計算機上并行處理,目前最好的解決方法是用GPU來加速學習過程,但是單個機器的GPU無法用于處理大規模語音識別和類似的大型數據集的學習,因此未來需要提出理論上可行的并行學習算法來訓練深度學習模型。
4.3深度學習的未來
目前,深度學習仍有大量工作需要研究。當前的關注點還是從機器學習的領域借鑒一些可以在深度學習使用的方法,特別是降維領域。例如:目前一個工作就是稀疏編碼,通過壓縮感知理論對高維數據進行降維,使得非常少的元素的向量就可以精確的代表原來的高維信號。另一個例子就是半監督流行學習,通過測量訓練樣本的相似性,將高維數據的這種相似性投影到低維空間。另外一個比較鼓舞人心的方向就是evolutionary programming approaches(遺傳編程方法),它可以通過最小化工程能量去進行概念性自適應學習和改變核心架構。
深度學習還有很多核心的問題需要解決:
(1)對于一個特定的框架,到底對于多少維的輸入它可以表現得較優(如果是圖像,可能是上百萬維);
(2)對捕捉短時或者長時間的時間依賴,探尋哪種架構才是有效的;
(3)如何對于一個給定的深度學習架構,融合多種感知的信息;
(4)有什么正確的機理可以去增強一個給定的深度學習架構,以改進其魯棒性和對扭曲和數據丟失的不變性;
(5)模型方面是否有其他更為有效且有理論依據的深度模型學習算法。
探索新的特征提取模型是值得深入研究的內容。此外有效的可并行訓練算法也是值得研究的一個方向。當前基于最小批處理的隨機梯度優化算法很難在多計算機中進行并行訓練。通常辦法是利用圖形處理單元加速學習過程。然而單個機器GPU對大規模數據識別或相似任務數據集并不適用。在深度學習應用拓展方面,如何合理充分利用深度學習在增強傳統學習算法的性能仍是目前各領域的研究重點。
總結
- 上一篇: BP神经网络及matlab实现
- 下一篇: 深度学习基础1(神经网络)