ข้อกำหนดเบื้องต้นทางคณิตศาสตร์และสถิติเพื่อทำความเข้าใจตัวกรองอนุภาค?


10

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

คำแนะนำใด ๆ ที่ชื่นชมมาก!


4
สถิติแบบเบย์ (IMHO) สำคัญสำหรับเรื่องนี้ คุณไม่จำเป็นต้องรู้อะไรมากมายเพียงให้แน่ใจว่าคุณเข้าใจเงื่อนไขที่เกี่ยวข้อง (เช่นก่อนหน้าโอกาสหลัง) และวิธีที่พวกเขาเกิดขึ้นจากการสร้างแบบจำลองสมมติฐาน
Yair Daon

1
ฉันคิดว่าการอ่านเอกสารของ Doucet เป็นความคิดที่ยอดเยี่ยมเขาเป็นนักเขียนที่ดีจริงๆ ในเว็บไซต์ของเขาเขามีรายการทรัพยากรที่ครอบคลุมรวมถึงสไลด์ / การบรรยายและวิดีโอ! นอกจากนี้เขายังมีรายการที่ครอบคลุมอื่นจากเพื่อนร่วมงานคนหนึ่งของเขา
bdeonovic

คำตอบ:


9

คุณสามารถไปได้ไกลอย่างน่าตกใจด้วยแนวคิดพื้นฐานเพียงไม่กี่อย่าง สัญกรณ์การระเบิดของตัวแปร ฯลฯ ... สามารถทำให้สิ่งต่าง ๆดูซับซ้อน แต่แนวคิดหลักของการกรองอนุภาคนั้นเรียบง่ายอย่างน่าทึ่ง

ความน่าจะเป็นพื้นฐานบางอย่างที่คุณจะต้อง (และน่าจะทำได้!) เข้าใจ:

  • P(X=x)=ΣผมP(X=x,Y=Yผม)
  • P(X|Y)=P(X,Y)P(Y)
  • P(X|Y)=P(Y|X)P(X)P(Y)
  • คำศัพท์แบบเบย์: ก่อนหน้านี้น่าจะเป็นหลัง (+1 @Yair Daon ฉันเห็นด้วย!)

ขั้นตอนพื้นฐานของตัวกรองอนุภาคนั้นเรียบง่ายอย่างเหลือเชื่อ:

ครั้งแรก:

  • เริ่มต้นด้วยความเชื่อเกี่ยวกับสถานะที่ซ่อนอยู่ ตัวอย่างเช่นคุณอาจเริ่มด้วยความเชื่อว่าจรวดของคุณอยู่บนจรวดยิงจรวดขีปนาวุธ (ในตัวกรองอนุภาคความเชื่อเกี่ยวกับสถานะที่ซ่อนอยู่จะถูกแสดงด้วยเมฆของจุดแต่ละจุดแสดงถึงค่าที่เป็นไปได้ของสถานะที่ซ่อนอยู่แต่ละจุดยังเกี่ยวข้องกับความน่าเป็นของรัฐเป็นสถานะที่แท้จริง)

เสื้อเสื้อ+1

  1. ขั้นตอนการทำนาย: เลื่อนตำแหน่งไปข้างหน้าของคะแนนตามกฎการเคลื่อนที่ (เช่นเลื่อนจุดไปข้างหน้าตามความเร็วปัจจุบันของจรวดวิถี ฯลฯ ... ) โดยทั่วไปสิ่งนี้จะขยายกลุ่มเมฆของคะแนนเมื่อความไม่แน่นอนเพิ่มขึ้น
  2. ขั้นตอนการอัพเดตความน่าจะเป็น: ใช้ข้อมูลอินพุตเซ็นเซอร์เพื่ออัพเดตความน่าจะเป็นที่เกี่ยวข้องกับคะแนนโดยใช้ Bayes Rule โดยทั่วไปแล้วสิ่งนี้จะพังทลายจุดที่มีความไม่แน่นอนลดลง
  3. เพิ่มขั้นตอน / เทคนิคการกรองอนุภาคเฉพาะบางอย่าง เช่น. :
    • สุ่มคะแนนของคุณใหม่เป็นครั้งคราวเพื่อให้แต่ละจุดมีความน่าจะเป็นที่เท่ากัน
    • ป้องกันเสียงรบกวนขั้นตอนที่น่าจะเป็น (2) จากการยุบจุดคลาวด์ของคุณมากเกินไป (ในการกรองอนุภาคสิ่งสำคัญคือต้องมีอย่างน้อยหนึ่งจุดที่มีความน่าจะเป็นเชิงบวกอย่างชัดเจนที่ตำแหน่งจริงของคุณ!)

ตัวอย่าง:

เริ่มต้นตัวกรองของคุณ: - ดูที่ตั้งของคุณที่คุณกำลังยืน ตอนนี้ปิดตาของคุณ

จากนั้นทำซ้ำ:

  1. ก้าวไปข้างหน้าโดยที่คุณหลับตา
  2. ขั้นตอนทำนาย: ได้รับความเชื่อที่ผ่านมาเกี่ยวกับที่คุณได้รับการยืนคาดการณ์ที่คุณจะตอนนี้ยืนให้ก้าวไปข้างหน้า (โปรดทราบว่าความไม่แน่นอนขยายตัวเนื่องจากก้าวต่อไปขณะที่หลับตาไม่แม่นยำ!)
  3. อัปเดตขั้นตอน: ใช้เซ็นเซอร์ (เช่นความรู้สึกรอบตัว ฯลฯ ... ) เพื่ออัปเดตความเชื่อของคุณเกี่ยวกับตำแหน่งที่คุณยืน

ซ้ำ!

