深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展分析_第1頁(yè)
深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展分析_第2頁(yè)
深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展分析_第3頁(yè)
深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展分析_第4頁(yè)
深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展分析_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展分析目 錄 TOC o 1-3 h z u HYPERLINK l _Toc530405374 1.1 深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展現(xiàn)狀 PAGEREF _Toc530405374 h 3 HYPERLINK l _Toc530405375 1.1.1 深度學(xué)習(xí)領(lǐng)域介紹 PAGEREF _Toc530405375 h 3 HYPERLINK l _Toc530405376 1.1.2 常用深度學(xué)習(xí)軟件簡(jiǎn)介 PAGEREF _Toc530405376 h 8 HYPERLINK l _Toc530405377 1.1.3 深度學(xué)習(xí)框架XSharp PAGEREF _To

2、c530405377 h 12 HYPERLINK l _Toc530405378 1.1.4 深度學(xué)習(xí)領(lǐng)域需求分析 PAGEREF _Toc530405378 h 15深度學(xué)習(xí)領(lǐng)域高性能計(jì)算發(fā)展現(xiàn)狀深度學(xué)習(xí)領(lǐng)域介紹深度學(xué)習(xí)簡(jiǎn)介深度學(xué)習(xí)框架,尤其是基于人工神經(jīng)網(wǎng)絡(luò)的框架可以追溯到1980年福島邦彥提出的新認(rèn)知機(jī),而人工神經(jīng)網(wǎng)絡(luò)的歷史更為久遠(yuǎn)。1989年,燕樂(lè)存(Yann LeCun)等人開始將1974年提出的標(biāo)準(zhǔn)反向傳播算法應(yīng)用于深度神經(jīng)網(wǎng)絡(luò),這一網(wǎng)絡(luò)被用于手寫郵政編碼識(shí)別。盡管算法可以成功執(zhí)行,但計(jì)算代價(jià)非常巨大,神經(jīng)網(wǎng)路的訓(xùn)練時(shí)間達(dá)到了3天,因而無(wú)法投入實(shí)際使用。許多因素導(dǎo)致了這一緩慢的訓(xùn)

3、練過(guò)程,其中一種是由于爾根施密德胡伯(Jrgen Schmidhuber)的學(xué)生賽普霍克賴特(Sepp Hochreiter)于1991年提出的梯度消失問(wèn)題。與此同時(shí),神經(jīng)網(wǎng)絡(luò)也受到了其他更加簡(jiǎn)單模型的挑戰(zhàn),支持向量機(jī)等模型在20世紀(jì)90年代到21世紀(jì)初成為更加流行的機(jī)器學(xué)習(xí)算法。“深度學(xué)習(xí)”這一概念從2007年前后開始受到關(guān)注。當(dāng)時(shí),杰弗里辛頓(Geoffrey Hinton)和魯斯蘭薩拉赫丁諾夫(Ruslan Salakhutdinov)提出了一種在前饋神經(jīng)網(wǎng)絡(luò)中進(jìn)行有效訓(xùn)練的算法。這一算法將網(wǎng)絡(luò)中的每一層視為無(wú)監(jiān)督的受限玻爾茲曼機(jī),再使用有監(jiān)督的反向傳播算法進(jìn)行調(diào)優(yōu)。在此之前的1992年

4、,在更為普遍的情形下,施密德胡伯也曾在遞歸神經(jīng)網(wǎng)絡(luò)上提出一種類似的訓(xùn)練方法,并在實(shí)驗(yàn)中證明這一訓(xùn)練方法能夠有效提高有監(jiān)督學(xué)習(xí)的執(zhí)行速度.自深度學(xué)習(xí)出現(xiàn)以來(lái),它已成為很多領(lǐng)域,尤其是在計(jì)算機(jī)視覺(jué)和語(yǔ)音識(shí)別中,成為各種領(lǐng)先系統(tǒng)的一部分。在通用的用于檢驗(yàn)的數(shù)據(jù)集,例如語(yǔ)音識(shí)別中的TIMIT和圖像識(shí)別中的ImageNet, Cifar10上的實(shí)驗(yàn)證明,深度學(xué)習(xí)能夠提高識(shí)別的精度。硬件的進(jìn)步也是深度學(xué)習(xí)重新獲得關(guān)注的重要因素。高性能圖形處理器的出現(xiàn)極大地提高了數(shù)值和矩陣運(yùn)算的速度,使得機(jī)器學(xué)習(xí)算法的運(yùn)行時(shí)間得到了顯著的縮短基本概念深度學(xué)習(xí)的基礎(chǔ)是機(jī)器學(xué)習(xí)中的分散表示(distributed repres

5、entation)。分散表示假定觀測(cè)值是由不同因子相互作用生成。在此基礎(chǔ)上,深度學(xué)習(xí)進(jìn)一步假定這一相互作用的過(guò)程可分為多個(gè)層次,代表對(duì)觀測(cè)值的多層抽象。不同的層數(shù)和層的規(guī)??捎糜诓煌潭鹊某橄?。深度學(xué)習(xí)運(yùn)用了這分層次抽象的思想,更高層次的概念從低層次的概念學(xué)習(xí)得到。這一分層結(jié)構(gòu)常常使用貪婪算法逐層構(gòu)建而成,并從中選取有助于機(jī)器學(xué)習(xí)的更有效的特征.不少深度學(xué)習(xí)算法都以無(wú)監(jiān)督學(xué)習(xí)的形式出現(xiàn),因而這些算法能被應(yīng)用于其他算法無(wú)法企及的無(wú)標(biāo)簽數(shù)據(jù),這一類數(shù)據(jù)比有標(biāo)簽數(shù)據(jù)更豐富,也更容易獲得。這一點(diǎn)也為深度學(xué)習(xí)贏得了重要的優(yōu)勢(shì)。人工神經(jīng)網(wǎng)絡(luò)下的深度學(xué)習(xí)一部分最成功的深度學(xué)習(xí)方法涉及到對(duì)人工神經(jīng)網(wǎng)絡(luò)的運(yùn)用。

6、人工神經(jīng)網(wǎng)絡(luò)受到了1959年由諾貝爾獎(jiǎng)得主大衛(wèi)休伯爾(David H. Hubel)和托斯坦威澤爾(Torsten Wiesel)提出的理論啟發(fā)。休伯爾和威澤爾發(fā)現(xiàn),在大腦的初級(jí)視覺(jué)皮層中存在兩種細(xì)胞:簡(jiǎn)單細(xì)胞和復(fù)雜細(xì)胞,這兩種細(xì)胞承擔(dān)不同層次的視覺(jué)感知功能。受此啟發(fā),許多神經(jīng)網(wǎng)絡(luò)模型也被設(shè)計(jì)為不同節(jié)點(diǎn)之間的分層模型。福島邦彥提出的新認(rèn)知機(jī)引入了使用無(wú)監(jiān)督學(xué)習(xí)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)。燕樂(lè)存將有監(jiān)督的反向傳播算法應(yīng)用于這一架構(gòu)。事實(shí)上,從反向傳播算法自20世紀(jì)70年代提出以來(lái),不少研究者都曾試圖將其應(yīng)用于訓(xùn)練有監(jiān)督的深度神經(jīng)網(wǎng)絡(luò),但最初的嘗試大都失敗。賽普霍克賴特(Sepp Hochreiter)在

7、其博士論文中將失敗的原因歸結(jié)為梯度消失,這一現(xiàn)象同時(shí)在深度前饋神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)中出現(xiàn),后者的訓(xùn)練過(guò)程類似深度網(wǎng)絡(luò)。在分層訓(xùn)練的過(guò)程中,本應(yīng)用于修正模型參數(shù)的誤差隨著層數(shù)的增加指數(shù)遞減,這導(dǎo)致了模型訓(xùn)練的效率低下。為了解決這一問(wèn)題,研究者們提出了一些不同的方法。于爾根施密德胡伯(Jrgen Schmidhuber)于1992年提出多層級(jí)網(wǎng)絡(luò),利用無(wú)監(jiān)督學(xué)習(xí)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)的每一層,再使用反向傳播算法進(jìn)行調(diào)優(yōu)。在這一模型中,神經(jīng)網(wǎng)絡(luò)中的每一層都代表觀測(cè)變量的一種壓縮表示,這一表示也被傳遞到下一層網(wǎng)絡(luò)。另一種方法是賽普霍克賴特和于爾根施密德胡伯提出的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(long short t

8、erm memory,LSTM)。2009年,在ICDAR 2009舉辦的連筆手寫識(shí)別競(jìng)賽中,在沒(méi)有任何先驗(yàn)知識(shí)的情況下,深度多維長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)取得了其中三場(chǎng)比賽的勝利。斯文貝克提出了在訓(xùn)練時(shí)只依賴梯度符號(hào)的神經(jīng)抽象金字塔模型,用以解決圖像重建和人臉定位的問(wèn)題。其他方法同樣采用了無(wú)監(jiān)督預(yù)訓(xùn)練來(lái)構(gòu)建神經(jīng)網(wǎng)絡(luò),用以發(fā)現(xiàn)有效的特征,此后再采用有監(jiān)督的反向傳播以區(qū)分有標(biāo)簽數(shù)據(jù)。辛頓等人于2006年提出的深度模型提出了使用多層隱變量學(xué)習(xí)高層表示的方法。這一方法使用斯摩棱斯基于1986年提出的受限玻爾茲曼機(jī)對(duì)每一個(gè)包含高層特征的層進(jìn)行建模。模型保證了數(shù)據(jù)的對(duì)數(shù)似然下界隨著層數(shù)的提升而遞增。當(dāng)足夠多的層

9、數(shù)被學(xué)習(xí)完畢,這一深層結(jié)構(gòu)成為一個(gè)生成模型,可以通過(guò)自上而下的采樣重構(gòu)整個(gè)數(shù)據(jù)集。辛頓聲稱這一模型在高維結(jié)構(gòu)化數(shù)據(jù)上能夠有效低提取特征。吳恩達(dá)和杰夫迪恩(Jeff Dean)領(lǐng)導(dǎo)的谷歌大腦團(tuán)隊(duì)創(chuàng)建了一個(gè)僅通過(guò)YouTube視頻學(xué)習(xí)高層概念(例如貓)的神經(jīng)網(wǎng)絡(luò)。其他方法依賴了現(xiàn)代電子計(jì)算機(jī)的強(qiáng)大計(jì)算能力,尤其是GPU。2010年,在于爾根施密德胡伯位于瑞士人工智能實(shí)驗(yàn)室IDSIA的研究組中,丹奇雷尚(Dan Ciresan)和他的同事展示了利用GPU直接執(zhí)行反向傳播算法而忽視梯度消失問(wèn)題的存在。這一方法在燕樂(lè)存等人給出的手寫識(shí)別MNIST數(shù)據(jù)集上戰(zhàn)勝了已有的其他方法。截止2011年,前饋神經(jīng)網(wǎng)絡(luò)

