日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

机器学习理论《统计学习方法》学习笔记:第九章 EM算法及其推广

發(fā)布時(shí)間:2024/10/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习理论《统计学习方法》学习笔记:第九章 EM算法及其推广 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第九章 EM算法及其推廣

  • 概述
  • EM算法
  • EM算法的收斂性
  • EM算法實(shí)現(xiàn)
  • K-Means與高斯混合模型
    • K-Means
    • 高斯混合模型

概述

EM算法是一種迭代算法,1977年由Dempster等人總結(jié)提出,用于含隱變量(Hidden variable)的概率模型參數(shù)的極大似然估計(jì),或極大后驗(yàn)概率估計(jì)。EM算法的每次迭代由兩步組成:E步,求期望(expectation);M步,求極大(Maximization)。所以這一算法被稱為期望極大算法(Expectation Maximization Algorithm),簡(jiǎn)稱EM算法。本章首先敘述EM算法,然后討論EM算法的收斂性;作為EM算法的應(yīng)用,介紹高斯混合模型的學(xué)習(xí);最后敘述EM算法的推廣–GEM算法。

概率模型有時(shí)既含有觀測(cè)變量(Observable Variable),又含有隱變量或潛在變量(Latent variable)。如果概率模型的變量都是觀測(cè)變量,那么給定數(shù)據(jù),可以直接用極大似然估計(jì)法,或貝葉斯估計(jì)法估計(jì)模型參數(shù)。但是,當(dāng)模型含有隱變量時(shí),就不能簡(jiǎn)單的使用這些估計(jì)方法。EM算法就是含有隱變量的概率模型參數(shù)的極大似然估計(jì)法,或極大后驗(yàn)概率估計(jì)法。

EM算法與初值的選擇有關(guān),選擇不同的初值可能得到不同的參數(shù)估計(jì)值。一般地,用Y表示觀測(cè)隨機(jī)變量的數(shù)據(jù),Z表示隱隨機(jī)變量的數(shù)據(jù)。Y和Z連在一起稱為完全數(shù)據(jù)(complete-data),觀測(cè)數(shù)據(jù)Y又稱為不完全數(shù)據(jù)(incomplete-data)。假設(shè)給定觀測(cè)數(shù)據(jù)Y,其概率分布是P(Y∣θ)P(Y|\theta)P(Yθ),其中θ\thetaθ是需要估計(jì)的模型參數(shù),那么不完全數(shù)據(jù)Y的似然函數(shù)是P(Y∣θ)P(Y|\theta)P(Yθ),對(duì)數(shù)似然函數(shù)是L(θ)=logP(Y∣θ)L(\theta)=log P(Y|\theta)L(θ)=logP(Yθ);假設(shè)Y和Z的聯(lián)合概率分布是P(Y,Z∣θ)P(Y,Z|\theta)P(Y,Zθ),那么完全數(shù)據(jù)的對(duì)數(shù)似然函數(shù)是logP(Y,Z∣θ)log P(Y,Z|\theta)logP(Y,Zθ)

EM算法通過迭代求L(θ)=logP(Y∣θ)L(\theta)=log P(Y|\theta)L(θ)=logP(Yθ)的極大似然估計(jì)。每次迭代包括兩步:E步,求期望;M步,求極大化。

EM算法

輸入:觀測(cè)變量數(shù)據(jù)Y,隱變量數(shù)據(jù)Z,聯(lián)合分布P(Y,Z∣θ)P(Y,Z|\theta)P(Y,Zθ),條件分布P(Z∣Y,θ)P(Z|Y,\theta)P(ZY,θ)
輸出:模型參數(shù) θ\thetaθ
(1)選擇參數(shù)的初值θ(0)\theta^{(0)}θ(0)開始迭代
(2)E步:記θ(i)\theta^{(i)}θ(i)為第i次迭代參數(shù)θ\thetaθ的估計(jì)值,在第i+1次迭代的E步,計(jì)算Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣Y,θ(i)]Q(\theta,\theta^{(i)})=E_Z[log P(Y,Z|\theta)|Y,\theta^{(i)}]Q(θ,θ(i))=EZ?[logP(Y,Zθ)Y,θ(i)]
=∑ZlogP(Y,Z∣θ)P(Z∣Y,θ(i))=\sum_Zlog P(Y,Z|\theta)P(Z|Y,\theta^{(i)})=Z?logP(Y,Zθ)P(ZY,θ(i))
(3)M步:求使Q(θ,θ(i))Q(\theta,\theta^{(i)})Q(θ,θ(i))極大化的θ\thetaθ,確定第i+1次迭代的參數(shù)的估計(jì)值θ(i+1)=argmaxθQ(θ,θ(i))\theta^{(i+1)}=arg\space max_{\theta}Q(\theta,\theta^{(i)})θ(i+1)=arg?maxθ?Q(θ,θ(i))
(4)重復(fù)第2步和第4步直到收斂。

在構(gòu)建具體的EM算法時(shí),重要的是定義Q函數(shù)。每次迭代中,EM算法通過極大化Q函數(shù)來(lái)增大對(duì)數(shù)似然函數(shù)L(θ)L(\theta)L(θ)

EM算法的收斂性

EM算法在每次迭代后,均提高觀測(cè)數(shù)據(jù)的似然函數(shù)值,即
P(Y∣θ(i+1))≥P(Y∣θ(i))P(Y|\theta^{(i+1)})\ge P(Y|\theta^{(i)})P(Yθ(i+1))P(Yθ(i))
在一般條件下,EM算法是收斂的,但不能保證收斂到全局最優(yōu)。

EM算法實(shí)現(xiàn)

import torch import torch.nn as nn import torch.nn.functional as Fclass AlexNet(nn.Module):def __init__(self, num_classes):super(AlexNet, self).__init__()# AlexNet與LeNet一樣也會(huì)同時(shí)使用卷積和池化層提取圖像特征# 與LeNet不同的是激活函數(shù)換成了ReLUself.conv1 = nn.Conv2d(in_channels=3, out_channels=96, kernel_size=11, stride=4, padding=5)self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)self.conv2 = nn.Conv2d(in_channels=96, out_channels=256, kernel_size=5, stride=1, padding=2)self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)self.conv3 = nn.Conv2d(in_channels=256, out_channels=384, kernel_size=3, stride=1, padding=1)self.conv4 = nn.Conv2d(in_channels=384, out_channels=384, kernel_size=3, stride=1, padding=1)self.conv5 = nn.Conv2d(in_channels=384, out_channels=256, kernel_size=3, stride=1, padding=1)self.pool5 = nn.MaxPool2d(kernel_size=2, stride=2)self.fc1 = nn.Linear(in_features=12544, out_features=4096)self.drop_ratio1 = 0.5self.fc2 = nn.Linear(in_features=4096, out_features=4096)self.drop_ratio2 = 0.5self.fc3 = nn.Linear(in_features=4096, out_features=num_classes)def forward(self, x):in_size = x.size(0)x = F.relu(self.conv1(x))x = self.pool1(x)x = F.relu(self.conv2(x))x = self.pool2(x)x = F.relu(self.conv3(x))x = F.relu(self.conv4(x))x = x.view(in_size, -1)x = torch.relu(self.fc1(x))# 在全連接之后使用Dropout抑制過擬合x = nn.Dropout2d(x, self.drop_ratio1)x = torch.relu(self.fc2(x))# 在全連接之后使用Dropout抑制過擬合x = nn.Dropout2d(x, self.drop_ratio2)x = self.fc3(x)return x

K-Means與高斯混合模型

K-Means

  • K-Means的目標(biāo)是將樣本集劃分為K個(gè)簇,使得同一個(gè)簇內(nèi)樣本的距離盡可能的小,不同簇之間的樣本距離盡可能大,即最小化每個(gè)簇中樣本與質(zhì)心的距離。K-means屬于原型聚類(prototype-based clustering),原型聚類指聚類結(jié)構(gòu)能通過一組原型刻畫,而原型即為樣本空間中具有代表性的點(diǎn)。在K-means中,這個(gè)原型就是每個(gè)簇的質(zhì)心μ\muμ
  • 從EM算法的觀點(diǎn)來(lái)看,K-Means的參數(shù)就是每個(gè)簇的質(zhì)心μ\muμ,隱變量為每個(gè)樣本的所屬簇。如果事先已知每個(gè)樣本屬于哪個(gè)簇,則直接求平均即可得到μ\muμ。但現(xiàn)實(shí)中不知道的情況下,則需要運(yùn)用EM的思想。
  • 假設(shè)要K個(gè)簇,先隨機(jī)選定K個(gè)點(diǎn)作為質(zhì)心{μ1,μ2,μ3,?,μk}\{\mu_1,\mu_2,\mu_3,\cdots,\mu_k\}{μ1?,μ2?,μ3?,?,μk?}
  • 固定μk\mu_kμk?,將樣本劃分到距離最近的μk\mu_kμk?所屬的簇中,若用rnkr_{nk}rnk?表示第n個(gè)樣本所屬的簇,則
    rnk={1,ifk=argminj∣∣Xn?μj∣∣22,otherwiser_{nk}= \begin{cases} 1,& if k=arg min_j||X_n-\mu_j||^2\\ 2,& otherwise \end{cases} rnk?={1,2,?ifk=argminj?Xn??μj?2otherwise?
  • 固定rnkr_{nk}rnk?,根據(jù)上一步的劃分結(jié)果重新計(jì)算每個(gè)簇的質(zhì)心。由于我們的目標(biāo)是最小化每個(gè)簇中樣本與質(zhì)心的距離,可將目標(biāo)函數(shù)表示為J=∑n=1Nrnk∣∣Xn?μk∣∣2J=\sum_{n=1}^Nr_{nk}||X_n-\mu_k||^2J=n=1N?rnk?Xn??μk?2,要最小化J則對(duì)μk\mu_kμk?求導(dǎo)得2∑n=1Nrnk(Xn?μk)=02\sum_{n=1}^Nr_{nk}(X_n-\mu_k)=02n=1N?rnk?(Xn??μk?)=0,則μk=∑nrnkXn∑nrnk\mu_k={{\sum_n r_{nk}X_n}\over{\sum_n r_{nk}}}μk?=n?rnk?n?rnk?Xn??,即簇中每個(gè)樣本的均值向量。
  • 上面兩步分別更新rnkr_{nk}rnk?μk\mu_kμk?就對(duì)應(yīng)了EM算法中的E步和M步,和EM算法一樣,K-Means每一步都最小化目標(biāo)函數(shù)J,因而可以保證收斂到局部最優(yōu)值,但是在非凸目標(biāo)函數(shù)的情況下,不能保證收斂到全局最優(yōu)值。

    另外,K-means對(duì)每個(gè)樣本進(jìn)行硬分配(Hard Assignment),即只歸為一個(gè)簇,然而某些樣本可能處于簇與簇的邊界處,將這些樣本強(qiáng)行分到其中一個(gè)簇可能并不能反映確信度,高斯混合模型可以進(jìn)行軟分配(Soft Assignment),即對(duì)每個(gè)樣本劃分的簇進(jìn)行概率估計(jì)。

    最后總結(jié)一下K-Means算法的優(yōu)缺點(diǎn):
    優(yōu)點(diǎn):

  • 可解釋性比較強(qiáng)
  • 調(diào)參的參數(shù)僅為簇?cái)?shù)K
  • 相對(duì)于高斯混合模型而言,收斂速度快,因而常用于高斯混合模型的初始值選擇,K-Means的時(shí)間復(fù)雜度為O(N?K?I)O(N\cdot K\cdot I)O(N?K?I),簇?cái)?shù)K和迭代次數(shù)I通常遠(yuǎn)小于N,所以可優(yōu)化為O(N)O(N)O(N),效率較高。
  • 缺點(diǎn):

    • 對(duì)離群點(diǎn)敏感。
    • K值難以事先選取,交叉驗(yàn)證不大合適,因?yàn)榇卦蕉?#xff0c;目標(biāo)函數(shù)∑n=1Nrnk∣∣Xn?μk∣∣2\sum_{n=1}^N r_{nk}||X_n-\mu_k||^2n=1N?rnk?Xn??μk?2就越小。常采用的方法有:

    一、拐點(diǎn)法,如下圖K=3就是一個(gè)拐點(diǎn)。


    二、加入正則化系數(shù)λ\lambdaλ,使得∑n=1N(rnk∣∣Xn?μk∣∣2)+λK\sum_{n=1}^N(r_{nk}||X_n-\mu_k||^2)+\lambda Kn=1N?(rnk?Xn??μk?2)+λK最小。

    • 無(wú)法保證收斂到全局最優(yōu)值,常使用不同的初始值進(jìn)行多次實(shí)驗(yàn)。也可以通過K-means++算法進(jìn)行優(yōu)化,核心思想是選取與已有質(zhì)心距離較遠(yuǎn)的點(diǎn)作為初始值。
    • 只能發(fā)現(xiàn)球狀的簇。
    • 由于采用歐氏距離,無(wú)法直接計(jì)算類別型變量。

    高斯混合模型

    高斯混合模型同樣用于聚類,與K-means不同的是高斯混合模型采用概率模型來(lái)表達(dá)聚類原型。
    首先,高斯混合模型(Gaussian Distribution):對(duì)隨機(jī)變量x,其概率密度函數(shù)可表示為:N(x∣μ,σ2)=1(2πσ2)exp(?(x?μ)22σ2)N(x|\mu,\sigma^2)={{1}\over{\sqrt(2\pi\sigma^2)}}exp(-{{(x-\mu)^2}\over{2\sigma^2}})N(xμ,σ2)=(?2πσ2)1?exp(?2σ2(x?μ)2?)
    若x為n維隨機(jī)變量,則多元高斯分布(Multivariate Gaussian Distribution)為:N(x∣μ,Σ)=1(2π)n/2∣Σ∣1/2exp(?12(x?μ)TΣ?1(x?μ))N(x|\mu,\Sigma)={{1}\over{(2\pi)^{n/2}|\Sigma|^{1/2}}}exp(-{1\over2}(x-\mu)^T\Sigma^{-1}(x-\mu))N(xμ,Σ)=(2π)n/2Σ1/21?exp(?21?(x?μ)TΣ?1(x?μ))
    其中μ\muμ為n維均值向量,Σ\SigmaΣn?nn * nn?n的協(xié)方差矩陣,∣Σ∣|\Sigma|ΣΣ\SigmaΣ的行列式。
    很多時(shí)候我們發(fā)現(xiàn)單個(gè)高斯分布無(wú)法很好地描述數(shù)據(jù)的性質(zhì),如下圖數(shù)據(jù)分為兩個(gè)簇,如果使用兩個(gè)高斯分布明顯能更好地描述數(shù)據(jù)結(jié)構(gòu)。


    因此沿著這個(gè)思路就誕生了高斯混合模型(Mixture of Gaussian),本質(zhì)上是K個(gè)高斯分布的線性組合,這樣靈活性大增,能描述更多樣的分布:p(x)=∑k=1KπkN(x∣μk,Σk)p(x)=\sum_{k=1}^K\pi_k N(x|\mu_k,\Sigma_k)p(x)=k=1K?πk?N(xμk?,Σk?)
    其中,0≤πk≤10\le\pi_k\le10πk?1為混合系數(shù),滿足∑k=1Kπk=1\sum_{k=1}^K\pi_k=1k=1K?πk?=1

    下面以EM算法的角度看待高斯混合模型。EM算法是一種對(duì)含有隱變量的概率模型的極大似然估計(jì),通常隱變量Z未知,而實(shí)際知曉的只有觀測(cè)變量X。而對(duì)于高斯混合模型來(lái)說(shuō),通過采樣得到的樣本,卻不知道每個(gè)樣本來(lái)自哪個(gè)樣本,這就是高斯混合模型的隱變量。


    圖(a)是依照完全數(shù)據(jù)的聯(lián)合分布p(x,z)p(x,z)p(x,z)作圖,每個(gè)點(diǎn)依照其所屬于的第K個(gè)類別標(biāo)記顏色,這樣本的聚類屬于硬分配。圖(b)則不考慮隱變量Z,僅依照不完全數(shù)據(jù)x直接作圖;圖(c)則考慮了每個(gè)樣本每個(gè)樣本來(lái)自于各個(gè)類別的后驗(yàn)概率,這樣一些在簇中間得的點(diǎn)的顏色是三種顏色的混合,表明這些點(diǎn)來(lái)自于每個(gè)簇的概率比較接近,即軟分配。

    高斯混合模型的優(yōu)缺點(diǎn):
    優(yōu)點(diǎn):

    • 相對(duì)于K-Means更具一般性,能形成各種不同大小和形狀的簇。K-Means可視為高斯混合聚類中每個(gè)樣本僅指派給一個(gè)混合成分的特例,且各混合成分協(xié)方差相等,均為對(duì)角矩陣σ2I\sigma^2Iσ2I
    • 僅使用少量的參數(shù),就能較好地描述數(shù)據(jù)的特性。

    缺點(diǎn):

    • 高斯混合模型的計(jì)算量較大且收斂較慢,因此先對(duì)樣本集進(jìn)行K-Means聚類,依據(jù)得到的各個(gè)簇來(lái)確定高斯混合模型的初始值,其中質(zhì)心即為均值向量,協(xié)方差矩陣為每個(gè)簇中樣本的協(xié)方差矩陣,混合系數(shù)為每個(gè)簇中樣本占總體樣本的比例。
    • 分模型數(shù)量難以事先選擇,但可以通過劃分驗(yàn)證集來(lái)比較。
    • 對(duì)異常點(diǎn)敏感。
    • 數(shù)據(jù)量少時(shí)效果不好。

    參考文獻(xiàn)
    1.https://blog.csdn.net/weixin_37763870/article/details/103012009
    2.https://www.cnblogs.com/massquantity/p/9416109.html

    總結(jié)

    以上是生活随笔為你收集整理的机器学习理论《统计学习方法》学习笔记:第九章 EM算法及其推广的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。