EM算法学习

前言

E M EM EM算法是一种迭代优化算法,常用于具有隐变量的混合模型参数估计,在机器学习中有极为广泛的用途。说到参数估计,一般首先想到的是概率论上的极大似然估计, E M EM EM算法其实就是为了解决那些直接用极大似然函数求导无法解决的参数估计问题。

极大似然估计

假设现在有一个概率分布函数 p ( x ∣ θ ) p(x|\theta) p(xθ) θ \theta θ代表这个分布函数的参数(例如,对于一维高斯分布函数来说, θ \theta θ就代表的是 θ = { μ , σ 2 } \theta = \{\mu,\sigma^2\} θ={μ,σ2})。然后有 N N N个样本数据 X = { x 1 , x 2 , ⋯   , x N } X=\{x_1,x_2,\cdots,x_N\} X={x1,x2,,xN}是从这个概率分布中采样得到的,而且这些样本数据都是相互独立的。那么极大似然估计函数定义为:
L ( θ ) = ∏ i N p ( x i ∣ θ ) = L ( θ ∣ X ) \large L(\theta) = \prod_i^Np(x_i|\theta) = L(\theta|X) L(θ)=iNp(xiθ)=L(θX)
极大似然估计,通俗理解来说,就是利用已知的样本信息,反推最具有可能(最大概率)导致这些样本出现的模型参数值。换句话说,极大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。

极大似然问题就是希望找到一个 θ \theta θ使似然函数最大,用公式来表达即:
θ ^ = a r g m a x θ    L ( θ ) \large \hat{\theta} = \mathop{argmax}\limits_{\theta}\;L(\theta) θ^=θargmaxL(θ)
为了计算的方便一般是最大化 l n L ( θ ) lnL(\theta) lnL(θ),即
θ ^ = a r g m a x θ    l n L ( θ ) \large \hat{\theta} = \mathop{argmax}\limits_{\theta}\;lnL(\theta) θ^=θargmaxlnL(θ)
然而计算参数 θ \theta θ的难易往往取决于 L ( θ ) L(\theta) L(θ)的形式。如果 L ( θ ) L(\theta) L(θ)的形式相对简单,例如 p ( x ∣ θ ) p(x|\theta) p(xθ)代表的是一个一维高斯分布,那它的参数 θ = { μ , σ 2 } \theta = \{\mu,\sigma^2\} θ={μ,σ2}求起来就相对来说比较容易。只需要对极大似然函数求参数的偏导,然后令偏导数为 0 0 0即可。
l n L ( θ ) = l n ∏ i = 1 n [ 1 2 π σ e x p ( − ( x i − μ ) 2 2 σ 2 ) ] = ∑ i = 1 n l n [ 1 2 π σ e x p ( − ( x i − μ ) 2 2 σ 2 ) ] = ∑ i = 1 n [ − l n 2 π σ − ( x i − μ ) 2 2 σ 2 ] ∂ l n L ( θ ) ∂ μ = ∂ ( ∑ i = 1 n [ − l n 2 π σ − ( x i − μ ) 2 2 σ 2 ] ) ∂ μ = ∂ ( ∑ i = 1 n [ − ( x i − μ ) 2 2 σ 2 ] ) ∂ μ = ∑ i = 1 n ( x i − μ ) σ 2 \large \begin{aligned} lnL(\theta) &= ln\prod_{i=1}^n[\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x_i-\mu)^2}{2\sigma^2})]\\ &= \sum_{i=1}^nln[\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x_i-\mu)^2}{2\sigma^2})]\\ &= \sum_{i=1}^n[-ln\sqrt{2\pi}\sigma-\frac{(x_i-\mu)^2}{2\sigma^2}]\\ \\ \frac{\partial lnL(\theta)}{\partial\mu} &= \frac{\partial(\sum_{i=1}^n[-ln\sqrt{2\pi}\sigma-\frac{(x_i-\mu)^2}{2\sigma^2}])}{\partial\mu}\\ &=\frac{\partial(\sum_{i=1}^n[-\frac{(x_i-\mu)^2}{2\sigma^2}])}{\partial\mu}\\ &= \sum_{i=1}^n\frac{(x_i-\mu)}{\sigma^2} \end{aligned} lnL(θ)μlnL(θ)=lni=1n[2π σ1exp(2σ2(xiμ)2)]=i=1nln[2π σ1exp(2σ2(xiμ)2)]=i=1n[ln2π σ2σ2(xiμ)2]=μ(i=1n[ln2π σ2σ2(xiμ)2])=μ(i=1n[2σ2(xiμ)2])=i=1nσ2(xiμ)
∂ l n L ( θ ) ∂ μ = 0 \frac{\partial lnL(\theta)}{\partial\mu} = 0 μlnL(θ)=0得:
μ M L E = 1 n ∑ i = 1 n x i \large \mu_{MLE} = \frac{1}{n}\sum_{i=1}^nx_i μMLE=n1i=1nxi
σ \sigma σ的估计这里略过。

但是,如果 L ( θ ) L(\theta) L(θ)的形式比较复杂,例如 G M M GMM GMM,其中含有隐变量,这种直接求偏导的方式是没法求得解析解的,这种情况就可以借助 E M EM EM算法来求解。

E M EM EM算法

假设我们的模型有两个随机变量 X , Z X,Z X,Z,两个随机变量的联合分布函数为 p ( x , z ∣ θ ) p(x,z|\theta) p(x,zθ),其中 x x x z z z代表的是 X , Z X,Z X,Z中的观测值, θ \theta θ是联合分布函数的未知参数。假设我们现在只可观测到 X X X中的 x x x Z Z Z中的 z z z是无法被观测到的隐变量,我们只能假设它是服从某种分布,但我们仍然希望只通过观测到的 X X X来估计出模型中的参数 θ \theta θ。因为没有观测到 Z Z Z,所以我们的似然函数就要通过 X X X的边缘密度函数来进行计算了:
L ( θ ) = l o g    p ( x ∣ θ ) = ∫ z l o g    p ( x , z ∣ θ ) d z \large L(\theta) = log\;p(x|\theta) = \int_zlog\;p(x,z|\theta)dz L(θ)=logp(xθ)=zlogp(x,zθ)dz
在这样的模型中,由于积分的存在,最大化这个函数可能得不到解析解。 对于这种情况, E M EM EM算法可以提供一种计算该函数参数 θ \theta θ 局部最大值的方法。

E M EM EM算法的步骤

E M EM EM算法是一种当数据不完整或有隐变量时,从给定的数据集中找到潜在分布参数的最大似然估计的通用方法。 E M EM EM算法通过 E — S t e p E—Step EStep M — S t e p M—Step MStep迭代交替求解极大似然参数估计问题。 E M EM EM算法整个求解的过程中都是在更新参数 θ \theta θ,使之收敛到一个局部极大值。

E — S t e p E—Step EStep : 在固定 θ t \theta^t θt( θ t \theta^t θt代表第 t t t次迭代的参数)情况下计算隐变量的条件密度函数 p ( z ∣ x , θ t ) p(z|x,\theta^t) p(zx,θt) ,然后计算联合密度似然函数在 p ( z ∣ x , θ t ) p(z|x,\theta^t) p(zx,θt)分布下的期望 Q ( θ , θ t ) Q(\theta,\theta^t) Q(θ,θt)(后面简称 Q Q Q函数)。 E — s t e p E—step Estep就是 E x p e c t a t i o n — S t e p Expectation—Step ExpectationStep,就是求期望。
Q ( θ , θ t ) = E p ( z ∣ x , θ t ) [ l o g    p ( x , z ∣ θ ) ] = ∫ z [ l o g    p ( x , z ∣ θ ) ] p ( z ∣ x , θ t ) d z \large \begin{aligned} Q(\theta,\theta^t) &= E_{p(z|x,\theta^t)}[log\;p(x,z|\theta)]\\ &= \int_z[log\;p(x,z|\theta)]p(z|x,\theta^t)dz \end{aligned} Q(θ,θt)=Ep(zx,θt)[logp(x,zθ)]=z[logp(x,zθ)]p(zx,θt)dz
M — S t e p M—Step MStep: 找出 θ \theta θ使 Q ( θ , θ t ) Q(\theta,\theta^t) Q(θ,θt)最大, M — S t e p M—Step MStep就是 M a x i m i z a t i o n — S t e p Maximization—Step MaximizationStep,最大化 Q ( θ , θ t ) Q(\theta,\theta^t) Q(θ,θt),而求得极值
θ t + 1 = a r g m a x θ    Q ( θ , θ t ) \large \theta^{t+1} = \mathop{argmax}\limits_{\theta}\;Q(\theta,\theta^t) θt+1=θargmaxQ(θ,θt)
算法在 E — S t e p E—Step EStep M — S t e p M—Step MStep交替,直到 θ \theta θ的估计收敛到一个局部最大值。

