高斯混合模型 GMM
在一般的分類問題中,通常的套路都是提取特征,將特征輸入分類器訓練,得到最終的模型。但是在具體操作時,一開始提出的特征和輸入分類器訓練的特征是不一樣的。比如假設有N張100×100的圖像,分別提取它們的HoG特征x∈Rp×q,p為特征的維數,q為這幅圖像中HoG特征的個數。
如果把直接把這樣的一萬個x直接投入分類器訓練,效果不一定好,因為不一定每個像素點的信息都是有價值的,里面可能有很多是冗余的信息。而且特征維度太高會導致最終的訓練時間過長。
所以通常會對raw features做一些預處理。最常用的就是詞袋模型(bag of words)。
Alt text
上圖中k-means+featuresc encoding這一步就是典型的詞袋模型。K-means是最常用的聚類方法之一,我們的例子中,有N幅圖像,每幅圖像有x∈Rp×q的特征,那么所有數據的特征矩陣為X∈Rp×Nq。也就是說現在一共存在Nq個數據點,它們分布在一個p維的空間中,通過聚類后可以找到M個聚類中心。然后對于每一幅圖像而言,分別計算它的q個p維特征屬于哪一個聚類中心(距離最近),最終統計M個聚類中心分別擁有多少特征,得到一個M維的向量。這個向量就是最終的特征。
k-means的缺點在于,它是一個hard聚類的方法,比如有一個點任何一個聚類中心都不屬于,但是詞袋模型仍然可能會把它強行劃分到一個聚類中心去。對于一個點,它屬不屬于某個聚類中心的可能性是個屬于(0,1)的整數值。
相反,高斯混合模型(Gaussian Mixture Model) 就是一種soft聚類的方法,它建立在一個重要的假設上,即任意形狀的概率分布都可以用多個高斯分布函數去近似。顧名思義,高斯混合模型是由很多個高斯分布組成的模型,每一個高斯分布都是一個component。每一個component Nk~(μk,σk),k=1,2,…K對應的是一個聚類中心,這個聚類中心的坐標可以看作(μk,σk),對于一個點xi它屬于第k個聚類中心的可能性pik是一個屬于0,1的概率值,也就是說在高斯混合模型中,一個點可以看作是由多個component聯合生成的,pik也是數據xi由第k個component生成的概率。
所以當給定N張圖像的訓練集合x1,x2,…,xN,那么自然而然的想到可以嘗試利用多個高斯分布函數的線性組合擬合x的分布。 那么假設有k個高斯分布,每個分布稱為一個component,則
其中p(x|k)~N(μk,σk),設p(k)=πk表示的是第k個高斯分布的被選中的概率,也就是權重?,F在的任務就是找到 (μk,σk,πk)k=1,…,K,令已知的 x1,x2,…,xN 分布存在的可能性最大,也就是i似然函數最大。
故有
對上式分別對于μ,Σ,?求偏導并置于0,就可以求出最優的參數。但是上式中又有加和,我們沒法直接用求導解方程的辦法直接求得最大值。
所以一般解高斯混合模型都用的是EM算法。
EM算法分為兩步:
在E-step中,估計數據由每個component生成的概率。
假設μ,Σ,?已知,對于每個數據 xi 來說,它由第k個component 生成的概率為
在M-step中,估計每個component的參數μk,Σk,πkk=1,…K。
利用上一步得到的pik,它是對于每個數據 xi 來說,它由第k個component生成的概率,也可以當做第k個component在生成這個數據上所做的貢獻,或者說,我們可以看作 xi這個值其中有pikxi 這部分是由 第k個component所生成的?,F在考慮所有的數據,可以看做第k個component生成了 p1kx1,…,pNkxN 這些點。由于每個component 都是一個標準的 Gaussian 分布,可以很容易的根據期望、方差的定義求出它們:
重復迭代前面兩步,直到似然函數的值收斂為止。
總結
以上是生活随笔為你收集整理的高斯混合模型 GMM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell调用python权限不足_使用
- 下一篇: 苹果html5跑分排行,UC浏览器HTM