極小化極大準側(Minimax)

2021-06-23 09:07:45 字數 3046 閱讀 9202

1、問題的提出

有時我們必須設計在整個先驗概率上都能很好工作的分類器。也就是說,先驗概率可能波動較大又或者先驗概率在設計分類器時是未知的,那麼我們要如何設定分類器的判決邊界,使得無論先驗概率以何種形式出現時,都可以將貝葉斯分類器的誤差控制在一定範圍,而不是大幅度的誤差波動。

2、判決邊界是什麼?

橫軸為特徵值x,縱軸為似然比。似然比就是似然函式的比值。假設有乙個兩類分類問題,兩個似然比分別為p(x|ω1)和p(x|ω2),那麼似然比就是p(x|ω1)/p(x|ω2)。

貝葉斯決策規則可以解釋成如果「似然比超過某個閾值(θ),那麼可判決為ω1類」。

3、為何可以依靠似然比及閾值來做決策?

由【此文】我們知道了風險是什麼以及風險是如何計算的。根據如下的條件風險計算公式

我們可以計算兩類分類問題

r(a1|x)=λ11p(ω1|x) + λ12p(ω2|x)

r(a2|x)=λ21p(ω1|x) + λ22p(ω2|x)

各個式子的含義:

r(a1|x)的意思是對特徵值x採取a1行動所可能導致的風險。

r(a2|x)的意思是對特徵值x採取a2行動所可能導致的風險。

λij的含義是將ωi類歸到ωj類所導致的錯誤代價。

按照貝葉斯決策的意思,對特徵值x要選擇風險最小的乙個行為來action。也就是說如果r(a1|x)2|x),那麼將特徵值x所在的樣本判為ω1類。

進一步演繹這個不等式,得

λ11p(ω1|x) + λ12p(ω2|x) < λ21p(ω1|x) + λ22p(ω2|x)

λ11p(ω1|x) - λ21p(ω1|x)  < λ22p(ω2|x) - λ12p(ω2|x)

(λ11 - λ21)p(ω1|x) < (λ22 - λ12)p(ω2|x)  【式 ①】

又根據貝葉斯公式

式①可以整理為

(λ11 - λ21)p(x|ω1)p(ω1) < (λ22 - λ12)p(x|ω2)p(ω2)

寫成分數形式為

若將不等式的右邊用θ替代,即

那麼將有

這個不等式的含義就是:「當似然比大於θ時,也就是r(a1|x)2|x)時,因此判決為ω1

」,得證。

4、如何確定閾值θ ?

閾值θ可以說是我們分類器的判決邊界,那麼怎樣的θ才能滿足我們在1中提出的問題,即在先驗概率未知的情況下設定乙個判決邊界,該邊界可以使總的風險的最壞情況界定在一定範圍之內。

確定閾值的方法如下:

在似然函式固定的情況下,可以根據

兩個公式求出在x的取值域內,當p(ω1)取不同值時的曲線。如下圖所示:

如圖所示,當p(ω1)=0.5時,出現最大的貝葉斯誤差。我們就將此p(ω1)值作為制訂判決邊界的引數來計算閾值θ。另乙個引數p(ω2) = 1 - p(ω1)。λ11、λ21、λ22 、λ12均為已知。

p(error)的計算函式為:

function perror = getperror(rate1,rate2)

for index=0:10

pw1 = index/10;

pw2 = 1-pw1;

for x= 1:12

perror(index + 1) = 0;

px = rate1(x)*pw1 + rate2(x)*pw2;

pw1x = rate1(x)*pw1/px;

pw2x = rate2(x)*pw2/px;

if(pw1x < pw2x)

perror(index + 1) = perror(index + 1) + pw1x * px;

else

perror(index + 1) = perror(index + 1) + pw2x * px;

endend

end

引數rate1為p(x|ω1),rate2為p(x|ω2)。

極大極小搜尋

極大極小搜尋演算法 用於圍棋,五子棋,象棋等棋類,結果有三種可能 勝利 失敗和平局。理論上可以窮舉所有的走法,這就需要生成整棵博弈樹。實際上不可行。因此搜尋時可以限 定博弈樹的深度,到達該深度則不再往下搜,相當於只往前看 n 步。如果題意是求出必勝,必敗,必和等,那麼肯定是全部搜完整一棵搜尋樹,此題...

極大極小定理

首先,本定理針對的是 hermitian 矩陣,即共軛對稱矩陣。因為只有共軛對稱矩陣的特徵值是確定為實數值的,其他矩陣很可能是復數值,而復數值,也就不存在大小關係了。courant fisher min max 定理 對於 n times n 的矩陣 mathbf 有 其中,lambda 是第 k ...

搜尋 博弈,極小化和極大化

這篇部落格要討論乙個問題,就是如何讓計算機下棋?有如下三種形式 1.同人類的做法一樣,分析局勢,和將帥的安全性,這裡會有一些分析策略,還有一些戰術,這些混合在一起,最終得到下一步要走哪.不過很遺憾的是,如今的程式都不知道如何包含這類東西.2.使用 if then 結構 以這種結構,如果第一步走什麼,...