Loss Function คืออะไร?

Loss Function (หรือบ้างเรียกว่า Cost Function, Error Function) หากกล่าวแบบกระชับมันคือค่าหนึ่งในกระบวนการฝึกสอนโมเดล (Machine Learning, Deep Learning) โดยเป้าหมายคือการทำให้ค่านี้ลดต่ำลงให้ได้มากที่สุด เพราะยิ่งค่านี้ต่ำลงโมเดลก็จะยิ่งทำงานได้ดียิ่งขึ้น ซึ่งจริง ๆ แล้วค่า Loss Function นี้เป็นฟังก์ชันคณิตศาสตร์ที่มีไว้ใช้สำหรับการทำ Optimization เป็นหลัก โดยจะทำหน้าที่รับเอาค่าของฟีเจอร์ที่มีไปคำนวณออกมาเป็นจำนวนจริง และจำนวนจริงที่ได้มานี้โดยพื้นฐานแล้วจะสื่อถึงสิ่งที่สูญเสียไปสำหรับงานนั้น ๆ (เช่น สำหรับงาน Regression ค่า Loss Function ที่เราสนใจคือค่าความต่างระหว่างค่าที่ทำนายได้กับค่าเฉลย เป็นต้น) ดังนั้นแล้วยิ่งมีสิ่งที่สูญเสียหรือต้องจ่ายน้อยเท่าไหร่ก็จะหมายความว่าโมเดลนั้นมีประสิทธิภาพยิ่งขึ้น ทั้งนี้หากโจทย์ของโมเดลเป็นงานตรงกันข้ามเราก็อาจเรียกสิ่งนี้ว่า Reward Function, Profit Function และเปลี่ยนจากลดเป็นพยายามเพิ่มค่าให้มากยิ่งขึ้นก็ได้เช่นกัน

ประเภทและความเหมาะสมของ Loss Function

Loss Function นั้นมีหลากหลายฟังก์ชันและแต่ละฟังก์ชันเองก็มีความเหมาะสมกับงานที่ต่างกันออกไป โดยส่วนใหญ่แล้วจะเป็นฟังก์ชันที่เป็น Continuous และสามารถหาอนุพันธ์ได้ (Differentiable)
สำหรับใน Deep Learning ขอยกตัวอย่างเช่น

งานด้าน Regression

L1 Loss หรือ Mean Absolute Error (MAE)
ใช้สำหรับวัดค่าความคลาดเคลื่อนระหว่างค่าที่โมเดลทำนายได้กับค่าเฉลยและเฉลี่ยกันทั้งชุดข้อมูล
ข้อดีคือ ใช้งานง่าย ค่าที่ได้อยู่ในหน่วยเดียวกันกับค่าทำนาย และทนทานต่อ Outlier
ข้อเสียคือ ค่าจากฟังก์ชันไม่สามารถนำมาหาอนุพันธ์ได้ในทันทีส่งผลให้ไม่สามารถทำ Gradient Descent เพื่อ Optimize ได้จึงจะต้องเสียเวลาแปลงค่ามันก่อน

L2 Loss หรือ Mean Squared Error (MSE)
เช่นเดียวกับ L1 แต่ต่างกันที่ L1 นั้นทำ Absolute กับผลต่าง แต่ L2 ทำยกกำลังสองกับผลต่าง ดังนั้น
ข้อดีคือ ใช้งานง่ายและสะดวกเช่นกัน สามารถหาอนุพันธ์ได้ มี Local Minimum เพียงค่าเดียว
ข้อเสียคือ ไม่ทนทานเมื่อเจอ Outlier และหน่วยที่ได้จากการยกกำลังสองนั้นไม่สื่อความนัก

Huber Loss
เหมาะสำหรับงาน Regression ที่ต้องการความ Robust อันเนื่องมาจากข้อมูลที่มี Outlier สูง โดย Huber จะผสมเอาระหว่าง MAE และ MSE และมีเกณฑ์ในการคำนวณ
ข้อดีคือ ทนต่อ Outlier ได้ดีมาก และผสมผสานระหว่าง MAE กับ MSE
ข้อเสียหลักคือ ความซับซ้อนในการคำนวณค่า หากต้องการทำ Optimize นั้นกระบวนการฝึกสอนจะต้องมีข้อกำหนดเพิ่มขึ้นอย่างมาก

งานด้าน Classification

Binary Cross Entropy (BCE)
ใช้สำหรับงานจำแนกประเภท โดยมีแค่สองคลาสที่ต้องจำแนกและรับค่า logits จากโมเดลกับค่าเฉลยเข้ามาคำนวณ ซึ่ง Cross Entropy คือการวัดค่าส่วนต่างระหว่าง Proability Distribution ของชุดที่เป็นค่าทำนายกับชุดที่เป็นค่าเฉลย โดยแต่ละรูปแบบของ Distributions นั้นจะมีข้อมูลมากน้อยแตกต่างกันและสำหรับฟังก์ชันนี้ค่าที่ได้จะบ่งบอกว่าค่าที่ทำนายได้นี่ใกล้เคียงกับค่าจริง ๆ มากน้อยแค่ไหน
ข้อดีคือ ค่าที่ได้สามารถหาอนุพันธ์ได้
ข้อเสียคือ มี Local Minimum หลายค่า
ในกรณีที่มีหลาย Class สามารถใช้ Cross Entropy ในรูปแบบ Categorical แทนได้

และสำหรับงานอื่น ๆ ที่นอกเหนือจาก Classification และ Regression ก็ยังมี Loss Function แบบอื่น ๆ ยกตัวอย่างเช่น Connectionist Temporal Classification Loss (CTCLoss) ที่ออกแบบมาเพื่อใช้กับงานที่จำเป็นต้อง Aligment ระหว่างข้อมูลสอง Sequence ที่แตกต่างกันแต่การ Aligment นั้นเป็นเรื่องที่ยากเช่นการระบุว่า คำว่า กินราดหน้า ถูกพูดเมื่อไหร่ในไฟล์เสียง เป็นต้น ดังนั้นฟังก์ชันนี้จึงคำนวณค่า Loss ระหว่าง Continuous Time Series (Sequence 1) และ Target Sequence (Sequence 2) โดยนำเอาผลรวมทั้งหมดของความน่าจะเป็นที่เป็นไปได้ของของ Input Alignments ไปยัง Target และคิดเป็นค่า Loss โดยค่านี้สามารถหาอนุพันธ์ได้ในแต่ละ Input Node ยกตัวอย่างงานที่ใช้เช่น Automatic Speech Recognition (ASR) ถอดความไฟล์เสียงเป็นคำพูด

Conclusion

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

ที่มาและอ่านเพิ่มเติมในรายละเอียด

  • https://en.wikipedia.org/wiki/Loss_function .
  • https://www.analyticsvidhya.com/blog/2022/06/understanding-loss-function-in-deep-learning/ .
  • https://pytorch.org/docs/stable/nn.html#loss-functions .
  • https://paperswithcode.com/method/ctc-loss .
  • https://machinelearningmastery.com/cross-entropy-for-machine-learning/ .

ติดตามบทความอื่น ๆ เพิ่มเติมได้ที่ SBC Blog

LINE OA: SUBBRAIN

Facebook: SUBBRAIN

Categories: Data&IT