深度學習

深度學習

人工神經網絡的研究的概念
深度學習的概念源于人工神經網絡的研究。含多隐層的多層感知器就是一種深度學習結構。深度學習通過組合低層特征形成更加抽象的高層表示屬性類别或特征,以發現數據的分布式特征表示。深度學習的概念由Hinton等人于2006年提出。基于深信度網(DBN)提出非監督貪心逐層訓練算法,為解決深層結構相關的優化難題帶來希望,随後提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網絡是第一個真正多層結構學習算法,它利用空間相對關系減少參數數目以提高訓練性能。深度學習作為機器學習研究中的一個領域,其動機在于建立、模拟人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像、聲音和文本等。[1]同機器學習方法一樣,深度機器學習方法也有監督學習與無監督學習之分。不同的學習框架下建立的學習模型很是不同。例如,卷積神經網絡(Convolutional neural networks,簡稱CNNs)就是一種深度的監督學習下的機器學習模型,而深度置信網(Deep BeliefNets,簡稱DBNs)就是一種無監督學習下的機器學習模型。
    中文名:深度學習 外文名:Deep Learning 所屬學科:人工神經網絡 背景基礎:機器學習 應用領域:語音識别,機器翻譯,計算機視覺等 發展潛力:語音識别技術

簡介

深度學習是一類模式分析方法的統稱,就具體研究内容而言,主要涉及三類方法:

(1)基于卷積運算的神經網絡系統,即卷積神經網絡(CNN)。n(2)基于多層神經元的自編碼神經網絡,包括自編碼( Auto encoder)以及近年來受到廣泛關注的稀疏編碼兩類( Sparse Coding)。n(3)以多層自編碼神經網絡的方式進行預訓練,進而結合鑒别信息進一步優化神經網絡權值的深度置信網絡(DBN)。

通過多層處理,逐漸将初始的“低層”特征表示轉化為“高層”特征表示後,用“簡單模型”即可完成複雜的分類等學習任務。由此可将深度學習理解為進行“特征學習”(feature learning)或“表示學習”(representation learning)。

以往在機器學習用于現實任務時,描述樣本的特征通常需由人類專家來設計,這成為“特征工程”(feature engineering)。衆所周知,特征的好壞對泛化性能有至關重要的影響,人類專家設計出好特征也并非易事;特征學習(表征學習)則通過機器學習技術自身來産生好特征,這使機器學習向“全自動數據分析”又前進了一步。

近年來,研究人員也逐漸将這幾類方法結合起來,如對原本是以有監督學習為基礎的卷積神經網絡結合自編碼神經網絡進行無監督的預訓練,進而利用鑒别信息微調網絡參數形成的卷積深度置信網絡。與傳統的學習方法相比,深度學習方法預設了更多的模型參數,因此模型訓練難度更大,根據統計學習的一般規律知道,模型參數越多,需要參與訓練的數據量也越大。

20世紀八九十年代由于計算機計算能力有限和相關技術的限制,可用于分析的數據量太小,深度學習在模式分析中并沒有表現出優異的識别性能。自從2006年,Hinton等提出快速計算受限玻耳茲曼機(RBM)網絡權值及偏差的CD-K算法以後,RBM就成了增加神經網絡深度的有力工具,導緻後面使用廣泛的DBN(由Hinton等開發并已被微軟等公司用于語音識别中)等深度網絡的出現。與此同時,稀疏編碼等由于能自動從數據中提取特征也被應用于深度學習中。基于局部數據區域的卷積神經網絡方法今年來也被大量研究。

含義

深度學習是機器學習的一種,而機器學習是實現人工智能的必經路徑。深度學習的概念源于人工神經網絡的研究,含多個隐藏層的多層感知器就是一種深度學習結構。深度學習通過組合低層特征形成更加抽象的高層表示屬性類别或特征,以發現數據的分布式特征表示。研究深度學習的動機在于建立模拟人腦進行分析學習的神經網絡,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本等。

基礎概念

