模式識別與機器學習筆記專欄之貝葉斯分類決策(一)

zolich發表於2020-06-17

這是模式識別與機器學習筆記專欄的第一篇,我會持續更新。

在所有的生活場景中,我們無時無刻不在進行著模式識別。比如你看見迎面走來一個人,根據他的長相來辨認出他好像是你一年前某個活動小組的組長,然後你開始決策要不要和他打個招呼。或者你走進水果店,把西瓜拍了個遍來決定最後買哪一個。或者你突然被捂上眼睛,聽著背後人的聲音來辨別是不是你的親愛的。

模式(pattern) 可以理解成某種特徵,也就是你可以獲取到的某種原始資料,而 模式識別(pattern recognition) 就是根據輸入原始資料來判斷其類別並採取相應行為的能力。它對我們至關重要,但我們常常希望可以有機器幫我們來做這個工作,讓機器執行預定的程式來進行分類從而決策。比如一個簡訊攔截系統,幫我們分辨哪些是騷擾簡訊,哪些是有用的資訊。

在這個問題上,貝葉斯決策理論是最最經典而基本的分類方法了。那麼,何為貝葉斯分類決策?

1. 貝葉斯公式

首先,我們熟悉的貝葉斯公式

\[P(\omega_i|x)=\frac{p(x|\omega_i)P(\omega_i)}{p(x)} \]

在模式識別問題中,用 \(d\) 維向量 \(x\) 來表示希望分類物件的特徵,它一般是從感測器獲取,並且抽象化出來。\(\omega\) 來表示可能分類的類別。\(\omega_i\) 對應著第 \(i\) 類,如果是一個兩類問題,\(i=1,2\) ,如果是 \(c\) 類問題,則 \(i=1,2,...,c\)

\(P(\omega_i|x)\) 是由特徵 \(x\) 預測的結果,也就是後驗概率,\(p(x|\omega_i)\) 是類條件概率,或者叫似然概率,就是特徵 \(x\) 這個隨機變數分佈情況,它是取決於類別 \(\omega\) 的狀態的。\(P(\omega_i)\)是類先驗資訊,是根據先前知識經驗給定的,並且因為總共就c類,所以很容易得到\(\sum^{c}_{j=1}P(\omega_j)=1\)\(p(x)\)是歸一化因子,並不重要:

\[p(x)=\sum^{c}_{j=1}p(x|\omega_j)P(\omega_j) \]

目的就是使得所有後驗概率之和為1。

貝葉斯公式提供了一個後驗概率的重要計算依據:從似然概率和先驗概率得到。

2. 最小錯誤率貝葉斯決策

首先簡化問題為二分類問題,比如簡訊分類問題,\(\omega=\omega_1\) 是將簡訊分為有用簡訊,\(\omega=\omega_2\) 是將簡訊分類為垃圾簡訊。假設我們現在對這兩類的先驗概率和特徵 \(x\) 的類條件概率分佈都知道了。那麼通過一個簡訊提取到的特徵 \(x\) ,就可以利用貝葉斯公式計算後驗概率,也就是對可能的兩類做出的概率判斷。

\[P(\omega_1|x)=p(x|\omega_1)P(\omega_1)\\ P(\omega_2|x)=p(x|\omega_2)P(\omega_2) \]

很自然的來比較後驗概率來進行決策,哪一類的後驗概率大,就判定為哪一類,先驗是給定的,歸一化因子不重要,實質上比的就是類條件概率分佈。

  • 現在引入一個錯誤率 \(P(error|x)\) 的概念,對一個\(x\) ,算出了 \(P(\omega_1|x)\)\(P(\omega_2|x)\),假如我們讓\(\omega=\omega_1\),也就是判定為第一類,把這條簡訊判斷成有用的,那麼我們判斷正確的概率就是 \(P(\omega_1|x)\) ,而判斷錯誤的概率就是\(P(\omega_2|x)\)。寫成公式:

\[P(error|x)= \begin{cases} P(\omega_1|x)& \text{如果判定為}\omega_2 \\ P(\omega_2|x)& \text{如果判定為}\omega_1 \end{cases} \]
  • 我們希望我們判斷的錯誤率更小,因此我們得到判決規則:

如果\(P(\omega_1|x)>P(\omega_2|x)\),判定為 \(\omega_1\);否則判定為 \(\omega_2\)

——這就是最小錯誤率貝葉斯決策,也就是哪一類後驗概率大,判為哪一類

  • 寫成似然概率和先驗概率的形式:

如果\(p(x|\omega_1)P(\omega_1)>p(x|\omega_2)P(\omega_2)\),判定為 \(\omega_1\);否則判定為 \(\omega_2\)

3. 最小風險貝葉斯決策

下面把判決規則升級一下。

