主動學習可減少對標註資料的依賴卻會造成標註冗餘?
深度學習如今能夠大獲成功,其中的一大功臣便是大規模的標註資料。然而在大多數現實場景中,我們往往只能獲得未經標註的大規模資料集,如果要對這麼多資料進行人工標註,勢必耗費大量的人力成本。在此前,研究界已經提出主動學習的方法來解決這一問題,然後採用該方法選擇出來的資料可能存在大量重複的情況,從而造成標註冗餘問題。
對此,牛津大學的理論和應用機器學習研究團隊(OATML)在一篇 NeurIPS 2019 論文中提出了一種 BatchBALD 採集函式,可有效解決主動學習面臨的這一難題, AI 科技評論編譯如下。
在主動學習中,我們使用“人在迴路”(Human in the Loop)的方法進行資料標註,可有效地減少了需要大量標註的資料量,並且該方法適用於標註成本過高時的機器學習 。
我們在《BatchBALD: Efficient and Diverse Batch Acquisition for Deep Bayesian Active Learning》論文中提出了 [1], 進一步提出了 BatchBALD 採集函式:這是一種在深度主動學習中選擇資訊點批次的全新的實用方法,它可以解決長期困擾我們的標註冗餘問題。我們提出的演算法基於資訊理論並在有用的直覺(Intuition)上進行了擴充套件。
-
實現程式碼 GitHub 地址:
一、什麼是主動學習?
我們在一系列重要的實驗中,透過利用深度學習演算法和大量 經標註的資料集,能得到很好的結果。但在一般情況下,我們只能獲取到未標註的大型資料集。例如,我們很容易獲得大量的庫存照片,但是標註這些影像既費時又昂貴。這就使得許多應用無法從深度學習的最新研究進展成果中受益。
在主動學習中,我們僅僅要求專家標註資訊量最多的資料點,而不是預先標註整個資料集。然後我們再使用這些新獲取的資料點和所有先前標註好的資料點對模型進行反覆訓練。重複此過程,直到模型結果的精度滿足我們的要求為止。
圖1: 主動學習流程。重複進行主動訓練、評分、標註和獲取的學習步驟,直到模型達到足夠的精度為止。
要執行主動學習,我們需要定義一些資訊評價指標,這通常是以“採集函式(acquisition function)” 的形式完成。之所以將此評價指標稱為“採集函式”,是因為它計算的分數確定了我們要獲取的資料點。我們要發給專家做標註的這些未經標註的資料點,可以最大化採集函式。
二、存在什麼問題?
通常來說,未標註點的資訊量是單獨進行評估的,其中一種流行的“採集函式”就是 BALD [2]。 在主動學習中,研究者往往普遍採用 BALD 這種採集函式方法來分別對未標註點的資訊量進行評估,但是由於單個資訊點可能幾乎相 同,分別評估各個點的資訊量極度浪費資源。
這意味著,如果我們單純地獲取前 K 個最有用的點,可能最終會導致讓專家給 K 個幾乎相同的點加標籤!
圖2: 來自 MNIST 資料集(手寫數字)的1000個隨機選擇的點的 BALD 得分(資訊量)。 這些點按數字標籤進行顏色編碼,並按分數排序。用於評分的模型已經首先訓練達到 90% 的準確性。如果我們選擇得分最高的分數(例如,得分高於 0.6),則大多數得分將是 8 ,即便我們能夠假定模型在獲得了前幾對得分後會認為它們的資訊量要少於其他可用的資料。點在x軸上透過數字標籤進行了稍微移動以避免重疊。
三、我們的研究成果
在這篇論文中,我們將採集函式的概念有效地擴充套件到了資料點的集合,並 提出了一種新的採集函式,該函式可以在獲取資料點的批次時考慮到資料點之間的相似性。
為此,我們採用了常用的 BALD 採集函式,並以特定的方式將其擴充套件 為 BatchBALD 採集函式。我們將在 下文中對該採集函式進行解釋。
圖3: BALD採集函式 和 BatchBALD採集函式 的理想獲取。如果資料集的每個資料點包含多個相似點,則 BALD 採集函式將以犧牲其他資訊資料點為代價選擇單個資訊資料點的所有副本,從而浪費了資料效率。
但是,僅僅知道如何為每個批次資料點評分是不夠的!我們仍然面臨著尋找得分最高的資料點批次的難題。簡單的解決方案是嘗試資料點的所有子集,但那是行不通的,因為存在 指數級多的可能性。
針對我們提出的採集函式,我們發現它具有一個非常有用的屬性,叫做子模性(Submodularity),它使我們能夠運用貪婪演算法:逐個選擇點,並在先前新增到資料點批次中的的所有點上調節每個新點。我們透過利用這種子模性屬性,可以證明這種貪婪演算法找到的子集“足夠好”(也就是:1-1 / e-的近似)。
總體而言,這使得我們提出的採集函式 BatchBALD 在效能上要優於 BALD 採集函式 :對於大小相差不多的批次,它使用較少的迭代和較少的資料點即可達到更高的精度,並顯著地減少了冗餘的模型訓練和專家標註,從而降低了成本和時間。
而且,從經驗上講,它與按順序獲取單個點的最優選擇一樣好,但在速度上要比後者快得多。後者在每個單點獲取之後,仍需要重新訓練模型。
(a) MNIST 資料集實驗的效能。在採集大小為10的情況下,BatchBALD 採集函式優於 BALD 採集函式,並且效能接近最佳採集大小1
(b) MNIST 資料集實驗的相對總時間,標準化訓練採集大小為10的 BatchBALD 採集函式至95%的精度。星號標註表示:每種方法達到95%的準確度的點。
圖4: MNIST 資料集實驗的 BALD 採集函式和 BatchBALD 採集函式的效能和訓練時間。採集大小為10的 BatchBALD 採集函式的效能與採集大小為1的 BALD 採集函式差異不大,但是它只需要一小段時間,因為它需要重新訓練模型的次數更少。與採集大小為10的 BALD 採集函式相比,BatchBALD 採集函式也需要更少的採集來達到95%的準確度。
在解釋採集函式之前,我們需要了解 BALD 採集函式的作用。
四、什麼是BALD採集函式?
BALD 是貝葉斯不一致主動學習(Bayesian Active Learning by Disagreement)的簡稱 [2]。
如“貝葉斯”其名所示,它假設貝葉斯 設定能夠讓我們捕獲模型預測的不確定性。在貝葉斯模型中,引數不僅僅是在訓練過程中更新的數字(點估計),而且是機率分佈。
這使模型可以量化 它的理念:引數的廣泛分佈意味著模型無法確定其真實值,反之狹窄的引數分佈則可以量化更高的確定性。
BALD 採集函式(基於模型預測的結果 y 是否能很好地體現模型引數 ω)給一個資料點 x進行評分。為此,需要計算出互資訊 Ⅱ(y , ω)。眾所周知,互資訊是資訊理論中的概念,它能捕獲數量之間的資訊重疊。
當使用 BALD 採集函式選擇一個批次的 b 點時,我們選擇的是 BALD 採集函式得分最高的前 b 個點,這是該領域的標準做法。這與最大化以下批次採集函式的做法相同:
a BALD( {x 1, ... , x b} , p( ω | D train ) ) := Σ b i=1Ⅱ(y i ; ω | x i , D train)
其中,
{x 1 *, ..., x b *} := arg max a BALD( {x 1, ... , x b} , p(ω | D train) ),{x1, ... , xb} ⊆D pool
直觀來看,如果在批次點中,我們將給定一些資料點和模型引數得到的預測資訊內容視作集合,互資訊則可以看作是這些集合的交集,這就對應了互資訊評估資訊重疊的概念。
圖5: BALD採集函式 背後的直覺。灰色區域有助於BALD 得分,深灰色區域被重複計算。
事實上,Yeuang在論文《A new outlook on Shannon's information measures》中 [3]表明,這種直覺是有充分依據的。我們可以定義一個資訊度 μ*,從而能夠使用設定操作來代表資訊理論量化。
Η(x , y)= μ*(x ∪ y)
Ⅱ(x , y) = μ*(x ∩ y)
E p(y)Η(x | y)= μ*(x \ y)
圖 5 展示了 BALD 採集函式在獲取 3個點的批次時對這些集合的交集區域所計算出來的分數。
因為 BALD 採集函式是一個簡單累加計算,所以會導致資料點之間的互資訊被重複計算,並且 BALD 採集函式高估了真實的互資訊。這就是為什麼在具有同一點有很多(幾乎相同)副本的資料集中,單純使用 BALD 採集函式會導致我們選出所有副本的原因:我們對所有點之間的互資訊交集進行累積計算!
五、BatchBALD 採集函式
圖6: BatchBALD 採集函式背後的直覺。 BatchBALD 採集函式考慮了資料點之間的相似性。
為了避免重複計算,我們要計算數量 μ*(U i y i ∩ ω),如圖 6 所示, 它對應的是 yi 和 ω 的互資訊Ⅱ( y 1, ... , y b ; ω | x 1, .... , x b, D train ) :
a BatchBALD( {x1, ... , xb} , p(ω | D train)) := Ⅱ(y 1, ... , y b ; ω | x 1, .... , x b, D train )
擴充套件互資訊的定義後,我們得到以下兩項之間的區別:
a BatchBALD( {x 1, ... , x b} , p(ω | D train)) = H(y 1, ... , y b ; ω | x 1, .... , x b, D train )
-E p( ω | Dtrain )[ H(y 1, ... , y b | x 1, .... , x b, ω) ]
第一項獲取了模型的一般不確定性,第二項獲取了給定模型引數描述的預期不確定性。
我們可以看到,當模型對資料點有不同的解釋,也就是模型對單個點更有信心(產生較小的第二項),但預測結果彼此並不不同(產生較大的第一項)時,該模型得到的分數將變高。這就是“不一致”這個名稱的由來。(這也是“貝葉斯不一致主動學習”這一名稱中的“不一致”的由來)
六、子模性
現在為了確定要獲取的資料點,我們將使用子模性。
基於子模性我們可以知道,這種做法帶來的提升會越來越小:選中兩個點帶來的分數提升要比單獨選中一個點大,但是也沒有把兩個點各自帶來的提升加起來那麼大:給定函式 f :Ω→R ,我們稱f的子模,如果:
f(A ∪{ x,y })-f(A)≤(f(A∪{ x })-f(A))+ (f(A∪ { y })-f(A))
其中,所有的 A 包含於 Ω 和所有元素 x,y∈Ω 成立。
我們在論文的附錄 A 中證明,我們的採集函式滿足了這一特性。
Nemhauser等人在論文《An analysis of approximations for maximizing submodular set functions》中 [4] 已經證明,在子模函式中,可以使用貪婪演算法來選擇點,並保證其分數至少為 1-1 / e ≈63 %是最佳的。這樣的演算法稱為 1-1 / e- 的近似。
貪心演算法以一個空批次 A = { } 開始 ,並計算所有未標註資料點的 a BatchBALD( A∪{x} ),將最高分 X 加到A上並重復此過程,直到 A 在獲取大小內。
接下來的文章將對此進行詳細說明。
七、一致的蒙特卡羅 Dropout
我們使用蒙特卡羅 Dropout(MC Dropout)實現貝葉斯神經網路 [5]。但是, 與其他實現方法的重要區別在於,我們需要一致的 MC Dropout:為了能夠計算資料點之間的聯合熵,我們需要使用相同的取樣模型引數來計算 a BatchBALD 。
為了弄清原因,如圖 7 中所示,我們研究了隨著不同樣本模型引數設定的 MC Dropout 變化,評分分數將如何變化。
如果沒有一致的 MC Dropout, 模型將使用不同的取樣模型引數集對得分進行取樣,這會導致丟失 y i 與附近的 X i 之間的函式相關性,並且由於分數被分散,它與與隨機採集獲取資料的方法基本上沒有什麼區別。
圖7: 不同組的100個取樣模型引數的 BatchBALD 採集函式得分。這展示了從資料集中隨機選取的1000個點的 BatchBALD 採集函式得分,同時為已經達到90%精度的 MNIST 資料集實驗模型選擇了第10個點。單組100個模型引數的得分以藍色顯示。BatchBALD 採集函式估計值表現出很強的頻寬,不同組取樣引數之間的得分差異大於單個頻段“軌跡”內給定組的不同資料點之間的差異。
八、在 MNIST、重複的 MNIST以及 EMNIST 上進行實驗
我們已經對 EMNIST 資料集進行了分類實驗,該資料集涵蓋了由47個類別和120000個資料點組成的手寫字母和數字。
圖8: EMNIST 資料集中所有47個類別的示例
我們可以看到:在獲取大批次資料時表現更差(甚至比隨機獲取還差!)的 BALD 採集函式有了明顯的改善:
圖9: EMNIST 資料集實驗的效能。BatchBALD 採集函式始終優於隨機採集和 BALD 採集函式,而 BALD 採集函式則無法超越隨機採集方法。
這是因為與 BatchBALD 採集函式和隨機採集相比,BALD 採集函式會主動選擇冗餘點。 為了更好地理解這一點,我們可以檢視所獲取的分類標籤並計算其分佈的熵。 熵越高,獲取的標籤就越多樣化:
圖10: 在 EMNIST 資料集實驗中,透過獲取步驟中獲取的類標籤的熵。BatchBALD 採集函式穩定地獲取了更多不同的資料點集。
我們還可以檢視模型訓練結束時所獲得的分類的實際分佈,並發現 BALD 採集函式對某些分類進行了欠取樣,而 BatchBALD 採集函式嘗試更均勻地從不同分類中選擇資料點(當然該演算法並不知道分類)。 1
圖11: 在 EMNIST 資料集實驗中,獲取的類別標籤的直方圖。左圖為 BatchBALD 採集函式結果,右圖為 BALD 採集函式結果。根據獲取次數對類進行分類,為清楚起見,僅顯示下半部分。一些 EMNIST 類在 BALD 採集函式中不具有足夠的代表性,而 BatchBALD 採集函式獲得的類更加統一。根據所有的採集的點我們建立瞭如圖示的直方圖。
為了理解 BatchBALD 採集函式 如何更好地解決不受控的場景,我們還嘗試了 MNIST 資料集版本,我們將其稱為重複的 MNIST 資料集( Repeated MNIST )。我們將 MNIST 資料集簡單地重複了3次,並增加了一些高斯噪聲,進而展示了 BALD 採集函式如何掉入陷阱中:因為資料集中有太多類似的點, 使用得分排在前 b 的單個點是不利於計算的。 2
圖12: 在採集大小為10時重複 MNIST 資料集實驗的效能。 BatchBALD 採集函式的效能優於 BALD 採集函式,而由於資料集中的副本,BALD 採集函式的效能要比隨機採集差。
我們還嘗試了不同的採集大小,發現在 MNIST 資料集實驗中,BatchBALD 採集函式甚至可以一次採集40個點,而資料效率幾乎沒有損失,不過 BALD 採集函式則會迅速惡化。
(BALD)
(BatchBALd)
圖13: MNIST 資料集實驗的效能,可增加採集大小。 隨著採集規模的增加,BALD 採集函式的效能急劇下降。即使採集數量增加,BatchBALD 採集函式仍可保持很好的效能。
九、最後的一點想法
我們發現非常令人驚訝的是, 當在批次資料上進行估計時,在主動學習中廣泛使用的標準採集函式的結果甚至比隨機基準更差。不過,我們樂於深入研究問題的核心並試圖理解失敗的原因,從而使我們對在該領域使用資訊理論工具的方式有了新的見解。
從很多方面來看,我們在這項工作中獲得的真正收穫是:當某件事失敗時,我們需要停下來認真地思考。
腳註:
[1] 隨機獲取也比 BALD 採集函式能更一致地選擇類,但不如 BatchBALD 採集函式效果好。
圖14: 在 EMNIST 資料集實驗中獲取的類別標籤的直方圖。 左邊是 BatchBALD 採集函式,右邊是隨機採集中心,右邊是 BALD 採集函式。類按獲取數量排序。在 BALD 採集函式和隨機獲取中,一些 EMNIST 類的代表性不足,而 BatchBALD 採集函式則更一致地獲取類。直方圖是用所有采集的點繪製的。
[2] 但是 BALD 採集函式並不是在這種情況下唯一失敗的採集函式。
圖15: 重複 MNIST 資料集實驗的效能。 BALD 採集函式,BatchBALD 採集函式,方差率,標準均方差和隨機採集:採集大小10,帶有10個 MC Dropout 樣本。
參考文獻
[1] BatchBALD: Efficient and Diverse Batch Acquisition for Deep Bayesian Active Learning
Kirsch, A., van Amersfoort, J. and Gal, Y., 2019.
[2] Bayesian active learning for classification and preference learning
Houlsby, N., Huszar, F., Ghahramani, Z. and Lengyel, M., 2011. arXiv preprint arXiv:1112.5745.
[3] A new outlook on Shannon's information measures
Yeung, R.W., 1991. IEEE transactions on information theory, Vol 37(3), pp. 466--474. IEEE.
[4] An analysis of approximations for maximizing submodular set functions—I
Nemhauser, G.L., Wolsey, L.A. and Fisher, M.L., 1978. Mathematical programming, Vol 14(1), pp. 265--294. Springer.
[5] Dropout as a Bayesian approximation: Representing model uncertainty in deep learning
Gal, Y. and Ghahramani, Z., 2016. international conference on machine learning, pp. 1050--1059.
via https://oatml.cs.ox.ac.uk/blog/2019/06/24/batchbald.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2669891/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 主動學習入門篇:如何能夠顯著地減少標註代價
- 迴圈智慧的主動學習(Active Learning)技術探索與實踐:減少 80% 標註量
- 從今天開始,學習Webpack,減少對腳手架的依賴(下)Web
- 從今天開始,學習Webpack,減少對腳手架的依賴(上)Web
- 機器學習中的有標註資料集和無標註資料集機器學習
- 拯救深度學習:標註資料不足下的深度學習方法深度學習
- 帶你瞭解資料標註之文字標註
- 專業資料標註公司和智慧資料標註平臺
- 詳解成熟的資料標註工具—智慧標註平臺
- yolo資料標註方法YOLO
- 2D3D融合標註案例分享|資料標註3D
- 什麼是深度學習的影片標註?深度學習
- 什麼是3D點雲資料?該如何標註它?| 資料標註3D
- 做一家擁有超強資料標註能力的專業資料標註公司
- 一文帶你瞭解關鍵點標註 | 資料標註
- AI人工智慧—資料標註的主要型別和標註注意事項AI人工智慧型別
- 資料的採集,清洗,資料機器自動標註及轉化為深度學習格式深度學習
- 資料標註行業知多少行業
- llm構建資料標註助手
- yolov8_資料集標註YOLO
- 神經網路學習之利用LabelImg對影像標註神經網路
- 李飛飛團隊提出OpenTag模型:減少人工標註,自動提取產品屬性值模型
- 如何提高資料標註質量,提供精細化標註資料集?丨曼孚科技
- 目標檢測資料集,全部有標註
- 帶你從資料標註角度看自動駕駛自動駕駛
- AI 資料標註不是“髒活累活”AI
- 為語音標註提供資料支援
- 使用AI和LiDAR標註來解決道路擁堵問題 | 資料標註AI
- Java開發學習(十二)----基於註解開發依賴注入Java依賴注入
- Java 14的資料記錄將如何改變編碼方式:減少或消除對Lombok依賴 - oracleJavaLombokOracle
- 如何尋找優質的資料標註公司?
- 史上最強GAN被谷歌超越!標註資料少用90%,造假效果卻更逼真谷歌
- 資料標註案例分享:車輛前置攝像頭資料採集標註專案丨曼孚科技
- 資料標註,自動駕駛汽車的新“引擎”丨曼孚科技自動駕駛
- AI產品經理之資料標註AI
- 使用doccano標註NER資料詳細教程
- HelloWorld版的SpringMVC使用註解驅動的依賴注入SpringMVC依賴注入
- 反射,註解,動態代理,依賴注入控制反轉反射依賴注入