10、深度學(xué)習(xí)中最新的方法是交替使用卷積層(convolutional layers)和最大值池化層(max-pooling layers)并加入單純的分類層作為頂端。訓(xùn)練過(guò)程也無(wú)需引入無(wú)監(jiān)督的預(yù)訓(xùn)練。從2011年起,這一方法的GPU實(shí)現(xiàn)多次贏得了各類模式識(shí)別競(jìng)賽的勝利,包括IJCNN 2011交通標(biāo)志識(shí)別競(jìng)賽和其他比賽。深度學(xué)習(xí)結(jié)構(gòu)深度神經(jīng)網(wǎng)絡(luò)是一種具備至少一個(gè)隱層的神經(jīng)網(wǎng)絡(luò)。與淺層神經(jīng)網(wǎng)絡(luò)類似,深度神經(jīng)網(wǎng)絡(luò)也能夠?yàn)閺?fù)雜非線性系統(tǒng)提供建模,但多出的層次為模型提供了更高的抽象層次,因而提高了模型的能力。深度神經(jīng)網(wǎng)絡(luò)通常都是前饋神經(jīng)網(wǎng)絡(luò),但也有語(yǔ)言建模等方面的研究將其拓展到遞歸神經(jīng)網(wǎng)絡(luò)。卷積深度神經(jīng)網(wǎng)

11、絡(luò)(Covolutional Neuron Networks, CNN)在計(jì)算機(jī)視覺(jué)領(lǐng)域得到了成功的應(yīng)用。此后,卷積神經(jīng)網(wǎng)絡(luò)也作為聽覺(jué)模型被使用在自動(dòng)語(yǔ)音識(shí)別領(lǐng)域,較以往的方法獲得了更優(yōu)的結(jié)果40深度神經(jīng)網(wǎng)絡(luò)深度神經(jīng)網(wǎng)絡(luò)(deep neuron networks, DNN)是一種 HYPERLINK /wiki/%E5%88%A4%E5%88%AB%E6%A8%A1%E5%9E%8B o 判別模型 判別模型,可以使用 HYPERLINK /wiki/%E5%8F%8D%E5%90%91%E4%BC%A0%E6%92%AD%E7%AE%97%E6%B3%95 o 反向傳播算法 反向傳播算法進(jìn)行訓(xùn)

12、練。權(quán)重更新可以使用下式進(jìn)行 HYPERLINK /w/index.php?title=%E9%9A%8F%E6%9C%BA%E6%A2%AF%E5%BA%A6%E4%B8%8B%E9%99%8D&action=edit&redlink=1 o 隨機(jī)梯度下降(頁(yè)面不存在) 隨機(jī)梯度下降求解:其中,為學(xué)習(xí)率,為 HYPERLINK /w/index.php?title=%E4%BB%A3%E4%BB%B7%E5%87%BD%E6%95%B0&action=edit&redlink=1 o 代價(jià)函數(shù)(頁(yè)面不存在) 代價(jià)函數(shù)。這一函數(shù)的選擇與學(xué)習(xí)的類型(例如監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)、增強(qiáng)學(xué)習(xí))以及 HY

13、PERLINK /w/index.php?title=%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0&action=edit&redlink=1 o 激活函數(shù)(頁(yè)面不存在) 激活函數(shù)相關(guān)。例如,為了在一個(gè)多分類問(wèn)題上進(jìn)行監(jiān)督學(xué)習(xí),通常的選擇是使用 HYPERLINK /w/index.php?title=Softmax%E5%87%BD%E6%95%B0&action=edit&redlink=1 o Softmax函數(shù)(頁(yè)面不存在) Softmax函數(shù)作為激活函數(shù),而使用 HYPERLINK /w/index.php?title=%E4%BA%A4%E5%8F%89

14、%E7%86%B5&action=edit&redlink=1 o 交叉熵(頁(yè)面不存在) 交叉熵作為代價(jià)函數(shù)。Softmax函數(shù)定義為,其中代表類別的概率,而和分別代表對(duì)單元和的輸入。交叉熵定義為,其中代表輸出單元的目標(biāo)概率,代表應(yīng)用了激活函數(shù)后對(duì)單元的概率輸出 HYPERLINK /wiki/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0 l cite_note-HINTON2012-41 41。深度神經(jīng)網(wǎng)絡(luò)的問(wèn)題與其他神經(jīng)網(wǎng)絡(luò)模型類似,如果僅僅是簡(jiǎn)單地訓(xùn)練,深度神經(jīng)網(wǎng)絡(luò)可能會(huì)存在很多問(wèn)題。常見的兩類問(wèn)題是過(guò)擬合和過(guò)長(zhǎng)的運(yùn)算時(shí)間。深度神經(jīng)網(wǎng)絡(luò)很容易產(chǎn)生過(guò)擬合現(xiàn)象,因

