Density Encoding Enables Resource-Efficient Randomly Connected Neural Networks
密度編碼可實現資源高效的隨機連接神經網絡
https://arxiv.org/abs/1909.09153
https://ar5iv.labs.arxiv.org/html/1909.09153?_immersive_translate_auto_translate=1
摘要
在資源受限的邊緣設備上部署機器學習算法是理論和應用角度都非常重要的挑戰。在本文中,我們關注資源高效的隨機連接神經網絡,即隨機向量功能鏈接(RVFL)網絡,因為它們的簡單設計和極快的訓練時間使它們非常吸引人,用于解決許多應用分類任務。我們提議通過在隨機計算領域已知的基于密度的編碼來表示輸入特征,并使用超維計算領域的綁定和捆綁操作來獲得隱藏神經元的激活。使用來自UCI機器學習庫的121個真實世界數據集,我們實證展示了所提出的方法比傳統RVFL的平均準確度更高。我們還展示了可以使用有限范圍內的整數表示讀出矩陣,而準確度損失極小。在這種情況下,所提出的方法僅在小n位整數上操作,這導致了一個計算效率高的架構。最后,通過硬件現場可編程門陣列(FPGA)實現,我們展示了這種方法比傳統RVFL節省了大約十一倍的能量。
索引術語 - 隨機向量功能鏈接網絡,超維計算,基于密度的編碼
I. 引言
企業和工業對數據驅動技術的最大需求是提供實時洞察和預測分析的能力。當前發展的矢量目標是使機器學習應用能夠在連接的設備(邊緣計算)上運行,如智能手機、機器人、車輛等。在邊緣進行計算的好處是巨大的:由于從網絡連接和帶寬可用性中解耦,解決方案的可靠性更高;極低的延遲;更高的安全性和隱私性,因為敏感數據在設備上本地處理。
隨機連接的神經網絡,如最近提出的稱為隨機配置網絡的高級隨機學習技術[1]和眾所周知的隨機向量功能鏈接(RVFL)[2],已成為現代理論和應用研究的日益熱門話題。在理論方面,主要的成果是RFVL為連續映射和功能近似提供了通用逼近,并且當目標函數是概率密度函數時,它們在Kullback-Leibler散度中收斂[3]。當這與RVFL的設計和訓練過程的簡單性結合起來時,使它們成為解決邊緣計算中實際機器學習問題的非常有吸引力的替代方案。
本文的目的是提出一種方法,將RVFL操作的資源效率(內存占用、計算復雜性和能耗)提高一個數量級。所提出的方法結合了計算機科學的兩個領域:隨機計算[4]和超維計算[5]。基本思想是使用超維計算的計算簡單操作實現隱藏層的激活,并且像隨機計算一樣使用輸入特征的基于密度的編碼。此外,我們用僅限整數的讀出矩陣增強了這種方法。這種結合使我們能夠端到端使用整數算術。文章的新貢獻如下:
? 提出了一種資源高效的RVFL方法,僅使用整數操作;
? 在121個真實世界的分類數據集上的實證評估表明,所提出方法的準確度高于傳統RVFL;
? 所提出方法的現場可編程門陣列(FPGA)實現比傳統RVFL節能一個數量級,速度快2.5倍。
文章的結構如下。第二節介紹了所提出方法所使用的方法的背景。第三節描述了方法本身。第四節是性能評估。第五節涵蓋了相關工作。第六節提出了結論性意見。
II. 背景與方法
A. 隨機向量功能鏈接
這一小節簡要描述了傳統的RVFL。對于想要詳細了解RVFL的讀者,請參閱[6]。圖1描述了傳統RVFL的架構,它包括三層神經元。輸入層有K個神經元,代表當前輸入特征的值,記為x ∈ [K×1]。在操作階段,輸出層(L個神經元)產生網絡的預測(記為y)。中間層是網絡的隱藏層,執行輸入特征的非線性轉換。隱藏層包含N個神經元,其狀態記為h。
通常,RVFL的連接性由兩個矩陣和一個向量描述。一個矩陣Win ∈ [N ×K]描述了輸入層神經元和隱藏層神經元之間的連接。這個矩陣將給定的輸入特征投影到隱藏層。隱藏層的每個神經元都有一個參數,稱為偏置。隱藏層的偏置存儲在一個向量中,記為b ∈ [N × 1]。另一個矩陣是讀出連接Wout ∈ [L × N],位于隱藏層和輸出層之間,將存儲在h中的當前激活轉換為網絡的輸出y。
RVFL的主要特點是矩陣Win和向量b在網絡初始化時隨機生成,并在網絡的生命周期內保持固定。對于Win和b的生成沒有嚴格的限制。它們通常隨機從正態分布或均勻分布中抽取。在這里,Win和b都是從均勻分布中生成的。根據[8],Win的范圍是[-1, 1],而b的范圍是[-0.1, 0.1]。由于Win和b是固定的,因此訓練RVFL的過程集中在學習讀出矩陣Wout的值上。僅訓練Wout的主要優點是相應的優化問題是嚴格凸的,因此,解決方案可以在一個單獨的分析步驟中找到。
網絡隱藏層的激活h由以下方程描述:
關于RVFL的訓練,文章側重于分類任務,只考慮有監督學習場景,即網絡為每個訓練示例提供了真實的標簽。訓練數據集的總大小記為M。在這種情況下,獲取可訓練連接(隱藏層和輸出層之間的Wout矩陣)權重的標準方法是通過解決嶺回歸問題(這是Tikhonov正則化的一個特例),它最小化了預測(公式2)和真實值之間的均方誤差。具體來說,每個訓練示例的隱藏層激活h^T被收集在一起,形成矩陣H ∈ [M × N]。矩陣Y ∈ [M × L]使用一位有效編碼存儲相應的真實分類。給定H和Y,Wout的計算如下:
B. 基于密度的標量編碼
將標量表示為向量的想法并不新鮮。它在幾個領域獨立提出過。隨機計算[4]領域可能是最著名的例子,因為隨機計算的整個思想是可以使用位向量(通常是流)上的布爾運算來實現標量的算術運算。在脈沖神經網絡中使用的神經元放電的速率編碼模型是另一個著名的例子。隨機計算操作的是0到1之間的標量,它們被表示為隨機位向量,其中被編碼的標量決定了生成1的概率。因此,得到的位向量中1的密度編碼了標量,因此這種表示方法被稱為基于密度的編碼。生成隨機流很重要,因為兩個向量的獨立性是使用布爾運算來實現它們上的算術運算(例如,AND用于乘法)的先決條件。請注意,對于所提出的方法,不會對標量的基于密度的編碼執行算術運算。因此,在此研究中,編碼標量的表示的隨機性不是強制性的。實際上,從簡單性的角度來看,使用不需要隨機源的結構化版本的基于密度的編碼更為有利。我們將在本文的其余部分使用也被稱為溫度計編碼的結構化版本的基于密度的編碼[9]。
通過可視化最直觀地介紹基于密度的編碼的概念。圖2展示了當表示的維度設定為N = 4時可以編碼的所有可能值。圖2表明,使用基于密度的編碼可以表示N + 1個不同的值。表示這些值的最方便的方式是使用范圍在[0, N]內的整數(圖左邊的節點)。在這種情況下,為了獲得給定值v的編碼,需要將v個最左邊的位置設置為“一”(圖中的紅色哈希節點),而其余的向量設置為“零”(填充的綠色節點)。在下面使用的雙極表示中,“一”對應于-1,而“零”對應于1。
然而,請注意,輸入特征不是范圍在[0, N]內的整數。相反,假設一個特征xi由范圍在[0, 1]內的實數表示。任務是使用上述基于密度的編碼將特征的當前值表示為向量f ∈ [N×1]。由于編碼需要0到N之間的有限值集,因此首先使用由N確定的固定量化步長將實數離散化。給定特征的當前值,將其量化為最接近的整數如下:
C. 超維計算
超維計算[10],[11],也稱為向量符號架構,是一類受生物啟發的方法,用于在高維空間中表示和操縱認知架構及其意義的概念。
高(但固定)維度的向量(記為N)是超維計算中信息表示的基礎。信息分布在超維向量的各個位置,因此,超維向量使用分布式表示。分布式表示[12]與局部表示相反,因為任何位置的子集都可以被解釋。這與前一小節介紹的基于密度的編碼非常相關,因為向量f中的編碼也是分布式的。
在本文的范圍內,Win矩陣的列被解釋為超維向量,這些向量是隨機生成的。這些超維向量是雙極的,并且以+1和?1的相等概率隨機。值得注意的是,高維空間的一個重要特性是,所有隨機超維向量彼此不同(準正交)的概率極高。為了操縱超維向量,超維計算定義了它們上的操作。在本文中,我們隱式地只使用兩個關鍵操作:綁定和捆綁。
在裁剪函數中,κ是一個可配置的閾值參數。因此,在本文中,捆綁操作是通過逐位置加法和裁剪函數來實現的。例如,捆綁超維向量x和y的結果(記為a)簡單地表示為:。與綁定操作不同,結果超維向量a與所有捆綁的超維向量相似,這允許例如在超維向量中存儲信息[13]。例如,我們已經展示了裁剪函數在資源高效的自組織映射[14]和回聲狀態網絡[15],[16]實現中的有用性。
III. 使用基于密度編碼的RVFL
這一節介紹了利用基于密度編碼的RVFL架構。該方法在圖3中進行了說明。架構故意被描繪成與常規RVFL(圖1)在結構上盡可能相同。主要的區別是,所提出的方法用四層神經元來說明:輸入層(x,K個神經元);基于密度的表示層(F,N×K個神經元);隱藏層(h,N個神經元);輸出層(y,L個神經元)。因此,與傳統的RVFL不同,隱藏層并不直接連接到輸入層。相反,每個輸入特征首先被轉換為存儲其基于密度編碼的神經元行。這些向量構成了基于密度的表示層,該層反過來連接到隱藏層。還要注意,輸入和基于密度的表示層并不是完全連接的。輸入層中的每個神經元只與下一層相應行中的N個神經元連接。此外,這些連接(圖3中的藍線)被稱為“特征依賴”,因為第i個輸入神經元xi的激活將根據(4)量化為最接近的整數v;反過來,v決定了最右邊的連接數,這些連接傳輸-1,該神經元的其余連接傳輸+1。由于基于密度表示層的每個神經元只有一個傳入連接,輸入激活以雙極矩陣F的形式被投影。
同樣重要的是要提到,基于密度的表示層和隱藏層并不是完全連接的。實際上,基于密度表示層中的每個神經元只有一個傳出連接。因此,描述固定隨機連接到隱藏層的矩陣Win仍然是Win ∈ [N ×K]。此外,這些連接具有清晰的結構。在圖3中,連接被結構化,使得F中的每個列與隱藏層的一個神經元相連。這解釋了為什么隱藏神經元的數量N也決定了特征的基于密度編碼的維度:每個隱藏神經元在F中有其相應的列(見圖4)。請注意,圖4中N設置為10只是為了可視化目的。在實踐中,N的值更大。
與傳統的RVFL類似,Win的值也是隨機生成的。然而,這些值是從{?1, +1}中等概率抽取的。因此,與F類似,Win也是一個雙極矩陣。當反映到超維計算的思想時,Win應該被解釋為KN維的雙極超維向量。換句話說,每個特征都被分配了相應的超維向量。因此,在獲得隱藏神經元的輸入值之前,概念上的中間步驟是特征的超維向量與其當前基于密度的編碼之間的綁定操作。
最后,所提出的方法在隱藏層使用不同的非線性激活函數,使用裁剪函數(5)代替sigmoid函數。裁剪函數的特點是閾值κ調節神經元的非線性行為并限制激活值的范圍。總結上述差異,隱藏層的激活h如下獲得:
IV. 性能評估
在這一部分,所提出的方法在三種場景中得到驗證。第一種場景是比較在兩種方法的讀出矩陣權重都是實數的情況下,與傳統RVFL的對比。第二種場景是比較實數值讀出矩陣的結果與獲得整數值讀出矩陣的考慮策略的結果。最后一種場景是在有限能量預算的情況下,比較所提出方法和有限精度RVFL[8]的FPGA實現。所有報告的結果都是基于從UCI機器學習庫[18]獲得的121個真實世界的分類數據集。所考慮的數據集集合最初在不同分類器的大規模比較研究中進行了分析,感興趣的讀者請參閱原始工作[19]以獲取更多細節。唯一的預處理步驟是將特征歸一化到范圍[0, 1]。最后,報告的準確率是在五次獨立的初始化中平均得出的。
A. 與傳統RVFL的比較
首先,我們在兩種方法的計算資源都不受限的情況下,比較傳統的RVFL與所提出的方法。超參數的搜索是按照[19]使用網格搜索完成的,在傳統RVFL的情況下,對λ和N進行了搜索,并額外考慮了所提出方法的κ;N在[50, 1500]范圍內變化,步長為50;λ在[-10, 5]范圍內變化,步長為1;κ在{1, 3, 7, 15}之間變化。所獲得的最佳超參數用于估計所有數據集上的交叉驗證準確率。為了可視化結果,我們依賴于[20]中報告的相同方法。圖5展示了傳統RVFL與所提出方法的準確率。首先,重要的是要注意,正如預期的那樣,所獲得結果之間的相關系數很高(0.86)。此外,傳統RVFL的平均準確率為0.76,而所提出方法的平均準確率為0.80。使用5%顯著性水平的雙樣本假設檢驗,準確率的差異在統計上是顯著的。所提出方法表現出更高的準確率并不絕對直觀。然而,一個假設是,基于密度編碼的量化可能提供了額外的正則化。
B. 量化讀出權重的影響
圖6展示了所提出方法對于獲得整數值讀出矩陣的三種考慮策略的平均準確率與上一個實驗的平均準確率的對比。所考慮的范圍是對稱的,圖中只指示了正邊界。很明顯,如果將回歸的結果(虛線)量化到很少的水平,準確率會顯著受到影響。然而,隨著水平數量的增加,準確率接近基線,得出結論,每個權重5位可以非常接近近似。使用遺傳算法(GA)優化量化的回歸結果(點劃線)當然提高了量化水平數量較少時的準確率,這與[8]中的結果一致。然而,對于大于六的量化水平數量使用GA并沒有好處。隨機GA初始化(點線)降低了準確率。
C. 有限資源情況下的性能
第三個實驗比較了在固定能量預算的情況下,所提出方法和有限精度RVFL的FPGA硬件實現。限制能量預算的想法可以看作是比較兩種方法的有界最優性[21]的直觀設置。使用了8位每神經元/權重的有限精度RVFL[8],因為它比傳統RVFL更高效。根據前一個實驗的結論,所提出方法的讀出權重分辨率被設置為5位。兩種方法都部署在ZedBoard FPGA上,并且使用Xilinx功耗估算工具估計能耗。能量預算被設置為3.2微焦耳,以反映具有典型參數的網絡。圖7展示了所提出方法(平均0.73)與有限精度RVFL(平均0.65)的準確率。使用5%顯著性水平的雙樣本假設檢驗,準確率的差異在統計上是顯著的。由于資源有限,這些值低于第一個實驗,然而,當我們的方法的性能與定點RVFL相比較時,結果是令人印象深刻的。
V. 相關工作
這一節簡要描述了相關工作。首先,對依賴隨機創建連接的神經網絡感興趣的讀者,請參閱[6]中的調查。
A. 用于所提出方法的范式
為了設計一個資源高效的RVFL算法,所提出的方法結合了兩個領域的想法。這些是從隨機計算中的基于密度的編碼和超維計算中的綁定和捆綁操作。由于這兩個都是它們自己的研究領域,這里我們只指出有助于進入這些領域的入門論文。最近的雜志文章[4]可能是隨機計算最易懂的閱讀材料。關于超維計算,最好的起點是由Kanerva撰寫的類似教程的文章[5]。
B. 資源高效的RVFL
回想一下,即使是傳統的RVFL網絡也被認為是機器學習最簡單的方法之一。這一事實解釋了為什么將RVFL網絡的資源效率推向極致的努力相當有限。這方面的最相關工作是[8],[22]。與本研究類似,這兩項工作都使用FPGA進行硬件實驗。此外,這兩項工作都依賴于有限精度實現以提高資源效率。然而,工作[22]嚴重側重于獲得讀出矩陣權重的過程,這里不是這種情況。工作[8]側重于操作階段,這里用作與所提出方法比較的基線。然而,據我們所知,以前在RVFL領域的工作都沒有專注于使用基于密度的編碼與綁定操作的組合。作為未來研究的一個重要課題,我們看到所提出方法獲得的分類性能改進的理論特征化。如前所述,一個假設是量化和基于密度的編碼提供了額外的正則化。為了朝這個方向前進,相關工作與通過添加噪聲[23]或離散化定量特征[24]來改善網絡泛化現象有關。
C. 神經網絡的簡化
最后,值得一提是,近年來,神經網絡計算架構的簡化是一個重要的研究課題。值得注意的例子包括在卷積神經網絡上評估的作品[25]、[26]、[27];引入了三元激活網絡的作品[28];以及引入了所有參數均為二進制的網絡的作品[29]。值得一提的是,與位級網絡[29]相比,所提出的基于密度的編碼不需要對輸入特征進行二值化處理,這通常會降低準確率。
VI. 結論
本文提出了一種針對隨機連接神經網絡的資源高效的全整數方法。有效獲得隱藏神經元激活的關鍵是通過在隨機計算中使用的基于密度的編碼表示輸入特征,以及使用超維計算領域的綁定和捆綁操作的結合。讀出矩陣的整數值可以通過最小損失準確度的方式獲得,例如,通過對嶺回歸解決方案進行簡單四舍五入,進而可以通過遺傳算法進行微調。實證評估在121個真實世界數據集上進行。所提出的方法比傳統的RVFL網絡展示了更高的平均準確度,同時速度快2.5倍,能耗減少十一倍(典型的FPGA網絡上的網絡)。最后,當兩個網絡都被限制在固定的能耗預算時,所提出方法的準確度顯著優于有限精度RVFL網絡。
盡管這項工作只關注了分類任務,但值得一提的是,形成隱藏層激活的方法應該被視為一種基于高維隨機投影的通用結構化表示方案,它允許直接學習復雜的非線性函數。因此,未來工作的一個有希望的方向是開發類似于這種表示的容量理論的分析理論[13],該理論將基于非線性函數的復雜性、輸入和輸出的數量以及隱藏神經元的數量和它們的分辨率來關聯近似的質量。
最后但同樣重要的是,我們推測基于密度的編碼將有助于開發其他神經網絡的資源高效版本。例如,正如最近在[30]中所展示的,對卷積神經網絡的初始層進行二值化處理可能會輕易損害其準確度。我們期望基于密度的輸入特征編碼將解決這一問題。
原文鏈接:https://arxiv.org/abs/1909.09153????
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.