iT邦幫忙

2023 iThome 鐵人賽

DAY 14
1
AI & Data

ML From Scratch系列 第 14

[Day 14] Gaussian Mixture Model — 背後理論

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20230914/20152821q7o9dO6MWb.jpg

Prerequisite

高斯混合模型(Gaussian Mixture Model,GMM)是一種統計模型,用來對數據進行建模,特別是多模態(多個分佈)數據。

在理解高斯混合模型之前,先為機率分佈和機率密度函數做簡介:

Probability Distribution

機率分布(Probability Distribution)是一個統計概念,用來描述一個隨機變數(Random Variable)可能取得每個可能值的機率。機率分布通常用一個函數來表示,該函數將每個可能的隨機變數值映射到其對應的機率。

機率分布可以分為兩種主要類型:離散機率分布連續機率分布

  1. 離散機率分布(Discrete Probability Distribution):
    用於描述隨機變數取離散值(有限或可數無限)的情況。一個離散機率分布通常由機率質量函數(Probability Mass Function,PMF)表示,PMF給出每個可能值的機率。

    例如,一個典型的離散機率分布是二項分布(Binomial Distribution),其PMF可以表示為:

https://chart.googleapis.com/chart?cht=tx&chl=P(X%20%3D%20x)%20%3D%20%5Cbinom%7Bn%7D%7Bx%7D%20p%5Ex%20(1-p)%5E%7Bn-x%7D

其中,https://chart.googleapis.com/chart?cht=tx&chl=X 是隨機變數,https://chart.googleapis.com/chart?cht=tx&chl=x 是可能的取值,https://chart.googleapis.com/chart?cht=tx&chl=n 是試驗的次數,https://chart.googleapis.com/chart?cht=tx&chl=p 是每次試驗成功的機率。

  1. 連續機率分布(Continuous Probability Distribution):
    用於描述隨機變數取連續值的情況。一個連續機率分布通常由機率密度函數(Probability Density Function,PDF)表示,PDF表示在某一區間內取值的機率密度。

    例如,正態分布(Normal Distribution)是一個典型的連續機率分布,其PDF可以表示為:

    https://chart.googleapis.com/chart?cht=tx&chl=f(x)%20%3D%20%5Cfrac%7B1%7D%7B%5Csigma%5Csqrt%7B2%5Cpi%7D%7D%20e%5E%7B-%5Cfrac%7B(x%20-%20%5Cmu)%5E2%7D%7B2%5Csigma%5E2%7D%7D

    其中,https://chart.googleapis.com/chart?cht=tx&chl=x 是隨機變數的值,https://chart.googleapis.com/chart?cht=tx&chl=%5Cmu 是平均值,https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma 是標準差。

Probability Density Function (PDF)

機率密度函數(Probability Density Function,PDF)是在統計和機率論中用來描述連續型隨機變數的機率分佈的函數。它表示了隨機變數落在某個特定區間內的機率密度,而不是確定的機率值。PDF通常用 https://chart.googleapis.com/chart?cht=tx&chl=f(x) 表示,其中 https://chart.googleapis.com/chart?cht=tx&chl=x 是隨機變數的值。PDF滿足以下兩個性質:

  1. 非負性:對於所有的 https://chart.googleapis.com/chart?cht=tx&chl=x,PDF值都必須是非負的,即https://chart.googleapis.com/chart?cht=tx&chl=f(x)%20%3E%3D%200

  2. 正規化:PDF在整個隨機變數的範圍內的積分等於1,即https://chart.googleapis.com/chart?cht=tx&chl=%5Cint%20f(x)%20dx%20%3D%201,這表示了機率的總和為1。

https://chart.googleapis.com/chart?cht=tx&chl=f(x)%20%5Cgeq%200%20%5Cquad%20%5Ctext%7Bfor%20all%20%7D%20x%20

https://chart.googleapis.com/chart?cht=tx&chl=%5Cint_%7B-%5Cinfty%7D%5E%7B%5Cinfty%7D%20f(x)%20%5C%2C%20dx%20%3D%201%20

PDF的具體形式取決於特定的機率分佈。一些常見的連續機率分佈,如正態分佈、均勻分佈和指數分佈,都有各自的PDF表達式。以正態分佈為例,其PDF表達式如下:

https://chart.googleapis.com/chart?cht=tx&chl=f(x)%20%3D%20%5Cfrac%7B1%7D%7B%5Csigma%20%5Csqrt%7B2%5Cpi%7D%7D%20e%5E%7B-%5Cfrac%7B(x%20-%20%5Cmu)%5E2%7D%7B2%5Csigma%5E2%7D%7D%20

其中,https://chart.googleapis.com/chart?cht=tx&chl=%5Cmu是平均值,https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma是標準差,它們是正態分佈的兩個參數。

PDF的主要作用是描述連續型隨機變數在不同值之間的機率密度,這對於許多統計分析和模型建構的工作非常重要。通過對PDF進行積分,可以計算出在某個區間內的機率,進而進行各種統計推斷和預測。

