半監督學習綜述
引言
傳統的機器學習技術一般都是只利用有標簽樣本集或者只利用無標簽樣本集合,只利用有標簽樣本的算法我們稱為“有監督學習”,比如邏輯回歸、樸素貝葉斯、支持向量機、隨機森林、梯度提升樹以及梯度提升樹的增強版本Xgboost等;只利用無標簽樣本的算法我們稱為“無監督學習”,比如聚類就是一種典型的無監督學習。而在實際問題中一般是有標簽和無標簽數據共存,但是標簽數據集過少,無標簽數據集大量存在,為了更好的利用無標簽數據集以提升模型性能,從而帶來了另外一種著名的學習:半監督學習。
半監督學習分類
無圖無真相,先爆圖,下面這張圖能夠很清晰的說明學習半監督的意義何在。
在不考慮無標簽數據時,只有1和2兩個有標簽數據,此時的決策邊界是圖中的虛線,當我們將無標簽數據考慮以后,兩類樣本所服從的分布發生改變,從而導致決策邊界向右偏移,變成黑色實線。上述過程的直觀理解就是隨著我們能夠拿到的樣本集的增多,我們對于正負兩類樣本的信息掌握更加充分,從而使我們做出更好的決策。
傳統意義上的半監督學習一般可以分為以下四類(想看詳細材料的小伙伴請戳這里半監督學習綜述):
其中,生成式模型主要是將生成式模型如GMM和HMM等引入到半監督學習中;低密度劃分算法就是要盡量讓分類邊界通過密度較低區域,是在傳統支持向量機基礎上了很多改進以更好利用無標簽來提升模型性能,比如常見的半監督支持向量機S3VM、S4VM等等;不一致性算法是指在整個訓練過程中建立兩個或兩個以上的分類器并讓他們協同工作的范式;圖正則化這類算法基于流型假設,假設所有的樣本點(包括已標記與未標記)以及之間的關系可以表示為一個無向圖的形式 g =<V,E >,其中圖的結點為數據樣本點,而邊則體現了兩個樣本點之間的相似度關系,基于圖的半監督算法的優化目標就是要保證在已標記點上的結果盡量符合而且要滿足流型假設。
本文主要跟大家分享交流的是生成式模型中GMM和EM算法在半監督學習中的應用,其余模塊后續和大家交流分享。主要從期望最大化算法、混合高斯模型以及混合高斯模型在半監督學習中的應用三個部分進行展開。
期望最大化EM算法
EM算法
EM算法本質是一種迭代算法,用于求解含有隱變量的概率模型參數的極大似然估計,概率模型有時既含有觀測變量,同時含有隱含變量或者潛在變量,如果概率模型的變量都是觀測變量,那么對于給定的數據,直接使用極大似然估計就可以求解得到對應的參數(可以在本文的混合高斯模型在有監督二分類學習中的應用 章節看到),但是當概率模型含有隱變量時,就沒有辦法直接使用極大似然估計方法,從而提出能夠求解隱變量的EM算法(可以在本文的混合高斯模型在半監督二分類學習中的應用 章節看到)。
該部分參考資料主要來源于七月在線的機器學習班課程,詳情請戳這里七月在線
具體來說,EM算法包含E步和M步,E步首先在隨機給出參數θ的前提下,求得關于隱變量的后驗概率;M步是在已知后驗概率的前提下,通過已知觀測樣本的參與求得使得期望最大化時的參數,從而使得參數得以更新,然后重復E步和M步直至算法收斂。
里面涉及到的兩步:
- E步中為什么是關于隱變量的后驗概率?
- M步中所謂期望最大化由何處來?
為了說明上述兩個問題,我們首先引入目標函數(對數似然函數),并且為了方便求解隱含變量z,讓其在目標函數中顯性的表示出來:
z是隱隨機變量,不方便直接找到參數估計,所以我們的策略是利用Jensen不等式計算l(θ)下界,然后求該下界的最大值;重復該過程,直到收斂到局部最大值。具體地,令Qi是隱含變量z的某一個分布,Qi≥0,有
為了使Jensen不等式對于任何樣本點而言都能取得等號,必須有
從而有下式存在,也證明了剛才提到的兩個問題。
EM算法與熟悉的K-means是什么關系
兩者都可以看做迭代算法,對于K-means來說就是我們一開始不知道每個樣例對應的隱含變量也就是最佳類別c(i),最開始可以隨便指定一個類別c(i)給樣例,然后為了讓目標函數J最小化,我們求出在給定c(i)情況下,J最小時的質心參數u(j)(EM算法中第一步時需要初始化的未知參數),得到新質心參數u(j)以后發現可以有更好的類別c(i)指定給樣例使得目標函數J 更小,那么c(i)得到重新調整,上述過程就開始重復了,直到沒有更好的c(i)指定。這樣從K-means里我們可以看出它其實就是EM的體現,E步是確定隱含類別變量,M步更新其他參數來使J最小化。這里的隱含類別變量指定方法比較特殊,屬于硬指定,從k個類別中硬選出一個給樣例,而不是對每個類別賦予不同的概率。總體思想還是一個迭代優化過程,有目標函數,也有參數變量,只是多了個隱含變量,確定其他參數估計隱含變量,再確定隱含變量估計其他參數,直至目標函數最優。
該部分的參考資料來源于JerryLead同學的博客,在此表示感謝!
注:K-means中的目標函數稱為畸變函數(distortion function)(如下式所示),J目標函數表示每個樣本點到其質心的距離平方和,所以K-means的目標是要將J函數調整到最小。
混合高斯模型
問題背景
首先來個簡單小栗子讓大家找點感覺,比如說:
我們對1000名學生進行身高數據測量(PS:如老師所說,反正像我肯定是不會讓你測試的,O(∩_∩)O哈哈~),假設樣本中存在男性和女性(第三種性別不考慮在內),身高數據分別服從正態分布N(μ1,σ1)和和N(μ2,σ2),如何利用已觀測到的身高數據估計對應參數μ1,σ1,μ2,σ2。
將上述例子抽象為數學表示:
觀測到得隨機變量X(對應于例子中的身高)是有K(對應于例子中的男性和女性,值為2)個高斯分布混合而成,取各個高斯分布的概率為φ1φ2... φK,第i個高斯分布的均值為μi,方差為Σi。若觀測到隨機變量X的一系列樣本x1,x2,...,xn(對應于例子中已觀測到的身高數據),試估計參數π,μ,Σ。
EM求解過程
對于所有的數據點,可以看作組份k生成了這些點。組份k是一個標準的高斯分布,具體的算法步驟會在本文最后講解混合高斯模型在半監督分類中的應用 時給出,本質還是嚴格遵守了EM算法的兩步來進行。
混合高斯模型在半監督中的應用
該部分的參考資料來源于Xiaojin Zhu and Andrew B. Goldberg的書籍:Introduction to Semi-Supervised Learning
一般的,對于二分類問題而言,混合高斯模型中高斯模型的個數此時就是確定的2,即正樣本和負樣本兩類樣本各自所服從的密度函數;對于一個示例(instance),我們想知道它可能的預測標簽y是什么,我們通常會使用如下概率公式來計算哪一類對應的概率最大。
上述式子中,分母相當于歸一化因子,重點在于如何求解分子的乘積項,其中,p(x|y)稱為類的條件概率,其實就是正類和負類樣本各自所服從的概率密度函數;p(y)是每一類的先驗概率,如果全部是有標簽的時候,p(y)直接通過計數求頻率即可得到。
混合高斯模型在有監督二分類學習中的應用
有監督學習中,所有數據都是已知標簽的,此時可以直接使用最大似然估計求解三組參數
然后對上式引入拉格朗日乘子beta,轉化為如下式子:
直接對上式分別求偏導,就能得到每一類的先驗概率、高斯分布的均值以及高斯分布的方差。
混合高斯模型在半監督分類中的應用
在半監督學習中,數據包含有標簽和無標簽數據兩部分 ,對數似然函數變為
該似然函數和前面有監督學習中似然函數相比,最大的不同點就在于針對無標簽數據多出的第二項式子,我們通常稱p(x|θ)為邊緣概率,
邊緣概率表示對于無標簽數據我們已知其樣本和特征信息,但是不知道每個樣本歸屬的類別y是什么,無標簽樣本所對應的類別此時相當于隱含變量,該隱變量的存在會使得上述似然函數非凸和難求解,為此我們將剛才提到的期望最大化算法EM引入進來,來求解θ的局部最優值。
上面的算法步驟里面,首先初始化參數θ(0),θ(0)就是利用MLE在有標簽數據上所求得值(注:在半監督算法里面,很多地方都會出現類似的身影,就是參數的初值都是現在有標簽數據上求得,然后逐步將無標簽數據引入進來,之后跟大家分享一篇利用牛頓法求解S3VM的算法,初值選取的手法類似),第E步就是得到關于隱變量(無標簽數據對應的標簽)的后驗概率(所以γij取值為0和1,當第i個樣本屬于第j類時,γij=1,否則為0,這兒稍微和前面提到的混合高斯模型有所區別,前面提到的混合高斯模型中,γij可以理解為第j個成分對于觀測到的第i個樣本的貢獻程度,是一個真正意義上的0-1之間的概率值,而此時的γij取值只能是0和1),得到隱變量的后驗概率以后,求得期望最大化時對應的參數θ,然后將新的θ會帶到E步中,求得新的γij,不斷重復直至收斂。
好啦~上述就是今天要跟大家分享的所有內容,第一次以博客的形式跟大家交流,難免會有疏漏,有任何建議和意見隨時都歡迎大家給我留言(本人QQ:1104409598)!