EM算法(1)

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) f(θx+(1θ)y)θf(x)+(1θ)f(y)
        几何理解,函数值小于割线值。
在这里插入图片描述
     若 θ 1 , … , θ k ≥ 0 , θ 1 + ⋯ + θ k = 1 \theta_{1}, \ldots, \theta_{k} \geq 0, \theta_{1}+\cdots+\theta_{k}=1 θ1,,θk0,θ1++θk=1,则有:
f ( θ 1 x 1 + ⋯ + θ k x k ) ≤ θ 1 f ( x 1 ) + ⋯ + θ k f ( x k ) 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) f(θ1x1++θkxk)θ1f(x1)++θkf(xk)
        概率意义上理解:X是随机变量,P是随机变量取值的概率
X x 1 x 2 ⋯ x k P θ 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} XPx1θ1x2θ2xkθk
        Jessen不等式可以理解为:
f ( E x ) ≤ E f ( x ) f(\mathbf{E} x) \leq \mathbf{E} f(x) f(Ex)Ef(x)
     若 p ( x ) ≥ 0 p(x) \geq 0 p(x)0 on S ⊆ dom ⁡ f , ∫ S p ( x ) d x = 1 S \subseteq \operatorname{dom} f, \int_{S} p(x) d x=1 Sdomf,Sp(x)dx=1,则有:
f ( ∫ S p ( x ) x d x ) ≤ ∫ S f ( x ) p ( x ) d x f\left(\int_{S} p(x) x d x\right) \leq \int_{S} f(x) p(x) d x f(Sp(x)xdx)Sf(x)p(x)dx
   (2)K-means算法:
      K-Means算法,也被称为k-平均或k-均值,是一种广泛使用的聚类算法,
    或者称为其他聚类算法的基础。
      假定输入样本为 S = x 1 , x 2 , … , x m \mathrm{S}=\mathrm{x}_{1}, \mathrm{x}_{2}, \ldots, \mathrm{x}_{\mathrm{m}} S=x1,x2,,xm,则算法步骤为:
        (i)选择初始的k个簇中心 μ 1 μ 2 … μ k \mu_{1} \mu_{2} \ldots \mu_{\mathrm{k}} μ1μ2μk;
        (ii)将样本 x i x_i xi标记为距离簇中心最近的簇:
             l a b e l i = arg ⁡ min ⁡ 1 ≤ j ≤ k ∥ x i − μ j ∥ label _{i}=\underset{1 \leq j \leq k}{\arg \min }\left\|x_{i}-\mu_{j}\right\| labeli=1jkargminxiμj
        (iii)更新簇中心: μ j = 1 ∣ c j ∣ ∑ i ∈ c j x i \mu_{j}=\frac{1}{\left|c_{j}\right|} \sum_{i \in c_{j}} x_{i} μj=cj1icjxi
        (iv)重复最后两步,直到满足终止条件。
      终止条件:迭代次数/簇中心变化率/最小平方误差MSE。
      经典的K-means聚类算法,能够非常方便的将未标记的样本分成若干簇,
    但无法给出某个样本属于该簇的后验概率。
   (3)极大似然估计
     找出于样本的分布最接近的概率分布模型
     (i)二项分布的最大似然估计
       投硬币试验中,进行N次独立试验,n次朝上,N-n次朝下。
       假定朝上的概率为p,使用对数似然函数作为目标函数:
f ( n ∣ p ) = log ⁡ ( p n ( 1 − p ) N − n ) ⟶ Δ h ( p ) f(n | p)=\log \left(p^{n}(1-p)^{N-n}\right) \stackrel{\Delta}{\longrightarrow} h(p) f(np)=log(pn(1p)Nn)Δh(p)
∂ h ( p ) ∂ p = n p − N − n 1 − p ⟶ Δ ⇒ p = n N \frac{\partial h(p)}{\partial p}=\frac{n}{p}-\frac{N-n}{1-p} \stackrel{\Delta}{\longrightarrow} \Rightarrow p=\frac{n}{N} ph(p)=pn1pNnΔp=Nn
     (ii)进一步考察高斯分布
       若给定一组样本 x 1 , x 2 … x n \mathrm{x}_{1}, \mathrm{x}_{2} \ldots \mathrm{x}_{\mathrm{n}} x1,x2xn,已知它们来自于高斯分布 N ( μ , σ ) \mathrm{N}(\mu, \sigma) N(μ,σ)
      试估计参数 μ , σ \mu, \sigma μ,σ
       高斯分布的概率密度函数:
f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^{2}}{2 \sigma^{2}}} f(x)=2π σ1e2σ2(xμ)2
       将 X i X_i Xi的样本值 x i x_i xi带入,得到:
L ( x ) = ∏ i = 1 n 1 2 π σ e − ( x i − μ ) 2 2 σ 2 L(x)=\prod_{i=1}^{n} \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{\left(x_{i}-\mu\right)^{2}}{2 \sigma^{2}}} L(x)=i=1n2π σ1e2σ2(xiμ)2
       化简对数似然函数:
l ( x ) = log ⁡ ∏ 1 2 π σ e − ( x i − μ ) 2 2 σ 2 = ∑ i log ⁡ 1 2 π σ e − ( x i − μ ) 2 2 σ 2 = ( ∑ i log ⁡ 1 2 π σ ) + ( ∑ i − ( x i − μ ) 2 2 σ 2 ) = − n 2 log ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i ( x i − μ ) 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)=log2π σ1e2σ2(xiμ)2=ilog2π σ1e2σ2(xiμ)2=(ilog2π σ1)+(i2σ2(xiμ)2)=2nlog(2πσ2)2σ21i(xiμ)2
       参数估计的结论:
          目标函数:
l ( x ) = − n 2 log ⁡ ( 2 π σ 2 ) − 1 2 σ 2 ∑ i ( x i − μ ) 2 l(x)=-\frac{n}{2} \log \left(2 \pi \sigma^{2}\right)-\frac{1}{2 \sigma^{2}} \sum_{i}\left(x_{i}-\mu\right)^{2} l(x)=2nlog(2πσ2)2σ21i(xiμ)2
          将目标函数对参数 μ , σ \mu, \sigma μ,σ分别求偏导,很容易得到 μ , σ \mu, \sigma μ,σ的式子:
   { μ = 1 n ∑ i x i σ 2 = 1 n ∑ i ( x i − μ ) 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. {μ=n1ixiσ2=n1i(xiμ)2
          上述结论矩估计的结果式一致的,表示样本的均值就是高斯分布的均值,样本的伪方差即高斯分布的方差。
2.直观理解GMM参数估计:
   随机变量X是由K个高斯分布混合而成,取各个高斯分布的概率为 π 1 π 2 … π K \pi_{1} \pi_{2} \dots \pi_{K} π1π2πK,第i个高斯分布均值为 μ i \mu_i μi,方差为 ∑ i \sum_{i} i。若观测到随机变量X的一系列样本 x 1 , x 2 , … , x n \mathrm{x}_{1}, \mathrm{x}_{2}, \ldots, \mathrm{x}_{\mathrm{n}} x1,x2,,xn,试估计参数 π , μ , ∑ \pi,\mu,\sum π,μ,
   (1)目标函数
      对数似然函数
l π , μ , Σ ( x ) = ∑ i = 1 N log ⁡ ( ∑ k = 1 K π k N ( x i ∣ μ 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) lπ,μ,Σ(x)=i=1Nlog(k=1KπkN(xiμk,Σk))
      由于再对数函数里面又有加权和,无法直接用求导方程的方法直接求得
   最大值。为了解决这个问题,我们分两部解决。
   (2)估算数据来自哪个组分
      估计数据由每个组份生成的概率:对于每个样本 x i x_i xi
   它由第k个组份生成的概率为:
γ ( i , k ) = π k N ( x i ∣ μ k , Σ k ) ∑ j = 1 K π j N ( x i ∣ μ 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)} γ(i,k)=j=1KπjN(xiμj,Σj)πkN(xiμk,Σk)
      上式中的 μ \mu μ ∑ \sum 也是待估计的值,再计算 γ ( i , k ) \gamma(\mathrm{i}, \mathrm{k}) γ(i,k)时假定 μ \mu μ ∑ \sum 是已知,
   需要先验给定 μ \mu μ ∑ \sum γ ( i , k ) \gamma(\mathrm{i}, \mathrm{k}) γ(i,k)可以看作组份K在生成数据 x i x_i xi时所作的贡献。
   (3)估计每个组份
      对于所有的样本点,对于组份k而言,可看作生成了 { γ ( i , k ) x i ∣ i = 1 , 2 , ⋯ N } \left\{\gamma(i, k) x_{i} | i=1,2, \cdots N\right\} {γ(i,k)xii=1,2,N}这些点,组份k是个标准的高斯分布,利用上面这些结论。
{ N k = ∑ i = 1 N γ ( i , k ) μ k = 1 N k ∑ i = 1 N γ ( i , k ) x i Σ k = 1 N k ∑ i = 1 N γ ( i , k ) ( x i − μ k ) ( x i − μ k ) T π k = N k N = 1 N ∑ i = 1 N γ ( 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. Nk=i=1Nγ(i,k)μk=Nk1i=1Nγ(i,k)xiΣk=Nk1i=1Nγ(i,k)(xiμk)(xiμk)Tπk=NNk=N1i=1Nγ(i,k)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值