咱們使用一些傳統的監督學習方法作分類的時候,每每是訓練樣本規模越大,分類的效果就越好。可是在現實生活的不少場景中,標記樣本的獲取是比較困難的,這須要領域內的專家來進行人工標註,所花費的時間成本和經濟成本都是很大的。並且,若是訓練樣本的規模過於龐大,訓練的時間花費也會比較多。那麼有沒有辦法,可以使用較少的訓練樣本來得到性能較好的分類器呢?主動學習(Active Learning)爲咱們提供了這種可能。主動學習經過必定的算法查詢最有用的未標記樣本,並交由專家進行標記,而後用查詢到的樣本訓練分類模型來提升模型的精確度。算法
在人類的學習過程當中,一般利用已有的經驗來學習新的知識,又依靠得到的知識來總結和積累經驗,經驗與知識不斷交互。一樣,機器學習模擬人類學習的過程,利用已有的知識訓練出模型去獲取新的知識,並經過不斷積累的信息去修正模型,以獲得更加準確有用的新模型。不一樣於被動學習被動的接受知識,主動學習可以選擇性地獲取知識,機器學習
主動學習的模型以下:函數
A=(C,Q,S,L,U),性能
其中 C 爲一組或者一個分類器,L是用於訓練已標註的樣本。Q 是查詢函數,用於從未標註樣本池U中查詢信息量大的信息,S是督導者,能夠爲U中樣本標註正確的標籤。學習者經過少許初始標記樣本L開始學習,經過必定的查詢函數Q選擇出一個或一批最有用的樣本,並向督導者詢問標籤,而後利用得到的新知識來訓練分類器和進行下一輪查詢。主動學習是一個循環的過程,直至達到某一中止準則爲止。學習
剛纔說到查詢函數Q用於查詢一個或一批最有用的樣本。那麼,什麼樣的樣本是有用的呢?即查詢函數查詢的是什麼樣的樣本呢?在各類主動學習方法中,查詢函數的設計最經常使用的策略是:不肯定性準則(uncertainty)和差別性準則(diversity)。設計
對於不肯定性,咱們能夠藉助信息熵的概念來進行理解。咱們知道信息熵是衡量信息量的概念,也是衡量不肯定性的概念。信息熵越大,就表明不肯定性越大,包含的信息量也就越豐富。事實上,有些基於不肯定性的主動學習查詢函數就是使用了信息熵來設計的,好比熵值裝袋查詢(Entropy query-by-bagging)。因此,不肯定性策略就是要千方百計地找出不肯定性高的樣本,由於這些樣本所包含的豐富信息量,對咱們訓練模型來講就是有用的。orm
那麼差別性怎麼來理解呢?以前說到或查詢函數每次迭代中查詢一個或者一批樣本。咱們固然但願所查詢的樣本提供的信息是全面的,各個樣本提供的信息不重複不冗餘,即樣本之間具備必定的差別性。在每輪迭代抽取單個信息量最大的樣本加入訓練集的狀況下,每一輪迭代中模型都被從新訓練,以新得到的知識去參與對樣本不肯定性的評估能夠有效地避免數據冗餘。可是若是每次迭代查詢一批樣本,那麼就應該想辦法來保證樣本的差別性,避免數據冗餘get