มาเปิด Black Box : Machine Learning Model เพื่อความเข้าใจโมเดล ด้วย LIME, ELI 5 และ SHAP กันเถอะ [1]
โดยจากบทความ มาหา Feature Importance ใน Machine Leaning Model เพื่ออธิบายให้ได้แบบเซียนกันเถอะ ! เราพบว่า Feature Importances นั้นอาจแบ่งได้เป็น 2 ประเภทคือ
1. Overall feature importances (global interpretation)
2. Observation level feature importances (local interpretation)
โดยในข้อ 1 เราได้อธิบายไว้ในบทความก่อนหน้าว่า แต่กล่าวโดยสรุปแล้วคือในข้อ 1 จะเป็นการหา feature importance ที่ส่งผลต่อประสิทธิภาพโดยรวมของโมเดลนั่นเอง ดังนั้นในบทความนี้จะขอนำทุกท่านไปสู่หัวข้อ Local Interpretation
What is Observation level feature importances (local interpretation) ?
Observation level ในที่นี้หมายถึงว่า Feature ที่เราสนใจมีผลเฉพาะเจาะจงแต่ละ Observation อย่างไร เช่น หากเราสนใจว่าใน row แรกของ test set ทำไมโมเดลถึงทำนาย class 1 feature แต่ละ feature ส่งผลต่อค่าการทำนายของ “row 1” อย่างไร จะเห็นได้ว่าเป็นการหา feature importance ที่ specific มากขึ้นนั่นเอง
เอ๊ะ แล้วทำไม ผมถึงใช้ชื่อบทความว่า open the black box กันนะ ??
ก็เพราะว่าบางโมเดลนั้นมันยากที่จะเข้าใจเหลือเกินว่าเกิดอะไรขึ้นข้างในโมเดล กระบวนการเป็นอย่างไร ? ทำไมให้ผลดี๊ดี จะว่าไปก็เหมือนกับ กล่องดำ หรือ Black Box นั่นเอง ที่เราไม่ทราบว่าเกิดอะไรขึ้นข้างในบ้าง ผมจะยกตัวอย่างง่าย ๆ ดังนี้
White Box : Weaker but easy to interpret
โมเดล White box ก็คือ โมเดลที่ง่าย ๆ ไม่ซับซ้อน เราสามารถเข้าใจและอธิบายได้ว่าทำไมผลลัพธ์จึงเป็นเช่นนั้น แต่ว่าประสิทธิภาพที่ได้มาก็อาจจะแย่กว่าโมเดลแบบ Black box โดยตัวอย่างของ โมเดล White box เช่น Linear regression, Single decision tree เป็นต้น
โดยเพื่อให้เห็นภาพมากขึ้น ขอยกตัวอย่าง linear regression เพิ่มเติมหากเรามีสมการ
Y = 3*X1- 2*X2
เราจะเห็นว่าเราสามารถอธิบายได้ว่าแต่ละ Features ส่งผลต่อ Target อย่างไร ส่งผลบวกหรือลบ ? เช่นเรารู้ว่า การเพิ่ม X1 ขึ้น 1 หน่วย จะทำให้ค่า Y เพิ่มขึ้น 3 หน่วย เป็นต้น ซึ่งนำไปสู่การที่เราสามารถทำนายค่า Y ได้เลยหากค่า X เปลี่ยนไป
Black Box : More accurate but harder to interpret
โมเดล Black Box คือ โมเดลที่มีกระบวนการทำงานที่ซับซ้อนกว่าจะให้ได้ซึ่งผลลัพธ์มา ทำให้การอธิบายโมเดลว่าแต่ละ Features ส่งผลอย่างไรทำได้ยาก โดยตัวอย่างของ โมเดล Black box เช่น Neural networks และ Ensemble models (random forest, boosting, etc…) เป็นต้น โดยจากรูปที่ 1 จะเห็นว่าการอธิบายว่า Feature ส่งผลอย่างไรต่อผลลัพธ์ตอนสุดท้าย อธิบายได้ค่อนข้างยากทีเดียว
ดังนั้นโดยสรุปแล้วความต่างของ White Box และ Black Box จะเป็นไปตามรูปที่ 2 ด้านล่าง
แต่สรุปแล้วเราควรใช้แค่ โมเดลที่ง่าย ๆ เพราะว่าเราจะอธิบายได้อย่างงั้นหรอ ??
คำตอบก็คือ No !! เพราะว่าสมัยนี้ได้มีการพัฒนา Model interpretation techniques ขึ้นมามากมาย หรือก็คือ library ต่าง ๆ ที่สามารถเรียกใช้ เพื่ออธิบายภายใน Black box ได้นั่นเอง โดยจะขอยกตัวอย่าง 3 ประเภทดังนี้ 1. LIME 2. ELI 5 3. SHAP
1. LIME (Local Interpretable Model — Agnostic Explanations)
โดย LIME จะใช้ในการอธิบาย Single data point ว่าแต่ละ features ของ data point นี้ส่งผลอย่างไรต่อการทำนายค่า target
โดยหลักการทำงานของ LIME จะเป็นดังนี้
- เลือก observation ที่สนใจ
- สร้าง “new dataset” ขึ้นมารอบ ๆ observation ที่เราสนใจ โดย sampling จาก distribution ที่โมเดลเรียนรู้ในระหว่าง train data
- คำนวณค่า ระยะห่าง ระหว่าง new points กับ observation ที่เราสนใจ หรือก็คือการวัด Similarity
- ใช้ Model ทำนาย class ของ new points
- หาจำนวน subset ของ m features ที่มีความสัมพันธ์กันกับ target class มากที่สุด
- Fit linear model ลงบน fake data ใน m dimensions ที่ถูก weighted มาจากค่า similarity
- โดย Weights ของ linear model ที่ได้จะถูกใช้เป็นคำอธิบายของความสำคัญ features ในแต่ละโมเดลนั้น นั่นเอง
โดยข้อเสียของ LIME ก็คือ ความเสถียร เนื่องจากเราใช้ random sampling ในการสร้าง new data points ขึ้นมา ดังนั้นผลอาจจะแปรปรวนได้ และ การใช้ linear model เป็นตัวไป fit อาจทำให้ไม่ค่อยแม่นยำเท่าไหร่อีกด้วย
2. ELI 5 (“Explain Like I’m 5")
โดยจากชื่อ library แล้ว เราก็น่าจะทราบว่าน่าจะเป็น library ที่ใช้ง่ายและเข้าใจง่ายเป็นแน่แท้ ให้อธิบายเหมือนเราอายุ 5 ขวบ !! โดยมาดูคำสั่งหลัก ๆ ที่ ELI 5 ใช้กันเลย โดย eli 5 สามารถใช้อธิบายได้ทั้ง global และ local interpretation โดยจะขอยกตัวอย่างจากข้อมูล wine dataset จากบทความที่แล้ว มาหา Feature Importance ใน Machine Leaning Model เพื่ออธิบายให้ได้แบบเซียนกันเถอะ !
- ใช้คำสั่ง
eli5.show_weights()
เพื่อแสดง feature importances ดังนี้
โดยคำสั่งนี้ก็จะเป็นการหา feature importances ระดับ global นั่นเอง โดยหลักการหาก็จะเป็นการพิจารณาจากค่า ‘Gain’ เหมือน default ของ .feature_importances_
ทั่วไปนั่นเอง ดังนั้นจะเห็นได้ว่า ค่าที่แสดง แสดงเพียงแค่แต่ละ features มีความสำคัญมากน้อยขนาดไหน แต่ไม่ได้แสดงว่าส่งผล positive หรือ negative ต่อ target อย่างไรนั่นเอง
2. ELI 5 Permutation Models
โดยอันนี้ก็จะเป็นการพูดต่อจากบทความที่แล้วเรื่อง Permutation feature importances โดยเป็นการหา feature importances ระดับ global
โดยจะเป็นการหาความสำคัญของ feature โดยการ สุ่มและสลับ (random re-shuffling) ของแต่ละ features เพื่อดูว่าหากไม่มี feature นี้ จะส่งผลต่อ model performance อย่างไรนั่นเอง โดย feature ที่สำคัญก็คือ feature ที่เมื่อนำออกไปแล้วทำให้ค่า error สูงขึ้นหรือมีค่า accuracy ต่ำลงนั่นเอง
โดยเราจะเห็นว่าค่าในช่อง weight นั้นประกอบด้วยตัวเลขสองชุด โดยชุดแรกคือค่าเฉลี่ยของความสำคัญของ feature และตัวเลขหลังเครื่องหมายบวกลบ คือค่า standard deviation นั่นเอง
ข้อควรรู้ในการใช้ eli 5 ในการหา Permutation feature importances คือ
- การคำนวณ permutation importances จะถูกคำนวณหลังจากเรา fit model กับ train set แล้ว
- เราจะคำนวณ Permutation importances กับ Test set data (validation data) เพื่อหลีกเลี่ยงการเกิด overfitting ของโมเดล
3. Observation level feature importances by ELI 5
ELI 5 ยังสามารถใช้เพื่ออธิบายระดับ local หรือ observation ได้อีกด้วย เพื่อดูว่าตัวแปรอะไรส่งผลมากน้อยแค่ไหนต่อการทำนายในระดับ observation นั้น
โดยจากรูปที่ 5 ด้านล่าง จะเป็นการสนใจข้อมูลแถวที่ 1 ของ test set ว่าหากโมเดลเราทำนาย test data นี้ จะทำนายอะไร และ feature ไหนสำคัญบ้างในการทำนายนี้
จากรูปจะเห็นว่ามีค่าแปลก ๆ ปรากฎขึ้นมาใน column feature ซึ่งก็คือคำที่เขียนว่า <BIAS> โดยค่า BIAS นี้ก็คือ expected average score ที่เป็น output ของโมเดลโดยมี basis มาจาก distribution ของ training set นั่นเอง
3. SHAP Values
SHAP ย่อมาจาก SHapley Additive exPlanations โดยค่า feature importances ใน SHAP จะถูกคำนวณมาจากค่า Shapley values ที่มีจุดกำเนิดจาก game thoery นั่นเอง
โดยเพื่อไม่ให้บทความนี้ยาวจนเกินไปและเพื่อไม่ให้ผู้อ่านเบื่อไปเสียก่อน จึงจะขอแยก SHAP values ไว้ใน part 2 ต่อไป อ่านได้จาก มาเปิด Black Box : Machine Learning Model เพื่อความเข้าใจโมเดล ด้วย LIME, ELI 5 และ SHAP กันเถอะ [2]
Reference :
[1] https://speakerdeck.com/klemag/pydata-nyc-2018-open-the-black-box-an-introduction-to-model-interpretability-with-lime-and-shap
[2] https://medium.com/analytics-vidhya/why-should-i-trust-your-model-bdda6be94c6f
[3] Explain Your Model with the SHAP Values | by Dr. Dataman | Towards Data Science
บทความนี้ได้รับการสนับสนุนจากบริษัท Knowledge Discovery Co., Ltd.