近似消息传递(Approximate Message Passing)算法简介

近似消息传递(Approximate Message Passing)算法简介

1 前言

近似消息传递(Approximate Message Passing, AMP)算法是基于消息传递算法,也叫和-积算法(Sum-Product Algorithm, SPA),还被称为置信传播(Belief Propagation, BP)算法,经过一系列假设与简化得来,这其中包括了中心极限定理(Central Limit Theory, CLT)和泰勒级数(Taylor Series)展开等[@zou_concise_2022]

2 基础知识

这一节简单介绍基础知识,包括SPA、CLT、高斯分布乘以高斯分布、泰勒级数以及后验概率密度函数的偏导数求法的结果。

2.1 和-积算法(Sum-Product Algorithm, SPA)

消息传递算法是基于因子图(factor graph)的节点(node)之间的消息沿边(edge)相互传递而得名。

我们假设一个线性估计模型: y = H x + w ( 1 ) \mathbf{y = Hx + w} \quad(1) y=Hx+w(1)
其中, y ∈ C M \mathbf{y} \in \mathbb{C}^M yCM是已知的观测数据(observed data), H ∈ C M × N \mathbf{H} \in \mathbb{C}^{M\times N} HCM×N是已知的观测矩阵, x ∈ C N \mathbf{x}\in \mathbb{C}^N xCN是待估计的信号,并且知道先验分布为 p ( x ) p(\mathbf{x}) p(x) w ∈ C M \mathbf{w} \in \mathbb{C}^M wCM是复高斯白噪声,即 w ∼ C N ( w ; 0 , σ 2 I ) \mathbf{w} \sim \mathcal{CN}(\mathbf{w};\mathbf{0},\sigma^2 \mathbf{I}) wCN(w;0,σ2I)

根据公式(1)存在一个全局概率密度分布(global probability density distribution,PDF) p ( y , x ∣ H ) p(\mathbf{y,x|H}) p(y,x∣H),为了简单起见,我们省略 H \mathbf{H} H,写为 p ( y , x ) p(\mathbf{y,x}) p(y,x)。我们假设 y \mathbf{y} y x \mathbf{x} x的各自的元素都是分别各自独立同分布的。那么我们可以将全局PDF进行分解:
p ( y , x ) = p ( y ∣ x ) p ( x ) ( 2 ) = ∏ a M p ( y a ∣ x ) ∏ i N p ( x i ) ( 3 ) = ∏ a f a ( x ) ( 4 ) \begin{aligned} p(\mathbf{y,x}) & = p(\mathbf{y|x})p(\mathbf{x}) \quad(2) \\ & = \prod_a^M p(y_a |\mathbf{x}) \prod_i^N p(x_i) \quad(3)\\ & = \prod_a f_a(\mathbf{x}) \quad(4) \end{aligned} p(y,x)=p(y∣x)p(x)(2)=aMp(yax)iNp(xi)(3)=afa(x)(4) 公式(2)是条件概率公式,公式(3)是根据独立假设而得来,公式(4)是因子形式分解,中的 x \mathbf{x} x是与该因子相连的全部变量,不是待估计的信号 x ∈ C N \mathbf{x}\in \mathbb{C}^N xCN

从变量节点 x i x_i xi传递到因子节点 f a ( x ) f_a(\mathbf{x}) fa(x)的消息为: μ i → a ( x i ) ∝ ∏ b ≠ a μ i ← b ( x i ) ( 5 ) \mu_{i \rightarrow a}(x_i) \propto \prod_{b \neq a} \mu_{i \leftarrow b}(x_i) \quad(5) μia(xi)b=aμib(xi)(5)

从因子节点 f a ( x ) f_a(\mathbf{x}) fa(x)传递到变量节点 x i x_i xi的消息为: μ i ← a ( x i ) ∝ ∫ x \ i f a ( x ) ∏ j ≠ i μ j → a ( x j ) d x \ i ( 6 ) \mu_{i \leftarrow a}(x_i) \propto \int_{\mathbf{x}_{\backslash i}} f_a(\mathbf{x}) \prod_{j \neq i}\mu_{j \rightarrow a}(x_j) \mathbf{d} \mathbf{x}_{\backslash i} \quad(6) μia(xi)x\ifa(x)j=iμja(xj)dx\i(6)
j ≠ i j \neq i j=i b ≠ a b \neq a b=a的原因是避免传递自身的消息,即传递外信息,从而不会出现自己不断置信自己的情况。消息的本质是PDF,由于这里未进行归一化,所以使用正比于 ∝ \propto

对于我们处理的模型, M × N M \times N M×N的因子图为:

图1:因子图

这张图省略了观测变量 y \mathbf{y} y,可以画出来,再用斜线涂黑,代表观测。整张图只有两种不同的节点,并且相同类型的节点不会连接,分别是变量节点(variable node)和因子节点(factor node),又叫校验节点。消息在两类不同的节点之间相互传递。

那么对于上图来说,公式(5)和(6)可以分别写为: μ i → a ( x i ) ∝ p ( x i ) ∏ b ≠ a μ i ← b ( x i ) ( 7 ) μ i ← a ( x i ) ∝ ∫ x \ i p ( y a ∣ x ) ∏ j ≠ i N μ j → a ( x j ) d x \ i ( 8 ) \begin{aligned} \mu_{i \rightarrow a}(x_i) & \propto p(x_i) \prod_{b \neq a} \mu_{i \leftarrow b}(x_i) \quad(7) \\ \mu_{i \leftarrow a}(x_i) & \propto \int_{\mathbf{x}_{\backslash i}} p(y_a|\mathbf{x}) \prod_{j \neq i}^N \mu_{j \rightarrow a}(x_j) \mathbf{d} \mathbf{x}_{\backslash i} \quad(8) \end{aligned} μia(xi)μia(xi)p(xi)b=aμib(xi)(7)x\ip(yax)j=iNμja(xj)dx\i(8)
注意公式(5)和(6)是最一般的形式,即公式(4),而公式(7)和(8)是针对公式(3)得来。可以看出来公式(7)和(8)只是变量节点 x i x_i xi和因子节点 p ( y a ∣ x ) p(y_a|\mathbf{x}) p(yax)之间在进行消息传递,而没有 x i x_i xi p ( x i ) p(x_i) p(xi)之间的传递。这是因为 p ( x i ) p(x_i) p(xi)是边缘节点,只与 x i x_i xi相连,只能传递给 x i x_i xi消息 p ( x i ) p(x_i) p(xi),所以不需要更新。或者说,因为传递的是外信息, p ( x i ) p(x_i) p(xi)就算被更新了,也是传递最原始的先验知识 p ( x i ) p(x_i) p(xi)

由于这里的因子图不是可以得到精确解的树状结构,而是环状结构,消息会在两种节点间进行迭代,得到近似解。所以,我们把公式(7)和(8)重写为: μ i → a t + 1 ( x i ) ∝ p ( x i ) ∏ b ≠ a μ i ← b ( x i ) ( 9 ) μ i ← a t ( x i ) ∝ ∫ x \ i p ( y a ∣ x ) ∏ j ≠ i N μ j → a ( x j ) d x \ i ( 10 ) \begin{aligned} \mu_{i \rightarrow a}^{t+1}(x_i) & \propto p(x_i) \prod_{b \neq a} \mu_{i \leftarrow b}(x_i) \quad(9) \\ \mu_{i \leftarrow a}^{t}(x_i) & \propto \int_{\mathbf{x}_{\backslash i}} p(y_a|\mathbf{x}) \prod_{j \neq i}^N \mu_{j \rightarrow a}(x_j) \mathbf{d} \mathbf{x}_{\backslash i} \quad(10) \end{aligned} μiat+1(xi)μiat(xi)p(xi)b=aμib(xi)(9)x\ip(yax)j=iNμja(xj)dx\i(10) 其中 t t t是第 t t t次迭代。

对于我们的需要的后验知识,可以利用下式求出后验分布: p ( x i t ) ∝ p ( x i ) ∏ a = 1 M μ i ← a t ( x i ) ( 11 ) p(x_i^t) \propto p(x_i) \prod_{a=1}^{M} \mu_{i \leftarrow a }^t (x_i) \quad(11) p(xit)p(xi)a=1Mμiat(xi)(11)
即把所有与 x i x_i xi相连的因子节点传递给它的消息进行合并,这被称为因子图的边缘分布,但并不是一般的概率分布的边缘分布(marginal
distribution),它实际上是后验分布 p ( x i ∣ y ) p(x_i|\mathbf{y}) p(xiy)

至此,我们完成了简要讨论SPA。

2.2 中心极限定理(Central Limit Theory, CLT)

我们这里考虑最简单的独立同分布(independent identical distribution, i.i.d.)的形式,也叫Lindeberg-Feller中心极限定理。

定理 1 (独立同分布中心极限定理).
假设 { X n } n = 1 N \{X_n\}^N_{n=1} {Xn}n=1N N N N个样本是i.i.d.的,有 E ( X n ) = m \mathbb{E}(X_n) = m E(Xn)=m V a r ( X n ) = σ 2 > 0 {\rm Var}(X_n) = \sigma^2 > 0 Var(Xn)=σ2>0。当 N N N足够大时, X ˉ n = 1 N ∑ n = 1 N X n \bar{X}_n = \frac{1}{N}\sum_{n=1}^{N}X_n Xˉn=N1n=1NXn近似服从正态分布 N ( m , σ 2 N ) \mathcal{N}(m, \frac{\sigma^2}{N}) N(m,Nσ2)

我们这里将正态分布重写为标准正态分布,即 X ˉ n − m σ / N ∼ N ( 0 , 1 ) \frac{\bar{X}_n - m}{\sigma / \sqrt{N} } \sim \mathcal{N}(0, 1) σ/N XˉnmN(0,1)。同样的,在复数域下,可以写为 X ˉ n − m σ / N ∼ C N ( 0 , 1 ) \frac{\bar{X}_n - m}{\sigma / \sqrt{N} } \sim \mathcal{CN}(0, 1) σ/N XˉnmCN(0,1)

2.3 高斯分布乘高斯分布

接下来介绍高斯分布乘高斯分布的引理:

定理 2 (Gaussian reproduction lemma).
对于两个高斯分布, N ( x ; a , A ) \mathcal{N}(x;a,A) N(x;a,A) N ( x ; b , B ) \mathcal{N}(x;b,B) N(x;b,B),它们的乘积为:
N ( x ; a , A ) N ( x ; b , B ) = N ( x ; c , C ) N ( 0 ; a − b , A + B ) ∝ N ( x ; c , C ) ( 12 ) \mathcal{N}(x;a,A)\mathcal{N}(x;b,B) = \mathcal{N}(x;c,C)\mathcal{N}(0;a-b,A+B) \propto \mathcal{N}(x;c,C) \quad(12) N(x;a,A)N(x;b,B)=N(x;c,C)N(0;ab,A+B)N(x;c,C)(12)其中 1 C = 1 A + 1 B \frac{1}{C} = \frac{1}{A} + \frac{1}{B} C1=A1+B1, c C = a A + b B \frac{c}{C} = \frac{a}{A} + \frac{b}{B} Cc=Aa+Bb

这里的证明很简单,简单的想办法把两个高斯分布的乘积拼凑高斯分布的形式即可,可以很显式地得出均值和方差,可以将等式两边除以 N ( 0 ; a − b , A + B ) \mathcal{N}(0;a-b,A+B) N(0;ab,A+B)以归一化,得到真正的PDF。同样的,给出复数域的情况:
C N ( x ; a , A ) C N ( x ; b , B ) = C N ( x ; c , C ) C N ( 0 ; a − b , A + B ) ∝ C N ( x ; c , C ) ( 13 ) \mathcal{CN}(x;a,A)\mathcal{CN}(x;b,B) = \mathcal{CN}(x;c,C)\mathcal{CN}(0;a-b,A+B) \propto \mathcal{CN}(x;c,C)\quad(13) CN(x;a,A)CN(x;b,B)=CN(x;c,C)CN(0;ab,A+B)CN(x;c,C)(13)至此,我们完成了基础知识的简单介绍。

2.4 一阶泰勒级数展开

对于一个两变量的函数 f ( x , y ) f(x,y) f(x,y),并假设其Lipschitz连续,我们一阶泰勒级数展开有:
f ( x + Δ x , y + Δ y ) ≈ f ( x , y ) + Δ x f x ′ ( x , y ) + Δ y f y ′ ( x , y ) ( 14 ) f(x+\Delta x ,y+\Delta y ) \approx f(x,y) + \Delta x f'_x(x,y)+ \Delta y f'_y(x,y)\quad(14) f(x+Δx,y+Δy)f(x,y)+Δxfx(x,y)+Δyfy(x,y)(14)其中, f x ′ f'_x fx f y ′ f'_y fy分别代表了对 x x x y y y分别求偏导。

2.5 后验概率密度函数的偏导数求法

对于一个任意有界非负的函数 f ( x ) f(x) f(x)(其实是加权),并定义一个分布 P ( x ) = f ( x ) C N ( x ; m , v ) ∫ f ( x ) C N ( x ; m , v ) d x \mathcal{P}(x) = \frac{f(x)\mathcal{CN}(x;m,v)}{\int f(x)\mathcal{CN}(x;m,v) {\rm d}x} P(x)=f(x)CN(x;m,v)dxf(x)CN(x;m,v)。其均值和方差表示为 E ( x ) = ∫ x P ( x ) d x \mathbb{E}(x) = \int x \mathcal{P}(x) {\rm d}x E(x)=xP(x)dx V a r ( x ) = ∫ [ x − E ( x ) ] 2 P ( x ) d x {\rm Var}(x) = \int [x - \mathbb{E}(x)]^2 \mathcal{P}(x) {\rm d}x Var(x)=[xE(x)]2P(x)dx。我们有:
∂ ∫ x P ( x ) d x ∂ m = ∫ x x − m v f ( x ) C N ( x ; m , v ) d x ⋅ ∫ f ( x ) C N ( x ; m , v ) d x [ ∫ f ( x ) C N ( x ; m , v ) d x ] 2 − ∫ x f ( x ) C N ( x ; m , v ) d x ⋅ ∫ x − m v f ( x ) C N ( x ; m , v ) d x [ ∫ f ( x ) C N ( x ; m , v ) d x ] 2 = V a r ( x ) v ( 15 ) \begin{split} \frac{\partial \int x \mathcal{P}(x) {\rm d}x }{\partial m} & = \frac{\int x \frac{x-m}{v} f(x) \mathcal{CN}(x;m,v){\rm d}x \cdot \int f(x) \mathcal{CN}(x;m,v){\rm d}x }{[\int f(x)\mathcal{CN}(x;m,v){\rm d}x ]^2} \\ & \quad - \frac{\int x f(x) \mathcal{CN}(x;m,v){\rm d}x \cdot \int \frac{x-m}{v} f(x) \mathcal{CN}(x;m,v){\rm d}x }{[\int f(x)\mathcal{CN}(x;m,v){\rm d}x ]^2} \\ & = \frac{{\rm Var}(x)}{v} \end{split}\quad(15) mxP(x)dx=[f(x)CN(x;m,v)dx]2xvxmf(x)CN(x;m,v)dxf(x)CN(x;m,v)dx[f(x)CN(x;m,v)dx]2xf(x)CN(x;m,v)dxvxmf(x)CN(x;m,v)dx=vVar(x)(15)

3 AMP推导

我们回到SPA的模型以及公式(9)和(10),开始对它们进行简化。

3.1 从因子节点传递到变量节点的消息

对于公式(10)中的 p ( y a ∣ x ) p(y_a|\mathbf{x}) p(yax)而言,我们这里不再省略 H \mathbf{H} H,并用 H a ∼ \mathbf{H}_{a\sim} Ha表示其第 a a a行:
p ( y a ∣ H , x ) = p w a ( y a − H a ∼ x ) = C N ( y a ; H a ∼ x , σ 2 ) = C N ( w a = y a − H a ∼ x ; 0 , σ 2 ) ( 16 ) = 1 π σ 2 exp ⁡ ( − ∣ y a − H a ∼ x ∣ 2 σ 2 ) \begin{split} p(y_a|\mathbf{H,x}) & = p_{w_a}(y_a - \mathbf{H}_{a\sim}\mathbf{x} ) \\ & = \mathcal{CN}(y_a;\mathbf{H}_{a\sim}\mathbf{x} , \sigma^2 ) \\ & = \mathcal{CN}(w_a = y_a - \mathbf{H}_{a\sim}\mathbf{x}; 0, \sigma^2 )\quad(16)\\ & = \frac{1}{\pi \sigma^2}\exp( \frac{-|y_a - \mathbf{H}_{a\sim}\mathbf{x}|^2}{\sigma^2} ) \end{split} p(yaH,x)=pwa(yaHax)=CN(ya;Hax,σ2)=CN(wa=yaHax;0,σ2)(16)=πσ21exp(σ2yaHax2)
其中 p w a ( ⋅ ) p_{w_a}(\cdot) pwa()代表是随机变量 w a w_a wa的PDF, H a ∼ x \mathbf{H}_{a\sim}\mathbf{x} Hax也可以被写作 ∑ k = 1 N h a k x k \sum_{k=1}^{N}h_{ak}x_k k=1Nhakxk

为了简化公式(10),我们将其重写为: μ i ← a t ( x i ) ∝ ∫ x \ i p ( y a ∣ H a ∼ x ) ∏ j ≠ i N μ j → a t ( x j ) d x \ i ∝ ∫ x \ i ∫ z a p ( y a ∣ z a ) δ ( z a − ∑ k = 1 N h a k x k ) d z a ∏ j ≠ i N μ j → a t ( x j ) d x \ i ∝ ∫ z a p ( y a ∣ z a ) E { δ ( z a − ∑ j ≠ i N h a j x j − h a i x i ) } d z a ( 17 ) \begin{split} \mu_{i \leftarrow a}^{t}(x_i) & \propto \int_{\mathbf{x}_{\backslash i}} p(y_a|\mathbf{H}_{a\sim}\mathbf{x}) \prod_{j \neq i}^N \mu_{j \rightarrow a}^t(x_j) \mathbf{d} \mathbf{x}_{\backslash i} \\ & \propto \int_{\mathbf{x}_{\backslash i}} \int_{z_a} p(y_a|z_a) \delta(z_a - \sum_{k=1}^{N}h_{ak}x_k) {\rm d}z_a \prod_{j \neq i}^N \mu_{j \rightarrow a}^t(x_j) \mathbf{d} \mathbf{x}_{\backslash i}\\ & \propto \int_{z_a} p(y_a|z_a) \mathbb{E}\left\{\delta \left( z_a - \sum_{j \neq i}^{N}h_{aj}x_j - h_{ai}x_i \right) \right\} {\rm d}z_a \quad(17) \end{split} μiat(xi)x\ip(yaHax)j=iNμjat(xj)dx\ix\izap(yaza)δ(zak=1Nhakxk)dzaj=iNμjat(xj)dx\izap(yaza)E δ zaj=iNhajxjhaixi dza(17)
其中,期望是基于 ∏ j ≠ i N μ j → a t ( x j ) \prod_{j \neq i}^N \mu_{j \rightarrow a}^t(x_j) j=iNμjat(xj)求的。我们定义了新的随机变量 z a = H a ∼ x z_a = \mathbf{H}_{a\sim}\mathbf{x} za=Hax,以及与它相关的随机变量 ζ i ← a t \zeta_{i \leftarrow a}^{t} ζiat。再定义根据 μ j → a t ( x j ) \mu_{j \rightarrow a}^{t}(x_j) μjat(xj) x j x_j xj相关的 ξ j → a t \xi_{j \rightarrow a}^{t} ξjat。并且给出 ξ j → a t \xi_{j \rightarrow a}^{t} ξjat的均值和方差分别为 x ^ j → a t \hat{x}_{j \rightarrow a}^{t} x^jat v ^ j → a t \hat{v}_{j \rightarrow a}^{t} v^jat。由公式(17),当 N N N趋近于无穷时,根据CLT,可以得到随机变量 ζ i ← a t \zeta_{i \leftarrow a}^{t} ζiat收敛到高斯随机变量,其均值和方差为:
E ( ζ i ← a t ) = Z i ← a t + h a i x i , V a r ( ζ i ← a t ) = V i ← a t ( 18 ) \mathbb{E}(\zeta_{i \leftarrow a}^{t}) = Z^t_{i \leftarrow a}+h_{ai}x_i , \quad {\rm Var}(\zeta_{i \leftarrow a}^{t}) = V_{i \leftarrow a}^t\quad(18) E(ζiat)=Ziat+haixi,Var(ζiat)=Viat(18)
其中 Z i ← a t = ∑ j ≠ i h a j x ^ j → a t , V i ← a t = ∑ j ≠ i ∣ h a j ∣ 2 v ^ j → a t ( 19 ) Z^t_{i \leftarrow a} = \sum_{j \neq i} h_{aj}\hat{x}^t_{j \rightarrow a}, \quad V_{i \leftarrow a}^t = \sum_{j \neq i} |h_{aj}|^2 \hat{v}^t_{j \rightarrow a } \quad(19) Ziat=j=ihajx^jat,Viat=j=ihaj2v^jat(19)
实际上公式(19)可以视为在 x ∼ i \mathbf{x}_{\sim i} xi下对 y a y_a ya的估计。

基于这里的高斯假设,我们可以将公式(17)中的 E { δ ( z a − ∑ j ≠ i N h a j x j − h a i x i ) } \mathbb{E}\{\delta ( z_a - \sum_{j \neq i}^{N}h_{aj}x_j - h_{ai}x_i )\} E{δ(zaj=iNhajxjhaixi)}替换为, C N ( z a ; h a i x i + Z i ← a t , V i ← a t ) \mathcal{CN}(z_a ; h_{ai}x_i + Z^t_{i \leftarrow a}, V_{i \leftarrow a}^t) CN(za;haixi+Ziat,Viat),再根据高斯分布乘高斯分布的引理, μ i ← a t ( x i ) \mu_{i \leftarrow a}^{t}(x_i) μiat(xi)被近似为:
μ i ← a t ( x i ) ∝ ∫ z a p ( y a ∣ z a ) C N ( z a ; h a i x i + Z i ← a t , V i ← a t ) d z a ∝ ∫ z a C N ( y a ; H a ∼ x , σ 2 ) C N ( z a ; h a i x i + Z i ← a t , V i ← a t ) d z a ∝ ∫ z a C N ( z a ; y a , σ 2 ) C N ( z a ; h a i x i + Z i ← a t , V i ← a t ) d z a ∝ C N ( 0 ; y a − h a i x i − Z i ← a t , σ 2 + V i ← a t ) ∝ C N ( x i ; y a − Z i ← a t h a i , σ 2 + V i ← a t ∣ h a i ∣ 2 ) ( 20 ) \begin{split} \mu_{i \leftarrow a}^{t}(x_i) & \propto \int_{z_a} p(y_a|z_a)\mathcal{CN}(z_a ; h_{ai}x_i + Z^t_{i \leftarrow a}, V_{i \leftarrow a}^t) {\rm d}z_a \\ & \propto \int_{z_a} \mathcal{CN}(y_a;\mathbf{H}_{a\sim}\mathbf{x} , \sigma^2 ) \mathcal{CN}(z_a ; h_{ai}x_i + Z^t_{i \leftarrow a}, V_{i \leftarrow a}^t) {\rm d}z_a \\ & \propto \int_{z_a} \mathcal{CN}(z_a; y_a , \sigma^2 ) \mathcal{CN}(z_a ; h_{ai}x_i + Z^t_{i \leftarrow a}, V_{i \leftarrow a}^t) {\rm d}z_a \\ & \propto \mathcal{CN}(0; y_a - h_{ai}x_i - Z^t_{i \leftarrow a} , \sigma^2 + V_{i \leftarrow a}^t) \\ & \propto \mathcal{CN}(x_i;\frac{y_a - Z_{i \leftarrow a}^t}{h_{ai}},\frac{\sigma^2 + V_{i \leftarrow a}^t}{|h_{ai}|^2})\quad(20) \end{split} μiat(xi)zap(yaza)CN(za;haixi+Ziat,Viat)dzazaCN(ya;Hax,σ2)CN(za;haixi+Ziat,Viat)dzazaCN(za;ya,σ2)CN(za;haixi+Ziat,Viat)dzaCN(0;yahaixiZiat,σ2+Viat)CN(xi;haiyaZiat,hai2σ2+Viat)(20)
这其中第二个 ∝ \propto 到第三个 ∝ \propto 之间,利用了高斯分布的性质,更换了PDF的变量,以保证两个复高斯分布都是基于随机变量 z a z_a za,从而可以使用高斯分布乘高斯分布的引理。

注意到此时消息变成了复数高斯的,且计算时也需要传入消息的均值与方差。高斯消息仅存在两个充分统计量,会让参数传递变得方便。在此,定义此条消息的均值和方差为:
x ^ i ← a t = y a − Z i ← a t h a i ; v ^ i ← a t = σ 2 + V i ← a t ∣ h a i ∣ 2 ( 21 ) \hat{x}_{i \leftarrow a}^t = \frac{y_a - Z_{i \leftarrow a}^t}{h_{ai}}; \quad \hat{v}_{i \leftarrow a}^t = \frac{\sigma^2 + V_{i \leftarrow a}^t}{|h_{ai}|^2}\quad(21) x^iat=haiyaZiat;v^iat=hai2σ2+Viat(21)

值得注意的是,这里对与PDF中的方差和均值没有区分";“和”|“,实际上这里更严谨需要使用”|“,但为了表明均值和方差,我们采用”;"。并且,此处如果 H \mathbf{H} H中某个元素为0,会导致除以0的情况发生导致错误。事实上,可以在后面的推导中避免这一问题。

3.2 从变量节点传递到因子节点的消息

我们回到公式(9),我们先对 ∏ b ≠ a M μ i ← b t ( x i ) \prod_{b \neq a}^{M} \mu_{i \leftarrow b}^t (x_i) b=aMμibt(xi)进行分析:
∏ b ≠ a M μ i ← b t ( x i ) = ∏ b ≠ a M C N ( x i ; x ^ i ← b t , v ^ i ← b t ) ∝ C N ( x i ; r ^ i → a t , Σ ^ i → a t ) ( 22 ) \begin{split} \prod_{b \neq a}^{M} \mu_{i \leftarrow b}^t (x_i) & = \prod_{b \neq a}^{M} \mathcal{CN}(x_i;\hat{x}_{i \leftarrow b}^t , \hat{v}_{i \leftarrow b}^t ) \\ & \propto \mathcal{CN}(x_i;\hat{r}_{i \rightarrow a}^t , \hat{\Sigma}_{i \rightarrow a}^t )\quad(22) \end{split} b=aMμibt(xi)=b=aMCN(xi;x^ibt,v^ibt)CN(xi;r^iat,Σ^iat)(22) 其中 1 Σ ^ i → a t = ∑ b ≠ a M 1 v ^ i ← b t = ∑ b ≠ a M ∣ h b i ∣ 2 σ 2 + V i ← b t ( 23 ) r ^ i → a t Σ ^ i → a t = ∑ b ≠ a M x ^ i ← b t v ^ i ← b t = ∑ b ≠ a M y b − Z i ← b t h b i ∣ h b i ∣ 2 σ 2 + V i ← b t = ∑ b ≠ a M h b i ∗ ( y b − Z i ← b t ) σ 2 + V i ← b t ( 24 ) \begin{aligned} \frac{1}{\hat{\Sigma}_{i \rightarrow a}^t} & = \sum_{b \neq a}^{M} \frac{1}{\hat{v}_{i \leftarrow b}^t} \\ & = \sum_{b \neq a}^{M} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t} \quad(23)\\ \frac{\hat{r}_{i \rightarrow a}^t}{\hat{\Sigma}_{i \rightarrow a}^t} & = \sum_{b \neq a}^{M} \frac{\hat{x}_{i \leftarrow b}^t}{ \hat{v}_{i \leftarrow b}^t } \\ & = \sum_{b \neq a}^{M} \frac{y_b - Z_{i \leftarrow b}^t}{h_{bi}} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t}\\ & = \sum_{b \neq a}^{M} \frac{h_{bi}^* (y_b - Z_{i \leftarrow b}^t) }{\sigma^2 + V_{i \leftarrow b}^t} \quad(24) \end{aligned} Σ^iat1Σ^iatr^iat=b=aMv^ibt1=b=aMσ2+Vibthbi2(23)=b=aMv^ibtx^ibt=b=aMhbiybZibtσ2+Vibthbi2=b=aMσ2+Vibthbi(ybZibt)(24)
这里完全是利用的公式(13)。之后,我们再结合先验信息 p ( x i ) p(x_i) p(xi) μ i → a t + 1 ( x i ) ∝ p ( x i ) ∏ b ≠ a M μ i ← b ( x i ) ∝ p ( x i ) C N ( x i ; r ^ i → a t , Σ ^ i → a t ) ( 25 ) \begin{split} \mu_{i \rightarrow a}^{t+1}(x_i) & \propto p(x_i) \prod_{b \neq a}^M \mu_{i \leftarrow b}(x_i) \\ & \propto p(x_i)\mathcal{CN}(x_i ;\hat{r}_{i \rightarrow a}^t , \hat{\Sigma}_{i \rightarrow a}^t )\quad(25) \end{split} μiat+1(xi)p(xi)b=aMμib(xi)p(xi)CN(xi;r^iat,Σ^iat)(25)
我们不需要知道 μ i → a t + 1 ( x i ) \mu_{i \rightarrow a}^{t+1}(x_i) μiat+1(xi)的确切分布,只需要知道其均值和方差,并近似为一个新的复高斯分布 μ i → a t + 1 ( x i ) ∝ C N ( x i ; x ^ i → a t + 1 , v ^ i → a t + 1 ) \mu_{i \rightarrow a}^{t+1}(x_i) \propto \mathcal{CN}(x_i;\hat{x}^{t+1}_{i \rightarrow a}, \hat{v}^{t+1}_{i \rightarrow a}) μiat+1(xi)CN(xi;x^iat+1,v^iat+1),其中
x ^ i → a t + 1 = E ( x i ) = ∫ x i x i 1 C p ( x i ) C N ( x i ; r ^ i → a t , Σ ^ i → a t ) d x i = d e f F ( x i ; r ^ i → a t , Σ ^ i → a t ) ( 26 ) v ^ i → a t + 1 = V a r ( x i ) = ∫ x i ( x i − x ^ i → a t + 1 ) 2 1 C p ( x i ) C N ( x i ; r ^ i → a t , Σ ^ i → a t ) d x i = d e f G ( x i ; r ^ i → a t , Σ ^ i → a t ) ( 27 ) \begin{aligned} \hat{x}^{t+1}_{i \rightarrow a} & = \mathbb{E}(x_i) \notag \\ & = \int_{x_i} x_i \frac{1}{C}p(x_i) \mathcal{CN}(x_i ;\hat{r}_{i \rightarrow a}^t , \hat{\Sigma}_{i \rightarrow a}^t) {\rm d}x_i \notag \\ & \overset{def}{=} F(x_i;\hat{r}_{i \rightarrow a}^t , \hat{\Sigma}_{i \rightarrow a}^t) \quad(26) \\ \hat{v}^{t+1}_{i \rightarrow a} & = {\rm Var}(x_i) \notag \\ & = \int_{x_i} (x_i - \hat{x}^{t+1}_{i \rightarrow a} )^2 \frac{1}{C}p(x_i) \mathcal{CN}(x_i ;\hat{r}_{i \rightarrow a}^t , \hat{\Sigma}_{i \rightarrow a}^t) {\rm d}x_i \notag \\ & \overset{def}{=} G(x_i;\hat{r}_{i \rightarrow a}^t , \hat{\Sigma}_{i \rightarrow a}^t) \quad(27) \end{aligned} x^iat+1v^iat+1=E(xi)=xixiC1p(xi)CN(xi;r^iat,Σ^iat)dxi=defF(xi;r^iat,Σ^iat)(26)=Var(xi)=xi(xix^iat+1)2C1p(xi)CN(xi;r^iat,Σ^iat)dxi=defG(xi;r^iat,Σ^iat)(27)其中, C = ∫ x i p ( x i ) C N ( x i ; r ^ i → a t , Σ ^ i → a t ) d x i C = \int_{x_i} p(x_i) \mathcal{CN} (x_i;\hat{r}_{i \rightarrow a}^t , \hat{\Sigma}_{i \rightarrow a}^t){\rm d}x_i C=xip(xi)CN(xi;r^iat,Σ^iat)dxi是归一化常数。当 p ( x i ) p(x_i) p(xi)为确定分布时,这两个积分可以直接计算或近似,其复杂度为 O ( 1 ) \mathcal{O}(1) O(1)

至此,两种节点之间的消息均推导完毕。到这里,实际上是对循环置信传播(Loopy Belief Propagation, LBP)进行了近似,减少了传递的参数量,将消息传递变成了统计量传递,但到目前为止,我们已经完成高斯化所有信息的处理。

3.3 进一步的简化

上述消息的计算均涉及到 O ( N ) \mathcal{O}(N) O(N) O ( M ) \mathcal{O}(M) O(M)(两者同等级,以下统一为 O ( N ) \mathcal{O}(N) O(N))复杂度的计算过程,同时,在系统中,每次迭代存在 2 M N 2MN 2MN条消息,故实际上以上算法的复杂度约为 O ( N 3 ) \mathcal{O}(N^3) O(N3).考虑到三次复杂度依然难以接受,AMP对上述两类消息进行了进一步的简化。

我们约定, ∣ h i j ∣ |h_{ij}| hij的数量级为 O ( 1 / N ) O(1/\sqrt{N}) O(1/N ),因此 ∣ h i j ∣ 2 |h_{ij}|^2 hij2的数量级为 O ( 1 / N ) O(1/N) O(1/N);同时约定 x j x_j xj的数量级为 O ( 1 ) O(1) O(1),因此其估计量 x ^ i \hat{x}_i x^i v ^ i \hat{v}_i v^i数量级同样为 O ( 1 ) O(1) O(1)。在以上约定下, y i y_i yi的数量级同样的,也是 O ( 1 ) O(1) O(1) Z a , V a Z_a, V_a Za,Va也同样应为 O ( 1 ) O(1) O(1)。因此,我们认为在在大系统极限下,单独存在的 O ( 1 / N ) O(1/\sqrt{N}) O(1/N )数量级或更低的变量以及求和后数量级为 O ( 1 / N ) O(1/\sqrt{N}) O(1/N )或更低可作为无穷小量而被忽略。

回忆公式(11),我们提到了我们想要知道的后验分布 p t + 1 ( x i ∣ y ) p^{t+1}(x_i|\mathbf{y}) pt+1(xiy),我们定义:
Σ ^ i t = ( ∑ a = 1 M 1 v ^ i ← a t ) − 1 = ( ∑ a = 1 M ∣ h a i ∣ 2 σ 2 + V i ← a t ) − 1 ( 28 ) r ^ i t = Σ ^ i t ∑ a = 1 M h a i ∗ ( y a − Z i ← a t ) σ 2 + V i ← a t ( 29 ) \begin{aligned} \hat{\Sigma}_{i}^t & = \left(\sum_{a=1}^{M} \frac{1}{\hat{v}_{i \leftarrow a}^t}\right)^{-1} \notag \\ & = \left(\sum_{a=1}^{M} \frac{|h_{ai}|^2 }{\sigma^2 + V_{i \leftarrow a}^t}\right)^{-1} \quad(28) \\ \hat{r}_{i}^t & = \hat{\Sigma}_{i}^t \sum_{a = 1}^{M} \frac{h_{ai}^* (y_a - Z_{i \leftarrow a}^t) }{\sigma^2 + V_{i \leftarrow a}^t} \quad(29) \end{aligned} Σ^itr^it=(a=1Mv^iat1)1=(a=1Mσ2+Viathai2)1(28)=Σ^ita=1Mσ2+Viathai(yaZiat)(29) 其中公式(11)的 ∏ a = 1 M μ i ← a t ( x i ) \prod_{a=1}^{M} \mu^t_{i \leftarrow a}(x_i) a=1Mμiat(xi)正比于 C N ( x i ; r ^ i t , Σ ^ i t ) \mathcal{CN}(x_i; \hat{r}_i^t,\hat{\Sigma}_i^t ) CN(xi;r^it,Σ^it)。相应的, p t + 1 ( x i ∣ y ) p^{t+1}(x_i|\mathbf{y}) pt+1(xiy)的近似后验均值和方差可以表示为:
x ^ i t + 1 = F ( x i ; r ^ i t , Σ ^ i t ) ( 30 ) v ^ i t + 1 = G ( x i ; r ^ i t , Σ ^ i t ) ( 31 ) \begin{aligned} \hat{x}^{t+1}_{i} & = F(x_i;\hat{r}_{i}^t , \hat{\Sigma}_{i}^t) \quad(30) \\ \hat{v}^{t+1}_{i} & = G(x_i;\hat{r}_{i}^t , \hat{\Sigma}_{i}^t) \quad(31) \end{aligned} x^it+1v^it+1=F(xi;r^it,Σ^it)(30)=G(xi;r^it,Σ^it)(31)

同样地,我们定义 Z a t = ∑ i = 1 N h a i x ^ i → a t ( 32 ) V a t = ∑ i = 1 N ∣ h a i ∣ 2 v ^ i → a t ≈ V i ← a t ( 33 ) \begin{aligned} Z_a^t & = \sum_{i = 1}^{N} h_{ai} \hat{x}^t_{i \rightarrow a} \quad(32) \\ V_a^t & = \sum_{i = 1}^{N} |h_{ai}|^2 \hat{v}^t_{i \rightarrow a} \approx V_{i \leftarrow a}^t \quad(33) \end{aligned} ZatVat=i=1Nhaix^iat(32)=i=1Nhai2v^iatViat(33) 其中 ≈ \approx 是忽略了无穷小量。

对公式(26)中的 x ^ i → a t + 1 \hat{x}^{t+1}_{i \rightarrow a} x^iat+1应用一阶泰勒级数展开,有:
x ^ i → a t + 1 ≈ x ^ i t + 1 + Δ r ^ ∂ ∂ r F ( x i ; r ^ i t , Σ ^ i t ) + Δ Σ ^ ∂ ∂ Σ F ( x i ; r ^ i t , Σ ^ i t ) ( 34 ) \hat{x}^{t+1}_{i \rightarrow a} \approx \hat{x}^{t+1}_{i} + \Delta \hat{r} \frac{\partial}{\partial r} F(x_i;\hat{r}_{i}^t , \hat{\Sigma}_{i}^t) + \Delta \hat{\Sigma} \frac{\partial}{\partial \Sigma} F(x_i;\hat{r}_{i}^t , \hat{\Sigma}_{i}^t)\quad(34) x^iat+1x^it+1+Δr^rF(xi;r^it,Σ^it)+ΔΣ^ΣF(xi;r^it,Σ^it)(34)
其中 Δ Σ = Σ ^ i → a t − Σ i t ^ = ( ∑ b ≠ a M ∣ h b i ∣ 2 σ 2 + V i ← b t ) − 1 − ( ∑ b = 1 M ∣ h b i ∣ 2 σ 2 + V i ← b t ) − 1 = ∣ h a i ∣ 2 σ 2 + V i ← a t ( ∑ b ≠ a M ∣ h b i ∣ 2 σ 2 + V i ← b t ) ( ∑ b = 1 M ∣ h b i ∣ 2 σ 2 + V i ← b t ) ≈ ∣ h a i ∣ 2 σ 2 + V a t ( ∑ b ≠ a M ∣ h b i ∣ 2 σ 2 + V i ← b t ) ( ∑ b = 1 M ∣ h b i ∣ 2 σ 2 + V i ← b t ) ≈ 0 ( 35 ) Δ r = r ^ i → a t − r ^ i t = Σ ^ i → a t ∑ b ≠ a M h b i ∗ ( y b − Z i ← b t ) σ 2 + V i ← b t − Σ ^ i t ∑ b = 1 M h b i ∗ ( y b − Z i ← b t ) σ 2 + V i ← b t ≈ − Σ ^ i t h a i ∗ ( y a − Z i ← a t ) σ 2 + V i ← a t ≈ − Σ ^ i t h a i ∗ ( y a − Z i ← a t ) σ 2 + V a t ( 36 ) \begin{aligned} \Delta \Sigma & = \hat{\Sigma}^t_{i \rightarrow a } - \hat{\Sigma^t_{i}} \notag \\ & = \left(\sum_{b \neq a}^{M} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t}\right)^{-1} - \left(\sum_{b=1}^{M} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t}\right)^{-1} \notag \\ & = \frac{ \frac{|h_{ai}|^2 }{\sigma^2 + V_{i \leftarrow a}^t} }{\left(\sum_{b \neq a}^{M} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t}\right)\left(\sum_{b=1}^{M} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t}\right)} \notag \\ & \approx \frac{ \frac{|h_{ai}|^2 }{\sigma^2 + V_{a}^t} }{\left(\sum_{b \neq a}^{M} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t}\right)\left(\sum_{b=1}^{M} \frac{|h_{bi}|^2 }{\sigma^2 + V_{i \leftarrow b}^t}\right)} \notag \\ & \approx 0 \quad(35) \\ \Delta r & = \hat{r}^t_{i \rightarrow a } - \hat{r}^t_{i} \notag \\ & = \hat{\Sigma}^t_{i \rightarrow a }\sum_{b \neq a}^{M} \frac{h_{bi}^* (y_b - Z_{i \leftarrow b}^t) }{\sigma^2 + V_{i \leftarrow b}^t} - \hat{\Sigma}_{i}^t \sum_{b = 1}^{M} \frac{h_{bi}^* (y_b - Z_{i \leftarrow b}^t) }{\sigma^2 + V_{i \leftarrow b}^t} \notag\\ & \approx -\hat{\Sigma}_{i}^t \frac{h_{ai}^* (y_a - Z_{i \leftarrow a}^t) }{\sigma^2 + V_{i \leftarrow a}^t} \notag\\ & \approx -\hat{\Sigma}_{i}^t \frac{h_{ai}^* (y_a - Z_{i \leftarrow a}^t) }{\sigma^2 + V_{a}^t} \quad(36) \end{aligned} ΔΣΔr=Σ^iatΣit^= b=aMσ2+Vibthbi2 1(b=1Mσ2+Vibthbi2)1=(b=aMσ2+Vibthbi2)(b=1Mσ2+Vibthbi2)σ2+Viathai2(b=aMσ2+Vibthbi2)(b=1Mσ2+Vibthbi2)σ2+Vathai20(35)=r^iatr^it=Σ^iatb=aMσ2+Vibthbi(ybZibt)Σ^itb=1Mσ2+Vibthbi(ybZibt)Σ^itσ2+Viathai(yaZiat)Σ^itσ2+Vathai(yaZiat)(36)
其中利用到了 V a t = V i ← a t + O ( 1 / N ) V_a^t = V_{i \leftarrow a}^t + O(1/N) Vat=Viat+O(1/N) Σ ^ i t = Σ ^ i → a t + O ( 1 / N ) \hat{\Sigma}_i^t =\hat{\Sigma}_{i \rightarrow a}^t + O(1/N) Σ^it=Σ^iat+O(1/N)的近似。利用后验概率密度函数的偏导数求法,可以得到 ∂ ∂ r F ( x i ; r , Σ i t ) ∣ r = r ^ i t = v ^ i t + 1 Σ ^ i t \frac{\partial}{\partial r} F(x_i;r,\Sigma^t_i)|_{r = \hat{r}^t_i} = \frac{\hat{v}_i^{t+1}}{\hat{\Sigma}_i^t} rF(xi;r,Σit)r=r^it=Σ^itv^it+1,从而公式(34)可以化简为: x ^ i → a t + 1 ≈ x ^ i t + 1 − h a i ∗ ( y a − Z i ← a t ) σ 2 + V a t v ^ i t + 1 ( 37 ) \hat{x}^{t+1}_{i \rightarrow a} \approx \hat{x}_i^{t+1} - \frac{h_{ai}^*(y_a - Z^t_{i \leftarrow a})}{\sigma^2+V_a^t}\hat{v}_i^{t+1} \quad(37) x^iat+1x^it+1σ2+Vathai(yaZiat)v^it+1(37)

同样地,我们对公式(27)进行一阶泰勒展开,有: v ^ i → a t + 1 ≈ v ^ i t + 1 + Δ r ∂ ∂ r G ( x i ; r ^ i t , Σ ^ i t ) ( 38 ) \hat{v}^{t+1}_{i \rightarrow a} \approx \hat{v}_i^{t+1} + \Delta r \frac{\partial}{\partial r}G(x_i;\hat{r}_i^t,\hat{\Sigma}^t_i)\quad(38) v^iat+1v^it+1+ΔrrG(xi;r^it,Σ^it)(38)
将公式(36)和(38)带入(33)得到: V a t ≈ ∑ i = 1 N ∣ h a i ∣ 2 ( v ^ i t − Σ ^ i t h a i ∗ ( y a − Z i ← a t ) σ 2 + V a t × ∂ ∂ r G ( x i ; r ^ i t , Σ ^ i t ) ) ≈ ∑ i = 1 N ∣ h a i ∣ 2 v ^ i t − ∑ i = 1 N ∣ h a i ∣ 2 ( ∑ b = 1 M ∣ h b i ∣ 2 σ 2 + V i ← b t ) − 1 h a i ∗ ( y a − Z i ← a t ) σ 2 + V a t × ∂ ∂ r G ( x i ; r ^ i t , Σ ^ i t ) = ∑ i = 1 N ∣ h a i ∣ 2 v ^ i t + O ( 1 / N ) ≈ ∑ i = 1 N ∣ h a i ∣ 2 v ^ i t ( 39 ) \begin{split} V_a^t & \approx \sum_{i=1}^{N} |h_{ai}|^2 \left( \hat{v}_i^t -\hat{\Sigma}_{i}^t \frac{h_{ai}^* (y_a - Z_{i \leftarrow a}^t) }{\sigma^2 + V_{a}^t} \times \frac{\partial}{\partial r}G(x_i;\hat{r}_i^t,\hat{\Sigma}^t_i) \right) \\ & \approx \sum_{i=1}^{N} |h_{ai}|^2 \hat{v}_i^t - \sum_{i=1}^{N} |h_{ai}|^2 \left( \sum_{b=1}^{M}\frac{|h_{bi}|^2}{\sigma^2 + V^t_{i \leftarrow b}} \right)^{-1} \frac{h_{ai}^* (y_a - Z_{i \leftarrow a}^t)}{\sigma^2 + V_{a}^t} \times \frac{\partial}{\partial r}G(x_i;\hat{r}_i^t,\hat{\Sigma}^t_i) \\ & = \sum_{i=1}^{N} |h_{ai}|^2 \hat{v}_i^t + O(1/\sqrt{N}) \\ & \approx \sum_{i=1}^{N} |h_{ai}|^2 \hat{v}_i^t \quad(39) \end{split} Vati=1Nhai2(v^itΣ^itσ2+Vathai(yaZiat)×rG(xi;r^it,Σ^it))i=1Nhai2v^iti=1Nhai2(b=1Mσ2+Vibthbi2)1σ2+Vathai(yaZiat)×rG(xi;r^it,Σ^it)=i=1Nhai2v^it+O(1/N )i=1Nhai2v^it(39)
其中 O ( 1 / N ) O(1/\sqrt{N}) O(1/N )的来源是 h a i ∗ h_{ai}^* hai。再将公式(37)代入(32)中,可得: Z a t ≈ ∑ i = 1 N h a i x ^ i t − ∑ i = 1 N ∣ h a i ∣ 2 ( y a − Z i ← a t − 1 ) σ 2 + V a t − 1 v ^ i t = ∑ i = 1 N h a i x ^ i t − ∑ i = 1 N ∣ h a i ∣ 2 v ^ i t ( y a − Z a t − 1 + h a i x ^ i t − 1 ) σ 2 + V a t − 1 ≈ ∑ i = 1 N h a i x ^ i t − V a t ( y a − Z a t − 1 ) σ 2 + V a t − 1 ( 40 ) \begin{split} Z_a^t & \approx \sum_{i=1}^{N} h_{ai} \hat{x}_i^t - \sum_{i=1}^{N} \frac{|h_{ai}|^2(y_a - Z_{i \leftarrow a}^{t-1})}{\sigma^2 + V_{a}^{t-1}} \hat{v}_{i}^{t} \\ & = \sum_{i=1}^{N} h_{ai} \hat{x}_i^t - \sum_{i=1}^{N} \frac{|h_{ai}|^2\hat{v}_{i}^{t}(y_a - Z_{a}^{t-1} + h_{ai}\hat{x}_i^{t-1})}{\sigma^2 + V_{a}^{t-1}} \\ & \approx \sum_{i=1}^{N} h_{ai} \hat{x}_i^t - \frac{V_a^t(y_a - Z_{a}^{t-1})}{\sigma^2 + V_{a}^{t-1}} \quad(40) \end{split} Zati=1Nhaix^iti=1Nσ2+Vat1hai2(yaZiat1)v^it=i=1Nhaix^iti=1Nσ2+Vat1hai2v^it(yaZat1+haix^it1)i=1Nhaix^itσ2+Vat1Vat(yaZat1)(40)
其中最后一步的化简是因为 h a i x ^ i t − 1 = O ( 1 / N ) h_{ai}\hat{x}_i^{t-1}=O(1/\sqrt{N}) haix^it1=O(1/N )。再将公式(37)代入(29)中: r ^ i t ≈ Σ ^ i t ∑ a = 1 M h a i ∗ ( y a − Z a t + h a i x ^ i t ) σ 2 + V a t = x ^ i t + Σ ^ i t ∑ a = 1 M h a i ∗ ( y a − Z a t ) σ 2 + V a t ( 41 ) \begin{split} \hat{r}_{i}^t & \approx \hat{\Sigma}_{i}^t \sum_{a = 1}^{M} \frac{h_{ai}^* (y_a - Z_{a}^{t} + h_{ai}\hat{x}_i^{t}) }{\sigma^2 + V_{a}^t} \\ & = \hat{x}^t_i + \hat{\Sigma}_i^t \sum_{a=1}^{M} \frac{h_{ai}^* (y_a - Z_{a}^{t} )}{\sigma^2 + V_{a}^t} \quad(41) \end{split} r^itΣ^ita=1Mσ2+Vathai(yaZat+haix^it)=x^it+Σ^ita=1Mσ2+Vathai(yaZat)(41) 到此为止,我们完成AMP的推导。

