什麼是 半監督學習(Semi-supervised Learning)?

半監督學習是一種機器學習方法,它結合了少量標記資料和大量未標記資料進行模型訓練,旨在利用未標記資料提升模型效能,降低標記成本。

核心概念

半監督學習的核心概念在於同時利用標記資料和未標記資料。標記資料提供了直接的監督信號,而未標記資料則提供了資料分布的資訊。半監督學習算法試圖利用這些資訊來更好地學習資料的結構,從而提升模型的效能。

半監督學習通常基於以下假設:

  • 平滑性假設(Smoothness Assumption): 如果兩個樣本在輸入空間中很接近,那麼它們的輸出也應該很接近。
  • 聚類假設(Cluster Assumption): 屬於同一個簇的樣本應該具有相同的標籤。
  • 流形假設(Manifold Assumption): 資料位於一個低維流形上,即使在高維空間中,資料點也傾向於聚集在一個彎曲的表面上。

運作原理

半監督學習的運作原理可以概括為以下幾個步驟:

  1. 資料準備: 準備少量已標記的資料和大量未標記的資料。
  2. 模型初始化: 使用已標記的資料訓練一個初始模型。
  3. 標籤傳播/自訓練: 使用初始模型預測未標記資料的標籤。然後,將置信度較高的預測標籤添加到已標記資料集中,並重新訓練模型。
  4. 迭代優化: 重複步驟3,直到模型收斂或達到預定的迭代次數。

常見的半監督學習方法包括:

  • 自訓練(Self-training): 使用模型預測未標記資料的標籤,並將置信度高的預測標籤添加到已標記資料集中,然後重新訓練模型。這是一個迭代的過程。
  • 標籤傳播(Label Propagation): 將已標記資料的標籤傳播到未標記資料。標籤傳播算法通常基於圖模型,其中節點代表樣本,邊代表樣本之間的相似度。
  • 生成模型(Generative Models): 使用生成模型(例如,高斯混合模型)對資料分布進行建模。然後,使用期望最大化算法(EM算法)來估計模型的參數,並預測未標記資料的標籤。
  • 基於圖的方法(Graph-based Methods): 將資料表示為圖,其中節點代表樣本,邊代表樣本之間的相似度。然後,使用圖上的標籤傳播算法來預測未標記資料的標籤。
  • 協同訓練(Co-training): 使用多個不同的模型來預測未標記資料的標籤。每個模型使用不同的特徵子集進行訓練。然後,每個模型將其置信度最高的預測標籤添加到其他模型的已標記資料集中,並重新訓練其他模型。

更詳細的解釋:

  • 自訓練 (Self-training): 首先使用少量標記資料訓練一個模型。然後,使用該模型預測未標記資料的標籤。將預測置信度高的未標記資料及其預測標籤添加到標記資料集中,並重新訓練模型。重複此過程,直到滿足停止條件。自訓練容易受到錯誤累積的影響,因此需要謹慎使用。
  • 標籤傳播 (Label Propagation): 構建一個圖,其中節點代表資料點(包括標記和未標記資料),邊代表資料點之間的相似度。然後,通過圖結構將標記資料的標籤傳播到未標記資料。標籤傳播算法通常使用迭代方法,直到標籤穩定。
  • 生成模型 (Generative Models): 假設資料是由一個生成模型產生的,例如高斯混合模型。使用標記和未標記資料來估計生成模型的參數。然後,使用生成模型來預測未標記資料的標籤。EM 算法是常用的參數估計方法。
  • 一致性正規化 (Consistency Regularization): 鼓勵模型對未標記資料的不同擾動產生一致的預測。例如,可以對未標記資料應用不同的資料增強技術,並要求模型對增強後的資料產生相似的預測。這種方法可以提高模型的魯棒性。

數學公式簡介(以標籤傳播為例):

  • 相似度矩陣 (Similarity Matrix): W_ij = exp(-||x_i - x_j||^2 / (2σ^2)),其中 x_ix_j 是資料點 i 和 j 的特徵向量,σ 是尺度參數。
  • 正規化拉普拉斯矩陣 (Normalized Laplacian Matrix): L = D^(-1/2) * (D - W) * D^(-1/2),其中 D 是度矩陣,D_ii = Σ_j W_ij
  • 標籤傳播更新規則: Y^(t+1) = α * L * Y^(t) + (1 - α) * Y^(0),其中 Y^(t) 是第 t 次迭代的標籤矩陣,Y^(0) 是初始標籤矩陣(標記資料的標籤已知,未標記資料的標籤初始化為 0),α 是阻尼因子。

實際應用

半監督學習在許多領域都有廣泛的應用,包括:

  • 文本分類: 在文本分類任務中,通常只有少量的標記文本,而有大量的未標記文本。半監督學習可以利用這些未標記文本來提升分類器的效能。
  • 圖像分類: 與文本分類類似,圖像分類任務也常常面臨標記資料不足的問題。半監督學習可以利用未標記圖像來提升分類器的效能。
  • 語音辨識: 在語音辨識中,可以利用大量的未標記語音資料來訓練聲學模型。
  • 生物資訊學: 在生物資訊學中,可以利用未標記的基因表達資料來預測基因的功能。

具體案例:

  • 網頁分類: 利用少量的已分類網頁和大量的未分類網頁來構建網頁分類器。
  • 醫療影像分析: 利用少量的已標記醫療影像(例如,X 光片、CT 掃描)和大量的未標記影像來輔助疾病診斷。

常見誤區

  • 半監督學習總是比監督學習更好: 半監督學習並不總是比監督學習更好。如果未標記資料的分布與標記資料的分布差異很大,或者未標記資料包含大量的噪聲,那麼半監督學習可能會降低模型的效能。
  • 半監督學習不需要任何標記資料: 半監督學習需要少量的標記資料。如果沒有任何標記資料,那麼就變成了非監督學習。
  • 半監督學習的實現非常複雜: 雖然有些半監督學習算法比較複雜,但也有一些簡單易用的半監督學習算法,例如自訓練。

總結來說,半監督學習是一種很有用的機器學習方法,它可以在標記資料不足的情況下提升模型的效能。然而,在使用半監督學習時,需要仔細考慮未標記資料的品質和分布,並選擇合適的算法。

相關術語

常見問題

← 回到 半監督學習 快查頁

延伸學習

想看 半監督學習 的完整影片教學?前往 美第奇 AI 學院