15、為增加的抽象層使得模型能夠?qū)τ?xùn)練數(shù)據(jù)中較為罕見的依賴關(guān)系進(jìn)行建模。對(duì)此,權(quán)重遞減(正規(guī)化)或者稀疏(-正規(guī)化)等方法可以利用在訓(xùn)練過(guò)程中以減小過(guò)擬合現(xiàn)象。另一種較晚用于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的正規(guī)化方法是丟棄法(dropout regularization),即在訓(xùn)練中隨機(jī)丟棄一部分隱層單元來(lái)避免對(duì)較為罕見的依賴進(jìn)行建模。反向傳播算法和梯度下降法由于其實(shí)現(xiàn)簡(jiǎn)單,與其他方法相比能夠收斂到更好的局部最優(yōu)值而成為神經(jīng)網(wǎng)絡(luò)訓(xùn)練的通行方法。但是,這些方法的計(jì)算代價(jià)很高,尤其是在訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時(shí),因?yàn)樯疃壬窠?jīng)網(wǎng)絡(luò)的規(guī)模(即層數(shù)和每層的節(jié)點(diǎn)數(shù))、學(xué)習(xí)率、初始權(quán)重等眾多參數(shù)都需要考慮。掃描所有參數(shù)由于時(shí)間代價(jià)的原

16、因并不可行,因而小批量訓(xùn)練(mini-batching),即將多個(gè)訓(xùn)練樣本組合進(jìn)行訓(xùn)練而不是每次只使用一個(gè)樣本進(jìn)行訓(xùn)練,被用于加速模型訓(xùn)練44。而最顯著地速度提升來(lái)自GPU,因?yàn)榫仃嚭拖蛄坑?jì)算非常適合使用GPU實(shí)現(xiàn)。但使用大規(guī)模集群進(jìn)行深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練仍然存在困難,因而深度神經(jīng)網(wǎng)絡(luò)在訓(xùn)練并行化方面仍有提升的空間。深度置信網(wǎng)絡(luò)深度置信網(wǎng)絡(luò)(deep belief networks,DBN)是一種包含多層隱單元的概率生成模型,可被視為多層簡(jiǎn)單學(xué)習(xí)模型組合而成的復(fù)合模型。深度置信網(wǎng)絡(luò)可以作為深度神經(jīng)網(wǎng)絡(luò)的預(yù)訓(xùn)練部分,并為網(wǎng)絡(luò)提供初始權(quán)重,再使用反向傳播或者其他判定算法作為調(diào)優(yōu)的手段。這在訓(xùn)練數(shù)據(jù)較為

17、缺乏時(shí)很有價(jià)值,因?yàn)椴磺‘?dāng)?shù)某跏蓟瘷?quán)重會(huì)顯著影響最終模型的性能,而預(yù)訓(xùn)練獲得的權(quán)重在權(quán)值空間中比隨機(jī)權(quán)重更接近最優(yōu)的權(quán)重。這不僅提升了模型的性能,也加快了調(diào)優(yōu)階段的收斂速度46。深度置信網(wǎng)絡(luò)中的每一層都是典型的受限玻爾茲曼機(jī)(restricted Boltzmann machine,RBM),可以使用高效的無(wú)監(jiān)督逐層訓(xùn)練方法進(jìn)行訓(xùn)練。受限玻爾茲曼機(jī)是一種無(wú)向的基于能量的生成模型,包含一個(gè)輸入層和一個(gè)隱層。圖中對(duì)的邊僅在輸入層和隱層之間存在,而輸入層節(jié)點(diǎn)內(nèi)部和隱層節(jié)點(diǎn)內(nèi)部則不存在邊。單層RBM的訓(xùn)練方法最初由杰弗里辛頓在訓(xùn)練“專家乘積”中提出,被稱為對(duì)比分歧(contrast divergenc

18、e, CD)。對(duì)比分歧提供了一種對(duì)最大似然的近似,被理想地用于學(xué)習(xí)受限玻爾茲曼機(jī)的權(quán)重。當(dāng)單層RBM被訓(xùn)練完畢后,另一層RBM可被堆疊在已經(jīng)訓(xùn)練完成的RBM上,形成一個(gè)多層模型。每次堆疊時(shí),原有的多層網(wǎng)絡(luò)輸入層被初始化為訓(xùn)練樣本,權(quán)重為先前訓(xùn)練得到的權(quán)重,該網(wǎng)絡(luò)的輸出作為新增RBM的輸入,新的RBM重復(fù)先前的單層訓(xùn)練過(guò)程,整個(gè)過(guò)程可以持續(xù)進(jìn)行,直到達(dá)到某個(gè)期望中的終止條件。盡管對(duì)比分歧對(duì)最大似然的近似十分粗略(對(duì)比分歧并不在任何函數(shù)的梯度方向上),但經(jīng)驗(yàn)結(jié)果證實(shí)該方法是訓(xùn)練深度結(jié)構(gòu)的一種有效的方法。卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)(convolutional neuron networks,CNN)由

