1.背景知识:
   (1)Jensen不等式:若f是凸函数
     基本Jensen不等式:
f(θx+(1θ)y)θf(x)+(1θ)f(y)f(\theta x+(1-\theta) y) \leq \theta f(x)+(1-\theta) f(y)
        几何理解,函数值小于割线值。
EM算法(1)
     若θ1,,θk0,θ1++θk=1\theta_{1}, \ldots, \theta_{k} \geq 0, \theta_{1}+\cdots+\theta_{k}=1,则有:
f(θ1x1++θkxk)θ1f(x1)++θkf(xk)f\left(\theta_{1} x_{1}+\cdots+\theta_{k} x_{k}\right) \leq \theta_{1} f\left(x_{1}\right)+\cdots+\theta_{k} f\left(x_{k}\right)
        概率意义上理解:X是随机变量,P是随机变量取值的概率
Xx1x2xkPθ1θ2θk \begin{array}{c|ccccc} X & x_{1} & x_{2} & \cdots & x_{k} & \\ \hline P & \theta_{1} & \theta_{2} & \cdots & \theta_{k} & \end{array}
        Jessen不等式可以理解为:
f(Ex)Ef(x)f(\mathbf{E} x) \leq \mathbf{E} f(x)
     若p(x)0p(x) \geq 0 on Sdomf,Sp(x)dx=1S \subseteq \operatorname{dom} f, \int_{S} p(x) d x=1,则有:
f(Sp(x)xdx)Sf(x)p(x)dxf\left(\int_{S} p(x) x d x\right) \leq \int_{S} f(x) p(x) d x
   (2)K-means算法:
      K-Means算法,也被称为k-平均或k-均值,是一种广泛使用的聚类算法,
    或者称为其他聚类算法的基础。
      假定输入样本为S=x1,x2,,xm\mathrm{S}=\mathrm{x}_{1}, \mathrm{x}_{2}, \ldots, \mathrm{x}_{\mathrm{m}},则算法步骤为:
        (i)选择初始的k个簇中心μ1μ2μk\mu_{1} \mu_{2} \ldots \mu_{\mathrm{k}};
        (ii)将样本xix_i标记为距离簇中心最近的簇:
            labeli=argmin1jkxiμjlabel _{i}=\underset{1 \leq j \leq k}{\arg \min }\left\|x_{i}-\mu_{j}\right\|
        (iii)更新簇中心:μj=1cjicjxi\mu_{j}=\frac{1}{\left|c_{j}\right|} \sum_{i \in c_{j}} x_{i}
        (iv)重复最后两步,直到满足终止条件。
      终止条件:迭代次数/簇中心变化率/最小平方误差MSE。
      经典的K-means聚类算法,能够非常方便的将未标记的样本分成若干簇,
    但无法给出某个样本属于该簇的后验概率。
   (3)极大似然估计
     找出于样本的分布最接近的概率分布模型
     (i)二项分布的最大似然估计
       投硬币试验中,进行N次独立试验,n次朝上,N-n次朝下。
       假定朝上的概率为p,使用对数似然函数作为目标函数:
f(np)=log(pn(1p)Nn)Δh(p)f(n | p)=\log \left(p^{n}(1-p)^{N-n}\right) \stackrel{\Delta}{\longrightarrow} h(p)
h(p)p=npNn1pΔp=nN\frac{\partial h(p)}{\partial p}=\frac{n}{p}-\frac{N-n}{1-p} \stackrel{\Delta}{\longrightarrow} \Rightarrow p=\frac{n}{N}
     (ii)进一步考察高斯分布
       若给定一组样本x1,x2xn\mathrm{x}_{1}, \mathrm{x}_{2} \ldots \mathrm{x}_{\mathrm{n}},已知它们来自于高斯分布N(μ,σ)\mathrm{N}(\mu, \sigma)
      试估计参数μ,σ\mu, \sigma
       高斯分布的概率密度函数:
f(x)=12πσe(xμ)22σ2f(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^{2}}{2 \sigma^{2}}}
       将XiX_i的样本值xix_i带入,得到:
L(x)=i=1n12πσe(xiμ)22σ2L(x)=\prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}}
       化简对数似然函数:
l(x)=log12πσe(xiμ)22σ2=ilog12πσe(xiμ)22σ2=(ilog12πσ)+(i(xiμ)22σ2)=n2log(2πσ2)12σ2i(xiμ)2\begin{array}{l} l(x)=\log \prod \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}} \\ =\sum_{i} \log \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}} \\ =\left(\sum_{i} \log \frac{1}{\sqrt{2 \pi} \sigma}\right)+\left(\sum_{i}-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}\right) \\ =-\frac{n}{2} \log \left(2 \pi \sigma^{2}\right)-\frac{1}{2 \sigma^{2}} \sum_{i}\left(x_{i}-\mu\right)^{2} \end{array}
       参数估计的结论:
          目标函数:
l(x)=n2log(2πσ2)12σ2i(xiμ)2l(x)=-\frac{n}{2} \log \left(2 \pi \sigma^{2}\right)-\frac{1}{2 \sigma^{2}} \sum_{i}\left(x_{i}-\mu\right)^{2}
          将目标函数对参数μ,σ\mu, \sigma分别求偏导,很容易得到μ,σ\mu, \sigma的式子:
  {μ=1nixiσ2=1ni(xiμ)2\left\{\begin{array}{l} \mu=\frac{1}{n} \sum_{i} x_{i} \\ \sigma^{2}=\frac{1}{n} \sum_{i}\left(x_{i}-\mu\right)^{2} \end{array}\right.
          上述结论矩估计的结果式一致的,表示样本的均值就是高斯分布的均值,样本的伪方差即高斯分布的方差。
2.直观理解GMM参数估计:
   随机变量X是由K个高斯分布混合而成,取各个高斯分布的概率为π1π2πK\pi_{1} \pi_{2} \dots \pi_{K},第i个高斯分布均值为μi\mu_i,方差为i\sum_{i}。若观测到随机变量X的一系列样本x1,x2,,xn\mathrm{x}_{1}, \mathrm{x}_{2}, \ldots, \mathrm{x}_{\mathrm{n}},试估计参数π,μ,\pi,\mu,\sum
   (1)目标函数
      对数似然函数
lπ,μ,Σ(x)=i=1Nlog(k=1KπkN(xiμk,Σk))l_{\pi, \mu, \Sigma}(x)=\sum_{i=1}^{N} \log \left(\sum_{k=1}^{K} \pi_{k} N\left(x_{i} | \mu_{k}, \Sigma_{k}\right)\right)
      由于再对数函数里面又有加权和,无法直接用求导方程的方法直接求得
   最大值。为了解决这个问题,我们分两部解决。
   (2)估算数据来自哪个组分
      估计数据由每个组份生成的概率:对于每个样本xix_i
   它由第k个组份生成的概率为:
γ(i,k)=πkN(xiμk,Σk)j=1KπjN(xiμj,Σj)\gamma(i, k)=\frac{\pi_{k} N\left(x_{i} | \mu_{k}, \Sigma_{k}\right)}{\sum_{j=1}^{K} \pi_{j} N\left(x_{i} | \mu_{j}, \Sigma_{j}\right)}
      上式中的μ\mu\sum也是待估计的值,再计算γ(i,k)\gamma(\mathrm{i}, \mathrm{k})时假定μ\mu\sum是已知,
   需要先验给定μ\mu\sumγ(i,k)\gamma(\mathrm{i}, \mathrm{k})可以看作组份K在生成数据xix_i时所作的贡献。
   (3)估计每个组份
      对于所有的样本点,对于组份k而言,可看作生成了{γ(i,k)xii=1,2,N}\left\{\gamma(i, k) x_{i} | i=1,2, \cdots N\right\}这些点,组份k是个标准的高斯分布,利用上面这些结论。
{Nk=i=1Nγ(i,k)μk=1Nki=1Nγ(i,k)xiΣk=1Nki=1Nγ(i,k)(xiμk)(xiμk)Tπk=NkN=1Ni=1Nγ(i,k)\left\{\begin{array}{l} N_{k}=\sum_{i=1}^{N} \gamma(i, k) \\ \mu_{k}=\frac{1}{N_{k}} \sum_{i=1}^{N} \gamma(i, k) x_{i} \\ \Sigma_{k}=\frac{1}{N_{k}} \sum_{i=1}^{N} \gamma(i, k)\left(x_{i}-\mu_{k}\right)\left(x_{i}-\mu_{k}\right)^{T} \\ \pi_{k}=\frac{N_{k}}{N}=\frac{1}{N} \sum_{i=1}^{N} \gamma(i, k) \end{array}\right.

相关文章:

  • 2021-06-02
  • 2021-06-25
  • 2021-09-07
猜你喜欢
  • 2021-07-02
  • 2021-09-10
  • 2022-12-23
  • 2021-12-26
  • 2021-10-14
  • 2021-12-12
相关资源
相似解决方案