MAE, MSE, RMSE — เลือกใช้ยังไงดีมาลองดูที่ความหมาย
ข้อเปรียบเทียบในการใช้งานของ MSE, RMSE และ MAE สำหรับโจทย์แนว Regression
TL;DR
- MAE ย่อมาจาก Mean Absolute Error : ค่านี้จะมีความอ่อนไหวกับ Outlier น้อยกว่า MSE และ RMSE เนื่องจากเป็นการนำค่า Error มาใส่ Absolute เฉย ๆ ซึ่งหากพบว่าข้อมูลมี Outlier อยู่เยอะ ค่านี้ก็อาจเหมาะสมกว่าในการนำไปใช้ประเมินประสิทธิภาพของโมเดล
- MSE ย่อมาจาก Mean Square Error : ค่านี้จะ Sensitive กับ Outlier มากเนื่องจากมีการนำค่า Error มายกกำลังสอง จึงควรระวังในการใช้งานหากข้อมูลมี Outlier เยอะ
- RMSE ย่อมาจาก Root Mean Square Error : มีคุณสมบัติที่คล้ายกับ MSE แต่มีเพิ่มเติมตรงที่จะนำ MSE มาใส่ Square Root ซึ่งอาจทำให้ตีความง่ายกว่าเนื่องจากหน่วยของค่า Error จะไม่มีเลขยกกำลัง 2 เหมือนกับ MSE
- ควรระวัง หากจะนำ Metrics ทั้งสามค่าไปใช้ในเชิงเปรียบเทียบ เนื่องจากจำนวนของข้อมูลนั้นก็มีผลทำให้ค่า RMSE และ MAE เปลี่ยนแปลงไปด้วย
เมื่อต้องการวัดค่าประสิทธิภาพ (Performance) ของโมเดลจำพวก Regression แล้ว แน่นอนว่า Loss Function ที่ถูกนึกถึงเป็นอันดับแรก ๆ คงหนีไม่พ้น MSE, RMSE หรือ MAE เป็นแน่ แม้ว่าค่าที่ใช้วัดประสิทธิภาพของโมเดลนั้นจะมีอยู่หลายค่าก็ตาม —
แต่แล้วอะไรล่ะ คือความแตกต่างของ Loss Function ทั้ง 3 ตัว..?
จุดร่วมของทั้ง 3
หากเรามีข้อมูลอยู่ชุดหนึ่งแล้วต้องการที่จะทำนาย (Predict) ค่าของข้อมูลในแกนตั้งด้วยค่าของข้อมูลในแกนนอน สิ่งที่เราต้องทำก็คือการใช้ Machine Learning มาเรียนรู้ชุดข้อมูลที่มีอยู่เดิม เพื่อหาสมการแสดงความสัมพันธ์ระหว่างค่าของข้อมูลในแกนตั้งและค่าของข้อมูลในแกนนอน โดยในที่นี้เราทราบมาว่าความสัมพันธ์ของทั้ง 2 ตัวแปรนั้นเป็นเส้นตรง (Linear) โมเดลที่ออกมาจึงมีหน้าตาดังเช่นรูปที่ 1
จะเห็นว่า หลังจากที่นำสมการเส้นตรง (Linear Model) มาพยายามอธิบายความสัมพันธ์ระหว่างตัวแปรแล้ว สิ่งที่เกิดขึ้นคือ การทำนายผลไม่ได้มีความถูกต้องแม่นยำ 100% ซึ่งเกิดได้จากหลายสาเหตุ
ดังนั้น เป้าหมายของเราจึงเป็นการพยายามหาวิธีประเมินผลว่า แล้วโมเดลไหนล่ะ มีความเหมาะสมที่สุดในการอธิบายความสัมพันธ์
แน่นอน ถ้าเราอยากรู้ว่าโมเดลไหนมีประสิทธิภาพ (Performance) ที่ดีที่สุด ก็ทำแบบง่าย ๆ เลยก็คือ ให้เอาค่าจากข้อมูลจริง (Actual) มาลบกับค่าที่โมเดลทำนาย (Predicted) ไว้ ก็จะทำให้รู้ว่าโมเดลนั้นมีความผิดพลาด (Error) เพียงใด
ซึ่งก็คือระยะห่างดังที่แสดงให้เห็นในรูปที่ 2
แล้วถ้าเราต้องการจะหาค่า Error เฉลี่ยของข้อมูลทุกจุดล่ะ — อะไรจะเกิดขึ้น?
หากเรานำค่า Error ของข้อมูลทุกจุดมารวมกันตรง ๆ สิ่งที่เกิดขึ้นก็คือ ค่า Error ที่ได้ อาจโดนหักล้างกันเอง เนื่องจากค่า Error ที่ได้จะมีทั้งค่าบวกและค่าลบดังรูปที่ 3
ตรงจุดนี้เอง จึงทำให้ค่า MAE, MSE และ RMSE เข้ามามีบทบาทสำคัญ เนื่องจากทั้ง 3 วิธีจะมีการทำให้ค่า Error กลายเป็นค่าบวกก่อนเสมอ ก่อนที่จะนำค่า Error มารวมกันและหาค่าเฉลี่ยเพื่อประเมินประสิทธิภาพ (Performance) ของโมเดลได้ โดยจะมีวิธีการดังต่อไปนี้
MAE
ย่อมาจาก Mean Absolute Error หรือเรียกอีกชื่อหนึ่งว่า L1 Loss
ค่า MAE นี้ชื่อก็บอกอยู่แล้วว่าใช้ Absolute มาช่วยทำให้ค่า Error กลายเป็นบวก สูตรคำนวนจึงเป็นการนำค่า Error มาใส่ Absolute ก่อนที่จะนำมาหาค่าเฉลี่ยของ Error
MSE
ย่อมาจาก Mean Square Error หรือเรียกอีกชื่อหนึ่งว่า L2 Loss
เช่นเดียวกัน ค่า MSE จะมีการทำให้ค่า Error กลายเป็นบวกก่อนโดยการนำค่า Error มายกกำลังสอง ก่อนที่จะนำค่า Error มาหาค่าเฉลี่ย
RMSE
ย่อมาจาก Root Mean Square Error
เป็น Loss Function ที่จะนำค่า MSE มาใส่ Square Root จึงทำให้มีคุณสมบัติที่คล้ายกับค่า MSE แต่ต่างกันตรงที่ หน่วยของค่า Error จะไม่มีเลขยกกำลังสอง จึงทำให้อ่านค่าได้ง่ายกว่า เนื่องจากหน่วยของ RMSE นั้นมีหน่วยเดียวกันกับค่าที่โมเดลทำนายไว้
Loss Function ทั้ง 3 ตัวนี้ มีค่าอยู่ตั้งแต่ 0 ไปจนถึง ∞ โดยที่จะมีหลักการพื้นฐานคือ จะสนแค่ขนาดของค่า Error เท่านั้น ไม่มีเครื่องหมายบวกหรือลบมาเกี่ยวข้อง จึงสามารถตีความได้ตรง ๆ เลยว่า ค่า Error นี้ยิ่งต่ำก็ยิ่งดี
อ่าว มันเหมือนกันขนาดนี้ แล้วจะเลือกใช้นี่ต้องดูอะไรบ้าง?
จะเลือกใช้ต้องดูอะไรบ้าง?
Outlier
หากเปรียบเทียบระหว่าง Loss Function ที่ไม่มีการยกกำลังสองอย่างค่า MAE กับ Loss Function ที่มีการยกกำลังสองอย่าง MSE และ RMSE แล้ว จะเห็นว่าการยกกำลังสองของค่า Error ส่งผลให้ค่า MSE และ RMSE เปลี่ยนแปลงไปอย่างมาก
จากรูปที่ 4 จะเห็นว่า เมื่อมีการใช้ชุดข้อมูลที่มีค่า Outlier ที่มากขึ้นเรื่อย ๆ แนวโน้มในการเพิ่มขึ้นของค่า MSE นั้นเปลี่ยนแปลงไปมากเมื่อเทียบกับการใช้ค่า MAE
ดังนั้น หากข้อมูลมี Outlier อยู่เป็นจำนวนมากและต้องการที่จะเลี่ยงมัน การใช้ค่า MAE อาจจะเหมาะสมกว่า แต่ถ้าอยากจะนำค่า Outlier เข้ามาพิจารณาด้วยไม่ว่าจะด้วยเหตุผลใดก็ตาม การใช้ MSE หรือ RMSE ก็อาจแสดงให้เห็นถึงผลกระทบของ Outlier ที่มากกว่า