K-means

  1. 隨機初始化參數 https://chart.googleapis.com/chart?cht=tx&chl=%5Ctheta%20%3D%20%5C%7B%20%5Cmu_1%2C%20%5Cdots%2C%20%5Cmu_c%20%5C%7D 代表 cluster 中心得初始位置
  2. 重複以下步驟直到收斂
    • 使每一個點 https://chart.googleapis.com/chart?cht=tx&chl=x_i 尋找歸屬的 https://chart.googleapis.com/chart?cht=tx&chl=c_i,例如:https://chart.googleapis.com/chart?cht=tx&chl=c_i%20%3D%20%5Carg%20%5Cmax_c%20%5C%7C%20x_i%20-%20%5Cmu_c%20%5C%7C%5E2
    • 更新 cluster 中心:https://chart.googleapis.com/chart?cht=tx&chl=%5Cmu_c%20%3D%20%5Cfrac%7B%5Csum_%7Bi%3Ac_i%3Dc%7Dx_i%7D%7B%5C%23%20%5C%20of%20%5C%7B%20i%3Ac_i%20%3D%20c%20%5C%7D%7D

Goal

Gaussian Mixture Model 的目標是通過估計每個高斯分佈的平均值和標準差以及它們的權重,來擬合數據,用於聚類和密度估計等應用。

Background

以下是 Gaussian Mixture Model 的演算法

  1. 隨機初始化各高斯分佈的函數 https://chart.googleapis.com/chart?cht=tx&chl=%5Ctheta%20%3D%20%5C%7B%20%5Cmu_1%2C%20%5Cdots%2C%20%5Cmu_c%2C%20%5Csigma_1%2C%20%5Csigma_c%2C%20%5Cpi_1%2C%20%5Cdots%2C%20%5Cpi_c%20%5C%7D
  2. 重複以下步驟直到收斂
    • 為每一個點 https://chart.googleapis.com/chart?cht=tx&chl=x_i 計算每個類別 https://chart.googleapis.com/chart?cht=tx&chl=t_i 的後驗機率 https://chart.googleapis.com/chart?cht=tx&chl=p(t_i%20%5Cmid%20x_i%2C%20%5Ctheta)
    • 更新各個高斯分佈參數
      https://chart.googleapis.com/chart?cht=tx&chl=%5Cmu_c%20%3D%20%5Cfrac%7B%5Csum_i%20p(t_i%20%3D%20c%20%5Cmid%20x_i%2C%20%5Ctheta)x_i%7D%7B%5Csum_i%20p%20(t_i%20%3D%20c%20%5Cmid%20x_i%2C%20%5Ctheta)%7D
      https://chart.googleapis.com/chart?cht=tx&chl=%5Csigma_c%20%3D%20%5Cfrac%7B%5Csum_i%20p(t_i%20%3D%20c%20%5Cmid%20x_i%2C%20%5Ctheta)(x_i%20-%20%5Cmu_c)%5E2%7D%7B%5Csum_i%20p%20(t_i%20%3D%20c%20%5Cmid%20x_i%2C%20%5Ctheta)%7D
      https://chart.googleapis.com/chart?cht=tx&chl=%5Cpi_c%20%3D%20%5Cfrac%7B%5Csum_i%20p(t_i%20%3D%20c%20%5Cmid%20x_i%2C%20%5Ctheta)%7D%7B%5C%23%20%5C%20of%20%5C%20datapoints%7D

透過比較 K-means 和 GMM,我們可以發現兩者演算法皆是依照 EM Algorithm 去規劃實做的

Expectation-Maximization (EM) Algorithm

Expectation-Maximization (EM) Algorithm 被用於尋找,依賴於不可觀察的隱性變量的機率模型中,參數的最大似然估計。

最大期望算法經過兩個步驟交替進行計算。

第一步是計算期望(E),利用對隱藏變量的現有估計值,計算其最大似然估計值

第二步是最大化(M),最大化在E步上求得的最大似然值來計算參數的值

M步上找到的參數估計值被用於下一個E步計算中,這個過程不斷交替進行

Clustering

在這裡,我們可以知道 Gaussian Mixture Model 屬於聚類分析的一員。

因為 GMM 是一種生成模型,它假設數據是由多個高斯分佈組成的混合體,每個高斯分佈代表一個聚類。

因此,GMM 可以用來對數據進行聚類分析,將數據點分為不同的組或簇。

Density Estimation

GMM 也是一種 Density Estimation,它可以用來生成與原始數據分佈相似的新數據樣本。

如下圖所示,藍色為原始數據分佈,而線條部份就是模擬原始數據的 Density Estimation

https://ithelp.ithome.com.tw/upload/images/20230914/20152821np9nQ7Vzfx.png


/images/emoticon/emoticon18.gif

下次就會進入到 GMM 實做的部份 ~

Reference

歡迎更仔細閱讀以下相關內容以了解本篇知識


上一篇
[Day 13] K nearest neighbors — 解決真實問題
下一篇
[Day 15] Gaussian Mixture Model — 主題實作
系列文
ML From Scratch31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言