เครื่องจักรความน่าจะเป็นที่จำเป็นในการดำเนินการนั้นเป็นเพียงความน่าจะเป็นพื้นฐาน: กฎของเบย์, การคำนวณการกระจายส่วนอื่น ๆ

แนวคิดที่เกี่ยวข้องสูงที่อาจช่วยให้เข้าใจภาพรวม:

ในความรู้สึกบางขั้นตอน (1) และ (2) เป็นเรื่องปกติใด ๆกรองปัญหาคชกรรม แนวคิดบางอย่างที่เกี่ยวข้องสูงที่อาจอ่านเกี่ยวกับ:

  • ซ่อนรูปแบบมาร์คอฟ กระบวนการคือมาร์คอฟหากอดีตเป็นอิสระจากอนาคตที่กำหนดสถานะปัจจุบัน ซีรีย์เกือบทุกช่วงเวลานั้นเป็นแบบจำลองของกระบวนการมาร์คอฟ ซ่อนมาร์คอฟเป็นหนึ่งในรุ่นที่รัฐจะไม่ได้สังเกตโดยตรง (เช่น. คุณไม่เคยสังเกตโดยตรงตำแหน่งที่แน่นอนของจรวดของคุณและแทนที่จะสรุปสถานที่ตั้งของมันผ่านตัวกรองแบบเบย์)
  • คาลมานกรอง นี่เป็นอีกทางเลือกหนึ่งในการกรองอนุภาคที่ใช้กันทั่วไป โดยพื้นฐานแล้วมันเป็นตัวกรองแบบเบย์ที่ทุกสิ่งถูกถือว่าเป็นหลายตัวแปรแบบเกาส์เซียน

2

คุณควรเรียนรู้เกี่ยวกับแบบจำลองพื้นที่รัฐที่ง่ายต่อการใช้รหัสและตัวกรองแบบปิดก่อน (เช่นตัวกรองคาลมานรุ่นมาร์คอฟที่ซ่อนอยู่) Matthew Gunn นั้นถูกต้องที่คุณสามารถทำสิ่งต่าง ๆ ได้อย่างน่าประหลาดใจ แต่ในความเห็นที่ต่ำต้อยของฉันคุณควรทำสิ่งนี้ให้เป็นเป้าหมายระดับกลางเพราะ:

1. ) การพูดค่อนข้างมีชิ้นส่วนเคลื่อนไหวมากขึ้นในแบบจำลองพื้นที่ของรัฐ เมื่อคุณเรียนรู้ SSMs หรือโมเดลมาร์คอฟที่ซ่อนอยู่มีสัญลักษณ์มากมาย ซึ่งหมายความว่ามีสิ่งอื่น ๆ อีกมากมายที่ต้องเก็บไว้ในความทรงจำการทำงานของคุณในขณะที่คุณเล่นกับสิ่งที่ตรวจสอบ โดยส่วนตัวเมื่อฉันเรียนรู้เกี่ยวกับตัวกรองคาลมานและ SSM เชิงเส้น - เกาส์เซียนก่อนฉันคิดว่า "นี่คือคุณสมบัติของเวกเตอร์ปกติหลายตัวแปร ... ฉันต้องติดตามว่าเมทริกซ์ใดเป็นตัวกำหนด" นอกจากนี้หากคุณสลับไปมาระหว่างหนังสือพวกเขามักเปลี่ยนสัญกรณ์

หลังจากนั้นฉันก็คิดเช่นนี้ว่า "เอ๊ะนี่เป็นเพียงกฎของเบย์ทุกครั้ง" เมื่อคุณคิดแบบนี้คุณจะเข้าใจว่าทำไมครอบครัวคอนจูเกตจึงดีเช่นในกรณีของตัวกรองคาลมาน เมื่อคุณเขียนรหัสรุ่นมาร์คอฟที่ซ่อนอยู่ด้วยพื้นที่สถานะไม่ต่อเนื่องคุณจะเห็นว่าทำไมคุณไม่ต้องคำนวณความน่าจะเป็นและการกรอง / การปรับให้เรียบนั้นเป็นเรื่องง่าย (ฉันคิดว่าฉันเบี่ยงเบนไปจากศัพท์แสง hmm คอนแวนต์ที่นี่)

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

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

คุณจำลองได้อย่างไร อัลกอริธึมส่วนใหญ่เป็นเพียงตัวอย่างของการสุ่มตัวอย่างที่สำคัญ แต่มันก็ซับซ้อนขึ้นเช่นกัน ฉันขอแนะนำกระดาษสอนโดย Doucet และ Johansen ( http://www.cs.ubc.ca/~arnaud/doucet_johansen_tutorialPF.pdf ) หากคุณได้รับวิธีการปิดการกรองแบบฟอร์มพวกเขาแนะนำแนวคิดทั่วไปเกี่ยวกับการสุ่มตัวอย่างที่สำคัญจากนั้นแนวคิดทั่วไปของวิธีการ monte carlo แล้วแสดงวิธีใช้สองสิ่งเหล่านี้เพื่อเริ่มต้นด้วยตัวอย่างอนุกรมเวลาทางการเงินที่ดี IMHO นี่เป็นบทเรียนที่ดีที่สุดเกี่ยวกับการกรองอนุภาคที่ฉันได้พบ

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

ฉันขอโทษถ้าฉันเป็นคนลึกลับหรือเป็นคลื่น นี่เป็นเพียงระยะเวลาสำหรับความคุ้นเคยส่วนตัวของฉันกับเรื่องนี้ โพสต์ของ Matthew Gunn อาจตอบคำถามของคุณโดยตรง ฉันเพิ่งคิดว่าฉันจะโยนคำตอบนี้

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