बूटस्ट्रैप फ़िल्टर / कण फ़िल्टर एल्गोरिथ्म (अंडरस्टैंडिंग)


12

मेरे पास वास्तव में यह समझने की कमी है कि बूटस्ट्रैप फ़िल्टर कैसे काम करता है। मैं मोटे तौर पर अवधारणाओं को जानता हूं लेकिन मैं कुछ विवरणों को समझने में नाकाम रहता हूं। यह प्रश्न मेरे लिए अव्यवस्था को दूर करने के लिए है। यहाँ मैं doucet द्वारा एक संदर्भ से इस लोकप्रिय फ़िल्टर एल्गोरिथ्म का उपयोग करूँगा (अब तक मुझे लगता है कि यह सबसे आसान संदर्भ है)। पहले मैं आपको बता दूं कि मेरी समस्या यह है कि कौन से वितरण ज्ञात हैं और कौन से अज्ञात हैं।

बूटस्ट्रैप फ़िल्टर

ये मेरे सवाल हैं:

  1. 2) में, वितरण क्या है? क्या यह वितरण ज्ञात है ? क्या हम सभी टी के लिए इस वितरण को जानते हैं ? यदि हां, लेकिन क्या होगा अगर हम इससे नमूना नहीं ले सकते? यह हास्यास्पद है कि वे इस महत्व के नमूने कदम को कहते हैं, लेकिन मुझे कोई प्रस्ताव वितरण नहीं दिखता है।पी(एक्सटी|एक्सटी-1(मैं))टी
  2. 2 में भी) है एक जाना जाता वितरण? "मानक के अनुसार महत्व बाट साधन करने के लिए डब्ल्यू ( मैं ) टी = ~ डब्ल्यू ( मैं ) टीपी(yटी|एक्स~टी(मैं)) ? एक्सऔरडब्ल्यूपर टिल्ड का क्याअर्थ है? क्या इसका मतलब क्रमशः अन-रेज़मैल्ड या अन-सामान्यीकृत की तरह है?wटी(मैं)=w~टी(मैं)Σमैं=1एनw~टी(मैं)एक्सw
  3. अगर कोई इस बूटस्ट्रैप फिल्टर का उपयोग करने के लिए प्रसिद्ध वितरण का उपयोग करके एक साधारण खिलौना उदाहरण दे सकता है, तो मैं सराहना करूंगा। बूटस्ट्रैप फ़िल्टर का अंतिम लक्ष्य मेरे लिए स्पष्ट नहीं है।

जवाबों:


10
  1. यह राज्य ( ) का संक्रमण घनत्व है , जो आपके मॉडल का हिस्सा है और इसलिए ज्ञात है। आपको बुनियादी एल्गोरिथ्म में इससे नमूना लेने की आवश्यकता है, लेकिन अनुमान संभव हैं। पी ( एक्स टी | एक्स टी - 1 ) है इस मामले में प्रस्ताव वितरण। इसका उपयोग इसलिए किया जाता है क्योंकि वितरण p ( x t | x 0 : t - 1 , y 1 : t ) आमतौर पर सुव्यवस्थित नहीं होता है।एक्सटीपी(एक्सटी|एक्सटी-1) पी(एक्सटी|एक्स0:टी-1,y1:टी)

  2. हां, यह अवलोकन घनत्व है, जो मॉडल का हिस्सा भी है, और इसलिए ज्ञात है। हां, यही सामान्यीकरण का मतलब है। टिल्ड की तरह कुछ सूचित करने के लिए प्रयोग किया जाता है "प्रारंभिक": है एक्स resampling से पहले, और ~ w है w renormalization से पहले। मुझे लगता है कि यह इस तरह से किया जाता है ताकि अंकन एल्गोरिथ्म के वेरिएंट के बीच मेल खाता हो, जिसमें एक रेज़मैप्लिंग चरण नहीं है (यानी x हमेशा अंतिम अनुमान है)।एक्स~एक्सw~wएक्स

  3. बूटस्ट्रैप फिल्टर का अंतिम लक्ष्य सशर्त वितरण के अनुक्रम अनुमान लगाने के लिए है (कम से सर्वनाश राज्य टी , जब तक सभी टिप्पणियों को देखते हुए टी )।पी(एक्सटी|y1:टी)टीटी