從一個輸入中産生一個輸出所涉及的計算可以通過一個流向圖(flow graph)來表示:流向圖是一種能夠表示計算的圖,在這種圖中每一個節點表示一個基本的計算以及一個計算的值,計算的結果被應用到這個節點的子節點的值。考慮這樣一個計算集合,它可以被允許在每一個節點和可能的圖結構中,并定義了一個函數族。輸入節點沒有父節點,輸出節點沒有子節點。

這種流向圖的一個特别屬性是深度(depth):從一個輸入到一個輸出的最長路徑的長度。

傳統的前饋神經網絡能夠被看作擁有等于層數的深度(比如對于輸出層為隐層數加1)。SVMs有深度2(一個對應于核輸出或者特征空間,另一個對應于所産生輸出的線性混合)。

人工智能研究的方向之一,是以所謂 “專家系統” 為代表的,用大量“如果-就” (If - Then) 規則定義的,自上而下的思路。人工神經網絡(Artificial Neural Network),标志着另外一種自下而上的思路。神經網絡沒有一個嚴格的正式定義。它的基本特點,是試圖模仿大腦的神經元之間傳遞,處理信息的模式。

特點

區别于傳統的淺層學習,深度學習的不同在于:

(1)強調了模型結構的深度,通常有5層、6層,甚至10多層的隐層節點;

(2)明确了特征學習的重要性。也就是說,通過逐層特征變換,将樣本在原空間的特征表示變換到一個新特征空間,從而使分類或預測更容易。與人工規則構造特征的方法相比,利用大數據來學習特征,更能夠刻畫數據豐富的内在信息。

通過設計建立适量的神經元計算節點和多層運算層次結構,選擇合适的輸人層和輸出層,通過網絡的學習和調優,建立起從輸入到輸出的函數關系,雖然不能100%找到輸入與輸出的函數關系,但是可以盡可能的逼近現實的關聯關系。使用訓練成功的網絡模型,就可以實現我們對複雜事務處理的自動化要求。

深度學習典型

典型的深度學習模型有卷積神經網絡( convolutional neural network)、DBN和堆棧自編碼網絡(stacked auto-encoder network)模型等,下面對這些模型進行描述。 

卷積神經網絡模型

