欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:機器學習 深度學習概述

柚子快報邀請碼778899分享:機器學習 深度學習概述

http://yzkb.51969.com/

深度學習概述

一、 深度學習概念二、 國內(nèi)外研究現(xiàn)狀1、深度學習在語音識別領(lǐng)域研究現(xiàn)狀2、深度學習在圖像識別領(lǐng)域研究現(xiàn)狀3、深度學習在自然語言處理領(lǐng)域研究現(xiàn)狀1、 初始化方法、網(wǎng)絡層數(shù)和激活函數(shù)的選擇參數(shù)初始化基于梯度的優(yōu)化算法

2、 模型結(jié)構(gòu)

三、深度學習模型結(jié)構(gòu)1、 前潰深度網(wǎng)絡(1)、單層卷積神經(jīng)網(wǎng)絡:(2)、卷積神經(jīng)網(wǎng)絡:(3)、卷積神經(jīng)網(wǎng)絡的特點:卷積神經(jīng)網(wǎng)絡模型:

2、 反饋深度網(wǎng)絡3、 雙向深度網(wǎng)絡(1)、受限玻爾茲曼機:(2)、深度玻爾茲曼機:受限玻爾茲曼機(RBM,RestrictBoltzmann Machine):深度信念神經(jīng)網(wǎng)絡:

四、 深度學習訓練算法五、 深度學習的優(yōu)點六、 深度學習已有的應用1、 深度學習在語音識別、合成及機器翻譯中的應用2、 深度學習在圖像分類及識別中的應用(1)、深度學習在大規(guī)模圖像數(shù)據(jù)集中的應用:(2)、深度學習在人臉識別中的應用:(3)、深度學習在手寫體字符識別中的應用:

3、 深度學習在行人檢測中的應用4、 深度學習在視頻分類及行為識別中的應用

七、 深度學習存在的問題及未來研究方向1、 深度學習目前存在的問題:(1)、理論問題:(2)、建模問題:(3)、工程應用問題:

2、 深度學習未來研究方向:(1)、無標記數(shù)據(jù)的特征學習(2)、模型規(guī)模與訓練速度(3)、理論分析(4)、數(shù)據(jù)表示與模型(5)、特征提取(6)、訓練與優(yōu)化求解(7)、與其他方法的融合

八、 深度學習開源軟件目前網(wǎng)上關(guān)于深度學習的源代碼非常多,主要的項目有框架選擇建議

一、 深度學習概念

深度學習(Deep Learning, DL),由Hinton等人于2006年提出,是機器學習(MachineLearning, ML)的一個新領(lǐng)域

目標: 深度學習被引入機器學習使其更接近于最初的目標----人工智能(AI,Artificial Intelligence)。

實現(xiàn):深度學習是學習樣本數(shù)據(jù)的內(nèi)在規(guī)律和表示層次,這些學習過程中獲得的信息對諸如文字、圖像和聲音等數(shù)據(jù)的解釋有很大的幫助。它的最終目標是讓機器能夠像人一樣具有分析學習能力,能夠識別文字、圖像和聲音等數(shù)據(jù)。

深度學習是一個復雜的機器學習算法,在語言和圖像識別方面取得的效果,遠遠超過先前相關(guān)技術(shù)。它在搜索技術(shù)、數(shù)據(jù)挖掘、機器學習、機器翻譯、自然語言處理、多媒體學習、語音、推薦和個性化技術(shù),以及其它相關(guān)領(lǐng)域都取得了很多成果。深度學習使機器模仿視聽和思考等人類的活動,解決了很多復雜的模式識別難題,使得人工智能相關(guān)技術(shù)取得了很大進步。

2006年,機器學習大師、多倫多大學教授Geoffrey Hinton及其學生Ruslan發(fā)表在世界頂級學術(shù)期刊《科學》上的一篇論文引發(fā)了深度學習在研究領(lǐng)域和應用領(lǐng)域的發(fā)展熱潮。這篇文獻提出了兩個主要觀點:

1.多層人工神經(jīng)網(wǎng)絡模型有很強的特征學習能力,深度學習模型學習得到的特征數(shù)據(jù)對原數(shù)據(jù)有更本質(zhì)的代表性,這將大大便于分類和可視化問題; 2.對于深度神經(jīng)網(wǎng)絡很難訓練達到最優(yōu)的問題,可以采用逐層訓練方法解決。將上層訓練好的結(jié)果作為下層訓練過程中的初始化參數(shù)。在這一文獻中深度模型的訓練過程中逐層初始化采用無監(jiān)督學習方式。

2010年,深度學習項目首次獲得來自美國國防部門DARPA計劃的資助,參與方有美國NEC研究院、紐約大學和斯坦福大學。

自2011年起,谷歌和微軟研究院的語音識別方向研究專家先后采用深度神經(jīng)網(wǎng)絡技術(shù)將語音識別的錯誤率降低20%-30%,這是長期以來語音識別研究領(lǐng)域取得的重大突破。2012年,深度神經(jīng)網(wǎng)絡在圖像識別應用方面也獲得重大進展,在ImageNet評測問題中將原來的錯誤率降低了9%。

同年,制藥公司將深度神經(jīng)網(wǎng)絡應用于藥物活性預測問題取得世界范圍內(nèi)最好結(jié)果。

2012年6月,Andrew NG帶領(lǐng)的科學家們在谷歌神秘的X實驗室創(chuàng)建了一個有16000個處理器的大規(guī)模神經(jīng)網(wǎng)絡,包含數(shù)十億個網(wǎng)絡節(jié)點,讓這個神經(jīng)網(wǎng)絡處理大量隨機選擇的視頻片段。經(jīng)過充分的訓練以后,機器系統(tǒng)開始學會自動識別貓的圖像。這是深度學習領(lǐng)域最著名的案例之一,引起各界極大的關(guān)注。

深度學習本質(zhì)上是構(gòu)建含有多隱層的機器學習架構(gòu)模型,通過大規(guī)模數(shù)據(jù)進行訓練,得到大量更具代表性的特征信息。從而對樣本進行分類和預測,提高分類和預測的精度。這個過程是通過深度學習模型的手段達到特征學習的目的。

深度學習模型和傳統(tǒng)淺層學習模型的區(qū)別在于:

(1)、深度學習模型結(jié)構(gòu)含有更多的層次,包含隱層節(jié)點的層數(shù)通常在5層以上,有時甚至包含多達10層以上的隱藏節(jié)點;

(2)、明確強調(diào)了特征學習對于深度模型的重要性,即通過逐層特征提取,將數(shù)據(jù)樣本在原空間的特征變換到一個新的特征空間來表示初始數(shù)據(jù),這使得分類或預測問題更加容易實現(xiàn)。和人工設計的特征提取方法相比,利用深度模型學習得到的數(shù)據(jù)特征對大數(shù)據(jù)的豐富內(nèi)在信息更有代表性。

在統(tǒng)計機器學習領(lǐng)域,值得關(guān)注的問題是,如何對輸入樣本進行特征空間的選擇。例如對行人檢測問題,需要尋找表現(xiàn)人體不同特點的特征向量。

一般來說,當輸入空間中的原始數(shù)據(jù)不能被直接分開時,則將其映射到一個線性可分的間接特征空間。而此間接空間通常可由3種方式獲得:定義核函數(shù)映射到高維線性可分空間,如支持向量機(support vector machine,SVM)、手工編碼、或自動學習。前2種方式對專業(yè)知識要求很高,且耗費大量的計算資源,不適合高維輸入空間。

而第3種方式利用帶多層非線性處理能力的深度學習結(jié)構(gòu)進行自動學習,經(jīng)實際驗證被普遍認為具有重要意義與價值。

深度學習結(jié)構(gòu)相對于淺層學習結(jié)構(gòu)[如SVM、人工神經(jīng)網(wǎng)絡(artificial neural networks,ANN),能夠用更少的參數(shù)逼近高度非線性函數(shù)。

深度學習是機器學習領(lǐng)域一個新的研究方向,近年來在語音識別、計算機視覺等多類應用中取得突破性的進展。其動機在于建立模型模擬人類大腦的神經(jīng)連接結(jié)構(gòu),在處理圖像、聲音和文本這些信號時,通過多個變換階段分層對數(shù)據(jù)特征進行描述,進而給出數(shù)據(jù)的解釋。

以圖像數(shù)據(jù)為例,靈長類的視覺系統(tǒng)中對這類信號的處理依次為:首先檢測邊緣、初始形狀、然后再逐步形成更復雜的視覺形狀,

同樣地,深度學習通過組合低層特征形成更加抽象的高層表示、屬性類別或特征,給出數(shù)據(jù)的分層特征表示。

深度學習之所以被稱為"深度",是相對支持向量機(supportvector machine, SVM)、提升方法(boosting)、最大熵方法等"淺層學習"方法而言的,深度學習所學得的模型中,非線性操作的層級數(shù)更多。

淺層學習依靠人工經(jīng)驗抽取樣本特征,網(wǎng)絡模型學習后獲得的是沒有層次結(jié)構(gòu)的單層特征; 而深度學習通過對原始信號進行逐層特征變換,將樣本在原空間的特征表示變換到新的特征空間,自動地學習得到層次化的特征表示,從而更有利于分類或特征的可視化。

深度學習理論的另外一個理論動機是:如果一個函數(shù)可用k層結(jié)構(gòu)以簡潔的形式表達,那么用k-1層的結(jié)構(gòu)表達則可能需要指數(shù)級數(shù)量的參數(shù)(相對于輸入信號),且泛化能力不足。

深度學習算法打破了傳統(tǒng)神經(jīng)網(wǎng)絡對層數(shù)的限制,可根據(jù)設計者需要選擇網(wǎng)絡層數(shù)。

它的訓練方法與傳統(tǒng)的神經(jīng)網(wǎng)絡相比有很大區(qū)別,傳統(tǒng)神經(jīng)網(wǎng)絡隨機設定參數(shù)初始值,采用BP算法利用梯度下降算法訓練網(wǎng)絡,直至收斂。

但深度結(jié)構(gòu)訓練很困難,傳統(tǒng)對淺層有效的方法對于深度結(jié)構(gòu)并無太大作用,隨機初始化權(quán)值極易使目標函數(shù)收斂到局部極小值,且由于層數(shù)較多,殘差向前傳播會丟失嚴重,導致梯度擴散,因此深度學習過程中采用貪婪無監(jiān)督逐層訓練方法。即在一個深度學習設計中,每層被分開對待并以一種貪婪方式進行訓練,當前一層訓練完后,新的一層將前一層的輸出作為輸入并編碼以用于訓練;最后每層參數(shù)訓練完后,在整個網(wǎng)絡中利用有監(jiān)督學習進行參數(shù)微調(diào)。

深度學習的概念 最早由多倫多大學的G. E.Hinton等于2006年提出,基于樣本數(shù)據(jù)通過一定的訓練方法得到包含多個層級的深度網(wǎng)絡結(jié)構(gòu)的機器學習過程。

傳統(tǒng)的神經(jīng)網(wǎng)絡隨機初始化網(wǎng)絡中的權(quán)值,導致網(wǎng)絡很容易收斂到局部最小值,為解決這一問題,Hinton提出使用無監(jiān)督預訓練方法優(yōu)化網(wǎng)絡權(quán)值的初值,再進行權(quán)值微調(diào)的方法,拉開了深度學習的序幕。

深度學習所得到的深度網(wǎng)絡結(jié)構(gòu)包含大量的單一元素(神經(jīng)元),每個神經(jīng)元與大量其他神經(jīng)元相連接,神經(jīng)元間的連接強度(權(quán)值)在學習過程中修改并決定網(wǎng)絡的功能。通過深度學習得到的深度網(wǎng)絡結(jié)構(gòu)符合神經(jīng)網(wǎng)絡的特征,因此深度網(wǎng)絡就是深層次的神經(jīng)網(wǎng)絡,即深度神經(jīng)網(wǎng)絡(deep neural networks, DNN)。

深度學習的概念起源于人工神經(jīng)網(wǎng)絡的研究,有多個隱層的多層感知器是深度學習模型的一個很好的范例。

對神經(jīng)網(wǎng)絡而言,深度指的是網(wǎng)絡學習得到的函數(shù)中非線性運算組合水平的數(shù)量。

當前神經(jīng)網(wǎng)絡的學習算法多是針對較低水平的網(wǎng)絡結(jié)構(gòu),將這種網(wǎng)絡稱為淺結(jié)構(gòu)神經(jīng)網(wǎng)絡,如一個輸入層、一個隱層和一個輸出層的神經(jīng)網(wǎng)絡;與此相反,將非線性運算組合水平較高的網(wǎng)絡稱為深度結(jié)構(gòu)神經(jīng)網(wǎng)絡,如一個輸入層、三個隱層和一個輸出層的神經(jīng)網(wǎng)絡。

深度學習的基本思想:假設有系統(tǒng)S,它有n層(S1,…,Sn),輸入為I,輸出為O,可形象的表示為:I=>S1=>S2=>… =>Sn=>O。

為了使輸出O盡可能的接近輸入I,可以通過調(diào)整系統(tǒng)中的參數(shù),這樣就可以得到輸入I的一系列層次特征S1,S2,…,Sn。對于堆疊的多個層,其中一層的輸出作為其下一層的輸入,以實現(xiàn)對輸入數(shù)據(jù)的分級表達,這就是深度學習的基本思想。

二、 國內(nèi)外研究現(xiàn)狀

深度學習極大地促進了機器學習的發(fā)展,受到世界各國相關(guān)領(lǐng)域研究人員和高科技公司的重視,語音、圖像和自然語言處理是深度學習算法應用最廣泛的三個主要研究領(lǐng)域:

1、深度學習在語音識別領(lǐng)域研究現(xiàn)狀

長期以來,語音識別系統(tǒng)大多是采用混合高斯模型(GMM)來描述每個建模單元的統(tǒng)計概率模型。由于這種模型估計簡單,方便使用大規(guī)模數(shù)據(jù)對其訓練,該模型有較好的區(qū)分度訓練算法保證了該模型能夠被很好的訓練。在很長時間內(nèi)占據(jù)了語音識別應用領(lǐng)域主導性地位。但是這種混合高斯模型實質(zhì)上是一種淺層學習網(wǎng)絡建模,特征的狀態(tài)空間分布不能夠被充分描述。而且,使用混合高斯模型建模方式數(shù)據(jù)的特征維數(shù)通常只有幾十維,這使得特征之間的相關(guān)性不能被充分描述。最后混合高斯模型建模實質(zhì)上是一種似然概率建模方式,即使一些模式分類之間的區(qū)分性能夠通過區(qū)分度訓練模擬得到,但是效果有限。

從2009年開始,微軟亞洲研究院的語音識別專家們和深度學習領(lǐng)軍人物Hinton取得合作。2011年微軟公司推出了基于深度神經(jīng)網(wǎng)絡的語音識別系統(tǒng),這一成果將語音識別領(lǐng)域已有的技術(shù)框架完全改變。采用深度神經(jīng)網(wǎng)絡后,樣本數(shù)據(jù)特征間相關(guān)性信息得以充分表示,將連續(xù)的特征信息結(jié)合構(gòu)成高維特征,通過高維特征樣本對深度神經(jīng)網(wǎng)絡模型進行訓練。由于深度神經(jīng)網(wǎng)絡采用了模擬人腦神經(jīng)架構(gòu),通過逐層地進行數(shù)據(jù)特征提取,最終得到適合進行模式分類處理的理想特征。深度神經(jīng)網(wǎng)絡建模技術(shù),在實際線上應用時,能夠很好地和傳統(tǒng)語音識別技術(shù)結(jié)合,語音識別系統(tǒng)識別率大幅提升。

國際上,谷歌也使用深層神經(jīng)網(wǎng)絡對聲音進行建模,是最早在深度神經(jīng)網(wǎng)絡的工業(yè)化應用領(lǐng)域取得突破的企業(yè)之一。但谷歌的產(chǎn)品中使用的深度神經(jīng)網(wǎng)絡架構(gòu)只有4、5層,與之相比百度使用的深度神經(jīng)網(wǎng)絡架構(gòu)多達9層,正是這種結(jié)構(gòu)上的差別使深度神經(jīng)網(wǎng)絡在線學習的計算難題得以更好的解決。這使得百度的線上產(chǎn)品能夠采用更加復雜的神經(jīng)網(wǎng)絡模型。這種結(jié)構(gòu)差異的核心其實是百度更好地解決了深度神經(jīng)網(wǎng)絡在線計算的技術(shù)難題,因此百度線上產(chǎn)品可以采用更復雜的網(wǎng)絡模型。這對將來拓展大規(guī)模語料數(shù)據(jù)對深度神經(jīng)網(wǎng)絡模型的訓練有更大的幫助。

2、深度學習在圖像識別領(lǐng)域研究現(xiàn)狀

對于圖像的處理是深度學習算法最早嘗試應用的領(lǐng)域。

早在1989年,加拿大多倫多大學教授Yann LeCun就和他的同事們一起提出了卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks)。卷積神經(jīng)網(wǎng)絡也稱為CNN,它是一種包含卷積層的深度神經(jīng)網(wǎng)絡模型。