19、一個(gè)或多個(gè)卷積層和頂端的全連通層(對(duì)應(yīng)經(jīng)典的神經(jīng)網(wǎng)絡(luò))組成,同時(shí)也包括關(guān)聯(lián)權(quán)重和池化層(pooling layer)。這一結(jié)構(gòu)使得卷積神經(jīng)網(wǎng)絡(luò)能夠利用輸入數(shù)據(jù)的二維結(jié)構(gòu)。與其他深度學(xué)習(xí)結(jié)構(gòu)相比,卷積神經(jīng)網(wǎng)絡(luò)在圖像和語(yǔ)音識(shí)別方面能夠給出更優(yōu)的結(jié)果。這一模型也可以使用反向傳播算法進(jìn)行訓(xùn)練。相比較其他深度、前饋神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)需要估計(jì)的參數(shù)更少,使之成為一種頗具吸引力的深度學(xué)習(xí)結(jié)構(gòu)。卷積深度置信網(wǎng)絡(luò)卷積深度置信網(wǎng)絡(luò)(convolutional deep belief networks,CDBN)是深度學(xué)習(xí)領(lǐng)域較新的分支。在結(jié)構(gòu)上,卷積深度置信網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)上相似。因此,與卷積神經(jīng)網(wǎng)絡(luò)

20、類似,卷積深度置信網(wǎng)絡(luò)也具備利用圖像二維結(jié)構(gòu)的能力,與此同時(shí),卷積深度信念網(wǎng)絡(luò)也擁有深度置信網(wǎng)絡(luò)的預(yù)訓(xùn)練優(yōu)勢(shì)。卷積深度置信網(wǎng)絡(luò)提供了一種能被用于信號(hào)和圖像處理任務(wù)的通用結(jié)構(gòu),也能夠使用類似深度置信網(wǎng)絡(luò)的訓(xùn)練方法進(jìn)行訓(xùn)練。注:資料來(lái)源于維基百科: HYPERLINK /wiki/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0 /wiki/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0常用深度學(xué)習(xí)軟件簡(jiǎn)介CaffeCaffe的全稱應(yīng)該是Convolutional Architecture for Fast Feature Embedding,它是

21、一個(gè)清晰、高效的深度學(xué)習(xí)框架,它是開源的,核心語(yǔ)言是C+,它支持命令行、Python和Matlab接口,它既可以在CPU上運(yùn)行也可以在GPU上運(yùn)行。它的license是BSD 2-Clause。Deep Learning比較流行的一個(gè)原因,主要是因?yàn)樗軌蜃灾鞯貜臄?shù)據(jù)上學(xué)到有用的feature。特別是對(duì)于一些不知道如何設(shè)計(jì)feature的場(chǎng)合,比如說(shuō)圖像和speech。Caffe的設(shè)計(jì)基本上,Caffe 對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行了一個(gè)簡(jiǎn)單假設(shè)所有的計(jì)算都是以layer的形式表示的,layer做的事情就是拿一些數(shù)據(jù),然后輸出一些計(jì)算以后的結(jié)果,比如說(shuō)卷積,就是輸入一個(gè)圖像,然后和這一層的參數(shù)(filter

22、)做卷積,然后輸出卷積的結(jié)果。每一個(gè)layer需要做兩個(gè)計(jì)算:forward是從輸入計(jì)算輸出,然后backward是從上面給的gradient來(lái)計(jì)算相對(duì)于輸入的gradient,只要這兩個(gè)函數(shù)實(shí)現(xiàn)了以后,我們就可以把很多層連接成一個(gè)網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)做的事情就是輸入我們的數(shù)據(jù)(圖像或者語(yǔ)音),然后來(lái)計(jì)算我們需要的輸出(比如說(shuō)識(shí)別的label),在training的時(shí)候,我們可以根據(jù)已有的label來(lái)計(jì)算loss和gradient,然后用gradient來(lái)update網(wǎng)絡(luò)的參數(shù),這個(gè)就是Caffe的一個(gè)基本流程?;旧?,最簡(jiǎn)單地用Caffe上手的方法就是先把數(shù)據(jù)寫成Caffe的格式,然后設(shè)計(jì)一個(gè)網(wǎng)絡(luò)

23、,然后用Caffe提供的solver來(lái)做優(yōu)化看效果如何,如果你的數(shù)據(jù)是圖像的話,可以從現(xiàn)有的網(wǎng)絡(luò),比如說(shuō)alexnet或者googlenet開始,然后做fine tuning,如果你的數(shù)據(jù)稍有不同,比如說(shuō)是直接的float vector,你可能需要做一些自定義配置,Caffe的logistic regression example興許會(huì)很有幫助。Caffe的亮點(diǎn):(1)、模塊化:Caffe從一開始就設(shè)計(jì)得盡可能模塊化,允許對(duì)新數(shù)據(jù)格式、網(wǎng)絡(luò)層和損失函數(shù)進(jìn)行擴(kuò)展。(2)、表示和實(shí)現(xiàn)分離:Caffe的模型(model)定義是用Protocol Buffer語(yǔ)言寫進(jìn)配置文件的。以任意有向無(wú)環(huán)圖的形式

