ว่าด้วยเรื่อง metrics  

  RSS
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

ว่าด้วยเรื่อง 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 

https://www.kaggle.com/ratthachat/demythifying-matthew-correlation-coefficients-mcc

 

 

This topic was modified 10 months ago 3 times by The Neural Engineer
อ้างอิง
Posted : 08/06/2020 12:41 am
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

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

และดูวิธีการคำนวนอย่างละเอียดสุดๆ ได้ที่นี่ครับ

https://github.com/rafaelpadilla/Object-Detection-Metrics

This post was modified 10 months ago 3 times by The Neural Engineer
ตอบกลับอ้างอิง
Posted : 08/06/2020 12:46 am
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

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/

This post was modified 9 months ago 2 times by The Neural Engineer
ตอบกลับอ้างอิง
Posted : 19/07/2020 6:19 am
The Neural Engineer
(@neural-engineer)
Boltzmann Machine

Metric classic ของ NLG นอกจาก BLEU ยังมี ROUGE ซึ่ง

BLEU เน้น Precision ส่วน ROUGE เน้น Recall อ่านรายละเอียดที่นี่ครับ : https://stackoverflow.com/questions/38045290/text-summarization-evaluation-bleu-vs-rouge

This post was modified 8 months ago by The Neural Engineer
ตอบกลับอ้างอิง
Posted : 12/08/2020 5:14 am
Share:

Please Login or Register