重磅乾貨,第一時間送達算法
用一條垂直於X軸或者Y軸的直線將藍色點和黃色點成功分離,不管這個直線是怎麼選取,這個分類都不可能達到100%的準確率。當年感知機的提出爲咱們解決線性問題提供瞭解題思路,當面對異或問題的時候,感知機卻無能爲力。後來引入了激活函數,解決了異或問題,給感知機注入了活力。回到正題,當一條直線沒法正確劃分這個分類的時候,要怎麼作呢?引入激活函數,能夠嗎?api
Bagging訓練流程:網絡
Bagging的特色:框架
A. 對每一個分類器,輸入數據都是從原始訓練數據中可重複的採樣, 每一個分類器的輸入服從相同的分佈,且各輸入之間相互獨立。而Boost中,各訓練數據的分佈不獨立,每一個分類器的輸入樣本之間也不獨立。
B. 各分類器能夠採用相同算法,不一樣的超參數;也可採用不一樣算法;
C. 每一個分類器的輸出沒有權重之分,都是平等的。
它的特色在「隨機採樣」。那麼什麼是隨機採樣?
隨機採樣(bootsrap)就是從咱們的訓練集裏面採集固定個數的樣本,可是每採集一個樣本後,都將樣本放回。也就是說,以前採集到的樣本在放回後有可能繼續被採集到。對於咱們的Bagging算法,通常會隨機採集和訓練集樣本數m同樣個數的樣本。這樣獲得的採樣集和訓練集樣本的個數相同,可是樣本內容不一樣。若是咱們對有m個樣本訓練集作T次的隨機採樣,,則因爲隨機性,T個採樣集各不相同。
此外Bagging在進行權重分配的時候有多種不一樣的分配方式:機器學習
極可能在每次抽樣m個樣本的時候,會拿到與以前抽樣相同數據的狀況,致使分類器效果在進行線性組合後造成的強分類器效果不佳,在《機器學習》一書中也提到,若進行隨機採樣,將會有36.8%的樣本是不會被抽樣到,故因爲訓練集帶來的訓練偏差難以免ide
提高( boosting)方法是一種經常使用的統計學習方法,應用普遍且有效.在分類問題中,它經過改變訓練樣本的權重,學習多個分類器,並將這些分類器進行線性組合,提升分類的性能。提高方法的思路和表明性的提高算法 Adaboost,Adaboost算法是1995年由 Freund和 Schapire提出的
集成學習是使用一系列學習器進行學習,並使用某種規則把各個學習結果進行整合從而得到比單個學習器更好的學習效果的一種機器學習方法。通常狀況下,集成學習中的多個學習器都是同質的"弱學習器"。函數
基學習算法(同質集成):例如「決策樹集成」、「神經網絡集成」(對應的個體學習器稱之爲基學習器)
異質集成:包含不一樣類型的個體學習器——同時包含決策樹和神經網絡等不一樣種類的學習方法性能
在機率近似正確學習的框架中, 若是存在一個多項式的學習算法可以學習它,而且正確率很高,那麼就稱這個概念是強可學習的;
若是存在一個多項式的學習算法可以學習它,學習的正確率僅比隨機猜想略好,那麼就稱這個概念是弱可學習的.
很是有趣的是 Schapire後來證實強可學習與弱可學習是等價的, 在學習中,若是已經發現了「弱學習算法」,那麼可否將它提高( boost)爲「強學習算法」.
你們知道,發現弱學習算法一般要比發現強學習算法容易得多.那麼如何具體實施提高,便成爲開發提高方法時所要解決的問題.學習
這樣,對提高方法來講,有兩個問題須要回答:
1.在每一輪如何改變訓練數據的權值或機率分佈;
2.如何將弱分類器組合成一個強分類器.
Adaboost算法的核心思想就是由分類效果較差的弱分類器逐步的強化成一個分類效果較好的強分類器。
而強化的過程,就是以下圖所示,逐步的改變樣本權重,樣本權重的高低,表明其在分類器訓練過程當中的重要程度。而分類器在訓練的過程當中會更加看重這些樣本,進行「特殊照顧」
所謂「三個臭皮匠,頂個諸葛亮」正是這個道理,能夠看到在每一次分類的過程當中,被分類錯誤的點的面積(即權重)在上升,分類正確的點的面積(即權重)在降低,可以更好的使得分類器注意到這些點。測試
訓練數據集T={(x1,y1),(x2,y2),...,(xN,yN)},其中x表示輸入樣本,y∈{+1,−1}爲對應的標籤。
輸出:最終分類器G(x)
(a)在權值分佈爲D1的訓練數據上,閾值ν取2.5時分類偏差率最低,故基本分類器爲
(b)G(x)在訓練數據集上的偏差率
(c)計算G(x)的係數
(d)更新訓練數據的權值分佈
原先權值(表1):
如今更新後的權值(表2)
能夠注意到被分類錯誤的點的權值是上升了,這是由於在公式中
當判斷一致的時候,指數函數的指數是負數,exp(-α)<1,
當判斷不一致的時候,指數函數的指數是正數,exp(α)>1
根據表2的權值,咱們應該着重關注x=6,7,8這三個點。
如今更新後的權值(表3)
能夠看到,因爲第二個分類器的在x=3,4,5上分類預測錯誤,相對應的權值都會上升。基本分類器2的權值爲何會比基本分類器1的權值高呢?那是由於基本分類器2的預測偏差率比1的小,基本分類器1的偏差率爲0.1+0.1+0.1=0.3,而基本分類器2的偏差率爲0.0715+0.0715+0.0715=0.2143,當偏差率下降的時候,分類器的權重會上升,表明着這個分類器進行「投票」的時候比重是比1大的。同理構造分類器3。
總結:權值變化表(紅色標註的爲該分類器分類錯誤的權值變化)
注意:須要注意的是,boosting 算法在訓練的每一輪都須要檢查當前生成的基學習器是否知足基本條件,一旦條件不知足則基學習器被拋棄。初始設置的學習輪數T也許未達到,可能致使最終集成的學習器性能不佳。
從上述結果中能夠看出,當弱分類器數目達到50個的時候,訓練集和測試集的預測準確率均達到了一個比較高的值,可是若是繼續増增長弱分類器數量的話,測試集的準確率反而開始降低了,這就是所謂的過擬合(overfitting)
Tensorflow的55個經典案例
AutoML綜述
機器學習算法和算法有什麼聯繫(附機器學習實戰PDF)
Tensorflow 3w+star例子帶你學
實戰 | CNN+BLSTM+CTC的驗證碼識別從訓練到部署
識別二維碼關注咱們