麻省理工公開課人工智能筆記十六

本篇主要講boosting算法,基於分類器,以二分類爲例

有一個分類器h,他只有兩種結果{+1,-1},他的出錯概率爲從0到1,假設概率接近0.5但是弱分類器,接近0的是強分類器,那能否使用多個弱分類器得到強分類器呢。

假設我們有一個H(x),他是所有h(x)的和,這裏選三個,用h1,h2,h3表示,同時將和用符號表示,即根據和的結果決定是+1還是-1.

假設h1、h2、h3的出錯點是像上左圖中三個互補相交的區域,那H公式總是正確的,但如果像右圖那樣,卻會出錯。

我們可以建立一個算法來幫我們。這是①

選取特定的弱分類器,使用數據,不經任何干擾的進行h1分類,即對數據進行所有測試,選取最小的出錯概率的分類。然後我們將使用誇大h1誤差的數據。即更關注那些讓h1出現誤差的樣本,給他們賦予權重或別的什麼(誇大),將其給h2,然後,繼續這樣,誇大h1給的結果不同於h2的那些,給h3。

然後我們可以得到一個像這樣的樹,這是②

現在,我們考慮決策樹樁

假設我們有一個二維空間,那麼決策樹樁是一單個測試,這不是一棵完整的將樣本分爲同質組的樹,這裏只是使用單個測試,每個可能的測試都是一個分類器,從這裏我們得到了12個測試,因爲考慮豎着的三條畫線,我們可以將+或-放到左側或是右側,這就使六個測試,然後有兩個維度,就使12個。

我們可以這樣生成一批測試,然後用這批測試的帶想要的結果。

再看,這些測試的誤差率是多少,我們假定,每個 樣本點對應有一個權重。w1、w2、w3,最開始,我們假定特們都是相同的,也就是說,最開始wi=1/N。N是總數。

那麼,誤差率就等於所有出錯樣本的權重值求和。

第一步中,大家都是相同的權重值,但隨着過程的發展,我們會設法讓權重值發生變化,比如在這裏,我們誇大樣本三,那麼w3就會上升,不過我們還是要保證整個空間中所有權重之和等於1.

然後,我們繼續向下考慮,如何將這些東西合併起來,建立一個分類器,將所有分類器合併起來,α是權重。

總的算法

最初讓所有wi=1/N,然後選擇一個分類器最小化t時刻的誤差率,這樣我們可以使用誤差率確定α,這樣我們就能計算出t+1時刻的w,最後,循環計算。

最後,我們需要知道如何計算t+1時刻的w,就如上圖,z是某個歸一化因子,作用是讓新權重加起來等於1,y(x)是一個函數,值爲+1或-1,就像在支持向量機中的y一樣,他的值取決於輸出。

對於整個式子的最小化誤差如上圖

同時,這個最小化誤差也是H(x)這個式子產生的誤差率的界限,這意味着,誤差率可以隨公式總項的增加而上升,而有這個式子,誤差率將由一個指數式衰減的函數作爲界限,他最終確保了收斂爲0

現在我們做一些數學計算

得到了t+1時刻的wi的值,我們將他們求和

我們發現,分類正確和錯誤的情形下,所有wi求和的值都是1/2,這意味着,你取給出正確答案的那些權重,然後縮放到他們的和是1/2,就得到下一代的權重,不需要計算z,不用計算α,只需要縮放。

同時,我們還發現,在測試中只有極少需要考慮,而不用考慮全部的測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章