【状态估计】概率论基础

机器人学的状态估计》是入行SLAM的经典书籍之一,其中有大量的公式相关的内容,看起来还是比较艰涩的。最近重新读一遍,顺便将其中的一些内容记录下来,方便以后回看。


概率密度函数

定义

定义 x x x为区间 [ a . b ] [a.b] [a.b]上的随机变量,服从某个概率密度函数 p ( x ) p(x) p(x),那么这个非负函数必须满足:

∫ a b p ( x ) d x = 1 \int_a^b p(x)dx=1 abp(x)dx=1

这个积分等干1的条件,实际上是为了满足全概率公理请注意公式里面的 p ( x ) p(x) p(x)是概率密度而不是概率。概率是指概率密度在区间上的面积积分。比如,计算 x x x落在区间 [ c , d ] [c,d] [c,d]上的概率 P r ( c ≤ x ≤ d ) Pr(c\le x\le d) Pr(cxd),即用概率密度函数在该区间上积分,公式如下:

P r ( c ≤ x ≤ d ) = ∫ c d p ( x ) d x Pr(c\le x\le d)=\int_c^d p(x)dx Pr(cxd)=cdp(x)dx

接下来,引入条件概率。假设 p ( x ∣ y ) p(x|y) p(xy)表示自变量 x ∈ [ a , b ] x\in[a,b] x[a,b]在条件 y ∈ [ r , s ] y\in[r,s] y[r,s]下的概率密度函数,那么它满足:

( ∀ y ) ∫ a b p ( x ∣ y ) d x = 1 (\forall y) \int_a^b p(x|y)dx=1 (y)abp(xy)dx=1

N N N维连续型随机变量的联合概率密度函数也可以用之前的方法表示为 p ( x ) p(x) p(x),其中 x = ( x 0 , x 1 , . . . , x n ) x=(x_0,x_1,...,x_n) x=(x0,x1,...,xn)。对于每个 x i x_i xi,满足 x i ∈ [ a i , b i ] x_i\in[a_i,b_i] xi[ai,bi]。实际上也可以用:

p ( x 1 , x 2 , . . . , x n ) p(x_1,x_2,...,x_n) p(x1,x2,...,xn)

代替 p ( x ) p(x) p(x)

N N N维情况下,全概率公理要求:

∫ a b p ( x ) d x = ∫ a N b N . . . ∫ a 2 b 2 ∫ a 1 b 1 p ( x 1 , x 2 , . . . , x N ) d x 1 d x 2 . . . d x N = 1 \int_a^b p(x)dx=\int_{a_N}^{b_N}...\int_{a_2}^{b_2}\int_{a_1}^{b_1}p(x_1,x_2,...,x_N)dx_1dx_2...dx_N=1 abp(x)dx=aNbN...a2b2a1b1p(x1,x2,...,xN)dx1dx2...dxN=1

贝叶斯公式及推断

一个联合概率密度可以分解成一个条件概率密度和一个非条件概率密度的乘积

p ( x , y ) = p ( x ∣ y ) p ( y ) = p ( y ∣ x ) p ( x ) p(x,y)=p(x|y)p(y)=p(y|x)p(x) p(x,y)=p(xy)p(y)=p(yx)p(x)

重新整理,可以得到贝叶斯公式

p ( x ∣ y ) = p ( y ∣ x ) p ( x ) p ( y ) p(x|y)=\frac{p(y|x)p(x)}{p(y)} p(xy)=p(y)p(yx)p(x)

如果有了状态的先验概率密度函数 p ( x ) p(x) p(x)和传感器模型 p ( y ∣ x ) p(y|x) p(yx),就可以推断状态的后验概率密度函数。因此将分母展开:

p ( y ) = p ( y ) ∫ p ( x ∣ y ) d x = ∫ p ( x ∣ y ) p ( y ) d x = ∫ p ( x , y ) d x = ∫ p ( y ∣ x ) p ( x ) d x p(y)=p(y)\int p(x|y)dx=\int p(x|y)p(y)dx=\int p(x,y)dx=\int p(y|x)p(x)dx p(y)=p(y)p(xy)dx=p(xy)p(y)dx=p(x,y)dx=p(yx)p(x)dx

p ( x ∣ y ) = p ( y ∣ x ) p ( x ) ∫ p ( y ∣ x ) p ( x ) d x p(x|y)=\frac{p(y|x)p(x)}{\int p(y|x)p(x)dx} p(xy)=p(yx)p(x)dxp(yx)p(x)

也就是说,可以通过边缘化的方式计算分母 p ( y ) p(y) p(y)

贝叶斯推断中, p ( x ) p(x) p(x)称为先验密度, p ( x ∣ y ) p(x|y) p(xy)称为后验密度。因此,所有的先验信息被包含在 p ( x ) p(x) p(x)中。同样的,所有的后验信息被包含在 p ( x ∣ y ) p(x|y) p(xy)中。

在概率密度中,通常使用矩来描述其简单的特性。概率密度的零阶矩正好是整个全事件的概率,因此恒等于1。概率一阶矩称为期望,用 μ \mu μ表示。

μ = E [ x ] = ∫ x p ( x ) d x \mu=E[x]=\int xp(x)dx μ=E[x]=xp(x)dx

这里的 E [ ] E[] E[]称为期望算子。对于一般的矩阵函数 F ( x ) F(x) F(x),这个算子定义为:

E [ F ( x ) ] = ∫ F ( x ) p ( x ) d x E[F(x)]=\int F(x)p(x)dx E[F(x)]=F(x)p(x)dx

注意它的展开式为:

E [ F ( x ) ] = E [ E [ f i j ( x ) ] ] = [ ∫ f i j ( x ) p ( x ) d x ] E[F(x)]=E[E[f_{ij}(x)]]=[\int f_{ij}(x)p(x)dx] E[F(x)]=E[E[fij(x)]]=[fij(x)p(x)dx]

概率二阶矩是协方差矩阵 Σ \Sigma Σ

Σ = E [ ( x − μ ) ( x − μ ) T ] \Sigma=E[(x-\mu)(x-\mu)^T] Σ=E[(xμ)(xμ)T]

接下来的三阶矩和四阶矩分别称为偏度和峰度。但是在多变量情况下形式很复杂,这里就不研究了。

样本均值和样本方差

假设一个随机变量 x x x,它的概率密度函数为 p ( x ) p(x) p(x)所谓样本,也就是随机变量的一次实现,可以直观地理解为一次测量值。如果想要通过采样得到 N N N个样本来估计随机变量的期望和方差,可以直接使用样本均值和样本方差去近似。公式如下:

μ m e a s = 1 N ∑ i = 1 N x i , m e a s \mu_{meas}=\frac{1}{N}\sum_{i=1}^N x_{i,meas} μmeas=N1i=1Nxi,meas

Σ m e a n s = 1 N − 1 ∑ i = 1 N ( x i , m e a s − μ m e a s ) ( x i , m e a s − μ m e a s ) T \Sigma_{means}=\frac{1}{N-1}\sum_{i=1}^{N}(x_{i,meas}-\mu_{meas})(x_{i,meas}-\mu_{meas})^T Σmeans=N11i=1N(xi,measμmeas)(xi,measμmeas)T

注意:样本方差的归一化参数分母是 N − 1 N-1 N1而不是 N N N,这称为贝塞尔修正。直观上说,样本方差使用了测量值和样本均值的差,而样本均值本身又是通过相同的测量值得到的,它们之间存在一个轻微的相关性,于是就出现了这样的一个轻微的修正量。可以证明,样本方差其实正好是随机变量方差的无偏估计。

统计独立性与不相关性

如果两个随机变量 x x x y y y联合概率密度函数可以用以下的因式分解,那么称这两个随机变量是统计独立的:

p ( x , y ) = p ( x ) p ( y ) p(x,y)=p(x)p(y) p(x,y)=p(x)p(y)

同样的,如果两个变量的期望运算满足下式,则称它们是不相关的:

E [ x y T ] = E [ x ] E [ y ] T E[xy^T]=E[x]E[y]^T E[xyT]=E[x]E[y]T

不相关比独立更弱。如果两个随机变量是统计独立的,也就意味着它们也是不相关的,但是不相关的两个随机变量不一定是独立的。出于简化计算的目的,一般都会假设变量之间是统计独立的。

归一化积

对于同一个随机变量的两个不同的概率密度函数,可以计算它们的归一化积。一个随机变量怎么会有两个不同的概率密度函数呢?这可以理解为一个随机变量有两个不同的观测,每个观测都表示一个概率密度函数。

如果 p 1 ( x ) p_1(x) p1(x) p 2 ( x ) p_2(x) p2(x)是随机变量 x x x的两个不同的概率密度函数,那么它们的归一化积 p ( x ) p(x) p(x)定义为:

p ( x ) = η p 1 ( x ) p 2 ( x ) p(x)=\eta p_1(x)p_2(x) p(x)=ηp1(x)p2(x)

其中:

η = ( ∫ p 1 ( x ) p 2 ( x ) d x ) − 1 \eta=(\int p_1(x)p_2(x)dx)^{-1} η=(p1(x)p2(x)dx)1

η \eta η是一个常值的归一化因子,用于确保 p ( x ) p(x) p(x)满足全概率公理。

根据贝叶斯理论,归一化积可用于融合对同一个随机变量的多次估计(以概率密度函数形式表示),只要假设其先验为均匀分布即可。设 x x x为待估计变量, y 1 y_1 y1 y 2 y_2 y2为两次独立测量,那么:

p ( x ∣ y 1 , y 2 ) = p ( y 1 , y 2 ∣ x ) p ( x ) p ( y 1 , y 2 ) p(x|y_1,y_2)=\frac{p(y_1,y_2|x)p(x)}{p(y_1,y_2)} p(xy1,y2)=p(y1,y2)p(y1,y2x)p(x)

该公式的理解:

p ( y 1 , y 2 ∣ x ) p ( x ) = p ( x , y 1 , y 2 ) = p ( x ∣ y 1 , y 2 ) p ( y 1 , y 2 ) {p(y_1,y_2|x)p(x)}=p(x, y_1,y_2)=p(x|y_1,y_2){p(y_1,y_2)} p(y1,y2x)p(x)=p(x,y1,y2)=p(xy1,y2)p(y1,y2)

给定 x x x,假设 y 1 y_1 y1 y 2 y_2 y2是统计独立的,则:

p ( y 1 , y 2 ∣ x ) = p ( y 1 ∣ x ) p ( y 2 ∣ x ) = p ( x ∣ y 1 ) p ( y 1 ) p ( x ) p ( x ∣ y 2 ) p ( y 2 ) p ( x ) = p ( x ∣ y 1 ) p ( x ∣ y 2 ) p ( y 1 , y 2 ) p ( x ) p ( x ) \begin{aligned}p(y_1,y_2|x)&=p(y_1|x)p(y_2|x)\\&=\frac{p(x|y_1)p(y_1)}{p(x)}\frac{p(x|y_2)p(y_2)}{p(x)}\\&=\frac{p(x|y_1)p(x|y_2)p(y_1,y_2)}{p(x)p(x)}\end{aligned} p(y1,y2x)=p(y1x)p(y2x)=p(x)p(xy1)p(y1)p(x)p(xy2)p(y2)=p(x)p(x)p(xy1)p(xy2)p(y1,y2)

带入,最终得到:

p ( x ∣ y 1 , y 2 ) = p ( x ∣ y 1 ) p ( x ∣ y 2 ) p ( x ) = η p ( x ∣ y 1 ) p ( x ∣ y 2 ) p(x|y_1,y_2)=\frac{p(x|y_1)p(x|y_2)}{p(x)}=\eta p(x|y_1)p(x|y_2) p(xy1,y2)=p(x)p(xy1)p(xy2)=ηp(xy1)p(xy2)

其中:

η = 1 p ( x ) \eta=\frac{1}{p(x)} η=p(x)1

如果先验 p ( x ) p(x) p(x)为均匀分布,那么 η \eta η也是一个常数。


高斯概率密度函数

定义

一维情况下,高斯概率密度函数表示为

p ( x ∣ μ , σ ) = 1 2 π σ 2 e x p ( − 1 2 ( x − μ ) 2 σ 2 ) p(x|\mu,\sigma)=\frac{1}{\sqrt{2\pi \sigma^2}}exp(-\frac{1}{2}\frac{(x-\mu)^2}{\sigma^2}) p(xμ,σ)=2πσ2 1exp(21σ2(xμ)2)

其中, μ \mu μ为均值, σ 2 \sigma^2 σ2为方差, σ \sigma σ为标准差。

多维变量的高斯分布是说,随机变量 x ∈ R N x\in R^N xRN,服从的分布 p ( x ∣ μ , Σ ) p(x|\mu,\Sigma) p(xμ,Σ)可以写为:

p ( x ∣ μ , Σ ) = 1 ( 2 π ) N d e t ( Σ ) e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) p(x|\mu,\Sigma)=\frac{1}{\sqrt{(2\pi)^Ndet(\Sigma)}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)) p(xμ,Σ)=(2π)Ndet(Σ) 1exp(21(xμ)TΣ1(xμ))

其中, μ ∈ R N \mu\in R^N μRN为均值, Σ ∈ R N ∗ N \Sigma\in R^{N*N} ΣRNN为协方差矩阵(对称正定矩阵),它们可以通过以下方式计算:

μ = E [ x ] = ∫ − ∞ ∞ x 1 ( 2 π ) N d e t ( Σ ) e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) d x \mu=E[x]=\int_{-\infty}^{\infty}x\frac{1}{\sqrt{(2\pi)^Ndet(\Sigma)}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu))dx μ=E[x]=x(2π)Ndet(Σ) 1exp(21(xμ)TΣ1(xμ))dx

以及:

Σ = E [ ( x − μ ) ( x − μ ) T ] = ∫ − ∞ ∞ ( x − μ ) ( x − μ ) T 1 ( 2 π ) N d e t ( Σ ) e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) d x \begin{aligned}\Sigma&=E[(x-\mu)(x-\mu)^T] \\ &= \int_{-\infty}^{\infty}(x-\mu)(x-\mu)^T\frac{1}{\sqrt{(2\pi)^Ndet(\Sigma)}}exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu))dx\end{aligned} Σ=E[(xμ)(xμ)T]=(xμ)(xμ)T(2π)Ndet(Σ) 1exp(21(xμ)TΣ1(xμ))dx

习惯上,正态分布(即高斯分布)记为:

x ∼ N ( μ , Σ ) x\sim N(\mu,\Sigma) xN(μ,Σ)

如果随机变量 x x x满足:

x ∼ N ( 0 , 1 ) x\sim N(0,1) xN(0,1)

其中, 1 1 1 N ∗ N N*N NN的单位矩阵,那么该随机变量服从标准正太分布。

联合高斯概率密度函数,分解与推断

假设有两个服从多元正态分布的变量 ( x , y ) (x,y) (x,y),可以写出它们的联合概率密度函数

p ( x , y ) = N ( [ μ x μ y ] , [ Σ x x Σ x y Σ y x Σ y y ] ) p(x,y)=N(\begin{bmatrix}\mu_x \\ \mu_y\end{bmatrix},\begin{bmatrix}\Sigma_{xx} & \Sigma_{xy} \\ \Sigma_{yx} & \Sigma_{yy}\end{bmatrix}) p(x,y)=N([μxμy],[ΣxxΣyxΣxyΣyy])

其中: Σ y x = Σ x y T \Sigma_{yx}=\Sigma_{xy}^T Σyx=ΣxyT

由于联合概率密度,总可以将其分解成两个因子的乘积(条件概率乘以边缘概率), p ( x , y ) = p ( x ∣ y ) p ( y ) p(x,y)=p(x|y)p(y) p(x,y)=p(xy)p(y)对于联合高斯概率密度,这两个因子也都是高斯分布

特别的,对于高斯分布,可以利用舒尔补详细地推演出分解的过程。所谓舒尔补,本质上就是高斯消元法的总结,可以参考舒尔补理论Schur Compliment。即:

[ Σ x x Σ x y Σ y x Σ y y ] = [ 1 Σ x y Σ y y − 1 0 1 ] [ Σ x x − Σ x y Σ y y − 1 0 0 Σ y y ] [ 1 0 Σ y y − 1 Σ y x 1 ] \begin{bmatrix}\Sigma_{xx} & \Sigma_{xy} \\ \Sigma_{yx} & \Sigma_{yy}\end{bmatrix} = \begin{bmatrix}1 & \Sigma_{xy}\Sigma_{yy}^{-1} \\ 0 & 1\end{bmatrix}\begin{bmatrix}\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1} & 0 \\ 0 & \Sigma_{yy}\end{bmatrix}\begin{bmatrix}1 & 0 \\ \Sigma_{yy}^{-1}\Sigma_{yx} & 1\end{bmatrix} [ΣxxΣyxΣxyΣyy]=[10ΣxyΣyy11][ΣxxΣxyΣyy100Σyy][1Σyy1Σyx01]

两边求逆:

[ Σ x x Σ x y Σ y x Σ y y ] − 1 = [ 1 0 − Σ y y − 1 Σ y x 1 ] [ ( Σ x x − Σ x y Σ y y − 1 ) − 1 0 0 Σ y y − 1 ] [ 1 − Σ x y Σ y y − 1 0 1 ] \begin{bmatrix}\Sigma_{xx} & \Sigma_{xy} \\ \Sigma_{yx} & \Sigma_{yy}\end{bmatrix}^{-1} = \begin{bmatrix}1 & 0 \\ -\Sigma_{yy}^{-1}\Sigma_{yx} & 1\end{bmatrix}\begin{bmatrix}(\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1})^{-1} & 0 \\ 0 & \Sigma_{yy}^{-1}\end{bmatrix}\begin{bmatrix}1 & -\Sigma_{xy}\Sigma_{yy}^{-1} \\ 0 & 1\end{bmatrix} [ΣxxΣyxΣxyΣyy]1=[1Σyy1Σyx01][(ΣxxΣxyΣyy1)100Σyy1][10ΣxyΣyy11]

看一下联合概率密度函数 p ( x , y ) p(x,y) p(x,y)的指数部分:

( [ x y ] − [ μ x μ y ] ) T [ Σ x x Σ x y Σ y x Σ y y ] − 1 ( [ x y ] − [ μ x μ y ] ) = 1 ( [ x y ] − [ μ x μ y ] ) T [ 1 0 − Σ y y − 1 Σ y x 1 ] [ ( Σ x x − Σ x y Σ y y − 1 ) − 1 0 0 Σ y y − 1 ] [ 1 − Σ x y Σ y y − 1 0 1 ] ( [ x y ] − [ μ x μ y ] ) = 2 ( [ x − μ x − Σ x y Σ y y − 1 ( y − μ y ) y − μ y ] T [ ( Σ x x − Σ x y Σ y y − 1 ) − 1 0 0 Σ y y − 1 ] [ x − μ x − Σ x y Σ y y − 1 ( y − μ y ) y − μ y ] ) = 3 ( x − μ x − Σ x y Σ y y − 1 ( y − μ y ) ) T ( Σ x x − Σ x y Σ y y − 1 Σ y x ) − 1 ( x − μ x − Σ x y Σ y y − 1 ( y − μ y ) ) + ( y − μ y ) T Σ y y − 1 ( y − μ y ) \begin{aligned}&(\begin{bmatrix}x \\ y\end{bmatrix}-\begin{bmatrix}\mu_x \\ \mu_y\end{bmatrix})^T\begin{bmatrix}\Sigma_{xx} & \Sigma_{xy} \\ \Sigma_{yx} & \Sigma_{yy}\end{bmatrix}^{-1}(\begin{bmatrix}x \\ y\end{bmatrix}-\begin{bmatrix}\mu_x \\ \mu_y\end{bmatrix}) \\ \stackrel{1}=&(\begin{bmatrix}x \\ y\end{bmatrix}-\begin{bmatrix}\mu_x \\ \mu_y\end{bmatrix})^T\begin{bmatrix}1 & 0 \\ -\Sigma_{yy}^{-1}\Sigma_{yx} & 1\end{bmatrix}\begin{bmatrix}(\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1})^{-1} & 0 \\ 0 & \Sigma_{yy}^{-1}\end{bmatrix}\begin{bmatrix}1 & -\Sigma_{xy}\Sigma_{yy}^{-1} \\ 0 & 1\end{bmatrix}(\begin{bmatrix}x \\ y\end{bmatrix}-\begin{bmatrix}\mu_x \\ \mu_y\end{bmatrix}) \\ \stackrel{2}= & (\begin{bmatrix}x-\mu_x-\Sigma_{xy}\Sigma_{yy}^{-1}(y-\mu_y) \\ y-\mu_y\end{bmatrix}^T\begin{bmatrix}(\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1})^{-1} & 0 \\ 0 & \Sigma_{yy}^{-1}\end{bmatrix}\begin{bmatrix}x-\mu_x-\Sigma_{xy}\Sigma_{yy}^{-1}(y-\mu_y) \\ y-\mu_y\end{bmatrix}) \\ \stackrel{3}= & (x-\mu_x-\Sigma_{xy}\Sigma_{yy}^{-1}(y-\mu_y))^T(\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1}\Sigma_{yx})^{-1}(x-\mu_x-\Sigma_{xy}\Sigma_{yy}^{-1}(y-\mu_y)) + (y-\mu_y)^T\Sigma_{yy}^{-1}(y-\mu_y)\end{aligned} =1=2=3([xy][μxμy])T[ΣxxΣyxΣxyΣyy]1([xy][μxμy])([xy][μxμy])T[1Σyy1Σyx01][(ΣxxΣxyΣyy1)100Σyy1][10ΣxyΣyy11]([xy][μxμy])([xμxΣxyΣyy1(yμy)yμy]T[(ΣxxΣxyΣyy1)100Σyy1][xμxΣxyΣyy1(yμy)yμy])(xμxΣxyΣyy1(yμy))T(ΣxxΣxyΣyy1Σyx)1(xμxΣxyΣyy1(yμy))+(yμy)TΣyy1(yμy)

其中,1处带入协方差矩阵的舒尔补的逆,2处两边的矩阵乘法进行结合律运算,3处对整个公式进行相乘。

由于指数相加,反映到幂运算上,就是相乘。并且联合概率密度分解成条件概率乘以边缘概率:

p ( x , y ) = p ( x ∣ y ) p ( y ) p(x,y)=p(x|y)p(y) p(x,y)=p(xy)p(y)

可以通过 p ( x , y ) p(x,y) p(x,y)的指数部分,可以得到:
p ( x ∣ y ) = N ( μ x + Σ x y Σ y y − 1 ( y − μ y ) , Σ x x − Σ x y Σ y y − 1 Σ y x ) p(x|y)=N(\mu_x+\Sigma_{xy}\Sigma_{yy}^{-1}(y-\mu_y),\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1}\Sigma_{yx}) p(xy)=N(μx+ΣxyΣyy1(yμy),ΣxxΣxyΣyy1Σyx)

p ( y ) = N ( μ y , Σ y y ) p(y)=N(\mu_y,\Sigma_{yy}) p(y)=N(μy,Σyy)

可以发现:因子 p ( x ∣ y ) p(x|y) p(xy) p ( y ) p(y) p(y)都是高斯概率密度函数。这实际上就是高斯推断

统计独立性,不相关性

高斯概率密度函数的情况下,统计独立性和不相关性是等价的,即统计独立的两个高斯变量是不相关的(对于一般的概率密度函数也成立),不相关的两个高斯变量也是统计独立的(并不是所有的概率密度函数都成立)。通过高斯推断的结论就能够证明这一点。

假设 x x x y y y是统计独立的高斯概率密度函数,即 p ( x , y ) = p ( x ) p ( y ) p(x,y)=p(x)p(y) p(x,y)=p(x)p(y),那么 p ( x ∣ y ) = p ( x ) = N ( μ x , Σ x x ) p(x|y)=p(x)=N(\mu_x,\Sigma_{xx}) p(xy)=p(x)=N(μx,Σxx)。那么:

Σ x y Σ y y − 1 ( y − μ y ) = 0 \Sigma_{xy}\Sigma_{yy}^{-1}(y-\mu_y)=0 ΣxyΣyy1(yμy)=0

Σ x y Σ y y − 1 Σ y x = 0 \Sigma_{xy}\Sigma_{yy}^{-1}\Sigma_{yx}=0 ΣxyΣyy1Σyx=0

可以得到 Σ x y = 0 \Sigma_{xy}=0 Σxy=0,既然:

Σ x y = E [ ( x − μ x ) ( y − μ y ) T ] = E [ x y T ] − E [ x ] E [ y ] T \Sigma_{xy}=E[(x-\mu_x)(y-\mu_y)^T]=E[xy^T]-E[x]E[y]^T Σxy=E[(xμx)(yμy)T]=E[xyT]E[x]E[y]T

那么就可以得到不相关成立的条件:

E [ x y T ] = E [ x ] E [ y ] T E[xy^T]=E[x]E[y]^T E[xyT]=E[x]E[y]T

假设 x x x y y y是不相关的高斯概率密度函数,那么 Σ x y = 0 \Sigma_{xy}=0 Σxy=0,于是它们是统计独立的。

高斯分布随机变量的线性变换

假设高斯随机变量 x ∈ R N ∼ N ( μ x , Σ x x ) x\in R^N \sim N(\mu_x,\Sigma_{xx}) xRNN(μx,Σxx),与 x x x线性相关的随机变量 y ∈ R M = G x y\in R^M=Gx yRM=Gx。其中 G ∈ R M ∗ N G\in R^{M*N} GRMN是一个常量矩阵。现在需要研究 y y y的统计特性,最简单的方法就是直接计算期望和方差:

μ y = E [ y ] = E [ G x ] = G E [ x ] = G μ x \mu_y=E[y]=E[Gx]=GE[x]=G\mu_x μy=E[y]=E[Gx]=GE[x]=Gμx

Σ y = E [ ( y − μ y ) ( y − μ y ) T ] = E [ ( G ( x − μ x ) ) ( G ( x − μ x ) ) T ] = G E [ ( x − μ x ) ( x − μ x ) T ] G T = G Σ x x G T \begin{aligned}\Sigma_y&=E[(y-\mu_y)(y-\mu_y)^T]\\&=E[(G(x-\mu_x))(G(x-\mu_x))^T]\\&=GE[(x-\mu_x)(x-\mu_x)^T]G^T\\&=G\Sigma_{xx}G^T\end{aligned} Σy=E[(yμy)(yμy)T]=E[(G(xμx))(G(xμx))T]=GE[(xμx)(xμx)T]GT=GΣxxGT

因此, y ∼ N ( μ y , Σ y y ) = N ( G μ x , G Σ x x G T ) y\sim N(\mu_y,\Sigma_{yy})=N(G\mu_x,G\Sigma_{xx}G^T) yN(μy,Σyy)=N(Gμx,GΣxxGT)

高斯概率密度函数的归一化积

现在来讨论高斯概率密度函数中一个有用的性质, K K K高斯概率密度函数的归一化积仍然是高斯概率密度函数

e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) = η ∏ k = 1 K e x p ( − 1 2 ( x − μ k ) T Σ k − 1 ( x − μ k ) ) exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu))=\eta \prod_{k=1}^Kexp(-\frac{1}{2}(x-\mu_k)^T\Sigma_k^{-1}(x-\mu_k)) exp(21(xμ)TΣ1(xμ))=ηk=1Kexp(21(xμk)TΣk1(xμk))

其中,

Σ − 1 = ∑ k = 1 K Σ k − 1 \Sigma^{-1}=\sum_{k=1}^K\Sigma_k^{-1} Σ1=k=1KΣk1

Σ − 1 μ = ∑ k = 1 K Σ k − 1 μ k \Sigma^{-1}\mu=\sum_{k=1}^K\Sigma_k^{-1}\mu_k Σ1μ=k=1KΣk1μk

其中, η \eta η是一个归一化常量,用于确保概率密度函数满足全概率公理。当需要将多个高斯估计融合在一起的时候,就需要使用到高斯归一化乘积

对于高斯分布随机变量的线性变换,也有类似的结果:

e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) = η ∏ k = 1 K e x p ( − 1 2 ( G k x − μ k ) T Σ k − 1 ( G k x − μ k ) ) exp(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu))=\eta \prod_{k=1}^Kexp(-\frac{1}{2}(G_kx-\mu_k)^T\Sigma_k^{-1}(G_kx-\mu_k)) exp(21(xμ)TΣ1(xμ))=ηk=1Kexp(21(Gkxμk)TΣk1(Gkxμk))

其中,

Σ − 1 = ∑ k = 1 K G k T Σ k − 1 G k \Sigma^{-1}=\sum_{k=1}^KG_k^T\Sigma_k^{-1}G_k Σ1=k=1KGkTΣk1Gk

Σ − 1 μ = ∑ k = 1 K G k T Σ k − 1 μ k \Sigma^{-1}\mu=\sum_{k=1}^KG_k^T\Sigma_k^{-1}\mu_k Σ1μ=k=1KGkTΣk1μk

Sherman-Morrison-Woodbury等式

Sherman-Morrison-Woodbury恒等式,有时也称为矩阵求逆引理,可以缩写成SMW恒等式

对于可逆矩阵, 可以将它分解成一下三角一对角一上三角(lower-diagonal-upper,LDU)形式或者一上三角一对角一下三角(upper-diagonal-lower,UDL)形式,如下所示:

[ A − 1 B C D ] = [ 1 0 C A 1 ] [ A − 1 0 0 D + C A B ] [ 1 − A B 0 1 ] ( L D U ) = [ 1 − B D − 1 0 1 ] [ A − 1 + B D − 1 C 0 0 D ] [ 1 0 D − 1 C 1 ] ( U D L ) \begin{aligned}&\begin{bmatrix}A^{-1}&B\\C&D\end{bmatrix}\\=&\begin{bmatrix}1&0\\CA&1\end{bmatrix}\begin{bmatrix}A^{-1}&0\\0&D+CAB\end{bmatrix}\begin{bmatrix}1&-AB\\0&1\end{bmatrix} & (LDU)\\=&\begin{bmatrix}1&-BD^{-1}\\0&1\end{bmatrix}\begin{bmatrix}A^{-1}+BD^{-1}C&0\\0&D\end{bmatrix}\begin{bmatrix}1&0\\D^{-1}C&1\end{bmatrix}&(UDL)\end{aligned} ==[A1CBD][1CA01][A100D+CAB][10AB1][10BD11][A1+BD1C00D][1D1C01](LDU)(UDL)

接着对等式两侧求逆:

对于LDU,有:

[ A − 1 B C D ] − 1 = [ 1 A B 0 1 ] [ A 0 0 ( D + C A B ) − 1 ] [ 1 0 − C A 1 ] = [ A − A B ( D + C A B ) − 1 C A A B ( D + C A B ) − 1 − ( D + C A B ) − 1 C A ( D + C A B ) − 1 ] \begin{aligned}\begin{bmatrix}A^{-1}&B\\C&D\end{bmatrix}^{-1}&=\begin{bmatrix}1&AB\\0&1\end{bmatrix}\begin{bmatrix}A&0\\0&(D+CAB)^{-1}\end{bmatrix}\begin{bmatrix}1&0\\-CA&1\end{bmatrix}\\&=\begin{bmatrix}A-AB(D+CAB)^{-1}CA&AB(D+CAB)^{-1}\\-(D+CAB)^{-1}CA&(D+CAB)^{-1}\end{bmatrix}\end{aligned} [A1CBD]1=[10AB1][A00(D+CAB)1][1CA01]=[AAB(D+CAB)1CA(D+CAB)1CAAB(D+CAB)1(D+CAB)1]

对于UDL,有:

[ A − 1 B C D ] − 1 = [ 1 0 − D − 1 C 1 ] [ ( A − 1 + B D − 1 C ) − 1 0 0 D − 1 ] [ 1 B D − 1 0 1 ] = [ ( A − 1 + B D − 1 C ) − 1 ( A − 1 + B D − 1 C ) − 1 B D − 1 − D − 1 C ( A − 1 + B D − 1 C ) − 1 D − 1 − D − 1 C ( A − 1 + B D − 1 C ) − 1 B D − 1 ] \begin{aligned}\begin{bmatrix}A^{-1}&B\\C&D\end{bmatrix}^{-1}&=\begin{bmatrix}1&0\\-D^{-1}C&1\end{bmatrix}\begin{bmatrix}(A^{-1}+BD^{-1}C)^{-1}&0\\0&D^{-1}\end{bmatrix}\begin{bmatrix}1&BD^{-1}\\0&1\end{bmatrix}\\&=\begin{bmatrix}(A^{-1}+BD^{-1}C)^{-1}&(A^{-1}+BD^{-1}C)^{-1}BD^{-1}\\-D^{-1}C(A^{-1}+BD^{-1}C)^{-1}&D^{-1}-D^{-1}C(A^{-1}+BD^{-1}C)^{-1}BD^{-1}\end{bmatrix}\end{aligned} [A1CBD]1=[1D1C01][(A1+BD1C)100D1][10BD11]=[(A1+BD1C)1D1C(A1+BD1C)1(A1+BD1C)1BD1D1D1C(A1+BD1C)1BD1]

这两者计算出来的结果应该是相等的,于是有:

A − A B ( D + C A B ) − 1 C A = ( A − 1 + B D − 1 C ) − 1 A-AB(D+CAB)^{-1}CA=(A^{-1}+BD^{-1}C)^{-1} AAB(D+CAB)1CA=(A1+BD1C)1

A B ( D + C A B ) − 1 = ( A − 1 + B D − 1 C ) − 1 B D − 1 AB(D+CAB)^{-1}=(A^{-1}+BD^{-1}C)^{-1}BD^{-1} AB(D+CAB)1=(A1+BD1C)1BD1

− ( D + C A B ) − 1 C A = − D − 1 C ( A − 1 + B D − 1 C ) − 1 -(D+CAB)^{-1}CA=-D^{-1}C(A^{-1}+BD^{-1}C)^{-1} (D+CAB)1CA=D1C(A1+BD1C)1

( D + C A B ) − 1 = D − 1 − D − 1 C ( A − 1 + B D − 1 C ) − 1 B D − 1 (D+CAB)^{-1}=D^{-1}-D^{-1}C(A^{-1}+BD^{-1}C)^{-1}BD^{-1} (D+CAB)1=D1D1C(A1+BD1C)1BD1

高斯分布随机变量的非线性变换

接下来研究高斯分布经过一个随机非线性变换之后的情况,即计算:

p ( y ) = ∫ − ∞ ∞ p ( y ∣ x ) p ( x ) d x p(y)=\int_{-\infty}^{\infty}p(y|x)p(x)dx p(y)=p(yx)p(x)dx

其中,

p ( y ∣ x ) ∼ N ( g ( x ) , R ) p(y|x)\sim N(g(x),R) p(yx)N(g(x),R)

p ( x ) ∼ N ( μ x , Σ x x ) p(x)\sim N(\mu_x,\Sigma_{xx}) p(x)N(μx,Σxx)

这里的 g ( ) g() g()是一个非线性映射,它受到均值为0,协方差为 R R R高斯噪声的干扰。高斯分布传递进非线性变换中是很有必要的,当需要对传感器进行建模时,这类随机非线性映射就很适合

标量情况下的非线性映射

假设已知 x ∈ R 1 ∼ N ( 0 , σ 2 ) x\in R^1\sim N(0,\sigma^2) xR1N(0,σ2),且存在非线性变换 y = e x p ( x ) y=exp(x) y=exp(x),那么 y y y的分布还是高斯分布么?

根据 x x x y y y的转换关系:

x = l n ( y ) x=ln(y) x=ln(y)

d x = 1 y d y dx=\frac{1}{y}dy dx=y1dy

根据全概率公式:

1 = ∫ − ∞ ∞ p ( x ) d x = ∫ − ∞ ∞ 1 2 π σ 2 e x p ( − x 2 2 σ 2 ) d x = ∫ 0 ∞ 1 2 π σ 2 e x p ( − ( l n ( y ) ) 2 2 σ 2 ) 1 y d y = ∫ 0 ∞ p ( y ) d y \begin{aligned}1&=\int_{-\infty}^{\infty}p(x)dx\\&=\int_{-\infty}^{\infty}\frac{1}{\sqrt{2\pi \sigma^2}}exp(-\frac{x^2}{2\sigma^2})dx\\&=\int_{0}^{\infty}\frac{1}{\sqrt{2\pi \sigma^2}}exp(-\frac{(ln(y))^2}{2\sigma^2})\frac{1}{y}dy\\&=\int_0^{\infty}p(y)dy\end{aligned} 1=p(x)dx=2πσ2 1exp(2σ2x2)dx=02πσ2 1exp(2σ2(ln(y))2)y1dy=0p(y)dy

