文章目錄
- 復雜模型侵蝕邊界(Complex Models Erode Boundaries)
- 資料依賴成本甚于代碼依賴(Data Dependencies Cost More than Code Dependencies)
- 參考文獻
這是一篇2015年提出的論文,但是我今天看還是對現實的實踐具有指導作用,本文從傳統軟體工程的技術債引出機器學習系統的技術債,并且比較了兩者不同,
不同點具體為:
傳統的軟體技術債都是代碼層面的,但是機器學習系統代碼層面、系統層面都有,
具體的比較方面如下:
復雜模型侵蝕邊界(Complex Models Erode Boundaries)
傳統的軟體開發,可以用封裝和設計模式等方法將整個工程分為多個模塊解偶,這種系統的輸入、輸出的影響是確定的,但是機器學習系統各個模塊的輸出改變,輸出是不確定的,這就造成了邊界不清晰,各部分耦合非常嚴重,主要有如下方面:
Entanglement(糾纏):
CACE principle: Changing Anything Changes Everything
這種情況是說ML system的的輸入、學習率、學習器等互相依賴的情況,比如輸入資料改變,這些組成成分也會改變,這在傳統的軟體工程中,改變是確定的,但是機器學習中卻不清楚系統的變化方向,
作者提出的改進點為:
1、隔離模型
2、直接觀測系統的預測輸出
Correction Cascades(校正級聯):
我們又一個模型A,新來一個任務,我們通過以A為輸入,來校正新任務,形成A‘,這時候A’就依賴A了,這就形成了依賴,
作者提出改進點為:
1、在A中加入相關特征,學習到新任務
2、重新訓練一個A‘
Undeclared Consumers(未宣告消費者):
這部分跟傳統的軟體工程一樣,需要通過機制知道下游消費者都有哪些,
資料依賴成本甚于代碼依賴(Data Dependencies Cost More than Code Dependencies)
這部分講我們的系統形成資料依賴的情況,主要又下面幾個方面:
Unstable Data Dependencies(不穩定的資料依賴):
我們的模型有輸入,而輸入不穩定,比如我們的模型的輸入是另一個模型的輸出,而這個模型經常在更新,這就造成了我們的輸入的不穩定性,又比如tf-idf詞表
這種情況的一個解決方案是維護一個資料依賴的版本,使用比較穩定的版本,當更新資料后,驗證過后再切換到另一個版本,
Underutilized Data Dependencies(無效的資料依賴):
這個是講有些資料對模型用處不大,而我們又依賴它,這就增加了模型的潛在風險,因為讓我們的系統依賴變復雜了,
解決辦法:
1、leave-one-feature-out evaluations,也就是踢出一個特征,看看對模型影響大不大,不大我們洗掉這個特征,這一步需要經常做,
Static Analysis of Data Dependencies(靜態資料依賴):
使用工具靜態分析資料的依賴,
參考文獻
[1] 原文,https://papers.nips.cc/paper/2015/file/86df7dcfd896fcaf2674f757a2463eba-Paper.pdf
[2] https://www.zhihu.com/question/424523708/answer/1511283545
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/231089.html
標籤:AI
上一篇:【報告分享】2020程式員人群洞察報告.pdf(附下載鏈接)
下一篇:冷啟動問題的一點嘗試LCE