通常一個卷積神經(jīng)網(wǎng)絡架構(gòu)包含兩個可以通過訓練產(chǎn)生的非線性卷積層,兩個固定的子采樣層和一個全連接層,隱藏層的數(shù)量一般至少在5個以上。

CNN的架構(gòu)設計是受到生物學家Hubel和Wiesel的動物視覺模型啟發(fā)而發(fā)明的,尤其是模擬動物視覺皮層V1層和V2層中簡單細胞(Simple Cell)和復雜細胞(Complex Cell)在視覺系統(tǒng)的功能。

起初卷積神經(jīng)網(wǎng)絡在小規(guī)模的應用問題上取得了當時世界最好成果。但在很長一段時間里一直沒有取得重大突破。主要原因是由于卷積神經(jīng)網(wǎng)絡應用在大尺寸圖像上一直不能取得理想結(jié)果,比如對于像素數(shù)很大的自然圖像內(nèi)容的理解,這使得它沒有引起計算機視覺研究領(lǐng)域足夠的重視。

直到2012年10月,Hinton教授以及他的兩個學生采用更深的卷積神經(jīng)網(wǎng)絡模型在著名的ImageNet問題上取得了世界最好成果,使得對于圖像識別的研究工作前進了一大步。Hinton構(gòu)建的深度神經(jīng)網(wǎng)絡模型是使用原始的自然圖像訓練的,沒有使用任何人工特征提取方法。

自卷積神經(jīng)網(wǎng)絡提出以來,在圖像識別問題上并沒有取得質(zhì)的提升和突破,直到2012年Hinton構(gòu)建的深度神經(jīng)網(wǎng)絡才取得驚人成果。這主要是因為對算法的改進,在網(wǎng)絡的訓練中引入了權(quán)重衰減的概念,有效的減小權(quán)重幅度,防止網(wǎng)絡過擬合。更關(guān)鍵的是計算機計算能力的提升,GPU加速技術(shù)的發(fā)展,這使得在訓練過程中可以產(chǎn)生更多的訓練數(shù)據(jù),使網(wǎng)絡能夠更好的擬合訓練樣本。

2012年國內(nèi)互聯(lián)網(wǎng)巨頭百度公司將相關(guān)最新技術(shù)成功應用到人臉識別和自然圖像識別問題,并推出了相應的產(chǎn)品?,F(xiàn)在深度學習網(wǎng)絡模型已能夠理解和識別一般的自然圖像。深度學習模型不僅大幅提高了圖像識別的精度,同時也避免了需要消耗大量的時間進行人工特征提取的工作,使得在線運算效率大大提升。深度學習將有可能取代以往人工和機器學習相結(jié)合的方式成為主流圖像識別技術(shù)。

3、深度學習在自然語言處理領(lǐng)域研究現(xiàn)狀

自然語言處理(NLP)問題是深度學習在除了語音和圖像處理之外的另一個重要應用領(lǐng)域。

數(shù)十年以來,自然語言處理的主流方法是基于統(tǒng)計的模型,人工神經(jīng)網(wǎng)絡也是基于統(tǒng)計方法模型之一,但在自然語言處理領(lǐng)域卻一直沒有被重視。語言建模是最早采用神經(jīng)網(wǎng)絡進行自然語言處理的問題。

美國的NEC研究院最早將深度學習引入到自然語言處理研究工作中,其研究人員從2008年起采用將詞匯映射到一維矢量空間方法和多層一維卷積結(jié)構(gòu)去解決詞性標注、分詞、命名實體識別和語義角色標注四個典型的自然語言處理問題。他們構(gòu)建了同一個網(wǎng)絡模型用于解決四個不同問題,都取得了相當精確的結(jié)果。總體而言,深度學習在自然語言處理問題上取得的成果和在圖像語音識別方面還有相當?shù)牟罹?,仍有待深入探索?/p>

由于深度學習能夠很好地解決一些復雜問題,近年來許多研究人員對其進行了深人研究,出現(xiàn)了許多有關(guān)深度學習研究的新進展。

下面分別從初始化方法、網(wǎng)絡層數(shù)和激活函數(shù)的選擇、模型結(jié)構(gòu)兩個個方面對近幾年深度學習研究的新進展進行介紹。

1、 初始化方法、網(wǎng)絡層數(shù)和激活函數(shù)的選擇

研究人員試圖搞清網(wǎng)絡初始值的設定與學習結(jié)果之間的關(guān)系。 Erhan等人在軌跡可視化研究中指出即使從相近的值開始訓練深度結(jié)構(gòu)神經(jīng)網(wǎng)絡,不同的初始值也會學習到不同的局部極值,同時發(fā)現(xiàn)用無監(jiān)督預訓練初始化模型的參數(shù)學習得到的極值與隨機初始化學習得到的極值差異比較大,用無監(jiān)督預訓練初始化模型的參數(shù)學習得到的模型具有更好的泛化誤差。Bengio與Krueger等人指出用特定的方法設定訓練樣例的初始分布和排列順序可以產(chǎn)生更好的訓練結(jié)果,用特定的方法初始化參數(shù),使其與均勻采樣得到的參數(shù)不同,會對梯度下降算法訓練的結(jié)果產(chǎn)生很大的影響。Glorot等人指出通過設定一組初始權(quán)值使得每一層深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的Jacobian矩陣(描述了一個向量值函數(shù)的每個輸出分量相對于每個輸入分量的變化率的矩陣)的奇異值接近1,在很大程度上減小了監(jiān)督深度結(jié)構(gòu)神經(jīng)網(wǎng)絡和有預訓練過程設定初值的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡之間的學習結(jié)果差異。另外,用于深度學習的學習算法通常包含許多超參數(shù),一些常用的超參數(shù)(超參數(shù)是在訓練模型之前設置的參數(shù),而不是通過訓練數(shù)據(jù)來學習的參數(shù)。),尤其適用于基于反向傳播的學習算法和基于梯度的優(yōu)化算法。

參數(shù)初始化

深度學習的參數(shù)初始化的原理是為了使得模型在訓練過程中更容易收斂到最優(yōu)解。在深度學習中,模型的參數(shù)通常是通過隨機初始化來得到的。如果參數(shù)的初始值過大或過小,都會導致模型的訓練變得困難,甚至無法收斂。因此,參數(shù)初始化方法的目的是將參數(shù)初始化為一個適當?shù)姆秶?,使得模型在訓練過程中更容易收斂。 常用的參數(shù)初始化方法包括 Xavier 初始化和 He 初始化。Xavier 初始化是根據(jù)輸入和輸出的維度來進行參數(shù)初始化的方法,可以使得每一層的輸出方差相等。而 He 初始化則是針對 ReLU 激活函數(shù)的初始化方法,可以避免梯度消失問題。 需要注意的是,不同的模型和任務可能需要不同的參數(shù)初始化方法,因此在實際應用中需要根據(jù)具體情況選擇合適的初始化方法。

硬核版本:

基于梯度的優(yōu)化算法

基于梯度的優(yōu)化算法: 梯度是指一個向量,它指向函數(shù)在某一點處增加最快的方向。在機器學習和優(yōu)化領(lǐng)域,基于梯度的方法被廣泛應用于求解函數(shù)的最小值或最大值。這些方法通過計算函數(shù)在當前點處的梯度,并沿著梯度的反方向更新當前點的位置,以逐步接近函數(shù)的最小值或最大值。常見的基于梯度的方法包括梯度下降、共軛梯度等。

用一個直線來擬合這三個點,直線方程是y=wx+b,假設斜率w已知想要找到一個最合適的b。 判定直線方程好壞標準:三個點到直線的距離來衡量,然后將距離的寫成一個最小二乘的方程,即損失函數(shù)

目標:找到解決b,讓損失函數(shù)最小。將直線方程帶入到損失函數(shù)中得到如下方程,損失函數(shù)是關(guān)于b的一個二次函數(shù)。其他系數(shù)可以計算出來。二次函數(shù)找最小的b值很容易

梯度下降算法:就是隨便給出b的值經(jīng)過迭代優(yōu)化的方式找到最好的值 求出初始狀態(tài)下的斜率的絕對值|dL/db|然后乘以一個常數(shù) ε (epsilon),然后去更新b的值。 b= b - ε *(dL/db)。單個點的(dL/db)就是梯度值,需要計算出所有梯度然后取平均值g = ,ε就是學習率,人為設定,來控制梯度下降步長。

按照這個思路當點越來越多時需要計算出所有點的梯度,保存下來,內(nèi)存開銷大,然后取平均值,速度較慢。

改進:隨機取值(類似于等比抽樣)求梯度取平均,隨機梯度下降算法。并非所有情況都有效。

為了讓學習率 ε 自動變化,引入變量r,r時梯度大小隨時間的積累量的變化率,用學習率 ε除以r,再來乘以梯度。

總結(jié):

那么同理w的值也能使用同樣的思路來找到一個合適的值

反向傳播: 這個算法主要用于神經(jīng)網(wǎng)絡模型中的權(quán)重更新,以便最小化預測誤差。在反向傳播算法中,誤差被反向傳遞回神經(jīng)網(wǎng)絡中,以便調(diào)整每個權(quán)重的值。這個算法使用鏈式法則來計算誤差對于每個權(quán)重的影響,從而更新它們的值。 繼續(xù)使用線性擬合的例子。 用最小二乘法表達損失函數(shù),其中ygt是真實值,假設w=0.8,b=0.2。x=1.5得到y(tǒng)=1.4,但是此時真實值是0.8,則損失函數(shù)值為0.18。如何來調(diào)整w,b呢?

根據(jù)梯度下降算法計算損失函數(shù)L對于w和b的梯度值,即偏導數(shù),然后再沿著梯度的反方向更新兩個參數(shù)。 為了更容易計算損失函數(shù)L對于w,b的偏導,最好先計算一個中間量就是損失函數(shù)L對y的偏導這樣L對w的偏導就可以寫成L對y的偏導乘以y對w的偏導(即求到的鏈式法則)同時也可以計算出L對b的偏導,通過這種反向從后向前的方式得到參數(shù)梯度的解析式 這種沿著黃色箭頭從后向前計算梯度值的方法就是方向傳播算法

在深度學習框架中所有單元都有定義的向前傳播和反向傳播函數(shù)這樣就可以;利用方向傳播算法來更新億萬的網(wǎng)絡參數(shù)

總結(jié):

選擇不同的網(wǎng)絡隱層數(shù)和不同的非線性激活函數(shù)會對學習結(jié)果產(chǎn)生不同的影響。 Glorot等人研究了隱層非線性映射關(guān)系的選擇和網(wǎng)絡的深度相互影響的問題,討論了隨機初始化的標準梯度下降算法用于深度結(jié)構(gòu)神經(jīng)網(wǎng)絡學習得到不好的學習性能的原因。Glorot等人觀察不同非線性激活函數(shù)對學習結(jié)果的影響,得到邏輯斯蒂S型激活單元的均值會驅(qū)使頂層和隱層進入飽和,因而邏輯斯蒂S型激活單元不適合用隨機初始化梯度算法學習深度結(jié)構(gòu)神經(jīng)網(wǎng)絡;并據(jù)此提出了標準梯度下降算法的一種新的初始化方案來得到更快的收斂速度。Bengio等人從理論上說明深度學習結(jié)構(gòu)的表示能力隨著神經(jīng)網(wǎng)絡深度的增加以指數(shù)的形式增加,但是這種增加的額外表示能力會引起相應局部極值數(shù)量的增加,使得在其中尋找最優(yōu)值變得困難。

激活函數(shù): 激活函數(shù)是一種函數(shù),它接收神經(jīng)元的輸入并產(chǎn)生輸出。在神經(jīng)網(wǎng)絡中,激活函數(shù)通常用于非線性轉(zhuǎn)換,以便神經(jīng)網(wǎng)絡可以學習非線性關(guān)系。常見的激活函數(shù)包括sigmoid、ReLU、tanh等。

給出一個線性變換函數(shù)y1=w1x+b1,可以吧x的值映射到一條直線上,在進行嵌套一次給出關(guān)于y1線性變換函數(shù)y2=w2y1+b2;那么x與y2的關(guān)系也是線性的y2=(w1w2)x+w2b1+b2。以此類推有許多層線性變換到最終yn=(w1w2…wn)x + wn b(n-1) … + bn,yn與x永遠都是線性的。最終只能解決線性問題。 怎么解決非線性問題,加入一個非線性函數(shù)

類似于神經(jīng)元的激活,將這個非線性函數(shù)叫做激活函數(shù)

激活函數(shù)的條件: 通過反向傳播在更新w,b的過程中,需要知道o對y的偏導數(shù)即f的倒數(shù),所以激活函數(shù)f必須也是連續(xù)可導的。另外為了數(shù)值的穩(wěn)定性所以激活函數(shù)要映射所有實數(shù),定義域一定是所有實數(shù)R 。并且激活函數(shù)只是增加非線性并不改變輸入的響應狀態(tài),即與輸入的趨勢相同,所以一定是單調(diào)遞增的,但是又要保證一定的非線性所以就是一個單調(diào)的S型曲線。

研究者首先想到的是sigmoid函數(shù),非線性函數(shù)值域(0,1)。

sigmoid函數(shù)的導數(shù)就是關(guān)于y的鐘型圖形最大值是0.25。 當y很大或者很小時導數(shù)值為0。 在正負無窮處梯度為0的函數(shù)叫做飽和函數(shù),無論如何取值導數(shù)最大值是0.25,這就意味著神經(jīng)網(wǎng)絡在反向傳播時,分層梯度會被動的縮小大約0.25 ,當網(wǎng)絡層數(shù)較多時或者某層出現(xiàn)極端的輸出反向傳播的鏈式法則,導致前幾層的梯度幾乎為0,參數(shù)不會消失,層數(shù)失去作用,這就是梯度消失現(xiàn)象

。除此之外sigmoid函數(shù)的取值是(0,1) ,都大于0,叫做非零均值函數(shù)。 當一個神經(jīng)元的輸入是x1 ,x2,是上一層sigmoid函數(shù)的輸出所以都大于0。進行反向傳播后得到 w1 w2的梯度,黃色字體的式子始終大于0 ,這兩個參數(shù)的梯度正負性取決于損失函數(shù)L對o的導數(shù),隨意w1w2的梯度符號始終一致,強制的同時向一個方向更新,會導致神經(jīng)網(wǎng)絡更慢的收斂 。

綜上所述sigmoid函數(shù)會導致梯度消失和不易收斂問題

為了解決上述問題引入了雙曲正切函數(shù)tanh,在坐標軸中的圖像以及導數(shù)圖像如下:值域(-1,1),定義域R,零均值函數(shù)性能會由于sigmoid函數(shù),但是也是一個飽和函數(shù)會導致梯度消失現(xiàn)象

修正線性單元函數(shù), 導數(shù)圖像如下,只有當神經(jīng)元的輸出大于0的時候才會回傳梯度 ,小于0則不會反向傳播。非零均值函數(shù), 非飽和函數(shù)。在訓練過程中可以動態(tài)控制神經(jīng)元的狀態(tài)要么激活大于0 ,要么等于0被抑制,稀疏性。 如果輸入的參數(shù)發(fā)生了一個很小的改動只需要少部分神經(jīng)元改變狀態(tài),不需要全局調(diào)整,信息的耦合程度降低 。動態(tài)開啟關(guān)閉神經(jīng)元的做法 可以支持不同輸入維度和中間層維度的學習,這種稀疏的表達方式一般是線性可分或者弱線性可分的,可以降低網(wǎng)絡訓練的難度,雖然輸出的特征是稀疏的但是被激活的輸出保持著原有的表達能力。

稀疏性=》信息耦合程度低,表達維度尺寸可變,稀疏表達線性可分,保持特征的表達能力

問題:非零均值函數(shù)造成不易收斂,可以通過歸一化解決 輸出沒有上界如果閑心單元輸出過大或者網(wǎng)絡是循環(huán)結(jié)構(gòu)會導致梯度累積超出計算機計算上限,這種叫做梯度爆炸現(xiàn)象需要重新設計網(wǎng)絡結(jié)構(gòu)和參數(shù)初始化來解決

在訓練過程中一些神經(jīng)元始終不會被激活 ,導致網(wǎng)絡表達能力下降問題這種現(xiàn)象是神經(jīng)元壞死現(xiàn)象

在2013年提出了下面函數(shù)避免神經(jīng)元函數(shù)壞死

2015年提出下列函數(shù)將負半軸的梯度值更換成可以學習的參數(shù)是否保持稀疏性和抑制神經(jīng)元都要通過訓練過程來確定

總結(jié):

2、 模型結(jié)構(gòu)

(1)、DBN的結(jié)構(gòu)及其變種: 采用二值可見單元和隱單元RBM作為結(jié)構(gòu)單元的DBN,在MNIST等數(shù)據(jù)集上表現(xiàn)出很好的性能。近幾年,具有連續(xù)值單元的RBM,如mcRBM、mPoT(“Multi-Perspective Object Tracking”(多角度目標跟蹤))模型和spike—and-slab RBM等已經(jīng)成功應用。Spike—and—slab RBM中spike表示以0為中心的離散概率分布,slab表示在連續(xù)域上的稠密均勻分布,可以用吉布斯采樣對spike—and—slab RBM進行有效推斷,得到優(yōu)越的學習性能。

DBN: 是一種深度信念網(wǎng)絡(Deep Belief Network)的縮寫。它是一種由多個隱層組成的前饋神經(jīng)網(wǎng)絡,通常用于無監(jiān)督學習任務,例如特征提取和數(shù)據(jù)降維。DBN的基本單元是受限玻爾茲曼機(Restricted Boltzmann Machine,RBM),多個RBM可以組成一個DBN。

RBM: 是受限玻爾茲曼機(Restricted Boltzmann Machine)的縮寫。它是一種用于無監(jiān)督學習的神經(jīng)網(wǎng)絡模型,通常用于特征提取和數(shù)據(jù)降維。RBM由一個可見層和一個隱層組成,其中可見層和隱層之間的連接是無向的,并且節(jié)點之間沒有連接。在訓練過程中,RBM會自動學習輸入數(shù)據(jù)中的特征,并將其編碼為一組隱藏的特征表示。RBM使用馬爾可夫鏈蒙特卡羅(Markov Chain Monte Carlo,MCMC)算法進行訓練,其中包括對比散度(Contrastive Divergence)等技術(shù)。

MNIST: 是一個手寫數(shù)字數(shù)據(jù)集,包含60,000個訓練圖像和10,000個測試圖像。這些圖像都是28x28像素的灰度圖像,表示0到9之間的數(shù)字。MNIST數(shù)據(jù)集通常用于測試圖像分類算法的性能。在機器學習中,MNIST數(shù)據(jù)集被廣泛用于訓練和測試各種分類算法,如神經(jīng)網(wǎng)絡、支持向量機和決策樹等。

(2)、和–積網(wǎng)絡; 深度學習最主要的困難是配分函數(shù)的學習,如何選擇深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的結(jié)構(gòu)使得配分函數(shù)更容易計算? Poon等人提出一種新的深度模型結(jié)構(gòu)----和–積網(wǎng)絡(sum—product network,SPN),引入多層隱單元表示配分函數(shù),使得配分函數(shù)更容易計算SPN是一種概率圖模型,用于表示概率分布。它由一些基本的節(jié)點組成,包括和節(jié)點和積節(jié)點。和節(jié)點計算其子節(jié)點的和,而積節(jié)點計算其子節(jié)點的乘積。SPN可以用于許多機器學習任務,例如分類、回歸和密度估計。連接節(jié)點的邊帶有權(quán)值,它們在Caltech-101和Olivetti兩個數(shù)據(jù)集上進行實驗證明了SPN的性能優(yōu)于DBN和最近鄰方法。

配分函數(shù): 是用于計算概率分布中所有可能狀態(tài)的總和,它在很多機器學習模型中都扮演著重要的角色。然而,計算配分函數(shù)通常是一個復雜且耗時的過程,特別是在深度學習中,這一問題變得更加嚴重。因此,研究人員一直在尋找新的方法來解決這個問題,例如使用Monte Carlo方法或近似算法來估計配分函數(shù)。

(3)、基于rectified單元的學習: Glorot與Mesnil等人用降噪自編碼模型來處理高維輸入數(shù)據(jù)。與通常的S型和正切非線性隱單元相比,該自編碼模型使用rectified單元,使隱單元產(chǎn)生更加稀疏的表示。對于高維稀疏數(shù)據(jù),Dauphin等人采用抽樣重構(gòu)算法,訓練過程只需要計算隨機選擇的很小的樣本子集的重構(gòu)和重構(gòu)誤差,在很大程度上提高了學習速度,實驗結(jié)果顯示提速了20倍。Glorot等人提出在深度結(jié)構(gòu)神經(jīng)網(wǎng)絡中,在圖像分類和情感分類問題中用rectified非線性神經(jīng)元代替雙曲正切或S型神經(jīng)元,指出rectified神經(jīng)元網(wǎng)絡在零點產(chǎn)生與雙曲正切神經(jīng)元網(wǎng)絡相當或者有更好的性能,能夠產(chǎn)生有真正零點的稀疏表示,非常適合本質(zhì)稀疏數(shù)據(jù)的建模,在理解訓練純粹深度監(jiān)督神經(jīng)網(wǎng)絡的困難,搞清使用或不使用無監(jiān)督預訓練學習的神經(jīng)網(wǎng)絡造成的性能差異方面,可以看做新的里程碑;Glorot等人還提出用增加L1正則化項來促進模型稀疏性,使用無窮大的激活函數(shù)防止算法運行過程中可能引起的數(shù)值問題。在此之前,Nair等人提出在RBM環(huán)境中rectifed神經(jīng)元產(chǎn)生的效果比邏輯斯蒂S型激活單元好,他們用無限數(shù)量的權(quán)值相同但是負偏差變大的一組單元替換二值單元,生成用于RBM的更好的一類隱單元,將RBM泛化,可以用噪聲rectified線性單元(rectified linear units)有效近似這些S型單元。用這些單元組成的RBM在NORB數(shù)據(jù)集上進行目標識別以及在數(shù)據(jù)集上進行已標記人臉實際驗證,得到比二值單元更好的性能,并且可以更好地解決大規(guī)模像素強度值變化很大的問題。

自編碼: 是一種無監(jiān)督學習算法,它可以從輸入數(shù)據(jù)中學習到一種壓縮表示,并用這種表示來重建輸入數(shù)據(jù)。降噪自編碼模型是一種特殊的自編碼模型,它在訓練過程中會向輸入數(shù)據(jù)中添加噪聲,以提高模型的魯棒性和泛化能力。這種模型在圖像處理、語音識別、自然語言處理等領(lǐng)域有廣泛的應用。

rectified單元: 它是一種在神經(jīng)網(wǎng)絡中經(jīng)常使用的激活函數(shù)。激活函數(shù)是神經(jīng)網(wǎng)絡中的一種數(shù)學函數(shù),它將輸入轉(zhuǎn)換為輸出,并在整個網(wǎng)絡中傳遞信號。Rectified Linear Unit(ReLU)是一種非線性激活函數(shù),它在輸入為負數(shù)時輸出為0,而在輸入為正數(shù)時輸出等于輸入本身。這使得ReLU比其他激活函數(shù)更容易優(yōu)化和計算,并且在許多深度學習應用中表現(xiàn)出色。

(4)、卷積神經(jīng)網(wǎng)絡: 研究了用生成式子抽樣單元組成的卷積神經(jīng)網(wǎng)絡,在MNIST數(shù)字識別任務和Cahech一101目標分類基準任務上進行實驗,顯示出非常好的學習性能。Huang等人提出一種新的卷積學習模型----局部卷積RBM,利用對象類中的總體結(jié)構(gòu)學習特征,不假定圖像具有平穩(wěn)特征,在實際人臉數(shù)據(jù)集上進行實驗,得到性能很好的實驗結(jié)果.

三個典型的局部特征:

將原始的圖像矩陣化,

分別制造三個特征的小矩陣(卷積核): 用卷積核掃描原始圖像,將對應位置的元素相乘后相加,用一個新的矩陣記錄新的矩陣。當被掃過的位置與卷積核的特征越接近計算得到的數(shù)值越大,在結(jié)果圖片中的顏色月亮,特征越明顯。單個卷積核處理單個特征。這個操作就是卷積

池化: 卷積后可能還會有很多弱的特征,并且此時圖片數(shù)據(jù)還很大,還需要池化壓縮數(shù)據(jù),弱化所有特征。 原理:對一塊區(qū)域內(nèi)的結(jié)果去等效值,可以取最大值也可以取平均值

池化可以加快計算速度,也能避免過擬合 激活層:對卷積層輸出進行一個非線性映射

卷積是尋找特征池化是壓縮數(shù)據(jù)激活是加強特征。三種操作可以重復的利用拼接組合,得到想要的圖像

三、深度學習模型結(jié)構(gòu)

深度神經(jīng)網(wǎng)絡是由多個單層非線性網(wǎng)絡疊加而成的,常見的單層網(wǎng)絡按照編碼解碼情況分為3類:只包含編碼器部分、只包含解碼器部分、既有編碼器部分也有解碼器部分。編碼器提供從輸入到隱含特征空間的自底向上的映射,解碼器以重建結(jié)果盡可能接近原始輸入為目標將隱含特征映射到輸入空間。

人的視覺系統(tǒng)對信息的處理是分級的。從低級的提取邊緣特征到形狀(或者目標等),再到更高層的目標、目標的行為等,即底層特征組合成了高層特征,由低到高的特征表示越來越抽象。深度學習借鑒的這個過程就是建模的過程。

深度神經(jīng)網(wǎng)絡可以分為3類,

前饋深度網(wǎng)絡(feed-forwarddeep networks, FFDN),由多個編碼器層疊加而成,如多層感知機(multi-layer perceptrons, MLP)、卷積神經(jīng)網(wǎng)絡(convolutionalneural networks, CNN)等。

反饋深度網(wǎng)絡(feed-back deep networks, FBDN),由多個解碼器層疊加而成,如反卷積網(wǎng)絡(deconvolutionalnetworks, DN)、層次稀疏編碼網(wǎng)絡(hierarchical sparse coding, HSC)等。

雙向深度網(wǎng)絡(bi-directionaldeep networks, BDDN),通過疊加多個編碼器層和解碼器層構(gòu)成(每層可能是單獨的編碼過程或解碼過程,也可能既包含編碼過程也包含解碼過程),如深度玻爾茲曼機(deep Boltzmann machines, DBM)、深度信念網(wǎng)絡(deep beliefnetworks, DBN)、棧式自編碼器(stacked auto-encoders, SAE)等。

1、 前潰深度網(wǎng)絡

前饋神經(jīng)網(wǎng)絡是最初的人工神經(jīng)網(wǎng)絡模型之一。在這種網(wǎng)絡中,信息只沿一個方向流動,從輸入單元通過一個或多個隱層到達輸出單元,在網(wǎng)絡中沒有封閉環(huán)路。典型的前饋神經(jīng)網(wǎng)絡有多層感知機和卷積神經(jīng)網(wǎng)絡等。F. Rosenblatt提出的感知機是最簡單的單層前向人工神經(jīng)網(wǎng)絡,但隨后M. Minsky等證明單層感知機無法解決線性不可分問題(如異或操作),這一結(jié)論將人工神經(jīng)網(wǎng)絡研究領(lǐng)域引入到一個低潮期,直到研究人員認識到多層感知機可解決線性不可分問題,以及反向傳播算法與神經(jīng)網(wǎng)絡結(jié)合的研究,使得神經(jīng)網(wǎng)絡的研究重新開始成為熱點。但是由于傳統(tǒng)的反向傳播算法,具有收斂速度慢、需要大量帶標簽的訓練數(shù)據(jù)、容易陷入局部最優(yōu)等缺點,多層感知機的效果并不是十分理想。

1984年日本學者K. Fukushima等基于感受野概念,提出的神經(jīng)認知機可看作卷積神經(jīng)網(wǎng)絡的一種特例。Y. Lecun等提出的卷積神經(jīng)網(wǎng)絡是神經(jīng)認知機的推廣形式。

卷積神經(jīng)網(wǎng)絡是由多個單層卷積神經(jīng)網(wǎng)絡組成的可訓練的多層網(wǎng)絡結(jié)構(gòu)。每個單層卷積神經(jīng)網(wǎng)絡包括卷積、非線性變換和下采樣3個階段,其中下采樣階段不是每層都必需的。每層的輸入和輸出為一組向量構(gòu)成的特征圖(feature map)(第一層的原始輸入信號可以看作一個具有高稀疏度的高維特征圖)。

例如,輸入部分是一張彩色圖像,每個特征圖對應的則是一個包含輸入圖像彩色通道的二維數(shù)組(對于音頻輸入,特征圖對應的是一維向量;對于視頻或立體影像,對應的是三維數(shù)組);對應的輸出部分,每個特征圖對應的是表示從輸入圖片所有位置上提取的特定特征。

(1)、單層卷積神經(jīng)網(wǎng)絡:

卷積階段,通過提取信號的不同特征實現(xiàn)輸入信號進行特定模式的觀測。其觀測模式也稱為卷積核,其定義源于由D. H. Hubel等基于對貓視覺皮層細胞研究提出的局部感受野概念。每個卷積核檢測輸入特征圖上所有位置上的特定特征,實現(xiàn)同一個輸入特征圖上的權(quán)值共享。為了提取輸入特征圖上不同的特征,使用不同的卷積核進行卷積操作。卷積階段的輸入是由n1個n2n3大小的二維特征圖構(gòu)成的三維數(shù)組。每個特征圖記為xi,該階段的輸出y,也是個三維數(shù)組,由m1個m2m3大小的特征圖構(gòu)成。在卷積階段,連接輸入特征圖xi和輸出特征圖yj的權(quán)值記為wij,即可訓練的卷積核(局部感受野),卷積核的大小為k2*k3,輸出特征圖為yj。

非線性階段,對卷積階段得到的特征按照一定的原則進行篩選,篩選原則通常采用非線性變換的方式,以避免線性模型表達能力不夠的問題。非線性階段將卷積階段提取的特征作為輸入,進行非線性映射R=h(y)。傳統(tǒng)卷積神經(jīng)網(wǎng)絡中非線性操作采用sigmoid、tanh 或softsign等飽和非線性(saturating nonlinearities)函數(shù),近幾年的卷積神經(jīng)網(wǎng)絡中多采用不飽和非線性(non-saturating nonlinearity)函數(shù)ReLU(rectifiedlinear units)。在訓練梯度下降時,ReLU比傳統(tǒng)的飽和非線性函數(shù)有更快的收斂速度,因此在訓練整個網(wǎng)絡時,訓練速度也比傳統(tǒng)的方法快很多。

