基本概念
隨機變量、概率、概率分佈和概率密度函數等的概念
條件概率、聯合分佈、全概率公式、貝葉斯法則
條件概率
兩個隨機變量X , Y X,Y X , Y 的聯合分佈 由下式給出:
p ( x , y ) = p ( X = x , Y = y )
p(x, y) = p(X=x, Y=y)
p ( x , y ) = p ( X = x , Y = y )
這個表達式描述了隨機變量 X X X 取值爲 x x x 並且 Y Y Y 取值 y y y 這一事件的概率,若 X X X 和 Y Y Y 相互獨立 ,則有以下結論
p ( x , y ) = p ( x ) p ( y )
p(x, y) = p(x)p(y)
p ( x , y ) = p ( x ) p ( y )
事實上,隨機變量通常攜帶其他隨機變量的信息,在已知 Y = y Y = y Y = y 的條件下,X = x X = x X = x 的概率稱爲條件概率 ,表示爲
p ( x ∣ y ) = p ( x , y ) / p ( y )
p(x|y) = {p(x, y)}/{p(y)}
p ( x ∣ y ) = p ( x , y ) / p ( y )
全概率公式:通過條件概率和概率測量公理,可以推出全概率公式 如下
p ( x ) = ∑ y p ( x ∣ y ) p ( y ) ( 離 散 情 況 ) p ( x ) = ∫ p ( x ∣ y ) p ( y ) d y ( 連 續 情 況 )
p(x) = \sum_{y}p(x|y)p(y) (離散情況)\\
p(x) = \int p(x|y)p(y){dy} (連續情況)
p ( x ) = y ∑ p ( x ∣ y ) p ( y ) ( 離 散 情 況 ) p ( x ) = ∫ p ( x ∣ y ) p ( y ) d y ( 連 續 情 況 )
同樣重要的還有貝葉斯法則 :
p ( x ∣ y ) = p ( y ∣ x ) p ( x ) p ( y ) = p ( y ∣ x ) p ( x ) ∑ x ′ p ( y ∣ x ′ ) p ( x ′ ) d x ′ ( 離 散 概 況 )
\begin{aligned}
p(x|y)&= \frac{p(y|x)p(x)}{p(y)}\\&=\frac{p(y|x)p(x)}{\sum_{x'}{p(y|x')p(x')dx'}}(離散概況)
\end{aligned}
p ( x ∣ y ) = p ( y ) p ( y ∣ x ) p ( x ) = ∑ x ′ p ( y ∣ x ′ ) p ( x ′ ) d x ′ p ( y ∣ x ) p ( x ) ( 離 散 概 況 )
p ( x ∣ y ) = p ( y ∣ x ) p ( x ) p ( y ) = p ( y ∣ x ) p ( x ) ∫ p ( y ∣ x ′ ) p ( x ′ ) ( 連 續 情 況 )
\begin{aligned}
p(x|y) &= \frac{p(y|x)p(x)}{p(y)}\\&=\frac{p(y|x)p(x)}{\int{p(y|x')p(x')}}(連續情況)
\end{aligned}
p ( x ∣ y ) = p ( y ) p ( y ∣ x ) p ( x ) = ∫ p ( y ∣ x ′ ) p ( x ′ ) p ( y ∣ x ) p ( x ) ( 連 續 情 況 )
通常,由於p ( y ) − 1 p(y)^-1 p ( y ) − 1 的值在同一個問題裏面是不變的,所以可以使用 η \eta η 表示,稱爲貝葉斯法則中的歸一化變量。在貝葉斯法則中,如果x x x 一個希望由y y y 推測出來的數值,則概率p ( x ) p(x) p ( x ) 稱爲先驗概率分佈。其中y y y 稱爲數據d a t a data d a t a ,也就是傳感器測量值。p ( x ∣ y ) p(x|y) p ( x ∣ y ) 稱爲X X X 上的後驗概率分佈。通過貝葉斯法則,可以通過“逆”條件概率p ( y ∣ x ) p(y|x) p ( y ∣ x ) 和先驗概率p ( x ) p(x) p ( x ) 一起起計算p ( x ∣ y ) p(x|y) p ( x ∣ y ) 。所謂的逆條件概率,其實就是假設已知事件x x x 發生的情況下,能夠得到數據y y y 的概率,它稱爲生成模型。
3.條件獨立
以任意隨機變量Z Z Z 爲條件的相互獨立的兩個變量X 和 Y X和Y X 和 Y ,他們的概率滿足
p ( x , y ∣ z ) = p ( x ∣ z ) p ( y ∣ z )
p(x, y| z) = p(x|z)p(y|z)
p ( x , y ∣ z ) = p ( x ∣ z ) p ( y ∣ z )
需要注意的是,條件獨立並不意味爲絕對獨立,反之也不一定成立。
4.數學期望、協方差、熵
數學期望 即均值 ,可以由以下式求得
E [ X ] = ∑ x x p ( x ) ( 離 散 )
E[X]=\sum_xxp(x)(離散)
E [ X ] = x ∑ x p ( x ) ( 離 散 )
E [ X ] = ∫ x p ( x ) d x ( 連 續 )
E[X]=\int{xp(x)dx}(連續)
E [ X ] = ∫ x p ( x ) d x ( 連 續 )
數學期望具有線性性質
協方差 可以由以下式子求得
C o v [ X ] = E [ X − X [ x ] 2 ] = E [ X 2 ] − E [ X ] 2
Cov[X]=E[X-X[x]^2]=E[X^2] - E[X]^2
C o v [ X ] = E [ X − X [ x ] 2 ] = E [ X 2 ] − E [ X ] 2
熵 ,一個概率分佈的熵可以按如下求得
H p ( x ) = E [ − l o g 2 p ( x ) ]
H_p(x)=E[-log_2{p(x)}]
H p ( x ) = E [ − l o g 2 p ( x ) ]
容易推導出
H p ( x ) = − ∑ x p ( x ) l o g 2 p ( x )
H_p(x)=-\sum_x{p(x)log_2p(x)}
H p ( x ) = − x ∑ p ( x ) l o g 2 p ( x )
H p ( x ) = − ∫ p ( x ) l o g 2 x d x
H_p(x)=-\int{p(x)log_2{x}dx}
H p ( x ) = − ∫ p ( x ) l o g 2 x d x
機器人環境交互
環境交互
狀態和概率生成
狀態用來表示環境特徵,需要注意的是,假設一個狀態可以最好的預測未來,則稱其爲完整的。換句話說,完整性包裹過去的狀態測量以及控制的信息,但是不包括其他可以更加精確的預測未來的附加信息
如果一個狀態x x x 是完整的,那麼它是所有以前時刻發生的所有的狀態的充分總結。用公式表示如下
p ( x t ∣ x 0 : t − 1 , z 1 : t − 1 , u 1 : t ) = p ( x t − 1 , u t ) = p ( x t ∣ x t − 1 , u t )
p(x_t|x_{0:t-1},z_{1:t-1},u_{1:t}) = p(x_{t-1},u_t)=p(x_t|x_{t-1}, u_t)
p ( x t ∣ x 0 : t − 1 , z 1 : t − 1 , u 1 : t ) = p ( x t − 1 , u t ) = p ( x t ∣ x t − 1 , u t )
同時,這個式子充分表達了條件獨立 的特性,這在以後會經常用到。
當狀態x x x 是完整的時,就有如下式子成立
p ( z t ∣ x 0 : t , z 1 : t − 1 , u 1 : t ) = p ( z t ∣ x t )
p(z_t|x_{0:t},z_{1:t-1},u_{1:t})=p(z_t|x_t)
p ( z t ∣ x 0 : t , z 1 : t − 1 , u 1 : t ) = p ( z t ∣ x t )
p ( z t ∣ x t ) p(z_t|x_t) p ( z t ∣ x t ) 稱爲測量概率 ,p ( x t ∣ x t − 1 , u t ) p(x_t|x_{t-1},u_t) p ( x t ∣ x t − 1 , u t ) 稱爲狀態轉移概率
狀態轉移概率和測量概率一起描述機器人以及其環境組成的動態隨即系統。圖2.2所示的動態貝葉斯網絡顯示了由這些概率定義的狀態和測量的演變。時刻t t t 的狀態依賴t − 1 t-1 t − 1 時刻的狀態和控制u t u_t u t ,測量z t z_t z t 隨機的依賴時刻t t t 的狀態。這樣的時間生成模型也稱爲隱形馬爾可夫模型或動態貝葉斯網絡。
置信度
概率機器人中另外一個重要的概念是置信度分佈 。置信度反映了機器人有關的環境狀態的內部信息。概率機器人通過條件概率分佈表示置信度,對於真實狀態,置信度分佈爲每一種可能的假設分配一個概率(或者概率密度值)。置信度分佈是以可獲得的數據爲條件的關於狀態變量的後驗概率。這裏用b e l ( x t ) bel(x_t) b e l ( x t ) 表示狀態變量x t x_t x t 的置信度,它是下式的縮寫
b e l ( x t ) = p ( x t ∣ z 1 : t , u 1 : t )
bel(x_t)=p(x_t|z_{1:t}, u_{1:t})
b e l ( x t ) = p ( x t ∣ z 1 : t , u 1 : t )
這個後驗是時刻t t t 下狀態x x x 的概率分佈,以過去所有的測量z 1 : t z_{1:t} z 1 : t 和過去所有的控制 u 1 : t u_{1:t} u 1 : t 爲條件。
這個默認置信度是在綜合了測量z t z_t z t 之後得到的,有時,可以證明在剛剛執行完控制u t u_t u t 之後,綜合z t z_t z t 之前計算後驗是有效的。這個後驗可以表示爲
b e l ‾ ( x t ) = p ( x t ∣ z 1 : t − 1 , u 1 : t )
\overline{bel}(x_t)=p(x_t|z_{1:t-1}, u_{1:t})
b e l ( x t ) = p ( x t ∣ z 1 : t − 1 , u 1 : t )
在概率濾波中,這個概率稱爲預測 。它反映了一個事實:b e l ‾ ( x t ) \overline{bel}(x_t) b e l ( x t ) 是基於以前狀態的後驗,在綜合測量z t z_t z t 之前,預測了時刻t t t 的狀態,由b e l ‾ ( x t ) \overline{bel}(x_t) b e l ( x t ) 計算b e l ( x t ) bel(x_t) b e l ( x t ) 稱爲修正或者測量更新 。
貝葉斯濾波
算法描述
現在開始進入正題,大多數計算置信度的通用算法都是基於貝葉斯濾波算法的。算法描述如下
A _ B a y e s _ f i l t e r ( b e l ( x t ) , u t , z t ) : f o r a l l x t d o b e l ‾ ( x t ) = ∫ p ( x t ∣ u t , x t − 1 ) p ( x t − 1 ) d x t − 1 b e l ( x t ) = η p ( z t ∣ x t ) b e l ‾ ( x t ) e n d f o r r e t u r n b e l ( x t )
\begin{aligned}
A\_B&ayes\_filter(bel(x_t), u_t, z_t):\\
&for\ all\ x_t\ do\\
&\quad\ \overline{bel}(x_t) = \int{p(x_t|u_t, x_{t-1})p(x_{t-1})}dx_{t-1}\\
&\quad\ bel(x_t)= \eta p(z_t|x_t)\overline{bel}(x_t)\\
&end \ for\\
&return\ bel(x_t)
\end{aligned}
A _ B a y e s _ f i l t e r ( b e l ( x t ) , u t , z t ) : f o r a l l x t d o b e l ( x t ) = ∫ p ( x t ∣ u t , x t − 1 ) p ( x t − 1 ) d x t − 1 b e l ( x t ) = η p ( z t ∣ x t ) b e l ( x t ) e n d f o r r e t u r n b e l ( x t )
貝葉斯濾波算法的第一步叫做控制更新,即上述描述的第3行,通過基於狀態x t − 1 x_{t-1} x t − 1 的置信度和控制u t u_t u t 來計算x t x_t x t 的置信度,這種跟新稱爲控制更新 或者預測
貝葉斯濾波算法的第二個步驟叫做測量更新,位於上述描述的第4行。書上說的有點迷糊,其實就是一個貝葉斯公式。根據上一次狀態和這一次控制,得到新的預測爲先驗概率,配合生成模型計算後驗概率b e l ( x t ) bel(x_t) b e l ( x t ) .
通過上述的分析,不難發現,要使用這樣一個算法,我們需要知道一個初始狀態b e l ( x 0 ) bel(x_0) b e l ( x 0 ) 作爲邊界條件。如果知道x 0 x_0 x 0 的確切的值,應當使用一個點式羣體分佈進行初始化。若不知道,或者可以完全忽略x 0 x_0 x 0 的初始值,則應使用一個x 0 x_0 x 0 的鄰域上的均勻分佈(或者狄氏分佈的相關分佈)來進行初始化。
貝葉斯濾波的數學推導
機器人判斷門的開閉的示例就不贅述了,接下來看貝葉斯濾波的數學推導。
KaTeX parse error: No such environment: align at position 8:
\begin{̲a̲l̲i̲g̲n̲}̲
p(x_t|z_{1:t},…
由第 1 行到第 2 行的變化是由於x t x_t x t 是一個完整的狀態變量,且跟其他兩個條件條件獨立,所以可以忽略其他條件。
第 2 行到第 3 行是一個簡單的全概率公式。
最後,要注意,對於任意所選的控制,可以從條件變量集p ( x t − 1 ∣ z 1 : t − 1 , u t ) p(x_{t-1}|z_{1 : t-1},u_t) p ( x t − 1 ∣ z 1 : t − 1 , u t ) 中安全地將控制u t u_t u t 省略,因此,上述方程可以寫作
p ( x t ∣ z 1 : t , u 1 : t ) = η p ( z t ∣ x t ) ∫ p ( x t ∣ x t − 1 ) p ( x t − 1 ∣ z 1 : t − 1 , u 1 : t − 1 ) d x t − 1
p(x_t|z_{1:t},u{1:t})=\eta p(z_t|x_t)\int p(x_t|x_{t-1})p(x_{t-1}|z_{1:t-1},u_{1:t-1})dx_{t-1}
p ( x t ∣ z 1 : t , u 1 : t ) = η p ( z t ∣ x t ) ∫ p ( x t ∣ x t − 1 ) p ( x t − 1 ∣ z 1 : t − 1 , u 1 : t − 1 ) d x t − 1
這個遞歸更新方程在貝葉斯濾波算法的第三行得到了實現。
總之,貝葉斯濾波算法以到時間t t t 的測量和控制數據爲條件來計算狀態x t x_t x t 的後驗。推導假設世界是馬爾可夫的,也就是狀態是完整的。
可以看到,該算法的任意具體實現都需要三個條件概率分佈,分別是:初始置信度分佈p ( x 0 ) p(x_0) p ( x 0 ) 、測量概率分佈p ( z t ∣ x t ) p(z_t|x_t) p ( z t ∣ x t ) 和狀態轉移概率p ( x t ∣ u t , x t − 1 ) p(x_t|u_t,x_{t-1}) p ( x t ∣ u t , x t − 1 ) 。
PS:這一章內容其實不算少,但是除了前面的基礎知識,核心的算法也就幾頁,看明白了之後,其實也就那麼回事,但是在這之前,會覺得很難很煩。這裏建議,首先要克服這種負面情緒,其實原理很簡單,靜下心來慢慢看。另外很重要的一點就是,書後面的習題真的很好,認真做一做,非常非常非常有幫助。但是剛開始做其實會比較迷惑,一個是不知道自己做的對不對,另一個是這對於低年級本科生來說,還是一個比較陌生的模式,難免會有一點不適應。對於習題答案這個問題,網上很少有完整的一套答案,即便有也只是零零散散幾道題,而且很可能你哪道題不會了,恰好就找不到那一道題,這裏推薦一個大佬分享的這本書完整的答案