Bộ Lọc Kalman Filter Là Gì ? Chi Tiết Về Bộ Lọc Kalman Mới Nhất 2021

Bài viết được đăng tại ThetaLog: https://thetalog.com/machine-learning/kalman-filter/

Kalman Filter là một mô hình Linear-Gaussian State Space Model thuộc nhóm thuật toán dự đoán chuỗi thời gian. Thuật toán được lấy tên theo Rudolf E. Kálmán, một nhà khoa học ảnh hưởng quan trọng trong quá trình phát triển thuật toán.

Bạn đang xem: Bộ lọc kalman filter là gì, chi tiết về bộ lọc kalman mới nhất 2021

*

Lập luận theo cách trên lại có một ưu thế nữa, trong nhiều bài toán khoa học kỹ thuật, đôi lúc bạn cần biết xác suất xảy ra trong một vùng nào đấy, chẳng hạn:

Đôi lúc chúng ta chỉ quan tâm đến một vùng nào đó của một đại lượng, chẳng hạn từ 95 đến 110 độ C thì CPU máy tính phải tắt vì nhiệt độ vượt ngưỡng an toàn, xác suất để nhiệt độ rơi vào vùng này là bao nhiêu nhỉ? Tương tự với một tập đại lượng, chúng ta quan tâm đến một vùng giá trị nào đó thật sự quan trọng trong bài toán đang xét.Với hàm mật độ xác suất liên tục p(x_t) chúng ta có thể dể dàng tính xác suất xảy ra trong vùng E bằng tích phân int_{E} p(x_t) dx_t, thật tiện lợi đúng không nào!

Giả định rằng tại thời điểm t phi thuyền có:

hat{x}_{t} = left

Sigma_{t} = left

*

Trong trường hợp này, chúng ta giả định rằng:y_{t} = G_{t} x_{t} + v_{t} với v_{t} là một vector ngẫu nhiên nhiễu có phân bố chuẩn nhiều chiều v_{t} sim mathcal{N}(0,R_{t}), chúng ta gọi v_{t} là nhiễu mô hình quan sát (observation noise).

Xem thêm: Đánh Bại Thủ Lĩnh Làng Tre Dochun Sẽ Nhận Được Huy Hiệu Gì? Thể Loại:Vệ Hồn Rùa Thần

Giả định trên có thể hiểu y_{t} được xem như là “nhiễu quan sát được từ x_t”, y_t là kết quả của tổ hợp tuyến tính từng thành phần x_{t} dựa trên ma trận G_t và bị ảnh hưởng cộng thêm một lượng nhiễu môi trường với vector ngẫu nhiên v_{t}. Người ta gọi công thức trên là mô hình quan sát, nó thể hiện quá trình x_t biến đổi thành y_t đồng thời bị ảnh hưởng nhiễu từ môi trường.

Giờ đây, chúng ta có niềm tin của chúng ta về trạng thái phi thuyền qua hàm mật độ xác suất p(x_t) và một sự kiện đã xảy ra là thông tin thu được từ bộ cảm biến – trạng thái y_t, liệu rằng chúng ta có thể kết hợp cả hai thông tin đang có thành một thông tin mới có ý nghĩa hơn, giúp chúng ta hiểu hơn về trạng thái hiện tại hệ thống hay không?

Biết y_t sẽ giúp chúng ta cập nhật niềm tin về x_t như thế nào? Nếu bạn đang tìm một giải pháp như trên, có lẽ định lý Bayes là một câu trả lời chúng ta đang tìm:

p(x_t | y_t) = frac{p(y_t | x_t) p(x_t)}{p(y_t)}

p(x_t) hàm mật độ xác suất tiên nghiệm, niềm tin của chúng ta không phụ thuộc vào sự kiện y_t xảy ra.p(y_t | x_t) hàm mật độ xác suất khả dĩ, mật độ xác suất có điều kiện khi biết trạng thái x_t xảy ra, vì chúng ta biết rằng y_t là một vector ngẫu nhiên sao cho y_{t} = G_{t} x_{t} + v_{t} , khi biết x_t xảy ra nghĩa là G_t x_t là một vector hằng, vector ngẫu nhiên y_t được biểu diễn bằng một vector hằng cộng thêm một vector ngẫu nhiên có phân bố chuẩn nhiều chiều v_{t} sim mathcal{N}(0,R_{t}), hay nói cách khác y_t | x_t hiện tại là một phân bố chuẩn nhiều chiều. Phân bố y_t | x_t sim mathcal{N}(G_t x_t ,R_{t}).p(y_t) hàm mật độ xác suất biên không phụ thuộc vào x_t đóng vai trò như một hằng số chuẩn hóa.