下采樣階段,對每個特征圖進行獨立操作,通常采用平均池化(average pooling)或者最大池化(max pooling)的操作。

平均池化依據(jù)定義的鄰域窗口計算特定范圍內(nèi)像素的均值PA,鄰域窗口平移步長大于1(小于等于池化窗口的大小);最大池化則將均值PA替換為最值PM輸出到下個階段。 池化操作后,輸出特征圖的分辨率降低,但能較好地保持高分辨率特征圖描述的特征。 一些卷積神經(jīng)網(wǎng)絡完全去掉下采樣階段,通過在卷積階段設置卷積核窗口滑動步長大于1達到降低分辨率的目的。

(2)、卷積神經(jīng)網(wǎng)絡:

將單層的卷積神經(jīng)網(wǎng)絡進行多次堆疊,前一層的輸出作為后一層的輸入,便構(gòu)成卷積神經(jīng)網(wǎng)絡。其中每2個節(jié)點間的連線,代表輸入節(jié)點經(jīng)過卷積、非線性變換、下采樣3個階段變?yōu)檩敵龉?jié)點,一般最后一層的輸出特征圖后接一個全連接層和分類器。

為了減少數(shù)據(jù)的過擬合,最近的一些卷積神經(jīng)網(wǎng)絡,在全連接層引入"Dropout"或"DropConnect"的方法,即在訓練過程中以一定概率P將隱含層節(jié)點的輸出值(對于"DropConnect"為輸入權(quán)值)清0,而用反向傳播算法更新權(quán)值時,不再更新與該節(jié)點相連的權(quán)值。但是這2種方法都會降低訓練速度。

在訓練卷積神經(jīng)網(wǎng)絡時,最常用的方法是采用反向傳播法則以及有監(jiān)督的訓練方式。

網(wǎng)絡中信號是前向傳播的,即從輸入特征向輸出特征的方向傳播,第1層的輸入X,經(jīng)過多個卷積神經(jīng)網(wǎng)絡層,變成最后一層輸出的特征圖O。將輸出特征圖O與期望的標簽T進行比較,生成誤差項E。通過遍歷網(wǎng)絡的反向路徑,將誤差逐層傳遞到每個節(jié)點,根據(jù)權(quán)值更新公式,更新相應的卷積核權(quán)值wij。 在訓練過程中,網(wǎng)絡中權(quán)值的初值通常隨機初始化(也可通過無監(jiān)督的方式進行預訓練),網(wǎng)絡誤差隨迭代次數(shù)的增加而減少,并且這一過程收斂于一個穩(wěn)定的權(quán)值集合,額外的訓練次數(shù)呈現(xiàn)出較小的影響。

(3)、卷積神經(jīng)網(wǎng)絡的特點:

卷積神經(jīng)網(wǎng)絡的特點在于,采用原始信號(一般為圖像)直接作為網(wǎng)絡的輸入,避免了傳統(tǒng)識別算法中復雜的特征提取和圖像重建過程。

局部感受野方法獲取的觀測特征與平移、縮放和旋轉(zhuǎn)無關(guān)。

卷積階段利用權(quán)值共享結(jié)構(gòu)減少了權(quán)值的數(shù)量進而降低了網(wǎng)絡模型的復雜度,這一點在輸入特征圖是高分辨率圖像時表現(xiàn)得更為明顯。同時,下采樣階段利用圖像局部相關(guān)性的原理對特征圖進行子抽樣,在保留有用結(jié)構(gòu)信息的同時有效地減少數(shù)據(jù)處理量。

CNN(convolutional neuralnetworks)是一種有監(jiān)督深度的模型架構(gòu),尤其適合二維數(shù)據(jù)結(jié)構(gòu)。目前研究與應用都較廣泛,在行人檢測、人臉識別、信號處理等領(lǐng)域均有新的成果與進展。它是帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡,也是首個真正意義上成功訓練多層網(wǎng)絡的識別算法。

CNN與傳統(tǒng)ANN 算法的主要區(qū)別在于權(quán)值共享以及非全連接。權(quán)值共享能夠避免算法過擬合,通過拓撲結(jié)構(gòu)建立層與層間非全連接空間關(guān)系來降低訓練參數(shù)的數(shù)目,同時也是CNN的基本思想。CNN的實質(zhì)是學習多個能夠提取輸入數(shù)據(jù)特征的濾波器,通過這些濾波器與輸入數(shù)據(jù)進行逐層卷積及池化,逐級提取隱藏在數(shù)據(jù)中拓撲結(jié)構(gòu)特征。隨網(wǎng)絡結(jié)構(gòu)層層深入,提取的特征也逐漸變得抽象,最終獲得輸入數(shù)據(jù)的平移、旋轉(zhuǎn)及縮放不變性的特征表示。較傳統(tǒng)神經(jīng)網(wǎng)絡來說,CNN將特征提取與分類過程同時進行,避免了兩者在算法匹配上的難點。

ANN: 代表“人工神經(jīng)網(wǎng)絡”(Artificial Neural Network)。人工神經(jīng)網(wǎng)絡是一種計算機模型,模仿了生物神經(jīng)元之間的相互作用,通過學習和適應來執(zhí)行任務,如分類、識別和預測。它由多個層次組成,每個層次都由許多節(jié)點或神經(jīng)元組成,這些節(jié)點通過連接傳遞信息。ANN被廣泛應用于機器學習和人工智能領(lǐng)域。

CNN主要由卷積層與下采樣層交替重復出現(xiàn)構(gòu)建網(wǎng)絡結(jié)構(gòu),卷積層用來提取輸入神經(jīng)元數(shù)據(jù)的局部特征,下采樣層用來對其上一層提取的數(shù)據(jù)進行縮放映射以減少訓練數(shù)據(jù)量,也使提取的特征具有縮放不變性。一般來說,可以選擇不同尺度的卷積核來提取多尺度特征,使提取的特征具有旋轉(zhuǎn)、平移不變性。輸入圖像與可學習的核進行卷積,卷積后的數(shù)據(jù)經(jīng)過激活函數(shù)得到一個特征圖。卷積層的特征圖可以由多個輸入圖組合獲得,但對于同一幅輸入圖其卷積核參數(shù)是一致的,這也是權(quán)值共享的意義所在。卷積核的初始值并非隨機設置,而是通過訓練或者按照一定標準預先給定,如仿照生物視覺特征用Gabor 濾波器進行預處理。下采樣層通過降低網(wǎng)絡空間分辨率來增強縮放不變性。

下采樣層(Downsampling Layer) :在卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)中,下采樣層通常用于減少輸入圖像的尺寸,從而降低模型的計算復雜度和內(nèi)存消耗。常見的下采樣方法包括最大池化(Max Pooling)和平均池化(Average Pooling),它們分別在輸入圖像的不同區(qū)域取最大值或平均值,從而得到更小尺寸的輸出特征圖。下采樣層通常與卷積層交替使用,以提取更高層次的特征。

CNN的輸出層一般采用線性全連接,目前最常用的就是Softmax 分類方法。CNN的參數(shù)訓練過程與傳統(tǒng)的人工神經(jīng)網(wǎng)絡類似,采用反向傳播算法,包括前向傳播與反向傳播2個重要階段。

CNN實際應用中會遇到諸多問題,如網(wǎng)絡權(quán)值的預學習問題,收斂條件以及非全連接規(guī)則等,這些均需要實際應用中進一步解決與優(yōu)化。

卷積神經(jīng)網(wǎng)絡模型:

在無監(jiān)督預訓練出現(xiàn)之前,訓練深度神經(jīng)網(wǎng)絡通常非常困難,而其中一個特例是卷積神經(jīng)網(wǎng)絡。卷積神經(jīng)網(wǎng)絡受視覺系統(tǒng)的結(jié)構(gòu)啟發(fā)而產(chǎn)生。

第一個卷積神經(jīng)網(wǎng)絡計算模型是在Fukushima的神經(jīng)認知機中提出的,基于神經(jīng)元之間的局部連接和分層組織圖像轉(zhuǎn)換,將有相同參數(shù)的神經(jīng)元應用于前一層神經(jīng)網(wǎng)絡的不同位置,得到一種平移不變神經(jīng)網(wǎng)絡結(jié)構(gòu)形式。后來,LeCun等人在該思想的基礎上,用誤差梯度設計并訓練卷積神經(jīng)網(wǎng)絡,在一些模式識別任務上得到優(yōu)越的性能。至今,基于卷積神經(jīng)網(wǎng)絡的模式識別系統(tǒng)是最好的實現(xiàn)系統(tǒng)之一,尤其在手寫體字符識別任務上表現(xiàn)出非凡的性能。

LeCun的卷積神經(jīng)網(wǎng)絡由卷積層和子抽樣層兩種類型的神經(jīng)網(wǎng)絡層組成。每一層有一個拓撲圖結(jié)構(gòu),即在接收域內(nèi),每個神經(jīng)元與輸入圖像中某個位置對應的固定二維位置編碼信息關(guān)聯(lián)。在每層的各個位置分布著許多不同的神經(jīng)元,每個神經(jīng)元有一組輸入權(quán)值,這些權(quán)值與前一層神經(jīng)網(wǎng)絡矩形塊中的神經(jīng)元關(guān)聯(lián);同一組權(quán)值和不同輸入矩形塊與不同位置的神經(jīng)元關(guān)聯(lián)。卷積神經(jīng)網(wǎng)絡是多層的感知器神經(jīng)網(wǎng)絡,每層由多個二維平面塊組成,每個平面塊由多個獨立神經(jīng)元組成。

為了使網(wǎng)絡對平移、旋轉(zhuǎn)、比例縮放以及其他形式的變換具有不變性,對網(wǎng)絡的結(jié)構(gòu)進行一些約束限制:

(1)、特征提?。好恳粋€神經(jīng)元從上一層的局部接收域得到輸入,迫使其提取局部特征。

(2)、特征映射:網(wǎng)絡的每一個計算層由多個特征映射組成,每個特征映射都以二維平面的形式存在,平面中的神經(jīng)元在約束下共享相同的權(quán)值集。

(3)、子抽樣:該計算層跟隨在卷積層后,實現(xiàn)局部平均和子抽樣,使特征映射的輸出對平移等變換的敏感度下降。卷積神經(jīng)網(wǎng)絡通過使用接收域的局部連接,限制了網(wǎng)絡結(jié)構(gòu)。卷積神經(jīng)網(wǎng)絡的另一個特點是權(quán)值共享,但是由于同一隱層的神經(jīng)元共享同一權(quán)值集,大大減少了自由參數(shù)的數(shù)量。

卷積神經(jīng)網(wǎng)絡本質(zhì)上實現(xiàn)一種輸入到輸出的映射關(guān)系,能夠?qū)W習大量輸入與輸出之間的映射關(guān)系,不需要任何輸入和輸出之間的精確數(shù)學表達式,只要用已知的模式對卷積神經(jīng)網(wǎng)絡加以訓練,就可以使網(wǎng)絡具有輸入輸出之間的映射能力。卷積神經(jīng)網(wǎng)絡執(zhí)行的是有監(jiān)督訓練,在開始訓練前,用一些不同的小隨機數(shù)對網(wǎng)絡的所有權(quán)值進行初始化。

卷積神經(jīng)網(wǎng)絡的訓練分為兩個階段:

(1)、向前傳播階段:從樣本集中抽取一個樣本(X,Yp),將x輸入給網(wǎng)絡,信息從輸入層經(jīng)過逐級變換傳送到輸出層,計算相應的實際輸出Op;

(2)、向后傳播階段:也稱為誤差傳播階段。計算實際輸出Op與理想輸出Yp的差異。并按最小化誤差的方法調(diào)整權(quán)值矩陣。

卷積神經(jīng)網(wǎng)絡的特征檢測層通過訓練數(shù)據(jù)來進行學習,避免了顯式的特征提取,而是隱式地從訓練數(shù)據(jù)中學習特征,而且同一特征映射面上的神經(jīng)元權(quán)值相同,網(wǎng)絡可以并行學習,這也是卷積神經(jīng)網(wǎng)絡相對于其他神經(jīng)網(wǎng)絡的一個優(yōu)勢。權(quán)值共享降低了網(wǎng)絡的復雜性,特別是多維向量的圖像可以直接輸入網(wǎng)絡這一特點避免了特征提取和分類過程中數(shù)據(jù)重建的復雜度。

卷積神經(jīng)網(wǎng)絡的成功依賴于兩個假設:

(1)、每個神經(jīng)元有非常少的輸入,這有助于將梯度在盡可能多的層中進行傳播;

(2)、分層局部連接結(jié)構(gòu)是非常強的先驗結(jié)構(gòu),特別適合計算機視覺任務,如果整個網(wǎng)絡的參數(shù)處于合適的區(qū)域,基于梯度的優(yōu)化算法能得到很好的學習效果。卷積神經(jīng)網(wǎng)絡的網(wǎng)絡結(jié)構(gòu)更接近實際的生物神經(jīng)網(wǎng)絡,在語音識別和圖像處理方面具有獨特的優(yōu)越性,尤其是在視覺圖像處理領(lǐng)域進行的實驗,得到了很好的結(jié)果。

2、 反饋深度網(wǎng)絡

與前饋網(wǎng)絡不同,反饋網(wǎng)絡并不是對輸入信號進行編碼,而是通過解反卷積或?qū)W習數(shù)據(jù)集的基,對輸入信號進行反解。

前饋網(wǎng)絡是對輸入信號進行編碼的過程,而反饋網(wǎng)絡則是對輸入信號解碼的過程。典型的反饋深度網(wǎng)絡有反卷積網(wǎng)絡、層次稀疏編碼網(wǎng)絡等。

以反卷積網(wǎng)絡為例,M. D. Zeiler等提出的反卷積網(wǎng)絡模型和Y. LeCun等提出的卷積神經(jīng)網(wǎng)絡思想類似,但在實際的結(jié)構(gòu)構(gòu)件和實現(xiàn)方法上有所不同。

卷積神經(jīng)網(wǎng)絡是一種自底向上的方法,該方法的每層輸入信號經(jīng)過卷積、非線性變換和下采樣3個階段處理,進而得到多層信息。相比之下,反卷積網(wǎng)絡模型的每層信息是自頂向下的,組合通過濾波器組學習得到的卷積特征來重構(gòu)輸入信號。

層次稀疏編碼網(wǎng)絡和反卷積網(wǎng)絡非常相似,只是在反卷積網(wǎng)絡中對圖像的分解采用矩陣卷積的形式,而在稀疏編碼中采用矩陣乘積的方式。

(1)、單層反卷積網(wǎng)絡:反卷積網(wǎng)絡是通過先驗學習,對信號進行稀疏分解和重構(gòu)的正則化方法。

(2)、反卷積網(wǎng)絡:單層反卷積網(wǎng)絡進行多層疊加,可得到反卷積網(wǎng)絡。多層模型中,在學習濾波器組的同時進行特征圖的推導,第L層的特征圖和濾波器是由第L-1層的特征圖通過反卷積計算分解獲得。反卷積網(wǎng)絡訓練時,使用一組不同的信號y,求解C(y),進行濾波器組f和特征圖z的迭代交替優(yōu)化。訓練從第1層開始,采用貪心算法,逐層向上進行優(yōu)化,各層間的優(yōu)化是獨立的。

(3)、反卷積網(wǎng)絡的特點:反卷積網(wǎng)絡的特點在于,通過求解最優(yōu)化輸入信號分解問題計算特征,而不是利用編碼器進行近似,這樣能使隱層的特征更加精準,更有利于信號的分類或重建。

自動編碼器:

對于一個給定的神經(jīng)網(wǎng)絡,假設其輸出等于輸入(理想狀態(tài)下),然后通過訓練調(diào)整其參數(shù)得到每一層的權(quán)重,這樣就可以得到輸入的幾種不同的表示,這些表示就是特征。

當在原有特征的基礎上加入這些通過自動學習得到的特征時,可以大大提高精確度,這就是自動編碼(AutoEncoder)。如果再繼續(xù)加上一些約束條件的話,就可以得到新的深度學習方法。比如在自動編碼的基礎上加上稀疏性限制,就可得到稀疏自動編碼器(Sparse AutoEncoder)。

稀疏自動編碼器:

與CNN不同,深度自動編碼器是一種無監(jiān)督的神經(jīng)網(wǎng)絡學習架構(gòu)。此類架構(gòu)的基本結(jié)構(gòu)單元為自動編碼器,它通過對輸入特征X按照一定規(guī)則及訓練算法進行編碼,將其原始特征利用低維向量重新表示。

自動編碼器通過構(gòu)建類似傳統(tǒng)神經(jīng)網(wǎng)絡的層次結(jié)構(gòu),并假設輸出Y與輸入X相等,反復訓練調(diào)整參數(shù)得到網(wǎng)絡參數(shù)值。上述自編碼器若僅要求X≈Y,且對隱藏神經(jīng)元進行稀疏約束,從而使大部分節(jié)點值為0或接近0的無效值,便得到稀疏自動編碼算法。一般情況下,隱含層的神經(jīng)元數(shù)應少于輸入X的個數(shù),因為此時才能保證這個網(wǎng)絡結(jié)構(gòu)的價值。正如主成分分析(principal component analysis,PCA)算法,通過降低空間維數(shù)去除冗余,利用更少的特征來盡可能完整的描述數(shù)據(jù)信息。實際應用中將學習得到的多種隱層特征(隱層數(shù)通常多個)與原始特征共同使用,可以明顯提高算法的識別精度。

自動編碼器參數(shù)訓練方法有很多,幾乎可以采用任何連續(xù)化訓練方法來訓練參數(shù)。但由于其模型結(jié)構(gòu)不偏向生成型,無法通過聯(lián)合概率等定量形式確定模型合理性。稀疏性約束在深度學習算法優(yōu)化中的地位越來越重要,主要與深度學習特點有關(guān)。大量的訓練參數(shù)使訓練過程復雜,且訓練輸出的維數(shù)遠比輸入的維數(shù)高,會產(chǎn)生許多冗余數(shù)據(jù)信息。加入稀疏性限制,會使學習到的特征更加有價值,同時這也符合人腦神經(jīng)元響應稀疏性特點。

3、 雙向深度網(wǎng)絡

雙向網(wǎng)絡由多個編碼器層和解碼器層疊加形成,每層可能是單獨的編碼過程或解碼過程,也可能同時包含編碼過程和解碼過程。雙向網(wǎng)絡的結(jié)構(gòu)結(jié)合了編碼器和解碼器2類單層網(wǎng)絡結(jié)構(gòu),雙向網(wǎng)絡的學習則結(jié)合了前饋網(wǎng)絡和反饋網(wǎng)絡的訓練方法,通常包括單層網(wǎng)絡的預訓練和逐層反向迭代誤差2個部分,單層網(wǎng)絡的預訓練多采用貪心算法:每層使用輸入信號IL與權(quán)值w計算生成信號IL+1傳遞到下一層,信號IL+1再與相同的權(quán)值w計算生成重構(gòu)信號I’L 映射回輸入層,通過不斷縮小IL與I’L間的誤差,訓練每層網(wǎng)絡。網(wǎng)絡結(jié)構(gòu)中各層網(wǎng)絡結(jié)構(gòu)都經(jīng)過預訓練之后,再通過反向迭代誤差對整個網(wǎng)絡結(jié)構(gòu)進行權(quán)值微調(diào)。其中單層網(wǎng)絡的預訓練是對輸入信號編碼和解碼的重建過程,這與反饋網(wǎng)絡訓練方法類似;而基于反向迭代誤差的權(quán)值微調(diào)與前饋網(wǎng)絡訓練方法類似。典型的雙向深度網(wǎng)絡有深度玻爾茲曼機、深度信念網(wǎng)絡、棧式自編碼器等。以深度玻爾茲曼機為例,深度玻爾茲曼機由R. Salakhutdinov等提出,它由多層受限玻爾茲曼機(restricted Boltzmann machine, RBM )疊加構(gòu)成。

(1)、受限玻爾茲曼機:

玻爾茲曼機(Boltzmann machine, BM)是一種隨機的遞歸神經(jīng)網(wǎng)絡,由G. E.Hinton等提出,是能通過學習數(shù)據(jù)固有內(nèi)在表示、解決復雜學習問題的最早的人工神經(jīng)網(wǎng)絡之一。玻爾茲曼機由二值神經(jīng)元構(gòu)成,每個神經(jīng)元只取0或1兩種狀態(tài),狀態(tài)1代表該神經(jīng)元處于激活狀態(tài),0表示該神經(jīng)元處于抑制狀態(tài)。然而,即使使用模擬退火算法,這個網(wǎng)絡的學習過程也十分慢。Hinton等提出的受限玻爾茲曼機去掉了玻爾茲曼機同層之間的連接,從而大大提高了學習效率。受限玻爾茲曼機分為可見層v以及隱層h,可見層和隱層的節(jié)點通過權(quán)值w相連接,2層節(jié)點之間是全連接,同層節(jié)點間互不相連。

受限玻爾茲曼機一種典型的訓練方法:首先隨機初始化可見層,然后在可見層與隱層之間交替進行吉布斯采樣:用條件分布概率P(h|v)計算隱層;再根據(jù)隱層節(jié)點,同樣用條件分布概率P(v|h)來計算可見層;重復這一采樣過程直到可見層和隱層達到平穩(wěn)分布。而Hinton提出了一種快速算法,稱作對比離差(contrastive divergence, CD)學習算法。這種算法使用訓練數(shù)據(jù)初始化可見層,只需迭代k次上述采樣過程(即每次迭代包括從可見層更新隱層,以及從隱層更新可見層),就可獲得對模型的估計。

(2)、深度玻爾茲曼機:

將多個受限玻爾茲曼機堆疊,前一層的輸出作為后一層的輸入,便構(gòu)成了深度玻爾茲曼機。網(wǎng)絡中所有節(jié)點間的連線都是雙向的。深度玻爾茲曼機訓練分為2個階段:預訓練階段和微調(diào)階段。在預訓練階段,采用無監(jiān)督的逐層貪心訓練方法來訓練網(wǎng)絡每層的參數(shù),即先訓練網(wǎng)絡的第1個隱含層,然后接著訓練第2,3,…個隱含層,最后用這些訓練好的網(wǎng)絡參數(shù)值作為整體網(wǎng)絡參數(shù)的初始值。預訓練之后,將訓練好的每層受限玻爾茲曼機疊加形成深度玻爾茲曼機,利用有監(jiān)督的學習對網(wǎng)絡進行訓練(一般采用反向傳播算法)。由于深度玻爾茲曼機隨機初始化權(quán)值以及微調(diào)階段采用有監(jiān)督的學習方法,這些都容易使網(wǎng)絡陷入局部最小值。而采用無監(jiān)督預訓練的方法,有利于避免陷入局部最小值問題。

受限玻爾茲曼機(RBM,RestrictBoltzmann Machine):

假設有一個二部圖(二分圖),一層是可視層v(即輸入層),一層是隱層h,每層內(nèi)的節(jié)點之間設有連接。在已知v時,全部的隱藏節(jié)點之間都是條件獨立的(因為這個模型是二部圖),即p(h|v) = p(h1|v1) … p(hn|v)。同樣的,在已知隱層h的情況下,可視節(jié)點又都是條件獨立的,又因為全部的h和v滿足玻爾茲曼分布,所以當輸入v的時候,通過p(h|v)可得到隱層h,得到h之后,通過p(v|h)又可以重構(gòu)可視層v。通過調(diào)整參數(shù),使得從隱層計算得到的可視層與原來的可視層有相同的分布。這樣的話,得到的隱層就是可視層的另外一種表達,即可視層的特征表示。若增加隱層的層數(shù),可得到深度玻爾茲曼機(DBM,Deep Boltzmann Machine)。若在靠近可視層v的部分使用貝葉斯信念網(wǎng),遠離可視層的部分使用RBM,那么就可以得到一個深度信念網(wǎng)絡(DBNs,Deep Belief Nets)。

受限玻爾茲曼機模型是玻爾茲曼機(BM,BoltzmannMachine)模型的一種特殊形式,其特殊性就在于同層內(nèi)的節(jié)點沒有連接,是以二部圖的形式存在。

由于受限玻爾茲曼機是一種隨機網(wǎng)絡,而隨機神經(jīng)網(wǎng)絡又是根植于統(tǒng)計力學的,所以受統(tǒng)計力學能量泛函的啟發(fā)引入了能量函數(shù)。在隨機神經(jīng)網(wǎng)絡中,能量函數(shù)是用來描述整個系統(tǒng)狀態(tài)的測度。網(wǎng)絡越有序或概率分布越集中,網(wǎng)絡的能量就越小;反之,網(wǎng)絡越無序或概率分布不集中,那么網(wǎng)絡的能量就越大。所以當網(wǎng)絡最穩(wěn)定時,能量函數(shù)的值最小。

深度信念神經(jīng)網(wǎng)絡:

深度結(jié)構(gòu)的訓練大致有無監(jiān)督的訓練和有監(jiān)督的訓練兩種,而且兩者擁有不一樣的模型架構(gòu)。比如卷積神經(jīng)網(wǎng)絡就是一種有監(jiān)督下的深度結(jié)構(gòu)學習模型(即需要大量有標簽的訓練樣本),但深度信念網(wǎng)絡是一種無監(jiān)督和有監(jiān)督混合下的深度結(jié)構(gòu)學習模型(即需要一部分無標簽的訓練樣本和一部分有標簽的樣本)。

一個典型的深度信念網(wǎng)絡可看成多個受限玻爾茲曼機的累加,而DBNs則是一個復雜度較高的有向無環(huán)圖。

深度信念網(wǎng)絡在訓練的過程中,所需要學習的即是聯(lián)合概率分布。在機器學習領(lǐng)域中,其所表示的就是對象的生成模型。如果想要全局優(yōu)化具有多隱層的深度信念網(wǎng)絡是比較困難的。這個時候,可以運用貪婪算法,即逐層進行優(yōu)化,每次只訓練相鄰兩層的模型參數(shù),通過逐層學習來獲得全局的網(wǎng)絡參數(shù)。這種訓練方法(非監(jiān)督逐層貪婪訓練)已經(jīng)被Hinton證明是有效的,并稱其為相對收斂(contrastive divergence)。

深度信任網(wǎng)絡模型:DBN可以解釋為貝葉斯概率生成模型,由多層隨機隱變量組成,上面的兩層具有無向?qū)ΨQ連接,下面的層得到來自上一層的自頂向下的有向連接,最底層單元的狀態(tài)為可見輸入數(shù)據(jù)向量。DBN由若干結(jié)構(gòu)單元堆棧組成,結(jié)構(gòu)單元通常為RBM。堆棧中每個RBM單元的可視層神經(jīng)元數(shù)量等于前一RBM單元的隱層神經(jīng)元數(shù)量。根據(jù)深度學習機制,采用輸入樣例訓練第一層RBM單元,并利用其輸出訓練第二層RBM模型,將RBM模型進行堆棧通過增加層來改善模型性能。在無監(jiān)督預訓練過程中,DBN編碼輸入到頂層RBM后解碼頂層的狀態(tài)到最底層的單元實現(xiàn)輸入的重構(gòu)。作為DBN的結(jié)構(gòu)單元,RBM與每一層DBN共享參數(shù)。

RBM是一種特殊形式的玻爾茲曼機(Boltzmannmachine,BM),變量之間的圖模型連接形式有限制,只有可見層節(jié)點與隱層節(jié)點之間有連接權(quán)值,而可見層節(jié)點與可見層節(jié)點及隱層節(jié)點與隱層節(jié)點之間無連接。BM是基于能量的無向圖概率模型。

BM的典型訓練算法有變分近似法、隨機近似法(stochastic approximation procedure,SAP)、對比散度算法(contrastivedivergence,CD)、持續(xù)對比散度算法(persistent contrastive divergence,PCD)、快速持續(xù)對比散度算法(fastpersistent contrastive divergence,F(xiàn)PCD)和回火MCMC算法等。

堆棧自編碼網(wǎng)絡模型:堆棧自編碼網(wǎng)絡的結(jié)構(gòu)與DBN類似,由若干結(jié)構(gòu)單元堆棧組成,不同之處在于其結(jié)構(gòu)單元為自編碼模型(auto—en—coder)而不是RBM。自編碼模型是一個兩層的神經(jīng)網(wǎng)絡,第一層稱為編碼層,第二層稱為解碼層。

堆棧自編碼網(wǎng)絡的結(jié)構(gòu)單元除了自編碼模型之外,還可以使用自編碼模型的一些變形,如降噪自編碼模型和收縮自編碼模型等。降噪自編碼模型避免了一般的自編碼模型可能會學習得到無編碼功能的恒等函數(shù)和需要樣本的個數(shù)大于樣本的維數(shù)的限制,嘗試通過最小化降噪重構(gòu)誤差,從含隨機噪聲的數(shù)據(jù)中重構(gòu)真實的原始輸入。降噪自編碼模型使用由少量樣本組成的微批次樣本執(zhí)行隨機梯度下降算法,這樣可以充分利用圖處理單元(graphical processing unit,GPU)的矩陣到矩陣快速運算使得算法能夠更快地收斂。

收縮自編碼模型的訓練目標函數(shù)是重構(gòu)誤差和收縮罰項(contraction penalty)的總和,通過最小化該目標函數(shù)使已學習到的表示C(x)盡量對輸入x保持不變。為了避免出現(xiàn)平凡解,編碼器權(quán)值趨于零而解碼器權(quán)值趨于無窮,并且收縮自編碼模型采用固定的權(quán)值,令解碼器權(quán)值為編碼器權(quán)值的置換陣。與其他自編碼模型相比,收縮自編碼模型趨于找到盡量少的幾個特征值,特征值的數(shù)量對應局部秩和局部維數(shù)。收縮自編碼模型可以利用隱單元建立復雜非線性流形模型。

MKMs: 受SVM算法中核函數(shù)的啟發(fā),在深度模型結(jié)構(gòu)中加入核函數(shù),構(gòu)建一種基于核函數(shù)的深度學習模型。MKMs深度模型,如同深度信念網(wǎng)絡(deep belief network,DBNs),反復迭代核PCA 來逼近高階非線性函數(shù),每一層核PCA 的輸出作為下一層核PCA 的輸入。作者模擬大型神經(jīng)網(wǎng)絡計算方法創(chuàng)建核函數(shù)族,并將其應用在訓練多層深度學習模型中。L層MKMs深度模型的訓練過程如下:

(1)、去除輸入特征中無信息含量的特征;

(2)、重復L次:A、計算有非線性核產(chǎn)生特征的主成分;B、去除無信息含量的主成分特征;

(3)、采用Mahalanobis距離進行最近鄰分類。

在參數(shù)訓練階段,采用核主成分分析法(kernelprincipal component analysis,KPCA)進行逐層貪婪無監(jiān)督學習,并提取第k層數(shù)據(jù)特征中的前nk 主成分,此時第k+1層便獲得第k層的低維空間特征。為進一步降低每層特征的維數(shù),采用有監(jiān)督的訓練機制進行二次篩選:首先,根據(jù)離散化特征點邊緣直方圖,估計它與類標簽之間的互信息,將nk 主成分進行排序;其次,對于不同的k 和w 采用KNN 聚類方法,每次選取排序最靠前的w驗證集上的特征并計算其錯誤率,最終選擇錯誤率最低的w個特征。該模型由于特征選取階段無法并行計算,導致交叉驗證階段需耗費大量時間。據(jù)此,提出了一種改進方法,通過在隱藏層采用有監(jiān)督的核偏最小二乘法(kernel partial least squares,KPLS)來優(yōu)化此問題。