24、,Caffe支持網(wǎng)絡(luò)架構(gòu)。Caffe會(huì)根據(jù)網(wǎng)絡(luò)的需要來(lái)正確占用內(nèi)存。通過(guò)一個(gè)函數(shù)調(diào)用,實(shí)現(xiàn)CPU和GPU之間的切換。(3)、測(cè)試覆蓋:在Caffe中,每一個(gè)單一的模塊都對(duì)應(yīng)一個(gè)測(cè)試。(4)、Python和Matlab接口:同時(shí)提供Python和Matlab接口。(5)、預(yù)訓(xùn)練參考模型:針對(duì)視覺(jué)項(xiàng)目,Caffe提供了一些參考模型,這些模型僅應(yīng)用在學(xué)術(shù)和非商業(yè)領(lǐng)域,它們的license不是BSD。MXNet這是自xgboost, cxxnet, minerva以來(lái)集合DMLC幾乎所有開發(fā)者力量的一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目。MXNet名字源于”Mix and Maximize”。我們一直有一個(gè)目標(biāo),就是希望把

25、cxxnet這樣強(qiáng)調(diào)性能靜態(tài)優(yōu)化的C+庫(kù)和靈活的NDArray有機(jī)結(jié)合在一起。做包含cxxnet的靜態(tài)優(yōu)化,卻又可以像minerva, theano, torch那樣進(jìn)行靈活擴(kuò)展的深度學(xué)習(xí)庫(kù)。與其他工具相比,mxnet結(jié)合了符號(hào)語(yǔ)言和過(guò)程語(yǔ)言的編程模型,并試圖最大化各自優(yōu)勢(shì),利用統(tǒng)一的執(zhí)行引擎進(jìn)行自動(dòng)多GPU并行調(diào)度優(yōu)化。不同的編程模型有各自的優(yōu)勢(shì),以往的深度學(xué)習(xí)庫(kù)往往著重于靈活性,或者性能。MXNet通過(guò)融合的方式把各種編程模型整合在一起,并且通過(guò)統(tǒng)一的輕量級(jí)運(yùn)行引擎進(jìn)行執(zhí)行調(diào)度。使得用戶可以直接復(fù)用穩(wěn)定高效的神經(jīng)網(wǎng)絡(luò)模塊,并且可以通過(guò)Python等高級(jí)語(yǔ)言進(jìn)行快速擴(kuò)展。MXNet由 dml

26、c/cxxnet, dmlc/minerva和Purine2的作者發(fā)起,融合了Minerva的動(dòng)態(tài)執(zhí)行,cxxnet的靜態(tài)優(yōu)化和Purine2的符號(hào)計(jì)算等思想,直接支持基于Python的parameter server接口,使得代碼可以很快向分布式進(jìn)行遷移。每個(gè)模塊都進(jìn)行清晰設(shè)計(jì),使得每一部分本身都具有被直接利用的價(jià)值。C接口和靜態(tài)/動(dòng)態(tài)Library使得對(duì)于新語(yǔ)言的擴(kuò)展更加容易,目前支持C+和python 2/3 ,接下來(lái)相信會(huì)有更多語(yǔ)言支持,并方便其他工具增加深度學(xué)習(xí)功能。輕量級(jí)調(diào)度引擎。在數(shù)據(jù)流調(diào)度的基礎(chǔ)上引入了讀寫操作調(diào)度,并且使得調(diào)度和調(diào)度對(duì)象無(wú)關(guān),用以直接有機(jī)支持動(dòng)態(tài)計(jì)算和靜態(tài)計(jì)算

27、的統(tǒng)一多GPU多線程調(diào)度,使得上層實(shí)現(xiàn)更加簡(jiǎn)潔靈活。符號(hào)計(jì)算支持。MXNet支持基于靜態(tài)計(jì)算流圖符號(hào)計(jì)算。計(jì)算流圖不僅使設(shè)計(jì)復(fù)雜網(wǎng)絡(luò)更加簡(jiǎn)單快捷,而且基于計(jì)算流圖,MXNet可以更加高效得利用內(nèi)存。 同時(shí)進(jìn)一步優(yōu)化了靜態(tài)執(zhí)行的規(guī)劃,內(nèi)存需求比原本已經(jīng)省的cxxnet還要少?;旌蠄?zhí)行引擎。相比cxxnet的全靜態(tài)執(zhí)行,minerva的全動(dòng)態(tài)執(zhí)行。MXNet采用動(dòng)態(tài)靜態(tài)混合執(zhí)行引擎,可以把cxxnet靜態(tài)優(yōu)化的效率帶和ndarray動(dòng)態(tài)運(yùn)行的靈活性結(jié)合起來(lái)。把高效的c+庫(kù)更加靈活地和Python等高級(jí)語(yǔ)言結(jié)合在一起。更加靈活:在MShadow C+表達(dá)式模板的基礎(chǔ)上,符號(hào)計(jì)算和ndarray使在P

