精選博客系列|將基於決策樹的Ensemble方法用於邊緣計算

在即將到來的邊緣計算時代,越來越需要邊緣設備執行本地快速訓練和分類的能力。事實上,無論是手機上的健康應用程序、冰箱上的傳感器還是掃地機器人上的攝像頭,由於許多原因,例如需要快速響應時間、增強安全性、數據隱私,甚至考慮到盈利能力,通常都需要進行本地計算。

無論是以什麼方式進行機器學習,對於此類設備來說,具有異構性、有限的連接和有限的硬件資源是一個持續存在的、我們必須解決的挑戰。事實上,人們經常面臨着矛盾的需求,邊緣設備必須在本地執行大量的計算、存儲和通信,同時還要遵守如有限的內存、網絡連接和計算的資源限制。這通常是由於時間或功率限制以及增加的數據和可用信息量。

這裏,我們重點討論利用基於決策樹的Ensemble方法進行計算和內存高效的本地(即設備上)訓練和分類,這是處理表格數據的實際標準。


基於決策樹的Ensemble方法

事實上,基於樹的Ensemble方法,例如隨機森林(RF)和XGBoost,由於其健壯性、易用性和泛化性,經常用於對錶格數據進行分類。反過來,分類任務通常用作許多應用域中的子例程,例如金融、欺詐檢測、醫療保健和入侵檢測。因此,這種方法的效率和精度與效用之間的權衡至關重要。

讓我們特別關注隨機森林和XGBoost,並瞭解它們的優勢:

  • 隨機森林可以說是最流行的bagging方法,它使用數據的隨機子樣本來生長每個決策樹,從而生成不同且弱相關的樹。然後,使用多數票確定分類。隨機森林有幾個優點,包括健壯性、快速訓練、處理不平衡數據集的能力、嵌入式特徵選擇、處理缺失的、分類的和連續的特徵,以及高級人工分析或法規要求的、任何時候的可解釋性。

  • XGBoost是一種著名且流行的boosting算法,它在每次迭代時都會生成一個小的決策樹(例如,具有8–32個終端節點)。每個這樣的樹都是爲了減少以前樹的錯誤分類。XGBoost分享了隨機森林的大部分優點,並且由於其可控偏差,通常可以實現更高的精度。

然而,這些方法也帶來了一些與資源相關的缺點:

  • 隨機森林往往受內存限制,分類速度較慢。此外,由於隨機森林佔用大量內存,因此通常無法部署在內存有限的邊緣設備上,而這些設備通常需要執行分類任務。

  • XGBoost模型通常比隨機森林需要更少的內存,但它們是計算密集型的,導致訓練速度較慢。

我們解決了隨機森林和XGBoost的資源消耗缺點。特別的是,我們引入了一種新的混合方法,該方法繼承了bagging和boosting方法的良好特性,具有可比較的機器學習性能,同時大大提高了資源效率。

數據集中的冗餘

衆所周知,機器學習模型的資源消耗與用於訓練的數據集的大小高度相關。因此,減少數據集大小是可取的。因此,我們想提出以下問題:

  • 數據集中的所有數據實例對於基於樹的ensemble模型的訓練是否同樣重要?

  • 如果沒有,我們應該如何在訓練期間區分數據實例以節省資源?這將如何影響分類?

事實上,數據集通常包含許多簡單的(例如90%)數據實例,因爲它們很容易識別,因此很容易分類;以及罕見或更獨特的數據實例,因此更難分類。

直觀地說,如果在培訓之前可以進行這種區分,那麼應該能夠利用這些知識來節省資源,而不會對準確性產生重大影響。其中一個想法是在培訓期間使用較少的“簡單”數據實例。面臨的挑戰是如何制定這樣的計劃,並以有效的方式這樣做。

RADE–資源高效的異常檢測模型

數據集只有兩個類,其中大多數實例是正常的或良性的(例如99%)。

RADE以以下方式利用上述觀察結果:它首先使用整個數據集構建一個小(粗粒度)模型。然後,它使用該模型對用於訓練的所有數據實例進行分類。正確分類且具有高度可信度的實例被標記爲簡單實例(通常是大多數正常實例),而所有其他實例都被標記爲困難實例(通常爲大多數異常實例)。

如圖所示,RADE引入了一種高級體系結構,只要粗粒度模型及其分類提供了有意義的分類置信水平,就可以與不同的分類模型一起使用。

