#分享 資料飄移(Data Distribution Shift)

Hi, 大家週日好,QQ終於放假了,補班真的心好累 --- 自上一篇介紹 #監督式學習的各種不同類型# 後, 稍微想延續著標籤以及資料的部分,不過跳到專案的比較後方, 關於模型做完之後,想讓他跑得比較穩定, 我們該如何去監控資料、模型,可能發生了什麼問題! --- 與標籤資料息息相關的就是生產環境時,不斷產生的新資料是否有產生變化,可以透過條件機率的概念去闡述是否發生變化,也可以讓機器學習系統更好地監控資料狀況,進而提早發現問題/解決問題。 --- *目錄* - 前言 - 資料飄移的類型 - 總結 --- *前言* 根據Designing ML System[1]所述:「資料飄移指的是監督式學習的一種現象,當資料隨著時間變動時,模型效能隨之下降」。 有打造機器學習模型經驗的讀者應該都知道,部屬模型在生產環境中只是機器學習應用的開始,要使它持續運行良好,必須得保持模型隨著資料去更新。而何時要更新,就需要去監控模型效能,當模型效能下降,我們必須去探究是那些原因導致。 因此這次想跟大家簡介資料飄移的類型,可以更好地去監控模型、監控資料,保障我們的機器學習應用持續運作。 --- *資料飄移的類型* 資料飄移可以用數學去更精準的表達,一般來說,監督式學習的資料可以被當作聯合分配來表示P(X, Y);而監督式學習的模型通常是給定X去預測Y,也就是P(Y|X)。 而根據上述,可以用其去拆解成各種不同資料飄移的類型: 1. Covariate shift P(X,Y) = P(X) * P(Y|X),當P(X)變動,P(Y|X)保持不變時。 舉例來說,以垃圾郵件的例子為例,假設我的購物促銷都是垃圾郵件。其P(購物促銷) = 0.4;P(垃圾郵件|購物促銷) = 0.9; 當P(購物促銷") = 0.1;P(垃圾郵件|購物促銷") = 0.9,此時就是產生了Covariate shift。 2 Label shift P(X, Y) = P(Y) * P(X|Y),當P(Y)變動,P(X|Y)保持不變時。 舉例來說,以垃圾郵件的例子為例,假設同上。 其P(垃圾郵件) = 0.3;P(購物促銷|垃圾郵件) = 0.9; 當P(垃圾郵件") = 0.1;P(購物促銷|垃圾郵件") = 0.9,此時就是產生了Label shift。 3. Concept shift P(X, Y) = P(Y|X) * P(X),當P(Y|X)變動,P(X)保持不變時。 舉例來說,以垃圾郵件的例子為例,假設同上。 其P(垃圾郵件|購物促銷) = 0.9;P(購物促銷) = 0.4; 當P(垃圾郵件|購物促銷)" = 0.7;P(購物促銷) = 0.4,此時就是產生了Concept shift。 總地來說,以上都是產生了P(X, Y)的變化,資料的分布產生了變化,因此也才叫做Data Distribution Shifts(不過這邊都是比較簡單的闡述數值不一樣就是有差異,實際上可能會用假定來確認這件事情!) --- *總結* 這次稍微介紹了資料飄移的類型,可以從機率分佈、條件機率分解出來。那如何去針對這些情況去處理,基本上可以搭配資料、模型監控、重新訓練的機制去應對。 更多的細節可以參考[1]!希望大家有新學到一些東西唷! --- *參考* - [1] Designing Machine Learning System — Chip Huyen 也可以從Medium上觀看唷(內容都是一樣的)
愛心
14
2
全部留言