本公開大體上涉及機器學習領域,并且涉及一種通過無線連接的分布式推演方法和系統。
背景技術:
1、機器學習(machine?learning,ml)和深度學習(deep?learning,dl)在圖像分類、計算機視覺和自然語言處理等各種具有挑戰性的應用中取得了突破性進展。
2、然而,為了支持ml任務而部署的dl模型通常對資源要求很高,大型dl模型很容易耗費能源和時間。因此,如今的標準做法是依靠云計算來提供這些服務。例如,當邊緣設備需要對數據樣本執行ml任務(例如,推演、預測)時,該邊緣設備會將該樣本發送到云服務器,在云服務器上由強大的大型dl模型進行處理,然后將該模型的輸出返回給邊緣設備。
3、由于無線信道的動態特性,在無線連接到云端的邊緣設備上執行ml任務的新興需求帶來了新的挑戰,并且產生了推演應該在云端(遠程推演)還是在移動設備上(本地推演)進行的問題。移動設備上的本地推演避免了向云端進行往返無線傳輸,從而實現了低延遲。然而,在能源受限的設備中部署大型模型是不切實際的(電池也會很快耗盡),因此本地推演可能會降低預測精度。云服務器上的遠程推演能夠支持規模顯著更大的dl模型,但代價是響應延遲增加。由于信道條件的動態性,這在無線網絡中變得尤為重要。不僅推演時間是隨機的且可能很長,而且如果信道條件不好,傳輸也可能非常耗能。由于這兩種方法都有明顯的缺點,分布式推演應運而生,成為一種有前景的中間且靈活的方法,在分布式推演中,深度神經網絡(deep?neural?network,dnn)被分成邊緣設備的本地層和云服務器的遠程層。一個重要的點是,該設備具備基于自身提供輸出預測的能力,該能力稱為本地推演(local?exit)。
4、在推演過程中,對于每個新的數據樣本x,都需要決定是否應該使用完整dnn(本地層和遠程層)將預測卸載到云端,或者本地硬件是否足以在本地推演中提供良好的結果。如果選擇本地推演,則只執行本地模型,最終推演結果就是本地預測;沒有任何比特通過無線信道發送到云服務器,也不知道如果使用了所有dnn層可能會發生什么。在其它情況下,樣本首先經過本地層,然后,通過無線信道向云服務器發送樣本的其中一個dnn層的輸出,該輸出在云服務器中用作云端的dnn層的輸入。完整dnn的遠程推演結果再次通過無線信道返回給邊緣設備。
5、盡管這種設置具有靈活性和實用性,但仍然有一些關鍵問題需要解決。首先,應該訓練dnn,以便在其所有推演中都能提供良好/相關的輸出。由于設備和云服務器可能相距甚遠,因此既可以使用集中式訓練,又可以使用分布式訓練。其次,邊緣設備需要為每個樣本做出卸載決策,而這只能依靠邊緣設備的本地層及其輸出。第三,做出卸載決策必須與應用無關,以便能夠處理各種任務,等等。分布式dnn設置中出現的一個問題是,表征本地推演的質量(以及因此決定是否應該使用遠程層)的標準方法是其不確定性。盡管如此,預測熵的概念(使用不同類別的概率質量來表示不確定性)適用于圖像分類,但不適用于時間序列問題,一般而言也不適用于回歸問題。
技術實現思路
1、本公開的目的是克服這些和其它缺點。
2、上述和其它目的通過獨立權利要求的特征來實現。其它實現方式在從屬權利要求、說明書和附圖中是顯而易見的。
3、根據第一方面,提供了一種分布式推演方法。所述方法包括:根據移動設備的第一深度神經網絡(deep?neural?network,dnn)推演函數,處理數據樣本;根據所述移動設備的第二dnn推演函數,啟動本地推演和/或遠程推演;根據所述啟動的本地推演和/或遠程推演,轉發所述處理后的數據樣本;根據所述移動設備的第三dnn推演函數和所述處理后的數據樣本,確定所述啟動的本地推演的本地推演結果;根據所述服務器設備的第四dnn推演函數和所述處理后的數據樣本,確定所述啟動的遠程推演的遠程推演結果;根據第五推演函數,提供所述啟動的本地推演和/或遠程推演的最終結果。
4、首先,在默認節能模式下,移動設備從其環境接收觀察結果,這些觀察結果有助于移動設備了解其周圍環境。這些觀察結果至關重要,因為分布式推演涉及移動設備和服務器設備之間的無線通信,而這種無線通信表現出隨機性和不可預測性。因此,移動設備可以執行操作,從而在預測精度、經歷的延遲/時延和/或能耗之間取得平衡。因此,分布式推演方法解決了動態環境條件的問題。
5、其次,在一種替代的精度模式下,可以獲得更多的(本地和遠程)預測,并且可以組合這些預測,因此原則上最終預測要優于兩個初始預測。因此,分布式推演方法可以提高預測精度。
6、第三,移動設備2的“卸載”與任務無關。由于不使用特定于問題的方面,邏輯和整體架構能夠解決任何給定的ml任務。因此,分布式推演方法適用于各種ml問題。
7、本文中使用的“深度神經網絡”可以指一種人工神經網絡架構,該架構在輸入層和輸出層之間包括多個層,并且適用于更廣泛的機器學習方法系列(稱為深度學習)。
8、本文中使用的“推演函數”可以指一種根據輸入數據樣本并基于輸入數據樣本和輸出數據樣本之間關系的模型來預測輸出數據樣本的函數。關于dnn,推演函數可以指dnn的推演階段,在這個階段中,可以根據輸入數據樣本以及輸入數據樣本和輸出數據樣本之間關系的基于dnn的模型來推演預測。基于dnn的模型通常是在dnn的前一個訓練階段中獲取到的。
9、本文中使用的“本地推演”可以指在邊緣設備(例如,移動設備)中調用推演函數,該邊緣設備在處理能力和能量存儲能力方面存在嚴格限制。本地推演的結果可以稱為“本地推演結果”。
10、本文中使用的“遠程推演”可以指調用遠程設備(例如,服務器設備)的推演函數,該遠程設備在處理能力和能量存儲能力方面的嚴格限制比邊緣設備的少。遠程推演的結果可以稱為“遠程推演結果”。
11、本文中使用的“分布式推演”可以指本地推演和遠程推演的組合。分布式推演的結果可以稱為“最終推演結果”,取決于本地推演的“本地推演結果”和遠程推演的“遠程推演結果”。
12、在一種可能的實現方式中,啟動所述本地推演和/或所述遠程推演可以包括:如果設置了(推演的)高精度指示,提供相應設置好的本地推演指示和遠程推演指示;如果未設置高精度指示,根據所述第二dnn推演函數、所述數據樣本和所述移動設備的環境的狀態,提供相應設置好的本地推演指示和遠程推演指示。
13、在一種可能的實現方式中,所述數據樣本可以包括以下之一:數字圖像,和時間序列的一部分。
14、本文中使用的“數字圖像”可以指以固定行數和列數排列一組有限數字值(例如,圖像元素或“像素”),這些數字值分別表示排列內的任何特定點(例如,行和列的交叉點)上給定顏色的亮度。
15、本文中使用的“時間序列”可以指按時間順序列出的一系列數據樣本。
16、在一種可能的實現方式中,所述移動設備的所述環境的所述狀態可以包括以下一項或多項:所述移動設備和所述服務器設備之間的無線連接的信道測量結果;所述分布式推演的負載指示。
17、本文中使用的“無線連接”可以指通過無線/無線電通信進行的至少是單向的編碼信息傳輸。例如,無線連接可以包括4g或5g蜂窩連接或wi-fi/wlan連接。
18、在一種可能的實現方式中,所述信道測量結果可以包括信道質量指示。
19、本文中使用的“信道質量指示”可以是指示通信信道質量的指示,例如,信噪比(signal-to-noise?ratio,snr)、信號干擾噪聲比(signal-to-interference?plus?noiseratio,sinr)、誤碼率(bit-error-ratio,ber)等。
20、在一種可能的實現方式中,所述負載指示可以包括以下一項或多項:所述移動設備的數據樣本隊列的隊列長度,其中,所述隊列包括所述數據樣本;所述服務器設備的狀態。例如,服務器設備的狀態可以包括服務器設備對遠程推演結果進行遠程推演成功(不成功)的指示、服務器設備3響應于通過無線連接進行數據包傳輸而做出肯定(ack)或否定(nack)確認的指示、移動設備2或服務器設備3通過無線連接進行數據包傳輸超時的指示,等等。
21、在一種可能的實現方式中,轉發所述處理后的數據樣本可以包括:如果設置了所述本地推演指示,將所述處理后的數據樣本轉發到所述移動設備的所述第三dnn推演函數。
22、在一種可能的實現方式中,轉發所述處理后的數據樣本可以包括:如果設置了所述遠程推演指示,通過無線連接向所述服務器設備發送所述處理后的數據樣本。
23、在一種可能的實現方式中,提供所述最終結果可以包括:如果未設置所述高精度指示,并且如果設置了所述本地推演指示,根據所述第五推演函數和所述本地推演的所述本地推演結果,提供所述啟動的本地推演的所述最終結果;如果未設置所述高精度指示,并且如果設置了所述遠程推演指示,根據所述第五推演函數和通過所述無線連接從所述服務器設備接收到的所述啟動的遠程推演的所述遠程推演結果,提供所述啟動的遠程推演的所述最終結果;或者如果設置了所述高精度指示,根據所述第五推演函數、所述啟動的本地推演的所述本地推演結果和通過所述無線連接從所述服務器設備接收到的所述啟動的遠程推演的所述遠程推演的所述遠程推演結果,提供所述啟動的本地推演和遠程推演的所述最終結果。
24、在一種可能的實現方式中,所述第一、第三、第四dnn推演函數可以分別包括卷積神經網絡或全連接前饋神經網絡。
25、本文中使用的“前饋神經網絡”可以指一種人工神經網絡架構,這種架構通常包括一個或多個層的循環前饋結構,其中節點之間的連接不構成循環。
26、本文中使用的“卷積神經網絡(convolutional?neural?network,cnn)”可以指一種前饋神經網絡,這種網絡最常用于分析數字圖像,通常包括一個或多個卷積層和隨后的池化層的循環結構。卷積層從數據樣本(例如,二維數字圖像)中提取特征,而池化層通過將一層中的神經元集群的輸出合并到下一層中的單個神經元來減少所提取特征的冗余。
27、在一種可能的實現方式中,所述方法還可以包括:根據監督學習,執行所述第一、第三、第四dnn推演函數的聯合訓練。
28、在一種可能的實現方式中,執行所述第一、第三、第四dnn推演函數的所述聯合訓練可以包括:根據與所述數據樣本相關聯的目標結果、所述本地推演結果和所述遠程推演結果,在一中可能的實現方式中,計算所述啟動的本地推演和遠程推演的聯合損失;根據反向傳播技術和所述聯合損失,更新所述第一、第三、第四dnn推演函數的相應權重參數。
29、在一種可能的實現方式中,計算所述聯合損失可以包括:根據與所述數據樣本相關聯的所述目標結果以及所述本地推演結果和所述遠程推演結果的平均值,計算所啟動的本地推演和遠程推演的所述聯合損失。
30、在一種可能的實現方式中,計算所述聯合損失可以包括:根據所述第一dnn推演函數的權重參數、所述第三dnn推演函數的權重參數、與所述數據樣本相關聯的目標結果以及所述本地推演結果,計算所述啟動的本地推演的所述本地推演結果的第一損失;根據所述第一dnn推演函數的所述權重參數、所述第四dnn推演函數的權重參數、與所述數據樣本相關聯的所述目標結果以及所述遠程推演結果,計算所述啟動的遠程推演的所述遠程推演結果的第二損失;根據所述第一損失和所述第二損失,計算所述啟動的本地推演和遠程推演的所述聯合損失。
31、在一種可能的實現方式中,計算所述聯合損失可以包括:根據第一損失和第二損失的線性組合,計算所述聯合損失,其中,所述線性組合可以基于所述第一損失的損失權重和所述第二損失的損失權重。
32、在一種可能的實現方式中,計算所述聯合損失可以包括:根據均方差(meansquared?error,mse)損失函數或交叉熵損失函數、所述本地推演結果、所述遠程推演結果和與所述數據樣本相關聯的所述目標結果,計算所述聯合損失。
33、在一種可能的實現方式中,所述第二dnn推演函數可以包括策略深度q網絡(deepq-network,dqn)、目標dqn和狀態轉換存儲器。所述策略dqn和所述目標dqn可以用于提供與本地推演相關聯的相應第一q值和與遠程推演相關聯的相應第二q值。所述目標dqn還可以用于每k個訓練步驟從所述策略dqn中復制權重參數。
34、在一種可能的實現方式中,所述方法還可以包括:根據強化學習(reinforcementlearning,rl),執行所述第二dnn推演函數的訓練。
35、在一種可能的實現方式中,執行所述第二dnn推演函數的所述訓練可以包括:根據所述移動設備的所述環境在執行操作之前的狀態,確定所述策略dqn的所述第一q值和所述第二q值;根據所述確定的第一q值和所述確定的第二q值中較小的一個,啟動所述本地推演或所述遠程推演;觀察以下一項或多項:從開始處理所述數據樣本到完成確定所述最終結果的延遲,對所述數據樣本隊列的所述隊列長度的懲罰,所述啟動的本地推演的所述本地推演結果的所述第一損失,以及所述啟動的遠程推演的所述遠程推演結果的所述第二損失;確定與所述啟動的本地推演或遠程推演相關聯的成本;使用元組填充所述狀態轉換存儲器,其中,所述元組包括執行所述操作之前的所述狀態、所述操作、與所述操作相關聯的所述成本和所述移動設備的所述環境在執行所述操作之后的狀態;從所述狀態轉換存儲器中抽取一批訓練樣本;根據反向傳播技術以及所述第二dnn推演函數的所述策略dqn和所述目標dqn針對所述抽取的一批訓練樣本的預測誤差,更新所述第二dnn推演函數的所述權重參數。
36、在一種可能的實現方式中,啟動所述本地推演或所述遠程推演可以包括:如果所述策略dqn的與所述本地推演相關聯的所述第一q值小于或等于所述策略dqn的與所述遠程推演相關聯的所述第二q值,啟動所述本地推演;如果所述策略dqn的與所述本地推演相關聯的所述第一q值大于所述策略dqn的與所述遠程推演相關聯的所述第二q值,啟動所述遠程推演。
37、在一種可能的實現方式中,確定與所述啟動的本地推演或遠程推演相關聯的所述成本可以包括:如果啟動了所述本地推演,根據所述第一損失、所述延遲和所述懲罰的總和,確定所述成本;如果啟動了所述遠程推演,并且如果所述狀態的變化與所述服務器設備對所述遠程推演結果的遠程推演不成功有關,根據所述延遲和所述懲罰的總和,確定所述成本;如果啟動了所述遠程推演,并且如果所述狀態的變化與所述服務器設備對所述遠程推演結果的遠程推演成功有關,根據所述第二損失、所述延遲和所述懲罰的總和,確定所述成本。
38、在一種可能的實現方式中,在所述數據樣本的生命周期內,所述環境的所述狀態可以發生一次或多次變化。
39、在一種可能的實現方式中,所述第五推演函數可以包括第五dnn推演函數,所述第五dnn推演函數包括卷積神經網絡或全連接前饋神經網絡。
40、在一種可能的實現方式中,所述方法還可以包括:根據監督學習,執行所述第五dnn推演函數的訓練。
41、在一種可能的實現方式中,執行所述第五dnn推演函數的所述訓練可以包括:根據所述第五dnn推演函數的權重參數、與所述數據樣本相關聯的所述目標結果以及所述最終結果,計算損失;根據反向傳播技術和所述損失,更新所述第五dnn推演函數的所述權重參數。
42、在一種可能的實現方式中,計算所述損失可以包括:根據所述mse損失函數、所述目標結果和所述最終結果,所述計算損失。
43、在一種可能的實現方式中,計算所述損失可以包括:根據交叉熵損失函數、所述目標結果和所述最終結果,計算所述損失。
44、根據第二方面,提供了一種分布式推演系統。所述系統包括移動設備和服務器設備,并且用于執行根據上述權利要求中任一項所述的方法。
45、根據第三方面,提供了一種計算機程序。所述計算機程序包括程序代碼,當所述程序代碼在計算機上執行時,用于執行根據第一方面或其任一種實現方式所述的方法。