Ref.: Data Dependencies
記得有句話Garbage in, garbage out嗎?Machine Learning中一直不斷的資料資料資料(input feature),這些資料只要有所變動,model也會跟著改變。預期內的改變還好,預期外的改變就很頭痛。
軟體工程寫test驗證code,機器學習verify and monitor data
Machine Learning中要持續注意哪些feature是真的需要、哪些不是這麼必要;同時也要思考加哪個feature進來可以改善、加進來後要踢掉誰比較不會有效能上的差異。還有,也要觀察沒用的feature如果巨大變動會不會造成難以想像的後果。這邊列出幾個依賴關係:
可靠性Reliability:多觀察些自己的data,看看這個資料的來源可不可靠?
Versioning:計算這些data的系統有沒有改變過?
可以用複製上層資料的方式,確認資料沒問題後再將上層資料餵進model。
必要性Necessity:新加feature後的cost是不是可以接受的?
我們會需要更好的正確性,因此加了一些可以讓正確性提高的feature。這同時會增加maintenance負擔(想想如果feature突然有問題,你是不是要去monitor他?)。
不要因為短期利益而去新增feature。
關聯性Correlation:某些feature有相當程度的正相關或負相關。
Feedback Loops:Model直接或間接被自己Training data影響,繞過來一圈影響到自己也算。
文中舉到了預測股票的model,Model A預測股票價格,Model B買賣股票。但如果Model A出了錯誤,高抬X公司股票價格,讓Model B有錯誤的訊息去買進X公司股票。如此一來大家一窩蜂跟著買X公司股票,導致Model A又input了錯誤的市場動態訊息,更高抬X公司股票。最後勢必造成一場泡沫,一場鬱金香狂熱事件
如同課後問答題問的:
可能造成Feedback Loops有: