AMP的推导和理解(Part-1)


Approximate Message Passing, AMP

前言

这篇博客是对AMP推导和理解的开端,主要介绍了在似然函数为Delta函数的硬约束问题下AMP的推导过程,笔者才疏学浅,如果在博文的表述过程中有不当之处,甚至歪曲原文本身的观点,还希望读者们包涵。因为上次在跟导师讨论的过程中发现,我其实在对论文的理解上有些局限于具体的推导过程,而没有比较好地把握住全局的思路,因此在写这篇博客时有一些改变,完成全面推导的基础上,在消息传递的步骤和文章小结部分做了一些由浅入深的讨论与总结。至少这让我感觉到,如果别人问起AMP的来源,虽然不一定完全正确,但可以略说一二。

问题模型

硬约束下的压缩感知信号恢复(BP)

所谓硬约束,就是指观测向量直接由感知矩阵和信号得到,其似然函数为Delta函数,具体考虑的信号模型为基追踪(Basis Pursuit, BP)问题,该问题的数学表述如下

{ min ⁡ ∥ s ∥ 1 subject to  y = A s (1) \begin{cases} \min {\Vert \pmb s \Vert}_1 \\ \text{subject to } \pmb y=\pmb A \pmb s \\ \end{cases} \tag{1} {minsss1subject to yyy=AAAsss(1)

其中, s ∈ R N \pmb s \in \mathbb R^N sssRN是要恢复的信号, A ∈ R n × N \pmb A \in \mathbb R^{n \times N} AAARn×N是感知(测量)矩阵, y ∈ R n \pmb y \in \mathbb R^n yyyRn是观测向量。

软约束下的压缩感知信号恢复(LASSO)

所谓软约束,就是指得到的观测向量被噪声破坏过,其似然函数服从某一特定分布,具体考虑的信号模型为基追踪去噪(Basis Pursuit De-Noising Problem, BPDN or LASSO)问题,该问题的数学表述如下

min ⁡   λ ∥ s ∥ 1 + 1 2 ∥ y − A s ∥ 2 2 (2) \min \ \lambda {\Vert \pmb s \Vert}_1 + \frac{1}{2}{\Vert \pmb y - \pmb A\pmb s \Vert}^2_2 \tag{2} min λsss1+21yyyAAAsss22(2)

BPDN问题和BP问题是类似的,区别在于似然函数不同,两者共同的目标都是从观测向量 y \pmb y yyy和感知矩阵 A \pmb A AAA中恢复出初始的稀疏信号 s \pmb s sss

参数描述

(1)感知矩阵 A \pmb A AAA的列是归一化的,即, ∥ a i ∥ 2 = 1 {\Vert \pmb a_i\Vert}_2=1 aaai2=1。这个要求是关键的,在多用户接入场景中,大尺度衰落和功率分配可能会破坏该约束。在下面的叙述过程中,为了简化推导,指定 A a i ∈ { 1 n , − 1 n } A_{ai} \in \{ \frac{1}{\sqrt n},-\frac{1}{\sqrt n} \} Aai{n 1,n 1}(论文是这么描述的)。
(2)欠采样的量度(measure of indeterminacy): δ = n N \delta=\frac{n}{N} δ=Nn
(3)大系统极限(large system limit): N → ∞  while  δ  fixed N \rightarrow \infty \text{ while } \delta \text{ fixed} N while δ fixed

推导AMP的步骤

在这里插入图片描述

BP问题下AMP的推导(AMP.0)

(1)因子图与消息传递

如果没有特殊说明,我们先不考虑 s \pmb s sss的真实先验分布,根据 s \pmb s sss的稀疏性,引入含指数项的拉普拉斯分布,信号 s = [ s 1 , s 2 , ... , s N ] T \pmb s=[s_1, s_2, \text{...},s_N]^T sss=[s1,s2,...,sN]T的联合概率分布函数为

μ ( d s ) = 1 Z ∏ i = 1 N e x p ( − β ∣ s i ∣ ) ∏ a = 1 n δ { y a = ( A s ) a } (3) \mu(\text{d} \pmb s)=\frac{1}{Z} \prod_{i=1}^N exp(-\beta|s_i|) \prod_{a=1}^n \delta_{\{y_a=(As)_a\}} \tag{3} μ(dsss)=Z1i=1Nexp(βsi)a=1nδ{ya=(As)a}(3)

这里的 δ { y a = ( A s ) a } \delta_{\{y_a=(As)_a\}} δ{ya=(As)a}指的是在超平面 y a = ( A s ) a y_a=(As)_a ya=(As)a上的Dirac分布。容易看出,当 β → ∞ \beta \rightarrow \infty β时,该分布的峰值与式(1)的解应是对应的。
考虑因子图 G = ( V , F , E ) G=(V,F,E) G=(V,F,E),变量节点 V = [ N ] = { 1 , 2 , ... , N } V=[N]=\{ 1,2,\text{...},N\} V=[N]={1,2,...,N},因子节点 F = [ n ] = { 1 , 2 , ... , n } F=[n]=\{ 1,2,\text{...},n\} F=[n]={1,2,...,n},边 E = [ N ] × [ n ] = { ( i , a ) : i ∈ [ N ] , a ∈ [ n ] } E=[N] \times [n]=\{(i,a):i \in[N], a \in [n] \} E=[N]×[n]={(i,a):i[N],a[n]}
在这里插入图片描述

那么依据和积算法,可以写出

ν i → a t + 1 ( s i ) ≅ e − β ∣ s i ∣ ∏ b ≠ a ν ^ b → i t ( s i ) ν ^ a → i t ( s i ) ≅ ∫ ∏ j ≠ i ν j → a t ( s i ) δ y a − ( A s ) a (4) \nu^{t+1}_{i \rightarrow a}(s_i) \cong e^{-\beta |s_i|} \prod_{b \neq a} \hat \nu^t_{b\rightarrow i}(s_i) \\ \tag{4} \hat \nu^t_{a\rightarrow i}(s_i) \cong \int \prod_{j \neq i} \nu^t_{j \rightarrow a}(s_i) \delta_{y_a-(As)_a} νiat+1(si)eβsib=aν^bit(si)ν^ait(si)j=iνjat(si)δya(As)a(4)

在进入下一部分之前,先对几个重要参数进行说明,虽然之后也会提及,但是相信先强调一下概念可以方便读者思考。

x j → a t = E ν j → a t ( s j ) [ s j ] τ j → a t β = Var ν j → a t ( s j ) [ s j ] z a → j t = E ν ^ a → j t ( z ) [ Z ] τ ^ a → j t = Var ν ^ a → j t ( z ) [ Z ] x^t_{j \rightarrow a}=\mathbb E_{\nu^{t}_{j \rightarrow a}(s_j)} [s_j] \\ \frac{\tau^{t}_{j \rightarrow a}}{\beta}=\text{Var}_{\nu^{t}_{j \rightarrow a}(s_j)}[s_j] \\ z^t_{a \rightarrow j}=\mathbb E_{\hat \nu^{t}_{a \rightarrow j}(z)}[Z] \\ {\hat \tau^{t}_{a \rightarrow j}}=\text{Var}_{\hat \nu^{t}_{a \rightarrow j}(z)}[Z] xjat=Eνjat(sj)[sj]βτjat=Varνjat(sj)[sj]zajt=Eν^ajt(z)[Z]τ^ajt=Varν^ajt(z)[Z]

(2)大系统极限下的近似

我们希望在大系统极限下, N → ∞ N \rightarrow \infty N,消息分布的形式可以被简化。事实上,当 n , N n,N n,N充分大,消息 ν ^ a → i t ( s i ) \hat \nu^{t}_{a \rightarrow i}(s_i) ν^ait(si)可以被近似为高斯分布,另一方面, ν i → a t ( s i ) \nu^t_{i \rightarrow a}(s_i) νiat(si)又可以被近似为拉普拉斯分布与一系列高斯分布的积。下面将对此做具体描述。

定义1:Kolmogorov距离
给定两个分布 μ 1 \mu_1 μ1 μ 2 \mu_2 μ2,它们的Kolmogorov距离为
∥ μ 1 − μ 2 ∥ K = sup ⁡ a ∈ R ∣ ∫ − ∞ a μ 1 ( d x ) − ∫ − ∞ a μ 2 ( d x ) ∣ (5) {\Vert \mu_1 - \mu_2 \Vert}_K = \sup_{a \in \mathbb R} |\int_{-\infty}^a \mu_1(\text{d}x)-\int_{-\infty}^a \mu_2(\text{d}x)| \tag{5} μ1μ2K=aRsupaμ1(dx)aμ2(dx)(5)

引理1:令 E ν j → a t ( s i ) [ s j ] = x j → a t \mathbb E_{\nu^{t}_{j \rightarrow a}(s_i)} [s_j]=x^t_{j \rightarrow a} Eνjat(si)[sj]=xjat Var ν j → a t ( s i ) [ s j ] = τ j → a t β \text{Var}_{\nu^{t}_{j \rightarrow a}(s_i)}[s_j]=\frac{\tau^{t}_{j \rightarrow a}}{\beta} Varνjat(si)[sj]=βτjat,假设 ∫ ∣ s j ∣ 3 d ν j → a t ( s j ) ≤ C t ,   ∀ j , a \int|s_j|^3\text{d}\nu^{t}_{j \rightarrow a}(s_j) \leq C_t, \ \forall j,a sj3dνjat(sj)Ct, j,a,那么存在 C t ′ C^{'}_t Ct使得
∥ ν ^ a → i t ( s i ) − ϕ ^ a → i t ( s i ) ∥ ≤ C t ′ N ( τ ^ a → i t ) 3 / 2 ϕ ^ a → i t ( d s i ) ≡ β A a i 2 2 π τ ^ a → i t e x p { β 2 τ ^ a → i t ( A a i s i − z a → i t ) 2 } d s i (6) \\ {\Vert {\hat \nu^t_{a\rightarrow i}(s_i) - \hat \phi^t_{a\rightarrow i}(s_i)} \Vert} \leq \frac{C^{'}_t}{\sqrt{N}(\hat \tau^t_{a \rightarrow i})^{3/2}} \\ \hat \phi^t_{a\rightarrow i}(\text{d} s_i) \equiv \sqrt {\frac{\beta A^2_{ai}}{2 \pi \hat \tau^t_{a \rightarrow i}}}exp{\{ {\frac{\beta}{2\hat \tau^t_{a \rightarrow i}}(A_{ai}s_i-z^t_{a \rightarrow i})^2} \}} \text{d}s_i \tag{6} ν^ait(si)ϕ^ait(si)N (τ^ait)3/2Ctϕ^ait(dsi)2πτ^aitβAai2 exp{2τ^aitβ(Aaisizait)2}dsi(6)

其中的两个分布参数定义如下

z a → i t ≡ y a − ∑ j ≠ i A a j x j → a t ,       τ ^ a → i t ≡ ∑ j ≠ i A a j 2 τ j → a t (7) z^t_{a \rightarrow i} \equiv y_a - \sum_{j\neq i} A_{aj} x^t_{j \rightarrow a}, \ \ \ \ \ \hat \tau^t_{a \rightarrow i} \equiv \sum_{j \neq i}A^2_{aj} \tau^t_{j \rightarrow a} \tag{7} zaityaj=iAajxjat,     τ^aitj=iAaj2τjat(7)

证明:对任意的Borel集合 S S S
ν ^ a → i t + 1 ( S ) = P { y a − ∑ j ≠ i A a j s j ∈ A a i S } \hat \nu^{t+1}_{a\rightarrow i}(S)=\mathbb P\{ {y_a- \sum_{j \neq i} A_{aj}s_j \in A_{ai}S} \} ν^ait+1(S)=P{yaj=iAajsjAaiS}
其中 A a i S = { A a i x :   x ∈ S } A_{ai}S=\{ A_{ai}x:\ x \in S \} AaiS={Aaix: xS},上式的概率是由随机向量 [ s 1 , s 2 , ... , s i − 1 , s i + 1 , ... , s N ] T [s_1, s_2, \text{...},s_{i-1},s_{i+1},\text{...},s_N]^T [s1,s2,...,si1,si+1,...,sN]T确定(因为只有 s j , ∀ j s_j,\forall j sj,j是随机变量),而该随机向量的分布由下述边的消息确定(由式(4)可以看出)

ν 1 → a t ( s 1 ) , ... , ν ( i − 1 ) → a t ( s i − 1 ) , ν ( i + 1 ) → a t ( s i + 1 ) , ... , ν N → a t ( s N ) \nu^t_{1 \rightarrow a}(s_1),\text{...},\nu^t_{(i-1) \rightarrow a}(s_{i-1}),\nu^t_{(i+1) \rightarrow a}(s_{i+1}),\text{...},\nu^t_{N \rightarrow a}(s_{N}) ν1at(s1),...,ν(i1)at(si1),ν(i+1)at(si+1),...,νNat(sN)

考虑这样一个随机变量 Z = y a − ∑ j ≠ i A a j s j Z=y_a - \sum_{j \neq i} A_{aj}s_j Z=yaj=iAajsj,根据中心极限定理,随机变量 Z Z Z服从高斯分布,其均值和方差分别为:

E [ Z ] = y a − ∑ j ≠ i A a j x j → a t Var [ Z ] = 1 β ∑ j ≠ i A a j 2 τ j → a t (8) \mathbb E[Z]=y_a - \sum_{j \neq i} A_{aj}x^t_{j \rightarrow a}\\ \tag{8} \\ \text{Var}[Z]=\frac{1}{\beta} \sum_{j \neq i} A^2_{aj} \tau^t_{j \rightarrow a} E[Z]=yaj=iAajxjatVar[Z]=β1j=iAaj2τjat(8)

注意随机变量 Z Z Z构成的的集合满足: { z } ≡ { A a i s i } \{z\} \equiv \{ A_{ai} s_i \} {z}{Aaisi},所以 A a i s i A_{ai} s_i Aaisi的分布也是高斯的,但是 A a i A_{ai} Aai是给定的,所以就得到了式(6)的关于 s i s_i si的高斯分布表达式。

可以看出引理1对从因子节点 { a } \{a\} {a}到变量节点 { i } \{i\} {i}的消息依据中心极限定理做了高斯近似,下一步考虑从变量节点 { i } \{i\} {i}到因子节点 { a } \{a\} {a}的消息,在此之前,先引入一簇函数

f β ( s ; x , b ) ≡ 1 z β ( x , b ) e x p { − β ∣ s ∣ − β 2 b ( s − x ) 2 } (9) f_{\beta}(s;x,b) \equiv \frac{1}{z_{\beta}(x,b)}exp\{ -\beta |s|-\frac{\beta}{2b}(s-x)^2 \} \tag{9} fβ(s;x,b)zβ(x,b)1exp{βs2bβ(sx)2}(9)

若随机变量 Z Z Z的概率密度函数为 f β (   ⋅   ; x , b ) f_{\beta}(\ \cdot \ ;x,b) fβ(  ;x,b),那么定义其均值和方差为

F β ( x ; b ) ≡ E f β (   ⋅   ; x , b ) ( Z ) ,     G β ( x ; b ) ≡ Var f β (   ⋅   ; x , b ) ( Z ) (10) F_{\beta}(x;b) \equiv \mathbb E_{f_{\beta}(\ \cdot \ ;x,b)}(Z), \ \ \ G_{\beta}(x;b) \equiv \text{Var}_{f_{\beta}(\ \cdot \ ;x,b)}(Z) \tag{10} Fβ(x;b)Efβ(  ;x,b)(Z),   Gβ(x;b)Varfβ(  ;x,b)(Z)(10)

式(7)和式(8)是一样的,只是少了 β \beta β项。论文中做了假设认为方差项 τ ^ a → i t \hat \tau^t_{a \rightarrow i} τ^ait独立于因子图的边 ( i , a ) (i,a) (i,a),其实这里看得不是很清楚,顺便一提,有其它的论文推导认为方差项对边的依赖是借助大数定律和中心极限定理取消的(在大系统极限下)。

引理2:假设在第t次迭代,从因子节点 { a } \{a\} {a}到变量节点 { i } \{i\} {i}的消息 ν ^ a → i t = ϕ ^ a → i t \hat \nu^t_{a\rightarrow i}=\hat \phi^t_{a\rightarrow i} ν^ait=ϕ^ait ϕ ^ a → i t \hat \phi^t_{a\rightarrow i} ϕ^ait在引理1中定义过),参数 z a → i t z^t_{a \rightarrow i} zait的定义与引理1保持一致,根据假设方差项 τ ^ a → i t \hat \tau^t_{a \rightarrow i} τ^ait独立于因子图的边 ( i , a ) (i,a) (i,a),所以指定 τ ^ a → i t = τ ^ t \hat \tau^t_{a \rightarrow i}=\hat \tau^t τ^ait=τ^t,那么对 t + 1 t+1 t+1次迭代,消息从变量节点 { i } \{i\} {i}传递到因子节点 { a } \{a\} {a}表示为
ν i → a t + 1 ( s i ) = ϕ i → a t + 1 ( s i ) ⋅ ( 1 + O ( s i 2 n ) ) ϕ i → a t + 1 ( s i ) ≡ f β ( s i ; ∑ b ≠ a A b i z b → i t , τ ^ t ) (11) \nu^{t+1}_{i \rightarrow a}(s_i)=\phi^{t+1}_{i \rightarrow a}(s_i) \cdot (1+\mathcal O(\frac {s^2_i}{n})) \\ \tag{11} \\ \phi^{t+1}_{i \rightarrow a}(s_i) \equiv f_{\beta}(s_i;\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i},\hat \tau^t) νiat+1(si)=ϕiat+1(si)(1+O(nsi2))ϕiat+1(si)fβ(si;b=aAbizbit,τ^t)(11)

对于消息分布 ν i → a t + 1 ( s i ) \nu^{t+1}_{i \rightarrow a}(s_i) νiat+1(si),依据式(10),指定其均值 x i → a t + 1 = E ν i → a t + 1 ( s i ) [ s i ] x^{t+1}_{i \rightarrow a}=\mathbb E_{\nu^{t+1}_{i \rightarrow a}(s_i)}[s_i] xiat+1=Eνiat+1(si)[si],方差 τ i → a t + 1 = Var i → a [ s i ] \tau^{t+1}_{i \rightarrow a}=\text{Var}_{i \rightarrow a}[s_i] τiat+1=Varia[si],则
x i → a t + 1 = F β ( ∑ b ≠ a A b i z b → i t ; τ ^ t ) τ i → a t + 1 = β ⋅ G β ( ∑ b ≠ a A b i z b → i t ; τ ^ t ) (12) x^{t+1}_{i \rightarrow a}=F_{\beta}(\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i};\hat \tau^t) \\ \tag{12} \\ \tau^{t+1}_{i \rightarrow a}=\beta \cdot G_{\beta}(\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i};\hat \tau^t) xiat+1=Fβ(b=aAbizbit;τ^t)τiat+1=βGβ(b=aAbizbit;τ^t)(12)

证明:式(11)是依据式(4)中给定的和积算法直接写出来的,即

ν i → a t + 1 ( s i ) ≅ e − β ∣ s i ∣ ∏ b ≠ a ν ^ b → i t ( s i ) = e x p { − β ∣ s i ∣ − ∑ b ≠ a β 2 τ ^ t ( A b i s i − z b → i t ) 2 } ≅ e x p { − β ∣ s i ∣ − β 2 τ ^ t ( n − 1 n s i 2 − 2 s i ∑ b ≠ a A b i z b → i t ) } (13) \begin{aligned} \nu^{t+1}_{i \rightarrow a}(s_i) &\cong e^{-\beta |s_i|} \prod_{b \neq a} \hat \nu^t_{b\rightarrow i}(s_i) \\ &= exp\Big \{ -\beta |s_i| - \sum_{b \neq a} \frac{\beta}{2 \hat \tau^t}(A_{bi}s_i-z^t_{b \rightarrow i})^2 \Big \} \\ & \cong exp \Big \{-\beta |s_i| - \frac{\beta}{2 \hat \tau^t} (\frac{n-1}{n}s^2_i - 2s_i\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i}) \Big \} \end{aligned} \tag{13} νiat+1(si)eβsib=aν^bit(si)=exp{βsib=a2τ^tβ(Abisizbit)2}exp{βsi2τ^tβ(nn1si22sib=aAbizbit)}(13)

n → ∞ n \rightarrow \infty n时,结合式(13)和式(9,10),可以直接推出式(12)。注意到,式(13)能推出来的前提是方差项 τ ^ a → i t \hat \tau^t_{a \rightarrow i} τ^ait不依赖于因子图的边 ( i , a ) (i,a) (i,a),所有边的方差项都是统一的。

下面对消息传递的步骤做个总结:
步骤1:如下图所示,变量节点 { i } \{i\} {i}到因子节点 { a } \{a\} {a}的消息 ν i → a t ( s i ) \nu^{t}_{i \rightarrow a}(s_i) νiat(si),该消息分布的均值为 E ν j → a t ( s i ) [ s j ] = x j → a t \mathbb E_{\nu^{t}_{j \rightarrow a}(s_i)} [s_j]=x^t_{j \rightarrow a} Eνjat(si)[sj]=xjat,方差为 Var ν j → a t ( s i ) [ s j ] = τ j → a t β \text{Var}_{\nu^{t}_{j \rightarrow a}(s_i)}[s_j]=\frac{\tau^{t}_{j \rightarrow a}}{\beta} Varνjat(si)[sj]=βτjat,我们可以理解此时消息 ν i → a t ( s i ) \nu^{t}_{i \rightarrow a}(s_i) νiat(si)将其1,2阶矩送至因子节点。
在这里插入图片描述

步骤2:如下图所示,从因子节点 { a } \{a\} {a}到变量节点 { i } \{i\} {i}的消息 ν ^ a → i t + 1 ( s i ) \hat \nu^{t+1}_{a\rightarrow i}(s_i) ν^ait+1(si),借助中心极限定理被近似为高斯分布,具体来讲,就是近似为式(6) ϕ ^ a → i t + 1 ( s i ) \hat \phi^{t+1}_{a\rightarrow i}(s_i) ϕ^ait+1(si)的形式,被其1,2阶矩唯一确定。要注意,中心极限定理是作用在随机变量 Z = y a − ∑ j ≠ i A a j s j Z=y_a - \sum_{j \neq i} A_{aj}s_j Z=yaj=iAajsj上的,其中的随机变量 s 1 , s 2 , ... , s i − 1 , s i + 1 , ... , s N s_1, s_2, \text{...},s_{i-1},s_{i+1},\text{...},s_N s1,s2,...,si1,si+1,...,sN服从的分布分别为 ν 1 → a t ( s 1 ) , ... , ν ( i − 1 ) → a t ( s i − 1 ) , ν ( i + 1 ) → a t ( s i + 1 ) , ... , ν N → a t ( s N ) \nu^t_{1 \rightarrow a}(s_1),\text{...},\nu^t_{(i-1) \rightarrow a}(s_{i-1}),\nu^t_{(i+1) \rightarrow a}(s_{i+1}),\text{...},\nu^t_{N \rightarrow a}(s_{N}) ν1at(s1),...,ν(i1)at(si1),ν(i+1)at(si+1),...,νNat(sN),根据步骤1,当前因子节点已经收到了这些分布的1,2阶矩,也就可以据此直接计算出近似后高斯分布的均值和方差(根据式(8))。本质上来讲,根据中心极限定理近似的分布显式地应该写为 ϕ ^ a → i t + 1 ( Z ) ≡ ϕ ^ a → i t + 1 ( A a i s i ) \hat \phi^{t+1}_{a\rightarrow i}(Z)\equiv \hat \phi^{t+1}_{a\rightarrow i}(A_{ai}s_i) ϕ^ait+1(Z)ϕ^ait+1(Aaisi),但因为 A a i A_{ai} Aai是给定的,所以可以写为式(6) ϕ ^ a → i t + 1 ( s i ) \hat \phi^{t+1}_{a\rightarrow i}(s_i) ϕ^ait+1(si)的形式。
在这里插入图片描述
步骤3:回过头来看“下一次步骤1”(注意迭代次数从 t t t变为了 t + 1 t+1 t+1),变量节点 { i } \{i\} {i}到因子节点 { a } \{a\} {a}的消息 ν i → a t + 1 ( s i ) \nu^{t+1}_{i \rightarrow a}(s_i) νiat+1(si),根据和积算法,即式(4)中的第一个表达式,可以把 ν i → a t + 1 ( s i ) \nu^{t+1}_{i \rightarrow a}(s_i) νiat+1(si)写为是拉普拉斯分布与一些高斯分布的乘积(那些步骤2输出对应的所有消息的积),该表达式在形式上与式(9)给出的函数是一样的,在此基础上,根据式(10)或者式(12)又可以算出来消息分布 ν i → a t + 1 ( s i ) \nu^{t+1}_{i \rightarrow a}(s_i) νiat+1(si)的均值和方差,依次循环迭代即可。

将上面的步骤用数学语言描述,

z a → i t ≡ y a − ∑ j ≠ i A a j x j → a t x i → a t + 1 = F β ( ∑ b ≠ a A b i z b → i t ; τ ^ t ) τ ^ t + 1 = β n ∑ i = 1 N G β ( ∑ b ≠ a A b i z b → i t ; τ ^ t ) (14) z^t_{a \rightarrow i} \equiv y_a - \sum_{j\neq i} A_{aj} x^t_{j \rightarrow a} \\ x^{t+1}_{i \rightarrow a}=F_{\beta}(\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i};\hat \tau^t) \tag{14} \\ \hat \tau^{t+1}=\frac{\beta}{n} \sum_{i=1}^N G_{\beta}(\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i};\hat \tau^t) zaityaj=iAajxjatxiat+1=Fβ(b=aAbizbit;τ^t)τ^t+1=nβi=1NGβ(b=aAbizbit;τ^t)(14)

式(14)中的 z a → i t z^t_{a \rightarrow i} zait是送到因子节点的均值,根据式(7)以及 A \pmb A AAA的假设可以认为步骤1和步骤2的方差项是统一的,这就是为什么式(14)中省略了送到因子节点的消息的方差。

(3)拉普拉斯分布参数的极限近似( β → ∞ \beta \rightarrow \infty β)