DeSTIN: 目前較成熟的深度學習模型大多建立在空間層次結(jié)構(gòu)上,很少對時效性(temporal)有所體現(xiàn)。相關(guān)研究表明,人類大腦的運行模式是將感受到的模式與記憶存儲的模式進行匹配,并對下一時刻的模式進行預測,反復進行上述步驟,這個過程包含了時空信息。因此在深度結(jié)構(gòu)中將時效性考慮在內(nèi),會更接近人腦的工作模式。DeSTIN便是基于這種理念被提出的。DeSTIN 是一種基于貝葉斯推理理論、動態(tài)進行模式分類的深度學習架構(gòu),它是一種區(qū)分性的層次網(wǎng)絡結(jié)構(gòu)。在該深度模型中,數(shù)據(jù)間的時空相關(guān)性通過無監(jiān)督方式來學習。網(wǎng)絡的每一層的每個節(jié)點結(jié)構(gòu)一致,且包含多個聚類中心,通過聚類和動態(tài)建模來模擬輸入。每個節(jié)點通過貝葉斯信念推理輸出該節(jié)點信念值,根據(jù)信念值提取整個DeSTIN網(wǎng)絡的模式特征,最后一層網(wǎng)絡輸出特征可以輸入分類器如SVM中進行模式分類。

DeSTIN 模型的每一個節(jié)點都用來學習一個模式時序,底層節(jié)點通過對輸入數(shù)據(jù)的時間與空間特征進行提取,改變其信念值,輸入到下一層。由于每一個節(jié)點結(jié)構(gòu)相同,訓練時可采樣并行計算,節(jié)約運算資源。該模型最重要的步驟就是信念值更新算法。信念值更新算法同時考慮了數(shù)據(jù)的時間與空間特征。目前將時效性考慮在內(nèi)的深度學習架構(gòu)雖然不是很成熟,但也逐漸應用在不同領(lǐng)域,也是深度學習模型未來發(fā)展的一個新方向。

四、 深度學習訓練算法

實驗結(jié)果表明,對深度結(jié)構(gòu)神經(jīng)網(wǎng)絡采用隨機初始化的方法,基于梯度的優(yōu)化使訓練結(jié)果陷入局部極值,而找不到全局最優(yōu)值,并且隨著網(wǎng)絡結(jié)構(gòu)層次的加深,更難以得到好的泛化性能,使得深度結(jié)構(gòu)神經(jīng)網(wǎng)絡在隨機初始化后得到的學習結(jié)果甚至不如只有一個或兩個隱層的淺結(jié)構(gòu)神經(jīng)網(wǎng)絡得到的學習結(jié)果好。

由于隨機初始化深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的參數(shù)得到的訓練結(jié)果和泛化性能都很不理想,在2006年以前,深度結(jié)構(gòu)神經(jīng)網(wǎng)絡在機器學習領(lǐng)域文獻中并沒有進行過多討論。

通過實驗研究發(fā)現(xiàn),用無監(jiān)督學習算法對深度結(jié)構(gòu)神經(jīng)網(wǎng)絡進行逐層預訓練,能夠得到較好的學習結(jié)果。最初的實驗對每層采用RBM生成模型,后來的實驗采用自編碼模型來訓練每一層,兩種模型得到相似的實驗結(jié)果。

一些實驗和研究結(jié)果證明了無監(jiān)督預訓練相比隨機初始化具有很大的優(yōu)勢,無監(jiān)督預訓練不僅初始化網(wǎng)絡得到好的初始參數(shù)值,而且可以提取關(guān)于輸入分布的有用信息,有助于網(wǎng)絡找到更好的全局最優(yōu)解。對深度學習來說,無監(jiān)督學習和半監(jiān)督學習是成功的學習算法的關(guān)鍵組成部分,

主要原因包括以下幾個方面:

(1)、與半監(jiān)督學習類似,深度學習中缺少有類標簽的樣本,并且樣例大多無類標簽;

(2)、逐層的無監(jiān)督學習利用結(jié)構(gòu)層上的可用信息進行學習,避免了監(jiān)督學習梯度傳播的問題,可減少對監(jiān)督準則函數(shù)梯度給出的不可靠更新方向的依賴;

(3)、無監(jiān)督學習使得監(jiān)督學習的參數(shù)進入一個合適的預置區(qū)域內(nèi),在此區(qū)域內(nèi)進行梯度下降能夠得到很好的解;

(4)、在利用深度結(jié)構(gòu)神經(jīng)網(wǎng)絡構(gòu)造一個監(jiān)督分類器時,無監(jiān)督學習可看做學習先驗信息,使得深度結(jié)構(gòu)神經(jīng)網(wǎng)絡訓練結(jié)果的參數(shù)在大多情況下都具有意義;

(5)、在深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的每一層采用無監(jiān)督學習將一個問題分解成若干與多重表示水平提取有關(guān)的子問題,是一種常用的可行方法,可提取輸入分布較高水平表示的重要特征信息。

基于上述思想,Hinton等人在2006年引入了DBN并給出了一種訓練該網(wǎng)絡的貪婪逐層預訓練算法。

貪婪逐層無監(jiān)督預訓練學習的基本思想為:

首先采用無監(jiān)督學習算法對深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的較低層進行訓練,生成第一層深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的初始參數(shù)值;

然后將第一層的輸出作為另外一層的輸入,同樣采用無監(jiān)督學習算法對該層參數(shù)進行初始化。

在對多層進行初始化后,用監(jiān)督學習算法對整個深度結(jié)構(gòu)神經(jīng)網(wǎng)絡進行微調(diào),得到的學習性能具有很大程度的提高。

以堆棧自編碼網(wǎng)絡為例,深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的訓練過程如下:

(1)、將第一層作為一個自編碼模型,采用無監(jiān)督訓練,使原始輸入的重建誤差最?。?/p>

(2)、將自編碼模型的隱單元輸出作為另一層的輸入;

(3)、按步驟(2)迭代初始化每一層的參數(shù);

(4)、采用最后一個隱層的輸出作為輸入施加于一個有監(jiān)督的層(通常為輸出層),并初始化該層的參數(shù);

(5)、根據(jù)監(jiān)督準則調(diào)整深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的所有參數(shù),堆棧所有自編碼模型組成堆棧自編碼網(wǎng)絡。

基本的無監(jiān)督學習方法在2006年被Hinton等人提出用于訓練深度結(jié)構(gòu)神經(jīng)網(wǎng)絡,該方法的學習步驟如下:

(1)、令h0(x)=x為可觀察的原始輸入x的最低階表示;

(2)、對l=1,…,L,訓練無監(jiān)督學習模型,將可觀察數(shù)據(jù)看做l-1階上表示的訓練樣例hl-1(x),訓練后產(chǎn)生下一階的表示hl(x)=Rl(hl-1(x)).

隨后出現(xiàn)了一些該算法的變形拓展,最常見的是有監(jiān)督的微調(diào)方法,該方法的學習步驟如下所示:

(1)、初始化監(jiān)督預測器:a、用參數(shù)表示函數(shù)hL(x);b、將hL(x)作為輸入得到線性或非線性預測器;

(2)、基于已標記訓練樣本對(x,y)采用監(jiān)督訓練準則微調(diào)監(jiān)督預測器,在表示階段和預測器階段優(yōu)化參數(shù)。

深度學習的訓練過程:

1、自下向上的非監(jiān)督學習:采用無標簽數(shù)據(jù)分層訓練各層參數(shù),這是一個無監(jiān)督訓練的過程(也是一個特征學習的過程),是和傳統(tǒng)神經(jīng)網(wǎng)絡區(qū)別最大的部分。具體是:用無標簽數(shù)據(jù)去訓練第一層,這樣就可以學習到第一層的參數(shù),在學習得到第n-1層后,再將第n-1層的輸出作為第n層的輸入,訓練第n層,進而分別得到各層的參數(shù)。這稱為網(wǎng)絡的預訓練。

2、自頂向下的監(jiān)督學習:在預訓練后,采用有標簽的數(shù)據(jù)來對網(wǎng)絡進行區(qū)分性訓練,此時誤差自頂向下傳輸。預訓練類似傳統(tǒng)神經(jīng)網(wǎng)絡的隨機初始化,但由于深度學習的第一步不是隨機初始化而是通過學習無標簽數(shù)據(jù)得到的,因此這個初值比較接近全局最優(yōu),所以深度學習效果好很多程序上歸功于第一步的特征學習過程。

使用到的學習算法包括: (1)、深度費希爾映射方法:

Wong等人提出一種新的特征提取方法----正則化深度費希爾映射(regularized deep Fisher mapping,RDFM)方法,學習從樣本空間到特征空間的顯式映射,根據(jù)Fisher準則用深度結(jié)構(gòu)神經(jīng)網(wǎng)絡提高特征的區(qū)分度。深度結(jié)構(gòu)神經(jīng)網(wǎng)絡具有深度非局部學習結(jié)構(gòu),從更少的樣本中學習變化很大的數(shù)據(jù)集中的特征,顯示出比核方法更強的特征識別能力,同時RDFM方法的學習過程由于引入正則化因子,解決了學習能力過強帶來的過擬合問題。在各種類型的數(shù)據(jù)集上進行實驗,得到的結(jié)果說明了在深度學習微調(diào)階段運用無監(jiān)督正則化的必要性。

(2)、非線性變換方法:

Raiko等人提出了一種非線性變換方法,該變換方法使得多層感知器(multi—layer perceptron,MLP)網(wǎng)絡的每個隱神經(jīng)元的輸出具有零輸出和平均值上的零斜率,使學習MLP變得更容易。將學習整個輸入輸出映射函數(shù)的線性部分和非線性部分盡可能分開,用shortcut權(quán)值(shortcut weight)建立線性映射模型,令Fisher信息陣接近對角陣,使得標準梯度接近自然梯度。通過實驗證明非線性變換方法的有效性,該變換使得基本隨機梯度學習與當前的學習算法在速度上不相上下,并有助于找到泛化性能更好的分類器。用這種非線性變換方法實現(xiàn)的深度無監(jiān)督自編碼模型進行圖像分類和學習圖像的低維表示的實驗,說明這些變換有助于學習深度至少達到五個隱層的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡,證明了變換的有效性,提高了基本隨機梯度學習算法的速度,有助于找到泛化性更好的分類器。

(3)、稀疏編碼對稱機算法:

Ranzato等人提出一種新的有效的無監(jiān)督學習算法----稀疏編碼對稱機(sparse encoding symmetric machine,SESM),能夠在無須歸一化的情況下有效產(chǎn)生稀疏表示。SESM的損失函數(shù)是重構(gòu)誤差和稀疏罰函數(shù)的加權(quán)總和,基于該損失函數(shù)比較和選擇不同的無監(jiān)督學習機,提出一種相關(guān)的迭代在線學習算法,并在理論和實驗上將SESM與RBM和PCA進行比較,在手寫體數(shù)字識別MNIST數(shù)據(jù)集和實際圖像數(shù)據(jù)集上進行實驗,表明該方法的優(yōu)越性。

(4)、遷移學習算法:

在許多常見學習場景中訓練和測試數(shù)據(jù)集中的類標簽不同,必須保證訓練和測試數(shù)據(jù)集中的相似性進行遷移學習。Mesnil等人研究了用于無監(jiān)督遷移學習場景中學習表示的不同種類模型結(jié)構(gòu),將多個不同結(jié)構(gòu)的層堆棧使用無監(jiān)督學習算法用于五個學習任務,并研究了用于少量已標記訓練樣本的簡單線性分類器堆棧深度結(jié)構(gòu)學習算法。Bengio等人研究了無監(jiān)督遷移學習問題,討論了無監(jiān)督預訓練有用的原因,如何在遷移學習場景中利用無監(jiān)督預訓練,以及在什么情況下需要注意從不同數(shù)據(jù)分布得到的樣例上的預測問題。

(5)、自然語言解析算法:

Collobert基于深度遞歸卷積圖變換網(wǎng)絡(graphtransformer network,GTN)提出一種快速可擴展的判別算法用于自然語言解析,將文法解析樹分解到堆棧層中,只用極少的基本文本特征,得到的性能與現(xiàn)有的判別解析器和標準解析器的性能相似,而在速度上有了很大提升。

(6)、學習率自適應方法:

學習率自適應方法可用于提高深度結(jié)構(gòu)神經(jīng)網(wǎng)絡訓練的收斂性并且去除超參數(shù)中的學習率參數(shù),其中包括全局學習率、層次學習率、神經(jīng)元學習率和參數(shù)學習率等。最近研究人員提出了一些新的學習率自適應方法,如Duchi等人提出的自適應梯度方法和Schaul等人提出的學習率自適應方法;Hinton提出了收縮學習率方法使得平均權(quán)值更新在權(quán)值大小的1/1000數(shù)量級上;LeRoux等人提出自然梯度的對角低秩在線近似方法,并說明該算法在一些學習場景中能加速訓練過程。

五、 深度學習的優(yōu)點

深度學習與淺學習相比具有許多優(yōu)點:

1、 在網(wǎng)絡表達復雜目標函數(shù)的能力方面,淺結(jié)構(gòu)神經(jīng)網(wǎng)絡有時無法很好地實現(xiàn)高變函數(shù)等復雜高維函數(shù)的表示,而用深度結(jié)構(gòu)神經(jīng)網(wǎng)絡能夠較好地表征。

2、 在網(wǎng)絡結(jié)構(gòu)的計算復雜度方面,當用深度為k的網(wǎng)絡結(jié)構(gòu)能夠緊湊地表達某一函數(shù)時,在采用深度小于k的網(wǎng)絡結(jié)構(gòu)表達該函數(shù)時,可能需要增加指數(shù)級規(guī)模數(shù)量的計算因子,大大增加了計算的復雜度。另外,需要利用訓練樣本對計算因子中的參數(shù)值進行調(diào)整,當一個網(wǎng)絡結(jié)構(gòu)的訓練樣本數(shù)量有限而計算因子數(shù)量增加時,其泛化能力會變得很差。

3、 在仿生學角度方面,深度學習網(wǎng)絡結(jié)構(gòu)是對人類大腦皮層的最好模擬。與大腦皮層一樣,深度學習對輸入數(shù)據(jù)的處理是分層進行的,用每一層神經(jīng)網(wǎng)絡提取原始數(shù)據(jù)不同水平的特征。

4、 在信息共享方面,深度學習獲得的多重水平的提取特征可以在類似的不同任務中重復使用,相當于對任務求解提供了一些無監(jiān)督的數(shù)據(jù),可以獲得更多的有用信息。

5、 深度學習比淺學習具有更強的表示能力,而由于深度的增加使得非凸目標函數(shù)產(chǎn)生的局部最優(yōu)解是造成學習困難的主要因素。反向傳播基于局部梯度下降,從一些隨機初始點開始運行,通常陷入局部極值,并隨著網(wǎng)絡深度的增加而惡化,不能很好地求解深度結(jié)構(gòu)神經(jīng)網(wǎng)絡問題。2006年,Hinton等人提出的用于深度信任網(wǎng)絡(deep belief network,DBN)的無監(jiān)督學習算法,解決了深度學習模型優(yōu)化困難的問題。求解DBN方法的核心是貪婪逐層預訓練算法,在與網(wǎng)絡大小和深度呈線性的時間復雜度上優(yōu)化DBN的權(quán)值,將求解的問題分解成為若干更簡單的子問題進行求解。

