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上觀看唷(內容都是一樣的)
