天天看點

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks學習筆記僞标簽的介紹論文介紹僞标簽有效的原因實驗結果讀後感

Pseduo-Label

  • 僞标簽的介紹
  • 論文介紹
    • 核心思想
    • 相關流程
    • 相關函數
      • Denoising Auto-Encoder
      • 模型整體的目标函數
  • 僞标簽有效的原因
    • 類間的低密度分離
    • 熵正則化
  • 實驗結果
  • 讀後感
    • 思考
    • 存在不足

論文位址:Pseduo-Label

從DAFomer溯源到的論文

僞标簽的介紹

僞标簽的介紹可以參考:僞标簽(Pseudo-Labelling)——鋒利的匕首,詳細介紹了什麼是僞标簽方法以及僞标簽方法的分類,本論文用到的方法就是上文中的 創新版僞标簽的方法(将沒有标簽的資料的損失函數也加入進來,就是最後公式後邊那一坨,具體如下圖)

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks學習筆記僞标簽的介紹論文介紹僞标簽有效的原因實驗結果讀後感

論文介紹

核心思想

Pseudo-Label 模型作為一個簡單、有效的半監督學習方法早在 2013年就被提出,其核心思想包括兩步:

  • 第一步:運用訓練出的模型給予無标簽的資料一個僞标簽。方法很直接:用訓練中的模型對無标簽資料進行預測,以機率最高的類别作為無标簽資料的僞标簽
  • 第二步:運用 entropy regularization(熵正則化化) 思想,将無監督資料轉為目标函數的正則項(如下文公式)。實際中,就是将擁有僞标簽的無标簽資料視為有标簽的資料,然後用交叉熵來評估誤差大小

相關流程

使用有标簽資料和無标簽資料同時以有監督的方式訓練預訓練網絡。對于無标簽的資料,在每次權值更新時重新計算的僞标簽,被用于與監督學習任務相同的損失函數計算(即每次權值更新時,都重新計算僞标簽,并将該僞标簽當作真是标簽用于計算損失函數)。

相關函數

Denoising Auto-Encoder

去噪自動編碼器是一種無監督學習算法,基于使學習的表示對輸入模式的部分破壞具有魯棒性的思想。該方法可以用于訓練自動編碼器,這些微分代數方程組(DAE)可以堆疊起來初始化深度神經網絡:

h i = s ( ∑ j = 1 d v W i j x ~ j + b i ) h_i=s(\sum_{j=1}^{d_v}W_{ij}\tilde x_j+b_i) hi​=s(∑j=1dv​​Wij​x~j​+bi​)

x ^ j = s ( ∑ i = 1 d h W i j h i + a j ) \widehat x_j=s(\sum_{i=1}^{d_h} W_{ij}h_i+a_j) x ⎨ ⎧​1,0,​if i=argmaxi′​fi′​(x)otherwise​

L公式左邊是評估有标簽資料的誤差交叉熵,右邊是評估僞标簽資料的誤差交叉熵

L = 1 n ∑ m = 1 n ∑ i = 1 C L ( y i m , f i m ) + α ( t ) 1 n ′ ∑ m = 1 n ′ ∑ i = 1 C L ( y i ′ m , f i ′ m ) L=\frac{1}{n}\sum_{m=1}^n\sum_{i=1}^C L(y_i^m,f_i^m)+\alpha (t)\frac{1}{n'}\sum_{m=1}^{n'}\sum_{i=1}^C L(y_i'^m, f_i'^m) L=n1​∑m=1n​∑i=1C​L(yim​,fim​)+α(t)n′1​∑m=1n′​∑i=1C​L(yi′m​,fi′m​)

● n n n 是SGD中有标簽資料的mini-batch大小

● n ′ n' n′ 是SGD中無标簽資料的mini-batch大小

● f i m f_i^m fim​ 是有标簽資料中 m 個樣本的輸出集合

● y i m y_i^m yim​ 是有标簽資料中 m 個樣本的真實标簽

● f i ′ m f_i'^m fi′m​ 是無标簽資料中 m 個樣本的輸出集合

● y i ′ m y_i '^m yi′m​ 是無标簽資料中 m 個樣本的僞标簽

● α ( t ) \alpha(t) α(t) 是平衡它們的系數

為了平衡有标簽和無标簽之間的損失引入了 α ( t ) \alpha(t) α(t)

α ( t ) \alpha(t) α(t) 的合理排程對網絡性能至關重要:

● 如果 α ( t ) \alpha(t) α(t) 太大,甚至對有标記資料的訓練也會産生幹擾

● 如果 α ( t ) \alpha(t) α(t) 太小,則無法獲得來自未标簽資料的好處

此外,期望通過緩慢增加 α ( t ) \alpha(t) α(t) 的确定性退火過程,來幫助優化過程,以避免較差的局部極小值,進而使無标簽資料的僞标簽盡可能類似于真實标簽。

α ( t ) = { 0 , t < T 1 t − T 1 T 2 − T 1 α f , T 1 ≤ t < T 2 α f , T 2 ≤ t \alpha(t)= \begin{cases} 0, & \text{$t<T_1$} \\ \frac{t-T_1}{T_2-T_1}\alpha_f, & \text{$T_1\leq t < T_2$} \\ \alpha_f, & \text{$T_2 \leq t$} \end{cases} α(t)=⎩ ⎨ ⎧​0,T2​−T1​t−T1​​αf​,αf​,​t<T1​T1​≤t<T2​T2​≤t​

● α f = 3 , T 1 = 100 , T 2 = 600 \alpha_f =3, \quad T_1=100, \quad T_2=600 αf​=3,T1​=100,T2​=600

僞标簽有效的原因

類間的低密度分離

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks學習筆記僞标簽的介紹論文介紹僞标簽有效的原因實驗結果讀後感

這個世界是非黑即白的,什麼是非黑即白?

假設現在有一大堆的data,有标注資料,有非标注資料,在兩個類别之間會有一個明顯的鴻溝。給一些标注資料,可以把邊界分在上圖右邊的線,也可以把邊界分在上圖左邊的線。但是考慮非标注資料,那麼左邊的邊界會好一點,在邊界處,兩個類别的密度是低的(不會出現data)。

熵正則化

熵正則化是在最大後驗估計架構中受益于無标簽資料的一種手段。該方案通過最小化無标簽資料的類别機率的條件熵,支援類間的低密度分離,而無需對密度進行任何模組化。

H ( y ∣ x ′ ) = − 1 n ′ ∑ m = 1 n ′ ∑ i = 1 C P ( y i m = 1 ∣ x ′ m ) l o g P ( y i m = 1 ∣ x ′ m ) H(y|x')=-\frac{1}{n'}\sum_{m=1}^{n'}\sum_{i=1}^{C}P(y_i^m=1|x'^m)logP(y_i^m=1|x'^m) H(y∣x′)=−n′1​∑m=1n′​∑i=1C​P(yim​=1∣x′m)logP(yim​=1∣x′m)

● n ′ n' n′ 是無标簽資料的數目

● C C C 是類别數目

● y i m y_i^m yim​是第 m 個無标簽樣本的未知标簽

● x ′ m x'^m x′m 是第 m 個無标簽樣本的輸入向量

這個熵用于度量類間的重疊。随着類間重疊的減少,決策邊界上的資料點密度降低。

MAP估計被定義為後驗分布的最大化:

C ( θ , λ ) = ∑ m = 1 n l o g P ( y m ∣ x m ; θ ) − λ H ( y ∣ x ′ ; θ ) C(\theta ,\lambda)=\sum_{m=1}^nlogP(y^m|x^m;\theta)-\lambda H(y|x';\theta) C(θ,λ)=∑m=1n​logP(ym∣xm;θ)−λH(y∣x′;θ)

● n 是有标簽資料的數目

● x m x^m xm 是第 m 個有标簽樣本

● λ \lambda λ 是平衡兩項的系數

通過最大化有标簽資料的條件對數似然(第一項),并最小化無标簽資料的熵(第二項),我們可以利用無标簽資料獲得更好的泛化性能。

就如上文相關流程中所說: pseudo label多是先用标注資料訓練模型,然後在未标注樣本上預測,篩選高置信的未标注樣本再訓練新模型,訓練多輪直到模型效果不再提升,而這篇文章的實作其實是把未标注樣本作為正則項的一部分。因為預測label和預測機率是相同模型給出的,是以最小化預測label的交叉熵,也就是最大化預測為1的class對應的機率值,和MinEnt直接最小化未标注樣本交叉熵的操作一樣。(在思考子產品詳細講解個人想法)

實驗結果

在實驗中,研究人員用 MNIST 資料集進行了實驗驗證,并嘗試了在有标簽資料僅為100、600、1000和3000時的結果入下圖所示:

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks學習筆記僞标簽的介紹論文介紹僞标簽有效的原因實驗結果讀後感

DROPNN、PL 和 PL+DAE 分别是實驗中的 baseline 模型、baseline 模型+Pseudo-Label 方法 以及 baseline 模型+Pseudo-Label 方法+ DAE 預訓練方案。

這裡我們主要關注Pseudo-Label 方法的效果,其結果如表中倒數第二行所示。從表中可以看出,當有标簽資料僅為 600 條時,Pseudo-Label 方法相對于其他公開模型,可以達到最佳的效果。但在其他實驗條件下,隻能實作相對較好的表現。不過相對于 baseline,此方法在所有情況下均能實作一定的提升。有标簽資料量越少,這一提升越明顯。這說明 Pseudo-Label 方法确實可以在一定程度上從無标簽資料中提取有效信号。

進一步,研究人員通過降維可視化的方式展示了 Pseudo-Label 模型使用前後的效果,實驗資料包含 600 有标簽資料 + 60000 無标簽資料:

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks學習筆記僞标簽的介紹論文介紹僞标簽有效的原因實驗結果讀後感

對比上面左右兩張圖可以看出來, Pseudo-Label 模型相對于單獨的有監督模型,可以有效改善各類别資料在空間中的聚集密度。

讀後感

思考

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks學習筆記僞标簽的介紹論文介紹僞标簽有效的原因實驗結果讀後感

熵正則化的目的是為了讓相同類别的分布更加集中,減少class overlap;而降低預測值和僞标簽的交叉熵,也就是最大化預測為1(或者一個類的機率非常接近1,可以近似等于1?)的class對應的機率值,也就是讓最有可能的預測結果最大,這樣的話資訊熵自然就很小。

存在不足

Pseudo-Label 方法隻在訓練時間這個次元上,采用了退火思想,即采用時變系數α(t)。而在僞标簽這個次元,對于模型給予的預測标簽一視同仁,這種方法在實際中存在明顯問題。很顯然,如果模型對于一個樣本所預測的幾個類别都具有相似的低機率值,如共有十個類别,每個類别的預測機率值都接近 0.1,那麼再以最大機率值對應的類别作為僞标簽,是不合适的,将會引入很大的錯誤信号。(概括一下也就是:Pseudo-Label 方法,以最大機率值對應的類别作為僞标簽這個操作是不太合适的(考慮到每個類别的預測機率值都接近 0.1,每個類别的預測結果都很差))

本文内容參考如下:

僞标簽(Pseudo-Labelling)——鋒利的匕首

我們真的需要那麼多标注資料嗎?半監督學習技術近年來的發展曆程及典型算法架構的演進

[論文筆記]Pseudo-Label:The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks

Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks

Pseudo-Label 代碼

下一篇: go-OAuth2.0

繼續閱讀