直觀地說,由於粗粒度模型足以正確分類簡單的查詢,所以我們只剩下困難查詢。利用這些,我們構建了兩個專家(細粒度)模型,用於處理與粗粒度模型的分類結果有關的兩種不同情況:細粒度模型1負責(低置信度)正常分類和細粒度模型2用於(低置信度)異常分類。這些模型可能具有比粗粒度模型更大的內存佔用需求,但明顯低於基於整體的樹模型。

訓練效率

如前所述,RADE分兩個階段進行訓練。首先,使用整個數據集訓練粗粒度模型。由於我們使用的是一個小模型,所以這個訓練階段相對較快。然後,我們使用粗粒度模型對整個訓練數據集進行分類,並根據所得到的分類和置信度,生成兩個數據子集用於訓練細粒度模型。由於我們只使用訓練數據的子集(例如10%)訓練每個細粒度模型,所以這個訓練階段也相對較快。

分類效率

RADE的分類也有兩個階段。首先,根據粗粒度模型對實例進行分類。如果得到的分類置信度較高(例如0.9),則完成分類。否則,根據粗粒度模型分類結果,由其中一個細粒度模型轉發查詢以進行重新分類。這意味着RADE的分類時間等於僅由粗粒度模型提供服務的分類,以及由粗粒度和細粒度模型提供的分類時間的加權平均值。直覺上,因爲目的是爲了只通過粗粒度模型(例如90%)服務大多數查詢,平均分類時間預計將比標準的整體模型顯著改進。

Duet–資源高效的多類分類模型

RADE是爲二進制分類設計的,因此使用兩個細粒度模型。就多類分類用例而言,擴展RADE的體系結構並不是一個可擴展的解決方案,因爲它需要K類的K個細粒度模型,因此需要一個新的體系結構。

爲此,我們開發了Duet。Duet遵循RADE的原則,即使用粗粒度模型,該模型在整個數據集上經過訓練,並對簡單的查詢進行分類。然而,與RADE不同,Duet只使用單個細粒度分類器,該分類器在訓練數據集的子集上進行訓練,並對困難(低置信度)查詢進行分類。

Duet的高級體系結構如圖所示。從本質上講,它使用了兩個分類器:一個小型bagging分類器(隨機森林),提供有意義的分類置信度、受控方差和內存限制,另一個boosting分類器(XGBoost),提供受控偏差和計算限制。總的來說,與單例分類器相比,Duet引入了一種不同且通常更好的系統/機器學習性能的權衡。

Duet的主要問題是如何確定boosting分類器的訓練數據子集。

在這種情況下,使用RADE中的置信度指標是不夠的,因爲我們有一個多維問題。因此,我們使用類概率分佈向量(通過粗粒度模型)來確定實例對訓練過程的重要性。

對於六個類別的分類任務,考慮兩個具有相同(第一)分類置信度的分類結果。第一個在兩個類別上的概率(幾乎)相等(例如[0.5,0.5,0,0,0,0]),第二個在正確類別上概率較高,而在所有剩餘類別上概率低得多(例如[0.5,0.1,0.1,0.1,0.1,0.1])。顯然,第一個查詢比較困難,可能更有利於增強分類器的訓練。

爲了捕獲此屬性,我們定義了一個新的度量標準–可預測性這是由歐幾里得距離函數給出的,該函數測量得到的類概率分佈向量相對於實例的真實標籤與完美分佈向量之間的距離。完美分佈向量在正確標籤(即類)中的概率應爲1。

請注意,可預測性是訓練過的bagging分類器和訓練數據集的具體度量,因此是Duet訓練過程中的一個集成步驟。此外,使用可預測性不同於僅依賴於數據集屬性的採樣方法(例如,分層採樣,它保留了每個類的實例百分比)。

進一步的潛力

上述設計原則可能適用於其他機器學習領域。雖然Duet主要使用可預測性度量來降低訓練和分類過程的計算成本,但可以使用可預測度度量來減少訓練數據集的大小,從而降低存儲和通信成本。

此外,RADE和Duet還可能適用於分佈式學習。例如,參與方可以聯合訓練一個粗粒度模型,然後使用該模型從本地數據集中選擇子集,最後使用這些子集訓練全局細粒度模型。

這裏的挑戰是確定參與方選擇其子集的標準。例如,一種高級方法是使用安全計算來收集有關全局訓練數據的一些統計信息。這樣的統計數據可能會使每個參與者選擇更好的子集,總的來說,對於細粒度模型的分佈式訓練,這樣有更高的訓練價值。

內容來源|公衆號:VMware 中國研發中心

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章