在無監督預訓練出現之前,訓練深度神經網絡通常非常困難,而其中一個特例是卷積神經網絡。卷積神經網絡受視覺系統的結構啟發而産生。第一個卷積神經網絡計算模型是在Fukushima(D的神經認知機中提出的,基于神經元之間的局部連接和分層組織圖像轉換,将有相同參數的神經元應用于前一層神經網絡的不同位置,得到一種平移不變神經網絡結構形式。後來,Le Cun等人在該思想的基礎上,用誤差梯度設計并訓練卷積神經網絡,在一些模式識别任務上得到優越的性能。至今,基于卷積神經網絡的模式識别系統是最好的實現系統之一,尤其在手寫體字符識别任務上表現出非凡的性能。

深度信任網絡模型

DBN可以解釋為貝葉斯概率生成模型,由多層随機隐變量組成,上面的兩層具有無向對稱連接,下面的層得到來自上一層的自頂向下的有向連接,最底層單元的狀态為可見輸入數據向量。DBN由若2F結構單元堆棧組成,結構單元通常為RBM(RestIlcted Boltzmann Machine,受限玻爾茲曼機)。堆棧中每個RBM單元的可視層神經元數量等于前一RBM單元的隐層神經元數量。根據深度學習機制,采用輸入樣例訓練第一層RBM單元,并利用其輸出訓練第二層RBM模型,将RBM模型進行堆棧通過增加層來改善模型性能。在無監督預訓練過程中,DBN編碼輸入到頂層RBM後,解碼頂層的狀态到最底層的單元,實現輸入的重構。RBM作為DBN的結構單元,與每一層DBN共享參數。

堆棧自編碼網絡模型

堆棧自編碼網絡的結構與DBN類似,由若幹結構單元堆棧組成,不同之處在于其結構單元為自編碼模型( auto-en-coder)而不是RBM。自編碼模型是一個兩層的神經網絡,第一層稱為編碼層,第二層稱為解碼層。

深度學習訓練過程

2006年,Hinton提出了在非監督數據上建立多層神經網絡的一個有效方法,具體分為兩步:首先逐層構建單層神經元,這樣每次都是訓練一個單層網絡;當所有層訓練完後,使用wake-sleep算法進行調優。 

将除最頂層的其他層間的權重變為雙向的,這樣最頂層仍然是一個單層神經網絡,而其他層則變為了圖模型。向上的權重用于“認知”,向下的權重用于“生成”。然後使用wake-sleep算法調整所有的權重。讓認知和生成達成一緻,也就是保證生成的最頂層表示能夠盡可能正确的複原底層的節點。比如頂層的一個節點表示人臉,那麼所有人臉的圖像應該激活這個節點,并且這個結果向下生成的圖像應該能夠表現為一個大概的人臉圖像。wake-sleep算法分為醒( wake)和睡(sleep)兩個部分。

wake階段:認知過程,通過外界的特征和向上的權重産生每一層的抽象表示,并且使用梯度下降修改層間的下行權重。

sleep階段:生成過程,通過頂層表示和向下權重,生成底層的狀态,同時修改層間向上的權重。

自下上升的非監督學習

就是從底層開始,一層一層地往頂層訓練。采用無标定數據(有标定數據也可)分層訓練各層參數,這一步可以看作是一個無監督訓練過程,這也是和傳統神經網絡區别最大的部分,可以看作是特征學習過程。具體的,先用無标定數據訓練第一層,訓練時先學習第一層的參數,這層可以看作是得到一個使得輸出和輸入差别最小的三層神經網絡的隐層,由于模型容量的限制以及稀疏性約束,使得得到的模型能夠學習到數據本身的結構,從而得到比輸入更具有表示能力的特征;在學習得到n-l層後,将n-l層的輸出作為第n層的輸入,訓練第n層,由此分别得到各層的參數。

自頂向下的監督學習

就是通過帶标簽的數據去訓練,誤差自頂向下傳輸,對網絡進行微調。基于第一步得到的各層參數進一步優調整個多層模型的參數,這一步是一個有監督訓練過程。第一步類似神經網絡的随機初始化初值過程,由于第一步不是随機初始化,而是通過學習輸入數據的結構得到的,因而這個初值更接近全局最優,從而能夠取得更好的效果。所以深度學習的良好效果在很大程度上歸功于第一步的特征學習的過程。

成功應用

1、計算機視覺

ImageNet Classification with Deep Convolutional Neural Networks, Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, NIPS 2012.

Learning Hierarchical Features for Scene Labeling, Clement Farabet, Camille Couprie, Laurent Najman and Yann LeCun, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013.

Learning Convolutional Feature Hierarchies for Visual Recognition, Koray Kavukcuoglu, Pierre Sermanet, Y-Lan Boureau, Karol Gregor, Michaël Mathieu and Yann LeCun, Advances in Neural Information Processing Systems (NIPS 2010), 23, 2010.

2、語音識别

微軟研究人員通過與hintion合作,首先将RBM和DBN引入到語音識别聲學模型訓練中,并且在大詞彙量語音識别系統中獲得巨大成功,使得語音識别的錯誤率相對減低30%。但是,DNN還沒有有效的并行快速算法,很多研究機構都是在利用大規模數據語料通過GPU平台提高DNN聲學模型的訓練效率。

在國際上,IBM、google等公司都快速進行了DNN語音識别的研究,并且速度飛快。

國内方面,阿裡巴巴,科大訊飛、百度、中科院自動化所等公司或研究單位,也在進行深度學習在語音識别上的研究。

3、自然語言處理等其他領域

很多機構在開展研究,2013年Tomas Mikolov,Kai Chen,Greg Corrado,Jeffrey Dean發表論文Efficient Estimation of Word Representations in Vector Space建立word2vector模型,與傳統的詞袋模型(bag of words)相比,word2vector能夠更好地表達語法信息。深度學習在自然語言處理等領域主要應用于機器翻譯以及語義挖掘等方面。

上一篇:叠代式開發

下一篇:大件運輸

相關詞條

相關搜索

其它詞條