【Active Learning - 01】深入學習“主動學習”:如何顯著地減少標註代價

寫在前面

這篇博文很早之前就整理好啦,一直想繼續完善再發布。但接下來一年的時間,估計會忙於各種事情,畢竟下半年就研三了。再者,最近在阿里實習,因某個業務場景需人工標註數據,藉此機會嘗試着做了主動學習的模擬實驗,取得不錯的效果,並把一些相關的理論知識和實驗內容發表到阿里的內網 ATA 上,獲得了不少讚賞(感謝)。因此,最近也在考慮是不是可以把一些內容也分享到 CSDN 上,也想着有機會的話能夠跟一些感興趣的讀者合作,深入探索研究主動學習領域,爭取能夠帶來實際的價值。

此外,還有一個重要的原因:如果讀者們覺得這個領域能夠在學術界上有所價值的話,也希望能夠合作哈,發個論文,嘿嘿個人感覺,能夠從如下兩個方面在 active learning 領域嘗試組織一波突破。但由於時間和精力有限(雖然這話有點官方,但確實有很多其他事情,哈哈),希望有相關領域的大佬可以帶飛,畢竟現在的我對論文還是很需要的...

  • “select strategy”:目前大多數選擇策略都是手工設計的,文獻[5]在2017年首次提出通過學習的方式獲得選擇策略,克服了手工設計的選擇策略跨領域泛化能力的不足。就像深度學習克服了手工設計的特徵一樣,通過學習的選擇策略還有很長的道路要走,也還有很多機會可能爭取。
  • 工業界的真實數據:下文提到的 CVPR-2017 論文中,關鍵點之一就是在醫療圖像領域的3個數據集驗證了 Active Learning 至少能夠減少一半以上的標註代價。因此,如果能夠巧妙的結合實際應用場景,感覺還是能夠做出點成績的(發表論文或者實際應用價值)
說明:本文純屬根據個人學習過程中的理解進行總結,僅代表個人觀點,如有問題,還望各位前輩指正...^^


本文修改日記(Log):博文的更新時間點

2018.05.10:彙總目前學習的論文,並完成初版的“概述”部分;

2018.05.14:常用於分類問題的啓發式方法、部分參考文獻的簡短總結、主動學習算法的步驟;

2018.05.16:主動學習算法的 Scenarios 和 Strategies;

2018.05.17:整理 CSDN 中關於AL的一些資料;

2018.05.21:增加楊文柱等人[21]《主動學習算法研究進展》並將部分內容整合於博文中;

2018.05.22:增加新章節“主動學習領域的難點彙總”;

2018.06.30:整理於阿里ATA內網;

2018.07.08:完善併發佈於CSDN;

2018.07.09:知乎鏈接 - https://zhuanlan.zhihu.com/p/39367595

(本文篇幅較長,可以結合博客左側導航的“目錄”閱讀感興趣的內容;文中出現[index]表示Reference文獻的索引號)

=============================


概述(Abstract)

《Fine-Tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally》這是一篇發表在 CVPR-2017 的文章,我根據這篇論文詳細的整理了相關的博文,也正是這篇論文讓我想進一步研究“主動學習”。這篇文章提出的方法主要想解決深度學習應用中的一個重要問題:如何使用儘可能少的標註數據集訓練一個模型,這個模型的性能可以達到一個由大量的標註數據集按照普通方法(隨機選擇訓練數據)訓練得到的模型的性能。如下圖所示(之前在實驗室分享時做的PPT),標註數據是一個很棘手的問題特別是在生物醫療領域:1)需要具有相關專業知識的醫生;2)成本很高;3)週期較長。那麼,如果能用少量的標註數據去訓練一個效果好的分類器,將是一個很有意義的工作。這篇文章提出的方法也是想解決這個問題,並在三種不同的生物醫療數據上做測試,證明了該方法的至少能夠減少一半的標註代價。這篇論文的幾個關鍵詞:Active Learning + Transfer Learning、Data Augmentation、Majority Selection、Continuously Fine-Tuning。此外,我還找到了這篇論文作者的博客個人主頁,一位90後大佬。


隨後,我找了幾個分類任務相關的數據集進行實驗,包括:1)MNIST;2)Cifar-10;3)Dog-Cat from Kaggle 等,使用PyTorch框架、AlexNet網絡結構,算法流程如下所示(下文也會根據圖示介紹主動學習算法的大體流程):

