avatarPCP

Summary

The web content discusses the differences and applications of MAE, MSE, and RMSE, which are metrics used to evaluate the performance of regression models, particularly in the context of machine learning.

Abstract

The article "MAE, MSE, RMSE — Consider Their Meaning for Better Model Evaluation" delves into the nuances of Mean Absolute Error (MAE), Mean Squared Error (MSE), and Root Mean Squared Error (RMSE). It explains that MAE is less sensitive to outliers due to its use of absolute values, while MSE and RMSE, which involve squaring the errors, are more sensitive to large errors. The choice of metric depends on the presence of outliers in the data and the desired emphasis on large errors. The article also cautions against comparing these metrics across models trained on different datasets and highlights the importance of understanding the implications of each metric for neural network optimization.

Opinions

  • The author suggests that MAE is more suitable when the dataset contains many outliers, as it treats all errors equally.
  • MSE and RMSE are recommended when large errors need to be penalized more heavily, as they square the errors, giving a higher weight to larger deviations.
  • When comparing models, it is crucial to use the same dataset to ensure fairness, as the number of data points can significantly affect the values of MAE, MSE, and RMSE.
  • The article implies that the choice of loss function can impact the effectiveness of gradient descent in neural network training, with MSE potentially providing a clearer path to the minimum error point compared to MAE.
  • The author emphasizes that there is no universally "best" metric; the appropriateness of MAE, MSE, or RMSE depends on the specific context and objectives of the machine learning task.

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 เปลี่ยนแปลงไปด้วย
Photo by qimono on Pixabay

เมื่อต้องการวัดค่าประสิทธิภาพ (Performance) ของโมเดลจำพวก Regression แล้ว แน่นอนว่า Loss Function ที่ถูกนึกถึงเป็นอันดับแรก ๆ คงหนีไม่พ้น MSE, RMSE หรือ MAE เป็นแน่ แม้ว่าค่าที่ใช้วัดประสิทธิภาพของโมเดลนั้นจะมีอยู่หลายค่าก็ตาม —

แต่แล้วอะไรล่ะ คือความแตกต่างของ Loss Function ทั้ง 3 ตัว..?

จุดร่วมของทั้ง 3

หากเรามีข้อมูลอยู่ชุดหนึ่งแล้วต้องการที่จะทำนาย (Predict) ค่าของข้อมูลในแกนตั้งด้วยค่าของข้อมูลในแกนนอน สิ่งที่เราต้องทำก็คือการใช้ Machine Learning มาเรียนรู้ชุดข้อมูลที่มีอยู่เดิม เพื่อหาสมการแสดงความสัมพันธ์ระหว่างค่าของข้อมูลในแกนตั้งและค่าของข้อมูลในแกนนอน โดยในที่นี้เราทราบมาว่าความสัมพันธ์ของทั้ง 2 ตัวแปรนั้นเป็นเส้นตรง (Linear) โมเดลที่ออกมาจึงมีหน้าตาดังเช่นรูปที่ 1

รูปที่ 1 รูปแสดง Linear Model ที่นำมาใช้แสดงความสัมพันธ์ของตัวแปรในแกนตั้งและแกนนอน

จะเห็นว่า หลังจากที่นำสมการเส้นตรง (Linear Model) มาพยายามอธิบายความสัมพันธ์ระหว่างตัวแปรแล้ว สิ่งที่เกิดขึ้นคือ การทำนายผลไม่ได้มีความถูกต้องแม่นยำ 100% ซึ่งเกิดได้จากหลายสาเหตุ

ดังนั้น เป้าหมายของเราจึงเป็นการพยายามหาวิธีประเมินผลว่า แล้วโมเดลไหนล่ะ มีความเหมาะสมที่สุดในการอธิบายความสัมพันธ์

แน่นอน ถ้าเราอยากรู้ว่าโมเดลไหนมีประสิทธิภาพ (Performance) ที่ดีที่สุด ก็ทำแบบง่าย ๆ เลยก็คือ ให้เอาค่าจากข้อมูลจริง (Actual) มาลบกับค่าที่โมเดลทำนาย (Predicted) ไว้ ก็จะทำให้รู้ว่าโมเดลนั้นมีความผิดพลาด (Error) เพียงใด

ซึ่งก็คือระยะห่างดังที่แสดงให้เห็นในรูปที่ 2

รูปที่ 2 รูปแสดงวิธีคำนวนค่า Error ของโมเดล

แล้วถ้าเราต้องการจะหาค่า Error เฉลี่ยของข้อมูลทุกจุดล่ะ — อะไรจะเกิดขึ้น?

หากเรานำค่า Error ของข้อมูลทุกจุดมารวมกันตรง ๆ สิ่งที่เกิดขึ้นก็คือ ค่า Error ที่ได้ อาจโดนหักล้างกันเอง เนื่องจากค่า Error ที่ได้จะมีทั้งค่าบวกและค่าลบดังรูปที่ 3

รูปที่ 3 รูปแสดงค่า Error ที่มีทั้งค่าบวกและค่าลบ

ตรงจุดนี้เอง จึงทำให้ค่า 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 รูปแสดงการเปรียบเทียบค่า MAE, MSE ระหว่างกรณีที่มีค่า Outlier กับไม่มีค่า Outlier

จากรูปที่ 4 จะเห็นว่า เมื่อมีการใช้ชุดข้อมูลที่มีค่า Outlier ที่มากขึ้นเรื่อย ๆ แนวโน้มในการเพิ่มขึ้นของค่า MSE นั้นเปลี่ยนแปลงไปมากเมื่อเทียบกับการใช้ค่า MAE

ดังนั้น หากข้อมูลมี Outlier อยู่เป็นจำนวนมากและต้องการที่จะเลี่ยงมัน การใช้ค่า MAE อาจจะเหมาะสมกว่า แต่ถ้าอยากจะนำค่า Outlier เข้ามาพิจารณาด้วยไม่ว่าจะด้วยเหตุผลใดก็ตาม การใช้ MSE หรือ RMSE ก็อาจแสดงให้เห็นถึงผลกระทบของ Outlier ที่มากกว่า

การแปลความหมาย

การแปลความหมายของค่า MAE ที่มีค่าเท่ากับ 3 นั้น สามารถทำความเข้าใจได้ตรง ๆ เลยว่า ค่าเฉลี่ยของค่า Error นั้นมีค่าเท่ากับ 3

ต่างกับค่า MSE ที่มีการนำค่า Error ไปยกกำลังสองก่อนที่จะหาค่าเฉลี่ย การที่บอกว่าค่า MSE มีค่าเท่ากับ 11 นั้นไม่สามารถบอกได้ว่า แท้จริงแล้วค่า Error นั้นมีค่าเฉลี่ยอยู่ที่เท่าไหร่ การใช้ค่า MAE จึงเหมาะสมกว่า

จำนวนของข้อมูล

คำว่าจำนวนของข้อมูลในที่นี้ ไม่ได้อยู่ในบริบทที่จะบอกว่า ข้อมูลมีมากไปหรือน้อยไปแล้วจะใช้ Loss Function เหล่านี้ไม่ได้ แต่จะอยู่ในบริบทของการเปรียบเทียบค่า MAE, MSE และ RMSE ในการใช้งานจริง

กล่าวคือ หากมีการนำโมเดลไปใช้ในงานจริงแล้ว เรามักจะมีการเปรียบเทียบโมเดลก่อนหน้าด้วยโมเดลปัจจุบันเสมอเพื่อที่จะตัดสินใจว่า จะใช้โมเดลใหม่ดีหรือไม่

โดยวิธีการเปรียบเทียบก็คือ เรามักจะนำค่า MAE, MSE หรือ RMSE ค่าใดค่าหนึ่งจากโมเดลเก่าและโมเดลใหม่มาวางคู่กันแล้วบอกว่า โมเดลไหนดีกว่ากัน ซึ่งเป็นสิ่งที่ควรระวังอย่างยิ่ง เนื่องจากสูตรคำนวนค่า Error นั้นจะมีค่า n หรือจำนวนของข้อมูลมาเกี่ยวข้องด้วย

ตัวอย่างที่สุดโต่งเกี่ยวกับกรณีนี้คือ หากนำโมเดลหนึ่ง ไปเรียนรู้ข้อมูลชุดหนึ่งที่มีจำนวนข้อมูล 5 จุด ส่วนอีกโมเดลหนึ่ง ถูกนำไปเรียนรู้ด้วยข้อมูลอีกชุดหนึ่ง ที่มีจำนวนข้อมูล 6 จุด

ผลปรากฎว่าโมเดลทั้ง 2 โมเดลนั้นทำงานได้ดีมาก ค่า Error ของแต่ละจุดนั้นเป็น 0 เกือบทั้งหมด ยกเว้นเพียงแค่จุดสุดท้ายจุดเดียว โดยที่จุดนั้นจะมีค่า Error เป็น 5 เหมือนกันทั้งสองโมเดล ดังรูปที่ 5

รูปที่ 5 รูปแสดงการเปรียบเทียบผลกระทบของจำนวนของข้อมูลที่มีไม่เท่ากัน