28、ython等高級(jí)語(yǔ)言內(nèi)編寫優(yōu)化算法,損失函數(shù)和其他深度學(xué)習(xí)組件并高效無(wú)縫支持CPU/GPU成為可能。用戶無(wú)需關(guān)心底層實(shí)現(xiàn),在符號(hào)和NDArray層面完成邏輯即可進(jìn)行高效的模型訓(xùn)練和預(yù)測(cè)。對(duì)于云計(jì)算更加友好:所有數(shù)據(jù)模型可以從S3/HDFS/Azure上直接加載訓(xùn)練。代碼更加簡(jiǎn)潔高效:大量使用C+11特性,使MXNet利用最少的代碼實(shí)現(xiàn)盡可能最大的功能。用約11k行C+代碼 (加上注釋 4k行)實(shí)現(xiàn)了以上核心功能。開源用戶和設(shè)計(jì)文檔,mxnet提供了非常詳細(xì)的用戶文檔和設(shè)計(jì)文檔以及樣例。所有的代碼都有詳細(xì)的文檔注釋。并且會(huì)持續(xù)更新代碼和系統(tǒng)設(shè)計(jì)細(xì)節(jié),希望對(duì)于廣大深度學(xué)習(xí)系統(tǒng)開發(fā)和愛(ài)好者有所幫助。

29、TensorFlowGoogle 大腦項(xiàng)目開始于 2011 年,目的是探索在科研和 Google 的產(chǎn)品中超大規(guī)模深度神經(jīng)網(wǎng)絡(luò)的使用。作為這個(gè)項(xiàng)目的早期工作,Google構(gòu)建了 DistBelief 第一代的可擴(kuò)展分布式訓(xùn)練和推斷系統(tǒng),這個(gè)系統(tǒng)工作得很不錯(cuò)。Google 的同事使用 DistBelief 進(jìn)行了廣泛的研究包括非監(jiān)督學(xué)習(xí)、語(yǔ)言表示、圖像分類模型和目標(biāo)檢測(cè)、視頻分類、語(yǔ)音識(shí)別、序列預(yù)測(cè)、Go 的移動(dòng)選擇、行人檢測(cè)、強(qiáng)化學(xué)習(xí)等等。另外,超過(guò) 50 個(gè) Google 內(nèi)部的團(tuán)隊(duì)和其他 Alphabet 公司也已經(jīng)部署了使用 DistBelief 的深度神經(jīng)網(wǎng)絡(luò)在眾多產(chǎn)品中,包括 Goo

30、gle Search、廣告產(chǎn)品、語(yǔ)音識(shí)別系統(tǒng)、Google Photos、Google Maps 和 街景、Google 翻譯、Youtube 和很多其他的產(chǎn)品。Google基于使用 DistBelief 的經(jīng)驗(yàn)和對(duì)于期望用來(lái)訓(xùn)練和使用神經(jīng)網(wǎng)絡(luò)的系統(tǒng)特性和需求更加完備地理解,構(gòu)建了 TensorFlow第二代大規(guī)模機(jī)器學(xué)習(xí)模型的實(shí)現(xiàn)和部署的系統(tǒng)。TensorFlow 使用通過(guò)類似數(shù)據(jù)流模型的計(jì)算,將這些計(jì)算映射到不同的硬件平臺(tái)例如使用包含一個(gè)或者多個(gè) GPU 顯卡的裝有 Android 和 iOS 的單個(gè)機(jī)器上進(jìn)行推斷,到運(yùn)行在數(shù)百臺(tái)包含數(shù)千個(gè) GPU 的大規(guī)模系統(tǒng)訓(xùn)練和推斷。擁有一個(gè)單一的系

31、統(tǒng)可以擴(kuò)展分布到眾多的平臺(tái)上可以大大簡(jiǎn)化真實(shí)場(chǎng)景中機(jī)器學(xué)習(xí)系統(tǒng)的使用,正如在用分離的系統(tǒng)進(jìn)行大規(guī)模訓(xùn)練和小規(guī)模的部署,會(huì)產(chǎn)生巨大的維護(hù)代價(jià)和較差的抽象效果。TensorFlow 的計(jì)算被表示為含狀態(tài)的數(shù)據(jù)流圖,我們聚焦在讓這個(gè)系統(tǒng)足夠靈活能夠快速地實(shí)驗(yàn)研究中產(chǎn)生的新模型,并同時(shí)充分地提升產(chǎn)品級(jí)訓(xùn)練的性能和部署機(jī)器學(xué)習(xí)模型健壯性。為擴(kuò)展神經(jīng)網(wǎng)絡(luò)訓(xùn)練搞更大的部署環(huán)境,TensorFlow 允許 client 簡(jiǎn)單地表達(dá)不同類型的并行通過(guò)復(fù)制和并行執(zhí)行一個(gè)核心模型數(shù)據(jù)流圖,依賴不同計(jì)算設(shè)備合作更新一個(gè)共享的參數(shù)或者其他的狀態(tài)。對(duì)計(jì)算描述的微妙變動(dòng)可以使用較低的代價(jià)來(lái)達(dá)到和嘗試很多不同的并行的方法。一

32、些 TensorFlow 的用途借助參數(shù)更新的一致性來(lái)實(shí)現(xiàn)靈活性,可以在一些更大的部署環(huán)境中輕易表達(dá)和利用這些同步上的松弛。對(duì)比 DistBelief,TensorFlow 的編程模型更加靈活,性能也更好,支持在大規(guī)模的異構(gòu)硬件平臺(tái)上訓(xùn)練和使用很多的模型。DistBelief 的內(nèi)部用戶已經(jīng)切換成TensorFlow 了。這些客戶依賴 TensorFlow 來(lái)研究和產(chǎn)品,執(zhí)行諸如在移動(dòng)電話計(jì)算機(jī)視覺(jué)模型的推斷到使用數(shù)百臺(tái)機(jī)器進(jìn)行千億級(jí)樣本的千億級(jí)參數(shù)的深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。TersorFlow按照 Apache 2.0 協(xié)議在 2015 年 11 月開源了 TensorFlow API,可以在

33、HYPERLINK /p/ t _blank 查看。TorchTorch誕生已經(jīng)有十年之久,但是真正起勢(shì)得益于去年Facebook開源了大量Torch的深度學(xué)習(xí)模塊和擴(kuò)展。Torch另外一個(gè)特殊之處是采用了不怎么流行的編程語(yǔ)言Lua(該語(yǔ)言曾被用來(lái)開發(fā)視頻游戲)。除了以上三個(gè)比較成熟知名的項(xiàng)目,還有很多有特色的深度學(xué)習(xí)開源框架也值得關(guān)注KerasKeras是一個(gè)極度簡(jiǎn)化、高度模塊化的神經(jīng)網(wǎng)絡(luò)第三方庫(kù)。基于Python+Theano開發(fā),充分發(fā)揮了GPU和CPU操作。其開發(fā)目的是為了更快的做神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)。適合前期的網(wǎng)絡(luò)原型設(shè)計(jì)、支持卷積網(wǎng)絡(luò)和反復(fù)性網(wǎng)絡(luò)以及兩者的結(jié)果、支持人工設(shè)計(jì)的其他網(wǎng)絡(luò)、在G

34、PU和CPU上運(yùn)行能夠無(wú)縫連接。深度學(xué)習(xí)框架XSharp深度學(xué)習(xí)的泰斗吳恩達(dá)指出,高性能計(jì)算(High Performance Computing, HPC)是深度學(xué)習(xí)的動(dòng)力引擎。憑借自身在國(guó)內(nèi)HPC的技術(shù)和市場(chǎng)領(lǐng)先優(yōu)勢(shì),率先提出深度學(xué)習(xí)XSystem系統(tǒng)。此系統(tǒng)為用戶提供一體化的深度學(xué)習(xí)軟硬件整體解決方案,包含深度學(xué)習(xí)XSharp軟件棧和XMachine硬件平臺(tái)。藉此軟硬件一體化平臺(tái),幫助用戶快速進(jìn)入Deep Learning領(lǐng)域,實(shí)現(xiàn)企業(yè)應(yīng)用快速成長(zhǎng),將科研成果快速轉(zhuǎn)化為第一生產(chǎn)力。整個(gè)系統(tǒng)以“XMachine Deep Learning一體機(jī)”為硬件平臺(tái),為深度學(xué)習(xí)定制開發(fā),多種類型GP

35、U服務(wù)器供選擇,原生支持NVIDIA DIGITS開發(fā)環(huán)境,大大降低用戶進(jìn)入深度學(xué)習(xí)領(lǐng)域的軟件件投入成本。XSharp系統(tǒng)特點(diǎn)XSharp深度學(xué)習(xí)軟件與其他產(chǎn)品有著本質(zhì)的區(qū)別。與其他廠商簡(jiǎn)單包裝開源軟件不同。XSharp產(chǎn)品初衷以用戶應(yīng)用為主,科研為輔。產(chǎn)品面向企業(yè)用戶的實(shí)際應(yīng)用,以XSharp平臺(tái)為契合點(diǎn),為用戶提供相應(yīng)的優(yōu)化策略,加速應(yīng)用效果?!癤Sharp Deep Learning軟件平臺(tái)”包含三個(gè)不同層次的軟件開發(fā)優(yōu)化層面,分別從分布式并行系統(tǒng)優(yōu)化,分布式并行機(jī)器學(xué)習(xí)執(zhí)行模式優(yōu)化,大規(guī)模機(jī)器學(xué)習(xí)算法工具集三個(gè)層面提供Deep Learning優(yōu)化策略,幫助用戶實(shí)現(xiàn)應(yīng)用優(yōu)化。同時(shí),XSharp軟件棧各模塊可以隨意組合,按照用戶應(yīng)用進(jìn)行裁剪,滿足不同需求。XSystem系統(tǒng)以“HPC+大數(shù)據(jù)處理”為設(shè)計(jì)理念,為深度學(xué)習(xí)用戶提供完整的軟件棧,整個(gè)平臺(tái)的目標(biāo)是加速用戶開發(fā)進(jìn)度,而非喧賓奪主,讓用戶偏離原有的研發(fā)方向。XSharp軟件意義XSharp是目前國(guó)內(nèi)廠商唯一一個(gè)針對(duì)深度學(xué)習(xí)的開放框架。我們利用HPC多年的技術(shù)積累,在HPC架構(gòu)基礎(chǔ)上構(gòu)建XSharp軟件棧,從原生技術(shù)上支持機(jī)器學(xué)習(xí)。XSharp聚焦用戶應(yīng)用,以加速實(shí)際應(yīng)用為目標(biāo),抽取圖像處理、音頻處理、自然語(yǔ)言處理過(guò)程中的通用方法,以核心的算法為突破口

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論