सरल मॉडल पर विचार करें:

एक्स 0 ~ एन ( 0 , 1 ) वाई टी = एक्स टी + ε टी ,

एक्सटी=एक्सटी-1+ηटी,ηटी~एन(0,1)
एक्स0~एन(0,1)
Yटी=एक्सटी+εटी,εटी~एन(0,1)

Yएक्सपी(एक्सटी|Y1,,Yटी)

एक्सटी|एक्सटी-1~एन(एक्सटी-1,1)
एक्स0~एन(0,1)
Yटी|एक्सटी~एन(एक्सटी,1)

एल्गोरिथ्म को लागू करना:

  1. एनएक्स0(मैं)~एन(0,1)

  2. एक्स1(मैं)|एक्स0(मैं)~एन(एक्स0(मैं),1)एन

    w~टी(मैं)=φ(yटी;एक्सटी(मैं),1)φ(एक्स;μ,σ2)μσ2yटी

  3. wटीएक्सएक्स0:टी(मैं)

जब तक हमने पूरी श्रृंखला को संसाधित नहीं किया है, तब तक कणों के पुनर्निर्मित संस्करण के साथ आगे बढ़ते हुए, चरण 2 पर वापस जाएं।

आर में एक कार्यान्वयन इस प्रकार है:

# Simulate some fake data
set.seed(123)

tau <- 100
x <- cumsum(rnorm(tau))
y <- x + rnorm(tau)

# Begin particle filter
N <- 1000
x.pf <- matrix(rep(NA,(tau+1)*N),nrow=tau+1)

# 1. Initialize
x.pf[1, ] <- rnorm(N)
m <- rep(NA,tau)
for (t in 2:(tau+1)) {
  # 2. Importance sampling step
  x.pf[t, ] <- x.pf[t-1,] + rnorm(N)

  #Likelihood
  w.tilde <- dnorm(y[t-1], mean=x.pf[t, ])

  #Normalize
  w <- w.tilde/sum(w.tilde)

  # NOTE: This step isn't part of your description of the algorithm, but I'm going to compute the mean
  # of the particle distribution here to compare with the Kalman filter later. Note that this is done BEFORE resampling
  m[t-1] <- sum(w*x.pf[t,])

  # 3. Resampling step
  s <- sample(1:N, size=N, replace=TRUE, prob=w)

  # Note: resample WHOLE path, not just x.pf[t, ]
  x.pf <- x.pf[, s]
}

plot(x)
lines(m,col="red")

# Let's do the Kalman filter to compare
library(dlm)
lines(dropFirst(dlmFilter(y, dlmModPoly(order=1))$m), col="blue")

legend("topleft", legend = c("Actual x", "Particle filter (mean)", "Kalman filter"), col=c("black","red","blue"), lwd=1)

परिणामी ग्राफ:यहाँ छवि विवरण दर्ज करें

एक उपयोगी ट्यूटोरियल डकेट और जोहानसन द्वारा एक है, यहां देखें ।


एक्स1(मैं)|एक्स0(मैं)~एन(0,1)एक्स1(मैं)|एक्स0(मैं)~एन(एक्स0(मैं),1)

यह सही है, मैंने
टाइप

रास्तों को फिर से नमूना नहीं करना पड़ता है ?? अन्य साहित्य से, रास्तों का नमूना लेने की आवश्यकता नहीं है। मुझे बस हर समय कदम पर कणों का नमूना लेने की आवश्यकता है। मैं सोच रहा था कि क्या रास्तों को फिर से शुरू करने का कोई कारण है
टिनटिन्थोंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.