จะเห็นว่า หากนำค่า MAE, MSE หรือกระทั่งค่า RMSE ของแต่ละโมเดลไปเปรียบเทียบกันนั้นไม่ใช่สิ่งที่ดีนักถ้าจำนวนของข้อมูลมีไม่เท่ากัน ซึ่งถ้าเป็นไปได้ ก็ควรเอาข้อมูลชุดเดียวกันมาใช้ในการเปรียบเทียบเพื่อลดผลกระทบของกรณีที่อาจเกิดขึ้นได้แบบนี้

การใช้กับ Neural Network

การเลือก Loss Function ที่เหมาะสมไปใช้ใน Neural Network นั้น มีส่วนที่ทำให้ค่า Error ของโมเดลลดน้อยลงจนถึงจุดที่มีค่า Error ที่ต่ำที่สุด (Minimum Point) ได้ดียิ่งขึ้นด้วย ดังเช่นรูปที่ 6

รูปที่ 6 รูปแสดงการใช้ Gradient Descent กับ Loss Function โดยที่ซ้ายมือคือค่า MAE และขวามือคือค่า MSE Credit: https://heartbeat.fritz.ai/5-regression-loss-functions-all-machine-learners-should-know-4fb140e9d4b0

สาเหตุที่ Loss Function ในที่นี้มีผลก็เพราะการใช้ Gradient Descent ในการหาจุดที่มีค่า Error ที่ต่ำที่สุดนั้น จำเป็นต้องใช้ผลต่างของค่า Error ณ ขณะใดขณะหนึ่ง (ซึ่งดูได้จากความชันของกราฟ) มาช่วยในการอัพเดตค่าพารามิเตอร์ของสมการตลอดเวลา การที่มีผลต่างของค่า Error แบบเท่า ๆ กันไปตลอดอย่างการใช้ค่า MAE จะทำให้ค่าพารามิเตอร์ที่อัพเดตนั้นเปลี่ยนแปลงไปแบบคงที่จนเป็นผลให้สุดท้ายแล้วพารามิเตอร์ที่กำลังหาค่านั้นไม่สามารถอยู่ตรงจุดที่มีค่า Error ที่ต่ำที่สุดได้ หรือก็คือก้าวเท้าเลยไปอีกฟากหนึ่งดังรูปซ้ายมือของรูปที่ 6

กลับกัน หากเป็นค่า MSE นั้น (รูปขวามือ) ผลต่างของค่า Error จะเปลี่ยนแปลงไปเรื่อย ๆ หากมีแนวโน้มที่จะหาจุดที่มีค่า Error ที่ต่ำที่สุดเจอนั้น ผลต่างของค่า Error ก็จะค่อย ๆ ลดน้อยลง คือยิ่งใกล้จุดที่ต่ำสุด ก็ยิ่งระวังในการเดินเข้าหา จึงทำให้ Loss Function นี้เหมาะสมกับ Neural Network มากกว่า

ส่งท้าย

สุดท้ายแล้ว การเลือกใช้ Loss Function ดังข้อเปรียบเทียบที่กล่าวมาข้างต้นนั้นก็ขึ้นอยู่กับวัตถุประสงค์การใช้งานด้วย ไม่มีอันไหนดีที่สุด ไม่มีอันไหนแย่ที่สุด มีแต่ความเข้าใจใน Loss Function นั้น ๆ เท่านั้น ซึ่งหากมีการกำหนดวัตถุประสงค์เริ่มแรกที่ผิดแล้ว การพยายามหา Loss Function ที่มีข้อดีมากที่สุดก็ไม่อาจนำไปใช้งานจริงและช่วยในการตัดสินใจใด ๆ ได้เลย

Note

  • การที่ไม่ได้ทำให้ค่า Error (Actual - Predicted) กลายเป็นค่าบวกเหมือน Loss Function ทั้ง 3 ตัวนั้น ไม่ได้หมายความว่าค่าเฉลี่ยของค่า Error เป็นสิ่งที่ผิด เพราะอันที่จริงแล้วค่าเฉลี่ยของค่า Error แบบนี้สามารถเรียกได้ว่าเป็นค่า Mean Bias Error (MBE) ซึ่งก็เป็นค่าที่มีประโยชน์เช่นกัน
  • หากมีข้อผิดพลาดประการใดสามารถแนะนำโดยการเขียนความคิดเห็นไว้ข้างล่างนี้หรือส่ง e-mail มาที่ [email protected] ได้เลยครับ

Reference

Regression
Rmse
Mae
Machine Learning
Mse
Recommended from ReadMedium