再回想一下簡訊分類的問題。假如預測成有用簡訊和騷擾簡訊的後驗概率接近的時候,這時候誤判的可能性還是比較高的。如果誤判,可能會把有用的分成垃圾,把垃圾簡訊分成有用的。可以想象這兩者的錯誤率是此消彼長的,但對哪種的錯誤率容忍度更高呢?把有用的分成垃圾的看起來更加難以接受。這時候可能就希望那種模稜兩可的情況還是判定成有用的好。那麼如何來體現這種對錯誤率容忍度的不同呢?下面就引入損失函式。

對每一種判斷以及真實情況定義一個損失函式\(\lambda(\alpha_i|\omega_j)\),以下面的兩類問題為例

\(\lambda(\alpha_i\vert\omega_j)\) \(\omega_1\) \(\omega_2\)
\(\alpha_1\) 0 1
\(\alpha_2\) 2 0

\(\omega_j\) 表示要分類物件的真實類別是 \(\omega_j\)\(\alpha_i\) 表示要採取的行為,即判定為 \(\omega_i\)

以簡訊分類為例,假如真實是\(\omega_1\) ,有用簡訊,採取\(\alpha_1\) ,判斷為有用,也就是判斷正確了,可以定義損失就是0。假如真實是\(\omega_2\) ,垃圾簡訊,採取\(\alpha_1\) ,判斷為有用,也就是判斷錯誤了,可以定義損失函式為1。假如真實是\(\omega_1\) ,有用簡訊,採取\(\alpha_2\) ,判斷為垃圾,同樣是判斷錯誤了,而這種錯誤我們的容忍度更低,那麼可以定義損失函式為2。

  • 損失函式乘以對應的後驗概率\(P(\omega_j|x)\) 並求和,得到風險函式\(R(\alpha_i|x)\)

\[R(\alpha_1|x)=\lambda(\alpha_1|\omega_1)P(\omega_1|x) +\lambda(\alpha_1|\omega_2)P(\omega_2|x)\\ R(\alpha_2|x)=\lambda(\alpha_2|\omega_1)P(\omega_1|x) + \lambda(\alpha_2|\omega_2)P(\omega_2|x) \]

理解起來就是:\(\alpha_i\)行為的風險=每種 \(\omega\) 情況下采取\(\alpha_i\)行為的損失x是這種 \(\omega\) 的後驗概率

  • 與最小錯誤率貝葉斯決策相對應的,這時候使得風險函式最小就行了,判決規則寫成:

如果\(R(\alpha_1|x) < R(\omega_2|x)\),採取行為\(\alpha_1\) ,也就是判定為 \(\omega_1\);否則採取行為\(\alpha_2\) ,也就是判定為 \(\omega_2\)

因此決策的方式就是採取風險\(R(\alpha_i|x)\)最小的行為\(\alpha_i\)——這是最小風險貝葉斯決策

  • \(\lambda(\alpha_i|\omega_j)\) 簡寫成\(\lambda_{ij}\) ,並把類條件概率和先驗概率代入,得到判決規則:

如果\((\lambda_{11}-\lambda_{21})p(x|\omega_1)P(\omega_1) < (\lambda_{22}-\lambda_{12})p(x|\omega_2)P(\omega_2)\),採取行為\(\alpha_1\) ,也就是判定為 \(\omega_1\);否則採取行為\(\alpha_2\) ,也就是判定為 \(\omega_2\)

  • 還可以寫成似然比的形式:

如果\(\frac{p(x|\omega_1)}{p(x|\omega_2)}<\frac{(\lambda_{22}-\lambda_{12})}{(\lambda_{11}-\lambda_{21})}\frac{P(\omega_2)}{P(\omega_1)}\) ,採取行為\(\alpha_1\) ,也就是判定為 \(\omega_1\);否則採取行為\(\alpha_2\) ,也就是判定為 \(\omega_2\)

這樣寫的好處是,不等式右邊的損失函式和先驗概率都是給定的,是一個常數,左邊就是似然概率之比,所以只需要算出似然概率之比就可以進行分類預測

  • 另外,如果採用如下0-1損失函式的時候,最小風險貝葉斯決策就會退化成最小錯誤率貝葉斯決策
\(\lambda(\alpha_i\vert\omega_j)\) \(\omega_1\) \(\omega_2\)
\(\alpha_1\) 0 1
\(\alpha_2\) 1 0

\[R(\alpha_1|x)=\lambda(\alpha_1|\omega_1)P(\omega_1|x)+\lambda(\alpha_1|\omega_2)P(\omega_2|x)=P(\omega_2|x)\\ R(\alpha_2|x)=\lambda(\alpha_2|\omega_1)P(\omega_1|x) + \lambda(\alpha_2|\omega_2)P(\omega_2|x)=P(\omega_1|x) \]
  • 如果是多類情況

\[R(\alpha_i|x)=\sum^c_{j=1}\lambda(\alpha_i|\omega_j)P(\omega_j|x) \]

決策行為\(\alpha^*=argminR(\alpha_i|x)\) ,也就是採取的行為\(\alpha_i\) 是使得風險\(R(\alpha_i|x)\) 最小的那個\(\alpha_i\)

相關文章