在前面的部分中,我們完成了機器學習的一些實踐應用,將模型擬合到各種數據集。然而,我們從未停下來思考數據最初來自何處,或者我們最終計劃如何處理模型的輸出。很多時候,擁有數據的機器學習開發人員急于開發模型而沒有停下來考慮這些基本問題。
許多失敗的機器學習部署都可以追溯到這種模式。有時,根據測試集的準確性衡量,模型似乎表現出色,但當數據分布突然發生變化時,部署就會出現災難性的失敗。更陰險的是,有時模型的部署本身就是擾亂數據分布的催化劑。舉例來說,我們訓練了一個模型來預測誰將償還貸款與違約貸款,發現申請人選擇的鞋類與違約風險相關(牛津鞋表示還款,運動鞋表示違約)。此后,我們可能傾向于向所有穿著牛津鞋的申請人提供貸款,而拒絕所有穿著運動鞋的申請人。
在這種情況下,我們從模式識別到決策制定的考慮不周的飛躍以及我們未能批判性地考慮環境可能會產生災難性的后果。首先,一旦我們開始根據鞋類做出決定,客戶就會了解并改變他們的行為。不久之后,所有的申請者都會穿著牛津鞋,而信用度卻沒有任何同步提高。花一點時間來消化一下,因為類似的問題在機器學習的許多應用中比比皆是:通過將我們基于模型的決策引入環境,我們可能會破壞模型。
雖然我們不可能在一個部分中對這些主題進行完整的處理,但我們的目的是在此揭露一些常見的問題,并激發早期發現這些情況、減輕損害和負責任地使用機器學習所需的批判性思維。有些解決方案很簡單(要求“正確的”數據),有些在技術上很困難(實施強化學習系統),而另一些則需要我們完全走出統計預測的領域,解決有關倫理的哲學難題算法的應用。
4.7.1. 分配轉移的類型
首先,考慮到數據分布可能發生變化的各種方式以及可以采取哪些措施來挽救模型性能,我們堅持使用被動預測設置。在一個經典設置中,我們假設我們的訓練數據是從某個分布中采樣的 pS(x,y)但是我們的測試數據將由來自不同分布的未標記示例組成 pT(x,y). 我們已經必須面對一個發人深省的現實。沒有關于如何做的任何假設pS和pT相互關聯,學習一個魯棒的分類器是不可能的。
考慮一個二元分類問題,我們希望區分狗和貓。如果分布可以以任意方式移動,那么我們的設置允許輸入分布保持不變的病態情況:pS(x)=pT(x),但標簽都被翻轉了: pS(y∣x)=1?pT(y∣x). 換句話說,如果上帝可以突然決定未來所有的“貓”現在都是狗,而我們以前所說的“狗”現在是貓——投入的分配沒有任何變化p(x),那么我們就不可能將這種設置與分布根本沒有改變的設置區分開來。
幸運的是,在對我們的數據未來可能發生變化的方式的一些限制性假設下,有原則的算法可以檢測到變化,有時甚至可以即時適應,從而提高原始分類器的準確性。
評論
查看更多