實驗步驟:以cifar10爲例,10分類  
1)製作數據:active_samples=50000,val_samples=10000;train_samples=0;  
2)初始化 alexnet 模型,隨機權重得到最初的模型,記爲 cifar10_alexnet_imagenet_init.7t;num_train_samples=0;  
3)分別對 active_samples 目錄下的 50000 - num_train_samples 張數據進行預測,得到10個類別對應的10個概率值;  
4)重點關注每個樣本預測結果的最大概率值:p_pred_max。我們初步認爲 p_pred_max>0.5 的情況表示當前模型對該樣本有個確定的分類結果(此處分類結果的正確與否不重要);反之,當前模型對該樣本的判斷結果模棱兩可,標記爲hard sample;比如:模型進行第一次預測,得到10個概率值,取其最大的概率 p_pred_max;  
5)對P(real lable) < p_threshold(此處的10分類任務取p_threshold=0.5)的樣本進行排序,取前N個樣本加入集合train_samples中;  
6)基於當前的訓練數據集 train_samples 對模型進行微調,得到新的模型記爲 model_fine_tuned.7t;  
7)重複(3)到(6)步驟,直到 active_samples 樣本數爲 0 或者當前模型 model_fine_tuned.7t 已經達到理想效果;  
#### steps  
### step0: initialize a pretrained model based on imagent --> mnist_alexnet_imagenet_init.7t  
### step1: predict active_samples on current model --> get active_train_samples_path  
### step2: active_select_samples_to_train --> train samples added.  
### step3: if train_dataset_sizes>0; train it --> get a new pretrained model, named active_pretrained_cifar10.7t  
###             do step1, step2, step3 while(active_target_val_acc>=0.9)  
### step4: record number of labeled samples

按照上述算法流程分別對 MNIST、Cifar-10 和 Dog-Cat 三個數據集做實驗。實驗結果表明引入active learning 不僅能夠得到減少樣本標註代價,還能夠提升分類的準確率。如MNIST的實驗(train_num=55000, val_num = 10000)中,使用AlexNet模型、PyTorch框架:1)使用全部的訓練數據直接訓練模型120次epoch,val_acc=98.992%;2)使用主動學習,Uncertainty Strategy(US),只需要2300張標註數據val_acc就能夠達到99.04%,將剩餘的55000-2300=52700張扔到訓練好的模型進行預測,得到 99.70% (52543/52700) 的效果。可見對於MNIST數據集,僅僅使用US策略能夠得到顯著的效果。主動學習爲什麼還能夠提升分類模型的準確率呢?文獻[21]提到1個解釋,“帶標註的訓練數據可能含有部分低質量的樣本(噪聲點)反而會降低模型的魯棒性(模型過渡擬合噪聲點)。因此標註訓練樣本要在保證質量的條件下,再增加數量”。如何高效地選出具有高分類貢獻度的無類標樣例進行標註並補充到已有訓練集中逐步提高分類器精度與魯棒性是主動學習亟待解決的關鍵問題。以上3個數據集的實驗結果如下表所示:

分別在MNIST、Cifar-10 和 Dog-Cat 三個數據集上驗證 Active Learning 的效果

MNIST 數據集:active select vs. random select

上述實驗結果表明:

1)引入 active learning 後,能夠在 MNIST、Cifar-10 和 Dog-Cat 等三個數據集上減少一半以上的標註代價。雖然上述實驗使用的數據集較爲簡單,但也能夠證明 Active Learning 的效果。

2)active select 比 random select 在更少標註樣本的條件下達到更高的性能,相當於下圖右半部分所示的紅虛線;

3)在 active learning 的實驗中還有一個環節:使用訓練得到的模型對未選中的樣本進行預測,acc_left_active_samples 的精度都很高(表格中未列出,但3個實驗的 acc_left_active_samples 都稍優於 train_acc)。本人認爲:acc_left_active_samples 表示主動選擇的過程中未被選中的樣本,即當前模型足以能夠區分出這些樣本的類別,所以不再需要使用這些樣本對模型進行微調(對模型的作用相對較小,甚至沒有作用)。因此,當模型在 train 數據集下的訓練精度達到 99.378% 時,使用當前模型對 acc_left_active_samples 樣本進行預測的精度也同樣在 99.378% 左右,甚至更高。

行文至此,試想一下應用場景:

假如業務需求中,遇到一些場景需要人工標註數據。一般情況下,我們不知道需要多少標註數據才能得到預期的效果,所以希望獲得儘可能多的標註樣本。但實際上,如下圖所示,模型的性能並不是隨着標註數據量的增多而無線上升的,模型的性能會有對應的瓶頸,而我們關注的正是如何使用儘可能少的標註數據去達到這個瓶頸。


因此,業務方可以先挑選一定量的數據進行標註,然後訓練看看效果如何;性能不能達到預期效果的話,再增加標註樣本,直到模型達到預測的效果。這個思路其實跟上述介紹的主動學習算法流程略相似,但卻有實質上的區別。

