友快網

導航選單

# 機器學習# # 高階統計# # 高階統計# # 機器學習模型# 第一個

你能訓練一個機器學習模型來預測你的模型的錯誤嗎?

沒有什麼能阻止你去嘗試。萬一成功了呢,對吧。

我們已經不止一次地看到這個想法了。

從表面上看,這聽起來很合理。機器學習模型也會出錯。讓我們利用這些錯誤,訓練另一個模型來預測第一個模型的錯誤!有點像“信任探測器”,基於我們的模型過去的表現。

從錯誤中學習本身就很有意義。

這種方法正是機器學習中提升技術的基礎。它在許多整合演算法中都得到了實現,如決策樹的梯度增強。對下一個模型進行訓練,以糾正前一個模型的錯誤。模型組合比單一組合效能更好。

但它能幫助我們訓練另一個模型來預測第一個模型是否正確嗎?

答案可能會令人失望。

讓我們想想例子。

訓練監督器

假設你有一個需求預測模型。當它出錯的時候,你希望能進行判斷。

你決定在第一個模型錯誤上訓練一個新模型。這到底意味著什麼?

這是一個迴歸任務,我們預測一個連續變數。一旦我們知道了實際銷售量,我們就可以計算模型誤差。我們可以選擇MAPE或RMSE。然後,我們將使用這個指標的值作為目標來訓練模型。

或者讓我們舉一個分類的例子:信貸違約的機率。

我們的貸款預測模型很可能是一種機率分類。每個客戶都會得到一個從0到100的分數,關於他們違約的可能性。在某個臨界值下,我們拒絕貸款。

總有一天,我們會知道真相。我們的一些預測可能是負面的:我們給那些仍然違約的人貸款。

但是,如果我們在沒有回顧的情況下對所有預測都採取行動,我們就永遠不會知道假陽性。如果我們錯誤地拒絕了一筆貸款,這個反饋就會留給客戶。

我們仍然可以利用我們得到的部分資訊。也許,對違約客戶的預測機率,然後訓練一個新的模型來預測類似的錯誤?

這種方案可行嗎

是的,卻又不是。

它在技術上是可行的。也就是說,你可以訓練一個模型來預測一些事情。

但如果是這樣,這意味著您應該重新訓練初始模型!

讓我們解釋一下。

為什麼機器學習模型會出錯?撇開資料質量不談,它通常是以下兩種情況之一:

模型訓練的資料中沒有足夠的訊號。或者沒有足夠的資料。總的來說,或者是針對某個失敗的特定部分。模型沒有學到任何有用的東西,現在返回一個奇怪的響應。(我們的模型不夠好。)從資料中正確捕捉訊號太簡單了。它不知道一些可能學到的東西。

在第一種情況下,模型錯誤沒有模式。因此,任何訓練“監督”模式的嘗試都將失敗。沒有什麼新東西需要學習。

在第二種情況下,你可以訓練出一個更好的模型!一個更復雜的模式,它更適合捕捉所有模式的資料。

但如果你能做到,為什麼要訓練“監督器”呢?為什麼不更新第一個模型呢?當我們第一次使用它時,它可以從同樣的現實世界反饋中學習。

用一種模式來完成所有

有可能的是,我們最初的模型並不“糟糕”。這些人可能是改變了模式的客戶,也可能是帶來新模式的一些現實世界條件。想想影響銷售和信用行為的問題。同樣的舊資料和概念漂移我們已經討論過了。

我們可以獲取關於銷售和貸款違約的新資料,並將其新增到我們的舊訓練集。

我們不會預測“錯誤”。我們將教我們的模型預測完全相同的事情。一個人拖欠貸款的可能性有多大?銷售量將是多少?但這將是一個從自身錯誤中吸取教訓的新的、更新的模式。

就是這樣!

它旁邊的“監督器”模式不會增加價值。

它只是沒有其他資料可以學習。這兩種型號使用相同的功能集,並有訪問相同的訊號。

如果一種新模式犯了錯誤,“監督器”模式也會犯錯。

一個例外可能是,如果我們不能訪問原始模型,並且不能直接對它進行再訓練。例如,它屬於第三方或根據規定是固定的。

如果我們有來自真實應用上下文和實際標籤的新資料,我們確實可以構建第二個模型。然而,這是一種人為的限制。如果我們自己要維護原始模型,那麼這樣做毫無意義。

我們能做些什麼呢?

“監督器”模式的想法並不奏效。我們還能做什麼?

讓我們從原因開始。

我們的主要目標是建立在生產中表現良好的值得信賴的模型。我們要儘量減少錯誤的預測。其中一些對我們來說可能很昂貴。

假設我們在建模方面做了我們所能做的一切,我們可以使用其他方法來確保我們的模型可靠地執行。

首先,建立一個定期監控流程。

是的,這種方法並沒有直接解決模型所犯的每個錯誤。但它建立了一種方法來維護和改善模型效能,從而在規模上最小化錯誤。

這包括透過監測輸入分佈和預測的變化來檢測資料和概念漂移的早期跡象。

第二,考慮將機器學習與好的舊規則結合起來。

如果我們更詳細地分析我們的模型行為,我們可以識別出它表現不好的地方。然後,我們可以將模型應用限制在那些我們知道模型有更多成功機會的情況下。

例如:如何在員工流失預測任務中應用這一思想。新增自定義閾值的機率分類,以平衡假陽性和假陰性錯誤。

第三,我們可以在模型輸入上新增統計檢查

在“監督器”模型中,其思想是判斷我們是否可以信任模型輸出。相反,我們可以檢測輸入資料中的異常值。目的是驗證它與模型訓練的內容有何不同。例如,如果一個特定的輸入與模型之前看到的“太不同”,我們可以傳送它進行手動檢查。

在迴歸問題中,有時你可以建立一個“監督器”模型。當您的原始模型考慮到它的符號最佳化預測誤差時,就會發生這種情況。如果第二個“監督器”模型預測的是絕對錯誤,它可能會從資料集中得到更多資訊。

但有一件事:如果它成功了,這並不能說明這個模型是“錯誤的”,也不能說明如何糾正它。相反,它是一種間接的方法來評估資料輸入的不確定性。

在實踐中,這將返回到相同的替代解決方案。我們不訓練第二個模型,而是檢查輸入資料是否屬於相同的分佈!

總結

我們都希望我們的機器學習模型表現良好,並且知道我們可以信任模型輸出。

雖然用另一種受監督的“監督器”模型來監控你的機器學習模型的樂觀想法成功的機率很低,但這種意圖本身有其優點。還有其他方法可以確保您的模型的生產質量。

其中包括構建完整的監控流程、設計自定義模型應用程式場景、檢測異常值等等。

作者:Emeli Dral

deephub翻譯組

上一篇:基於c語言的視覺與語言vilbert模型:用於多模態任務的視覺輸入模型
下一篇:眾叛親離!曾扣押華為7億物料,美國偉創力最終自提惡果!【訊息】