论文笔记 - RETRIEVE: Coreset Selection for Efficient and Robust Semi-Supervised Learning
Motivation
雖然半監督學習減少了大量數據標注的成本,但是對計算資源的要求依然很高(無論是在訓練中還是超參搜索過程中),因此提出想法:由于計算量主要集中在大量未標注的數據上,能否從未標注的數據中檢索出重要的數據(Coreset)呢?
Analysis
當前用來半監督學習的方案:
- 自洽正則化(Consistency Regularization):自洽正則化的思路是,對未標記數據進行數據增廣(加入噪聲等),產生的新數據輸入分類器,預測結果應保持自洽。即同一個數據增廣產生的樣本,模型預測結果應保持一致。
- 最小化熵(Entropy Minimization):許多半監督學習方法都基于一個共識,即分類器的分類邊界不應該穿過邊際分布的高密度區域。具體做法就是強迫分類器對未標記數據作出低熵預測。
半監督學習能夠成功實施的必要條件:有標簽的數據和無標簽的數據來自相同的分布。否則會導致模型性能的大幅度下降。因此 DS3L 將其轉化為了一個雙層的優化問題:
下面的式子和普通的半監督學習一直,不過在無標簽正則化項(自洽正則化或最小化熵)前加上了權重參數,權重參數由什么決定:越不影響模型在有標簽數據上的表現的數據權重越大;
換句話說:你用一個無標簽的數據 A 更新了參數,結果發現更新玩參數的模型在有標簽的數據集上表現變差了,那么 A 就是 OOD 或者有巨大噪聲的數據,他的權重越小越好,權重為 0 表示不要 A 這個數據了。
上圖:雙層優化。
我們選取 Coreset 的出發點也是一樣:選擇一個無標簽數據的子集 $S_t$,使得在這個子集上半監督訓練出的參數,在有標簽數據上的誤差最小,同樣是個雙層優化。
但是這個式子明顯是不可解的,首先我們需要遍歷出所有的 $S_t$ 組合,對每一種組合應用半監督訓練使其收斂,用收斂后的模型權重應用到有標簽數據計算準確率,再用這個準確率評估我們選的子集怎么樣,復雜度不可想象。
因此用近似的方法進行轉化,轉化為一層的優化問題:
上圖的核心思想是適應性的數據挑選,也就是說不是選一種 Coreset 就一次訓練到收斂,而是根據訓練進度逐漸調整 Coreset,直到得到最好的 Coreset:首先仍然遍歷出所有的 $S_t$ 組合,對每一種組合計算半監督訓練的損失函數,用這個損失函數優化一遍參數,只進行一次迭代,然后用更新后的模型對有標簽的數據求準確度,再用這個準確率評估我們選的子集怎么樣,因為這只是一步迭代,因此子集會不斷更新。
相當理想了,但是計算復雜度依然是不可接受的,原因就在于最開始的遍歷出所有的 $S_t$ 組合,因此作者又提出:當式子中的 $L_s$ 項(即有標簽數據的損失項)是交叉熵形式的時候,整個式子就擁有了次模性,因此可以用貪心算法快速解決,同時保證收斂性和收斂速度,也就是原本開始時我們需要遍歷所有的可能的 $S_t$ 組合,現在只需要遍歷所有的可能加入 $S_t$ 的單個數據就可以了。加上符號,變成具有單調(增)性的次模函數:
次模性的定義:
因此每次我們只需要挑選讓這個次模函數增長最大的單個(無標簽)數據,把他加到 Coreset 里面就行了。
作者說現在很好,但是我懶得一個一個計算(也就是加上把單個無標簽數據 e 加到 Coreset 里面后一次優化后,模型在有標簽數據上的損失的負值)怎么辦,別慌,可以用泰勒展開近似估計:
Algorithm
總結
以上是生活随笔為你收集整理的论文笔记 - RETRIEVE: Coreset Selection for Efficient and Robust Semi-Supervised Learning的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql left join、right
- 下一篇: Java之路(二) 操作符