ฉันจะใช้ LSTM ของฉันให้มากเกินไปได้หรือไม่ถ้าฉันฝึกฝนผ่านทางหน้าต่างบานเลื่อน? เหตุใดผู้คนจึงไม่ใช้ LSTM
สำหรับตัวอย่างที่ง่ายสมมติว่าเราต้องทำนายลำดับของอักขระ:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
มันไม่ดี (หรือดีกว่า) ถ้าฉันฝึก LSTM ด้วยมินิบัสต่อไปนี้:
A B C D E F G H I J K L M N, backprop, erase the cell
B C D E F G H I J K L M N O, backprop, erase the cell
.... and so on, shifting by 1 every time?
ก่อนหน้านี้ฉันมักจะฝึกฝนเป็น:
A B C D E F G H I J K L M N, backprop, erase the cell
O P Q R S T U V W X Y Z, backprop, erase the cell
แทนที่จะขยับทีละอันมันจะดีกว่าไหมถ้าเลื่อนสไลด์หน้าต่างด้วย 2 รายการแทน ฯลฯ นั่นหมายถึงอะไร (ในแง่ของความแม่นยำ / การบรรจุเกิน)?
นอกจากนี้หากฉันต้องทำตามวิธีการเลื่อนหน้าต่างในเครือข่าย Feed-forward มันจะส่งผลให้เกิดการ overfitting? ฉันจะสมมติว่าใช่เพราะเครือข่ายสัมผัสกับภูมิภาคข้อมูลเดียวกันเป็นเวลานานมาก ตัวอย่างเช่นมีการเปิดเผยE F G H I J K
เป็นเวลานาน
แก้ไข:
โปรดจำไว้ว่าสถานะเซลล์จะถูกลบระหว่างชุดการฝึกอบรมดังนั้น LSTM จะมี "ค้อนเพื่อหัว" ในเวลาเหล่านี้ ไม่สามารถจำสิ่งที่อยู่ก่อนหน้า OPQRSTUVWXYZ ซึ่งหมายความว่า LSTM ไม่สามารถเรียนรู้ได้ตลอดว่า "O" ตามด้วย "M"
ดังนั้นฉันคิดว่า (เช่นคำถามทั้งหมดของฉัน) ทำไมไม่ให้มันเป็นชุด (ซ้อนทับกัน) ระหว่าง ... และในกรณีนั้นทำไมไม่ใช้มินิบัสหลายชุดที่ทับซ้อนกัน - สำหรับฉันนี่จะให้การฝึกอบรมที่ราบรื่นขึ้น? ท้ายที่สุดนั่นหมายถึงหน้าต่างบานเลื่อนสำหรับ LSTM
ข้อมูลที่มีประโยชน์บางอย่างที่ฉันพบหลังจากคำตอบได้รับการยอมรับ:
คำแรกของการแปลภาษาอังกฤษอาจมีความสัมพันธ์อย่างมากกับคำแรกของประโยคต้นฉบับ แต่นั่นหมายความว่าตัวถอดรหัสต้องพิจารณาข้อมูลจาก 50 ขั้นตอนที่ผ่านมาและข้อมูลนั้นจะต้องถูกเข้ารหัสในเวคเตอร์ เครือข่ายประสาทที่เกิดขึ้นอีกเป็นที่รู้กันว่ามีปัญหาเกี่ยวกับการพึ่งพาระยะยาวเช่นนี้ ในทางทฤษฎีสถาปัตยกรรมเช่น LSTM ควรจะสามารถจัดการกับสิ่งนี้ได้ แต่ในทางปฏิบัติการพึ่งพาระยะยาวยังคงเป็นปัญหาอยู่
ตัวอย่างเช่นนักวิจัยพบว่าการย้อนกลับลำดับแหล่งที่มา (ป้อนกลับเข้าไปในตัวเข้ารหัส) ให้ผลลัพธ์ที่ดีขึ้นอย่างมีนัยสำคัญเพราะมันทำให้เส้นทางจากตัวถอดรหัสไปยังส่วนที่เกี่ยวข้องของตัวเข้ารหัสสั้นลง การป้อนลำดับการป้อนข้อมูลสองครั้งดูเหมือนว่าจะช่วยให้เครือข่ายจดจำสิ่งต่างๆได้ดียิ่งขึ้น ตัวอย่างเช่นหากตัวอย่างการฝึกอบรมหนึ่งรายการคือ "จอห์นกลับบ้าน" คุณจะต้องให้ "จอห์นกลับบ้านจอห์นกลับบ้าน" ไปยังเครือข่ายเป็นอินพุตเดียว
แก้ไขหลังจากยอมรับคำตอบ:
หลายเดือนต่อมาฉันมีแนวโน้มที่จะใช้วิธีการเลื่อนหน้าต่างเนื่องจากมันใช้ข้อมูลได้ดีขึ้น แต่ในกรณีนี้คุณอาจไม่ต้องการฝึก BCDEFGHIJKLMNO ทันทีหลังจาก ABCDEFGHIJKLMNO แต่ให้สลับตัวอย่างของคุณเพื่อ "แปรงเข้า" ข้อมูลทั้งหมดลงใน LSTM ของคุณอย่างสม่ำเสมอและสม่ำเสมอ ให้ HIJKLMNOPQRSTU หลังจาก ABCDEFGHIJKLMNO และอื่น ๆ ที่เกี่ยวข้องโดยตรงกับการลืมความหายนะ เช่นเคยให้ตรวจสอบการตรวจสอบและทดสอบอย่างใกล้ชิดและหยุดทันทีที่คุณเห็นข้อผิดพลาดเพิ่มขึ้นอย่างต่อเนื่อง
นอกจากนี้ยังสามารถปรับปรุงปัญหา "hammer to head" ได้โดยใช้ Synthetic Gradients ดูประโยชน์ได้ที่นี่: (คำตอบที่เชื่อมโยงกล่าวถึงประโยชน์ของการเรียงลำดับแบบยาว) /datascience//a/32425/43077