E M EM EM算法本质

在深入了解 E M EM EM算法之前,让我们先了解两个重要的概念,一个是 E L B O ELBO ELBO,一个是坐标上升法[3]。 E M EM EM算法本质上就是 E L B O ELBO ELBO的坐标轴上升算法。

E L B O ELBO ELBO是什么

要了解什么是 e v i d e n c e    l o w e r    b o u n d ( E L B O ) evidence\; lower\; bound(ELBO) evidencelowerbound(ELBO)证据下界,我们首先要了解 e v i d e n c e evidence evidence是什么意思。 e v i d e n c e evidence evidence指的是在固定模型参数 θ \theta θ情况下得到的似然估计函数[4]:
e v i d e n c e : = l o g    p ( x ∣ θ ) \large evidence :=log\;p(x|\theta) evidence:=logp(xθ)
为什么这样的量会被称为 e v i d e n c e evidence evidence?我们可以这样想,如果我们选择模型的分布 p p p和参数 θ \theta θ比较准确,那根据观测到的样本数据计算出来的似然函数 l o g    p ( x ∣ θ ) log\;p(x|\theta) logp(xθ)应该会比较大。因此,一个更大的似然函数 l o g    p ( x ∣ θ ) log\;p(x|\theta) logp(xθ)在某种程度上“证明”了我们现在选择的模型对于生成现有数据有更大的可能。

E L B O ELBO ELBO其实就是似然函数的下界,如果我们知道隐变量 Z Z Z是服从某种分布(用 q ( z ) q(z) q(z)表示),而且满足 p ( x , z ∣ θ ) = p ( x ∣ z , θ ) q ( z ) p(x,z|\theta) = p(x|z,\theta)q(z) p(x,zθ)=p(xz,θ)q(z),那么 E L B O ELBO ELBO就可以表示成:
E L B O : = E Z ∼ q [ l o g p ( x , z ∣ θ ) q ( z ) ] \large ELBO:= E_{Z\sim q}[log\frac{p(x,z|\theta)}{q(z)}] ELBO:=EZq[logq(z)p(x,zθ)]

