极大似然估计、EM算法及高斯混合模型

本文介绍了极大似然估计的基本概念及其应用,并通过逻辑回归的例子进行了详细的解释。此外,还探讨了EM算法的工作原理,特别是在处理隐变量时的高斯混合模型的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

极大似然估计
极大似然估计是一种模型参数估计的方法,它认为已经发生的事情是可能性最大的事情,因此只需让发生事情的概率取最大值来求解模型参数。假设一共有n个样本用 x = [ x 1 , x 2 , ⋯   , x n ] x=[x_1, x_2,\cdots,x_n] x=[x1,x2,,xn]表示,每个样本中涉及k个参数用 θ = [ θ 1 , θ 2 , ⋯   , θ k ] \theta=[\theta_1,\theta_2,\cdots,\theta_k] θ=[θ1,θ2,,θk]表示,经过模型我们可以得到整体这些样本发生的概率:
L ( θ ) = ∏ i = 1 n p ( x i ∣ θ ) L(\theta)= \prod_{i=1}^{n}p(x_i|\theta) L(θ)=i=1np(xiθ)
上式 L ( θ ) L(\theta) L(θ)表示模型对应的似然函数,等价于在参数为 θ \theta θ时对应样本发生的概率。上式关于 θ \theta θ求导即可。但由于对多项乘积求导往往非常复杂,而对原函数取对数并不会改变原函数的单调性和极值的位置。因此在求解模型参数的时候通常用对数似然函数。 以 逻 辑 回 归 为 例 {\color{red}以逻辑回归为例} ,假设样本 x i x_i xi对应的类别为 y i y_i yi,其中 y i ∈ { 0 , 1 } y_i\in \{0,1\} yi{0,1}.
p ( y = 1 ∣ x ) = 1 1 + e − ( w x + b ) = π ( x ) p ( y = 0 ∣ x ) = 1 − 1 1 + e − ( w x + b ) = 1 − π ( x ) p(y=1|x)=\frac{1}{1+e^{-(wx+b)}}=\pi(x)\\ p(y=0|x)=1-\frac{1}{1+e^{-(wx+b)}}=1-\pi(x) p(y=1x)=1+e(wx+b)1=π(x)p(y=0x)=11+e(wx+b)1=1π(x)
因此似然函数可以写成:
L ( w , b ) = ∏ i = 1 n [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i l n ( L ) = ∑ i = 1 n y i l n ( π ( x i ) ) + ( 1 − y i ) l n ( 1 − π ( x i ) ) L(w,b)=\prod_{i=1}^{n}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}\\ ln(L)=\sum_{i=1}^ny_iln(\pi(x_i ))+(1-y_i)ln(1-\pi(x_i)) L(w,b)=i=1n[π(xi)]yi[1π(xi)]1yiln(L)=i=1nyiln(π(xi))+(1yi)ln(1π(xi))
其中 l n ( L ) ln(L) ln(L)就是逻辑回归的优化函数,对其求极大值就得到w和b的估计值。

EM算法(以高斯混合模型GMM为例)
假 设 我 们 现 在 有 一 堆 身 高 数 据 , 而 且 假 定 身 高 和 人 类 种 族 无 关 , 要 求 估 计 出 一 个 身 高 模 型 ? 如 何 估 计 ? {\color{red}假设我们现在有一堆身高数据,而且假定身高和人类种族无关,要求估计出一个身高模型?如何估计?} ?
首先假设身高服从正态分布,因此得出对于所有样本的最大似然函数:
L ( μ , σ 2 ) = ∏ i = 1 n p ( x i ∣ μ , σ 2 ) = ∏ i = 1 n 1 2 π σ e − ( x i − μ ) 2 2 σ 2 l n ( L ) = ∑ i = 1 n l n ( 1 2 π σ e − ( x i − μ ) 2 2 σ 2 ) L(\mu,\sigma^2)=\prod_{i=1}^np(x_i|\mu,\sigma^2)=\prod_{i=1}^n\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x_i-\mu)^2}{2\sigma^2}}\\ln(L)=\sum_{i=1}^nln(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x_i-\mu)^2}{2\sigma^2}}) L(μ,σ2)=i=1np(xiμ,σ2)=i=1n2π σ1e2σ2(xiμ)2ln(L)=i=1nln(2π σ1e2σ2(xiμ)2)
对参数 μ \mu μ σ \sigma σ求偏导为:
∂ L ∂ μ = ∑ i = 1 n ( x i − μ ) σ 2 ∂ L ∂ σ = ∑ i = 1 n ( − 1 σ + ( x i − μ ) 2 σ 3 ) = ∑ i = 1 n − σ 2 + ( x i − μ ) 2 σ 3 \frac{\partial L}{\partial \mu}=\sum_{i=1}^n\frac{(x_i-\mu)}{\sigma^2}\\ \frac{\partial L}{\partial \sigma}=\sum_{i=1}^n(-\frac{1}{\sigma}+\frac{(x_i-\mu)^2}{\sigma^3})=\sum_{i=1}^n\frac{-\sigma^2+(x_i-\mu)^2}{\sigma^3} μL=i=1nσ2(xiμ)σL=i=1n(σ1+σ3(xiμ)2)=i=1nσ3σ2+(xiμ)2
让偏导数等于0,得到参数估计为:
μ = ∑ i = 1 n x i n σ 2 = ∑ i = 1 n ( x i − μ ) 2 n \mu=\frac{\sum_{i=1}^nx_i}{n} \\ \sigma^2 =\frac{\sum_{i=1}^n(x_i-\mu)^2}{n} μ=ni=1nxiσ2=ni=1n(xiμ)2