4 AMP伪算法及总结

最终,我们把算法表示在这里:
在这里插入图片描述

需要注意的是,此处的上标 T T T不是转置(transpose),而是第 T T T迭代之后的结果。还需要强调的是(30)和(31)其实就是后验分布的均值和方差,在伪算法中给出了贝叶斯的形式,注意这里是对后验分布求的均值和方差。 r ^ i t \hat{r}_{i}^t r^it Σ ^ i t \hat{\Sigma}_{i}^t Σ^it是似然函数(复高斯分布)的均值和方差。还有一些文献会引入残差项(一般为 s ^ a t \hat{s}_a^t s^at)来表示 ( y a − Z a t ) / ( σ 2 + V a t ) (y_a - Z_a^t)/(\sigma^2+V_a^t) (yaZat)/(σ2+Vat)等。

本文大量参考了

https://etc.lmdewz.xyz/?p=94
https://arxiv.org/abs/2201.07487

### 回答1: 近似信息传递(Approximate Message Passing,AMP)是一种用于解决高维统计推断问题的算法。它通过迭代地传递信息来估计未知参数,具有高效、简单和可扩展性等优点,在信号处理机器学习、计算机视觉等领域得到广泛应用。 ### 回答2: 近似信息传递(Approximate Message Passing,AMP)是一种通信理论中的新技术,在信号处理和统计学领域得到广泛应用。它是在大规模数据和稀疏数据处理中的优化算法,能够有效地处理非线性稀疏信号处理问题,通常用于压缩感知、图像复原和方程求解等应用中。 近似信息传递是通过迭代的方式对系统输出做出未知信号的估计,并使用每个变量节点间的消息来改善估计。该方法将推导大规模信号处理问题的推断算法归结为优化问题,并最终将其简化为计算逐步近似的階段与加权递归算法近似信息传递方法将数据模型中的随机变量上的概率分布表示为一个高斯分布的乘积并对其求解,这里面主要包括了两大部分:信息传递和迭代优化。 信息传递是近似信息传递模型中的重要步骤之一,它分为前向传递和反向传递两种,使用到了因子图,将信息从变量节点传导到函数节点,再将信息从函数节点往回传导到变量节点。在迭代优化中,通过多次迭代逐步确定不同时段的估计结果,将估计误差和输出值进行新的运算,不断优化算法,以得出最终的估计值。 总体来讲,近似信息传递在统计信号处理机器学习中有着广泛的应用,该方法在处理信号的过程中,能够快速收敛到准确的解,具有较高的计算效率和准确性,是一种非常有效的处理稀疏信号问题的方法。 ### 回答3: 近似信息传递(Approximate Message Passing, AMP)是一种基于贝叶斯理论的信号处理方法,它是一种迭代算法,在求解高维线性模型时具有很高的效率和准确性。AMP通常是应用于压缩感知和机器学习等领域的信号分析问题。 AMP的基本思想是将复杂的推断问题转化为一些简单的计算问题,利用一些先验知识和结构性信息对未知参数进行估计。AMP算法是可以适应不同场景的普适性算法,可以应用于信号处理中的多种问题中,如丢失数据恢复、数据降维和噪声滤除等问题。 AMP算法最早应用于压缩感知领域,在该领域下,信号通常由大量的随机矩阵进行观测,AMP算法可以有效地提取这些观测的信息并预测未知的信号。在机器学习领域,AMP也可以解决许多高维数据模型的处理问题,如低秩矩阵分解问题等。 AMP算法可以有效地利用一些数据的先验信息,因此对于处理含有大量噪声的数据,其结果通常比传统的方法要更为准确。AMP算法还具有较高的计算效率,可以处理大规模的数据,并且具有较好的通用性,能够处理许多适用于不同领域的问题,因此在近年来受到了广泛的研究关注和应用。 总体来说,AMP算法是一种迭代算法,利用统计学习的思想,以贝叶斯理论为基础,在处理高维数据时具有高效、准确、泛化性等优点。但在实际应用过程中,也需要根据具体情况进行合理的参数选择,以充分利用AMP算法的优势。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值