精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當(dāng)前位置:大數(shù)據(jù)業(yè)界動態(tài) → 正文

如何在實戰(zhàn)路上與時俱進(jìn):深度學(xué)習(xí)最佳實踐

責(zé)任編輯:editor005 作者:費志軍 |來源:企業(yè)網(wǎng)D1Net  2017-01-12 14:06:28 本文摘自:大數(shù)據(jù)雜談

  引言

自2006年Hinton提出神經(jīng)網(wǎng)絡(luò)新的訓(xùn)練方法起,深度學(xué)習(xí)發(fā)展迅速,促使人工智能在圖像、語音、自然語言處理等多個領(lǐng)域有了實質(zhì)性的突破,達(dá)到產(chǎn)業(yè)應(yīng)用標(biāo)準(zhǔn)。然而,深度學(xué)習(xí)作為人工智能領(lǐng)域的一項前瞻技術(shù),實踐性強,入門門檻高,關(guān)于深度學(xué)習(xí)的研究與應(yīng)用,現(xiàn)在仍有很多問題沒有找到滿意的答案,這些都給深度學(xué)習(xí)的廣泛應(yīng)用帶來挑戰(zhàn)。本文旨在提供一份清晰、簡潔的深度學(xué)習(xí)實踐說明,以便從事深度學(xué)習(xí)研究與工程技術(shù)人員能夠快速掌握深度學(xué)習(xí)的實際經(jīng)驗。

第一節(jié):深度學(xué)習(xí)概述

深度學(xué)習(xí)是模擬人腦進(jìn)行分析學(xué)習(xí)的多層神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),處理數(shù)據(jù),通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。深度學(xué)習(xí)本質(zhì)上是機(jī)器學(xué)習(xí)技術(shù)的一種,根據(jù)一般的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的工作方法和我們的經(jīng)驗,我們認(rèn)為采用深度學(xué)習(xí)技術(shù)解決實際業(yè)務(wù)問題的完整過程主要包括五個方面:問題理解與分析、訓(xùn)練環(huán)境構(gòu)建、數(shù)據(jù)管理、模型訓(xùn)練以及生產(chǎn)應(yīng)用?;诖?,我們對每個環(huán)節(jié)分別闡述最佳實踐,作為研究與工程應(yīng)用的參考指南。

深度學(xué)習(xí)解決問題的五個基本環(huán)節(jié)

  圖一:深度學(xué)習(xí)解決問題的五個基本環(huán)節(jié)

第二節(jié):問題理解與分析

深度學(xué)習(xí)不是一項“放之四海而皆準(zhǔn)”的技術(shù),采用深度學(xué)習(xí)解決復(fù)雜問題,首先需對實際問題全面剖析:問題是否適合采用深度學(xué)習(xí)解決,是否具備深度學(xué)習(xí)應(yīng)用的數(shù)據(jù)條件,如何將實際業(yè)務(wù)問題轉(zhuǎn)換成深度學(xué)習(xí)可以解決的技術(shù)問題等。

2.1場景分析

原則上,傳統(tǒng)機(jī)器學(xué)習(xí)能夠解決的問題,深度學(xué)習(xí)都能夠解決,譬如傳統(tǒng)機(jī)器學(xué)習(xí)主要面向?qū)W習(xí)類問題,包括有監(jiān)督學(xué)習(xí)(分類和回歸場景),無監(jiān)督學(xué)習(xí)(聚類等),均能夠采用深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練模型和應(yīng)用,但是兩者應(yīng)用效果會有所差異。依據(jù)實踐,在如下場景,可以優(yōu)先考慮采用深度學(xué)習(xí):

(1)業(yè)界提供了公開成熟的深度學(xué)習(xí)網(wǎng)絡(luò)模型的細(xì)分場景。面對這些場景的業(yè)務(wù)問題,可以基于公開的網(wǎng)絡(luò)模型進(jìn)行網(wǎng)絡(luò)權(quán)重微調(diào)(fine-tune),能夠達(dá)到不錯效果。以圖像識別為例,業(yè)界已經(jīng)公開了AlexNet,ResNet等深度網(wǎng)絡(luò)模型,在解決實際圖像分類問題時可避免從頭訓(xùn)練深度模型,在該模型的基礎(chǔ)上, 使用樣本數(shù)據(jù)進(jìn)行模型參數(shù)優(yōu)化(fine-tune)即可。

(2)深度學(xué)習(xí)應(yīng)用成功的行業(yè),譬如,深度學(xué)習(xí)在圖像分類、語音識別、自然語言處理等感知領(lǐng)域均取得實際應(yīng)用效果,并在行業(yè)內(nèi)得到驗證,因此如果問題域?qū)儆趫D像、語音、視頻等領(lǐng)域的問題,深度學(xué)習(xí)應(yīng)用效果往往比較理想。

(3)業(yè)務(wù)問題本身復(fù)雜,樣本數(shù)據(jù)充足,但問題本身又無法或者難以用人工的方式提取特征,此時傳統(tǒng)機(jī)器學(xué)習(xí)無法進(jìn)行模型訓(xùn)練,采用深度學(xué)習(xí),可以有效發(fā)揮深度學(xué)習(xí)自動提取特征的價值。

與此同時,某些場景并不適合采用深度學(xué)習(xí)來解決問題,譬如在小規(guī)模的數(shù)據(jù)場景下,深度學(xué)習(xí)容易過擬合(Overfitting),正如奧卡姆剃刀原則所說,“如無必要,勿增實體”。

此外,深度學(xué)習(xí)模型訓(xùn)練過程中,需要大量的浮點計算以及矩陣運算,若問題解決方不具備高效的計算環(huán)境以及海量樣本數(shù)據(jù)的客觀條件,也不推薦使用深度學(xué)習(xí)解決問題。

2.2數(shù)據(jù)評估

無論是有監(jiān)督學(xué)習(xí),還是無監(jiān)督學(xué)習(xí),深度學(xué)習(xí)的模型訓(xùn)練都建立在大量樣本的迭代訓(xùn)練基礎(chǔ)之上,在采用深度學(xué)習(xí)解決實際問題之前,需對問題領(lǐng)域數(shù)據(jù)仔細(xì)分析,衡量數(shù)據(jù)規(guī)模與質(zhì)量。以下提供幾條基本原則供借鑒:

(1)深度學(xué)習(xí)能夠從樣本數(shù)據(jù)自動提取特征,但在實際考查準(zhǔn)備樣本數(shù)據(jù)集時,建議盡可能與問題領(lǐng)域的業(yè)務(wù)專家充分交流,洞察問題與數(shù)據(jù)的相關(guān)性,剔除噪聲數(shù)據(jù),這樣可以大大提高模型訓(xùn)練的效率,少走彎路。

(2)考察問題領(lǐng)域的存量數(shù)據(jù)后,若發(fā)現(xiàn)不是特別充裕,可考慮如下方法進(jìn)行數(shù)據(jù)擴(kuò)充:爬取公共數(shù)據(jù);對已有數(shù)據(jù)進(jìn)行變換,擴(kuò)充數(shù)據(jù),譬如利用反射變化擴(kuò)充圖片數(shù)據(jù);人工制造,譬如人工拍攝圖像數(shù)據(jù)等;與產(chǎn)業(yè)界公司進(jìn)行數(shù)據(jù)合作等。詳見4.1節(jié)。

(3)當(dāng)采用業(yè)界公開的網(wǎng)絡(luò)模型進(jìn)行微調(diào)(fine-tune),需要進(jìn)一步驗證問題數(shù)據(jù)類型與公開網(wǎng)絡(luò)模型訓(xùn)練數(shù)據(jù)類型的相似性。若兩者數(shù)據(jù)類型差距比較大,采用微調(diào)(fine-tune)的方法訓(xùn)練出來的模型效果往往不理想,可能需要考慮從頭開始訓(xùn)練新的模型。

(4)樣本數(shù)據(jù)在整個深度學(xué)習(xí)模型訓(xùn)練過程不是一成不變的,模型實際訓(xùn)練過程中,會視模型的訓(xùn)練效果,不斷進(jìn)行多輪數(shù)據(jù)的迭代優(yōu)化等,讓樣本數(shù)據(jù)類型覆蓋更多的實際測試數(shù)據(jù)的類型,降低噪聲數(shù)據(jù)。因此,需要牢記,數(shù)據(jù)考量會貫穿整個模型訓(xùn)練過程。

2.3問題抽象

在利用傳統(tǒng)機(jī)器學(xué)習(xí)分析具體問題時,需要將問題抽象為有監(jiān)督學(xué)習(xí)問題或者無監(jiān)督問題。如果是有監(jiān)督問題,還需要進(jìn)一步抽象成分類或回歸問題,最后再選擇適合的算法來訓(xùn)練模型。深度學(xué)習(xí)本質(zhì)上仍屬機(jī)器學(xué)習(xí)范疇,因此利用深度學(xué)習(xí)解決實際問題,需要同樣的問題抽象過程:

與傳統(tǒng)機(jī)器學(xué)習(xí)一樣,有監(jiān)督學(xué)習(xí)問題和無監(jiān)督學(xué)習(xí)問題主要由樣本數(shù)據(jù)是否需要標(biāo)簽來決定:

(1)有監(jiān)督學(xué)習(xí)問題通過有標(biāo)簽訓(xùn)練數(shù)據(jù)集的形式,在輸入和輸出的數(shù)據(jù)之間建立相關(guān)性。

(2)無監(jiān)督學(xué)習(xí)問題通過分析非標(biāo)記數(shù)據(jù),幫助檢測數(shù)據(jù)的相似性和差異性,譬如圖片搜索和欺詐檢測等應(yīng)用場景。

當(dāng)問題定位為有監(jiān)督問題后,需進(jìn)一步確認(rèn)是分類問題還是回歸問題,判斷原則如下:

(1)回歸問題通常用來預(yù)測一個值,如預(yù)測下一季度銀行卡消費金額、交易筆數(shù)等等,回歸是對真實值的一種逼近預(yù)測。

(2)分類問題是用于將數(shù)據(jù)打上一個標(biāo)簽,通常結(jié)果為離散值,分類并沒有逼近的概念,最終正確結(jié)果只有一個,錯誤的就是錯誤的,不會有相近的概念。

當(dāng)實際問題抽象成具體深度學(xué)習(xí)技術(shù)問題后,即可以結(jié)合問題的數(shù)據(jù)類型選擇合適的深度網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行模型訓(xùn)練,譬如圖像數(shù)據(jù)處理,選擇卷積神經(jīng)網(wǎng)絡(luò)(CNN)等,詳見5.2節(jié)。

第三節(jié):訓(xùn)練環(huán)境構(gòu)建

構(gòu)建深度學(xué)習(xí)研究環(huán)境首先要考慮硬件環(huán)境的支持,這也是深度學(xué)習(xí)算法區(qū)別于其他機(jī)器學(xué)習(xí)算法的重要一點,同時還要依據(jù)實際需求對深度學(xué)習(xí)軟件框架進(jìn)行規(guī)劃和選擇。

3.1硬件環(huán)境選擇

深度學(xué)習(xí)需要很高的內(nèi)在并行度、大量的浮點計算能力以及矩陣運算,傳統(tǒng)的基于CPU集群的云計算技術(shù)并不擅長處理這類問題,例如,斯坦福大學(xué)的研究人員Adam Coates采用GPU將三臺計算機(jī)連貫在一起進(jìn)行深度學(xué)習(xí)實驗,結(jié)果卻得到了與Google數(shù)千臺計算機(jī)一樣的效果。由此可見,只有更好的硬件加速條件,才能滿足現(xiàn)有數(shù)據(jù)和模型規(guī)模繼續(xù)擴(kuò)大的需求。

目前,最主流的硬件加速器件非GPU莫屬。最重要的是GPU出色的浮點計算性能特別提高了深度學(xué)習(xí)兩大關(guān)鍵活動:分類和卷積的性能,同時又達(dá)到所需的精準(zhǔn)度,并且在相同的精度下,相對傳統(tǒng)CPU的方式,擁有更快的處理速度、更少的服務(wù)器投入和更低的功耗。因此,Google和Facebook等巨頭也在轉(zhuǎn)向使用GPU作為硬件加速的基礎(chǔ)原件。

此外,業(yè)界也出現(xiàn)了其他進(jìn)行深度學(xué)習(xí)硬件加速的方案。比如,部分公司正在研究采用FPGA作為進(jìn)行深度學(xué)習(xí)加速,以期使其對深度學(xué)習(xí)領(lǐng)域經(jīng)常使用的上層軟件兼容性更強,并行訓(xùn)練架構(gòu)更加靈活。同時,F(xiàn)PGA在單位能耗下性能更強,這對大規(guī)模服務(wù)器部署或資源有限的嵌入式應(yīng)用的研究而言也至關(guān)重要。

建設(shè)深度學(xué)習(xí)硬件加速環(huán)境需要較大的資金和技術(shù)投入,需要進(jìn)行精細(xì)研究并審慎選擇,建議遵循以下原則:

1、選擇硬件加速環(huán)境時盡量采用具備更多用戶友好開發(fā)工具的芯片,這樣能夠很好的降低學(xué)習(xí)門檻。

2、建立龐大且需要平行的深度網(wǎng)絡(luò),需要考慮硬件的開放性、數(shù)據(jù)并行和模型并行支持度,以及單位能耗特點。

3、深度學(xué)習(xí)模型訓(xùn)練過程中需對深度網(wǎng)絡(luò)進(jìn)行多次反向傳導(dǎo)運算計算量大,而深度模型進(jìn)行生產(chǎn)應(yīng)用時只需進(jìn)行前向傳播計算,因此建議在訓(xùn)練環(huán)境中采用硬件加速,生產(chǎn)應(yīng)用環(huán)境無需進(jìn)行硬件加速。

3.2常用深度學(xué)習(xí)軟件框架簡介

深度學(xué)習(xí)是一個發(fā)展迅速的領(lǐng)域,除了眾多學(xué)術(shù)界專家在理論方面的貢獻(xiàn)之外,工業(yè)界也為深度學(xué)習(xí)提供了很多工具框架,例如,伯克利視覺和學(xué)習(xí)中心開發(fā)的Caffe,微軟推出的開源深度學(xué)習(xí)框架CNTK,LISA開發(fā)的基于Python的Theano,Google主推的TensorFlow、以及Torch、MxNet等。目前來看,業(yè)界使用最多的是Caffe、Theano和TensorFlow。

(1)Caffe

Caffe是由伯克利視覺和學(xué)習(xí)中心(Berkeley Vision and Learning Center,BVLC)開發(fā)的基于C++/CUDA/Python實現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)框架,提供了面向命令行、Matlab和Python的綁定接口。Caffe 遵循BSD-2協(xié)議,代碼組織良好,可讀性強。同時,Caffe提供了一整套工具集,可用于模型訓(xùn)練、預(yù)測、微調(diào)、發(fā)布、數(shù)據(jù)預(yù)處理,以及良好的自動測試。

(2)Theano

Theano是由LISA開發(fā)的基于Python的深度學(xué)習(xí)框架,可以定義數(shù)學(xué)表達(dá)式并高效地優(yōu)化、求值。Theano支持機(jī)器學(xué)習(xí)中的邏輯回歸(LR)、多層感知器(MLP)、深度卷積網(wǎng)絡(luò)等監(jiān)督學(xué)習(xí)方法,以及自編碼器(AE)、降噪自編碼器、受限玻爾茲曼機(jī)(RBM)、深度置信網(wǎng)絡(luò)(DBN)等非監(jiān)督/半監(jiān)督學(xué)習(xí)方法。但是Theano計算速度慢,雖然有GPU加速,但仍然不如其他框架高效。

(3)TensorFlow

TensorFlow是Google在2015 Google Research Blog宣布推出的新一代人工智能學(xué)習(xí)系統(tǒng)。TensorFlow是一個異構(gòu)分布式學(xué)習(xí)系統(tǒng)上的大規(guī)模機(jī)器學(xué)習(xí)框架,移植性好,小到移動設(shè)備如手機(jī),大到規(guī)模集群,都能支持。同時TensorFlow支持多種深度學(xué)習(xí)模型,隨著TensorFlow源碼不斷開放,對新硬件、新設(shè)備、新的加速庫如cuDNN的支持力度也在不斷提升。

3.3深度學(xué)習(xí)軟件框架選擇

通過對Caffe、Theano、TensorFlow的研究經(jīng)驗,其優(yōu)勢與缺陷可歸納為下表所示:

CaffeTheanoTensorFlow
編程語言 C++,Python,MATLAB Python Python
預(yù)訓(xùn)練模型支持 開端
多GPU數(shù)據(jù)并行
多GPU模型并行 實驗
訓(xùn)練速度 非???/td>
操作系統(tǒng)支持 所有操作系統(tǒng) Linux, OSX Linux, OSX
代碼開源
RNN模型支持
      

在實際的工作中,需要依據(jù)問題特征和業(yè)務(wù)需求進(jìn)行深度學(xué)習(xí)框架工具的選擇,以下是挑選工具框架的幾點建議:

(1)進(jìn)行數(shù)據(jù)特征提取或基于現(xiàn)有模型進(jìn)行微調(diào)選用Caffe。

(2)需要對預(yù)訓(xùn)練模型進(jìn)行復(fù)雜處理選用Theano。

(3)處理適用于RNN模型的問題,選用Theano或者TensorFlow。

(4)建立龐大且需要平行的深度網(wǎng)絡(luò)模型時選用TensorFlow。

(5)Caffe、Theano、TensorFlow各有自身獨特優(yōu)勢,在選擇某一深度學(xué)習(xí)框架時要保持對其他工具技術(shù)發(fā)展的關(guān)注。

第四節(jié):數(shù)據(jù)管理

深度學(xué)習(xí)是建立在對大量訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí)、特征提取等基礎(chǔ)之上的實踐性方法,深度學(xué)習(xí)模型只有在海量數(shù)據(jù)輸入下才能達(dá)到最好的性能,可見有效的數(shù)據(jù)對深度學(xué)習(xí)的重要性。同時,數(shù)據(jù)管理中的數(shù)據(jù)的采集、處理等各環(huán)節(jié)也很有講究,有些實踐性的技巧。

4.1數(shù)據(jù)獲取

依據(jù)獲取數(shù)據(jù)的成本可將市場上的數(shù)據(jù)劃分為三類:免費公開數(shù)據(jù)、付費公開數(shù)據(jù)以及私有數(shù)據(jù)。以下列舉了不同類型數(shù)據(jù)的獲取渠道:

(1)免費公開數(shù)據(jù)源

(a)公開的數(shù)據(jù)庫

公開數(shù)據(jù)庫是獲取海量數(shù)據(jù)最簡單有效的方式。公開數(shù)據(jù)庫基本按照學(xué)術(shù)問題、行業(yè)應(yīng)用劃分針對性較強,而且數(shù)據(jù)庫中數(shù)據(jù)大都經(jīng)過人工整理和標(biāo)注,規(guī)范性和易用性更強。以下是一些常用的公開數(shù)據(jù)庫資源列表:

平臺名稱數(shù)據(jù)庫數(shù)據(jù)特點
圖像分析 ImageNet a、1000類物體定位;b、200類物體檢測;c、視頻物體檢測;d、365類場景分類;e、場景解析
  MSCOCO 包含檢測、加標(biāo)題、關(guān)鍵點三個任務(wù)
  PASCAL 五個挑戰(zhàn):分類、檢測、分割、動作分類、person layout
人臉識別 LFW 標(biāo)準(zhǔn)的人臉識別數(shù)據(jù)集
  WebFace 非限制場景人臉識別
  FDDB 標(biāo)準(zhǔn)人臉檢測評測集

(b)網(wǎng)絡(luò)爬蟲

網(wǎng)絡(luò)爬蟲是獲取各類網(wǎng)站公開數(shù)據(jù)的有效工具,使用網(wǎng)絡(luò)爬蟲是研究深度學(xué)習(xí)技術(shù)的一項必備技能。網(wǎng)絡(luò)采集器屬于網(wǎng)絡(luò)爬蟲的一種,通過軟件的形式實現(xiàn)簡單快捷地采集網(wǎng)絡(luò)上分散的內(nèi)容,具有很好的內(nèi)容收集作用,而且不需要技術(shù)成本,可被用作為初級的數(shù)據(jù)采集工具,例如火車采集器、八爪魚、集搜客等。此外,針對特定網(wǎng)站的特定數(shù)據(jù)采集需求,也可結(jié)合開源系統(tǒng)自行開發(fā)爬蟲工具,這樣具有更高的自由性和自主性。利用爬蟲可以獲取一些從其它渠道獲取不到的數(shù)據(jù)資源,更重要的是幫助研究者打開尋找和搜集數(shù)據(jù)的思路。

(2)付費公開數(shù)據(jù)源

(a)商業(yè)化數(shù)據(jù)交易平臺

數(shù)據(jù)交易平臺是一些專注于互聯(lián)網(wǎng)綜合數(shù)據(jù)交易和服務(wù)的公司,其致力于融合和盤活各類大數(shù)據(jù)資源??梢酝ㄟ^數(shù)據(jù)購買的方式在數(shù)據(jù)交易平臺上獲取深度學(xué)習(xí)訓(xùn)練和測試數(shù)據(jù)。國內(nèi)知名的商業(yè)化數(shù)據(jù)交易憑條有優(yōu)易數(shù)據(jù)、數(shù)據(jù)堂等,其提供的服務(wù)和數(shù)據(jù)資源各有特色:

優(yōu)易數(shù)據(jù) 由國家信息中心發(fā)起,擁有國家級信息資源的數(shù)據(jù)平臺,國內(nèi)領(lǐng)先的數(shù)據(jù)交易平臺。平臺有B2B、B2C兩種交易模式。 1、政務(wù)數(shù)據(jù) 2、電子商務(wù)數(shù)據(jù)3、社會數(shù)據(jù) 4、交通管理數(shù)據(jù)5、企業(yè)信息數(shù)據(jù) 6、商品數(shù)據(jù) 7、消費數(shù)據(jù) 8、社交數(shù)據(jù)
數(shù)據(jù)堂 專注于互聯(lián)網(wǎng)綜合數(shù)據(jù)交易,提供數(shù)據(jù)交易、處理和數(shù)據(jù)API服務(wù)。 1、人臉識別數(shù)據(jù) 2、智能行車數(shù)據(jù) 3、電子商務(wù)數(shù)據(jù) 4、智能語音數(shù)據(jù) 5、智能交通數(shù)據(jù) 6、智能安防數(shù)據(jù) 7、基礎(chǔ)語音識別數(shù)據(jù) 8、自然語言理解數(shù)據(jù) 9、OCR光學(xué)字符識別數(shù)據(jù) 10、智能教育數(shù)據(jù)

(b)政府性數(shù)據(jù)交易平臺

隨著國家十三五規(guī)劃中提出的國家大數(shù)據(jù)戰(zhàn)略的實施,各地方政府對大數(shù)據(jù)產(chǎn)業(yè)發(fā)展高度重視,因而國內(nèi)政府性交易平臺建設(shè)也蓬勃發(fā)展,成為重要的數(shù)據(jù)源頭:

華東江蘇大數(shù)據(jù)交易平臺 立足互聯(lián)網(wǎng)金融+大數(shù)據(jù)在行業(yè)垂直市場領(lǐng)域,為數(shù)據(jù)撮合、許可和買賣的雙方搭建透明、公平的平臺,并提供數(shù)據(jù)流轉(zhuǎn)過程中的征信、評估、金融、法律等數(shù)據(jù)產(chǎn)業(yè)生態(tài)綜合服務(wù)支持。 提供數(shù)據(jù)交易,預(yù)處理交易,算法交易及大數(shù)據(jù)分析、平臺開發(fā),技術(shù)服務(wù),數(shù)據(jù)定價,數(shù)據(jù)金融,交易監(jiān)督等綜合服務(wù);基于數(shù)據(jù)金融資產(chǎn)化方向提供撮合、買賣,典當(dāng),融資,抵押,貸款等多種合作模式,為各經(jīng)濟(jì)主體(包括企業(yè)、機(jī)構(gòu)、個人等)盤活數(shù)據(jù)存量資源提供全面解決方案。
上海數(shù)據(jù)交易中心 作為上海市大數(shù)據(jù)發(fā)展“交易機(jī)構(gòu)+創(chuàng)新基地+產(chǎn)業(yè)基金+發(fā)展聯(lián)盟+研究中心”五位一體規(guī)劃布局內(nèi)的重要功能性機(jī)構(gòu),上海數(shù)據(jù)交易中心承擔(dān)著促進(jìn)商業(yè)數(shù)據(jù)流通、跨區(qū)域的機(jī)構(gòu)合作和數(shù)據(jù)互聯(lián)、政府?dāng)?shù)據(jù)與商業(yè)數(shù)據(jù)融合應(yīng)用等工作職能 交易中心以國內(nèi)領(lǐng)先的“技術(shù)+規(guī)則”雙重架構(gòu),創(chuàng)新結(jié)合IKVLTP六要素技術(shù),采用自主知識產(chǎn)權(quán)的虛擬標(biāo)識技術(shù)和二次加密數(shù)據(jù)配送技術(shù),結(jié)合面向應(yīng)用場景的數(shù)據(jù)互聯(lián)規(guī)則,將在全面保障個人隱私、數(shù)據(jù)安全前提下推動數(shù)據(jù)聚合流動。
貴陽大數(shù)據(jù)交易所 秉承“貢獻(xiàn)中國數(shù)據(jù)智慧 釋放全球數(shù)據(jù)價值”發(fā)展理念,志在成為全球最重要的交易所,旨在推動政府?dāng)?shù)據(jù)公開、行業(yè)數(shù)據(jù)價值發(fā)現(xiàn) 立足貴陽,通過自主開發(fā)的電子交易系統(tǒng),交易所面向全球提供7×24小時永不休市的大數(shù)據(jù)交易專業(yè)服務(wù),數(shù)據(jù)交易品種涵蓋金融、政府、醫(yī)療、社會、海關(guān)、能源、社交、商品、水電煤、法院、交通、企業(yè)、通信、銀行卡、專利、教育、物流等大數(shù)據(jù)領(lǐng)域

(3)私有數(shù)據(jù)源

(a)商業(yè)合作交換

目前產(chǎn)業(yè)發(fā)展已經(jīng)進(jìn)入大數(shù)據(jù)時代,數(shù)據(jù)是企業(yè)生存的核心競爭力之一,因而各行各業(yè)對自身數(shù)據(jù)的保護(hù)都倍加關(guān)注,想通過付費或爬取的方式獲得企業(yè)的核心數(shù)據(jù)就變得更加困難。然而,如果行業(yè)間的數(shù)據(jù)合作能夠給雙方帶來巨大的數(shù)據(jù)增值收益,則可以通過推動跨領(lǐng)域商業(yè)合作的方式進(jìn)行數(shù)據(jù)互換,從而完成數(shù)據(jù)收集形成完整的數(shù)據(jù)鏈。

(b)自建數(shù)據(jù)庫

在有些數(shù)據(jù)是外界無法獲取的情況下有可能需要自主進(jìn)行數(shù)據(jù)采集并維護(hù)一個小型的數(shù)據(jù)庫。為了保證數(shù)據(jù)采集的有效性在進(jìn)行數(shù)據(jù)采集的過程中關(guān)鍵是明確數(shù)據(jù)要求。以銀行卡分類問題為例,通常采用照片拍攝與視頻拍攝,為了避免拍攝之后復(fù)雜的裁剪旋轉(zhuǎn)工作,設(shè)定如下拍攝要求:

a)在拍攝板中央固定一個卡槽,相機(jī)固定在中央上方并與板面保持平行;

b)選擇陽光、陰天、夜晚三個場景于室內(nèi)室外分別拍攝。

c)增加可變燈光進(jìn)行場景模擬。

4.2數(shù)據(jù)預(yù)處理

獲取數(shù)據(jù)后需要進(jìn)行數(shù)據(jù)處理,在深度學(xué)習(xí)中,常常面臨數(shù)據(jù)不足的問題,在這種情形下,深度學(xué)習(xí)算法往往難以達(dá)到最優(yōu)的效果,因此需要對現(xiàn)有的原始數(shù)據(jù)源進(jìn)行必要的擴(kuò)充與拓展或稱為數(shù)據(jù)合成。以圖片數(shù)據(jù)處理為例,常見的數(shù)據(jù)擴(kuò)充方法大致有如下幾種:

(1)旋轉(zhuǎn)|反射變換(rotation/reflection): 隨機(jī)旋轉(zhuǎn)圖像一定角度,改變圖像內(nèi)容的朝向。

(2)翻轉(zhuǎn)變換(flip):沿著水平或者垂直方向翻轉(zhuǎn)圖像。

(3)縮放變換(zoom):按照一定的比例放大或者縮小圖像。

(4)平移變換(shift):在圖像平面上對圖像以一定方式進(jìn)行平移,可以采用隨機(jī)或人為定義的方式指定平移范圍和平移步長,沿水平或豎直方向進(jìn)行平移,改變圖像內(nèi)容的位置。

(5)尺度變換(scale):對圖像按照指定的尺度因子, 進(jìn)行放大或縮小; 或者參照SIFT特征提取思想, 利用指定的尺度因子對圖像濾波構(gòu)造尺度空間. 改變圖像內(nèi)容的大小或模糊程度。

(6)對比度和亮度變換: 在圖像的HSV顏色空間,改變飽和度S和V亮度分量,保持色調(diào)H不變。對每個像素的S和V分量進(jìn)行指數(shù)運算(指數(shù)因子在0.25到4之間), 增加光照變化。

(7)噪聲擾動(noise): 對圖像的每個像素RGB進(jìn)行隨機(jī)擾動, 常用的噪聲模式是椒鹽噪聲和高斯噪聲。

此外,從視頻中提取圖片也是獲取大量數(shù)據(jù)的有效途徑,通過自制視頻轉(zhuǎn)換工具可將上述圖片預(yù)處理方法進(jìn)行集成,這樣能夠有效擴(kuò)大數(shù)據(jù)采集量。

4.3數(shù)據(jù)標(biāo)注

對于有監(jiān)督的分類任務(wù)一項重要的工作就是數(shù)據(jù)標(biāo)注。目前數(shù)據(jù)標(biāo)注的方法可劃分為人工標(biāo)記與自動化標(biāo)記。

(1)人工標(biāo)注

對于分類問題,可以人工將類別相同的數(shù)據(jù)放在一個文件夾中,然后通過代碼遍歷訪問數(shù)據(jù)形成分類標(biāo)簽。對于檢測問題,需要人工用矩形框來標(biāo)記圖片中的物體,往往會采用標(biāo)注工具,比如LabelImg,輔助完成。

(2)自動化標(biāo)記

自動化標(biāo)記則是通過少量樣本人工標(biāo)記,然后提取傳統(tǒng)特征(比如SIFT、LBP等)并訓(xùn)練分類器,接著對大量待標(biāo)記樣本進(jìn)行分類標(biāo)記。經(jīng)過一次分類器分類的樣本標(biāo)記往往錯誤較多,對于這批標(biāo)記數(shù)據(jù)進(jìn)行抽樣訓(xùn)練另一個分類器進(jìn)行分類,對于兩次具有不同標(biāo)簽的數(shù)據(jù)進(jìn)行人工修正,則可以以少量人力得到精度較高的標(biāo)記數(shù)據(jù)。

第五節(jié):模型訓(xùn)練5.1常用深度網(wǎng)絡(luò)簡介

深度學(xué)習(xí)技術(shù)的核心基礎(chǔ)是深度網(wǎng)絡(luò)模型,在其產(chǎn)生和發(fā)展演進(jìn)的過程產(chǎn)生了諸多網(wǎng)絡(luò)結(jié)構(gòu),目前常用的深度網(wǎng)絡(luò)結(jié)構(gòu)有DBN、CNN、RNN。下表對DBN、CNN、RNN的網(wǎng)絡(luò)結(jié)構(gòu)和特特性進(jìn)行了簡要對比。

深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN) DBN即為若干個RBM模型的疊加,是有著多層隱藏解釋因子的神經(jīng)網(wǎng)絡(luò),這些網(wǎng)絡(luò)被“限制”為一個可視層和一個隱層,層間存在連接,但層內(nèi)的單元間不存在連接。 DBN的網(wǎng)絡(luò)結(jié)構(gòu)使其具備較高靈活性,因而拓展比較容易。但其輸入是簡單的一維向量,因而并沒有考慮到圖像的2維結(jié)構(gòu)信息。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN) 卷積神經(jīng)網(wǎng)絡(luò)包含兩類組成結(jié)構(gòu):卷積層(Convolutional Layer)和子采樣層(Subsample Layer)也稱池化層(Pooling Layer)。其中卷基層主要用于對輸入數(shù)據(jù)應(yīng)用若干過濾,并進(jìn)行若干類型的特征提取,自采樣層用以縮減輸入數(shù)據(jù)規(guī)模。 CNN的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。使圖像可以直接作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程。而且這種網(wǎng)絡(luò)結(jié)構(gòu)對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN) RNN是一種節(jié)點定向連接成環(huán)的人工神經(jīng)網(wǎng)絡(luò),由于構(gòu)成RNN隱藏層的基本單元存在內(nèi)部循環(huán)神經(jīng)回路 RNN具備狀態(tài)記憶和狀態(tài)轉(zhuǎn)換功能,從而可以處理長時間依賴的問題。RNN已經(jīng)被在實踐中證明對NLP是非常成功的。在RNN中,目前使用最廣泛最成功的模型便是LSTMs(Long Short-Term Memory,長短時記憶模型)模型,該模型能夠更好地對長短時依賴進(jìn)行表達(dá)。
      

5.2深度網(wǎng)絡(luò)模型選擇

學(xué)界對深度網(wǎng)絡(luò)所使用的問題已經(jīng)有了基本的認(rèn)識,下表給出了一些深度學(xué)習(xí)算法和對應(yīng)的領(lǐng)域:

數(shù)據(jù)應(yīng)用場景輸入Neutral Net
文本 情感分析 詞向量 RNTN或DBN(包含滑動窗口)
  命名實體識別 詞向量 RNTN或DBN(包含滑動窗口)
  詞性標(biāo)注 詞向量 RNTN或DBN(包含滑動窗口)
  語義角色標(biāo)注 詞向量 RNTN或DBN(包含滑動窗口)
文檔 主題建模/語義哈希(非監(jiān)督) 詞頻 深度自編碼器(嵌入 DBN或SDA)
  文檔分類(有監(jiān)督) TF-IDF(或詞頻) DBN,SDA
圖像 圖像識別 字節(jié)流 CNN
  多目標(biāo)識別   CNN,RNTN
  圖像搜索/語義哈希   深度自編碼器(嵌入 DBN)
聲音 語音識別   RNN或CNN
時間序列 預(yù)測分析   RNN
      

因而,建議從問題特征出發(fā)選擇對應(yīng)的深度網(wǎng)絡(luò)結(jié)構(gòu),并遵循如下原則:

(1)對于文本領(lǐng)域,整體選擇RNTN(遞歸張量神經(jīng)網(wǎng)絡(luò))或DBN來處理,RNTN是RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))的一個變種。

(2)對于文檔(相對于文本更大),選擇自編碼器或者DBN解決問題。

(3)對于圖像來說,DBN或CNN應(yīng)用更多,處理圖像搜索或圖片語義問題采用自編碼器更好。

(4)處理聲音問題,選擇RNN或CNN。

(5)處理時間序列問題,比如預(yù)測分析,選擇DBN或DNN。

5.3參數(shù)調(diào)優(yōu)技巧

在確定深度網(wǎng)絡(luò)結(jié)構(gòu)后,需要通過大量訓(xùn)練和測試以獲取有效的模型,以下是一些常用的參數(shù)設(shè)定和調(diào)優(yōu)原則。

(1)盡量基于成熟模型進(jìn)行微調(diào)(fine-tune)

深度網(wǎng)絡(luò)參數(shù)訓(xùn)練優(yōu)化是一項冗長而復(fù)雜的工作,若技術(shù)人員的經(jīng)驗不足,則容易導(dǎo)致訓(xùn)練過程參數(shù)不收斂或者陷入局部最優(yōu)而得不到很好的結(jié)果。因此,基于前人已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)參數(shù)模型進(jìn)行微調(diào)是目前通行的良好實踐原則。

(2)權(quán)重初始化策略

在開始訓(xùn)練深度網(wǎng)絡(luò)之前,需要對網(wǎng)絡(luò)連接權(quán)值進(jìn)行初始化,目前在神經(jīng)網(wǎng)絡(luò)中建議使用的權(quán)重初始化策略是將值歸一化到范圍[-b,b],b為:

和分別是權(quán)值向量之前和之后的隱藏層大小,這樣有助于加速網(wǎng)絡(luò)參數(shù)收斂,避免局部最優(yōu)或網(wǎng)絡(luò)失靈。

(3)高維度網(wǎng)絡(luò)結(jié)構(gòu)克服局部最小

深層網(wǎng)絡(luò)由于是高度非線性的,有著太多的局部極值,傳統(tǒng)觀念認(rèn)為在這樣的條件下很難保證能夠得到一個可以接受的好的解,容易陷入局部最小。實際上通過增加深度網(wǎng)絡(luò)的維度和訓(xùn)練時間,陷入局部最優(yōu)解的概率會越小。當(dāng)損失函數(shù)接近全局最小時,如果我們找到了真正的局部最小,那么它將非常接近全局最小,這種差異是無關(guān)緊要的。比如從alexnet、VGG、googlenet、resnet等卷積模型中進(jìn)行選擇并在自己的數(shù)據(jù)集進(jìn)行微調(diào)。這些網(wǎng)絡(luò)效果隨層數(shù)遞增,因而采用resnet或者更新的googlenet-v4將會發(fā)現(xiàn)測試結(jié)果會更令人滿意。

(4)數(shù)據(jù)批量大小設(shè)定

增加網(wǎng)絡(luò)強度的一種方式(受計算而不是內(nèi)存限制)是,將數(shù)據(jù)分成小批量。這可以避免一些內(nèi)存操作,GPU也擅長并行處理大矩陣計算。然而,增加批次的大小的話可能會對訓(xùn)練算法有影響,并且合并需要更多時間。重要的是要找到一個很好的平衡點,以在最短的時間內(nèi)獲得最好的效果。此外,使用小批量的數(shù)據(jù),梯度會更加穩(wěn)定。

(5)訓(xùn)練誤差衡量準(zhǔn)則

在訓(xùn)練與測試一個深度神經(jīng)網(wǎng)絡(luò)模型時,我們通常使用三個數(shù)據(jù)集,即訓(xùn)練集、開發(fā)集、測試集。模型對應(yīng)這三個數(shù)據(jù)集有三個誤差,訓(xùn)練集誤差、開發(fā)集誤差、與測試集誤差,另外還有一個人類梳理這類問題的誤差值—人類水平誤差?;诖说闹钠?方差權(quán)衡理論是指導(dǎo)我們調(diào)參的準(zhǔn)則:

人類誤差與訓(xùn)練集誤差之間的差距稱為可避免的偏差,這部分誤差可以通過進(jìn)一步學(xué)習(xí)及模型調(diào)優(yōu)來避免。而訓(xùn)練集和開發(fā)集之間的差距稱為方差,它是訓(xùn)練集與開發(fā)集的分布差異造成的。

當(dāng)訓(xùn)練誤差較大時,是指模型并未達(dá)到最優(yōu)解(陷入局部最優(yōu))或者模型不夠表達(dá)你的數(shù)據(jù)集。這時需要更換更深的模型,或者訓(xùn)練更長的時間。當(dāng)訓(xùn)練誤差較小,而開發(fā)集誤差較大,則是模型過擬合,即訓(xùn)練樣本并未完全包含目標(biāo)任務(wù)的數(shù)據(jù)類型,這時候需要增加訓(xùn)練樣本或者使用正則化來防止過擬合。

如果訓(xùn)練集誤差與開發(fā)集誤差都很小,測試集誤差較大,那么是開發(fā)集與測試集的分配不合適,需要增大開發(fā)集所占的比例。

(6)其他訓(xùn)練技巧

a)歸一化實值數(shù)據(jù),減去平均值,再除以標(biāo)準(zhǔn)差。

b)降低訓(xùn)練過程中的學(xué)習(xí)率。

c)使用動量,幫助參數(shù)通過停滯區(qū)。

第六節(jié):生產(chǎn)應(yīng)用

上述幾個小節(jié)介紹的都是在深度學(xué)習(xí)研究過程中需要注意的事項,本節(jié)將討論如何將深度網(wǎng)絡(luò)模型與生產(chǎn)系統(tǒng)進(jìn)行無縫對接。

6.1訓(xùn)練環(huán)境與生產(chǎn)環(huán)境的數(shù)據(jù)接口

實現(xiàn)深度學(xué)習(xí)訓(xùn)練模型到生產(chǎn)系統(tǒng)的遷移,需要在屏蔽訓(xùn)練環(huán)境和生產(chǎn)應(yīng)用環(huán)境的軟硬件環(huán)境的基礎(chǔ)上實現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)數(shù)據(jù)的無縫兼容。目前通行的原則是網(wǎng)絡(luò)定義文件、網(wǎng)絡(luò)參數(shù)文件分離。

(1)深度網(wǎng)絡(luò)定義文件

用于定義深度網(wǎng)絡(luò)的節(jié)點設(shè)置和節(jié)點間連接結(jié)構(gòu)的參數(shù)文件,例如采用Caffe的prototext文件。

(2)深度網(wǎng)絡(luò)參數(shù)文件

用于保存訓(xùn)練結(jié)束時得到的深度網(wǎng)絡(luò)各連接之間加權(quán)值,以二進(jìn)制流形式存儲,例如采用caffe的caffemodel文件。

6.2生產(chǎn)應(yīng)用環(huán)境服務(wù)接口

深度學(xué)習(xí)的理論模型投入生產(chǎn)仍需要“IT團(tuán)隊”花費大量時間進(jìn)行系統(tǒng)性的改變和優(yōu)化,因此在深度學(xué)習(xí)生產(chǎn)應(yīng)用環(huán)境中,通過Restful API向企業(yè)其他生產(chǎn)系統(tǒng)提供服務(wù)是很好的形式,這樣既可以屏蔽內(nèi)部實現(xiàn)細(xì)節(jié),又可以在產(chǎn)生模型變動時實現(xiàn)平滑的遷移。在API的規(guī)劃中需包含如下必要接口:

功能說明
運行應(yīng)用 運行應(yīng)用的一個版本。需要指明應(yīng)用版本的 ID,運行的輸入、輸出,以及用戶身份信息。系統(tǒng)從輸入中獲取數(shù)據(jù),經(jīng)過計算后將輸出結(jié)果存儲到用戶指定的輸出對象中。該API需向用戶提供一個任務(wù)ID,用戶可以使用該ID進(jìn)行后續(xù)操作。
更新應(yīng)用 對先前的應(yīng)用版本進(jìn)行更新。用戶指明需要更新的應(yīng)用ID,新版本名稱、輸入的數(shù)據(jù)和用戶身份信息。系統(tǒng)通過輸入數(shù)據(jù)新生成一個應(yīng)用版本。該API返回一個任務(wù)ID和一個版本ID。
停止任務(wù) 用戶傳入任務(wù)ID來停止一個正在運行中的任務(wù)。
查詢狀態(tài) 用戶傳入任務(wù)ID來查詢?nèi)蝿?wù)的狀態(tài)。狀態(tài)包括任務(wù)正在運行、運行成功、運行失敗和已停止。通過查詢?nèi)蝿?wù)狀態(tài)來決定下一步操作。
      

6.3模型退化的解決方法

深度學(xué)習(xí)問題建模的過程中,訓(xùn)練數(shù)據(jù)集是固定的,大部分?jǐn)?shù)據(jù)由數(shù)據(jù)合成產(chǎn)生,數(shù)據(jù)質(zhì)地和分布可能與實際生產(chǎn)應(yīng)用不一致,容易導(dǎo)致訓(xùn)練集誤差、開發(fā)集誤差、與測試集誤差。因而在生產(chǎn)環(huán)境中進(jìn)行模型應(yīng)用時,隨著調(diào)用案例的增加,會產(chǎn)生模型退化問題,即訓(xùn)練模型分類錯誤增多。要解決這一問題,可以采取以下措施:

(1)對判別置信度低或用戶反饋出現(xiàn)判別錯誤的數(shù)據(jù)進(jìn)行保存收集。

(2)定期利用收集到的數(shù)據(jù)對原有模型進(jìn)行微調(diào)并在生產(chǎn)應(yīng)用環(huán)境進(jìn)行模型更新。

作者介紹

電子商務(wù)與電子支付國家工程實驗室人工智能研究團(tuán)隊:費志軍、劉想、王宇、華錦芝。電子商務(wù)與電子支付國家工程實驗室:2013年經(jīng)國家發(fā)展改革委審批認(rèn)定,中國銀聯(lián)成為金融行業(yè)第一家獲得批復(fù)建設(shè)電子商務(wù)與電子支付國家工程實驗室的企業(yè)。實驗室的建設(shè)目標(biāo)是建成國內(nèi)一 流、國際知名的電子商務(wù)與電子支付研究基地,全面加強技術(shù)攻關(guān),力爭在全球電子商務(wù)、電子貨幣和電子支付技術(shù)領(lǐng)域占據(jù)領(lǐng)先地位。人工智能研究團(tuán)隊:立足于金融支付領(lǐng)域,推動人工智能在金融領(lǐng)域的應(yīng)用與推廣。近期,重點研究圖像識別、語音識別技術(shù)以及自然語言處理等人工智能技術(shù)在金融產(chǎn)品創(chuàng)新、信用風(fēng)險防控、智能化運營、客戶服務(wù)等領(lǐng)域的前瞻性應(yīng)用。

關(guān)鍵字:學(xué)習(xí)算法DBN

本文摘自:大數(shù)據(jù)雜談

x 如何在實戰(zhàn)路上與時俱進(jìn):深度學(xué)習(xí)最佳實踐 掃一掃
分享本文到朋友圈
當(dāng)前位置:大數(shù)據(jù)業(yè)界動態(tài) → 正文

如何在實戰(zhàn)路上與時俱進(jìn):深度學(xué)習(xí)最佳實踐

責(zé)任編輯:editor005 作者:費志軍 |來源:企業(yè)網(wǎng)D1Net  2017-01-12 14:06:28 本文摘自:大數(shù)據(jù)雜談

  引言

