Bộ lọc Bootstrap / Thuật toán bộ lọc hạt (Hiểu)


12

Tôi thực sự thiếu hiểu biết về cách hoạt động của bộ lọc bootstrap. Tôi đại khái biết các khái niệm nhưng tôi không nắm bắt được một số chi tiết nhất định. Câu hỏi này là để tôi làm sáng tỏ sự lộn xộn. Ở đây tôi sẽ sử dụng thuật toán lọc phổ biến này từ một tài liệu tham khảo của doucet (cho đến nay tôi nghĩ đây là tài liệu tham khảo dễ nhất). Trước tiên tôi xin nói với bạn rằng vấn đề của tôi là hiểu được phân phối nào được biết và không biết.

bộ lọc bootstrap

Đây là những câu hỏi của tôi:

  1. Trong 2), phân phối gì? Là phân phối này được biết đến ? Chúng ta có biết phân phối này cho tất cả t ? Nếu vậy, nhưng nếu chúng ta không thể lấy mẫu từ nó thì sao? Thật buồn cười khi họ gọi bước lấy mẫu quan trọng này nhưng tôi thấy không có phân phối đề xuất nào.p(xt|xt1(i))t
  2. Ngoài ra trong 2) là một phân phối đã biết ? "Normalize Trọng lượng Tầm quan trọng phương tiện để w ( i ) t = ~ w ( i ) tp(yt|x~t(i)) ? Dấu ngã trênxwcó nghĩa là gì? Nó có nghĩa là một cái gì đó như không được chỉnh sửa lại hoặc không được chuẩn hóa tương ứng?wt(i)=w~t(i)i=1Nw~t(i)xw
  3. Tôi sẽ đánh giá cao nếu bất cứ ai cũng có thể đưa ra một ví dụ đồ chơi đơn giản bằng cách sử dụng các bản phân phối nổi tiếng để sử dụng bộ lọc bootstrap này. Mục tiêu cuối cùng của bộ lọc bootstrap đối với tôi không rõ ràng.

Câu trả lời:


10
  1. Đó là mật độ chuyển tiếp của trạng thái ( ), là một phần của mô hình của bạn và do đó được biết đến. Bạn cần phải lấy mẫu từ nó trong thuật toán cơ bản, nhưng gần đúng là có thể. p ( x t | x t - 1 ) phân phối đề xuất trong trường hợp này. Nó được sử dụng vì phân phối p ( x t | x 0 : t - 1 , y 1 : t ) thường không thể kéo được.xtp(xt|xt1) p(xt|x0:t1,y1:t)

  2. Vâng, đó là mật độ quan sát, cũng là một phần của mô hình, và do đó được biết đến. Vâng, đó là những gì bình thường hóa có nghĩa. Dấu ngã được sử dụng để biểu thị một cái gì đó như "sơ bộ": x trước khi lấy mẫu lại và ˜ ww trước khi tái chuẩn hóa. Tôi đoán rằng nó được thực hiện theo cách này để ký hiệu khớp với các biến thể của thuật toán không có bước lấy mẫu lại (tức là x luôn là ước tính cuối cùng).x~xw~wx

  3. p(xt|y1:t)tt

Hãy xem xét mô hình đơn giản:

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)

Áp dụng thuật toán:

  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)

Quay trở lại bước 2, tiến về phía trước với phiên bản được ghép lại của các hạt, cho đến khi chúng tôi xử lý toàn bộ chuỗi.

Một triển khai trong R như sau:

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

Biểu đồ kết quả:nhập mô tả hình ảnh ở đây

Một hướng dẫn hữu ích là một của Doucet và Johansen, xem tại đây .


X1(i)|X0(i)N(0,1)X1(i)|X0(i)N(X0(i),1)
tintinthong

Điều đó đúng, tôi đã sửa lỗi đánh máy
Chris Haug

Các đường dẫn không phải được lấy mẫu lại phải không ?? Từ các tài liệu khác, không cần phải lấy mẫu các đường dẫn. Tôi chỉ cần lấy mẫu các hạt ở mỗi bước thời gian. Tôi đã tự hỏi liệu có một lý do cho việc lấy lại các đường dẫn
tintinthong
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.