1)一般情況下,業務方挑選樣本的準則是隨機挑選(相當於 random select),更理想一點的就是挑選一些人爲覺得比較複雜的樣本;

2)active learning 能夠通過一些選擇策略挑選出當前模型認爲最難區分的樣本給相關領域的專家進行標註;

綜上,如果某一些實際業務需要手工標註數據,並且先思考完如下幾個條件後,決定是否使用 Active Learning:

1)能夠較方便的獲取未標註的源數據,並且有相關領域的標註專家;

2)對於一些較複雜的任務,需要慎重考慮是否已有相關的算法或者模型能夠解決,不然花費再多的標註數據也不一定能夠達到預期的效果;

3)不同任務類型(如,分類、檢測、NLP等等),想好要用什麼樣的指標衡量樣本(hard sample or easy sample);

4)Last But Not Least:算法設計完成後,還要考慮如何設計一個完整的系統。比如,你需要提供一個接口,讓專家把標註完成的數據傳到到模型的輸入端,後續有時間我也會仔細思考下這個問題。否則,到時候可能會照成時間上的浪費,雖然減少了標註代價。


就這樣,我越來越發現 Active Learning 是個值得深入研究的領域(有趣,有應用價值),並着手收集關於 Active Learning 的 papers。首先去找一些關於Active Learning 算法綜述類的文章[1-2],其中文獻[1]是一位博生生根據其畢業論文整理而來的,全面的介紹了2007年以來 Active Learning 的發展歷程,目前該論文更新至2010年,此外論文還提供了一個網址鏈接,在線更新相關的內容。文獻[2]有中英文版本(我看的是中文版本)、篇幅較少,簡要介紹了Active Learning的基本思想以及2012年關於 Active Learning 的一些最近研究成果、對Active Learning 算法進行分析,並提出和分析了有待進一步研究的問題。

2018年3月至今,我主要圍繞 Active Learning 相關的論文進一步研究,我學習的方法是:1)精讀有意義的論文;2)第一遍打印在紙上並做相應的筆記(單詞意思、段落大意、想法);3)第二遍看電子版的論文,並根據自己的理解做一個相應的PPT,這樣的方式既能更深刻的理解,又能整理出落地文檔(方便後續回憶論文或者分享論文);4)能找到代碼和數據集的就趕緊進行實驗,不能找到代碼但有數據集的視情況而定(論文中的很多數據集都沒有),沒有數據集的就理解算法就行了(可見數據在機器學習領域的重要地位)。


Some Tips and AL from CSDN

Active Learning 的學習過程中也遇到很多不懂的概念,比如“Membership Query Synthesis”每個單詞都懂,連起來就不知道是什麼意思了,需要根據實際場景去理解其含義。因此,我經常在網上搜索一些相關的資料,看看有沒有前輩已經整理過類似的問題。驚訝的是,網上關於AL的資料很少,估計是AL被冷漠了一段時間了。但是最近幾年的頂會都有一些關於AL的研究和應用。此處主要介紹一些來自於CSDN的資料(給我的最大幫助就是發現了一些論文),分享給大家。

在實習的公司遇到大量的無標籤數據怎麼辦,利用SVM進行Active Learning主動學習”是2017年的一篇博文,簡要介紹了AL+SVM的應用,內容篇幅較少,但也分析了一些細節。還有幾篇是圍繞周志華等人在2014年關於AL的一篇論文“Active learning by querying informative and representative examples”[17]整理而來,如:博文簡要文獻[17]的主旨和一些AL的基本概念。文獻[18]“A Deep Active Learning Framework for Biomedical Image Segmentation”發表在MICCAI 2017上,使用“Uncertainty estimation and similarity estimation”的主動選擇策略應用在醫療圖像分割領域(FCN模型),作者均來自美國聖母大學,Lin Yang,YizheZhang,Jianxu Chen 均爲華人,博文對論文較詳細的進行解讀,還有一篇博文嘗試對論文進行翻譯。文獻[19]“Multi-Class Active Learning by Uncertainty Sampling with Diversity Maximization”發表於IJCV-2014,提出了一種新的 Active Learning 方法 USDM,利用 seed set 和 active pool內的所有樣本的數據結構,來解決小 seed set 情況下 uncertainty sampling 存在的問題。而且聯合 diversity ,得到 batch mode 的算法結果。在 multi-class 內準確判斷樣本的信息量,從而能夠讓選擇結果更加準確(這篇博文對論文進行了詳細的解讀,這位博主截止目前整理了1-6篇關於AL的博文),包括對文獻[20]“Multi-criteria-based active learning for named entity recognition”的解讀博文,這是multi-criteria 開山鼻祖的文章(一篇長文);這位博主很用心的整理並分享了相關知識,值得稱讚。文獻[13]“An MRF Model-Based Active Learning Framework for the Spectral-Spatial Classification of Hyperspectral Imagery”是從一篇2015年的CSDN博文找到,結合了馬爾科夫隨機場和active learning (AL)


