ว่าด้วยเรื่อง metrics
Metrics ที่ใช้วัดประสิทธิภาพของโมเดลนั้นมีหลากหลาย บาง metric ที่ครอบคลุมการวัดผลหลายแง่มุมอาจเข้าใจยาก รวมทั้งคำนวนก็ยากด้วย
ในหน้านี้เรารวมบทความดีดีที่อธิบาย metrics ที่พบบ่อยๆ ในแง่ของความหมายและการคำนวนครับ
Imbalance Problem
สังเกตว่า metric accuracy หรือการวัดความถูกต้องจะใช้ได้ไม่ดีในปัญหา imbalance เช่น สมมติ ในตัวอย่างสอน มี classA 1% มี classB 99% ถ้าโมเดลเราไม่ได้เรียนรู้อะไรเลย แต่ทำนาย classB ตลอดเวลา ก็จะได้ความถูกต้องถึง 99% ซึ่งทำให้เราเข้าใจผิดว่าโมเดลเราประสิทธิภาพสูง
F1 Score:
อธิบายหยาบๆ F1 Score เป็นค่าเฉลี่ย (แบบฮาร์โมนิก) ของ Precision และ Recall ใช้บ่อยในงานทางด้านการแพทย์ที่คนไข้ที่มีอาการป่วยมีจำนวนน้อยมาก (เรียก positive cases) ในขณะที่คนทั่วไปส่วนใหญ่นั้นไม่ป่วย (negative cases) จึงมีความ imbalance เป็นเรื่องธรรมชาติ
ค่า Precision จะวัดความแม่นยำว่าการที่เราทายเคสบวก กี่ครั้งนั้นถูกกี่ครั้ง
ในขณะที่ค่า Recall นั้นวัดความครอบคลุม คือเคสบวกทัังหมดที่มีในข้อมูล นั้นถูกทายถูกกี่ %
ค่า F1 ซึ่งเป็นค่าเฉลี่ยของ Precision และ Recall จึงแก้ไขปัญหาข้างต้นที่โมเดลเราทำนาย classB 100% ได้เนื่องจากในกรณีนี้ โมเดลจะมี Recall = 0% และจะได้ค่า F1 = 0% เช่นกัน
(หมายเหตุ: โดยเราต้องกำหนดให้ ClassA เป็น Positive cases ในทางปฏิบัติกรณีนี้ถ้าเรากำหนดผิดให้ ClassB เป็น Positive cases ค่า F1 ที่ได้ก็จะไม่แตกต่างจาก Accuracy ที่หลอกเราว่าได้ score เกือบ 100%)
https://en.wikipedia.org/wiki/Precision_and_recall
Matthew Correlation Coefficients (MCC):
MCC นั้นคล้ายกับ F1 Score แต่มีข้อดีตรงที่เราไม่จำเป็นต้องระบุด้วยตนเองว่า minority class คือ positive class โดยในตัวอย่างข้างต้นไม่ว่าเราจะกำหนด ClassA เป็น positive หรือ ClassB เป็น Positive และโมเดลทำนาย classB 100% ค่า MCC ที่ได้ก็จะอยู่ที่ราวๆ 0.5
www.kaggle.com/ratthachat/demythifying-matthew-correlation-coefficients-mcc
Metric ของ Object Detection Models
ในการทำความเข้าใจ Object Detection Metrics นั้นเราต้องเข้าใจ metrics ถึง 3 metrics พร้อมๆ กัน คือ Intersection over Union (IoU), Area under Precision-Recall Curve (AUC) และ Mean Average Precision (mAP)
ซึ่งในบทความนี้อธิบายได้ดีมากๆ
https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5
และดูวิธีการคำนวนอย่างละเอียดสุดๆ ได้ที่นี่ครับ
Metric ของ NLG (Natural Language Generation)
ในงานกลุ่ม NLG : Natural Language Generation เช่น Machine Translation, Conversational Bot, Summarization โมเดลจำเป็นต้องเขียนประโยคหรือหลายประโยคขึ้นมาเพื่อเทียบกับ ข้อมูลสอน
Metric มาตรฐานคือ BLEU ซึ่ง เน้นการเทียบ substrings ของ Ground truth กับประโยคที่โมเดลสร้างขึ้น , metric นี้เป็นมาตรฐานมานานนับสิบปี แต่มีจุดอ่อนสำคัญคือ ถ้าโมเดลเราเก่งเกินไป แต่งประโยคใหม่ที่ใช้คำแตกต่างจากประโยค Ground Truth มากๆ แม้จะมีความหมายเหมือนกันและประโยคถูกต้องตามหลักไวยากรณ์ ประโยคใหม่นี้จะได้ค่า BLEU ที่ต่ำเนื่องจากไม่สอดคล้องกับ substrings ใดๆ ของ Ground Truth
จุดอ่อนของ BLEU นี้สำคัญมากและทราบกันมานาน ทว่าเนื่องจากเราไม่มี metric ที่ดีกว่านี้ (นอกจากใช้มนุษย์มาให้คะแนนเอง) เราจึงใช้ BLEU มาโดยตลอด
จนกระทั่งปี 2019-2020 เรามีข้อมูลการวัดผลของมนุษย์มากเพียงพอ เราจึงสามารถสร้าง Deep Learning model ใหม่ที่มาเรียนรู้วิธีให้คะแนนแบบเดียวกับมนุษย์มันซะเลย โดยล่าสุด Deep Learning metric ชื่อว่า BLEURT (มาจาก BLEU + BERT) ได้พิสูจน์ในการทดลองแล้วว่าให้คะแนนประโยคได้ใกล้เคียงกับมนุษย์ ทั้งในแง่ไวยากรณ์และความหมาย
สามารถอ่านเพิ่มเติมได้ที่นี่ครับ
- จุดอ่อนของ BLEU : https://towardsdatascience.com/evaluating-text-output-in-nlp-bleu-at-your-own-risk-e8609665a213
- BLEURT โดย Google AI Blog : https://ai.googleblog.com/2020/05/evaluating-natural-language-generation.html
- BLEURT Github : https://github.com/google-research/bleurt/
Metric classic ของ NLG นอกจาก BLEU ยังมี ROUGE ซึ่ง
BLEU เน้น Precision ส่วน ROUGE เน้น Recall อ่านรายละเอียดที่นี่ครับ : https://stackoverflow.com/questions/38045290/text-summarization-evaluation-bleu-vs-rouge
CS 229 stanford พูดเรื่อง metric อย่างละเอียด