即:

p ( y ) = 1 2 π σ 2 e x p ( − ( l n ( y ) ) 2 2 σ 2 ) 1 y p(y)=\frac{1}{\sqrt{2\pi \sigma^2}}exp(-\frac{(ln(y))^2}{2\sigma^2})\frac{1}{y} p(y)=2πσ2 1exp(2σ2(ln(y))2)y1

可以指定 σ 2 \sigma^2 σ2的值,对 p ( y ) p(y) p(y)进行绘制。可以看出,经过非线性变换之后, p ( y ) p(y) p(y)不再服从高斯分布。

一般情况下的非线性处理

对非线性变换进行线性化后,得到:

g ( x ) ≈ μ y + G ( x − μ x ) g(x)\approx \mu_y+G(x-\mu_x) g(x)μy+G(xμx)

其中:

μ y = g ( μ x ) \mu_y=g(\mu_x) μy=g(μx)

G = ∂ g ( x ) ∂ x ∣ x = μ x G=\frac{\partial g(x)}{\partial x}|_{x=\mu_x} G=xg(x)x=μx

其中, G G G g ( ) g() g()关于 x x x的雅可比矩阵。在线性化后,就可以得到非线性问题的线性近似解,当这个映射的非线性不强的时候,该近似解才成立

对于之前提到的 p ( y ) = ∫ − ∞ ∞ p ( y ∣ x ) p ( x ) d x p(y)=\int_{-\infty}^{\infty}p(y|x)p(x)dx p(y)=p(yx)p(x)dx,及 p ( y ∣ x ) p(y|x) p(yx) p ( x ) p(x) p(x)的分布形式,可以得到:

p ( y ) = ∫ − ∞ ∞ p ( y ∣ x ) p ( x ) d x = η ∫ − ∞ ∞ e x p ( − 1 2 ( y − g ( x ) ) T R − 1 ( y − g ( x ) ) ) × e x p ( − 1 2 ( x − μ x ) T Σ x x − 1 ( x − μ x ) ) d x = η ∫ − ∞ ∞ e x p ( − 1 2 ( y − ( μ y + G ( x − μ x ) ) ) T R − 1 ( y − ( μ y + G ( x − μ x ) ) ) ) × e x p ( − 1 2 ( x − μ x ) T Σ x x − 1 ( x − μ x ) ) d x = η e x p ( − 1 2 ( y − μ y ) T R − 1 ( y − μ y ) ) × ∫ − ∞ ∞ e x p ( − 1 2 ( x − μ x ) T ( Σ x x − 1 + G T R − 1 G ) ( x − μ x ) ) × e x p ( − 1 2 ( y − μ y ) T R − 1 G ( x − μ x ) ) d x \begin{aligned}p(y)=&\int_{-\infty}^{\infty}p(y|x)p(x)dx\\ =& \eta \int_{-\infty}^{\infty}exp(-\frac{1}{2}(y-g(x))^TR^{-1}(y-g(x)))\times exp(-\frac{1}{2}(x-\mu_x)^T\Sigma_{xx}^{-1}(x-\mu_x))dx \\ =& \eta \int_{-\infty}^{\infty}exp(-\frac{1}{2}(y-(\mu_y+G(x-\mu_x)))^TR^{-1}(y-(\mu_y+G(x-\mu_x))))\times exp(-\frac{1}{2}(x-\mu_x)^T\Sigma_{xx}^{-1}(x-\mu_x))dx \\ =&\eta exp(-\frac{1}{2}(y-\mu_y)^TR^{-1}(y-\mu_y))\times \\ & \int_{-\infty}^{\infty}exp(-\frac{1}{2}(x-\mu_x)^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)(x-\mu_x))\times exp(-\frac{1}{2}(y-\mu_y)^TR^{-1}G(x-\mu_x))dx\end{aligned} p(y)====p(yx)p(x)dxηexp(21(yg(x))TR1(yg(x)))×exp(21(xμx)TΣxx1(xμx))dxηexp(21(y(μy+G(xμx)))TR1(y(μy+G(xμx))))×exp(21(xμx)TΣxx1(xμx))dxηexp(21(yμy)TR1(yμy))×exp(21(xμx)T(Σxx1+GTR1G)(xμx))×exp(21(yμy)TR1G(xμx))dx

其中, η \eta η是归一化常量。 e x p ( − 1 2 ( y − μ y ) T R − 1 ( y − μ y ) ) exp(-\frac{1}{2}(y-\mu_y)^TR^{-1}(y-\mu_y)) exp(21(yμy)TR1(yμy))只与 y y y相关,可以纳入 η \eta η中。定义 F F F,使得:

F T ( Σ x x − 1 + G T R − 1 G ) = R − 1 G F^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)=R^{-1}G FT(Σxx1+GTR1G)=R1G

对于积分内的乘积,可以补全里面的平方项(此处类似于 a 2 − 2 a b = ( a − b ) 2 − b 2 a^2-2ab=(a-b)^2-b^2 a22ab=(ab)2b2):

e x p ( − 1 2 ( x − μ x ) T ( Σ x x − 1 + G T R − 1 G ) ( x − μ x ) ) × e x p ( − 1 2 ( y − μ y ) T R − 1 G ( x − μ x ) ) = e x p ( − 1 2 [ ( x − μ x ) T ( Σ x x − 1 + G T R − 1 G ) ( x − μ x ) ) − ( y − μ y ) T R − 1 G ( x − μ x ) ] ) = e x p ( − 1 2 [ ( x − μ x ) T ( Σ x x − 1 + G T R − 1 G ) ( x − μ x ) ) − ( y − μ y ) T F T ( Σ x x − 1 + G T R − 1 G ) ( x − μ x ) ] ) = e x p ( − 1 2 ( ( x − μ x ) − F ( y − μ y ) ) T ( Σ x x − 1 + G T R − 1 G ) ( ( x − μ x ) − F ( y − μ y ) ) ) × e x p ( − 1 2 ( y − μ y ) T F T ( Σ x x − 1 + G T R − 1 G ) F ( y − μ y ) ) \begin{aligned}&exp(-\frac{1}{2}(x-\mu_x)^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)(x-\mu_x))\times exp(-\frac{1}{2}(y-\mu_y)^TR^{-1}G(x-\mu_x))\\ = & exp(-\frac{1}{2}[(x-\mu_x)^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)(x-\mu_x)) -(y-\mu_y)^TR^{-1}G(x-\mu_x)]) \\ = & exp(-\frac{1}{2}[(x-\mu_x)^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)(x-\mu_x)) -(y-\mu_y)^TF^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)(x-\mu_x)]) \\ = & exp(-\frac{1}{2}((x-\mu_x)-F(y-\mu_y))^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)((x-\mu_x)-F(y-\mu_y)))\times \\&exp(-\frac{1}{2}(y-\mu_y)^TF^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)F(y-\mu_y))\end{aligned} ===exp(21(xμx)T(Σxx1+GTR1G)(xμx))×exp(21(yμy)TR1G(xμx))exp(21[(xμx)T(Σxx1+GTR1G)(xμx))(yμy)TR1G(xμx)])exp(21[(xμx)T(Σxx1+GTR1G)(xμx))(yμy)TFT(Σxx1+GTR1G)(xμx)])exp(21((xμx)F(yμy))T(Σxx1+GTR1G)((xμx)F(yμy)))×exp(21(yμy)TFT(Σxx1+GTR1G)F(yμy))

其中,第二个因子与 x x x无关,又可以纳入 η \eta η中。最终剩下的就是 x x x高斯分布:

p ( y ) = η e x p ( − 1 2 ( ( x − μ x ) − F ( y − μ y ) ) T ( Σ x x − 1 + G T R − 1 G ) ( ( x − μ x ) − F ( y − μ y ) ) ) = η e x p ( − 1 2 ( y − μ y ) T ( R − 1 − R − 1 G ( G T R − 1 G + Σ x x − 1 ) − 1 G T R − 1 ) ( y − μ y ) ) \begin{aligned}p(y) &=\eta exp(-\frac{1}{2}((x-\mu_x)-F(y-\mu_y))^T(\Sigma_{xx}^{-1}+G^TR^{-1}G)((x-\mu_x)-F(y-\mu_y))) \\ &= \eta exp(-\frac{1}{2}(y-\mu_y)^T(R^{-1}-R^{-1}G(G^TR^{-1}G+\Sigma_{xx}^{-1})^{-1}G^TR^{-1})(y-\mu_y))\end{aligned} p(y)=ηexp(21((xμx)F(yμy))T(Σxx1+GTR1G)((xμx)F(yμy)))=ηexp(21(yμy)T(R1R1G(GTR1G+Σxx1)1GTR1)(yμy))

其中,根据SMW公式:

R − 1 − R − 1 G ( G T R − 1 G + Σ x x − 1 ) − 1 G T R − 1 = ( R + G Σ x x G T ) − 1 R^{-1}-R^{-1}G(G^TR^{-1}G+\Sigma_{xx}^{-1})^{-1}G^TR^{-1}=(R+G\Sigma_{xx}G^T)^{-1} R1R1G(GTR1G+Σxx1)1GTR1=(R+GΣxxGT)1

因此:

p ( y ) = η e x p ( − 1 2 ( y − μ y ) T ( R + G Σ x x G T ) − 1 ( y − μ y ) ) p(y)=\eta exp(-\frac{1}{2}(y-\mu_y)^T(R+G\Sigma_{xx}G^T)^{-1}(y-\mu_y)) p(y)=ηexp(21(yμy)T(R+GΣxxGT)1(yμy))

即:

y ∼ N ( μ y , Σ y y ) = N ( g ( μ x ) , R + G Σ x x G T ) y\sim N(\mu_y,\Sigma_{yy})=N(g(\mu_x),R+G\Sigma_{xx}G^T) yN(μy,Σyy)=N(g(μx),R+GΣxxGT)

该式即为经典的离散时间(扩展)卡尔曼滤波的更新步骤。


http://www.niftyadmin.cn/n/5442384.html

相关文章

Github基本功能和使用技巧

基础功能 创建仓库(Repository):在GitHub上创建一个新的仓库,可以通过点击页面右上角的“New”按钮开始。选择仓库的名称、描述和许可证等信息,并选择是否将仓库设置为公开或私有。 克隆仓库(Clone&#x…

机器学习测试(入门与实战)--Matplotlib

import numpy as np import pandas as pd import matplotlib.pyplot as pltxnp.linspace(0,10,1000) ynp.sin(x) znp.cos(x) figplt.figure(figsize(8,4)) #指定图片大小plt.title(ces) plt.xlabel(x轴) plt.ylabel(y轴) plt.xlim(-2.5,12.5) plt.ylim(-2,3) sin_lineplt.plot…

vm-workstation win10 网络的设置

设置宿主机网络(win10) 1,在 win10宿主机上为虚拟机设置192.168.6.0/24 的网段 VM-workstation 网络设置 2,vm-workstation 软件设置

Python基础算法解析:支持向量机(SVM)

支持向量机(Support Vector Machine,SVM)是一种用于分类和回归分析的机器学习算法,它通过在特征空间中找到一个最优的超平面来进行分类。本文将详细介绍支持向量机的原理、实现步骤以及如何使用Python进行编程实践。 什么是支持向…

使用docker搭建dockge

Dockge是一个Docker管理界面,它允许用户以图形界面的方式管理Docker容器和镜像。我们将从Docker Compose配置开始,正如您提供的示例那样,然后再介绍如何使用Docker CLI完成同样的任务。 使用Docker Compose搭建Dockge 首先,我们…

【FAQ】BSV区块链代码库常见问题解答

​​发表时间:2024年2月27日 BSV区块链协会上线了JavaScript和TypeScript SDK(即“标准开发工具包”)。TypeScript SDK旨在为开发者提供新版统一核心代码库,让开发者可以在BSV区块链上便捷地进行开发,尤其是开发那些可…

鸿蒙Harmony应用开发—ArkTS-属性动画

组件的某些通用属性变化时,可以通过属性动画实现渐变过渡效果,提升用户体验。支持的属性包括width、height、backgroundColor、opacity、scale、rotate、translate等。布局类改变宽高的动画,内容都是直接到终点状态,例如文字、can…

LeetCode-60题:排列序列解法二(原创)

【题目描述】 给出集合 [1,2,3,...,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n 3 时, 所有排列如下:"123" 、"132" 、"213" 、"231"、"312"、…