Study Record: Active Learning 

什麼是主動學習(What is Active Learning):

作者 Burr Settles[1] 的文章《Active Learning Literature Survey》很詳細的介紹了“什麼是主動學習”- “主動學習是機器學習(更普遍的說是人工智能)的一個子領域,在統計學領域也叫查詢學習、最優實驗設計”(Active learning (sometimes called “query learning” or “optimal experimental design” in the statistics literature) is a subfield of machine learning and, more generally, artificial intelligence. )。“學習模塊”和“選擇策略”是主動學習算法的2個基本且重要的模塊。主動學習通過“選擇策略”主動從未標註的樣本集中挑選部分(1個或N個)樣本讓相關領域的專家進行標註;然後將標註過的樣本增加到訓練數據集給“學習模塊”進行訓練;當“學習模塊”滿足終止條件時即可結束程序,否則不斷重複上述步驟獲得更多的標註樣本進行訓練。此外,主動學習算法有個關鍵的假設:“The key hypothesis is that if the learning algorithm is allowed to choose the data from which it learns—to be “curious,” if you will—it will perform better with less training”

在機器學習領域中,根據是否需要樣本的標籤信息可分爲“監督學習”和“無監督學習”。此外,同時利用未標註樣本和標註樣本進行機器學習的算法可進一步歸納爲3類:半監督學習、直推式學習和主動學習 。文獻[21]簡要介紹了主動學習與半監督學習的異同點:“半監督學習和主動學習都是從未標記樣例中挑選部分價值量高的樣例標註後補充到已標記樣例集中來提高分類器精度,降低領域專家的工作量,但二者的學習方式不同:半監督學習一般不需要人工參與,是通過具有一定分類精度的基準分類器實現對未標註樣例的自動標註;而主動學習有別於半監督學習的特點之一就是需要將挑選出的高價值樣例進行人工準確標註。半監督學習通過用計算機進行自動或半自動標註代替人工標註,雖然有效降低了標註代價,但其標註結果依賴於用部分已標註樣例訓練出的基準分類器的分類精度,因此並不能保證標註結果完全正確。相比而言,主動學習挑選樣例後是人工標註,不會引入錯誤類標 ”。

在一些複雜的監督學習任務中,獲取標註樣本是非常困難:既耗時,而且代價昂貴。如,語音識別(Speech recoginition)、信息提取(Information extraction)、分類和聚類(Classification and filtering)等。主動學習系統嘗試解決樣本的標註瓶頸,通過主動選擇一些最有價值的未標註樣本給相關領域的專家進行標註(Active learning systems attempt to overcome the labeling bottleneck by asking queries in the form of unlabeled instances to be labeled by an oracle)。如下圖所示,文獻[1]展示了一個基於 pool-based(下文會詳細介紹)的主動學習案例,數據集(toy data)是從高斯分佈產生的400個樣本,任務是2分類問題(每個類有200個樣本),如(a)圖所示將這些數據映射在2D特徵空間上;圖(b)使用了邏輯迴歸模型,通過訓練隨機選擇的30個標註樣本,得到70%的驗證精度,藍色線表示決策邊界(decision boundary);圖(c)同樣使用邏輯迴歸模型,但訓練的30個標註樣本是通過主動學習(US策略)選擇而來,達到90%的驗證精度。這個簡單的案例體現了引入主動學習算法所帶來的效果,同樣使用30個標註樣本能夠提升20%的精度。一點值得注意的是,上述2分類的樣本分別200個,樣本數據非常平衡。但是在現實生活中,分類樣本數據比例往往不能達到1:1,也有一些相關的研究嘗試去解決這類問題。


主動學習作爲一種新的機器學習方法,其主要目標是有效地發現訓練數據集中高信息量的樣本,並高效地訓練模型。與傳統的監督方法相比,主動學習具有如下優點:能夠很好地處理較大的訓練數據集,從中選擇有辨別能力的樣本點,減少訓練數據的數量,減少人工標註成本[2]。

如下圖所示爲常見的主動學習流程圖,屬於一個完整的迭代過程,模型可以表示爲 A = (C, L, S, Q, U)。其中C表示分類器(1個或者多個)、L表示帶標註的樣本集、S表示能夠標註樣本的專家、Q表示當前所使用的查詢策略、U表示未標註的樣本集。流程圖可解釋爲如下步驟(以分類任務爲例):

(1)選取合適的分類器(網絡模型)記爲 current_model 、主動選擇策略、數據劃分爲 train_sample(帶標註的樣本,用於訓練模型)、validation_sample(帶標註的樣本,用於驗證當前模型的性能)、active_sample(未標註的數據集,對應於ublabeled pool);

(2)初始化:隨機初始化或者通過遷移學習(source domain)初始化;如果有target domain的標註樣本,就通過這些標註樣本對模型進行訓練;

(3)使用當前模型 current_model 對 active_sample 中的樣本進行逐一預測(預測不需要標籤),得到每個樣本的預測結果。此時可以選擇 Uncertainty Strategy 衡量樣本的標註價值,預測結果越接近0.5的樣本表示當前模型對於該樣本具有較高的不確定性,即樣本需要進行標註的價值越高。

(4)專家對選擇的樣本進行標註,並將標註後的樣本放至train_sapmle目錄下。

(5)使用當前所有標註樣本 train_sample對當前模型current_model 進行fine-tuning,更新 current_model;

(6)使用 current_model 對validation_sample進行驗證,如果當前模型的性能得到目標或者已不能再繼續標註新的樣本(沒有專家或者沒有錢),則結束迭代過程。否則,循環執行步驟(3)-(6)。



主動學習的問題場景(Scenarios of Active Learning):

截至2010年,已經有很多不同的 Problem Scenarios 能夠使用學習模型主動選擇樣本讓專家進行標註。如下圖所示,文獻[1]主要提供了下列3種 Scenarios:

1)Membership Query Synthesis:文獻“D. Angluin. Queries and concept learning. Machine Learning, 2:319–342, 1988”研究了第一個主動學習場景“membership queries”,學習器能夠在輸入空間中爲未標註數據集申請標籤,包括“queries that the learner generates de novo ”,而不是這些來自於同一個潛在分佈的樣本。有效的“query synthesis”在解決特定領域的問題通常比較易於處理和高效,如文獻“D. Angluin. Queries revisited. In Proceedings of the International Conference on Algorithmic Learning Theory, pages 12–31. Springer-Verlag, 2001.”。文獻“D. Cohn, Z. Ghahramani, and M.I. Jordan. Active learning with statistical models. Journal of Artificial Intelligence Research, 4:129–145, 1996.”把“synthesizing query”問題轉化爲迴歸學習任務,比如以機械手臂作爲模型輸入,學習如何預測一個機器人的手的關節角度的絕對座標。

“Query Synthesis”能夠很合理應用到很多領域的問題,但如果主動學習的專家環節是人工的話,標註任意樣本這項工作往往很不合適(awkward)。例如,文獻“K. Lang and E. Baum. Query learning can work poorly when a human oracle is used. In Proceedings of the IEEE International Joint Conference on Neural Networks, pages 335–340. IEEE Press, 1992. ”使用“membership query learning with human oracles”的模式訓練一個神經網絡模型對手寫體字母進行分類,遇到一個意外的問題:通過學習器生成的許多 query images 都不包含可識別的符號(recognizable symbols),僞造的混合字符沒有語義(semantic meaning)。同樣地,當“membership queries”應用到 NLP 任務時可能會產生一些相當於亂語的文本或者語音的數據流(streams of text or speech)。因此提出了基於數據流和基於池的方法(stream-based and pool-based scenarios)來解決上述問題。然而,也有文獻King et al. (2004, 2009) 提出了一個創新性和有前景的真實案例,此處不做詳細介紹。

2)Stream-Based Selective Sampling ||| Sequential active learning

Stream-Based Selective Sampling 有一個重要的前提假設:可以免費或者便宜的獲取相關領域的未標註樣本,因此就能夠從真實的分佈採集未標註的數據,然後學習器能夠決定是否選擇這些未標註樣本讓專家標註。如果輸入樣本屬於 uniform distribution,選擇性採樣(selective sampling)可能跟 membership query learning 的效果一樣好。然而,如果輸入樣本的分佈是 non-uniform 或者連分佈是什麼都不知道的情況下,作者[1]證實了

文獻[21]對“基於流的樣例選擇策略”是這樣描述的:基於流的策略依次從未標註樣例池中取出一個樣例輸入到選擇模塊,若滿足預設的選中條件則對其進行準確的人工標註,反之直接捨棄。該學習過程需要處理所有未標記樣例,查詢成本高昂。另外,由於基於流的樣例選擇策略需要預設一個樣例標註條件,但該條件往往需要根據不同的任務進行適當調整,因此很難將其作爲一種通用方法普遍使用。

3)Pool-Based Sampling