∀ β \forall \beta β,式(14)已经是简化了的信念传播表达式,但是考虑当 β → ∞ \beta \rightarrow \infty β时,式(3)中给出的信号 s = [ s 1 , s 2 , ... , s N ] T \pmb s=[s_1, s_2, \text{...},s_N]^T sss=[s1,s2,...,sN]T的联合概率分布函数对应的的峰值就是基追踪(BP)问题的解。考虑如下软阈值函数(soft threshold function)

η ( x ; b ) = { x − b      i f   x > b 0             i f   − b ≤ x ≤ b x + b      i f   x < − b (15) \eta(x;b)=\left\{ \begin{aligned} & x-b \ \ \ \ if \ x>b \\ & 0 \ \ \ \ \ \ \ \ \ \ \ if \ -b \leq x \leq b \\ & x + b \ \ \ \ if \ x < -b \tag{15} \end{aligned} \right. η(x;b)=xb    if x>b0           if bxbx+b    if x<b(15)

软阈值函数与下式是等价的,

η ( x ; b ) = arg min ⁡ s ∈ R { ∣ s ∣ + 1 2 b ( s − x ) 2 } (16) \eta(x;b)=\argmin_{s \in \R} \Big \{ {|s|+\frac{1}{2b}(s-x)^2} \Big \} \tag{16} η(x;b)=sRargmin{s+2b1(sx)2}(16)

β → ∞ \beta \rightarrow \infty β时,有如下引理,

引理3:若 x , b x,b x,b有界,则

lim ⁡ β → ∞ F β ( x ; b ) = η ( x ; b ) lim ⁡ β → ∞ β G β ( x ; b ) = b η ′ ( x ; b ) (17) \lim_{\beta \rightarrow \infty} F_{\beta}(x;b)=\eta(x;b) \\ \tag{17} \lim_{\beta \rightarrow \infty} \beta G_{\beta}(x;b)=b\eta^{'}(x;b) βlimFβ(x;b)=η(x;b)βlimβGβ(x;b)=bη(x;b)(17)

对引理3的证明论文只用了简短的文字叙述,看得也不太清楚,这里暂且略过,并且这并没有影响下一部分从消息传递到AMP的推导。基于引理3,可以把式(14)转化为

z a → i t ≡ y a − ∑ j ≠ i A a j x j → a t x i → a t + 1 = η ( ∑ b ≠ a A b i z b → i t ; τ ^ t ) τ ^ t + 1 = τ ^ t δ N ∑ i = 1 N η ′ ( ∑ b ≠ a A b i z b → i t ; τ ^ t ) (18) z^t_{a \rightarrow i} \equiv y_a - \sum_{j\neq i} A_{aj} x^t_{j \rightarrow a} \\ x^{t+1}_{i \rightarrow a}= \eta(\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i};\hat \tau^t) \tag{18} \\ \hat \tau^{t+1}=\frac{\hat \tau^t}{\delta N} \sum_{i=1}^N \eta^{'}(\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i};\hat \tau^t) zaityaj=iAajxjatxiat+1=η(b=aAbizbit;τ^t)τ^t+1=δNτ^ti=1Nη(b=aAbizbit;τ^t)(18)

(4)从消息传递到AMP

注意到,即使式(18)对消息的传递过程做了简化,在计算时,每次迭代依然需要 2 n N 2nN 2nN条边消息的传递,为了进一步降低复杂度,考虑将边的消息传递转化为节点的消息迭代。假设消息可以通过如下方式近似,

x i → a t = x i t + δ x i → a t + O ( 1 N ) z a → i t = z a t + δ z a → i t + O ( 1 N ) (19) x^{t}_{i \rightarrow a}=x^t_i + \delta x^{t}_{i \rightarrow a} + \mathcal O(\frac{1}{N}) \\ z^t_{a \rightarrow i}=z^t_a+\delta z^t_{a \rightarrow i} + \mathcal O(\frac{1}{N}) \tag{19} xiat=xit+δxiat+O(N1)zait=zat+δzait+O(N1)(19)

其中 δ x i → a t , δ z a → i t = O ( 1 N ) \delta x^{t}_{i \rightarrow a},\delta z^t_{a \rightarrow i}=\mathcal O(\frac{1}{\sqrt N}) δxiat,δzait=O(N 1)(这里认为 O ( ⋅ ) \mathcal O(\cdot) O()的误差在所有边上都是统一的)。考虑一般的消息传递算法形式

z a → i t ≡ y a − ∑ j ≠ i A a j x j → a t x i → a t + 1 = η t ( ∑ b ≠ a A b i z b → i t ; τ ^ t ) (20) z^t_{a \rightarrow i} \equiv y_a - \sum_{j\neq i} A_{aj} x^t_{j \rightarrow a} \\ x^{t+1}_{i \rightarrow a}= \eta_t(\sum_{b \neq a}A_{bi}z^t_{b \rightarrow i};\hat \tau^t) \tag{20} zaityaj=iAajxjatxiat+1=ηt(b=aAbizbit;τ^t)(20)

这里的 { η t ( ⋅ ) } t ∈ N \{\eta_t(\cdot)\}_{t \in \mathbb N} {ηt()}tN是一组可微的非线性函数,而且其一阶导有界。事实上,这里只要求非线性函数 η t \eta_t ηt是Lipschitz连续的,所以即使式(17,18)中的 η \eta η函数在 b , − b b,-b b,b两个点不可导,但是也没关系。为了便于分析,对可微的 η t ( ⋅ ) \eta_t(\cdot) ηt()函数,有如下引理

引理4:如果对式(20)中的消息传递算法,式(19)的近似成立,那么节点的消息 x i t , z a t x^t_i,z^t_a xit,zat满足如下等式,

x i t + 1 = η t ( ∑ a A i a z a t + x i t ) + o N ( 1 ) z a t = y a − ∑ j A a j x j t + 1 δ z a t − 1 < η t − 1 ′ ( A T z t − 1 + x t − 1 ) > + o N ( 1 ) x^{t+1}_i=\eta_t(\sum_{a}A_{ia}z^t_a+x^t_i) + \mathcal o_N(1)\\ z^t_a = y_a - \sum_{j}A_{aj}x^t_j+\frac{1}{\delta}z^{t-1}_a<\eta^{'}_{t-1}(A^Tz^{t-1}+x^{t-1})>+ \mathcal o_N(1) xit+1=ηt(aAiazat+xit)+oN(1)zat=yajAajxjt+δ1zat1<ηt1(ATzt1+xt1)>+oN(1)

证明:将(20)代入(19),
首先对于传入变量节点的均值 z a → i t z^t_{a \rightarrow i} zait
z a → i t = y a − ∑ j ∈ [ N ] A a j x j t + δ y a − δ ∑ j ∈ [ N ] A a j x j t + A a i x i t + O ( 1 N ) = ( 1 + δ ) y a − ∑ j ∈ [ N ] A a j x j t − δ ∑ j ∈ [ N ] A a j x j t + A a i x i t + O ( 1 N ) → y a − ∑ j ∈ [ N ] A a j x j t − δ ∑ j ∈ [ N ] A a j x j t ⏟ z a t + A a i x i t ⏟ δ z a → i t (21) \begin{aligned} z^t_{a \rightarrow i} &= y_a - \sum_{j \in [N]}A_{aj}x^t_j+\delta y_a - \delta \sum_{j \in [N]}A_{aj}x^t_j + A_{ai}x^t_i+\mathcal O(\frac{1}{N}) \\ &= (1+\delta)y_a - \sum_{j \in [N]}A_{aj}x^t_j - \delta \sum_{j \in [N]}A_{aj}x^t_j+A_{ai}x^t_i+\mathcal O(\frac{1}{N})\\ & \rightarrow \underbrace{y_a - \sum_{j \in [N]}A_{aj}x^t_j - \delta \sum_{j \in [N]}A_{aj}x^t_j}_{z^t_a}+\underbrace{A_{ai}x^t_i}_{\delta z^t_{a \rightarrow i}} \end{aligned} \tag{21} zait=yaj[N]Aajxjt+δyaδj[N]Aajxjt+Aaixit+O(N1)=(1+δ)yaj[N]Aajxjtδj[N]Aajxjt+Aaixit+O(N1)zat yaj[N]Aajxjtδj[N]Aajxjt+δzait Aaixit(21)

然后对于传入因子节点的均值 x i → a t + 1 x^{t+1}_{i \rightarrow a} xiat+1,借助一阶的Taylor展开得到

x i → a t + 1 = η t ( ∑ b ∈ [ n ] A b i z b t + ∑ b ∈ [ n ] A b i δ z b → i t − A a i z a t + O ( 1 N ) ) = η t ( ∑ b ∈ [ n ] A b i z b t + ∑ b ∈ [ n ] A b i δ z b → i t ) ⏟ x i t − A a i z a t η t ′ ( ∑ b ∈ [ n ] A b i z b t + ∑ b ∈ [ n ] A b i δ z b → i t ) ⏟ δ x i → a t + O ( 1 N ) (22) \begin{aligned} x^{t+1}_{i \rightarrow a} &= \eta_t(\sum_{b \in [n]}A_{bi}z^t_b+\sum_{b \in [n]}A_{bi} \delta z^t_{b \rightarrow i}-A_{ai}z^t_a + \mathcal O(\frac{1}{N})) \\ &=\underbrace{\eta_t(\sum_{b \in [n]}A_{bi}z^t_b+\sum_{b \in [n]}A_{bi} \delta z^t_{b \rightarrow i})}_{x^t_i} \underbrace{-A_{ai}z^t_a \eta^{'}_t(\sum_{b \in [n]}A_{bi}z^t_b+\sum_{b \in [n]}A_{bi} \delta z^t_{b \rightarrow i})}_{\delta x^t_{i \rightarrow a}}+ \mathcal O(\frac{1}{N}) \end{aligned} \tag{22} xiat+1=ηt(b[n]Abizbt+b[n]AbiδzbitAaizat+O(N1))=xit ηt(b[n]Abizbt+b[n]Abiδzbit)δxiat Aaizatηt(b[n]Abizbt+b[n]Abiδzbit)+O(N1)(22)

将式(21)中的 δ z a → i t \delta z^t_{a \rightarrow i} δzait项代入到式(22)的第一项,得

x i t + 1 = η t ( ∑ b ∈ [ n ] A b i z b t + ∑ b ∈ [ n ] A b i δ z b → i t ) + o ( 1 ) = η t ( ∑ b ∈ [ n ] A b i z b t + ∑ b ∈ [ n ] A b i 2 x i t ) + o ( 1 ) = η t ( ∑ b ∈ [ n ] A b i z b t + x i t ) + o ( 1 ) (23) \begin{aligned} x^{t+1}_{i } &= \eta_t(\sum_{b \in [n]}A_{bi}z^t_b+\sum_{b \in [n]}A_{bi} \delta z^t_{b \rightarrow i}) + \mathcal o(1) \\ &=\eta_t(\sum_{b \in [n]}A_{bi}z^t_b+\sum_{b \in [n]}A^2_{bi} x^t_i) + \mathcal o(1) \\ &=\eta_t(\sum_{b \in [n]}A_{bi}z^t_b+ x^t_i)+ \mathcal o(1) \end{aligned} \tag{23} xit+1=ηt(b[n]Abizbt+b[n]Abiδzbit)+o(1)=ηt(b[n]Abizbt+b[n]Abi2xit)+o(1)=ηt(b[n]Abizbt+xit)+o(1)(23)

将式(22)的 δ x i → a t \delta x^t_{i \rightarrow a} δxiat项代入到式(21)的第一项,得

z a t = y a − ∑ j ∈ [ N ] A a j x j t − ∑ j ∈ [ N ] A a j δ x j t + o ( 1 ) = y a − ∑ j ∈ [ N ] A a j x j t + ∑ j ∈ [ N ] A a j 2 z a t − 1 η t − 1 ′ ( ∑ b ∈ [ n ] A b i z b t − 1 + ∑ b ∈ [ n ] A b i δ z b → i t − 1 ) + o ( 1 ) = y a − ∑ j ∈ [ N ] A a j x j t + 1 n ∑ j ∈ [ N ] z a t − 1 η t ′ ( ∑ b ∈ [ n ] A b i z b t − 1 + x i t − 1 ) + o ( 1 ) = y a − ∑ j ∈ [ N ] A a j x j t + 1 δ z a t − 1 < η t ′ ( ∑ b ∈ [ n ] A b i z b t − 1 + x t − 1 s i ) > + o ( 1 ) (24) \begin{aligned} z^{t}_a &= y_a - \sum_{j \in [N]}A_{aj}x^t_j - \sum_{j \in [N]}A_{aj} \delta x^t_j+ \mathcal o(1) \\ &=y_a - \sum_{j \in [N]}A_{aj}x^t_j + \sum_{j \in [N]} A^2_{aj}z^{t-1}_{a} \eta^{'}_{t-1}(\sum_{b \in [n]}A_{bi}z^{t-1}_b+\sum_{b \in [n]}A_{bi} \delta z^{t-1}_{b \rightarrow i})+ \mathcal o(1) \\ &=y_a - \sum_{j \in [N]}A_{aj}x^t_j + \frac{1}{n} \sum_{j \in [N]} z^{t-1}_{a} \eta^{'}_t(\sum_{b \in [n]}A_{bi}z^{t-1}_b+ x^{t-1}_i)+ \mathcal o(1) \\ &=y_a - \sum_{j \in [N]}A_{aj}x^t_j + \frac{1}{\delta} z^{t-1}_{a} <\eta^{'}_t(\sum_{b \in [n]}A_{bi}z^{t-1}_b+ x^{t-1}s_i)>+ \mathcal o(1) \end{aligned} \tag{24} zat=yaj[N]Aajxjtj[N]Aajδxjt+o(1)=yaj[N]Aajxjt+j[N]Aaj2zat1ηt1(b[n]Abizbt1+b[n]Abiδzbit1)+o(1)=yaj[N]Aajxjt+n1j[N]zat1ηt(b[n]Abizbt1+xit1)+o(1)=yaj[N]Aajxjt+δ1zat1<ηt(b[n]Abizbt1+xt1si)>+o(1)(24)

注意到,式(24)推导中的 η t ′ ( ⋅ ) \eta^{'}_t(\cdot) ηt()自变量的变换方式与式(23) η t ( ⋅ ) \eta_t(\cdot) ηt()是一致的。

将引理4的结果写为向量的形式

x t + 1 = η ( A T z t + x t ; τ ^ t ) z t = y − A x t + 1 δ z t − 1 < η ′ ( A T z t − 1 + x t − 1 ; τ ^ t − 1 ) > (25) \pmb x^{t+1}=\eta(\pmb A^T \pmb z^t+\pmb x^t; \hat \tau^t) \\ \pmb z^t = \pmb y - \pmb A \pmb x^t+\frac{1}{\delta} \pmb z^{t-1}<\eta^{'}(\pmb A^T \pmb z^{t-1}+\pmb x^{t-1}; \hat \tau^{t-1})> \tag{25} xxxt+1=η(AAATzzzt+xxxt;τ^t)zzzt=yyyAAAxxxt+δ1zzzt1<η(AAATzzzt1+xxxt1;τ^t1)>(25)

依据式(18),可以写出方差项 τ ^ t \hat \tau^t τ^t的迭代式

τ ^ t = τ ^ t − 1 δ < η ′ ( A T z t − 1 + x t − 1 ; τ ^ t − 1 ) > (26) \hat \tau^t = \frac{\hat \tau^{t-1}}{\delta} <\eta^{'}(\pmb A^T \pmb z^{t-1}+\pmb x^{t-1}; \hat \tau^{t-1})> \tag{26} τ^t=δτ^t1<η(AAATzzzt1+xxxt1;τ^t1)>(26)

小结

我们再回顾一下对BP问题的AMP推导思路,最开始根据问题模型画出因子图,因子图中的因子节点(左边)一般表示为似然函数,然后根据标准的和积算法(信念传播算法)写出其消息传递过程。考虑大系统极限 n , N → ∞ n,N \rightarrow \infty n,N,依据中心极限定理将从因子节点到变量节点的消息先近似为高斯分布,然后再将变量节点到因子节点的消息近似为拉普拉斯分布与一些高斯分布的乘积(如果变量的先验分布已知,将拉普拉斯分布替换为先验分布),据此可以得到简化的信念传播算法。但是这仍然需要每次迭代更新 2 n N 2nN 2nN条消息,为了进一步简化,将信念传播算法里边消息的传递转化到节点上,即从消息传递到AMP的转换过程,这也是AMP的核心步骤之一。
关于从边上的消息到节点的转换,这里做一个直观但不太严格的的解释,令 ν i t \nu^t_i νit为所有到变量节点 s i s_i si的消息乘积(归一化后),则 ν i t \nu^t_i νit为本次迭代下,变量节点 s i s_i si的边际分布,其均值 x i t x^t_i xit

x i t ≅ ∫ s i ν i t d s i (27) x^t_i \cong \int s_i \nu^t_i \text{d}s_i \tag{27} xitsiνitdsi(27)

而从变量节点 s i s_i si到因子节点 a a a的边消息的均值 x i → a t x^t_{i \rightarrow a} xiat

x i → a t ≅ ∫ s i ν i t ν ^ a → i t d s i (28) x^t_{i \rightarrow a} \cong \int s_i \frac{\nu^t_i}{\hat \nu^t_{a \rightarrow i}} \text{d}s_i \tag{28} xiatsiν^aitνitdsi(28)

注意到 ν i t = ∏ b = 1 n ν ^ b → i t \nu^t_i=\prod_{b=1}^n \hat \nu^t_{b \rightarrow i} νit=b=1nν^bit,因为 ν ^ b → i t   ∀ b \hat \nu^t_{b \rightarrow i} \ \forall b ν^bit b已经被近似为高斯分布,若各消息方差相等,则

ν i t ≅ e x p { − α [ ( n − 1 ) ⋅ ( s − μ ) 2 + ( s − μ n ) 2 ] } ≅ e x p { − α ⋅ n ( s − ( n − 1 ) μ + μ n n ) 2 } (29) \begin{aligned} \nu^t_i & \cong exp\{- \alpha [ (n-1) \cdot (s-\mu)^2+(s-\mu_n)^2 ] \} \\ & \cong exp \{ -\alpha \cdot n(s-\frac{(n-1) \mu + \mu_n}{n})^2 \} \end{aligned} \tag{29} νitexp{α[(n1)(sμ)2+(sμn)2]}exp{αn(sn(n1)μ+μn)2}(29)
ν i t ν ^ a → i t ≅ e x p { − α [ ( n − 1 ) ⋅ ( s − μ ) 2 ] } (30) \frac{\nu^t_i}{\hat \nu^t_{a \rightarrow i}} \cong exp\{- \alpha [ (n-1) \cdot (s-\mu)^2] \} \tag{30} ν^aitνitexp{α[(n1)(sμ)2]}(30)

其中 α > 0 \alpha > 0 α>0。已知 n → ∞ n \rightarrow \infty n,结合式(27,29)可得
lim ⁡ n → ∞ x i t = μ + O ( 1 n ) = μ lim ⁡ n → ∞ x i → a t = μ \lim_{n \rightarrow \infty}x^t_i=\mu+\mathcal O(\frac{1}{\sqrt n})=\mu \\ \lim_{n \rightarrow \infty} x^t_{i \rightarrow a} = \mu nlimxit=μ+O(n 1)=μnlimxiat=μ

所以事实上,在一次迭代中,边消息的均值趋近于变量节点边际概率的均值,但由于迭代次数较多,为了防止估计误差逐渐累积,采取了 x i → a t = x i t + δ x i → a t + O ( 1 N ) x^{t}_{i \rightarrow a}=x^t_i + \delta x^{t}_{i \rightarrow a} + \mathcal O(\frac{1}{N}) xiat=xit+δxiat+O(N1)的补偿方式来补偿 O ( 1 N ) / O ( 1 n ) \mathcal O(\frac{1}{\sqrt N})/\mathcal O(\frac{1}{\sqrt n}) O(N 1)/O(n 1)的消息( n , N n,N n,N同阶)。

[1] D. L. Donoho, A. Maleki and A. Montanari, “Message passing algorithms for compressed sensing: I. motivation and construction,” 2010 IEEE Information Theory Workshop on Information Theory (ITW 2010, Cairo), 2010, pp. 1-5, doi: 10.1109/ITWKSPS.2010.5503193.

  • 52
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
visual-AMP是一个集成了Apache、Nginx、PHP、MySQL、Redis、Memcached、Sphinx等服务端程序的套件。它还包含了多个php扩展,如apc、memcache、redis、mongo、sqlsrv、eAccelerator、Xdebug、Zend Optimizer和Zend Guard等。\[2\]visual-AMP提供了一个方便的开发环境,可以用于搭建和管理网站。如果你想使用visual-AMP,你需要下载最新版的MySQL并解压缩到bin目录下,并将文件夹名称修改为MySQL。然后删除bin\MySQL\data、bin\MySQL\include、bin\MySQL\lib和bin\MySQL\mysql-test文件夹。\[1\]visual-AMP还利用激光雷达里程计进行低频率细化运动估计和纠正漂移,通过视觉里程计估算出来的位姿进行激光点云的畸变矫正,并将矫正后的点云映射到局部地图中。\[3\] #### 引用[.reference_title] - *1* [Visual NMP中升级Nginx、PHP、MySQL](https://blog.csdn.net/zaoqiang/article/details/47312237)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [PHP集成环境Visual-AMP](https://blog.csdn.net/u012201659/article/details/11888937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SLAM | visual-lidar odometry and mapping: low- drift, robust, and fast](https://blog.csdn.net/xiaoliuya19/article/details/121579993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值