自2006年Hinton提出神經(jīng)網(wǎng)絡(luò)新的訓(xùn)練方法起,深度學(xué)習(xí)發(fā)展迅速,促使人工智能在圖像、語音、自然語言處理等多個領(lǐng)域有了實質(zhì)性的突破,達(dá)到產(chǎn)業(yè)應(yīng)用標(biāo)準(zhǔn)。然而,深度學(xué)習(xí)作為人工智能領(lǐng)域的一項前瞻技術(shù),實踐性強,入門門檻高,關(guān)于深度學(xué)習(xí)的研究與應(yīng)用,現(xiàn)在仍有很多問題沒有找到滿意的答案,這些都給深度學(xué)習(xí)的廣泛應(yīng)用帶來挑戰(zhàn)。本文旨在提供一份清晰、簡潔的深度學(xué)習(xí)實踐說明,以便從事深度學(xué)習(xí)研究與工程技術(shù)人員能夠快速掌握深度學(xué)習(xí)的實際經(jīng)驗。

第一節(jié):深度學(xué)習(xí)概述

深度學(xué)習(xí)是模擬人腦進(jìn)行分析學(xué)習(xí)的多層神經(jīng)網(wǎng)絡(luò),它模仿人腦的機(jī)制來解釋數(shù)據(jù),處理數(shù)據(jù),通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。深度學(xué)習(xí)本質(zhì)上是機(jī)器學(xué)習(xí)技術(shù)的一種,根據(jù)一般的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的工作方法和我們的經(jīng)驗,我們認(rèn)為采用深度學(xué)習(xí)技術(shù)解決實際業(yè)務(wù)問題的完整過程主要包括五個方面:問題理解與分析、訓(xùn)練環(huán)境構(gòu)建、數(shù)據(jù)管理、模型訓(xùn)練以及生產(chǎn)應(yīng)用?;诖耍覀儗γ總€環(huán)節(jié)分別闡述最佳實踐,作為研究與工程應(yīng)用的參考指南。

深度學(xué)習(xí)解決問題的五個基本環(huán)節(jié)

  圖一:深度學(xué)習(xí)解決問題的五個基本環(huán)節(jié)

第二節(jié):問題理解與分析

深度學(xué)習(xí)不是一項“放之四海而皆準(zhǔn)”的技術(shù),采用深度學(xué)習(xí)解決復(fù)雜問題,首先需對實際問題全面剖析:問題是否適合采用深度學(xué)習(xí)解決,是否具備深度學(xué)習(xí)應(yīng)用的數(shù)據(jù)條件,如何將實際業(yè)務(wù)問題轉(zhuǎn)換成深度學(xué)習(xí)可以解決的技術(shù)問題等。

2.1場景分析

原則上,傳統(tǒng)機(jī)器學(xué)習(xí)能夠解決的問題,深度學(xué)習(xí)都能夠解決,譬如傳統(tǒng)機(jī)器學(xué)習(xí)主要面向?qū)W習(xí)類問題,包括有監(jiān)督學(xué)習(xí)(分類和回歸場景),無監(jiān)督學(xué)習(xí)(聚類等),均能夠采用深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練模型和應(yīng)用,但是兩者應(yīng)用效果會有所差異。依據(jù)實踐,在如下場景,可以優(yōu)先考慮采用深度學(xué)習(xí):

(1)業(yè)界提供了公開成熟的深度學(xué)習(xí)網(wǎng)絡(luò)模型的細(xì)分場景。面對這些場景的業(yè)務(wù)問題,可以基于公開的網(wǎng)絡(luò)模型進(jìn)行網(wǎng)絡(luò)權(quán)重微調(diào)(fine-tune),能夠達(dá)到不錯效果。以圖像識別為例,業(yè)界已經(jīng)公開了AlexNet,ResNet等深度網(wǎng)絡(luò)模型,在解決實際圖像分類問題時可避免從頭訓(xùn)練深度模型,在該模型的基礎(chǔ)上, 使用樣本數(shù)據(jù)進(jìn)行模型參數(shù)優(yōu)化(fine-tune)即可。

(2)深度學(xué)習(xí)應(yīng)用成功的行業(yè),譬如,深度學(xué)習(xí)在圖像分類、語音識別、自然語言處理等感知領(lǐng)域均取得實際應(yīng)用效果,并在行業(yè)內(nèi)得到驗證,因此如果問題域?qū)儆趫D像、語音、視頻等領(lǐng)域的問題,深度學(xué)習(xí)應(yīng)用效果往往比較理想。

(3)業(yè)務(wù)問題本身復(fù)雜,樣本數(shù)據(jù)充足,但問題本身又無法或者難以用人工的方式提取特征,此時傳統(tǒng)機(jī)器學(xué)習(xí)無法進(jìn)行模型訓(xùn)練,采用深度學(xué)習(xí),可以有效發(fā)揮深度學(xué)習(xí)自動提取特征的價值。

與此同時,某些場景并不適合采用深度學(xué)習(xí)來解決問題,譬如在小規(guī)模的數(shù)據(jù)場景下,深度學(xué)習(xí)容易過擬合(Overfitting),正如奧卡姆剃刀原則所說,“如無必要,勿增實體”。

此外,深度學(xué)習(xí)模型訓(xùn)練過程中,需要大量的浮點計算以及矩陣運算,若問題解決方不具備高效的計算環(huán)境以及海量樣本數(shù)據(jù)的客觀條件,也不推薦使用深度學(xué)習(xí)解決問題。

2.2數(shù)據(jù)評估

無論是有監(jiān)督學(xué)習(xí),還是無監(jiān)督學(xué)習(xí),深度學(xué)習(xí)的模型訓(xùn)練都建立在大量樣本的迭代訓(xùn)練基礎(chǔ)之上,在采用深度學(xué)習(xí)解決實際問題之前,需對問題領(lǐng)域數(shù)據(jù)仔細(xì)分析,衡量數(shù)據(jù)規(guī)模與質(zhì)量。以下提供幾條基本原則供借鑒:

(1)深度學(xué)習(xí)能夠從樣本數(shù)據(jù)自動提取特征,但在實際考查準(zhǔn)備樣本數(shù)據(jù)集時,建議盡可能與問題領(lǐng)域的業(yè)務(wù)專家充分交流,洞察問題與數(shù)據(jù)的相關(guān)性,剔除噪聲數(shù)據(jù),這樣可以大大提高模型訓(xùn)練的效率,少走彎路。

(2)考察問題領(lǐng)域的存量數(shù)據(jù)后,若發(fā)現(xiàn)不是特別充裕,可考慮如下方法進(jìn)行數(shù)據(jù)擴(kuò)充:爬取公共數(shù)據(jù);對已有數(shù)據(jù)進(jìn)行變換,擴(kuò)充數(shù)據(jù),譬如利用反射變化擴(kuò)充圖片數(shù)據(jù);人工制造,譬如人工拍攝圖像數(shù)據(jù)等;與產(chǎn)業(yè)界公司進(jìn)行數(shù)據(jù)合作等。詳見4.1節(jié)。

(3)當(dāng)采用業(yè)界公開的網(wǎng)絡(luò)模型進(jìn)行微調(diào)(fine-tune),需要進(jìn)一步驗證問題數(shù)據(jù)類型與公開網(wǎng)絡(luò)模型訓(xùn)練數(shù)據(jù)類型的相似性。若兩者數(shù)據(jù)類型差距比較大,采用微調(diào)(fine-tune)的方法訓(xùn)練出來的模型效果往往不理想,可能需要考慮從頭開始訓(xùn)練新的模型。

(4)樣本數(shù)據(jù)在整個深度學(xué)習(xí)模型訓(xùn)練過程不是一成不變的,模型實際訓(xùn)練過程中,會視模型的訓(xùn)練效果,不斷進(jìn)行多輪數(shù)據(jù)的迭代優(yōu)化等,讓樣本數(shù)據(jù)類型覆蓋更多的實際測試數(shù)據(jù)的類型,降低噪聲數(shù)據(jù)。因此,需要牢記,數(shù)據(jù)考量會貫穿整個模型訓(xùn)練過程。

2.3問題抽象

在利用傳統(tǒng)機(jī)器學(xué)習(xí)分析具體問題時,需要將問題抽象為有監(jiān)督學(xué)習(xí)問題或者無監(jiān)督問題。如果是有監(jiān)督問題,還需要進(jìn)一步抽象成分類或回歸問題,最后再選擇適合的算法來訓(xùn)練模型。深度學(xué)習(xí)本質(zhì)上仍屬機(jī)器學(xué)習(xí)范疇,因此利用深度學(xué)習(xí)解決實際問題,需要同樣的問題抽象過程:

與傳統(tǒng)機(jī)器學(xué)習(xí)一樣,有監(jiān)督學(xué)習(xí)問題和無監(jiān)督學(xué)習(xí)問題主要由樣本數(shù)據(jù)是否需要標(biāo)簽來決定:

(1)有監(jiān)督學(xué)習(xí)問題通過有標(biāo)簽訓(xùn)練數(shù)據(jù)集的形式,在輸入和輸出的數(shù)據(jù)之間建立相關(guān)性。

(2)無監(jiān)督學(xué)習(xí)問題通過分析非標(biāo)記數(shù)據(jù),幫助檢測數(shù)據(jù)的相似性和差異性,譬如圖片搜索和欺詐檢測等應(yīng)用場景。

當(dāng)問題定位為有監(jiān)督問題后,需進(jìn)一步確認(rèn)是分類問題還是回歸問題,判斷原則如下:

(1)回歸問題通常用來預(yù)測一個值,如預(yù)測下一季度銀行卡消費金額、交易筆數(shù)等等,回歸是對真實值的一種逼近預(yù)測。

(2)分類問題是用于將數(shù)據(jù)打上一個標(biāo)簽,通常結(jié)果為離散值,分類并沒有逼近的概念,最終正確結(jié)果只有一個,錯誤的就是錯誤的,不會有相近的概念。

當(dāng)實際問題抽象成具體深度學(xué)習(xí)技術(shù)問題后,即可以結(jié)合問題的數(shù)據(jù)類型選擇合適的深度網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行模型訓(xùn)練,譬如圖像數(shù)據(jù)處理,選擇卷積神經(jīng)網(wǎng)絡(luò)(CNN)等,詳見5.2節(jié)。

第三節(jié):訓(xùn)練環(huán)境構(gòu)建

構(gòu)建深度學(xué)習(xí)研究環(huán)境首先要考慮硬件環(huán)境的支持,這也是深度學(xué)習(xí)算法區(qū)別于其他機(jī)器學(xué)習(xí)算法的重要一點,同時還要依據(jù)實際需求對深度學(xué)習(xí)軟件框架進(jìn)行規(guī)劃和選擇。

3.1硬件環(huán)境選擇

深度學(xué)習(xí)需要很高的內(nèi)在并行度、大量的浮點計算能力以及矩陣運算,傳統(tǒng)的基于CPU集群的云計算技術(shù)并不擅長處理這類問題,例如,斯坦福大學(xué)的研究人員Adam Coates采用GPU將三臺計算機(jī)連貫在一起進(jìn)行深度學(xué)習(xí)實驗,結(jié)果卻得到了與Google數(shù)千臺計算機(jī)一樣的效果。由此可見,只有更好的硬件加速條件,才能滿足現(xiàn)有數(shù)據(jù)和模型規(guī)模繼續(xù)擴(kuò)大的需求。

目前,最主流的硬件加速器件非GPU莫屬。最重要的是GPU出色的浮點計算性能特別提高了深度學(xué)習(xí)兩大關(guān)鍵活動:分類和卷積的性能,同時又達(dá)到所需的精準(zhǔn)度,并且在相同的精度下,相對傳統(tǒng)CPU的方式,擁有更快的處理速度、更少的服務(wù)器投入和更低的功耗。因此,Google和Facebook等巨頭也在轉(zhuǎn)向使用GPU作為硬件加速的基礎(chǔ)原件。

此外,業(yè)界也出現(xiàn)了其他進(jìn)行深度學(xué)習(xí)硬件加速的方案。比如,部分公司正在研究采用FPGA作為進(jìn)行深度學(xué)習(xí)加速,以期使其對深度學(xué)習(xí)領(lǐng)域經(jīng)常使用的上層軟件兼容性更強,并行訓(xùn)練架構(gòu)更加靈活。同時,F(xiàn)PGA在單位能耗下性能更強,這對大規(guī)模服務(wù)器部署或資源有限的嵌入式應(yīng)用的研究而言也至關(guān)重要。

建設(shè)深度學(xué)習(xí)硬件加速環(huán)境需要較大的資金和技術(shù)投入,需要進(jìn)行精細(xì)研究并審慎選擇,建議遵循以下原則:

1、選擇硬件加速環(huán)境時盡量采用具備更多用戶友好開發(fā)工具的芯片,這樣能夠很好的降低學(xué)習(xí)門檻。

2、建立龐大且需要平行的深度網(wǎng)絡(luò),需要考慮硬件的開放性、數(shù)據(jù)并行和模型并行支持度,以及單位能耗特點。

3、深度學(xué)習(xí)模型訓(xùn)練過程中需對深度網(wǎng)絡(luò)進(jìn)行多次反向傳導(dǎo)運算計算量大,而深度模型進(jìn)行生產(chǎn)應(yīng)用時只需進(jìn)行前向傳播計算,因此建議在訓(xùn)練環(huán)境中采用硬件加速,生產(chǎn)應(yīng)用環(huán)境無需進(jìn)行硬件加速。

3.2常用深度學(xué)習(xí)軟件框架簡介

深度學(xué)習(xí)是一個發(fā)展迅速的領(lǐng)域,除了眾多學(xué)術(shù)界專家在理論方面的貢獻(xiàn)之外,工業(yè)界也為深度學(xué)習(xí)提供了很多工具框架,例如,伯克利視覺和學(xué)習(xí)中心開發(fā)的Caffe,微軟推出的開源深度學(xué)習(xí)框架CNTK,LISA開發(fā)的基于Python的Theano,Google主推的TensorFlow、以及Torch、MxNet等。目前來看,業(yè)界使用最多的是Caffe、Theano和TensorFlow。

(1)Caffe

Caffe是由伯克利視覺和學(xué)習(xí)中心(Berkeley Vision and Learning Center,BVLC)開發(fā)的基于C++/CUDA/Python實現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)框架,提供了面向命令行、Matlab和Python的綁定接口。Caffe 遵循BSD-2協(xié)議,代碼組織良好,可讀性強。同時,Caffe提供了一整套工具集,可用于模型訓(xùn)練、預(yù)測、微調(diào)、發(fā)布、數(shù)據(jù)預(yù)處理,以及良好的自動測試。

(2)Theano

Theano是由LISA開發(fā)的基于Python的深度學(xué)習(xí)框架,可以定義數(shù)學(xué)表達(dá)式并高效地優(yōu)化、求值。Theano支持機(jī)器學(xué)習(xí)中的邏輯回歸(LR)、多層感知器(MLP)、深度卷積網(wǎng)絡(luò)等監(jiān)督學(xué)習(xí)方法,以及自編碼器(AE)、降噪自編碼器、受限玻爾茲曼機(jī)(RBM)、深度置信網(wǎng)絡(luò)(DBN)等非監(jiān)督/半監(jiān)督學(xué)習(xí)方法。但是Theano計算速度慢,雖然有GPU加速,但仍然不如其他框架高效。

(3)TensorFlow

TensorFlow是Google在2015 Google Research Blog宣布推出的新一代人工智能學(xué)習(xí)系統(tǒng)。TensorFlow是一個異構(gòu)分布式學(xué)習(xí)系統(tǒng)上的大規(guī)模機(jī)器學(xué)習(xí)框架,移植性好,小到移動設(shè)備如手機(jī),大到規(guī)模集群,都能支持。同時TensorFlow支持多種深度學(xué)習(xí)模型,隨著TensorFlow源碼不斷開放,對新硬件、新設(shè)備、新的加速庫如cuDNN的支持力度也在不斷提升。

3.3深度學(xué)習(xí)軟件框架選擇

通過對Caffe、Theano、TensorFlow的研究經(jīng)驗,其優(yōu)勢與缺陷可歸納為下表所示:

CaffeTheanoTensorFlow
編程語言 C++,Python,MATLAB Python Python
預(yù)訓(xùn)練模型支持 開端
多GPU數(shù)據(jù)并行
多GPU模型并行 實驗
訓(xùn)練速度 非???/td>
操作系統(tǒng)支持 所有操作系統(tǒng) Linux, OSX Linux, OSX
代碼開源
RNN模型支持
      

在實際的工作中,需要依據(jù)問題特征和業(yè)務(wù)需求進(jìn)行深度學(xué)習(xí)框架工具的選擇,以下是挑選工具框架的幾點建議:

(1)進(jìn)行數(shù)據(jù)特征提取或基于現(xiàn)有模型進(jìn)行微調(diào)選用Caffe。

(2)需要對預(yù)訓(xùn)練模型進(jìn)行復(fù)雜處理選用Theano。

(3)處理適用于RNN模型的問題,選用Theano或者TensorFlow。

(4)建立龐大且需要平行的深度網(wǎng)絡(luò)模型時選用TensorFlow。

(5)Caffe、Theano、TensorFlow各有自身獨特優(yōu)勢,在選擇某一深度學(xué)習(xí)框架時要保持對其他工具技術(shù)發(fā)展的關(guān)注。

第四節(jié):數(shù)據(jù)管理

深度學(xué)習(xí)是建立在對大量訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí)、特征提取等基礎(chǔ)之上的實踐性方法,深度學(xué)習(xí)模型只有在海量數(shù)據(jù)輸入下才能達(dá)到最好的性能,可見有效的數(shù)據(jù)對深度學(xué)習(xí)的重要性。同時,數(shù)據(jù)管理中的數(shù)據(jù)的采集、處理等各環(huán)節(jié)也很有講究,有些實踐性的技巧。

4.1數(shù)據(jù)獲取

依據(jù)獲取數(shù)據(jù)的成本可將市場上的數(shù)據(jù)劃分為三類:免費公開數(shù)據(jù)、付費公開數(shù)據(jù)以及私有數(shù)據(jù)。以下列舉了不同類型數(shù)據(jù)的獲取渠道:

(1)免費公開數(shù)據(jù)源

(a)公開的數(shù)據(jù)庫

公開數(shù)據(jù)庫是獲取海量數(shù)據(jù)最簡單有效的方式。公開數(shù)據(jù)庫基本按照學(xué)術(shù)問題、行業(yè)應(yīng)用劃分針對性較強,而且數(shù)據(jù)庫中數(shù)據(jù)大都經(jīng)過人工整理和標(biāo)注,規(guī)范性和易用性更強。以下是一些常用的公開數(shù)據(jù)庫資源列表:

平臺名稱數(shù)據(jù)庫數(shù)據(jù)特點
圖像分析 ImageNet a、1000類物體定位;b、200類物體檢測;c、視頻物體檢測;d、365類場景分類;e、場景解析
  MSCOCO 包含檢測、加標(biāo)題、關(guān)鍵點三個任務(wù)
  PASCAL 五個挑戰(zhàn):分類、檢測、分割、動作分類、person layout
人臉識別 LFW 標(biāo)準(zhǔn)的人臉識別數(shù)據(jù)集
  WebFace 非限制場景人臉識別
  FDDB 標(biāo)準(zhǔn)人臉檢測評測集

(b)網(wǎng)絡(luò)爬蟲

網(wǎng)絡(luò)爬蟲是獲取各類網(wǎng)站公開數(shù)據(jù)的有效工具,使用網(wǎng)絡(luò)爬蟲是研究深度學(xué)習(xí)技術(shù)的一項必備技能。網(wǎng)絡(luò)采集器屬于網(wǎng)絡(luò)爬蟲的一種,通過軟件的形式實現(xiàn)簡單快捷地采集網(wǎng)絡(luò)上分散的內(nèi)容,具有很好的內(nèi)容收集作用,而且不需要技術(shù)成本,可被用作為初級的數(shù)據(jù)采集工具,例如火車采集器、八爪魚、集搜客等。此外,針對特定網(wǎng)站的特定數(shù)據(jù)采集需求,也可結(jié)合開源系統(tǒng)自行開發(fā)爬蟲工具,這樣具有更高的自由性和自主性。利用爬蟲可以獲取一些從其它渠道獲取不到的數(shù)據(jù)資源,更重要的是幫助研究者打開尋找和搜集數(shù)據(jù)的思路。

(2)付費公開數(shù)據(jù)源

(a)商業(yè)化數(shù)據(jù)交易平臺

數(shù)據(jù)交易平臺是一些專注于互聯(lián)網(wǎng)綜合數(shù)據(jù)交易和服務(wù)的公司,其致力于融合和盤活各類大數(shù)據(jù)資源。可以通過數(shù)據(jù)購買的方式在數(shù)據(jù)交易平臺上獲取深度學(xué)習(xí)訓(xùn)練和測試數(shù)據(jù)。國內(nèi)知名的商業(yè)化數(shù)據(jù)交易憑條有優(yōu)易數(shù)據(jù)、數(shù)據(jù)堂等,其提供的服務(wù)和數(shù)據(jù)資源各有特色:

優(yōu)易數(shù)據(jù) 由國家信息中心發(fā)起,擁有國家級信息資源的數(shù)據(jù)平臺,國內(nèi)領(lǐng)先的數(shù)據(jù)交易平臺。平臺有B2B、B2C兩種交易模式。 1、政務(wù)數(shù)據(jù) 2、電子商務(wù)數(shù)據(jù)3、社會數(shù)據(jù) 4、交通管理數(shù)據(jù)5、企業(yè)信息數(shù)據(jù) 6、商品數(shù)據(jù) 7、消費數(shù)據(jù) 8、社交數(shù)據(jù)
數(shù)據(jù)堂 專注于互聯(lián)網(wǎng)綜合數(shù)據(jù)交易,提供數(shù)據(jù)交易、處理和數(shù)據(jù)API服務(wù)。 1、人臉識別數(shù)據(jù) 2、智能行車數(shù)據(jù) 3、電子商務(wù)數(shù)據(jù) 4、智能語音數(shù)據(jù) 5、智能交通數(shù)據(jù) 6、智能安防數(shù)據(jù) 7、基礎(chǔ)語音識別數(shù)據(jù) 8、自然語言理解數(shù)據(jù) 9、OCR光學(xué)字符識別數(shù)據(jù) 10、智能教育數(shù)據(jù)

(b)政府性數(shù)據(jù)交易平臺

隨著國家十三五規(guī)劃中提出的國家大數(shù)據(jù)戰(zhàn)略的實施,各地方政府對大數(shù)據(jù)產(chǎn)業(yè)發(fā)展高度重視,因而國內(nèi)政府性交易平臺建設(shè)也蓬勃發(fā)展,成為重要的數(shù)據(jù)源頭:

華東江蘇大數(shù)據(jù)交易平臺 立足互聯(lián)網(wǎng)金融+大數(shù)據(jù)在行業(yè)垂直市場領(lǐng)域,為數(shù)據(jù)撮合、許可和買賣的雙方搭建透明、公平的平臺,并提供數(shù)據(jù)流轉(zhuǎn)過程中的征信、評估、金融、法律等數(shù)據(jù)產(chǎn)業(yè)生態(tài)綜合服務(wù)支持。 提供數(shù)據(jù)交易,預(yù)處理交易,算法交易及大數(shù)據(jù)分析、平臺開發(fā),技術(shù)服務(wù),數(shù)據(jù)定價,數(shù)據(jù)金融,交易監(jiān)督等綜合服務(wù);基于數(shù)據(jù)金融資產(chǎn)化方向提供撮合、買賣,典當(dāng),融資,抵押,貸款等多種合作模式,為各經(jīng)濟(jì)主體(包括企業(yè)、機(jī)構(gòu)、個人等)盤活數(shù)據(jù)存量資源提供全面解決方案。
上海數(shù)據(jù)交易中心 作為上海市大數(shù)據(jù)發(fā)展“交易機(jī)構(gòu)+創(chuàng)新基地+產(chǎn)業(yè)基金+發(fā)展聯(lián)盟+研究中心”五位一體規(guī)劃布局內(nèi)的重要功能性機(jī)構(gòu),上海數(shù)據(jù)交易中心承擔(dān)著促進(jìn)商業(yè)數(shù)據(jù)流通、跨區(qū)域的機(jī)構(gòu)合作和數(shù)據(jù)互聯(lián)、政府?dāng)?shù)據(jù)與商業(yè)數(shù)據(jù)融合應(yīng)用等工作職能 交易中心以國內(nèi)領(lǐng)先的“技術(shù)+規(guī)則”雙重架構(gòu),創(chuàng)新結(jié)合IKVLTP六要素技術(shù),采用自主知識產(chǎn)權(quán)的虛擬標(biāo)識技術(shù)和二次加密數(shù)據(jù)配送技術(shù),結(jié)合面向應(yīng)用場景的數(shù)據(jù)互聯(lián)規(guī)則,將在全面保障個人隱私、數(shù)據(jù)安全前提下推動數(shù)據(jù)聚合流動。
貴陽大數(shù)據(jù)交易所 秉承“貢獻(xiàn)中國數(shù)據(jù)智慧 釋放全球數(shù)據(jù)價值”發(fā)展理念,志在成為全球最重要的交易所,旨在推動政府?dāng)?shù)據(jù)公開、行業(yè)數(shù)據(jù)價值發(fā)現(xiàn) 立足貴陽,通過自主開發(fā)的電子交易系統(tǒng),交易所面向全球提供7×24小時永不休市的大數(shù)據(jù)交易專業(yè)服務(wù),數(shù)據(jù)交易品種涵蓋金融、政府、醫(yī)療、社會、海關(guān)、能源、社交、商品、水電煤、法院、交通、企業(yè)、通信、銀行卡、專利、教育、物流等大數(shù)據(jù)領(lǐng)域

(3)私有數(shù)據(jù)源

(a)商業(yè)合作交換

目前產(chǎn)業(yè)發(fā)展已經(jīng)進(jìn)入大數(shù)據(jù)時代,數(shù)據(jù)是企業(yè)生存的核心競爭力之一,因而各行各業(yè)對自身數(shù)據(jù)的保護(hù)都倍加關(guān)注,想通過付費或爬取的方式獲得企業(yè)的核心數(shù)據(jù)就變得更加困難。然而,如果行業(yè)間的數(shù)據(jù)合作能夠給雙方帶來巨大的數(shù)據(jù)增值收益,則可以通過推動跨領(lǐng)域商業(yè)合作的方式進(jìn)行數(shù)據(jù)互換,從而完成數(shù)據(jù)收集形成完整的數(shù)據(jù)鏈。

(b)自建數(shù)據(jù)庫

在有些數(shù)據(jù)是外界無法獲取的情況下有可能需要自主進(jìn)行數(shù)據(jù)采集并維護(hù)一個小型的數(shù)據(jù)庫。為了保證數(shù)據(jù)采集的有效性在進(jìn)行數(shù)據(jù)采集的過程中關(guān)鍵是明確數(shù)據(jù)要求。以銀行卡分類問題為例,通常采用照片拍攝與視頻拍攝,為了避免拍攝之后復(fù)雜的裁剪旋轉(zhuǎn)工作,設(shè)定如下拍攝要求:

a)在拍攝板中央固定一個卡槽,相機(jī)固定在中央上方并與板面保持平行;

b)選擇陽光、陰天、夜晚三個場景于室內(nèi)室外分別拍攝。

c)增加可變燈光進(jìn)行場景模擬。

4.2數(shù)據(jù)預(yù)處理

獲取數(shù)據(jù)后需要進(jìn)行數(shù)據(jù)處理,在深度學(xué)習(xí)中,常常面臨數(shù)據(jù)不足的問題,在這種情形下,深度學(xué)習(xí)算法往往難以達(dá)到最優(yōu)的效果,因此需要對現(xiàn)有的原始數(shù)據(jù)源進(jìn)行必要的擴(kuò)充與拓展或稱為數(shù)據(jù)合成。以圖片數(shù)據(jù)處理為例,常見的數(shù)據(jù)擴(kuò)充方法大致有如下幾種:

(1)旋轉(zhuǎn)|反射變換(rotation/reflection): 隨機(jī)旋轉(zhuǎn)圖像一定角度,改變圖像內(nèi)容的朝向。

(2)翻轉(zhuǎn)變換(flip):沿著水平或者垂直方向翻轉(zhuǎn)圖像。

(3)縮放變換(zoom):按照一定的比例放大或者縮小圖像。

(4)平移變換(shift):在圖像平面上對圖像以一定方式進(jìn)行平移,可以采用隨機(jī)或人為定義的方式指定平移范圍和平移步長,沿水平或豎直方向進(jìn)行平移,改變圖像內(nèi)容的位置。

(5)尺度變換(scale):對圖像按照指定的尺度因子, 進(jìn)行放大或縮小; 或者參照SIFT特征提取思想, 利用指定的尺度因子對圖像濾波構(gòu)造尺度空間. 改變圖像內(nèi)容的大小或模糊程度。

(6)對比度和亮度變換: 在圖像的HSV顏色空間,改變飽和度S和V亮度分量,保持色調(diào)H不變。對每個像素的S和V分量進(jìn)行指數(shù)運算(指數(shù)因子在0.25到4之間), 增加光照變化。

(7)噪聲擾動(noise): 對圖像的每個像素RGB進(jìn)行隨機(jī)擾動, 常用的噪聲模式是椒鹽噪聲和高斯噪聲。

此外,從視頻中提取圖片也是獲取大量數(shù)據(jù)的有效途徑,通過自制視頻轉(zhuǎn)換工具可將上述圖片預(yù)處理方法進(jìn)行集成,這樣能夠有效擴(kuò)大數(shù)據(jù)采集量。

4.3數(shù)據(jù)標(biāo)注

對于有監(jiān)督的分類任務(wù)一項重要的工作就是數(shù)據(jù)標(biāo)注。目前數(shù)據(jù)標(biāo)注的方法可劃分為人工標(biāo)記與自動化標(biāo)記。

(1)人工標(biāo)注

對于分類問題,可以人工將類別相同的數(shù)據(jù)放在一個文件夾中,然后通過代碼遍歷訪問數(shù)據(jù)形成分類標(biāo)簽。對于檢測問題,需要人工用矩形框來標(biāo)記圖片中的物體,往往會采用標(biāo)注工具,比如LabelImg,輔助完成。

(2)自動化標(biāo)記

自動化標(biāo)記則是通過少量樣本人工標(biāo)記,然后提取傳統(tǒng)特征(比如SIFT、LBP等)并訓(xùn)練分類器,接著對大量待標(biāo)記樣本進(jìn)行分類標(biāo)記。經(jīng)過一次分類器分類的樣本標(biāo)記往往錯誤較多,對于這批標(biāo)記數(shù)據(jù)進(jìn)行抽樣訓(xùn)練另一個分類器進(jìn)行分類,對于兩次具有不同標(biāo)簽的數(shù)據(jù)進(jìn)行人工修正,則可以以少量人力得到精度較高的標(biāo)記數(shù)據(jù)。

第五節(jié):模型訓(xùn)練5.1常用深度網(wǎng)絡(luò)簡介

深度學(xué)習(xí)技術(shù)的核心基礎(chǔ)是深度網(wǎng)絡(luò)模型,在其產(chǎn)生和發(fā)展演進(jìn)的過程產(chǎn)生了諸多網(wǎng)絡(luò)結(jié)構(gòu),目前常用的深度網(wǎng)絡(luò)結(jié)構(gòu)有DBN、CNN、RNN。下表對DBN、CNN、RNN的網(wǎng)絡(luò)結(jié)構(gòu)和特特性進(jìn)行了簡要對比。

深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN) DBN即為若干個RBM模型的疊加,是有著多層隱藏解釋因子的神經(jīng)網(wǎng)絡(luò),這些網(wǎng)絡(luò)被“限制”為一個可視層和一個隱層,層間存在連接,但層內(nèi)的單元間不存在連接。 DBN的網(wǎng)絡(luò)結(jié)構(gòu)使其具備較高靈活性,因而拓展比較容易。但其輸入是簡單的一維向量,因而并沒有考慮到圖像的2維結(jié)構(gòu)信息。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN) 卷積神經(jīng)網(wǎng)絡(luò)包含兩類組成結(jié)構(gòu):卷積層(Convolutional Layer)和子采樣層(Subsample Layer)也稱池化層(Pooling Layer)。其中卷基層主要用于對輸入數(shù)據(jù)應(yīng)用若干過濾,并進(jìn)行若干類型的特征提取,自采樣層用以縮減輸入數(shù)據(jù)規(guī)模。 CNN的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。使圖像可以直接作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)識別算法中復(fù)雜的特征提取和數(shù)據(jù)重建過程。而且這種網(wǎng)絡(luò)結(jié)構(gòu)對平移、比例縮放、傾斜或者共他形式的變形具有高度不變性。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN) RNN是一種節(jié)點定向連接成環(huán)的人工神經(jīng)網(wǎng)絡(luò),由于構(gòu)成RNN隱藏層的基本單元存在內(nèi)部循環(huán)神經(jīng)回路 RNN具備狀態(tài)記憶和狀態(tài)轉(zhuǎn)換功能,從而可以處理長時間依賴的問題。RNN已經(jīng)被在實踐中證明對NLP是非常成功的。在RNN中,目前使用最廣泛最成功的模型便是LSTMs(Long Short-Term Memory,長短時記憶模型)模型,該模型能夠更好地對長短時依賴進(jìn)行表達(dá)。
      

5.2深度網(wǎng)絡(luò)模型選擇

學(xué)界對深度網(wǎng)絡(luò)所使用的問題已經(jīng)有了基本的認(rèn)識,下表給出了一些深度學(xué)習(xí)算法和對應(yīng)的領(lǐng)域:

數(shù)據(jù)應(yīng)用場景輸入Neutral Net
文本 情感分析 詞向量 RNTN或DBN(包含滑動窗口)
  命名實體識別 詞向量 RNTN或DBN(包含滑動窗口)
  詞性標(biāo)注 詞向量 RNTN或DBN(包含滑動窗口)
  語義角色標(biāo)注 詞向量 RNTN或DBN(包含滑動窗口)
文檔 主題建模/語義哈希(非監(jiān)督) 詞頻 深度自編碼器(嵌入 DBN或SDA)
  文檔分類(有監(jiān)督) TF-IDF(或詞頻) DBN,SDA
圖像 圖像識別 字節(jié)流 CNN
  多目標(biāo)識別   CNN,RNTN
  圖像搜索/語義哈希   深度自編碼器(嵌入 DBN)
聲音 語音識別   RNN或CNN
時間序列 預(yù)測分析   RNN
      

因而,建議從問題特征出發(fā)選擇對應(yīng)的深度網(wǎng)絡(luò)結(jié)構(gòu),并遵循如下原則:

(1)對于文本領(lǐng)域,整體選擇RNTN(遞歸張量神經(jīng)網(wǎng)絡(luò))或DBN來處理,RNTN是RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))的一個變種。

(2)對于文檔(相對于文本更大),選擇自編碼器或者DBN解決問題。

