導航:首頁 > 源碼編譯 > 模型與演算法的學習

模型與演算法的學習

發布時間:2024-08-04 05:34:26

1. 高斯混合模型(GMM)及EM演算法的初步理解

高斯混合模型(Gaussian Mixed Model)指的是多個高斯分布函數的線性組合,理論上GMM可以擬合出任意類型的分布,通常用於解決同一集合下的數據包含多個不同的分布的情況(或者是同一類分布但參數不一樣,或者是不同類型的分布,比如正態分布和伯努利分布)。

如圖1,圖中的點在我們看來明顯分成兩個聚類。這兩個聚類中的點分別通過兩個不同的正態分布隨機生成而來。但是如果沒有GMM,那麼只能用一個的二維高斯分布來描述圖1中的數據。圖1中的橢圓即為二倍標准差的正態分布橢圓。這顯然不太合理,畢竟肉眼一看就覺得應該把它們分成兩類。

這時候就可以使用GMM了!如圖2,數據在平面上的空間分布和圖1一樣,這時使用兩個二維高斯分布來描述圖2中的數據,分別記為N(μ1,Σ1)和N(μ2,Σ2) 。圖中的兩個橢圓分別是這兩個高斯分布的二倍標准差橢圓。可以看到使用兩個二維高斯分布來描述圖中的數據顯然更合理。實際上圖中的兩個聚類的中的點是通過兩個不同的正態分布隨機生成而來。如果將兩個二維高斯分布N(μ1,Σ1)和N(μ2,Σ2) 合成一個二維的分布,那麼就可以用合成後的分布來描述圖2中的所有點。最直觀的方法就是對這兩個二維高斯分布做線性組合,用線性組合後的分布來描述整個集合中的數據。這就是高斯混合模型(GMM)。

高斯混合模型(GMM)的數學表示:

期望極大(Expectation Maximization)演算法,也稱EM演算法,是一種迭代演算法,由Dempster et. al 在1977年提出,用於含有隱變數的概率參數模型的極大似然估計。

EM演算法作為一種數據添加演算法,在近幾十年得到迅速的發展,主要源於當前科學研究以及各方面實際應用中數據量越來越大的情況下,經常存在數據缺失或者不可用的的問題,這時候直接處理數據比較困難,而數據添加辦法有很多種,常用的有神經網路擬合、添補法、卡爾曼濾波法等,但是EM演算法之所以能迅速普及主要源於它演算法簡單,穩定上升的步驟能相對可靠地找到「最優的收斂值」。

(個人的理解就是用含有隱變數的含參表達式不斷擬合,最終能收斂並擬合出不含隱變數的含參表達式)

模型的EM訓練過程,直觀的來講是這樣:我們通過觀察采樣的概率值和模型概率值的接近程度,來判斷一個模型是否擬合良好。然後我們通過調整模型以讓新模型更適配采樣的概率值。反復迭代這個過程很多次,直到兩個概率值非常接近時,我們停止更新並完成模型訓練。現在我們要將這個過程用演算法來實現,所使用的方法是模型生成的數據來決定似然值,即通過模型來計算數據的期望值。通過更新參數μ和σ來讓期望值最大化。這個過程可以不斷迭代直到兩次迭代中生成的參數變化非常小為止。該過程和k-means的演算法訓練過程很相似(k-means不斷更新類中心來讓結果最大化),只不過在這里的高斯模型中,我們需要同時更新兩個參數:分布的均值和標准差.[3]

GMM常用於聚類。如果要從 GMM 的分布中隨機地取一個點的話,實際上可以分為兩步:首先隨機地在這 K 個 Component 之中選一個,每個 Component 被選中的概率實際上就是它的系數Πk ,選中 Component 之後,再單獨地考慮從這個 Component 的分布中選取一個點就可以了──這里已經回到了普通的 Gaussian 分布,轉化為已知的問題。

根據數據來推算概率密度通常被稱作 density estimation 。特別地,當我已知(或假定)概率密度函數的形式,而要估計其中的參數的過程被稱作『參數估計』。

(推導和迭代收斂過程這里省略,可參考資料1)

一個實際的例子:用GMM對iris數據集進行聚類,並通過make_ellipses表示出來

make_ellipses方法概念上很簡單,它將gmm對象(訓練模型)、坐標軸、以及x和y坐標索引作為參數,運行後基於指定的坐標軸繪制出相應的橢圓圖形。

在特定條件下,k-means和GMM方法可以互相用對方的思想來表達。在k-means中根據距離每個點最接近的類中心來標記該點的類別,這里存在的假設是每個類簇的尺度接近且特徵的分布不存在不均勻性。 這也解釋了為什麼在使用k-means前對數據進行歸一會有效果。高斯混合模型則不會受到這個約束 ,因為它對每個類簇分別考察特徵的協方差模型。

K-means演算法可以被視為高斯混合模型(GMM)的一種特殊形式。 整體上看,高斯混合模型能提供更強的描述能力,因為聚類時數據點的從屬關系不僅與近鄰相關,還會依賴於類簇的形狀。n維高斯分布的形狀由每個類簇的協方差來決定。在協方差矩陣上添加特定的約束條件後,可能會通過GMM和k-means得到相同的結果。

在k-means方法中使用EM來訓練高斯混合模型時對初始值的設置非常敏感。而對比k-means,GMM方法有更多的初始條件要設置。實踐中不僅初始類中心要指定,而且協方差矩陣和混合權重也要設置。可以運行k-means來生成類中心,並以此作為高斯混合模型的初始條件。由此可見並兩個演算法有相似的處理過程,主要區別在於模型的復雜度不同。

高斯混合模型的基本假設是 已知類別的比例 和 類別的個數 ,但是不知道每個樣例的具體標簽,據此用EM的模式為每個樣本進行最優的標注。也就是說它適合的是 無標簽學習的分類問題 ,並且需要已知基本假設。

整體來看,所有無監督機器學習演算法都遵循一條簡單的模式:給定一系列數據,訓練出一個能描述這些數據規律的模型(並期望潛在過程能生成數據)。 訓練過程通常要反復迭代,直到無法再優化參數獲得更貼合數據的模型為止。

【1】https://blog.csdn.net/jinping_shi/article/details/59613054  高斯混合模型(GMM)及其EM演算法的理解

【2】https://cloud.tencent.com/developer/news/231599    機器學習中的數學(4)-EM演算法與高斯混合模型(GMM)

【3】https://zhuanlan.hu.com/p/31103654    一文詳解高斯混合模型原理

2. "數據,模型,演算法"這三個要素在機器學習中哪個最為重要

模型、數據、演算法可以總結為機器學習方法的提綱挈領,因為側重點不一樣,所以不能比較哪個更重要。

模型:模型的確定主要明確自定義的預測函數長什麼樣子,存在兩種形式P(Y|X)和y=f(x),而由於在這兩個公式中必不可少的存在未畢衫知參數ceta,而且一定不止一個,因此手脊腔在ceta不確定的情況下,公式均表現為各類的集合。由此,我們求解出公式中的未知參數確定下來最後的公式,並用該公式進行預測。
數據:在明確模型的樣式後,我們就需要利用已知的數據對未知參數探索,無論是訓練數據還是測試數據,最終都希望通過公式能預測到和真實情況一樣的結果,事實上肯定是可能一模一樣的,也就會一定存在誤差,我們可稱為損失,那麼就引入損失函數,利用損失最小來求未知參數。
演算法:對於求解最小值,未知參數求一階導數並令導數試等於0。機器學習中常用的演算法有以下兩種:最小二乘法:針對線性模型;梯度下降、上升法(批梯度、增量野笑梯度):針對任意模!

想要了解更多有關數據、模型、演算法的問題,建議了解一下CDA數據分析師的課程。課程內容兼顧培養解決數據挖掘流程問題的橫向能力以及解決數據挖掘演算法問題的縱向能力。通過數字化工作方法來探查業務問題。點擊預約免費試聽課。

閱讀全文

與模型與演算法的學習相關的資料

熱點內容
粵政易文件放在手機哪個文件夾 瀏覽:105
列印機和傳真命令 瀏覽:548
php添加購物車 瀏覽:5
安卓怎麼下載植物大戰僵屍1無盡版 瀏覽:267
程序員上班下班難嗎 瀏覽:299
夢的pdf微盤 瀏覽:186
材料結構分析pdf 瀏覽:795
程序員預研的項目 瀏覽:346
新華保險伺服器登錄不上怎麼回事 瀏覽:397
氣溫高時汽車空調壓縮機振動 瀏覽:563
分配器python 瀏覽:228
outlook伺服器怎麼查詢 瀏覽:400
python預測疫情代碼 瀏覽:982
普通化學原理pdf 瀏覽:908
java的聖經 瀏覽:41
python遍歷兩個數組 瀏覽:396
手游搭建雲伺服器 瀏覽:401
視易鋒雲伺服器啟動黑屏 瀏覽:139
python怎麼獲取網頁a標簽內容 瀏覽:982
app更新後老的安裝包去哪裡了 瀏覽:199