Contents
來自Soft & Share 資料分析與機械學習版主ricky的分享
LIME的觀念簡介
LIME是【Local Interpretable Model-Agnostic Explanations】的縮寫,不負責任翻譯就是【局部可理解的模型無關解釋法】先不要管這些複雜的名詞,先來理解LIME是如何解釋機器學習模型。
當你在建立了一個機器學習模型,為了預測你的資料未來走勢,輸入資料維度有20-30個,中間經過1000個權重加權計算,最後輸出一組對未來資料的預測值,你憑什麼相信你的模型預測是有道理的呢?
當然你可以去深究那1000個權重,看看到底預測結果是最依賴哪幾個維度的資料組合計算而得,但是那會很崩潰!當然重點不是崩潰,重點是你有先射箭(先建模)再畫靶(再解釋)的嫌疑。
不深入模型內部,我又想要能解釋模型,首先你可以採【模型無關解釋法】什麼意思呢?簡單講就是不深入模型內部,但是嘗試帶一些不一樣的輸入資料,去觀察輸出結果。
如果你的輸入資料簡單,輸出結果也容易理解,你大概帶幾個不一樣的輸入資料,就能很容易看出輸出結果的變化情況,這裡你可以借用一些穩健性分析的訣竅,或是統計檢驗來驗證你對輸出結果解釋的假設。
BUT!就是這個BUT!如果你已經假設輸入和輸出結果之間有很複雜的交錯關係,或是你對於輸入資料和輸出資料的掌握程度還不足,模型無關解釋法對你根本沒用,況且,如果能透過模型無關解釋法就解釋出來,你也可能可以考慮不要用機器學習模型了,用一般統計或分析方法就可以了。
【局部可理解】就是一種折衷,我們還是不要放棄自己對於資料局部特性還是具有人類基本判斷力的!因此,若我們可以隨機挑幾筆輸入資料,把該筆輸入資料的幾個維度的數值做一點微調擾動(而這個擾動是你能理解的),產生幾個新的輸入資料(這些新資料是局部性的)帶入你的模型來觀察輸出結果(模型無關的解釋法)。
這整個流程就是【局部的新資料+可理解的擾動+帶入觀察輸出的模型無關解釋】就是LIME的核心觀念,這個觀念適合用在模型識別中的誤差分析,以及如果你要發展出一套複合模型時能加強模型穩定性的方法。
盡量寫得科普,沒帶太多術語,有興趣的人可以閱讀原始文章:“Why Should I Trust You?” Explaining the Predictions of Any Classifier
Question : 建立資料模型通常要用那些工具?
基本上需要使用機器學習的問題是幾個類型,這幾個類型分別對應我自己喜歡使用的工具如下(牽涉主觀成分XD):
- 資料總結-資料視覺化
- 資料細分-聚類分析
- 資料描述-歸結推理、進階:基因規劃法
- 資料分類-K平均法、進階:支援向量機
- 資料預測-類神經網路
- 資料關聯-統計分析、進階:貝氏網路
沒有一定~至於在語言上我自己因為工作關係主要是用Matlab+Python ,形式主要都是以Web-based為主,資料庫我最近在用一個新的MLDB(https://mldb.ai/)
題外話一點個人偏見XD,因為之前我有一兩個小小intern一起幹活,認識一些做機器學習的研究生,通常學長姊一路下來在解決的問題都蠻單一的,例如醫學院大部分就是做醫學影像辨識、或是生理訊號處理,而工科大部分在這方面專長的就是影像辨識、專家系統;如果是有處理過比較多跨領域問題的,那多數都是統計背景,則是較喜愛使用統計方法再搭配一些作業研究訣竅,這則是很考驗你對資料的預處理。
Soft & Share目前有經營 FB團購社群 歡迎加入社群.
喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給您的社群朋友吧!
發表迴響