(3)對于圖像來說,DBN或CNN應(yīng)用更多,處理圖像搜索或圖片語義問題采用自編碼器更好。

(4)處理聲音問題,選擇RNN或CNN。

(5)處理時間序列問題,比如預(yù)測分析,選擇DBN或DNN。

5.3參數(shù)調(diào)優(yōu)技巧

在確定深度網(wǎng)絡(luò)結(jié)構(gòu)后,需要通過大量訓(xùn)練和測試以獲取有效的模型,以下是一些常用的參數(shù)設(shè)定和調(diào)優(yōu)原則。

(1)盡量基于成熟模型進(jìn)行微調(diào)(fine-tune)

深度網(wǎng)絡(luò)參數(shù)訓(xùn)練優(yōu)化是一項冗長而復(fù)雜的工作,若技術(shù)人員的經(jīng)驗不足,則容易導(dǎo)致訓(xùn)練過程參數(shù)不收斂或者陷入局部最優(yōu)而得不到很好的結(jié)果。因此,基于前人已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)參數(shù)模型進(jìn)行微調(diào)是目前通行的良好實踐原則。

(2)權(quán)重初始化策略

在開始訓(xùn)練深度網(wǎng)絡(luò)之前,需要對網(wǎng)絡(luò)連接權(quán)值進(jìn)行初始化,目前在神經(jīng)網(wǎng)絡(luò)中建議使用的權(quán)重初始化策略是將值歸一化到范圍[-b,b],b為:

和分別是權(quán)值向量之前和之后的隱藏層大小,這樣有助于加速網(wǎng)絡(luò)參數(shù)收斂,避免局部最優(yōu)或網(wǎng)絡(luò)失靈。

(3)高維度網(wǎng)絡(luò)結(jié)構(gòu)克服局部最小

深層網(wǎng)絡(luò)由于是高度非線性的,有著太多的局部極值,傳統(tǒng)觀念認(rèn)為在這樣的條件下很難保證能夠得到一個可以接受的好的解,容易陷入局部最小。實際上通過增加深度網(wǎng)絡(luò)的維度和訓(xùn)練時間,陷入局部最優(yōu)解的概率會越小。當(dāng)損失函數(shù)接近全局最小時,如果我們找到了真正的局部最小,那么它將非常接近全局最小,這種差異是無關(guān)緊要的。比如從alexnet、VGG、googlenet、resnet等卷積模型中進(jìn)行選擇并在自己的數(shù)據(jù)集進(jìn)行微調(diào)。這些網(wǎng)絡(luò)效果隨層數(shù)遞增,因而采用resnet或者更新的googlenet-v4將會發(fā)現(xiàn)測試結(jié)果會更令人滿意。

(4)數(shù)據(jù)批量大小設(shè)定

增加網(wǎng)絡(luò)強度的一種方式(受計算而不是內(nèi)存限制)是,將數(shù)據(jù)分成小批量。這可以避免一些內(nèi)存操作,GPU也擅長并行處理大矩陣計算。然而,增加批次的大小的話可能會對訓(xùn)練算法有影響,并且合并需要更多時間。重要的是要找到一個很好的平衡點,以在最短的時間內(nèi)獲得最好的效果。此外,使用小批量的數(shù)據(jù),梯度會更加穩(wěn)定。

(5)訓(xùn)練誤差衡量準(zhǔn)則

在訓(xùn)練與測試一個深度神經(jīng)網(wǎng)絡(luò)模型時,我們通常使用三個數(shù)據(jù)集,即訓(xùn)練集、開發(fā)集、測試集。模型對應(yīng)這三個數(shù)據(jù)集有三個誤差,訓(xùn)練集誤差、開發(fā)集誤差、與測試集誤差,另外還有一個人類梳理這類問題的誤差值—人類水平誤差?;诖说闹钠?方差權(quán)衡理論是指導(dǎo)我們調(diào)參的準(zhǔn)則:

人類誤差與訓(xùn)練集誤差之間的差距稱為可避免的偏差,這部分誤差可以通過進(jìn)一步學(xué)習(xí)及模型調(diào)優(yōu)來避免。而訓(xùn)練集和開發(fā)集之間的差距稱為方差,它是訓(xùn)練集與開發(fā)集的分布差異造成的。

當(dāng)訓(xùn)練誤差較大時,是指模型并未達(dá)到最優(yōu)解(陷入局部最優(yōu))或者模型不夠表達(dá)你的數(shù)據(jù)集。這時需要更換更深的模型,或者訓(xùn)練更長的時間。當(dāng)訓(xùn)練誤差較小,而開發(fā)集誤差較大,則是模型過擬合,即訓(xùn)練樣本并未完全包含目標(biāo)任務(wù)的數(shù)據(jù)類型,這時候需要增加訓(xùn)練樣本或者使用正則化來防止過擬合。

如果訓(xùn)練集誤差與開發(fā)集誤差都很小,測試集誤差較大,那么是開發(fā)集與測試集的分配不合適,需要增大開發(fā)集所占的比例。

(6)其他訓(xùn)練技巧

a)歸一化實值數(shù)據(jù),減去平均值,再除以標(biāo)準(zhǔn)差。

b)降低訓(xùn)練過程中的學(xué)習(xí)率。

c)使用動量,幫助參數(shù)通過停滯區(qū)。

第六節(jié):生產(chǎn)應(yīng)用

上述幾個小節(jié)介紹的都是在深度學(xué)習(xí)研究過程中需要注意的事項,本節(jié)將討論如何將深度網(wǎng)絡(luò)模型與生產(chǎn)系統(tǒng)進(jìn)行無縫對接。

6.1訓(xùn)練環(huán)境與生產(chǎn)環(huán)境的數(shù)據(jù)接口

實現(xiàn)深度學(xué)習(xí)訓(xùn)練模型到生產(chǎn)系統(tǒng)的遷移,需要在屏蔽訓(xùn)練環(huán)境和生產(chǎn)應(yīng)用環(huán)境的軟硬件環(huán)境的基礎(chǔ)上實現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)數(shù)據(jù)的無縫兼容。目前通行的原則是網(wǎng)絡(luò)定義文件、網(wǎng)絡(luò)參數(shù)文件分離。

(1)深度網(wǎng)絡(luò)定義文件

用于定義深度網(wǎng)絡(luò)的節(jié)點設(shè)置和節(jié)點間連接結(jié)構(gòu)的參數(shù)文件,例如采用Caffe的prototext文件。

(2)深度網(wǎng)絡(luò)參數(shù)文件

用于保存訓(xùn)練結(jié)束時得到的深度網(wǎng)絡(luò)各連接之間加權(quán)值,以二進(jìn)制流形式存儲,例如采用caffe的caffemodel文件。

6.2生產(chǎn)應(yīng)用環(huán)境服務(wù)接口

深度學(xué)習(xí)的理論模型投入生產(chǎn)仍需要“IT團(tuán)隊”花費大量時間進(jìn)行系統(tǒng)性的改變和優(yōu)化,因此在深度學(xué)習(xí)生產(chǎn)應(yīng)用環(huán)境中,通過Restful API向企業(yè)其他生產(chǎn)系統(tǒng)提供服務(wù)是很好的形式,這樣既可以屏蔽內(nèi)部實現(xiàn)細(xì)節(jié),又可以在產(chǎn)生模型變動時實現(xiàn)平滑的遷移。在API的規(guī)劃中需包含如下必要接口:

功能說明
運行應(yīng)用 運行應(yīng)用的一個版本。需要指明應(yīng)用版本的 ID,運行的輸入、輸出,以及用戶身份信息。系統(tǒng)從輸入中獲取數(shù)據(jù),經(jīng)過計算后將輸出結(jié)果存儲到用戶指定的輸出對象中。該API需向用戶提供一個任務(wù)ID,用戶可以使用該ID進(jìn)行后續(xù)操作。
更新應(yīng)用 對先前的應(yīng)用版本進(jìn)行更新。用戶指明需要更新的應(yīng)用ID,新版本名稱、輸入的數(shù)據(jù)和用戶身份信息。系統(tǒng)通過輸入數(shù)據(jù)新生成一個應(yīng)用版本。該API返回一個任務(wù)ID和一個版本ID。
停止任務(wù) 用戶傳入任務(wù)ID來停止一個正在運行中的任務(wù)。
查詢狀態(tài) 用戶傳入任務(wù)ID來查詢?nèi)蝿?wù)的狀態(tài)。狀態(tài)包括任務(wù)正在運行、運行成功、運行失敗和已停止。通過查詢?nèi)蝿?wù)狀態(tài)來決定下一步操作。
      

6.3模型退化的解決方法

深度學(xué)習(xí)問題建模的過程中,訓(xùn)練數(shù)據(jù)集是固定的,大部分?jǐn)?shù)據(jù)由數(shù)據(jù)合成產(chǎn)生,數(shù)據(jù)質(zhì)地和分布可能與實際生產(chǎn)應(yīng)用不一致,容易導(dǎo)致訓(xùn)練集誤差、開發(fā)集誤差、與測試集誤差。因而在生產(chǎn)環(huán)境中進(jìn)行模型應(yīng)用時,隨著調(diào)用案例的增加,會產(chǎn)生模型退化問題,即訓(xùn)練模型分類錯誤增多。要解決這一問題,可以采取以下措施:

(1)對判別置信度低或用戶反饋出現(xiàn)判別錯誤的數(shù)據(jù)進(jìn)行保存收集。

(2)定期利用收集到的數(shù)據(jù)對原有模型進(jìn)行微調(diào)并在生產(chǎn)應(yīng)用環(huán)境進(jìn)行模型更新。

作者介紹

電子商務(wù)與電子支付國家工程實驗室人工智能研究團(tuán)隊:費志軍、劉想、王宇、華錦芝。電子商務(wù)與電子支付國家工程實驗室:2013年經(jīng)國家發(fā)展改革委審批認(rèn)定,中國銀聯(lián)成為金融行業(yè)第一家獲得批復(fù)建設(shè)電子商務(wù)與電子支付國家工程實驗室的企業(yè)。實驗室的建設(shè)目標(biāo)是建成國內(nèi)一 流、國際知名的電子商務(wù)與電子支付研究基地,全面加強技術(shù)攻關(guān),力爭在全球電子商務(wù)、電子貨幣和電子支付技術(shù)領(lǐng)域占據(jù)領(lǐng)先地位。人工智能研究團(tuán)隊:立足于金融支付領(lǐng)域,推動人工智能在金融領(lǐng)域的應(yīng)用與推廣。近期,重點研究圖像識別、語音識別技術(shù)以及自然語言處理等人工智能技術(shù)在金融產(chǎn)品創(chuàng)新、信用風(fēng)險防控、智能化運營、客戶服務(wù)等領(lǐng)域的前瞻性應(yīng)用。

關(guān)鍵字:學(xué)習(xí)算法DBN

本文摘自:大數(shù)據(jù)雜談

電子周刊
回到頂部

關(guān)于我們聯(lián)系我們版權(quán)聲明隱私條款廣告服務(wù)友情鏈接投稿中心招賢納士

企業(yè)網(wǎng)版權(quán)所有 ©2010-2024 京ICP備09108050號-6 京公網(wǎng)安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 江达县| 禹州市| 定西市| 河西区| 平阴县| 白城市| 江油市| 曲松县| 白朗县| 科技| 元谋县| 亚东县| 茂名市| 柘荣县| 普兰店市| 温州市| 永嘉县| 仪陇县| 石景山区| 登封市| 广元市| 安塞县| 丰宁| 沙田区| 苗栗县| 台南县| 隆林| 托克逊县| 清苑县| 集安市| 泌阳县| 安图县| 永和县| 日土县| 东兴市| 牡丹江市| 惠来县| 大厂| 吴忠市| 和静县| 常熟市|