人工智能科普|機器學習入門精講,這40個知識點不可錯過(1)

為了讓大家更好地瞭解和學習AI基礎知識,我就人工智能核心領域之一——機器學習系統地總結了其40個入門必備知識點,今晚我們就先來學習第一部分。


集成學習——機器學習中的“屠龍寶刀”


集成學習方法是使用一系列學習器進行學習,再將學習結果整合,它像是某種優化手段和策略。在機器學習的監督學習算法中,我們想得到的是一個穩定且在各方面表現都很好的模型。

但往往我們只能得到一些弱監督模型(在某些方面表現比較好),集成學習通常就是結合多個簡單的弱機器學習算法,去做更準確的決策。

用俗語來講,就是集眾人智慧去做相應的決策,個人的決策可能在某些方面有些不準確,但其他人可以修正他的決策,從而達到結果最優化。

一般來講集成學習的關鍵有兩點,一是如何構建不同的分類器,另一個是如何將不同分類器的結果進行融合。

圍繞著這兩個核心問題,產生了很多算法,其中最具代表性、最被大家所熟知的就是

Boosting、Bagging和Stacking


人工智能科普|機器學習入門精講,這40個知識點不可錯過(1)



集成學習的算法——Boosting


Boosting是一種提高任意給定學習算法準確度的方法。它的思想起源於 Valiant提出的 PAC ( Probably Approximately Correct)學習模型。

Boosting是一種框架算法,主要是通過對樣本集的操作獲得樣本子集,然後用弱分類算法在樣本子集上訓練生成一系列的基分類器。

Adaboost是boosting中較有代表性的算法,Adaboost是一種迭代算法,通過集合弱分類器,進行訓練構成強分類器。

Adaboost算法的基本流程如下:

A.用平均分配的方式初始化訓練數據B.選擇基本分類器C.計算分類器的係數D.更新訓練數據的權重分配E.組合分類器,優化結果


通俗來講就是由誤差率求得分類器係數,由分類器係數得到組合方式。


人工智能科普|機器學習入門精講,這40個知識點不可錯過(1)



集成學習的算法——Bagging


根據個體學習器的生成方式不同,集成學習的算法分為串行化方法和並行化方法,串行化方法的主要代表就是上面所講的Boosting——因為個體學習器之間存在強依賴關係,所以只能依次進行。

串行化方法的主要代表就是我們現在要講的Bagging(bootstrap aggregating簡寫),因為個體學習器之間的關係依賴沒有那麼強烈,所以同時進行運算。

打個比方,Boosting更像是我們小時候吃糖葫蘆那樣,只能先吃掉上面的一顆,才能吃到下面的一顆,而Bagging就像是我們吃麵條,可以同時吃很多根,不存在只能先吃哪根,再吃另外一根。

Bagging的採樣方法是自助採樣法,用的是有放回的採樣。

一般步驟都是先抽取一定量的樣本,再計算想得到的統計量T,重複多次N,得到N個統計量,最後根據統計量,計算統計量的置信區間。

舉例說明:比如數據集裡有10000個數據,我們隨意從中抽取100個,得出統計量T1,然後將這100個數據放回到數據集裡,再從中抽取100個數據,得出統計量T2,如此循環反覆N次,得出統計量TN,計算出最後的置信區間。

名詞解釋:置信區間是指由樣本統計量所構造的總體參數的估計區間


人工智能科普|機器學習入門精講,這40個知識點不可錯過(1)


隨機森林


隨機森林(Random Forest)是Bagging的擴展變體。隨機森林在以決策樹為基學習器構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入了隨機屬性選擇。

簡單來說,隨機森林相當於Bagging的升級版,原來的Bagging會在決策樹的所有屬性中,選擇最優的那一個,而隨機森林是從相應節點的隨機屬性中,選擇一個最優屬性。

比如森林中有10萬棵樹,要從中選擇高於10米的樹,Bagging的做法就是重複統計多次,從而找到高於十米的樹的數量區間。

而隨機森林的做法是隨機將10萬棵樹分成10份,每份1萬棵。對於這10份,每份都有一個輸出結果,高出10米或者低於10米。如果高出10米的類別多,則整體是高於10米的,反之亦然。

在概率學中,樣本容量越大,結果就越接近,所以隨機森林能夠在訓練效果更高效,計算開銷更小的情況下,得出最後結果。

值得注意的是在隨機森林中,有兩個採樣過程是隨機的,第一個是輸入數據是隨機的,它是從整體性訓練數據中,選取一部分作為決策樹的構建,是有放回的選取。(這就保證每棵樹都不是全部的樣本,不容易出現問題)。

第二個是每個決策樹構建所需特徵是從整體特徵集中隨機選取的,採樣的特徵遠遠小於整體特徵。

人工智能科普|機器學習入門精講,這40個知識點不可錯過(1)


集成學習的算法——Stacking


相比較於Bagging和Boosting,Stacking提到的較少,Stacking算法是訓練出多個小分類器,把這些小分類器的輸出重新組合成為一個新的訓練集,訓練出來一個更高層次的分類器,以得到最終的結果。

Stacking算法在實際應用中,通常使用logistic迴歸作為組合策略。

Stacking 是一種集成學習技術,通過元分類器或元迴歸聚合多個分類或迴歸模型。

基礎層次模型(level model)基於完整的訓練集進行訓練,然後元模型基於基礎層次模型的輸出進行訓練。


人工智能科普|機器學習入門精講,這40個知識點不可錯過(1)



分享到:


相關文章: