ฉันควรใช้ฟังก์ชันการสูญเสียใดเพื่อให้คะแนนโมเดล seq2seq RNN


10

ฉันกำลังทำงานผ่านกระดาษCho 2014ซึ่งนำเสนอสถาปัตยกรรมตัวเข้ารหัส - ถอดรหัสสำหรับการสร้างแบบจำลอง seq2seq

ในกระดาษพวกเขาดูเหมือนจะใช้ความน่าจะเป็นของผลลัพธ์ที่ได้รับอินพุต (หรือเป็นลบบันทึกการเกิดโอกาส) เป็นฟังก์ชั่นการสูญเสียสำหรับอินพุตของความยาวMและเอาท์พุทyของความยาวN :xMyN

P(y1,,yN|x1,,xM)=P(y1|x1,,xm)P(y2|y1,x1,,xm)P(yN|y1,,yN1,x1,,xm)

อย่างไรก็ตามฉันคิดว่าฉันพบปัญหาหลายประการกับการใช้ฟังก์ชันนี้เป็นฟังก์ชันการสูญเสีย:

  1. ดูเหมือนว่าจะถือว่าครูบังคับให้ใช้ในระหว่างการฝึกอบรม (เช่นแทนที่จะใช้ตัวถอดรหัสสำหรับตำแหน่งในการป้อนข้อมูลในการทำซ้ำครั้งถัดไปจะใช้โทเค็นที่รู้จัก
  2. มันจะไม่ลงโทษลำดับยาว ๆ เนื่องจากความน่าจะเป็นคือจากถึงNของเอาต์พุตหากตัวถอดรหัสสร้างลำดับที่ยาวกว่าทุกอย่างหลังจากNแรกจะไม่รวมการสูญเสีย1NN
  3. หากโมเดลทำนายโทเค็น End-of-String ก่อนหน้านี้ฟังก์ชั่นการสูญเสียยังต้องการขั้นตอน - ซึ่งหมายความว่าเรากำลังสร้างเอาต์พุตตาม "นานา" ที่ไม่ได้รับการฝึกฝนของโมเดล ดูเหมือนว่าเลอะเทอะN

ข้อกังวลเหล่านี้ถูกต้องหรือไม่? ถ้าเป็นเช่นนั้นมีความคืบหน้าใด ๆ ในฟังก์ชั่นการสูญเสียขั้นสูงมากขึ้น?

คำตอบ:


1

ดูเหมือนว่าจะถือว่าครูบังคับให้ใช้ในระหว่างการฝึกอบรม (เช่นแทนที่จะใช้ตัวถอดรหัสสำหรับตำแหน่งในการป้อนข้อมูลในการทำซ้ำครั้งถัดไปจะใช้โทเค็นที่รู้จัก

logP(y1,,yN)P(y)=iP(yi|y<i)x

เนื่องจากความแพร่หลายของ MLE และการขาดทางเลือกที่ดีฉันไม่คิดว่าการ "บังคับให้ครู" เป็นสิ่งที่น่ารังเกียจ

อย่างไรก็ตามมีปัญหาที่ยอมรับได้ - กล่าวคือตัวแบบกำหนดความน่าจะเป็นสูงให้กับจุดข้อมูลทั้งหมด แต่ตัวอย่างจากแบบจำลองไม่จำเป็นต้องมีแนวโน้มในการกระจายข้อมูลที่แท้จริง (ซึ่งส่งผลให้ตัวอย่าง "คุณภาพต่ำ") คุณอาจสนใจใน "Professor Forces" (Lamb et al.) ซึ่งจะช่วยลดขั้นตอนนี้ได้โดยผ่านขั้นตอนการฝึกอบรมขั้นสูงโดยไม่ต้องเลิก MLE

มันจะไม่ลงโทษลำดับยาว ๆ เนื่องจากความน่าจะเป็นคือจาก 1 ถึง N ของเอาต์พุตหากตัวถอดรหัสสร้างลำดับที่ยาวกว่าทุกอย่างหลังจาก N แรกจะไม่รวมการสูญเสีย

และ

หากโมเดลทำนายโทเค็น End-of-String ก่อนหน้านี้ฟังก์ชั่นการสูญเสียยังต้องการขั้นตอน N - ซึ่งหมายความว่าเรากำลังสร้างเอาต์พุตตาม "นานา" ที่ไม่ได้รับการฝึกฝนของโมเดล ดูเหมือนว่าเลอะเทอะ

สิ่งเหล่านี้ไม่ใช่ปัญหาที่เกิดขึ้นขณะฝึกอบรม แทนที่จะคิดว่าตัวแบบลำดับขั้นตอนแบบออโต้เทียร์เป็นขั้นตอนในการทำนายผลออกมาให้คิดว่ามันเป็นวิธีการคำนวณความน่าจะเป็นของลำดับที่กำหนด แบบจำลองไม่เคยคาดการณ์อะไรเลย - คุณสามารถลองตัวอย่างลำดับหรือโทเค็นจากการแจกแจงหรือคุณสามารถถามว่าโทเค็นถัดไปที่เป็นไปได้มากที่สุดคืออะไร - แต่สิ่งเหล่านี้แตกต่างอย่างมากจากการทำนาย ทั้ง).

ถ้าเป็นเช่นนั้นมีความคืบหน้าใด ๆ ในฟังก์ชั่นการสูญเสียขั้นสูงมากขึ้น?

อาจมีวัตถุประสงค์ที่ออกแบบมาเป็นกรณี ๆ ไปสำหรับงานการสร้างแบบจำลองที่แตกต่างกัน อย่างไรก็ตามฉันจะบอกว่า MLE ยังคงโดดเด่น - รุ่น GPT2 ล่าสุดซึ่งประสบความสำเร็จในการปฏิบัติงานที่ทันสมัยในขอบเขตที่กว้างของการสร้างแบบจำลองภาษาธรรมชาติและงานทำความเข้าใจได้รับการฝึกฝนด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.