來學偉
摘要:該文簡單介紹了大規(guī)模的深度學習在動態(tài)結構中的應用原理,重點介紹了級聯(lián)分類器的原理,接著分析了使用動態(tài)結構化系統(tǒng)的主要障礙。并提出了解決方案。
關鍵詞:動態(tài)結構;級聯(lián)分類器;批量卷積
中圖分類號:TP181? ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)17-0199-02
開放科學(資源服務)標識碼(OSID):
Abstract: this paper briefly introduces the application principle of large-scale deep learning in dynamic structure, especially the principle of cascade classifier, and then analyzes the main obstacles of using dynamic structured system.And put forward the solution.
Key words: dynamic structure; vascade classifier; batch convolution
1 背景
一般來說,加速數(shù)據(jù)處理系統(tǒng)的一種策略是構造一個系統(tǒng),這個系統(tǒng)用動態(tài)結構(dynamic structure) 描述圖中處理輸入的所需計算過程。在給定一個輸入的情況中,數(shù)據(jù)處理系統(tǒng)可以動態(tài)地決定運行神經網絡系統(tǒng)的哪一部分。單個神經網絡內部同樣也存在動態(tài)結構,給定輸入信息,決定特征(隱藏單元)哪一部分用于計算。這種神經網絡中的動態(tài)結構有時被稱為條件計算 (conditional computation)(Bengioet al., 2013b,c)。由于模型結構許多部分可能只跟輸入的一小部分有關,只計算那些需要的特征可以起到加速的目的[1]。
2 級聯(lián)分類器的原理
動態(tài)結構計算是一種基礎的計算機科學方法,廣泛應用于軟件工程項目。應用于神經網絡的最簡單的動態(tài)結構基于決定神經網絡(或者其他機器學習模型)中的哪些子集需要應用于特定的輸入。
在分類器中加速推斷的可行策略是使用級聯(lián)(cascade)的分類器。當目標是檢測罕見對象(或事件)的是否存在,可以應用級聯(lián)策略。要確定對象是否存在,我們必須使用具有高容量、運行昂貴的復雜分類器。然而,因為對象是罕見的,我們通??梢允褂酶俚挠嬎憔芙^不包含對象的輸入。在這些情況下,我們可以訓練一系列分類器。序列中的第一分類器具有低容量,訓練為具有高召回率。換句話說,他們被訓練為確保對象存在時,我們不會錯誤地拒絕輸入。最終的分類器訓練為具有高精度。在測試時,我們按照順序運行分類器進行推斷,一旦級聯(lián)中的任何一個拒絕它,就選擇拋棄??偟膩碚f,這允許我們使用高容量模型以較高的置信度驗證對象的存在,而不是強制我們?yōu)槊總€樣本付出完全推斷的成本。有兩種不同的方式可以使得級聯(lián)實現(xiàn)高容量。一種方法是使級聯(lián)中靠后的成員單獨具有高容量。在這種情況下,系統(tǒng)作為一個整體顯然具有高容量,因為它的一些個體成員是高容量的。還可以使用另一種級聯(lián),其中每個單獨的模型具有低容量,但是由于許多小型模型的組合,整個系統(tǒng)具有高容量。Viola and Jones (2001) 使用級聯(lián)的增強決策樹實現(xiàn)適合在手持數(shù)字相機中使用的快速并且魯棒的面部檢測器。本質上,它們的分類器使用滑動窗口方法來定位面部,許多窗口會被檢查,如果它們不包含面部則被拒絕。級聯(lián)的另一個版本使用早期模型來實現(xiàn)一種硬性的注意機制:級聯(lián)的早期成員定位對象,并且級聯(lián)的后續(xù)成員在給定對象位置的情況下執(zhí)行進一步處理。例如,Google使用兩步級聯(lián)從街景視圖圖像中轉換地址編號,首先使用一個機器學習模型查找地址編號,然后使用另一個機器學習模型將其轉錄 (Goodfellow et al., 2014d)。
決策樹本身是動態(tài)結構的一個例子,因為樹中的每個節(jié)點決定應該使用哪個子樹來評估輸入。一個結合深度學習和動態(tài)結構的簡單方法是訓練一個決策樹,其中每個節(jié)點使用神經網絡做出決策 (Guo and Gelfand, 1992),雖然這種方法沒有實現(xiàn)加速推斷計算的目標[2]。
類似的,我們可以使用稱為選通器 (gater) 的神經網絡來選擇在給定當前輸入的情況下將使用幾個專家網絡 (expert network) 中的哪一個來計算輸出。這個想法的第一個版本被稱為專家混合體 (mixture of experts)(Nowlan, 1990; Jacobs et al.,1991),其中選通器為每個專家輸出一個概率或權重(通過非線性的softmax 函數(shù)獲得),并且最終輸出由各個專家輸出的加權組合獲得。在這種情況下,使用選通器不會降低計算成本,但如果每個樣本的選通器選擇單個專家,我們就會獲得一個特殊的硬專家混合體 (hard mixture of experts) (Collobert et al., 2001, 2002),這可以加速推斷和訓練的時間。當選通器決策的數(shù)量很小的時候,這個策略效果會很好,因為它不是組合的。但是當我們想要選擇不同的單元或參數(shù)子集時,不可能使用“軟開關”,因為它需要枚舉(和計算輸出)所有的選通器配置。為了解決這個問題,許多工作探索了幾種方法來訓練組合的選通器。Bengio et al. (2013c)提出使用選通器概率梯度的若干估計器,而Bacon et al. (2015); Bengio et al. (2015a) 使用強化學習技術(策略梯度(policy gradient))來學習一種形式的隱藏單元的條件Dropout,減少了實際的計算成本,而不會對近似的質量產生負面影響。另一種動態(tài)結構是開關,其中隱藏單元可以根據(jù)具體情況從不同單元接收輸入。這種動態(tài)路由方法可以理解為注意機制(attention mechanism) (Olshausen et al.,1993)。目前為止,硬性開關的使用在大規(guī)模應用中還沒有被證明是有效的。較為先進的方法一般采用對許多可能的輸入使用加權平均,因此不能收獲動態(tài)結構所有可能的計算益處[3]。
使用動態(tài)結構化系統(tǒng)的主要障礙是由于系統(tǒng)針對不同輸入的不同代碼分支導致的并行度降低。這意味著網絡中只有很少的操作可以被描述為對樣本minibatch的矩陣乘法或批量卷積。我們可以寫更多的專用子程序,用不同的核對樣本做卷積,或者通過不同的權重列來乘以設計矩陣的每一行。不幸的是,這些專用的子程序難以高效地實現(xiàn)。由于缺乏高速緩存的一致性,CPU實現(xiàn)將是緩慢的。GPU的實現(xiàn)也將是緩慢的,因為缺乏級聯(lián)的內存操作以及warp成員使用不同分支時需要串行化操作。在一些情況下,可以將樣本分成組緩解這些問題,這些組都采用相同的分支并且同時處理這些樣本組[4]。在離線環(huán)境中,這是最小化處理固定量樣本所需時間的一項可接受的策略。在實時系統(tǒng)中,樣本必須連續(xù)處理,對工作負載進行分區(qū)可能會導致負載均衡問題。例如,如果我們分配一臺機器處理級聯(lián)中的第一步,另一臺機器處理級聯(lián)中的最后一步,那么第一臺機器將傾向于過載,最后一個機器傾向于欠載。如果每個機器被分配以實現(xiàn)神經決策樹的不同節(jié)點,也會出現(xiàn)類似的問題。
3 總結
本文介紹了大規(guī)模的深度學習在動態(tài)結構中的應用原理,重點介紹了級聯(lián)分類器的原理,接著分析了使用動態(tài)結構化系統(tǒng)的主要障礙。并提出了解決方案。對大規(guī)模的深度學習在動態(tài)結構中的應用具有一定的實際意義。
參考文獻:
[1] 深度學習已成功應用于這三大領域[EB/OL]. http://bigdata.idcquan.com/dsjjs/122448.shtml.
[2] 閔騰飛. 基于協(xié)同過濾和深度學習的臨床決策支持方法研究[D]. 哈爾濱: 哈爾濱工業(yè)大學, 2018.
[3] 張騫予. 深度學習在醫(yī)學圖像識別中的研究與應用[D]. 太原: 太原理工大學碩士論文, 2018.
[4] 顏志鵬. 基于深度強化學習的游戲控制算法研究與實現(xiàn)[D]. 西安: 電子科技大學, 2018.
【通聯(lián)編輯:謝媛媛】