ก่อนอื่นเรามาดูความแตกต่างระหว่าง HMM และ RNN
จากบทความนี้: บทช่วยสอนเกี่ยวกับรุ่นมาร์คอฟที่ซ่อนอยู่และแอปพลิเคชันที่เลือกไว้ในการรู้จำเสียงเราสามารถเรียนรู้ว่า HMM ควรมีลักษณะที่เป็นปัญหาพื้นฐานสามข้อต่อไปนี้:
ปัญหาที่ 1 (ความน่าจะเป็น): ให้ HMM λ = (A, B) และลำดับการสังเกต O กำหนดความน่าจะเป็น P (O | λ)
ปัญหา 2 (ถอดรหัส): กำหนดลำดับการสังเกต O และ HMM λ = (A, B) ค้นหาลำดับสถานะซ่อนเร้นที่ดีที่สุด Q.
ปัญหา 3 (การเรียนรู้): กำหนดลำดับการสังเกต O และชุดสถานะใน HMM เรียนรู้พารามิเตอร์ HMM A และ B
เราสามารถเปรียบเทียบ HMM กับ RNN จากมุมมองทั้งสามนั้น
ความเป็นไปได้
ความน่าจะเป็นในรูป
แบบภาษาHMM (รูปภาพ A.5)ใน RNN
P( O ) = ∑QP( O , Q ) = ∑QP( O | Q ) P( Q )Q1p ( X))= ∏Tt = 11หน้า( xเสื้อ| x( t - 1 ), . . . , x( 1 ))---------------√T
ถอดรหัส
โวลต์เสื้อ( j ) = m a xยังไม่มีข้อความi = 1โวลต์t - 1( ฉัน)ฉันเจข(โอเสื้อ)P( y1, . . . , yO| x1, . . . , xT) = ∏Oo = 1P( yโอ| Y1, . . . , yo - 1, คโอ)YX
การถอดรหัสใน HMM (รูป A.10)
การถอดรหัสใน RNN
การเรียนรู้
การเรียนรู้ใน HMM นั้นซับซ้อนกว่าใน RNN มาก ใน HMM นั้นมักจะใช้อัลกอริทึม Baum-Welch (กรณีพิเศษของอัลกอริธึมการคาดหวัง - สูงสุด) ในขณะที่ RNN มันมักจะเป็นทางลาดลาด
สำหรับคำถามย่อยของคุณ:
ปัญหาการป้อนข้อมูลตามลำดับใดที่เหมาะสมที่สุดสำหรับแต่ละปัญหา
เมื่อคุณมีข้อมูลไม่เพียงพอให้ใช้ HMM และเมื่อคุณจำเป็นต้องคำนวณความน่าจะเป็นที่แน่นอน HMM ก็จะเหมาะกว่าเช่นกัน (งานสร้างแบบจำลองการสร้างข้อมูลที่สร้างขึ้น) มิฉะนั้นคุณสามารถใช้ RNN
มิติข้อมูลเข้ากำหนดว่าการจับคู่แบบใดดีกว่า
ฉันไม่คิดอย่างนั้น แต่อาจใช้เวลานานกว่านี้ในการเรียนรู้ว่าสถานะที่ซ่อนอยู่นั้นใหญ่เกินไปหรือไม่เนื่องจากความซับซ้อนของอัลกอริทึม
ปัญหาที่ต้องใช้ "หน่วยความจำที่ยาวนานกว่า" เหมาะกว่าสำหรับ LSTM RNN หรือไม่ขณะที่ปัญหาเกี่ยวกับรูปแบบอินพุตที่เป็นวงจร (ตลาดหุ้น, สภาพอากาศ) จะแก้ไขได้ง่ายขึ้นโดย HMM
ใน HMM สถานะปัจจุบันยังได้รับผลกระทบจากสถานะก่อนหน้านี้และข้อสังเกต (โดยรัฐแม่) และคุณสามารถลองรุ่นมาร์คอฟที่ซ่อนลำดับสองสำหรับ "หน่วยความจำที่ยาวนานขึ้น"
ฉันคิดว่าคุณสามารถใช้ RNN เพื่อทำเกือบ
การอ้างอิง
- การประมวลผลภาษาธรรมชาติด้วยการเรียนรู้ลึก CS224N / Ling284
- โมเดลมาร์คอฟที่ซ่อนอยู่