文獻[21]對“基於池的樣例選擇策略”是這樣描述的:基於池的方法每次從系統維護的未標註樣例池中按預設的選擇規則選取一個樣例交給基準分類器進行識別,當基準分類器對其識別出現錯誤時進行人工標註。相較基於流的方法,基於池的方法每次都可選出當前樣例池中對分類貢獻度最高的樣例,這既降低了查詢樣例成本,也降低了標註代價,這使得基於池的樣例選擇策略廣泛使用。基於池的樣例選擇標準主要包括:不確定性標準、版本空間縮減標準、泛化誤差縮減標準等。



分類問題的啓發式方法(也屬於選擇/查詢策略):

基於委員會的主動學習算法(QBC):熵值裝袋查詢(EBQ)、自適應不一致最大化(AMD)

在 QBC 算法中,使用標記樣本訓練多個參數不同的假設模型,並用於預測未標記的樣本。因此,QBC算法需要訓練一定數量的分類器,在實際應用中,其計算複雜度相當大。爲了約束計算量,使用EQB方法簡化計算。針對高維數據的情形,AMD算法能夠將特徵空間劃分爲子空間,它是 EQB算法的變形,不同的分類方法將相同的樣本分類在不同的區域中,在計算過程中避免了維數災難的問題。該算法優點:分類器可以使用多種分類模型以及組合模式,如:神經網絡,貝葉斯法則等等。

基於邊緣的主動學習算法(MS):邊緣抽樣、基於多層不確定性抽樣、基於空間重構的抽樣

對於邊緣的啓發式方法而言,主要針對支持向量機的情形。根據分類模型計算出樣本到分類界面的距離選擇樣本。在 MS算法中,僅僅選擇距離分類界面最近的樣本加入訓練集,它是最簡單的邊緣抽樣的方法。而在 MCLU 算法中,與 MS 不同之處在於:選擇離分類界面最遠的兩個最可能的樣本的距離差值作爲評判標準。在混合類別區域中,MCLU能夠選擇最不確信度的樣本,而MS的效果不佳。在某些情形下,MS和 MCLU都會選出冗餘的樣本,引入多樣性準則,剔除相似的樣本,減少迭代的次數。常用的多樣性準則採用樣本間相似度,即樣本間的相似度越高,說明樣本所反映的數據特點越一致,則需要剔除該樣本,反之,相似度越低。可以使用相似係數值來刻畫樣本點性質的相似性。

基於後驗概率的主動學習算法(PP):Kullback-Leibler最大化、Breaking Ties算法

基於概率的啓發式方法依賴於樣本的後驗概率分佈形式,所以該方法的計算速度最快。KL方法的不足之處在於:在迭代優化過程中,它每次只能選擇一個樣本,增加了迭代的次數。此外,如果分類模型不能提供準確的概率評估值,它依賴於之後的優化評估值。而在 BT 算法中,其思想類似於 EQB,在多分類器中,選擇樣本兩個最大概率的差值作爲準則。當兩個最大的概率很接近時,分類器的分類確性度最低。


查詢策略(Query Strategy):

Random Sampling(RS):隨機選擇樣本

Uncertainty Sampling(US):選擇當前模型認爲最不確定的樣本(如,分類問題,概率爲0.5表示對該樣本模棱兩可,不確定性很高),標註這類樣本對提升當前模型最有幫助,US也是主動學習領域最常用的策略之一。但是很少有人僅僅只用這種策略選擇樣本,其原因在於:US 策略僅僅考慮單個樣本的信息,沒有考慮樣本空間整體的分佈情況,因此會找到 outlier 樣本,或者一些冗餘的樣本。比如文獻[3]結合了 US 和 diversity(能夠保證 batch-mode 的選擇樣本具有比較大的多樣性)。

Kapoor[16]:An algorithm that balances exploration and exploitation by incorporating mean and variance estimation of the GP classifier.

ALBE[14]:A recent example of meta-AL that adaptively uses a combination of strategies, including [15].


主動學習相關的論文(Relevant paper with Active Learning)

