PAC極簡例子

2021-10-07 23:16:51 字數 2621 閱讀 3391

% =1

−1%=

1−δ99\% = 1 - 1\% = 1 - \delta

99%=1−

1%=1

−δ,2 %=

ϵ2\% = \epsilon

2%=ϵ

。如圖1所示,樣本屬性值域:實數區間[0, 1],標籤:負(三角形表示)、正(圓圈表示)兩類。已知所有的負例均在正例左邊,且資料服從均勻分布(即在任何點取樣的概率密度相同)。求乙個分類器,使得它把負、正樣本分開。

圖中資料從左至右為,注意輸入的時候是亂序的。

圖1. 樣本與演算法示意圖

這是個二分類問題。

分類器模型(一維空間的超平面)即乙個點(閾值)。

隨著樣本數量的增加,最右邊的負例與最左邊的正例距離越來越近,閾值的可取範圍越來越窄,分類器越準確。

逐個掃瞄給定資料,獲得負例的最大值,圖1中r′=

0.33

r' = 0.33

r′=0.3

3。完畢。

直觀上看,取r′=

(0.33

+0.65)/

2=0.49

r' = (0.33 + 0.65)/2 = 0.49

r′=(0.

33+0

.65)

/2=0

.49是乙個更好的選擇,但是沒關係,這點損失不算啥。

假設真正的分割點為r

rr, 則當測試資料落在r′r'

r′與r

rr之間時,我們會錯誤地把負例誤分類為正例。由於r′r'

r′是貼著最大負值劃的,我們不可能犯另一種錯誤:「把正例誤分類為負例」。這使得演算法更容易分析。根據均勻分布假設,分類器的泛化誤差為r−r

′r - r'

r−r′.令r′′

=r−ϵ

r'' = r - \epsilon

r′′=r−

ϵ。則測試資料落在[r′

′,r]

[r'', r]

[r′′,r

]的概率為ϵ

\epsilon

ϵ.如果r

′′r' < r''

r′′,則分類器的泛化誤差大於ϵ

\epsilon

ϵ;否則分類器的泛化誤差小於ϵ

\epsilon

ϵ.我們不知道r是多少,也不知道r′′

r''r′

′是多少,但這些不重要(what?),我們只需要知道r′′

−r=ϵ

r'' - r = \epsilon

r′′−r=

ϵ.對於1個訓練資料而言,它落入區間[r′

′,r]

[r'', r]

[r′′,r

]的概率是epsilon,不落入該區間的概率是(1−

ϵ)(1 - \epsilon)

(1−ϵ).

對於m

mm個訓練資料而言,它們都不落入區間[r′

′,r]

[r'', r]

[r′′,r

]的概率是(1−

ϵ)m(1 - \epsilon)^m

(1−ϵ)m

. 這對應於泛化誤差大於ϵ

\epsilon

ϵ(失敗).

m

mm個訓練資料,至少有乙個落入區間[r′

′,r]

[r'', r]

[r′′,r

]的概率是1−(

1−ϵ)

m1- (1 - \epsilon)^m

1−(1−ϵ

)m. 這對應於泛化誤差小於ϵ

\epsilon

ϵ(成功).

要求分類器成功的概率不小於1−δ

1 - \delta

1−δ,即要求1−(

1−ϵ)

m≥1−

delt

a1- (1 - \epsilon)^m \geq 1 - delta

1−(1−ϵ

)m≥1

−del

ta⇒

\rightarrow⇒(1

−ϵ)m

≤δ(1 - \epsilon)^m \leq \delta

(1−ϵ)m

≤δ.根據"眾所周知"的不等式(1−

ϵ)m≤

e−mϵ

(1 - \epsilon)^m \leq e^

(1−ϵ)m

≤e−m

ϵ, 可轉而要求e−m

ϵ≤δe^ \leq \delta

e−mϵ≤δ

\rightarrow⇒m≥

1ϵln⁡

1δm \geq \frac \ln\frac

m≥ϵ1​ln

δ1​.

分析完畢。

參考文獻

[1]: foundations of machine learning.

[2]:

Nodejs UDP極簡入門例子

dgram模組是對udp socket的一層封裝,相對net模組簡單很多,下面看例子。文字同步收錄於github主題系列 nodejs學習筆記 首先,啟動udp server,監聽來自埠33333的請求。server.js 例子 udp服務端 var port 33333 var host 127....

Nodejs UDP極簡入門例子

dgram模組是對udp socket的一層封裝,相對net模組簡單很多,下面看例子。文字同步收錄於github主題系列 nodejs學習筆記 首先,啟動udp server,監聽來自埠33333的請求。server.js 例子 udp服務端 var port 33333 var host 127....

python極簡主義 極簡主義OCR

在編寫這個程式時,我一直有個疑惑,就是在east文字檢測模組裡。起初,我是在裡看到用opencv的dnn模組做east文字檢測,但是它的讀取模型檔案初始化網路的方式我一直疑惑不解。看text detect recognition.py的第152行 detector cv.dnn.readnet mo...