বুটস্ট্র্যাপ ফিল্টার / কণা ফিল্টার অ্যালগরিদম (বোঝা)


12

বুটস্ট্র্যাপ ফিল্টার কীভাবে কাজ করে সে সম্পর্কে আমার সত্যিই বোঝার অভাব আছে। আমি ধারণাগুলি মোটামুটি জানি কিন্তু আমি নির্দিষ্ট বিশদটি গ্রাস করতে ব্যর্থ হই। এই প্রশ্নটি আমার কাছে বিশৃঙ্খলা পরিষ্কার করার জন্য। এখানে আমি ডুসেটের একটি রেফারেন্স থেকে এই জনপ্রিয় ফিল্টার অ্যালগরিদম ব্যবহার করব (এখন পর্যন্ত আমি মনে করি এটি সবচেয়ে সহজ রেফারেন্স)। আমাকে প্রথমে আপনাকে বলি যে আমার সমস্যাটি বোঝা যা কোন বিতরণগুলি পরিচিত এবং কোনটি অজানা।

বুটস্ট্র্যাপ ফিল্টার

এগুলি আমার প্রশ্ন:

  1. p(xt|xt1(i))t
  2. p(yt|x~t(i))wt(i)=w~t(i)i=1Nw~t(i)xw
  3. যদি কেউ এই বুটস্ট্র্যাপ ফিল্টারটি ব্যবহার করার জন্য সুপরিচিত বিতরণগুলি ব্যবহার করে কোনও সহজ খেলনা উদাহরণ দিতে পারে তবে আমি প্রশংসা করব। বুটস্ট্র্যাপ ফিল্টারটির শেষ লক্ষ্যটি আমার কাছে পরিষ্কার নয়।

উত্তর:


10
  1. xtp(xt|xt1) p(xt|x0:t1,y1:t)

  2. x~xw~wx

  3. p(xt|y1:t)tt

সাধারণ মডেলটি বিবেচনা করুন:

Xt=Xt1+ηt,ηtN(0,1)
X0N(0,1)
Yt=Xt+εt,εtN(0,1)

YXp(Xt|Y1,...,Yt)

Xt|Xt1N(Xt1,1)
X0N(0,1)
Yt|XtN(Xt,1)

অ্যালগরিদম প্রয়োগ করা:

  1. NX0(i)N(0,1)

  2. X1(i)|X0(i)N(X0(i),1)N

    w~t(i)=ϕ(yt;xt(i),1)ϕ(x;μ,σ2)μσ2yt

  3. wtxx0:t(i)

আমরা পুরো সিরিজটি প্রক্রিয়া না করা অবধি, কণাগুলির পুনরায় মডেল করা সংস্করণটি নিয়ে এগিয়ে যাওয়া, দ্বিতীয় ধাপে ফিরে যান।

আর এর একটি বাস্তবায়ন নিম্নলিখিত:

# 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)

ফলাফল গ্রাফ:এখানে চিত্র বর্ণনা লিখুন

একটি দরকারী টিউটোরিয়াল হ'ল ডুসেট এবং জোহেনসেনের একটি, এখানে দেখুন


X1(i)|X0(i)N(0,1)X1(i)|X0(i)N(X0(i),1)
টিনটিনথং

এটা ঠিক, আমি টাইপ ঠিক করে দিয়েছি
ক্রিস হগ

পাথগুলি কি আবার স্যাম্পল করতে হবে না তারা ?? অন্যান্য সাহিত্য থেকে, পথগুলির নমুনা দেওয়ার দরকার নেই। আমি শুধু প্রতিটি সময় পদক্ষেপে কণা নমুনা প্রয়োজন। আমি ভাবছিলাম যে
পথগুলিকে পুনরায় মডেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.