令观测数据模型由
x
k
=
A
s
k
,
k
=
1
,
2
,
…
,
N
x_k=As_k, k=1,2,…,N
xk=Ask,k=1,2,…,N
给出,其中
x
k
x_k
xk和
s
k
s_k
sk分别是
k
k
k时刻的
m
m
m维观测向量和
n
n
n维源信号向量,
A
A
A是表示信号线性混合状况的矩阵,称为混合矩阵。
现在,希望自适应更新权矩阵
W
k
W_k
Wk,使得
y
k
=
W
k
x
k
y_k=W_kx_k
yk=Wkxk
是信号向量
s
k
s_k
sk的估计。这个问题称为盲信号分离问题。
盲信号分离有三种典型的最小均方(LMS)型自适应算法:
自然梯度算法,EASI算法和迭代求逆算法。
这三类算法更新权矩阵的公式可以统一写作
W
k
+
1
=
W
k
+
η
k
G
(
y
k
)
W
k
(1)
W_{k+1}=W_k+\eta_kG(y_k)W_k \tag{1}
Wk+1=Wk+ηkG(yk)Wk(1)
不同的算法体现在非线性函数
G
(
y
k
)
G(y_k)
G(yk)的选择不同。式中,
n
k
n_k
nk称为学习步长或者学习速率,它的选择决定自适应算法的收敛速率和信号跟踪性能。
当学习速率
η
k
\eta_k
ηk固定时,要兼顾收敛速率和信号恢复质量是困难的。因此,
η
k
\eta_k
ηk通常取时变函数。最简单的做法是取时间递减函数,更好的选择是采用自适应的学习速率,但它们都没有和信号的分离状态或者相依性直接挂钩,效果有限。为了克服这缺陷,提出了分阶段学习的盲信号分离算法:
W
k
+
1
=
W
k
+
Λ
k
⊙
G
(
y
k
)
W
k
(2)
W_{k+1}=W_k+\Lambda_k \odot G(y_k)W_k \tag{2}
Wk+1=Wk+Λk⊙G(yk)Wk(2)
即使用学习速率矩阵
A
k
A_k
Ak取代一维的学习速率
η
k
\eta_k
ηk。式中,
A
⊙
B
A \odot B
A⊙B表示矩阵
A
A
A和
B
B
B的Hadamard积。
整个信号分离过程分为三个阶段,每个阶段使用的学习速率矩阵不同:
(1)初始阶段:为加速混合信号的分离,对所有信号分量采用大的学习速率
η
k
\eta_k
ηk。此时,学习速率矩阵取
Λ
k
=
η
k
I
\Lambda_k=\eta_kI
Λk=ηkI,(2)式的盲信号分离算法取(1)式的形式。
(2)捕捉阶段:为了捕捉到所有的信号分量,并考虑到有的信号可能已被分离或者被部分分离,因此对所有信号分量采用相同学习速率不再是最优。为了在跟踪已分离信号的同时,加速捕捉未分离的信号,宜对不同的信号采用不同的学习速率:根据分离的程度(其测度为不同信号之间的二阶和高阶相关系数),分离程度越好的信号使用越小的学习速率;反之,分离程度越差的信号使用越大的学习速率。具体而言,此阶段取学习速率矩阵KaTeX parse error: Undefined control sequence: \Lambbda at position 1: \̲L̲a̲m̲b̲b̲d̲a̲_k=D_k为对角矩阵,对角元素对应为不同信号分量的学习速率。此时,盲信号分离算法式简化为
W
k
+
1
=
W
k
+
D
k
G
(
y
k
)
W
k
(3)
W_{k+1}=W_k+D_kG(y_k)W_k \tag{3}
Wk+1=Wk+DkG(yk)Wk(3)
因为
D
k
⊙
G
(
y
k
)
=
D
k
G
(
y
k
)
D_k \odot G(y_k)=D_kG(y_k)
Dk⊙G(yk)=DkG(yk)。
(3)跟踪阶段:一旦捕捉到所有的信号分量,信号分离便进入跟踪阶段。在本阶段,学习速率矩阵
Λ
k
\Lambda_k
Λk的各个元素取小的值,盲信号分离算法取(2)式的形式。
矩阵与向量之间存在相互转换的函数。
定义
一个
m
n
×
1
mn\times 1
mn×1向量
a
=
[
a
1
,
a
2
,
…
,
a
m
n
]
T
a=[a_1,a_2,…,a_{mn}]^T
a=[a1,a2,…,amn]T的矩阵化函数
u
n
v
e
c
m
,
m
unvec_{m,m}
unvecm,m是一个将
m
n
mn
mn个元素的列向量转化为
m
×
n
m\times n
m×n矩阵的算子,即
u
n
v
e
c
m
,
n
(
a
)
=
A
m
×
n
=
[
a
1
a
m
+
1
⋯
a
m
(
n
−
1
)
+
1
a
2
a
m
+
2
⋯
a
m
(
n
−
1
)
+
2
⋮
⋮
⋮
a
m
a
2
m
⋯
a
m
n
]
unvec_{m,n}(a)=A_{m\times n}=
相反,若
A
=
[
a
i
j
]
A=[a_{ij}]
A=[aij]是一个
m
×
n
m\times n
m×n矩阵,则
A
A
A的向量化函数
v
e
c
(
A
)
vec(A)
vec(A)是一个
m
n
×
1
mn\times 1
mn×1向量,其元素是
A
A
A的元素的字典式排序,即
[
a
11
⋮
a
m
1
⋮
a
1
n
⋮
a
m
n
]
矩阵元素的字典式排序也称按列堆栈。
根据定义,矩阵化算子和向量化算子有以下关系:
u
n
v
e
c
m
,
n
(
a
)
=
A
m
×
n
⇒
v
e
c
(
A
m
×
n
)
=
a
unvec_{m,n}(a)=A_{m\times n}\Rightarrow vec(A_{m\times n})=a
unvecm,n(a)=Am×n⇒vec(Am×n)=a
矩阵也可以按行堆栈为行向量,称为矩阵的行向量化,用符号
r
v
e
c
(
A
)
rvec(A)
rvec(A)表示,定义为
r
v
e
c
(
A
)
=
[
a
11
,
…
,
a
1
n
,
.
.
.
,
a
m
1
,
…
,
a
m
n
rvec(A)=[a_{11},…,a_{1n},...,a_{m1},…,a_{mn}
rvec(A)=[a11,…,a1n,...,am1,…,amn
注意,矩阵的向量化结果为列向量,行向量化结果为行向量。显然,矩阵的向量化和行向量化之间存在以下关系;
r
v
c
c
(
A
)
=
(
v
e
c
(
A
T
)
)
T
,
v
e
c
(
A
T
)
=
(
r
v
e
c
(
A
)
)
T
rvcc(A)=(vec(A^T))^T,vec(A^T)=(rvec(A))^T
rvcc(A)=(vec(AT))T,vec(AT)=(rvec(A))T
对一幅图像进行采样,采样数据组成一矩阵。为了传送图像信号,通常先按行扫描,然后将各行数据串接起来。因此,这是一种典型的行向量化。
根据定义,容易证明矩阵的向量化算子vec与迹之间有以下关系:
t
r
(
A
T
B
)
=
(
v
e
c
(
A
)
)
T
v
e
c
(
B
)
tr(A^TB)=(vec(A))^Tvec(B)
tr(ATB)=(vec(A))Tvec(B)
m
×
n
m\times n
m×n矩阵
A
A
A和
B
B
B的Hadamard积的向量化函数为
v
e
c
(
A
⊙
B
)
=
v
e
c
(
A
)
⊙
v
e
c
(
B
)
vec(A\odot B)=vec(A)\odot vec(B)
vec(A⊙B)=vec(A)⊙vec(B)
v
e
c
(
A
⊙
B
)
=
d
i
a
g
(
v
e
c
(
A
)
)
v
e
c
(
B
)
=
d
i
a
g
(
v
e
c
(
B
)
)
v
e
c
(
A
)
vec(A\odot B)=diag(vec(A))vec(B)=diag(vec(B))vec(A)
vec(A⊙B)=diag(vec(A))vec(B)=diag(vec(B))vec(A)
式中,
d
i
a
g
(
v
e
c
(
A
)
)
diag(vec(A))
diag(vec(A))表示用向量化函数
v
e
c
(
A
)
vec(A)
vec(A)的各个元素依次为对角元素的对角矩阵。
显然,对于一个
m
×
n
m\times n
m×n矩阵
A
A
A,向量
v
e
c
(
A
)
vec(A)
vec(A)和
v
e
c
(
A
T
)
vec(A^T)
vec(AT)含有相同的元素,但排列次序不同。因此,存在一个唯一的
m
n
×
m
n
mn\times mn
mn×mn置换矩阵,可以将
v
e
c
(
A
)
vec(A)
vec(A)变换为
v
e
c
(
A
T
)
vec(A^T)
vec(AT)。这一置换矩阵称为交换矩阵,记作
K
m
n
K_{mn}
Kmn,即其满足
K
m
n
v
e
c
(
A
)
=
v
e
c
(
A
T
)
K_{mn}vec(A)=vec(A^T)
Kmnvec(A)=vec(AT)
容易验证交换矩阵具有以下性质:
K
m
n
T
=
K
m
n
−
1
=
K
n
m
K_{mn}^T=K_{mn}^{-1}=K_{nm}
KmnT=Kmn−1=Knm
由于
K
m
n
T
K
m
n
=
K
m
n
K
m
n
T
=
I
m
n
K_{mn}^TK_{mn}=K_{mn}K_{mn}^T=I_{mn}
KmnTKmn=KmnKmnT=Imn,故交换矩阵
K
m
n
K_{mn}
Kmn为正交矩阵。
m
n
×
m
n
mn\times mn
mn×mn交换矩阵
K
m
n
K_{mn}
Kmn的构造方法如下:每一行只赋一个元素1,其他元素全部为0。首先,第1行第1个元素为1,然后这个1元素右移m位,变成第2行该位置的1元素。第2行该位置的1元素右移m位,又变成第3行该位置的1元素。依此类推,找到下一行1元素的位置。但是,如果向右移位时超过第mn列,则应该转到下一行继续移位,并且多移1位,并在此位置赋1。例如,
K
24
=
[
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
]
,
K
42
=
[
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
]
,
K_{24}=
因此,交换矩阵
K
m
n
K_{mn}
Kmn和
K
n
m
K_{nm}
Knm是唯一确定的。以矩阵
A
4
×
2
A_{4\times 2}
A4×2为例,显然
K
42
v
e
c
(
A
)
=
[
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
]
[
a
11
a
21
a
31
a
41
a
12
a
22
a
32
a
42
]
=
[
a
11
a
12
a
13
a
14
a
22
a
31
a
32
a
42
]
=
v
e
c
(
A
T
)
K_{42}vec(A) =
Kronecker积是表示矩阵特殊乘积的一种简洁数学符号。一个
m
×
n
m\times n
m×n矩阵
A
A
A和一个
p
×
q
p\times q
p×q矩阵
B
B
B的Kronecker积记作
A
⊗
B
A\otimes B
A⊗B,它是一个
m
p
×
n
q
mp\times nq
mp×nq矩阵。
定义 (右Kronecker积)
m
×
n
m\times n
m×n矩阵
A
A
A和
p
×
q
p\times q
p×q矩阵
B
B
B的右Kronecker积
A
⊗
B
A\otimes B
A⊗B定义为
A
⊗
B
=
[
a
i
j
B
]
=
[
a
11
B
a
12
B
⋯
a
1
n
B
a
21
B
a
22
B
⋯
a
2
n
B
⋮
⋮
⋮
a
m
1
B
a
m
2
B
⋯
a
m
n
B
]
A \otimes B=[a_{ij}B]=
定义 (左Kronecker积)
m
×
n
m\times n
m×n矩阵
A
A
A和
p
×
g
p\times g
p×g矩阵
B
B
B的左Kronecker
积
A
⊗
B
A \otimes B
A⊗B定义为
[
A
⊗
B
]
l
e
f
t
=
[
A
b
i
j
]
=
[
A
b
11
A
b
12
⋯
A
b
1
q
A
b
21
A
b
22
⋯
A
b
2
q
⋮
⋮
⋮
A
b
p
1
A
b
p
2
⋯
A
b
b
q
]
[A \otimes B]_{left}=[Ab_{ij}]=
容易看出,如果用右Kronecker积的形式书写,则左Kronecker积可写成
[
A
⊗
B
]
l
e
f
t
=
B
⊗
A
[A\otimes B]_{left}= B\otimes A
[A⊗B]left=B⊗A。由于这一原因,为了避免混淆,今后将对Kronecker积采用右Kronecker积的定义,除非另有申明。
Kronecker积也称直积或者张量积。若
矩阵
A
m
×
n
=
a
b
T
A_{m\times n}=ab^T
Am×n=abT,则
v
e
c
(
a
b
T
)
=
b
⊗
a
vec(ab^T)=b\otimes a
vec(abT)=b⊗a
如下面的定理所述,向量化算子的这一性质公式可以推广为矩阵乘积的向量化公式。
定理
令
A
m
×
p
,
B
p
×
q
,
C
q
×
n
A_{m\times p},B_{p\times q},C_{q\times n}
Am×p,Bp×q,Cq×n,则
v
e
c
(
A
B
C
)
=
(
C
T
⊗
A
)
v
e
c
(
B
)
vec(ABC)=(C^T\otimes A)vec(B)
vec(ABC)=(CT⊗A)vec(B)
定理的两个特例:
(1)若
A
A
A为单位矩阵
I
m
I_m
Im,而
B
∈
R
m
×
q
,
C
∈
R
q
×
n
B\in R^{m\times q},C\in R^{q\times n}
B∈Rm×q,C∈Rq×n,则
v
e
c
(
B
C
)
=
(
C
T
⊗
I
m
)
v
e
c
(
B
)
=
(
C
T
⊗
B
)
v
e
c
(
I
q
)
=
(
I
n
⊗
B
)
v
e
c
(
C
)
vec(BC)=(C^T\otimes I_m)vec(B)=(C^T\otimes B)vec(I_q)=(I_n\otimes B)vec(C)
vec(BC)=(CT⊗Im)vec(B)=(CT⊗B)vec(Iq)=(In⊗B)vec(C)
(2)若
C
=
d
C=d
C=d为
q
q
q向量,则
A
B
d
=
v
e
c
(
A
B
d
)
=
(
d
T
⊗
A
)
v
e
c
(
B
)
=
(
A
⊗
d
T
)
v
e
c
(
B
T
)
ABd=vec(ABd)=(d^T\otimes A)vec(B)=(A\otimes d^T)vec(B^T)
ABd=vec(ABd)=(dT⊗A)vec(B)=(A⊗dT)vec(BT)
Kronecker积具有以下性质。
(1)对于矩阵
A
m
×
n
A_{m\times n}
Am×n和
B
p
×
q
B_{p\times q}
Bp×q,一般有
A
⊗
B
≠
B
⊗
A
A\otimes B≠B\otimes A
A⊗B=B⊗A。
(2)任意矩阵与零矩阵的Kronecker积等于零矩阵,即
A
⊗
O
=
O
⊗
A
=
O
A\otimes O=O\otimes A=O
A⊗O=O⊗A=O。
(3)若
α
\alpha
α和
β
\beta
β为常数,则
α
A
⊗
β
B
=
α
β
(
A
⊗
B
)
\alpha A\otimes \beta B=\alpha \beta (A\otimes B)
αA⊗βB=αβ(A⊗B)
(4)对于矩阵
A
m
×
n
,
B
n
×
k
,
C
l
×
p
,
D
p
×
q
A_{m\times n},B_{n\times k},C_{l\times p},D_{p\times q}
Am×n,Bn×k,Cl×p,Dp×q,有
A
B
⊗
C
D
=
(
A
⊗
C
)
(
B
⊗
D
)
AB\otimes CD=(A\otimes C)(B\otimes D)
AB⊗CD=(A⊗C)(B⊗D)
(5)对于矩阵
A
m
×
n
,
B
p
×
q
,
C
p
×
q
A_{m\times n},B_{p\times q},C_{p\times q}
Am×n,Bp×q,Cp×q,有
A
⊗
(
B
±
C
)
=
A
⊗
B
±
A
⊗
C
A\otimes(B±C)=A\otimes B± A\otimes C
A⊗(B±C)=A⊗B±A⊗C
(
B
±
C
)
⊗
A
=
B
⊗
A
±
C
⊗
A
(B±C)\otimes A=B\otimes A±C\otimes A
(B±C)⊗A=B⊗A±C⊗A
(6)若矩阵
A
A
A和
B
B
B分别有广义逆矩阵
A
+
A^+
A+和
B
+
B^+
B+,则
(
A
⊗
B
)
+
=
A
+
⊗
B
+
(A\otimes B)^+=A^+\otimes B^+
(A⊗B)+=A+⊗B+
特别地,若
A
A
A和
B
B
B是可逆的正方矩阵,则
(
A
⊗
B
)
−
1
=
A
−
1
⊗
B
−
1
(A \otimes B)^{-1} = A^{-1}\otimes B^{-1}
(A⊗B)−1=A−1⊗B−1
(7)对于矩阵
A
m
×
n
A_{m\times n}
Am×n,
B
p
×
q
B_{p\times q}
Bp×q,有
(
A
⊗
B
)
T
=
A
T
⊗
B
T
(A\otimes B)^T = A^T \otimes B^T
(A⊗B)T=AT⊗BT
(
A
⊗
B
)
H
=
A
H
⊗
B
H
(A\otimes B)^H= A^H\otimes B^H
(A⊗B)H=AH⊗BH
(8)对于矩阵
A
m
×
n
A_{m\times n}
Am×n,
B
p
×
q
B_{p\times q}
Bp×q,有
r
a
n
k
(
A
⊗
B
)
=
r
a
n
k
(
A
)
r
a
n
k
(
B
)
rank(A\otimes B)=rank(A)rank(B)
rank(A⊗B)=rank(A)rank(B)
(9)若
A
A
A是
m
×
m
m\times m
m×m矩阵,
B
B
B是
n
×
n
n\times n
n×n矩阵,则
d
e
t
(
A
⊗
B
)
=
(
d
e
t
(
A
)
)
n
(
d
e
t
(
B
)
)
m
det(A\otimes B)=(det(A))^n(det(B))^m
det(A⊗B)=(det(A))n(det(B))m
(10)若
A
A
A是
m
×
m
m\times m
m×m矩阵,
B
B
B是
n
×
n
n\times n
n×n矩阵,则
t
r
(
A
⊗
B
)
=
t
r
(
A
)
t
r
(
B
)
tr(A\otimes B)=tr(A)tr(B)
tr(A⊗B)=tr(A)tr(B)
(11)对于矩阵
A
m
×
n
,
B
m
×
n
,
C
p
×
q
,
D
p
×
q
A_{m\times n},B_{m\times n},C_{p\times q},D_{p\times q}
Am×n,Bm×n,Cp×q,Dp×q,有
(
A
+
B
)
⊗
(
C
+
D
)
=
A
⊗
C
+
A
⊗
D
+
B
⊗
C
+
B
⊗
D
(A+B)\otimes (C+D)=A\otimes C+A\otimes D+B\otimes C+B\otimes D
(A+B)⊗(C+D)=A⊗C+A⊗D+B⊗C+B⊗D
更一般地,有
[
∑
i
=
1
M
A
(
i
)
]
⊗
[
∑
j
=
1
N
B
(
j
)
]
=
∑
i
=
1
M
∑
j
=
1
N
[
A
(
i
)
⊗
B
(
j
)
]
(12)对于矩阵
A
m
×
n
,
B
k
×
l
,
C
p
×
q
,
D
r
×
s
A_{m\times n},B_{k\times l},C_{p\times q},D_{r\times s}
Am×n,Bk×l,Cp×q,Dr×s,有
(
A
⊗
B
)
⊗
(
C
⊗
D
)
=
A
⊗
B
⊗
C
⊗
D
(A\otimes B)\otimes(C\otimes D)=A\otimes B\otimes C\otimes D
(A⊗B)⊗(C⊗D)=A⊗B⊗C⊗D
(13)若
α
i
\alpha_i
αi是矩阵
A
A
A与特征值
λ
i
\lambda_i
λi对应的特征向量,
β
i
\beta_i
βi是矩阵
B
B
B与特征值
μ
i
μ_i
μi对应的特征向量,则
α
i
⊗
β
i
\alpha_i \otimes \beta_i
αi⊗βi是矩阵
A
⊗
B
A\otimes B
A⊗B与特征值
λ
i
μ
i
\lambda_iμ_i
λiμi对应的特征向量,也是与特征值
λ
i
+
μ
i
\lambda_i+μ_i
λi+μi对应的特征向量。
(14)对于矩阵
A
m
×
n
,
B
p
×
q
,
C
k
×
l
A_{m\times n},B_{p\times q},C_{k\times l}
Am×n,Bp×q,Ck×l,有
(
A
⊗
B
)
⊗
C
=
A
⊗
(
B
⊗
C
)
(A\otimes B)\otimes C=A\otimes (B\otimes C)
(A⊗B)⊗C=A⊗(B⊗C)
即
A
⊗
B
⊗
C
A\otimes B\otimes C
A⊗B⊗C的结果是无模糊的。
(15)对于矩阵
A
m
×
n
,
B
p
×
q
,
C
n
×
r
,
D
q
×
s
A_{m\times n},B_{p\times q},C_{n\times r},D_{q\times s}
Am×n,Bp×q,Cn×r,Dq×s,有
(
A
⊗
B
)
(
C
⊗
D
)
=
A
C
⊗
B
D
(A\otimes B)(C\otimes D)=AC\otimes BD
(A⊗B)(C⊗D)=AC⊗BD
(16)对于矩阵
A
m
×
n
,
B
p
×
q
A_{m\times n},B_{p\times q}
Am×n,Bp×q,有
e
x
p
(
A
⊗
B
)
=
e
x
p
(
A
)
⊗
e
x
p
(
B
)
exp(A\otimes B)=exp(A)\otimes exp(B)
exp(A⊗B)=exp(A)⊗exp(B)
(17)作为式(15)的特例,若
B
=
I
p
B=I_p
B=Ip和
C
=
I
p
C=I_p
C=Ip,则
A
⊗
D
=
(
A
I
p
)
⊗
(
I
q
D
)
=
(
A
⊗
I
q
)
(
I
q
⊗
D
)
A\otimes D=(AI_p)\otimes (I_qD)=(A\otimes I_q)(I_q\otimes D)
A⊗D=(AIp)⊗(IqD)=(A⊗Iq)(Iq⊗D)
式中,
I
q
⊗
D
I_q\otimes D
Iq⊗D为块对角矩阵(对右Kronecker积)或稀疏矩阵(对左Kronecker积),而
A
⊗
I
q
A\otimes I_q
A⊗Iq为稀疏矩阵(对右Kronecker积)或块对角矩阵(对左Kronecker积)。