本文轉自http://blog.csdn.net/zwlq1314521/article/details/8142020
本文會介紹tld中隨機森林的建立方法及隨機森林的一些基本概念。
首先需要知道的是在tld中的隨機森林是用於目標檢測分類器,它能夠線上更新和預測,撇開它的p-n學習的外套,我們來看它的本質,他就是一個改進的adaboost。
看一下隨機森林的概念,隨機森林包含很多決策樹,每個決策樹用特徵中的某一組特徵建立,這組特徵的每個特徵代表了決策樹某一水平的量度。所以隨機森林分類的過程就是對於每個隨機產生的決策樹分類器,輸入特徵向量,森林中每棵樹對樣本進行分類,根據每個樹的權重得到最後的分類結果。所有的樹訓練都是使用同樣的參數,但是訓練集是不同的,分類器的錯誤估計採用的是oob(out of bag)的辦法 。至於決策樹我們都很清楚。那麼為什麼要用很多決策樹來建立隨機森林哪?一個很淺顯的道理--團結就是力量,評價一個人是好人還是壞人,你多採訪一些人總比一個人的獨斷要客觀準確點吧。專業一點說,rf比decision
tree在保持了高效性的同時,不會有dt的過擬合問題,相比svm來說識別率要高,特別是多目標識別的場合。
下面這個圖就是rf在目標檢測方面的:
可以這樣需要通過訓練建立判別模型,就要有訓練資料,要明確標記好這些資料那些是目標的那些是背景的。訓練資料的獲得是這樣的
首先利用有放回的抽樣從原始訓練樣本集中抽取 k 個樣本集,且每個樣本的樣本容量都與原始訓練集一樣;其次對抽樣的 k 個樣本集分別建立其對應的決策樹模型,得到 k 種分類;利用者k個樣本訓練k顆決策樹,根據這k 種分類對每個測試樣本進行投票表決決定其最終分類。這隻是一個大概,你要選擇什麼特徵,什麼樣的目標元素積極決策樹的分裂方法就靠你自己了。
具體到tld的rf,我門來看一下:在第一幀的時候,你用滑鼠選定目標,正樣本來自於跟蹤框內的patch,負樣本從框外選,當然,正樣本可以warp一下,這個warp就是幾何變換,I'=A*I*θ(公式不好打);經過訓練後找到每棵樹相應的節點函數和閾值,這個節點函數和閾值就是我們所謂的判別參數,是處理未知樣本的依據。如果你選取的決策屬性是最大資訊增益,那麼訓練得到的判別參數在對測試樣本分類後,就能保證資訊增益最大化,這樣你獲得的樣本的確定性就很大。這是目標選取的過程,先寫這麼多吧。如果你單純的使用rf對目標某一類別進行分割就更簡單了,上面的表述就可以說明,只不過訓練樣本方面,某一類別的分割樣本更廣闊一些。
今天就寫到這,最後分享給大家一個xue編程的網站,斯坦福大學的課程,還不錯:http://v.163.com/movie/2008/7/B/O/M6SIM7VT5_M6SIR3IBO.html