Tại sao khả năng trong bộ lọc Kalman được tính toán bằng kết quả bộ lọc thay vì kết quả mượt mà hơn?


11

Tôi đang sử dụng bộ lọc Kalman một cách rất chuẩn. Hệ thống được biểu diễn bởi phương trình trạng thái xt+1=Fxt+vt+1 và phương trình quan sát yt=Hxt+Azt+wt .

Sách giáo khoa dạy rằng sau khi áp dụng bộ lọc Kalman và nhận được "dự báo một bước về phía x^t|t1 (hoặc "ước tính được lọc"), chúng ta nên sử dụng chúng để tính hàm khả năng:

fyt|It1,zt(yt|It1,zt)=det[2π(HPt|t1H+R)]12exp{12(ytHx^t|t1Azt)(HPt|t1H+R)1(ytHx^t|t1Azt)}

Câu hỏi của tôi là: Tại sao hàm khả năng được tính bằng cách sử dụng "ước tính được lọc" x^t|t1 mà không phải là "ước lượng được làm mịn" x^t|T ? Không phải là x^t|T một ước tính tốt hơn về vectơ trạng thái?


Tôi chỉnh sửa tiêu đề để có nhiều thông tin hơn.
Juho Kokkala

Câu trả lời:


5

Để trả lời câu hỏi của bạn: bạn có thể sử dụng mật độ làm mịn. Nhưng bạn không cần phải làm vậy. Câu trả lời của Jarle Tufto có sự phân tách mà bạn đang sử dụng. Nhưng có những người khác.

Sử dụng các cuộc thám hiểm Kalman

Ở đây bạn đang đánh giá khả năng là

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).

Tuy nhiên, phương tiện và phương sai không phải lúc nào cũng xác định đầy đủ các phân phối xác suất nói chung. Sau đây là phân tách mà bạn đang sử dụng để chuyển từ phân phối lọc sang khả năng có điều kiện :f ( y i | y 1 , ... , y i - 1 )f(xi1|y1,,yi1)f(yi|y1,,yi1)

(1)f(yi|y1,,yi1)=f(yi|xi)f(xi|xi1)f(xi1|y1,,yi1)dxidxi1.

Ở đây là mật độ chuyển tiếp trạng thái ... một phần của mô hình và là mật độ quan sát ... một phần của mô hình một lần nữa. Trong câu hỏi của bạn, bạn viết chúng dưới dạng và . Nó là điều tương tự.f(xi|xi1)f(yi|xi)xt+1=Fxt+vt+1yt=Hxt+Azt+wt

Khi bạn đi trước một bước phân phối dự đoán trạng thái, đó là tính toán . Khi bạn tích hợp lại, bạn có được (1) hoàn toàn. Bạn viết mật độ đó hoàn toàn trong câu hỏi của bạn, và đó là điều tương tự.f(xi|xi1)f(xi1|y1,,yi1)dxi1

Ở đây bạn chỉ sử dụng phân tách xác suất phân phối và giả định về mô hình. Tính toán khả năng này là một tính toán chính xác. Không có bất cứ điều gì tùy ý mà bạn có thể sử dụng để làm điều này tốt hơn hoặc tồi tệ hơn.

Sử dụng thuật toán EM

Theo hiểu biết của tôi, không có cách nào khác để đánh giá khả năng trực tiếp trong loại mô hình không gian trạng thái này. Tuy nhiên, bạn vẫn có thể ước tính khả năng tối đa bằng cách đánh giá một chức năng khác: bạn có thể sử dụng thuật toán EM. Trong bước Mong đợi (Bước E), bạn sẽ tính toán Tại đây

f(x1,,xn|y1,yn)logf(y1,,yn,x1,,xn)dx1:n=Esmooth[logf(y1,,yn,x1,,xn)].
f(y1,,yn,x1,,xn)là khả năng "dữ liệu hoàn chỉnh" và bạn đang kỳ vọng vào nhật ký của dữ liệu đó liên quan đến mật độ làm mịn khớp. Điều thường xảy ra là bởi vì bạn đang ghi nhật ký khả năng dữ liệu hoàn chỉnh này, các thuật ngữ được chia thành các khoản tiền và vì tính tuyến tính của toán tử kỳ vọng, bạn đang mong đợi các phân phối làm mịn biên (các thuật ngữ bạn đề cập đến trong câu hỏi của bạn).

