在機器學習中常常會遇到正負樣本的問題,花了一點時間查找資料,基本上弄明白了一點究竟是怎麼回事,記錄在這裏以便之後查看,也但願可以幫助到有疑惑的人,固然也但願理解的比較透徹的人看到以後對於理解的不對的地方可以予以指點。html
首先我將這個問題分爲分類問題與檢測問題兩個方面進行理解。在分類問題中,這個問題相對好理解一點,好比人臉識別中的例子,查到的資料中介紹的比較清楚的網址以下(http://stackoverflow.com/questions/25598335/collect-negative-samples-of-adaboost-algorithm-for-face-detection),其中的截圖以下,正樣本很好理解,就是人臉的圖片,負樣本的選取就與問題場景相關,具體而言,若是你要進行教室中學生的人臉識別,那麼負樣本就是教室的窗子、牆等等,也就是說,不能是與你要研究的問題絕不相關的亂七八糟的場景圖片,這樣的負樣本並無意義,還有一個比較好的網址是(http://www.doc.ic.ac.uk/~sgc/teaching/pre2012/v231/lecture10.html)算法
在檢測的問題中,我理解着就不是那麼簡單了,由於檢測問題須要作的事情是指出哪裏有什麼,也就是既要給出框,又要說明框中是什麼,在這種狀況下,咱們所具有的數據就是一些人工標註的圖片,這些圖片上有框,而且會給出框中的物體類別,咱們須要運用這些數據生成訓練中的正負樣本數據,參考了faster以及SSD兩種檢測框架中對於正負樣本的選取準則,個人理解以下:網絡
首先,檢測問題中的正負樣本並不是人工標註的那些框框,而是程序中(網絡)生成出來的框框,也就是faster rcnn中的anchor boxes以及SSD中在不一樣分辨率的feature map中的默認框,這些框中的一部分被選爲正樣本,一部分被選爲負樣本,另一部分被看成背景或者不參與運算。不一樣的框架有不一樣的策略,大體都是根據IOU的值,選取個閾值範圍進行斷定,在訓練的過程當中還須要注意均衡正負樣本之間的比例。框架
我理解着,在fast的框架中,也是須要多SS算法生成的框框與GT框進行IOU的判斷,進而選取正負樣本,總之,正負樣本都是針對於程序生成的框框而言,而非GT數據。機器學習