E L B O ELBO ELBO的推导:
l o g    p ( x ∣ θ ) = l o g ∫ z p ( x , z ∣ θ ) = l o g ∫ z p ( x , z ∣ θ ) q ( z ) q ( z ) d z = l o g    E Z ∼ q [ p ( x , z ∣ θ ) q ( z ) ] ≥    E Z ∼ q [ l o g p ( x , z ∣ θ ) q ( z ) ] ⏟ E L B O ( J e n s e n 不 等 式 ) \large \begin{aligned} log\;p(x|\theta) &= log\int_zp(x,z|\theta)\\ &= log\int_zp(x,z|\theta)\frac{q(z)}{q(z)}dz\\ &= log\;E_{Z\sim q}[\frac{p(x,z|\theta)}{q(z)}]\\ &\geq\;\underbrace{E_{Z\sim q}[log\frac{p(x,z|\theta)}{q(z)}]}_{ELBO} \qquad ( Jensen不等式) \end{aligned} logp(xθ)=logzp(x,zθ)=logzp(x,zθ)q(z)q(z)dz=logEZq[q(z)p(x,zθ)]ELBO EZq[logq(z)p(x,zθ)](Jensen)
事实上, e v i d e n c e evidence evidence E L B O ELBO ELBO还有一个非常有意思的关系,那就是它们之间的差正好是 p ( z ∣ x , θ ) p(z|x,\theta) p(zx,θ) q ( z ) q(z) q(z) K L KL KL散度(即相对熵,表示两个分布之间差异的度量,但这里不讨论)
在这里插入图片描述
公式推导:
K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) = E Z ∼ q [ l o g q ( z ) p ( z ∣ x , θ ) ] = E Z ∼ q [ l o g    q ( z ) ] − E Z ∼ q [ l o g    p ( z ∣ x , θ ) ] = E Z ∼ q [ l o g    q ( z ) ] − E Z ∼ q [ l o g p ( x , z ∣ θ ) p ( x ∣ θ ) ] = E Z ∼ q [ l o g    q ( z ] − E Z ∼ q [ l o g    p ( x , z ∣ θ ) ] + E Z ∼ q [ l o g    p ( x ∣ θ ) ] = l o g    p ( x ∣ θ ) − E Z ∼ q [ l o g p ( x , z ∣ θ ) q ( z ) ] = e v i d e n c e − E L B O \large \begin{aligned} KL(q(z)||p(z|x,\theta))&= E_{Z\sim q}[log\frac{q(z)}{p(z|x,\theta)}]\\ &= E_{Z\sim q}[log\;q(z)]-E_{Z\sim q}[log\;p(z|x,\theta)]\\ &= E_{Z\sim q}[log\;q(z)]-E_{Z\sim q}[log\frac{p(x,z|\theta)}{p(x|\theta)}]\\ &= E_{Z\sim q}[log\;q(z]-E_{Z\sim q}[log\;p(x,z|\theta)] + E_{Z\sim q}[log\;p(x|\theta)]\\ &=log\;p(x|\theta) - E_{Z\sim q}[log\frac{p(x,z|\theta)}{q(z)}]\\ &= evidence - ELBO \end{aligned} KL(q(z)p(zx,θ))=EZq[logp(zx,θ)q(z)]=EZq[logq(z)]EZq[logp(zx,θ)]=EZq[logq(z)]EZq[logp(xθ)p(x,zθ)]=EZq[logq(z]EZq[logp(x,zθ)]+EZq[logp(xθ)]=logp(xθ)EZq[logq(z)p(x,zθ)]=evidenceELBO

坐标上升法

坐标上升法是一个相对简单的最大化函数的迭代优化策略,每次通过更新函数中的一维,通过多次的迭代以达到优化函数的目的。 例如,给定一个有两个变量 a , b a,b a,b的函数 f ( a , b ) f(a,b) f(a,b),先固定变量 a a a维为 a ^ \hat{a} a^,然后找到 b b b维的 b ^ \hat{b} b^使得 f ( a , b ) f(a,b) f(a,b)取得最大值,然后固定 b b b维为 b ^ \hat{b} b^,寻找 a a a维函数的最大值。这两步不断循环迭代,直到收敛到最大值。

在这里插入图片描述
​ 坐标上升法

E M EM EM E L B O ELBO ELBO的坐标上升算法

在我们假设的模型中,参数 θ \theta θ是未知的,而且隐变量 Z Z Z的分布 q ( z ) q(z) q(z)也是未知的,那么 E L B O ELBO ELBO就可以看成是一个关于 θ \theta θ q ( z ) q(z) q(z)的函数:
F ( q , θ ) : = E Z ∼ q [ l o g p ( x , z ∣ θ ) q ( z ) ] \large F(q,\theta):=E_{Z\sim q}[log\frac{p(x,z|\theta)}{q(z)}] F(q,θ):=EZq[logq(z)p(x,zθ)]
E M EM EM算法就是关于 F ( q , θ ) F(q,\theta) F(q,θ)函数的坐标上升算法。 E — S t e p E—Step EStep相当于固定参数 θ \theta θ最大化 F ( q , θ ) F(q,\theta) F(q,θ)去求解 q ( z ) q(z) q(z) M — S t e p M—Step MStep相当于固定 q ( z ) q(z) q(z)去最大化 F ( q , θ ) F(q,\theta) F(q,θ)求解参数 θ \theta θ

首先,让我们把参数 θ \theta θ固定为 θ t \theta^t θt最大化 F ( q , θ ) F(q,\theta) F(q,θ)来求解隐变量 Z Z Z的分布 q ( z ) q(z) q(z)
a r g m a x q    F ( q , θ t ) = a r g m a x q    E Z ∼ q [ l o g p ( x , z ∣ θ t ) q ( z ) ] = a r g m i n q    K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ t ) ) ( E L B O 与 K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ t ) ) 的 关 系 ) = p ( z ∣ x , θ t ) ( K L 散 度 的 性 质 , 当 q ( z ) = p ( z ∣ x , θ t ) 时 , K L 散 度 最 小 ) \large \begin{aligned} \mathop{argmax}\limits_{q}\; F(q,\theta^t) &= \mathop{argmax}\limits_{q}\;E_{Z\sim q}[log\frac{p(x,z|\theta^t)} {q(z)}]\\ &= \mathop{argmin}\limits_{q}\;KL(q(z)||p(z|x,\theta^t)) \qquad (ELBO与KL(q(z)||p(z|x,\theta^t))的关系)\\ &=p(z|x,\theta^t) \qquad\qquad (KL散度的性质,当q(z)=p(z|x,\theta^t)时,KL散度最小) \end{aligned} qargmaxF(q,θt)=qargmaxEZq[logq(z)p(x,zθt)]=qargminKL(q(z)p(zx,θt))(ELBOKL(q(z)p(zx,θt))=p(zx,θt)(KLq(z)=p(zx,θt)KL)
注意,计算 p ( z ∣ x , θ t ) p(z|x,\theta^t) p(zx,θt)正是在 E — S t e p E—Step EStep 中构造 Q Q Q函数所需要的!

接下来,固定 q t ( z ) = p ( z ∣ x , θ t ) q^t(z) = p(z|x,\theta^t) qt(z)=p(zx,θt)最大化 F ( q t , θ ) F(q^t,\theta) F(qt,θ),由于 q t ( z ) q^t(z) qt(z)固定,那其实最大化 F ( q t , θ ) F(q^t,\theta) F(qt,θ)就等同于最大化 Q Q Q函数:
a r g m a x q    F ( q t , θ ) = a r g m a x q    E Z ∼ q [ l o g p ( x , z ∣ θ ) p ( z ∣ x , θ t ) ] = a r g m a x q    E Z ∼ q [ l o g p ( x , z ∣ θ ) ] − E Z ∼ q [ p ( z ∣ x , θ t ) ] ⏟ c o n s t a n t = a r g m a x q    E p ( z ∣ x , θ t ) [ l o g p ( x , z ∣ θ ) ] ⏟ Q ( θ , θ t ) \large \begin{aligned} \mathop{argmax}\limits_{q}\; F(q^t,\theta) &= \mathop{argmax}\limits_{q}\;E_{Z\sim q}[log\frac{p(x,z|\theta)}{p(z|x,\theta^t)}]\\ &= \mathop{argmax}\limits_{q}\;E_{Z\sim q}[logp(x,z|\theta)] - \underbrace{E_{Z\sim q}[p(z|x,\theta^t)]}_{constant}\\ &=\mathop{argmax}\limits_{q}\;\underbrace{E_{p(z|x,\theta^t)}[logp(x,z|\theta)]}_{Q(\theta,\theta^t)} \end{aligned} qargmaxF(qt,θ)=qargmaxEZq[logp(zx,θt)p(x,zθ)]=qargmaxEZq[logp(x,zθ)]constant EZq[p(zx,θt)]=qargmaxQ(θ,θt) Ep(zx,θt)[logp(x,zθ)]
最大化 Q Q Q函数就是 E M EM EM算法中的 M — S t e p M—Step MStep

E M EM EM算法图示

首先,让我们重申一下 F ( q , θ ) F(q,\theta) F(q,θ)函数和似然函数 L ( θ ) L(\theta) L(θ)的一些关系。

第一,在上面介绍 E L B O ELBO ELBO(即 F ( q , θ ) F(q,\theta) F(q,θ))的时候已经介绍了 E L B O ELBO ELBO和似然函数的关系,就是它们之间的差正好是 K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) KL(q(z)||p(z|x,\theta)) KL(q(z)p(zx,θ)) K L KL KL散度有一个性质,当 p ( z ∣ x , θ ) = q ( z ) p(z|x,\theta)=q(z) p(zx,θ)=q(z)时, K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ ) ) = 0 KL(q(z)||p(z|x,\theta)) = 0 KL(q(z)p(zx,θ))=0。所以 E M EM EM在第 t t t次迭代的时候,如果有 K L ( q ( z ) ∣ ∣ p ( z ∣ x , θ t ) ) = 0 KL(q(z)||p(z|x,\theta^t)) = 0 KL(q(z)p(zx,θt))=0,那 F ( q , θ t ) F(q,\theta^t) F(q,θt) L ( θ t ) L(\theta^t) L(θt)相等,故这两个函数应该在 θ t \theta^t θt相交。

第二,固定 q ( z ) q(z) q(z) q t ( z ) q_t(z) qt(z),函数 F ( q t , θ ) F(q_t,\theta) F(qt,θ) θ t + 1 \theta^{t+1} θt+1处一定大于或等于在 θ t \theta^{t} θt处,即
F ( q t , θ t + 1 ) ≥ F ( q t , θ t ) F(q_t,\theta^{t+1})\ge F(q_t,\theta^{t}) F(qt,θt+1)F(qt,θt)
这是因为 θ t + 1 \theta^{t+1} θt+1是算法中的中最大化 F ( q t , θ ) F(q_t,\theta) F(qt,θ)得到的。

第三,由 E L B O ELBO ELBO(即 F ( q , θ ) F(q,\theta) F(q,θ))和似然函数的关系,则必有
L ( θ ) ≥ F ( q t , θ ) L(\theta)\ge F(q_t,\theta) L(θ)F(qt,θ)
上面的三个性质可由下图表示:

在这里插入图片描述

F ( q , θ ) F(q,\theta) F(q,θ) L ( θ ) L(\theta) L(θ)的关系

基于上面的三个性质,我们可以推断 E M EM EM算法通过在似然函数 L ( θ ) L(\theta) L(θ)的“攀爬”最终会收敛到 L ( θ ) L(\theta) L(θ)的一个局部极值。

E M EM EM算法的过程:在第 t t t次迭代中, F ( q t , θ ) F(q_t,θ) F(qt,θ) 低于 L ( θ ) L(\theta) L(θ)函数,且在 θ t \theta_t θt与之相交, 此时, F ( q t , θ t ) = L ( θ t ) F(q_t,θ^t)=L(\theta^t) F(qt,θt)=L(θt)。 由于 F ( q t , θ t + 1 ) ≥ F ( q t , θ t ) F(q_t,\theta_{t+1})\ge F(q_t,\theta_{t}) F(qt,θt+1)F(qt,θt),此时 L ( θ t + 1 ) ≥ L ( θ t ) L(\theta^{t+1} )\ge L(\theta^{t} ) L(θt+1)L(θt)。在下一次迭代中,我们可以通过 F ( q t + 1 , θ t + 1 ) F(q_{t+1},\theta^{t+1}) F(qt+1,θt+1)计算 θ t + 1 \theta^{t+1} θt+1 处的似然函数。 因此,每次迭代 F ( q t + 1 , θ t + 1 ) F(q_{t+1},\theta^{t+1}) F(qt+1,θt+1) 后,在似然函数上都有一个新的、比当前值更高的值。 这个过程如下图所示:

在这里插入图片描述

​ EM算法的迭代过程

参考文献或网页

[1] The EM Algorithm Explained. https://medium.com/@chloebee/the-em-algorithm-explained-52182dbb19d9

[2] Expectation-Maximization(EM) 算法 http://blog.tomtung.com/2011/10/em-algorithm/

[3] Expectation-maximization: theory and intuition https://mbernste.github.io/posts/em/

[4] The evidence lower bound (ELBO) https://mbernste.github.io/posts/elbo/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值