Những thứ khác

Tôi đã đọc ở những nơi rằng EM là một cách "ổn định hơn" để tối đa hóa khả năng, nhưng tôi chưa bao giờ thực sự thấy điểm này được tranh luận tốt, tôi cũng không thấy từ này "ổn định", nhưng tôi cũng không biết Tôi thực sự đã kiểm tra điều này hơn nữa. Cả hai thuật toán này đều không vượt qua được thử thách cực đại cục bộ / toàn cầu. Cá nhân tôi có xu hướng sử dụng Kalman thường xuyên hơn theo thói quen.

Đúng là các ước tính được làm mịn của trạng thái có phương sai nhỏ hơn so với lọc, vì vậy tôi đoán bạn có quyền có một số trực giác về điều này, nhưng bạn không thực sự sử dụng các trạng thái. Khả năng bạn đang cố gắng tối đa hóa không phải là chức năng của các tiểu bang.


KF và EM khác nhau như thế nào? Họ cuối cùng làm điều tương tự trong cách cư xử mơ hồ tương tự.
Mitch

1
@Mitch đó có lẽ là một cái gì đó xứng đáng hơn một bình luận. Nó sẽ phụ thuộc vào trình tối ưu hóa mục đích chung mà bạn sử dụng với KF và loại EM bạn sử dụng. Tôi sẽ không quá chắc chắn nếu không nhìn vào nó.
Taylor

7

Nói chung, theo quy tắc sản phẩm, khả năng chính xác có thể được viết Từ giả định của mô hình không gian trạng thái, theo sau ma trận kỳ vọng và ma trận phương sai của từng điều kiện trên các quan sát trong quá khứ có thể được biểu thị dưới dạng và

f(y1,,yn)=f(y1)i=2nf(yi|y1,,yi1).
yi
E(yi|y1,,yi1)=E(Hxt+Azt+wt|y1,,yi1)=HE(xt|y1,,yi1)+Azt+Ewt=Hx^t|t1+Azt,
Var(yi|y1,,yi1)=Var(Hxt+Azt+wt|y1,,yi1)=HVar(xt|y1,,yi1)H+Varwt=HPt|t1H+R.
Vì vậy, điều này cung cấp cho bạn khả năng chính xác mà không cần tính toán bất kỳ ước tính trơn tru nào.

Mặc dù bạn tất nhiên có thể sử dụng các ước tính đã được làm mịn mà thực sự là ước tính tốt hơn của các trạng thái chưa biết, điều này sẽ không cung cấp cho bạn hàm khả năng. Trên thực tế, bạn sẽ sử dụng giá trị quan sát của để ước tính giá trị dự kiến ​​của chính nó để có vẻ như điều này sẽ dẫn đến một số sai lệch trong ước tính kết quả. yi


0

Tôi nghĩ rằng một câu trả lời tốt hơn là "tại sao" phân phối làm mịn không được sử dụng (thường) là hiệu quả. Về nguyên tắc, đơn giản là tính toán khả năng cận biên (làm mịn) theo nghĩa bỏ đi như sau. Xóa quan sát j, chạy Kalman mượt mà hơn trên các dữ liệu còn lại. Sau đó đánh giá khả năng của y vô hình (j). Lặp lại điều này cho tất cả j. Tổng hợp các khả năng đăng nhập. Các phiên bản nhanh hơn của điều này hoạt động với các khối (ngẫu nhiên) của các mẫu được tổ chức (như CV gấp k). Lưu ý rằng sơ đồ này yêu cầu triển khai chung hơn bộ lọc Kalman / mượt mà hơn, có thể tùy ý bỏ qua các cập nhật đo lường khi cần. Đường chuyền lùi / làm mịn không truy cập vào các phép đo (dù sao thuật toán RTS) và vẫn giữ nguyên.

Nếu chuỗi thời gian là "đủ dài" thì có khả năng rất ít lợi ích hữu ích trong việc này vì khả năng lọc "đốt cháy" thoáng qua ban đầu của nó. Nhưng nếu tập dữ liệu ngắn, khả năng làm mịn đắt hơn có thể đáng giá. Một độ trễ cố định mượt mà hơn có thể là một giải pháp ở giữa.

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.