[Scikit-learn] *Dynamic Bayesian Network - Partical Filter

涉及的一些知識:html

  • 機器人的自我定位
  • Sequential Importance Sampling

Ref: http://scipy-cookbook.readthedocs.io/items/ParticleFilter.html性能

Ref: http://blog.csdn.net/artista/article/details/51570878ui

Ref: https://www.youtube.com/watch?v=N7rH_VVtqRAthis


 

Importance Sampling

Review: [Bayes] Hist & line: Reject Sampling and Importance Sampling人工智能

Use g(x) to simulate f(x) as following:  [ Here, uniform dist is too simple to show its feature ]spa

> L=10000
> K=135/64
> x=runif(L) > ind=(runif(L)<(20*x*(1-x)^3/K)) > hist(x[ind],probability=T, xlab="x",ylab="Density",main="") > 
> d=density(x[ind],from=0,to=1) > lines(d,col=4) > 
> y=runif(L) > w=20*y*(1-y)^3                // 可見,pr is large with larger 權重 > W=w/sum(w)                  // 每一個x軸的sample point的權重值W > d=density(y,weights=W,from=0,to=1) > lines(d,col=3) > 
> xx=seq(0,1,length=100) > lines(xx,20*xx*(1-xx)^3,lwd=2,col=2)

Why? .net

Algorithm:3d

However, this is not suitable in high dimension space.code

 

序貫重要性採樣

This is better.orm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

先灌一篇背景文:

From: http://blog.csdn.net/artista/article/details/51570878

Udacity的機器人人工智能教程-CS373 Artificial Intelligence for Robotics Programming a Robotic Car: 
這裏寫圖片描述

綠色的點是一個機器人,藍色的線表明激光發出的測量線,如今它被隨機放在了地圖的一個位置,它想要知道本身到底在哪裏,因而,它就開始猜想:

因爲沒有任何的先驗信息,因此一開始,它可能存在與房間的任何一個角落,每個紅色的點即表明機器人對本身所處位置的一個猜測,這就是咱們在蒙特卡洛方法裏面所提到的樣本。

猜想(紅色點)的分佈是均勻的,也就是以前式子裏面的q(x)分佈。固然,每個猜想有好有壞,否則咱們簡單的把全部粒子一平均,機器人對本身位置的猜測確定一直會處於整個房間的最中心了。

p(x)/q(x) 這部分咱們稱之爲權值,就是爲了衡量每一個猜想的好壞,也就是衡量咱們隨意決定的分佈和真實分佈之間的類似度。 
在這裏其實還有一個小問題的,咱們應該如何去衡量p(x)/q(x),在機器人定位問題裏面,p(x)咱們根本不知道!不知道的東西怎麼去衡量啊,粒子濾波在這裏有很牛逼的一招:

這個不知道,咱們能夠抓特徵啊。在這個問題裏面,因爲機器人知道整個房間的地圖,又能探測到本身周邊環境的樣子,因此它能夠把p(x)/q(x)轉換爲計算當前猜想點的特和探測器感知的周圍環境的似然程度!【理解重點】

粒子濾波器牛逼的地方就在這裏:我不知道真實狀況怎麼分佈的,可是我能夠追蹤你的一個特徵,而且我假設:這個特徵的分佈指望和原始目標的分佈指望是一致的。這就好像是老師叫你去操場上找人,可是你並不知道要找的人會在操場哪裏出現,並且最關鍵的是你還不認識那我的。這時候老師說,不知道不認識沒關係,你只要找那個穿着紅衣服的人就能夠了。而後你就去操場一看,喲,紅衣服在這裏,雖然你不認識他,可是你認爲紅衣服是他在這個狀態空間的惟一特徵,因此你仍是準確找到了這我的。 

這樣,p(x)/q(x)在實際計算中實際上就近似於計算特徵的類似程度了。在這個問題裏面,就是比較猜想位置姿態所應該獲得的環境信息和實際獲得的環境信息之間的差別。 
固然,爲了更好的性能,咱們仍是但願p(x)/q(x)儘量接近於1,也就是q(x)儘量接近於原始p(x)的分佈的,這個問題咱們能夠經過粒子重採樣解決。在這裏咱們不深刻討論,只給出重採樣迭代以後的效果: 

能夠看到,在移動過程當中,機器人的猜想漸漸所有收斂到機器人的真實位置了! 


 

Sequential Importance Sampling

相關文章
相關標籤/搜索