趙曉杰, 陳 曄
(武夷學院 a.信息技術與實驗室管理中心、數(shù)字福建旅游大數(shù)據(jù)研究所;b.資產管理處,福建 武夷山 354300)
人工智能物聯(lián)網是將人工智能技術應用于物聯(lián)網后誕生的新型網絡,能實現(xiàn)更高層次的物聯(lián)網智能系統(tǒng)[1-3].人工智能物聯(lián)網通常由許多傳感器和云服務器組成,用于收集、存儲和處理數(shù)據(jù).同時,隨著信息時代的快速發(fā)展,對人工智能物聯(lián)網系統(tǒng)中設備的數(shù)據(jù)處理和低時延通信提出了更高的要求.但是,由于傳感器數(shù)量多、體積小、計算能力有限,相互訪問和通信的能力有限,需要延長其使用壽命并盡量減少維護次數(shù).因此,如何提高傳感器節(jié)點之間的通信效率,提高整體的可服務性成為亟待解決的問題之一.為了減少人工智能模型在分布式訓練過程中引入的通信開銷,將上述問題建模為深度學習中的分布式訓練問題[4-5],提出了一種基于梯度選擇策略來降低分布式節(jié)點之間的梯度通信傳輸成本.
構建了一個由1個嵌入層(word2vec)、1個循環(huán)神經網絡層、2 個卷積層以及2個全連接層的深度學習模型,并使用TensorFlow提供的TensorBoard工具將訓練產生的日志文件可視化,得到如圖1所示的梯度分布結果,其中橫坐標軸表示梯度值,縱坐標軸表示對應梯度值的統(tǒng)計量.
圖1 模型的梯度參數(shù)分布
綜上所述,神經網絡中的梯度分布近似于正態(tài)分布.根據(jù)正態(tài)分布的性質可知,大約有68.26%的樣本落在(μ-σ,μ+σ)范圍之間.這意味著大部分梯度值是分布在0附近(即μ=0),而這些梯度參數(shù)對訓練的影響不大.但這些梯度的存在導致了冗余問題.
將梯度的分布近似為x~N(μ,σ2).根據(jù)梯度更新的特點,選擇絕對值較大的梯度值更有利于更新,對權重的影響也較大.因此,將梯度分布的(μ-3σ,μ-σ)∪(μ+σ,μ+3σ)區(qū)間作為梯度更新的重點區(qū)域,將(μ-σ,μ+σ)區(qū)間作為稀疏區(qū)域.主要從重點區(qū)域中選擇梯度值來參與更新,而僅選擇少量位于稀疏區(qū)域的梯度值參與更新.基于梯度劃分,利用信息熵來衡量梯度信息在每個區(qū)間的重要性,以此作為梯度選擇的依據(jù).
信息熵常用于衡量變量分布的不確定性,離散變量概率分布下的信息熵計算公式為[6]:
(1)
其中,正態(tài)分布的概率密度函數(shù)為:
(2)
那么正態(tài)分布的香農信息的定義為:
(3)
正態(tài)分布的信息熵實際上就是香農信息的期望,即:
(4)
由于神經網絡中的梯度值都是小數(shù),為保證信息熵為正,將式(4)重寫為:
(5)
由式(5)可知,正態(tài)分布的信息熵只與其標準差有關.
接下來,提出了一種基于信息熵的梯度閾值篩選算法來設置閾值篩選梯度.該算法的具體過程如算法1所示.
算法1 基于信息熵的梯度篩選算法
輸入:梯度集合Gl,?l∈L
輸出:閾值Tl,?l∈L
1:For l = 1 to L do
3:σl←CompSD();
4:H←CompIE();
6:S=H×γ;
7:Tl=Top-k(Gl,S);
令梯度的閾值為α,那么其對應神經網絡層的信息熵為:
(6)
其中,σα是梯度閾值所在神經網絡層的標準差.在算法中,γ是用來調整信息熵重要性的權重參數(shù).使用Top-k排序算法來選擇前S個最大的梯度,并得到相應的閾值α.
梯度的選擇過程可以表示為:
(7)
定義調度效率這一指標來衡量調度的影響和完工時間變化.如果調度期間僅使用了一種資源,相當于調度操作是按順序進行的,那么此時的完工時間是最長的,即:
U=∑φ∈ΦT(φ)
(8)
其中,T(φ)是調度操作φ所需的時間.調度操作是指從物聯(lián)網節(jié)點向服務器傳輸梯度.在實踐中,物聯(lián)網節(jié)點可以同時向服務器發(fā)送梯度,因此真實的完工時間會小于此值U.最短的完工時間可以表示為:
L=maxφ∈ΦT(φ)
(9)
對于給定的迭代,我們測量每個操作的完工時間T(φ)以及該迭代的完工時間m.將調度效率定義為E=(U-m)/(U-L),并將加速比定義為S=(U-L)/L.該算法的目標是優(yōu)先考慮那些減少網絡通信阻塞的梯度傳輸,調度算法如算法2所示.將調度操作的通信依賴φ.d定義為與調度操作直接或間接依賴的接收操作集,并采用深度優(yōu)先圖遍歷來提取通信依賴關系.調度操作的通信時間是完成該操作所需的總網絡傳輸時間φ.M.
算法2 梯度傳輸調度算法
輸入:調度關系圖G,調度操作φ∈Φ,接收操作集合R
輸出:調度操作通信時間φ.M,調度操作通信依賴關系φ.d
1:FindDep(G);
2:Forφ∈Φ do
3:φ.M← ∑r∈φ.d∩RT(r);
4:Forφ∈Φ-Rdo
5:D ←φ.d∩ R;
6:If |D| == 1 then
7:Forr∈Ddo
8:r.P ← r.P _ T(φ);
9:If |D| > 1 then
10:Forr∈Ddo
11:r.M ← min {r.M,φ.M}
圖2 通信優(yōu)化架構
將通信規(guī)劃優(yōu)化問題定義如下:
(10)
Tu是以su為源節(jié)點、Du為葉子節(jié)點的生成樹.將通信計劃定義為∪u∈VTu,相應的成本模型為t(∪u∈VTu).對于每個頂點u∈V,需要找到通信規(guī)劃Tu(即生成樹).使用最短路徑生成樹算法進行通信規(guī)劃,如算法3所示.
算法3 基于生成樹的通信規(guī)劃算法
1:For each u ∈ V do
2:N ← {su }
3:for each i in |Du | do
4:C ← WeightCal();
5:p ← dijkstra(N, D, C)
6:N ← N + p.v
7:S ← S + p.e
為了驗證本策略,搭建了實驗仿真環(huán)境,模擬神經網絡分布式訓練場景.本實驗使用的數(shù)據(jù)集為MNIST和Cifar10,訓練中使用的神經網絡模型為AlexNet和ResNet[7].模型訓練的學習率為0.005.AlexNet在MNIST數(shù)據(jù)集上的批大小為128,迭代次數(shù)為2 000;AlexNet在CIFAR10數(shù)據(jù)集上的批大小為128,迭代次數(shù)為7 000.ResNet在MNIST數(shù)據(jù)集上的批大小為128,迭代次數(shù)為4 500;ResNet在CIFAR10數(shù)據(jù)集上的批大小為128,迭代次數(shù)為9 000.
算法的收斂性是指算法經過多次迭代后,數(shù)值趨于某個值,算法的收斂性反映了算法尋找最優(yōu)解的能力.AlexNet和ResNet網絡模型在MNIST和CIFAR10數(shù)據(jù)集下的準確率分別如表1所示,其中基準算法是指使用所有梯度參與訓練的算法.從表1可以看出,提出的策略與基準算法具有相似的準確率.在訓練的過程中,雖然早期迭代有一些波動,隨著訓練步數(shù)的增加,曲線的整體波動更加穩(wěn)定.通過對算法在兩種網絡模型上的收斂性進行分析,提出的算法在相同的實驗條件下都能達到較好的收斂性.
統(tǒng)計了2種網絡模型訓練中梯度參數(shù)的數(shù)據(jù)量,并計算本策略的參數(shù)壓縮倍率,結果如表2所示.參數(shù)壓縮倍率是指模型在訓練過程中的梯度數(shù)據(jù)量與經過本策略壓縮后的梯度數(shù)據(jù)量的比.由表2可以看出,通過在2種不同的網絡模型上進行測試,算法的壓縮率隨著網絡層數(shù)的增加而增加.在AlexNet模型中,本算法可以達到29.3倍左右的壓縮率,而對于層數(shù)較多的網絡模型ResNet,可以達到37.2倍左右的壓縮率.
表1 模型訓練準確性
表2 梯度參數(shù)壓縮倍率
本研究提出了一種基于閾值劃分的梯度壓縮策略,以優(yōu)化分布式訓練的通信過程.該策略根據(jù)梯度的分布特征,通過閾值選擇參與訓練的梯度值.通過分析可知,該策略在不同的神經網絡模型訓練后都能達到正常收斂,在一定程度上減少了梯度參數(shù)的傳輸量,并保證了訓練精度和收斂性.該策略能為人工智能物聯(lián)網的理論和應用的優(yōu)化提供有用的思路.