โมเดลมาร์คอฟที่ซ่อนอยู่เทียบกับเครือข่ายประสาทเทียม


13

ปัญหาการป้อนข้อมูลตามลำดับใดที่เหมาะสมที่สุดสำหรับแต่ละปัญหา มิติข้อมูลเข้ากำหนดว่าการจับคู่แบบใดดีกว่า ปัญหาที่ต้องใช้ "หน่วยความจำที่ยาวนานกว่า" เหมาะกว่าสำหรับ LSTM RNN หรือไม่ขณะที่ปัญหาเกี่ยวกับรูปแบบอินพุตที่เป็นวงจร (ตลาดหุ้น, สภาพอากาศ) จะแก้ไขได้ง่ายขึ้นโดย HMM

ดูเหมือนว่ามีการทับซ้อนกันมากมาย ฉันอยากรู้ว่าความแตกต่างที่ลึกซึ้งนั้นมีอยู่ระหว่างสองสิ่งนี้อย่างไร


+1 แต่คำถามอาจกว้างเกินไป ... นอกจากนี้สำหรับความรู้ของฉันมันค่อนข้างแตกต่าง ..
Haitao Du

ฉันเพิ่มความกระจ่างมากขึ้น
แก้ไข

ในฐานะที่เป็นบันทึกด้านข้างคุณสามารถวาง CRF ไว้ด้านบนของ RNN เช่นgithub.com/Franck-Dernoncourt/NeuroNER
Franck Dernoncourt

คำตอบ:


8

สรุป

โมเดล Markov ที่ซ่อนอยู่ (HMM) นั้นง่ายกว่าเครือข่าย Neural Networks (RNNs) ที่เกิดขึ้นอีกมากและอาศัยสมมติฐานที่แข็งแกร่งซึ่งอาจไม่เป็นจริงเสมอไป หากสมมติฐานเป็นจริงคุณอาจเห็นประสิทธิภาพที่ดีขึ้นจาก HMM เนื่องจากมีความพิถีพิถันน้อยกว่าในการทำงาน

RNN อาจทำงานได้ดีขึ้นหากคุณมีชุดข้อมูลที่มีขนาดใหญ่มากเนื่องจากความซับซ้อนพิเศษสามารถใช้ประโยชน์จากข้อมูลในข้อมูลของคุณได้ดีขึ้น สิ่งนี้อาจเป็นจริงแม้ว่าสมมติฐานของ HMM จะเป็นจริงในกรณีของคุณ

สุดท้ายอย่า จำกัด เพียงแค่สองโมเดลสำหรับงานลำดับของคุณบางครั้งการถดถอยที่ง่ายกว่า (เช่น ARIMA) สามารถชนะได้และบางครั้งวิธีการที่ซับซ้อนอื่น ๆ เช่น Convolutional Neural Networks อาจดีที่สุด (ใช่ CNN สามารถนำไปใช้กับข้อมูลลำดับบางชนิดได้เช่นเดียวกับ RNNs)

วิธีที่ดีที่สุดที่จะรู้ว่าแบบจำลองใดดีที่สุดคือการสร้างแบบจำลองและวัดประสิทธิภาพของชุดการทดสอบที่จัดไว้

สมมติฐานที่แข็งแกร่งของ HMMs

การเปลี่ยนสถานะจะขึ้นอยู่กับสถานะปัจจุบันเท่านั้นไม่ใช่ในอดีต

สมมติฐานนี้ไม่ได้ถืออยู่ในหลายพื้นที่ที่ฉันคุ้นเคย ตัวอย่างเช่นสมมติว่าคุณกำลังพยายามทำนายทุกนาทีของวันไม่ว่าจะเป็นคนที่ตื่นหรือหลับจากข้อมูลการเคลื่อนไหว โอกาสของคนที่เปลี่ยนจากการนอนหลับเพื่อตื่นเพิ่มขึ้นอีกต่อไปคนที่อยู่ในสถานะหลับ RNN ในทางทฤษฎีสามารถเรียนรู้ความสัมพันธ์นี้และใช้ประโยชน์จากมันเพื่อความแม่นยำในการทำนายที่สูงขึ้น

คุณสามารถลองแก้ไขปัญหานี้ได้โดยการใส่สถานะก่อนหน้าเป็นคุณสมบัติหรือการกำหนดสถานะคอมโพสิต แต่ความซับซ้อนที่เพิ่มเข้ามาไม่ได้เพิ่มความแม่นยำในการทำนายของ HMM เสมอไปและมันไม่ได้ช่วยในการคำนวณได้แน่นอน

คุณต้องกำหนดจำนวนสถานะทั้งหมดล่วงหน้า

กลับไปที่ตัวอย่างการนอนหลับมันอาจปรากฏขึ้นราวกับว่ามีเพียงสองสถานะที่เราสนใจ อย่างไรก็ตามแม้ว่าเราเพียง แต่ใส่ใจเกี่ยวกับการทำนายการตื่นตัวกับการนอนหลับแบบจำลองของเราอาจได้รับประโยชน์จากการหาสถานะพิเศษเช่นการขับรถการอาบน้ำ ฯลฯ (เช่นการอาบน้ำมักมาก่อนนอน) อีกครั้ง RNN ในทางทฤษฎีสามารถเรียนรู้ความสัมพันธ์ดังกล่าวหากพบตัวอย่างที่เพียงพอ

ความยากลำบากด้วย RNNs

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

ในบางกรณีฉันพบว่ารูปแบบที่ดีที่สุดสำหรับข้อมูลตามลำดับเป็นจริงสไตล์ UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Convolutional Neural Network model เพราะง่ายกว่าและเร็วกว่าในการฝึกอบรมและสามารถ เพื่อพิจารณาบริบททั้งหมดของสัญญาณ


1

ก่อนอื่นเรามาดูความแตกต่างระหว่าง 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
เพิ่งได้ความน่าจะเป็นจากฟังก์ชั่น softmax

P(O)=ΣQP(O,Q)=ΣQP(O|Q)P(Q)Q1พี(X)=Πเสื้อ=1T1พี(xเสื้อ|x(เสื้อ-1),...,x(1))T

ถอดรหัส

โวลต์เสื้อ(J)=ม.axผม=1ยังไม่มีข้อความโวลต์เสื้อ-1(ผม)aผมJ(โอเสื้อ)P(Y1,...,YO|x1,...,xT)=Πโอ=1OP(Yโอ|Y1,...,Yโอ-1,โอ)YX

เส้นทางตัวหนา
การถอดรหัสใน HMM (รูป A.10)

ส่วนถอดรหัส
การถอดรหัสใน RNN

การเรียนรู้

การเรียนรู้ใน HMM นั้นซับซ้อนกว่าใน RNN มาก ใน HMM นั้นมักจะใช้อัลกอริทึม Baum-Welch (กรณีพิเศษของอัลกอริธึมการคาดหวัง - สูงสุด) ในขณะที่ RNN มันมักจะเป็นทางลาดลาด

สำหรับคำถามย่อยของคุณ:

ปัญหาการป้อนข้อมูลตามลำดับใดที่เหมาะสมที่สุดสำหรับแต่ละปัญหา

เมื่อคุณมีข้อมูลไม่เพียงพอให้ใช้ HMM และเมื่อคุณจำเป็นต้องคำนวณความน่าจะเป็นที่แน่นอน HMM ก็จะเหมาะกว่าเช่นกัน (งานสร้างแบบจำลองการสร้างข้อมูลที่สร้างขึ้น) มิฉะนั้นคุณสามารถใช้ RNN

มิติข้อมูลเข้ากำหนดว่าการจับคู่แบบใดดีกว่า

ฉันไม่คิดอย่างนั้น แต่อาจใช้เวลานานกว่านี้ในการเรียนรู้ว่าสถานะที่ซ่อนอยู่นั้นใหญ่เกินไปหรือไม่เนื่องจากความซับซ้อนของอัลกอริทึม

ปัญหาที่ต้องใช้ "หน่วยความจำที่ยาวนานกว่า" เหมาะกว่าสำหรับ LSTM RNN หรือไม่ขณะที่ปัญหาเกี่ยวกับรูปแบบอินพุตที่เป็นวงจร (ตลาดหุ้น, สภาพอากาศ) จะแก้ไขได้ง่ายขึ้นโดย HMM

ใน HMM สถานะปัจจุบันยังได้รับผลกระทบจากสถานะก่อนหน้านี้และข้อสังเกต (โดยรัฐแม่) และคุณสามารถลองรุ่นมาร์คอฟที่ซ่อนลำดับสองสำหรับ "หน่วยความจำที่ยาวนานขึ้น"

ฉันคิดว่าคุณสามารถใช้ RNN เพื่อทำเกือบ

การอ้างอิง

  1. การประมวลผลภาษาธรรมชาติด้วยการเรียนรู้ลึก CS224N / Ling284
  2. โมเดลมาร์คอฟที่ซ่อนอยู่

แต่ในเอกสารอ้างอิงมันบอกว่า HMM มีสถานะที่ซ่อนอยู่แม้ว่าจะไม่ต่อเนื่อง?
Oleg Afanasyev

@OlegAfanasyev ใช่ ฉันคิดว่าฉันผิด แต่ฉันจะกลับมาที่คำตอบนี้ในภายหลัง
Lerner Zhang

สิ่งนี้ได้รับการแก้ไขแล้วหรือยัง?
GENIVI-LEARNER

1
@ GENIVI-LEARNER ฉันได้เขียนคำตอบใหม่และหวังว่าจะเป็นประโยชน์สำหรับคุณและหวังว่าคุณจะให้คำแนะนำกับฉันเกี่ยวกับวิธีทำให้ดีขึ้น
Lerner Zhang

0

ฉันพบคำถามนี้เพราะฉันสงสัยเกี่ยวกับความเหมือนและความแตกต่างของพวกเขาเช่นกัน ฉันคิดว่ามันสำคัญมากที่ต้องระบุว่า Hidden Markov Models (HMMs) ไม่มีอินพุตและเอาต์พุตในแง่ที่เข้มงวดที่สุด

HMM เป็นโมเดลที่เรียกว่าgenerativeหากคุณมี HMM คุณสามารถสร้างข้อสังเกตจากมันตามที่เป็นอยู่ นี่คือพื้นฐานที่แตกต่างจาก RNNs แม้ว่าคุณจะมี RNN ที่ผ่านการฝึกอบรมแล้วก็ตาม

ตัวอย่างการปฏิบัติที่สำคัญคือการสังเคราะห์เสียงพูด สถานะซ่อนมาร์คอฟพื้นฐานเป็นโทรศัพท์และเหตุการณ์ความน่าจะเป็นที่ปล่อยออกมาคืออะคูสติก หากคุณมีการฝึกอบรมคำศัพท์คุณสามารถสร้างการรับรู้ต่าง ๆ ได้มากเท่าที่คุณต้องการ

แต่ด้วย RNN คุณต้องจัดเตรียมอินพุตเมล็ดอย่างน้อยเพื่อรับเอาต์พุตของคุณ คุณสามารถยืนยันว่าใน HMM คุณต้องให้การแจกแจงเริ่มต้นด้วยดังนั้นมันจึงคล้ายกัน แต่ถ้าเรายึดติดกับตัวอย่างการสังเคราะห์เสียงพูดไม่ใช่เพราะการกระจายเริ่มต้นจะได้รับการแก้ไข (เริ่มจากโทรศัพท์แรกของคำทุกครั้ง)

ด้วย RNNs คุณจะได้รับลำดับเอาต์พุตที่กำหนดไว้สำหรับโมเดลที่ได้รับการฝึกอบรมหากคุณใช้เมล็ดพันธุ์อินพุตเดียวกันตลอดเวลา ด้วย HMM คุณจะไม่ทำเช่นนั้นเพราะช่วงการเปลี่ยนภาพและการปล่อยตัวอย่างจะถูกสุ่มจากการแจกแจงความน่าจะเป็นเสมอ

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