1. 程式人生 > >從零開始-Machine Learning學習筆記(29)-半監督學習

從零開始-Machine Learning學習筆記(29)-半監督學習

文章目錄


  讓學習器不依賴外界互動、自動地利用未標記樣本來提升學習效能,就是半監督學習(semi-supervised learning)。利用未標記樣本學習主要有 主動學習半監督學習,其中半監督學校主要包括 “純半監督學習”“直推學習”
主動學習: 先拿有標記的樣本訓練一個模型,然後拿這個模型去未標記的資料上驗證,這個驗證需要引入專家知識,以儘量少的“查詢”來獲取儘量好的效能。
純半監督學習: 假定資料集中的未標記樣本不是帶預測的資料,是基於“開放世界”的假設,希望學習到的模型適用於未觀察到的資料。
直推學習:
假定學習過程中所考慮到的未標記樣本恰好是待測資料,希望在這些未標記的樣本上後的較好的泛化誤差。

1. 生成式方法

  生成式方法(generative methods)是直接基於生成式模型的方法。此類方法假設所有資料(無論是否有標記)都是由同一個潛在的模型" 生成"的。
  給定樣本x,其真實類別標記為 y Y y∈Y

,其中$Y = {1 , 2,… , N} $為所有可能的類別.假設樣本由高斯混合模型生成,且每個類別對應一個高斯混合成分。換言之,資料樣本是基於如下概率密度生成:
p ( x ) = i = 1 N α i p ( x μ i , Σ i ) p(x) = \sum_{i=1}^{N}\alpha_i·p(x|{\mu_i, \Sigma_i})
這裡在前一篇的從零開始-Machine Learning學習筆記(26)-聚類一文中,有做過關於高斯混合聚類的筆記,裡面涉及到的知識和這裡一致。如果給定有標記的樣本集合 D l D_l 和無標記的樣本集合 D u D_u ,則用極大似然法來估計高斯混合模型的引數有:
L L ( D l D u ) = ( x i , y i ) D l l n ( i = 1 N α i p ( x j μ i , Σ i ) p ( y j Θ = i , x j ) ) + x j D u l n ( i = 1 N α i p ( x j μ i , Σ i ) ) LL(D_l \bigcup D_u) = \sum_{(x_i,y_i)∈D_l}ln(\sum_{i=1}^{N}\alpha_ip(x_j|{\mu_i,\Sigma_i})p(y_j|{\Theta=i,x_j}))+\sum_{x_j∈D_u}ln(\sum_{i=1}^{N}\alpha_ip(x_j|{\mu_i,\Sigma_i}))
前一項是基於有標記資料的監督項,後一項是居於未標記資料的無監督項,採用EM演算法進行求解:
E步: 根據當前模型引數計算未標記樣本 x j x_j 屬於各高斯混合成分概率:
γ j i = α i P ( x j μ i , Σ i ) l = 1 k α l P ( x j μ l , Σ l ) \gamma_{ji}=\frac{\alpha_iP(x_j|{\mu_i, \Sigma_i})}{\sum_{l=1}^{k}\alpha_lP(x_j|{\mu_l,\Sigma_l})}
M步: 基於 γ j i \gamma_{ji} 更新模型引數:
μ i = 1 x j D u γ j i + l i ( x j D u γ j i x j + ( x j , y j ) D l y i = i x j ) Σ i = 1 x j D u γ j i + l i ( x j D u γ j i ( x j μ i ) ( x j μ i ) T + ( x j , y j ) D l y i = i ( x j μ i ) ( x j μ i ) T ) α i = 1 m ( x j D u γ j i + l i ) \mu_i = \frac{1}{\sum_{x_j∈D_u}\gamma_{ji}+l_i}(\sum_{x_j∈D_u}\gamma_{ji}x_j+\sum_{(x_j,y_j)∈D_l\wedge y_i=i}x_j)\\ \Sigma_i = \frac{1}{\sum_{x_j∈D_u}\gamma_{ji}+l_i}(\sum_{x_j∈D_u}\gamma_{ji}(x_j-\mu_i)(x_j-\mu_i)^T+\sum_{(x_j,y_j)∈D_l\wedge y_i=i}(x_j-\mu_i)(x_j-\mu_i)^T) \\ \alpha_i = \frac{1}{m}(\sum_{x_j∈D_u}\gamma_{ji}+l_i)