但是事实是身高和人类种族关系很大,而且人类有很多种族。 同 样 给 定 一 堆 身 高 数 据 , 这 时 我 们 不 知 道 每 个 身 高 属 于 哪 个 种 族 , 该 如 何 构 建 估 计 身 高 的 模 型 ? {\color{red}同样给定一堆身高数据,这时我们不知道每个身高属于哪个种族,该如何构建估计身高的模型?}
首先假定一共有k个种族, α \alpha α表示属于某一人种的比例,每个种族的身高服从正态分布,我们先构建似然函数:
L ( α , μ , σ ) = ∏ i = 1 n ∑ j = 1 k α j ⋅ p ( x i ∣ μ j , σ j 2 ) l n ( L ) = ∑ i = 1 n l n ( ∑ j = 1 k α j ⋅ p ( x i ∣ μ j , σ j 2 ) L(\alpha,\mu,\sigma)=\prod_{i=1}^n\sum_{j=1}^k\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2)\\ ln(L)=\sum_{i=1}^nln(\sum_{j=1}^k\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2) L(α,μ,σ)=i=1nj=1kαjp(xiμj,σj2)ln(L)=i=1nln(j=1kαjp(xiμj,σj2)
由于这个式子没有解析解,只有通过迭代的方法求解。首先假设一个关于 α \alpha α的一个分布 Q Q Q,根据Jensen不等式可得:
∑ i = 1 n l n ( ∑ j = 1 k Q ( α j ) α j ⋅ p ( x i ∣ μ j , σ j 2 ) Q ( α j ) ) ≥ ∑ i = 1 n ∑ j = 1 k Q ( α j ) l n ( α j ⋅ p ( x i ∣ μ j , σ j 2 ) Q ( α j ) ) \sum_{i=1}^nln(\sum_{j=1}^kQ(\alpha_j)\frac{\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2)}{Q(\alpha_j)})\ge \sum_{i=1}^n\sum_{j=1}^kQ(\alpha_j)ln(\frac{\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2)}{Q(\alpha_j)}) i=1nln(j=1kQ(αj)Q(αj)αjp(xiμj,σj2))i=1nj=1kQ(αj)ln(Q(αj)αjp(xiμj,σj2))
而等号成立的条件是:
α j ⋅ p ( x i ∣ μ j , σ j 2 ) Q ( α j ) = c ∑ j = 1 k Q ( a j ) = 1 \frac{\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2)}{Q(\alpha_j)}=c \\ \sum_{j=1}^kQ(a_j)=1 Q(αj)αjp(xiμj,σj2)=cj=1kQ(aj)=1
其中c为常数。因此
Q ( α j ) = α j ⋅ p ( x i ∣ μ j , σ j 2 ) ∑ j = 1 k α j ⋅ p ( x i ∣ μ j , σ j 2 ) Q(\alpha_j)=\frac{\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2)}{\sum_{j=1}^k\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2)} Q(αj)=j=1kαjp(xiμj,σj2)αjp(xiμj,σj2)
计算 Q ( α j ) Q(\alpha_j) Q(αj),这就是EM中的E步。带入到式中:
l = ∑ i = 1 n ∑ j = 1 k Q ( α j ) l n ( α j ⋅ p ( x i ∣ μ j , σ j 2 ) Q ( α j ) ) l=\sum_{i=1}^n\sum_{j=1}^kQ(\alpha_j)ln(\frac{\alpha_j\cdot p(x_i|\mu_j,\sigma_j^2)}{Q(\alpha_j)}) l=i=1nj=1kQ(αj)ln(Q(αj)αjp(xiμj,σj2))
分别对 α , μ , σ \alpha,\mu,\sigma α,μ,σ求偏导就得到对这些参数的估计,这就是EM中的M步。重复上述E和M步骤直到参数不再更新为止。

参考链接:
似然与极大似然估计
从两个例子理解EM算法
机器学习笔记(十)EM算法及实践(以混合高斯模型(GMM)为例来次完整的EM)
机器学习_EM算法详细推导和讲解
EM算法原理及利用EM求解GMM参数过程

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值