文獻[1]“Active Learning Literature Survey”詳細的對主動學習展開介紹,篇幅較長。文獻[2]“Survey on active learning algorithms”是一篇幅較短的中文論文,主要圍繞主動學習的基本思想和截至2012年最新的研究成果,並對相關算法進行分析,總結了有待進一步研究的問題,包括:1)結合非監督學習算法,取代專家標註的環節;2)維度災難:在預處理階段尋找高效的降維方法,減少主動查詢過程的複雜度。文獻[3]“Fine-Tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally”是一篇發表於CVPR-2017的論文,使用Active Learning + Transfer Learning、Data Augmentation、Majority Selection、Continuously Fine-Tuning等方法在3個醫療圖像領域的數據集上驗證了引入主動選擇的策略(entropy+diversity)能夠至少減少一半的數據標註代價。文獻[4]“Generative Adversarial Active Learning”首次將GAN與Active Learning進行組合,通過訓練GAN得到生成器模型,主動生成最有價值的樣本讓專家進行標註。文獻[5]“Learning Active Learning from Data”跟傳統的主動選擇策略有本質上的區別,它克服了手工設計的選擇策略跨領域泛化能力的不足,通過將主動選擇策略轉化爲迴歸問題進行學習,學習得到的策略在多個不同領域的真實數據集(Striatum、MRI、Credit Card、Splice、Higgs)上取得顯著的效果。文獻[6]"Just Sort It! A Simple and Effective Approach to Active Preference Learning",還未仔細讀。文獻[21]“主動學習算法研究進展”於2017年發表在河北大學學報的一篇中文論文(個人覺得看了這篇論文還是有所收穫的),圍繞主動學習的3個關鍵步驟(學習器初始化、選擇策略、算法的終止條件)展開詳細的介紹,並總結了主動學習面臨的問題及其對應的改進方法。

以上簡要介紹了一些關於AL的論文,後續有時間的話再針對一些有意義的論文進行詳細的理解並整理分享給大家。


主動學習領域的難點彙總:

  1. 多類分類問題:在處理多類分類問題時,基於 Margin Sampling 的樣例選擇標準忽略了樣例可能屬於其他類別的信息,因此所選樣例質量較差。基於熵的方法“基於不確定性的主動學習算法研究(2011)”雖考慮了樣例從屬於每個類別的概率,但在多類分類問題中,樣例的熵也會受到那些不重要類別的干擾。文獻“Multi-class active learning for image classification(2009)”提出了基於最優標號和次優標號的準則(BvSB),考慮樣例所屬概率最高的前2個類別,忽略剩餘類別對樣例選擇標準產生的干擾。文獻“基於主動學習和半監督學習的多類圖像分類(2011)”將BvSB和帶約束的自學習(Constrained self-training,CST)引入到基於SVM的圖像分類中,顯著提高了分類精度。
  2. 樣本中的孤立點:若選擇樣例時能綜合考慮樣其代表性(樣本的先驗分佈信息,如聚類分析或樣本密度分佈分析)和不確定性(如,信息熵),通常可避免採集到孤立點。如文獻“Active Learning by querying informative and representative examples(2010)”中提出了一種綜合利用聚類信息和分類間隔的樣例選擇方法;文獻“Active Learning using a Variational Dirichlet Processing model for pre-clustering and classification of underwater stereo imagery(2011)”提出了一種利用預聚類協助選擇代表性樣例的主動學習方法;文獻“Dual strategy active learning(2007)”利用樣例的不確定性及其先驗分佈密度進行樣例選擇以獲取優質樣例;文獻“基於樣本不確定性和代表性相結合的可控主動學習算法研究 (2009)”將樣例的分佈密度作爲度量樣例代表性的指標,結合以熵作爲不確定性指標,提出了一種基於密度熵的樣例選擇策略,有效解決了孤立點問題給樣例選擇質量造成的影響。
  3. 訓練集樣本冗餘新的訓練樣本中樣例1與分類超平面的距離比樣例2近,根據 BvSB 準則應當挑選樣例1進行標註並補充到訓練集中;但緊挨着樣例1的綠色樣例 a 已經在訓練集中,此時若再加入樣例1則對分類界面影響甚微。相比而言,將樣例2補充到訓練集中,對當前分類模型的訓練貢獻度更大。通過上述分析可知,主動學習中的樣例選擇度量主要分爲2種:1)不確定性度量;2)差異性度量或代表性度量。樣例的不確定性一般可通過計算其信息熵獲得,樣例的代表性通常可根據其是否在聚類中心判斷,而樣例的差異性則可通過計算餘弦相似度(基於採樣策略的主動學習算法研究進展,2012)或用高斯核函數(基於多特徵融合的中文評論情感分類算法,2015)獲得。
  4. 不平衡數據集:文獻“一種新的SVM主動學習算法及其在障礙物檢測中的應用(2009)”提出 KSVMactive 主動學習算法;文獻“基於主動學習的加權支持向量機的分類(2009)”提出了改進的加權支持向量機模型;文獻“基於專家委員會的主動學習算法研究(2010)”提出了基於SVM超平面位置校正的主動學習算法。

總結和展望

1)主動學習早在90年代的時候就已經有人在研究了,但好像未能達到風靡一時的效果,可能是缺失某些致命條件(如,數據和計算能力)。隨着大數據時代的到來以及計算能力的突飛猛進,深度學習在學術界和工業界取得了巨大的成就。深度學習的各種成績也同時給很多領域帶來可能,近幾年主動學習又開始在學術界蠢蠢欲動,結合深度學習使得主動學習在一定程度上突破了瓶頸,在一些領域取得了不錯的成績(主要用來減少標註代價)。

