[Active Learning] 01 A Brief Introduction to Active Learning 主動學習簡介

本文將簡單介紹什麼是主動學習(Active Learning,AL),爲何須要主動學習,主動學習和監督學習、弱監督學習、半監督學習、無監督學習之間是什麼關係。最後再簡單介紹主動學習的分類。(這裏介紹的主動學習是機器學習的一個子領域。)算法

什麼是主動學習?

主動學習(Active Learning),在統計學領域有時也叫「查詢學習」(query learning)、「最優實驗設計」(optimal experimental design),是機器學習的一個子領域。oracle

主動學習背後一個關鍵的假設:less

  • 一個機器學習算法若是可以自行選擇從哪些數據進行學習,經過較少的訓練數據,它將表現得更好。

If the learning algorithm can choose the data from which it learns, it will perform better with less training.[1]dom

主動學習之因此叫主動學習,是由於算法從數據集中主動地選擇一些不帶標籤的數據進行標註,而不是被動地選擇。在每一次標註以後,模型從新或者增量地在帶標籤的數據上訓練,而後再主動地選擇不帶標籤數據進行標註,重複這個過程,這就是主動學習的流程。機器學習

主動學習 vs. 被動學習

被動學習(passive learning)被認爲是從數據集中隨機選擇(randomly select)數據進行標註。工具

而主動學習選擇要標註的樣本時,有一些 criteria 進行指導,這就是主動學習和被動學習的區別。學習

不過被動學習彷佛叫的很少,通常用 random selection 與主動學習的 criteria 比較就好。設計

爲何須要主動學習?

數據標註的成本高昂,迫使咱們想要用更少的標註數據來得到更有效的模型,這就是主動學習產生的緣由。3d

主動學習與監督學習、弱監督學習、半監督學習、無監督學習之間的關係

咱們根據訓練數據集標籤的狀況來劃分這幾者:(歡迎大佬指正)

  • 監督學習(Supervised learning)任務中,數據集的標籤都是完整而精確的。
  • 無監督學習(Unsupervised learning)任務中,數據集是不含標籤的。
  • 弱監督學習(Weakly-supervised learning)任務中,數據集的標籤分爲三種狀況:(這三種狀況可能同時出現)
    • 部分數據有標籤,部分數據沒有標籤。通常有標籤的數據佔少數,大部分數據沒有標籤。(Incompelet supervison)
    • 數據都有標籤,可是標籤的粒度不夠。例如,在圖像語義分割中,細粒度的標籤應該是 pixel-level 的,但給出的標籤僅僅是 image-level 的,這就是標籤的粒度不夠。(Inexact supervison)
    • 數據都有標籤,可是標籤有不少錯誤。(Inaccurate supervison)

Fig. 1 [2] Illustration of three typical types of weak supervision.

而主動學習對應弱監督學習的第一種狀況,少部分數據含標籤,可是大部分數據不含標籤。

主動學習和半監督學習是什麼關係?二者均可以認爲是弱監督學習第一種狀況的處理方式,但二者也有不同的地方,好比主動學習須要人工標註數據,而半監督學習不要。

主動學習的種類


Fig. 2 [1] Diagram illustrating the three main active learning scenarios.

根據應用場景,將主動學習劃分爲 3 類:

  • 第一種是「Membership query synthesis」,字面意思上很難理解,不過這種方式的 instance 是算法從整個可能的樣本空間中生成的,模型從頭開始生成一個 instance 而後送去 oracle 打標籤。

  • 第二種是「steam-based selective sampling」,每一次咱們可以從數據流獲得一個 instance,而後判斷其是否要送去 oracle 打標籤。

  • 第三種是「pool-based sampling」,初始時,咱們就有不少 unlabeled data,只須要從這些 unlabeled data 中選擇數據送到 oracle 打標籤。(這種狀況是最多見的。)


Fig. 3 [1] Pool-based active learning.

可能會有一個疑問,主動學習中的 oracle 是什麼?oracle 能夠是一個專家,打標籤百分之百正確;也能夠是不少擁有不一樣專業知識的人,打標籤不是百分百對,如衆包。

主動學習的一個例子


Fig. 4 [1] An example of pool-based active learning.

Example from [1]:

  • (a) A toy data set of 400 instances, evenly sampled from two class Gaussians.
  • (b) A logistic regression model trained with 30 labeled instances randomly drawn from the problem domain.(accuracy:70%)
  • (c) A logistic regression model trained with 30 actively queried instances using uncertainty sampling.(accuracy:90%)

主動學習工具包 ALiPy

ALiPy (Active Learning in Python) [3] 是南京航空航天大學黃聖君老師作的一個開源的主動學習工具包,咱們能夠很輕鬆地基於該工具包開發主動學習的程序,強烈推薦。

ALiPy 主頁:http://parnec.nuaa.edu.cn/huangsj/alipy/

References

[1] Burr Settles.(2009). Active Learning Literature Survey. Computer Sciences Technical Report 1648, University of Wisconsin-Madison.
[2] Zhou, Z.-H. (2018). A brief introduction to weakly supervised learning. National Science Review, 5(1), 44–53. https://doi.org/10.1093/nsr/nwx106
[3] Tang, Y.-P., Li, G.-X., & Huang, S.-J. (2019). ALiPy: Active Learning in Python, 1–5. Retrieved from http://arxiv.org/abs/1901.03802

相關文章
相關標籤/搜索