Phân bố x_t | y_t được tìm như thế nào? Trên nền tảng Linear Gaussian Systems (LGS – mô hình phân bố chuẩn tuyến tính), lời giải của định lý Bayes cho bài toán này như sau:

Định lý Bayes cho Linear Gaussian Systems

Giả định có hai vector ngẫu nhiên m in mathbb{R}^{D_m} và n in mathbb{R}^{D_n} với m là vectơ ẩn, n là vector nhiễu quan sát được từ m với:

m sim mathcal{N}(mu_m , Sigma_m ) n | m sim mathcal{N}(C m + d, Sigma_n ) Phân bố hậu nghiệm m | n khi biết n là m | n sim mathcal{N}(mu_{m | y}, Sigma_{m | n}) với: Sigma_{m | n} = left( Sigma_m^{-1} + C^{intercal} Sigma_n^{-1} C right)^{-1} mu_{m | n} = Sigma_{m | n} left TL;DR: phần chứng minh định lý sẽ không được bàn ở đây, trong một dịp nào đó nếu có thể mình sẽ viết về các mô hình phân bố chuẩn nhiều chiều, bạn đọc quan tâm có thể đọc thêm tài liệu đính kèm. (Kevin P. Murphy phần 6 tài liệu , Chris Bracegirdle tài liệu phần hệ luận Corollary 5) |

Tuy nhiên nếu tính toán trực tiếp ma trận hiệp phương sai Sigma_{x_t | y_t} như trên thì có lẽ bạn vừa bỏ qua một vài “điều thú vị” trong đại số tuyến tính khiến giải pháp của chúng ta thú vị hơn!

Đồng nhất thức ma trận Woodbury (hay còn gọi matrix inversion lemma)

Cho 4 ma trận A (n times n), U (n times k), C (k times k), V (k times n)Đồng nhất thức Woodbury nói rằng:

left( A + UCV right)^{-1} = A^{-1} – A^{-1}U(C^{-1} + VA^{-1}U)^{-1}VA^{-1}

Trước khi giải thích ý nghĩa của đồng nhất thức ma trận Woodbury trong Kalman Filter, chúng ta hãy cùng nhau viết lại lời giải phân bố hậu nghiệm x_t | y_t vừa tìm được, chúng ta gọi đây là “phân bố lọc” (Filtering Distribution):

x^{mathtt{F}}_t sim x_t | y_t sim mathcal{N}(hat{x}^{mathtt{F}}, Sigma^{mathtt{F}})

Với tham số kỳ vọng và ma trận hiệp phương sai của phân bố chuẩn nhiều chiều:

color{WildStrawberry}{Sigma^{mathtt{F}}_t = left( Sigma_t^{-1} + G_t^{intercal} R_t^{-1} G_t right)^{-1} = Sigma_t – Sigma_t G_t^{intercal} left( R + G_t Sigma_t G_t^{intercal} right)^{-1} G_t Sigma_t}

color{WildStrawberry}{hat{x}^{mathtt{F}}_t = hat{x}_t + Sigma_t G_t^{intercal} left( G_t Sigma_t G_t^{intercal} + R_t right)^{-1} (y_t – G_t hat{x}_t)}

Ý nghĩa của đồng nhất thức ma trận Woodbury: Trong nhiều ứng dụng theo thời gian thực, thường thì chỉ có một số ít trạng bạn nhận được từ bộ cảm biến tại một thời điểm, hay nói cách khác số chiều của vector ngẫu nhiên y_t rất nhỏ, lúc này chi phí tìm ma trận nghịch đảo của left( R_t + G_t Sigma_t G_t^{intercal} right)^{-1} tương đối nhỏ, đồng thời các ma trận khác đã có rồi, việc tính toán còn lại chỉ là nhân ma trận sẽ nhanh hơn rất nhiều so với bài toán gốc nhân rồi tính một ma trận nghịch đảo rất lớn!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *