现实生活中,总有一些噪音存在于观测中。
ICA模型也许需要考虑噪声项。
但是,在有噪声的情况下,混合矩阵的估计是相当困难的。
在noisy ICA中,我们也遇到了一个新的问题:独立分量的无噪声实现的估计。
noisy ICA的模型可以这样表示:
x
=
A
s
+
n
x=As+n
x=As+n
n就是噪声向量。
关于n有一些假设需要注意:
- 噪声与独立分量无关。
- 噪声是高斯分布。
并且经常假设噪声的协方差是已知的。 Σ = σ 2 I \Sigma=\sigma^2I Σ=σ2I
sensor noise vs. source noise
sourece noise:
x
=
A
(
s
+
n
)
x=A(s+n)
x=A(s+n)
对于这样的噪声模型,set
s
~
=
s
+
n
\tilde{s}=s+n
s~=s+n,
s
~
\tilde{s}
s~依然保持非高斯和独立性,这样的话,我们仍然可以使用basic ICA去估计noisy ICs。然而,从噪声分量中估计原始独立分量是一个额外的问题。
sensor nosie:
x
=
A
s
+
n
x=As+n
x=As+n
在这种情况下,我们可以把噪声的协方差转化成如下形式:
Σ
=
A
A
T
σ
2
\Sigma=\bm{A}\bm{A}^T\sigma^2
Σ=AATσ2
n
~
=
A
−
1
n
\tilde{n}=\bm{A}^{-1}n
n~=A−1n
x
=
A
s
+
A
n
~
=
A
(
s
+
n
~
)
x=\bm{A}s+\bm{A}\tilde{n}=\bm{A}(s+\tilde{n})
x=As+An~=A(s+n~)
总的来说,如果噪声是加到独立分量中而不是加到观测混合物中,或具有特定的协方差结构,则混合矩阵可以用普通ICA方法估计。
较少的噪声来源
特别地,如果它们的总数(噪声和独立成分的数量)不大于混合观测的数目,我们又有一个普通的ICA模型,其中一些成分是高斯噪声,另一些是真正的独立成分。这种情况下可以用basic ICA。
s
~
=
(
s
1
,
.
.
.
,
s
k
,
n
1
,
.
.
.
,
n
l
)
\tilde{s}=(s_1,..., s_k, n_1,...,n_l)
s~=(s1,...,sk,n1,...,nl)
s是“real”ICs, n是噪声。
利用basic ICA,估计前k个最非高斯方向,就可以估算出real ICs。
我们不能估计其余的哑独立分量,它们实际上是噪声变量,但我们一开始就不想估计它们。
这种方法的局限性在于:
我们一般假设noise 是附加在混合观测上,因此k+l一般是大于缓和观测的数量的,这个时候basic ICA一般是不能解决这个问题的。
混合矩阵的估计
偏差消除技术
能最有前途的方法是噪声ICA是由偏见消除技术。
这意味着对普通的(无噪声)ICA方法进行了修改,从而消除或至少降低了由于噪声引起的偏差。
如果我们有不受高斯噪声影响的非高斯性度量,或者至少可以从噪声观测中很容易地估计原始数据的值,那就好了。
定义没有观测的项:
v
=
A
s
\bm{v}=\bm{As}
v=As
有观测噪声混合噪声就可以表示为
x
=
v
+
n
\bm{x}=\bm{v}+\bm{n}
x=v+n
现在要解决的问题变成:
w
T
x
=
w
T
v
+
w
T
n
w^Tx=w^Tv+w^Tn
wTx=wTv+wTn
测量右式一项的非高斯性,并且免受右式二项的噪声的影响。
峰度的偏差消除
如果用kurtosis来测量非高斯性是可行的,kurtosis对高斯噪声免疫。
k
u
r
t
(
w
T
x
)
=
k
u
r
t
(
w
T
v
)
kurt(w^Tx)=kurt(w^Tv)
kurt(wTx)=kurt(wTv)
但必须注意,在初步whitening时,必须考虑噪音的影响;如果已知噪声协方差矩阵,这就很简单了。
观测混合观测噪声的协方差:
C
=
E
(
x
x
T
)
C=E(xx^T)
C=E(xxT)
那么whitening的公式就必须要改成:
x
~
=
(
C
−
Σ
)
−
1
/
2
x
\tilde{x}=(C-\Sigma)^{-1/2}x
x~=(C−Σ)−1/2x
C
−
Σ
C-\Sigma
C−Σ是noise-free data的协方差矩阵
(
basic版本的是:
whitening变化矩阵:
V
=
E
D
−
1
/
2
E
T
V=ED^{-1/2}E^T
V=ED−1/2ET
满足:
E
(
x
x
T
)
=
E
D
E
T
E(xx^T)=EDE^T
E(xxT)=EDET
)
whitening之后的模型变成:
x
~
=
B
s
+
n
~
\tilde{x}=Bs+\tilde{n}
x~=Bs+n~
B正交,
n
~
\tilde{n}
n~是原始noise的线性组合。
这样的一个模型就可以用basic的kurtosis测量方法的ICA计算了。
bais消除的一般nongaussianity的测量方法。
相比于kurtosis更好的测量方法
G是一个充分正则的非二次函数。v是标准正态分布变量。
set z是一个非高斯随机变量 。
现在主要的问题编程寻找
E
{
G
(
z
)
}
E\{G(z)\}
E{G(z)}和
E
{
G
(
z
+
n
)
}
E\{G(z+n)\}
E{G(z+n)}
的关系。
一个简化的方法是将G设为
0均值的高斯随机变量的密度函数或相关函数——非多项式矩(高斯矩)。
0均值高斯密度函数with方差
c
2
c^2
c2
φ
c
(
k
)
\varphi_c^{(k)}
φc(k)代表k阶导数
φ
c
(
−
k
)
\varphi_c^{(-k)}
φc(−k)代表k阶积分:
φ
c
(
−
k
)
(
x
)
=
∫
0
x
φ
c
(
−
k
+
1
)
(
ξ
)
d
ξ
\varphi_c^{(-k)}(x)=\int_0^x\varphi_c^{(-k+1)}(\xi)d\xi
φc(−k)(x)=∫0xφc(−k+1)(ξ)dξ
重要理论(Theorem 15.1)
所以式15.11可以转化为
总结一下:
basic的核心算法:
总结下来:
basic ICA和noisy ICA的不同主要体现在两点上:
- whiten的V不同
- 迭代中一个方程不同
高阶累积量方法
高阶累积量不受高斯噪声的影响
通常使用的阶数为6.
缺点:实际上,当阶数>4,累积量就容易受outliers的影响。
有点:不需要噪声的协方差。
最大似然法
C是无关常数。
f
i
f_i
fi是独立分量的概率密度函数(pdf)的对数
缺点:计算成本大,计算复杂度随数据的维数呈指数增长。
研究点:使用偏差消除技术,来修改现有的ML算法,使之与有噪声的数据一致。