在機器學習(Machine learning)領域,監督學習(Supervised learning)、非監督學習(Unsupervised learning)以及半監督學習(Semi-supervised learning)是三類研究比較多,應用比較廣的學習技術,wiki上對這三種學習的簡單描述以下:算法
其實不少機器學習都是在解決類別歸屬的問題,即給定一些數據,判斷每條數據屬於哪些類,或者和其餘哪些數據屬於同一類等等。這樣,若是咱們上來就對這一堆數據進行某種劃分(聚類),經過數據內在的一些屬性和聯繫,將數據自動整理爲某幾類,這就屬於非監督學習。若是咱們一開始就知道了這些數據包含的類別,而且有一部分數據(訓練數據)已經標上了類標,咱們經過對這些已經標好類標的數據進行概括總結,得出一個 「數據-->類別」 的映射函數,來對剩餘的數據進行分類,這就屬於監督學習。而半監督學習指的是在訓練數據十分稀少的狀況下,經過利用一些沒有類標的數據,提升學習準確率的方法。機器學習
在真實的數據分析場景中,咱們能夠獲取海量的數據,可是這些數據都是未標註數據,不少經典的分類算法並不能直接使用。那確定會有人說,數據是沒有標註的,那咱們就標註數據嘍!這樣的想法很正常也很單純,可是數據標註的代價是很大的,及時咱們只標註幾千或者幾萬訓練數據,標註數據的時間和金錢成本也是巨大的。函數
在介紹active learning的概念以前,首先先談一下樣本信息的問題。學習
什麼是樣本信息呢?簡單地來說,樣本信息就是說在訓練數據集當中每一個樣本帶給模型訓練的信息是不一樣的,即每一個樣本爲模型訓練的貢獻有大有小,它們之間是有差別的。優化
所以,爲了儘量地減少訓練集及標註成本,在機器學習領域中,提出主動學習(active learning)方法,優化分類模型。spa
主動學習(active learning),指的是這樣一種學習方法:xml
有的時候,有類標的數據比較稀少而沒有類標的數據是至關豐富的,可是對數據進行人工標註又很是昂貴,這時候,學習算法能夠主動地提出一些標註請求,將一些通過篩選的數據提交給專家進行標註。htm
這個篩選過程也就是主動學習主要研究的地方了。blog
主動學習算法能夠由如下五個組件進行建模:
A=(C,L,S,Q,U)A=(C,L,S,Q,U)
其中 CC 爲一個或一組分類器;LL 爲一組已標註的訓練樣本集;QQ 爲查詢函數,用於在未標註的樣本中查詢信息量大的樣本;UU 爲整個未標註樣本集;SS 爲督導者,能夠對未標註樣本進行標註。
主動學習算法主要分爲兩階段:
第一階段爲初始化階段,隨機從未標註樣本中選取小部分,由督導者標註,做爲訓練集 創建初始分類器模型;
第二階段爲循環查詢階段,SS 從未標註樣本集 UU 中,按照某種查詢標準 QQ,選取必定的未標註樣本進行標註,並加到訓練樣本集 LL 中, 從新訓練分類器,直至達到訓練中止標準爲止。
主動學習算法是一個迭代的過程,分類器使用 迭代時反饋的樣本進行訓練,不斷提高分類效率。
主動學習的實例:qq空間相冊中的人臉識別技術
下圖爲Action learning在相同的標註樣本數目下與監督學習算法的比較:
不少人認爲主動學習也屬於半監督學習的範疇了,但其實是不同的,半監督學習和直推學習(transductive learning)以及主動學習,都屬於利用未標記數據的學習技術,但基本思想仍是有區別的。
如上所述,主動學習的「主動」,指的是主動提出標註請求,也就是說,仍是須要一個外在的可以對其請求進行標註的實體(一般就是相關領域人員),即主動學習是交互進行的。
而半監督學習,特指的是學習算法不須要人工的干預,基於自身對未標記數據加以利用。
[2] 2012,主動學習算法綜述