6、 深度學習方法試圖找到數(shù)據(jù)的內(nèi)部結(jié)構(gòu),發(fā)現(xiàn)變量之間的真正關(guān)系形式。大量研究表明,數(shù)據(jù)表示的方式對訓練學習的成功產(chǎn)生很大的影響,好的表示能夠消除輸入數(shù)據(jù)中與學習任務無關(guān)因素的改變對學習性能的影響,同時保留對學習任務有用的信息。深度學習中數(shù)據(jù)的表示有局部表示(local representation)、分布表示(distributed representation),和稀疏分布表示(sparsedistributed representation) 三種表示形式。學習輸入層、隱層和輸出層的單元均取值0或1。舉個簡單的例子,整數(shù)i∈{1,2,…,N}的局部表示為向量R(i),該向量有N位,由1個1和N-1個0組成,即Rj(i)=1i=j。分布表示中的輸入模式由一組特征表示,這些特征可能存在相互包含關(guān)系,并且在統(tǒng)計意義上相互獨立。對于例子中相同整數(shù)的分布表示有l(wèi)og2N位的向量,這種表示更為緊湊,在解決降維和局部泛化限制方面起到幫助作用。稀疏分布表示介于完全局部表示和非稀疏分布表示之間,稀疏性的意思為表示向量中的許多單元取值為0。對于特定的任務需要選擇合適的表示形式才能對學習性能起到改進的作用。當表示一個特定的輸入分布時,一些結(jié)構(gòu)是不可能的,因為它們不相容。例如在語言建槨中,運用局部表示可以直接用詞匯表中的索引編碼詞的特性,而在句法特征、形態(tài)學特征和語義特征提取中,運用分布表示可以通過連接一個向量指示器來表示一個詞。分布表示由于其具有的優(yōu)點,常常用于深度學習中表示數(shù)據(jù)的結(jié)構(gòu)。由于聚類簇之間在本質(zhì)上互相不存在包含關(guān)系,因此聚類算法不專門建立分布表示,而獨立成分分析(independent component analysis,ICA)和主成分分析(principalcomponent analysis,PCA)通常用來構(gòu)造數(shù)據(jù)的分布表示。

六、 深度學習已有的應用

深度學習架構(gòu)由多層非線性運算單元組成,每個較低層的輸出作為更高層的輸入,可以從大量輸入數(shù)據(jù)中學習有效的特征表示,學習到的高階表示中包含輸入數(shù)據(jù)的許多結(jié)構(gòu)信息,是一種從數(shù)據(jù)中提取表示的好方法,能夠用于分類、回歸和信息檢索等特定問題中。

深度學習目前在很多領(lǐng)域都優(yōu)于過去的方法。如語音和音頻識別、圖像分類及識別、人臉識別、視頻分類、行為識別、圖像超分辨率重建、紋理識別、行人檢測、場景標記、門牌識別、手寫體字符識別、圖像檢索、人體運行行為識別等。

1、 深度學習在語音識別、合成及機器翻譯中的應用

微軟研究人員使用深度信念網(wǎng)絡對數(shù)以千計的senones(一種比音素小很多的建模單元)直接建模,提出了第1個成功應用于大詞匯量語音識別系統(tǒng)的上下文相關(guān)的深層神經(jīng)網(wǎng)絡–隱馬爾可夫混合模型(CD-DNN-HMM),比之前最領(lǐng)先的基于常規(guī)CD-GMM-HMM的大詞匯量語音識別系統(tǒng)相對誤差率減少16%以上。隨后又在含有300h語音訓練數(shù)據(jù)的Switchboard標準數(shù)據(jù)集上對CD-DNN-HMM模型進行評測?;鶞蕼y試字詞錯誤率為18.5%,與之前最領(lǐng)先的常規(guī)系統(tǒng)相比,相對錯誤率減少了33%。

H. Zen等提出一種基于多層感知機的語音合成模型。該模型先將輸入文本轉(zhuǎn)換為一個輸入特征序列,輸入特征序列的每幀分別經(jīng)過多層感知機映射到各自的輸出特征,然后采用算法,生成語音參數(shù),最后經(jīng)過聲紋合成生成語音。訓練數(shù)據(jù)包含由一名女性專業(yè)演講者以美國英語錄制的3.3萬段語音素材,其合成結(jié)果的主觀評價和客觀評價均優(yōu)于基于HMM方法的模型。

K. Cho等提出一種基于循環(huán)神經(jīng)網(wǎng)絡(recurrentneural network, RNN)的向量化定長表示模型(RNNenc模型),應用于機器翻譯。該模型包含2個RNN,一個RNN用于將一組源語言符號序列編碼為一組固定長度的向量,另一個RNN將該向量解碼為一組目標語言的符號序列。在該模型的基礎上,D. Bahdanau等克服了固定長度的缺點(固定長度是其效果提升的瓶頸),提出了RNNsearch的模型。該模型在翻譯每個單詞時,根據(jù)該單詞在源文本中最相關(guān)信息的位置以及已翻譯出的其他單詞,預測對應于該單詞的目標單詞。該模型包含一個雙向RNN作為編碼器,以及一個用于單詞翻譯的解碼器。在進行目標單詞位置預測時,使用一個多層感知機模型進行位置對齊。采用BLEU評價指標,RNNsearch模型在ACL2014機器翻譯研討會(ACL WMT 2014)提供的英/法雙語并行語料庫上的翻譯結(jié)果評分均高于RNNenc模型的評分,略低于傳統(tǒng)的基于短語的翻譯系統(tǒng)Moses(本身包含具有4.18 億個單詞的多語言語料庫)。另外,在剔除包含未知詞匯語句的測試預料庫上,RNNsearch的評分甚至超過了Moses。

2、 深度學習在圖像分類及識別中的應用

(1)、深度學習在大規(guī)模圖像數(shù)據(jù)集中的應用:

A. Krizhevsky等首次將卷積神經(jīng)網(wǎng)絡應用于ImageNet大規(guī)模視覺識別挑戰(zhàn)賽(ImageNetlargescale visual recognition challenge, ILSVRC)中,所訓練的深度卷積神經(jīng)網(wǎng)絡在ILSVRC—2012挑戰(zhàn)賽中,取得了圖像分類和目標定位任務的第一。其中,圖像分類任務中,前5選項錯誤率為15.3%,遠低于第2名的26.2%的錯誤率;在目標定位任務中,前5選項錯誤率34%,也遠低于第2名的50%。

在ILSVRC—2013比賽中,M. D. Zeiler等采用卷積神經(jīng)網(wǎng)絡的方法,對A. Krizhevsky的方法進行了改進,并在每個卷積層上附加一個反卷積層用于中間層特征的可視化,取得了圖像分類任務的第一名。其前5 選項錯誤率為11.7%,如果采用ILSVRC—2011 數(shù)據(jù)進行預訓練,錯誤率則降低到11.2%。

在目標定位任務中,P. Sermanet等采用卷積神經(jīng)網(wǎng)絡結(jié)合多尺度滑動窗口的方法,可同時進行圖像分類、定位和檢測,是比賽中唯一一個同時參加所有任務的隊伍。

多目標檢測任務中,獲勝隊伍的方法在特征提取階段沒有使用深度學習模型,只在分類時采用卷積網(wǎng)絡分類器進行重打分。

在ILSVRC—2014比賽中,幾乎所有的參賽隊伍都采用了卷積神經(jīng)網(wǎng)絡及其變形方法。其中GoogLeNet小組采用卷積神經(jīng)網(wǎng)絡結(jié)合Hebbian理論提出的多尺度的模型,以6.7%的分類錯誤,取得圖形分類"指定數(shù)據(jù)"組的第一名;CASIAWS小組采用弱監(jiān)督定位和卷積神經(jīng)網(wǎng)絡結(jié)合的方法,取得圖形分類"額外數(shù)據(jù)"組的第一名,其分類錯誤率為11%。

在目標定位任務中,VGG小組在深度學習框架Caffe的基礎上,采用3個結(jié)構(gòu)不同的卷積神經(jīng)網(wǎng)絡進行平均評估,以26%的定位錯誤率取得"指定數(shù)據(jù)"組的第一名;Adobe 組選用額外的2000類ImageNet數(shù)據(jù)訓練分類器,采用卷積神經(jīng)網(wǎng)絡架構(gòu)進行分類和定位,以30%的錯誤率,取得了"額外數(shù)據(jù)"組的第一名。

在多目標檢測任務中,NUS小組采用改進的卷積神經(jīng)網(wǎng)絡----網(wǎng)中網(wǎng)(networkin network, NIN)與多種其他方法融合的模型,以37%的平均準確率(mean average precision, mAP)取得"提供數(shù)據(jù)"組的第一名;GoogLeNet以44%的平均準確率取得"額外數(shù)據(jù)"組的第一名。

從深度學習首次應用于ILSVRC挑戰(zhàn)賽并取得突出的成績,到2014年挑戰(zhàn)賽中幾乎所有參賽隊伍都采用深度學習方法,并將分類識錯率降低到6.7%,可看出深度學習方法相比于傳統(tǒng)的手工提取特征的方法在圖像識別領(lǐng)域具有巨大優(yōu)勢。

(2)、深度學習在人臉識別中的應用:

基于卷積神經(jīng)網(wǎng)絡的學習方法,香港中文大學的DeepID項目以及Facebook的DeepFace項目在戶外人臉識別(labeledfaces in the wild, LFW)數(shù)據(jù)庫上的人臉識別正確率分別達97.45%和97.35%,只比人類識別97.5%的正確率略低一點點。DeepID項目采用4層卷積神經(jīng)網(wǎng)絡(不含輸入層和輸出層)結(jié)構(gòu),DeepFace采用5層卷積神經(jīng)網(wǎng)絡(不含輸入層和輸出層,其中后3層沒有采用權(quán)值共享以獲得不同的局部統(tǒng)計特征)結(jié)構(gòu),之后,采用基于卷積神經(jīng)網(wǎng)絡的學習方法。香港中文大學的DeepID2項目將識別率提高到了99.15%,超過目前所有領(lǐng)先的深度學習和非深度學習算法在LFW 數(shù)據(jù)庫上的識別率以及人類在該數(shù)據(jù)庫的識別率。DeepID2項目采用和DeepID項目類似的深度結(jié)構(gòu),包含4個卷積層,其中第3層采用2*2鄰域的局部權(quán)值共享,第4層沒有采用權(quán)值共享,且輸出層與第3、4層都全連接。

(3)、深度學習在手寫體字符識別中的應用:

Bengio等人運用統(tǒng)計學習理論和大量的實驗工作證明了深度學習算法非常具有潛力,說明數(shù)據(jù)中間層表示可以被來自不同分布而相關(guān)的任務和樣例共享,產(chǎn)生更好的學習效果,并且在有62個類別的大規(guī)模手寫體字符識別場景上進行實驗,用多任務場景和擾動樣例來得到分布外樣例,并得到非常好的實驗結(jié)果。Lee等人對RBM進行拓展,學習到的模型使其具有稀疏性,可用于有效地學習數(shù)字字符和自然圖像特征。Hinton等人關(guān)于深度學習的研究說明了如何訓練深度s型神經(jīng)網(wǎng)絡來產(chǎn)生對手寫體數(shù)字文本有用的表示,用到的主要思想是貪婪逐層預訓練RBM之后再進行微調(diào)。

3、 深度學習在行人檢測中的應用

將CNN應用到行人檢測中,提出一種聯(lián)合深度神經(jīng)網(wǎng)絡模型(unified deep net,UDN)。輸入層有3個通道,均為對YUV空間進行相關(guān)變換得到,實驗結(jié)果表明在此實驗平臺前提下,此輸入方式較灰色像素輸入方式正確率提高8%。第一層卷積采用64個不同卷積核,初始化采用Gabor濾波器,第二層卷積采用不同尺度的卷積核,提取人體的不同部位的具體特征,訓練過程作者采用聯(lián)合訓練方法。最終實驗結(jié)果在Caltech及ETH 數(shù)據(jù)集上錯失率較傳統(tǒng)的人體檢測HOG-SVM算法均有明顯下降,在Caltech庫上較目前最好的算法錯失率降低9%。

4、 深度學習在視頻分類及行為識別中的應用

A. Karpathy等基于卷積神經(jīng)網(wǎng)絡提供了一種應用于大規(guī)模視頻分類上的經(jīng)驗評估模型,將Sports-1M數(shù)據(jù)集的100萬段YouTube視頻數(shù)據(jù)分為487類。該模型使用4種時空信息融合方法用于卷積神經(jīng)網(wǎng)絡的訓練,融合方法包括單幀(single frame)、不相鄰兩幀(late fusion)、相鄰多幀(early fusion)以及多階段相鄰多幀(slow fusion);此外提出了一種多分辨率的網(wǎng)絡結(jié)構(gòu),大大提升了神經(jīng)網(wǎng)絡應用于大規(guī)模數(shù)據(jù)時的訓練速度。該模型在Sports-1M上的分類準確率達63.9%,相比于基于人工特征的方法(55.3%),有很大提升。此外,該模型表現(xiàn)出較好的泛化能力,單獨使用slow fusion融合方法所得模型在UCF-101動作識別數(shù)據(jù)集上的識別率為65.4%,而該數(shù)據(jù)集的基準識別率為43.9%。

S. Ji等提出一個三維卷積神經(jīng)網(wǎng)絡模型用于行為識別。該模型通過在空間和時序上運用三維卷積提取特征,從而獲得多個相鄰幀間的運動信息。該模型基于輸入幀生成多個特征圖通道,將所有通道的信息結(jié)合獲得最后的特征表示。該三維卷積神經(jīng)網(wǎng)絡模型在TRECVID數(shù)據(jù)上優(yōu)于其他方法,表明該方法對于真實環(huán)境數(shù)據(jù)有較好的效果;該模型在KTH數(shù)據(jù)上的表現(xiàn),遜于其他方法,原因是為了簡化計算而縮小了輸入數(shù)據(jù)的分辨率。

M. Baccouche等提出一種時序的深度學習模型,可在沒有任何先驗知識的前提下,學習分類人體行為。模型的第一步,是將卷積神經(jīng)網(wǎng)絡拓展到三維,自動學習時空特征。接下來使用RNN方法訓練分類每個序列。該模型在KTH上的測試結(jié)果優(yōu)于其他已知深度模型,KTH1和KTH2上的精度分別為94.39%和92.17%。

七、 深度學習存在的問題及未來研究方向

1、 深度學習目前存在的問題:

(1)、理論問題:

深度學習在理論方面存在的困難主要有兩個,第一個是關(guān)于統(tǒng)計學習,另一個和計算量相關(guān)。相對淺層學習模型來說,深度學習模型對非線性函數(shù)的表示能力更好。根據(jù)通用的神經(jīng)網(wǎng)絡逼近理論,對任何一個非線性函數(shù)來說,都可以由一個淺層模型和一個深度學習模型很好的表示,但相對淺層模型,深度學習模型需要較少的參數(shù)。關(guān)于深度學習訓練的計算復雜度也是我們需要關(guān)心的問題,即我們需要多大參數(shù)規(guī)模和深度的神經(jīng)網(wǎng)絡模型去解決相應的問題,在對構(gòu)建好的網(wǎng)絡進行訓練時,需要多少訓練樣本才能足以使網(wǎng)絡滿足擬合狀態(tài)。另外,網(wǎng)絡模型訓練所需要消耗的計算資源很難預估,對網(wǎng)絡的優(yōu)化技術(shù)仍有待進步。由于深度學習模型的代價函數(shù)都是非凸的,這也造成理論研究方面的困難。

(2)、建模問題:

在解決深層學習理論和計算困難的同時,如何構(gòu)建新的分層網(wǎng)絡模型,既能夠像傳統(tǒng)深層模型一樣能夠有效的抽取數(shù)據(jù)的潛在特征,又能夠像支持向量機一樣便于進行理論分析,另外,如何針對不同的應用問題構(gòu)建合適的深層模型同樣是一個很有挑戰(zhàn)性的問題?,F(xiàn)在用于圖像和語言的深度模型都擁有相似卷積和降采樣的功能模塊,研究人員在聲學模型方面也在進行相應的探索,能不能找到一個統(tǒng)一的深度模型適用于圖像,語音和自然語言的處理仍需要探索。

(3)、工程應用問題:

在深度學習的工程應用問題上,如何利用現(xiàn)有的大規(guī)模并行處理計算平臺進行大規(guī)模樣本數(shù)據(jù)訓練是各個進行深度學習研發(fā)公司首要解決的難題。由于像Hadoop這樣的傳統(tǒng)大數(shù)據(jù)處理平臺的延遲過高,不適用于深度學習的頻繁迭代訓練過程。現(xiàn)在最多采用的深度網(wǎng)絡訓練技術(shù)是隨機梯度下降算法。這種算法不適于在多臺計算機間并行運算,即使采用GPU加速技術(shù)對深度神經(jīng)網(wǎng)絡模型進行訓練也是需要花費漫長的時間。隨著互聯(lián)網(wǎng)行業(yè)的高速發(fā)展,特別是數(shù)據(jù)挖掘的需要,往往面對的是海量需要處理的數(shù)據(jù)。由于深度學習網(wǎng)絡訓練速度緩慢無法滿足互聯(lián)網(wǎng)應用的需求。

2、 深度學習未來研究方向:

深度學習算法在計算機視覺(圖像識別、視頻識別等)和語音識別中的應用,尤其是大規(guī)模數(shù)據(jù)集下的應用取得突破性的進展,但仍有以下問題值得進一步研究:

(1)、無標記數(shù)據(jù)的特征學習

目前,標記數(shù)據(jù)的特征學習仍然占據(jù)主導地位,而真實世界存在著海量的無標記數(shù)據(jù),將這些無標記數(shù)據(jù)逐一添加人工標簽,顯然是不現(xiàn)實的。所以,隨著數(shù)據(jù)集和存儲技術(shù)的發(fā)展,必將越來越重視對無標記數(shù)據(jù)的特征學習,以及將無標記數(shù)據(jù)進行自動添加標簽技術(shù)的研究。

(2)、模型規(guī)模與訓練速度

訓練精度之間的權(quán)衡。一般地,相同數(shù)據(jù)集下,模型規(guī)模越大,訓練精度越高,訓練速度會越慢。例如一些模型方法采用ReLU非線性變換、GPU運算,在保證精度的前提下,往往需要訓練5~7d。雖然離線訓練并不影響訓練之后模型的應用,但是對于模型優(yōu)化,諸如模型規(guī)模調(diào)整、超參數(shù)設置、訓練時調(diào)試等問題,訓練時間會嚴重影響其效率。故而,如何在保證一定的訓練精度的前提下,提高訓練速度,依然是深度學習方向研究的課題之一。

(3)、理論分析

需要更好地理解深度學習及其模型,進行更加深入的理論研究。深度學習模型的訓練為什么那么困難?這仍然是一個開放性問題。一個可能的答案是深度結(jié)構(gòu)神經(jīng)網(wǎng)絡有許多層,每一層由多個非線性神經(jīng)元組成,使得整個深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的非線性程度更強,減弱了基于梯度的尋優(yōu)方法的有效性;另一個可能的答案是局部極值的數(shù)量和結(jié)構(gòu)隨著深度結(jié)構(gòu)神經(jīng)網(wǎng)絡深度的增加而發(fā)生定性改變,使得訓練模型變得更加困難。造成深度學習訓練困難的原因究竟是由于用于深度學習模型的監(jiān)督訓練準則大量存在不好的局部極值,還是因為訓練準則對優(yōu)化算法來說過于復雜,這是值得探討的問題。此外,對堆棧自編碼網(wǎng)絡學習中的模型是否有合適的概率解釋,能否得到深度學習模型中似然函數(shù)梯度的小方差和低偏差估計,能否同時訓練所有的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡層,除了重構(gòu)誤差外,是否還存在其他更合適的可供選擇的誤差指標來控制深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的訓練過程,是否存在容易求解的RBM配分函數(shù)的近似函數(shù),這些問題還有待未來研究??紤]引入退火重要性抽樣來解決局部極值問題,不依賴于配分函數(shù)的學習算法也值得嘗試。

(4)、數(shù)據(jù)表示與模型

數(shù)據(jù)的表示方式對學習性能具有很大的影響,除了局部表示、分布表示和稀疏分布表示外,可以充分利用表示理論研究成果。是否還存在其他形式的數(shù)據(jù)表示方式,是否可以通過在學習的表示上施加一些形式的稀疏罰從而對RBM和自編碼模型的訓練性能起到改進作用,以及如何改進。是否可以用便于提取好的表示并且包含更簡單優(yōu)化問題的凸模型代替RBM和自編碼模型;不增加隱單元的數(shù)量,用非參數(shù)形式的能量函數(shù)能否提高RBM的容量等,未來還需要進一步探討這些問題。此外,除了卷積神經(jīng)網(wǎng)絡、DBN和堆棧自編碼網(wǎng)絡之外,是否還存在其他可以用于有效訓練的深度學習模型,有沒有可能改變所用的概率模型使訓練變得更容易,是否存在其他有效的或者理論上有效的方法學習深度學習模型,這也是未來需要進一步研究的問題。現(xiàn)有的方法,如DBN.HMM和DBN—CRF,在利用DBN的能力方面只是簡單的堆棧疊加基本模型,還沒有充分發(fā)掘出DBN的優(yōu)勢,需要研究DBN的結(jié)構(gòu)特點,充分利用DBN的潛在優(yōu)勢,找到更好的方法建立數(shù)據(jù)的深度學習模型,可以考慮將現(xiàn)有的社會網(wǎng)絡、基因調(diào)控網(wǎng)絡、結(jié)構(gòu)化建模理論以及稀疏化建模等理論運用其中。

(5)、特征提取

除了高斯–伯努利模型之外,還有哪些模型能用來從特征中提取重要的判別信息,未來需要提出有效的理論指導在每層搜索更加合適的特征提取模型。自編碼模型保持了輸入的信息,這些信息在后續(xù)的訓練過程中可能會起到重要作用,未來需要研究用CD訓練的RBM是否保持了輸入的信息,在沒有保持輸入信息的情況下如何進行修正。樹和圖等結(jié)構(gòu)的數(shù)據(jù)由于大小和結(jié)構(gòu)可變而不容易用向量表示其中包含的信息,如何泛化深度學習模型來表示這些信息,也是未來需要研究的問題。盡管當前的產(chǎn)生式預訓練加判別式微調(diào)學習策略看起來對許多任務都運行良好,但是在某些語言識別等其他任務中卻失敗了,對這些任務,產(chǎn)生式預訓練階段的特征提取似乎能很好地描述語音變化,但是包含的信息不足以區(qū)分不同的語言,未來需要提出新的學習策略,對這些學習任務提取合適的特征,這可以在很大程度上減小當前深度學習系統(tǒng)所需模型的大小。

(6)、訓練與優(yōu)化求解

為什么隨機初始化的深度結(jié)構(gòu)神經(jīng)網(wǎng)絡采用基于梯度的算法訓練總是不能成功,產(chǎn)生式預訓練方法為什么有效?未來需要研究訓練深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的貪婪逐層預訓練算法到底在最小化訓練數(shù)據(jù)的似然函數(shù)方面結(jié)果如何,是否過于貪婪,以及除了貪婪逐層預訓練的許多變形和半監(jiān)督嵌入算法之外,還有什么其他形式的算法能得到深度結(jié)構(gòu)神經(jīng)網(wǎng)絡的局部訓練信息。此外,無監(jiān)督逐層訓練過程對訓練深度學習模型起到幫助作用,但有實驗表明訓練仍會陷入局部極值并且無法有效利用數(shù)據(jù)集中的所有信息,能否提出用于深度學習的更有效的優(yōu)化策略來突破這種限制,基于連續(xù)優(yōu)化的策略能否用于有效改進深度學習的訓練過程,這些問題還需要繼續(xù)研究。二階梯度方法和自然梯度方法在理論研究中可證明對訓練求解深度學習模型有效,但是這些算法還不是深度結(jié)構(gòu)神經(jīng)網(wǎng)絡優(yōu)化的標準算法,未來還需要進一步驗證和改進這些算法,研究其能否代替微批次隨機梯度下降類算法。當前的基于微批次隨機梯度優(yōu)化算法難以在計算機上并行處理,目前最好的解決方法是用GPU來加速學習過程,但是單個機器的GPU無法用于處理大規(guī)模語音識別和類似的大型數(shù)據(jù)集的學習,因此未來需要提出理論上可行的并行學習算法來訓練深度學習模型。

(7)、與其他方法的融合

從上述應用實例中可發(fā)現(xiàn),單一的深度學習方法,往往并不能帶來最好的效果,通常融合其他方法或多種方法進行平均打分,會帶來更高的精確率。因此,深度學習方法與其他方法的融合,具有一定的研究意義。

(8)、研究拓展

當深度模型沒有有效的自適應技術(shù),在測試數(shù)據(jù)集分布不同于訓練集分布時,它們很難得到比常用模型更好的性能,因此未來有必要提出用于深度學習模型的自適應技術(shù)以及對高維數(shù)據(jù)具有更強魯棒性的更先進的算法。目前的深度學習模型訓練算法包含許多階段,而在在線學習場景中一旦進入微調(diào)階段就有可能陷入局部極值,因此目前的算法對于在線學習環(huán)境是不可行的。未來需要研究是否存在訓練深度學習的完全在線學習過程能夠一直具有無監(jiān)督學習成分。DBN模型很適合半監(jiān)督學習場景和自教學習場景,當前的深度學習算法如何應用于這些場景并且在性能上優(yōu)于現(xiàn)有的半監(jiān)督學習算法,如何結(jié)合監(jiān)督和無監(jiān)督準則來學習輸入的模型表示,是否存在一個深度使得深度學習模型的計算足夠接近人類在人工智能任務中表現(xiàn)出的水平,這也是未來需要進一步研究的問題。

八、 深度學習開源軟件

目前網(wǎng)上關(guān)于深度學習的源代碼非常多,主要的項目有

框架名稱:Caffe 主要維護方:BVLC 支持的語言:C++/Python/Matlab GitHub源碼地址:https://github.com/BVLC/caffe

框架名稱:PyTorch 主要維護方:Facebook 支持的語言:C/C++/Python GitHub源碼地址:https://github.com/pytorch/pytorch

框架名稱:Theano 主要維護方:UdeM 支持的語言:Python GitHub源碼地址:https://github.com/Theano/Theano

框架名稱:CNTK 主要維護方:Microsoft 支持的語言:C++/Python/C#/.NET/Java/R GitHub源碼地址:https://github.com/Microsoft/CNTK

框架名稱:PaddlePaddle 主要維護方:Baidu 支持的語言:C++/Python GitHub源碼地址:https://github.com/PaddlePaddle/Paddle/

框架名稱:Deeplearning4j 主要維護方:Eclipse 支持的語言:Java/Scala等 GitHub源碼地址:https://github.com/eclipse/deeplearning4j

框架名稱:ONNX 主要維護方:Microsoft/ Facebook 支持的語言:Python/R GitHub源碼地址:https://github.com/onnx/onnx

框架選擇建議

根據(jù)上節(jié)圖表及優(yōu)缺點分析,綜合考慮開發(fā)語言、跨平臺開發(fā)、文檔完善性、支持接口等因素,得到了當前受眾最廣且網(wǎng)上文獻、資料最為完善的兩個框架:TensorFlow及Pytorch。其他幾種深度學習框架不是開發(fā)語言不匹配(DL4J、Kears、Teano),就是投資資源有限或者已不再維護(Caffe&Cafe2、Theano、CNTK……)。

TensorFlow和Pytorch我目前最為活躍的連個深度學習框架。

但是,行業(yè)里智能駕駛相關(guān)算法一般都是基于c++語言開發(fā)的較多,雖然深度學習框架的開發(fā)語言和智能駕駛算法的開發(fā)語言是相互獨立的,考慮到個人學習成本問題,建議直接上C++,學習一門語言就可以滿足需求。因此,如果有c++基礎的,TensorFlow是最佳選項。另外,相比TensorFlow,Pytorch具有以下優(yōu)勢:

學習成本低,上手快; 動態(tài)計算圖,數(shù)據(jù)參數(shù)在CPU于GPU之間遷移靈活,提升開發(fā)效率。 因此,如果不會C++,雖然TensorFlow在依賴庫及部署等方面有一定優(yōu)勢,但是綜合考慮學習時間成本(python上手比C++要快很多),如果項目時間較為緊張、預留時間不多的前提下,Pytorch不失為一個優(yōu)選方案。

國內(nèi)的很多智能駕駛項目都是基于Apollo這套東西來的,如果項目開發(fā)用的是百度Apollo算法,其代碼適用性最強的肯定還是百度自己的深度學習框架PaddlePaddle。

綜上,建議如下:

有C++語言基礎:TensorFlow; 具備python語言基礎:Pytorch; 項目算法基于Apollo項目開發(fā):PaddlePaddle。 國內(nèi)深度學習框架自研之路

2020年上半年,華為Mindspore、曠視MegEngine、騰訊TNN、清華Jittor等數(shù)個國產(chǎn)AI框架漸次宣布開源,討論的熱度一直在持續(xù)。最近一流科技的OneFlow又首創(chuàng)性地引入Actor模型和SBP機制,以其獨特設計引起關(guān)注。很多人也開始思考:在已有成熟的開源深度學習框架并擁有完整生態(tài)的情況下,中國企業(yè)和機構(gòu)是否有必要再另造一套框架?自研深度學習框架的創(chuàng)新空間又有多大?

近幾年,基礎技術(shù)的“卡脖子”問題逐漸浮出水面。不久前美國政府發(fā)布的“芯片禁令”將華為逼到了非常被動的境地。前事不忘后事之師,中國要想發(fā)展好新一代的人工智能,通過自主研發(fā)來掌握AI底層技術(shù)無疑是未雨綢繆的重要舉措。因此自研深度學習框架是非常必要的。不過局中人也都知道要超越那些已有的成熟的框架也是很難的,那么出路何在?

雖然很多人認為深度學習框架的融合是時之所趨勢,TensorFlow2.0和PyTorch也的確是越來越像了,但實際上深度學習框架的市場是很大的,用戶需求也是多樣的,這就注定不可能由某個企業(yè)、某個產(chǎn)品壟斷。就像TensorFlow也曾一家獨大,但PyTorch橫空出世后迅速形成兩強對峙的局面,關(guān)鍵就在于兩者設計初衷的差異。TensorFlow面向工業(yè)界,側(cè)重推理,在部署上實現(xiàn)了工業(yè)級的穩(wěn)定;PyTorch面向?qū)W術(shù)界,側(cè)重訓練,足夠簡單易用,能達成快速實現(xiàn)和驗證。最終兩者在各自面向的領(lǐng)域都確立了王者地位。

差異化可能將是深度學習框架自研之路上的制勝關(guān)鍵。單純依靠模仿的框架肯定是沒有出路的,如何與現(xiàn)存的成熟的深度學習框架區(qū)別開來進而打造自身亮點是眾多開發(fā)團隊所要考慮的。PaddlePaddle模型庫豐富,MegEngine追求訓練推理一體化,Mindspore深耕自動并行的訓練能力,OneFlow專注分布式環(huán)境下的性能提升……相比“一枝獨秀”,“百花齊放”無疑更有利于國內(nèi)深度學習框架的長足發(fā)展。

以上整理的內(nèi)容主要摘自五篇文章:

1、 《基于深度學習的圖像檢索研究》,內(nèi)蒙古大學,碩論,2014

2、 《基于卷積神經(jīng)網(wǎng)絡的深度學習算法與應用研究》,浙江工商大學,碩論,2014

3、 《深度學習研究進展》,計算機應用研究,期刊,2014

4、 《深度學習研究綜述》,北京工業(yè)大學學報,期刊,2015

5、 《深度學習最新研究進展綜述》,中國科技論文在線,期刊,2015

柚子快報邀請碼778899分享:機器學習 深度學習概述

http://yzkb.51969.com/

推薦閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/18909374.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