2)主動學習的關鍵在於“select strategy”,目前主要是一些手工設計的策略,一種選擇策略僅僅能夠應用於某些特定的領域,類似於機器學習的手工設計特徵。某種相似的套路:針對手工設計特徵的侷限性,(分類任務)深度學習將特徵選擇和分類器結合,不再需要爲分類器輸入手工設計的特徵,取得了質的飛躍;同樣的,文獻[5]“Learning Active Learning from Data”通過學習得到的“select strategy”能夠同時應用到多個不同的領域,克服了手工設計的選擇策略跨領域泛化能力的不足。個人感覺,主動學習領域還是有很多方面可以嘗試的,畢竟如果做好了,確實能夠給實際業務帶來價值。

3)本文的實驗環節也僅限於使用一些簡單的“select strategy”,希望今後有時間能夠想出更厲害的策略。


參考文獻(Reference)

(參考文獻的排列順序以本人對論文的閱讀精細程度進行排序)

  1. Krishnakumar A. Active Learning Literature Survey[J]. 2007.
  2. Liu K, Qian X. Survey on active learning algorithms[J]. Computer Engineering & Applications, 2012.
  3. Zhou Z, Shin J, Zhang L, et al. Fine-Tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively and Incrementally[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2017:4761-4772.
  4. Zhu J J, Bento J. Generative Adversarial Active Learning[J]. 2017.
  5. Konyushkova K, Sznitman R, Fua P. Learning Active Learning from Data[J]. 2017.
  6. Maystre L, Grossglauser M. Just Sort It! A Simple and Effective Approach to Active Preference Learning[J]. Computer Science, 2017.
  7. Chu H M, Lin H T. Can Active Learning Experience Be Transferred?[C]// IEEE, International Conference on Data Mining. IEEE, 2017:841-846.
  8. Chen L, Hassani H, Karbasi A. Near-Optimal Active Learning of Halfspaces via Query Synthesis in the Noisy Setting[J]. 2016.
  9. Huijser M W, Van Gemert J C. Active Decision Boundary Annotation with Deep Generative Models[J]. 2017:5296-5305.
  10. Wang X, Huang T, Schneider J. Active Transfer Learning under Model Shift[C]// International Conference on Machine Learning. 2014:1305-1313.
  11. Baram Y, El-Yaniv R, Luz K. Online Choice of Active Learning Algorithms.[J]. Journal of Machine Learning Research, 2004, 5(1):255-291.
  12. Schein A I, Ungar L H. Active learning for logistic regression: an evaluation[J]. Machine Learning, 2007, 68(3):235-265.
  13. Sun S, Zhong P, Xiao H, et al. An MRF Model-Based Active Learning Framework for the Spectral-Spatial Classification of Hyperspectral Imagery[J]. IEEE Journal of Selected Topics in Signal Processing, 2017, 9(6):1074-1088.
  14. W.-N. Hsu, , and H.-T. Lin. Active learning by learning. American Association for Artificial Intelligence Conference, pages 2659–2665, 2015. 
  15. Sheng jun Huang, Rong Jin, and Zhi hua Zhou. Active learning by querying informative and representative examples. In J. D. Lafferty, C. K. I. Williams, J. Shawe-Taylor, R. S. Zemel, and A. Culotta, editors, NIPS, pages 892–900. Curran Associates, Inc. 2010.
  16. A. Kapoor, K. Grauman, R. Urtasun, and T. Darrell. Active Learning with Gaussian Processes for Object Categorization. In International Conference on Computer Vision, 2007.  
  17. Huang S J, Jin R, Zhou Z H. Active Learning by Querying Informative and Representative Examples[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2014, 36(10):1936-1949.
  18. Yang L, Zhang Y, Chen J, et al. Suggestive Annotation: A Deep Active Learning Framework for Biomedical Image Segmentation[J]. 2017:399-407.
  19. Yang Y, Ma Z, Nie F, et al. Multi-Class Active Learning by Uncertainty Sampling with Diversity Maximization[J]. International Journal of Computer Vision, 2015, 113(2):113-127.
  20. Shen D, Zhang J, Su J, et al. Multi-criteria-based active learning for named entity recognition[C]// Meeting on Association for Computational Linguistics. Association for Computational Linguistics, 2004:589.
  21. 楊文柱, 田瀟瀟, 王思樂,等. 主動學習算法研究進展[J]. 河北大學學報(自然科學版), 2017, 37(2):216-224.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章