引
这篇文章是基于对Kernel PCA and De-Noisingin Feature Spaces的一个改进。
针对高斯核:
k
(
x
,
y
)
=
exp
(
−
∥
x
−
y
∥
2
/
c
)
k(x,y) = \exp (-\|x-y\|^2/c)
k(x,y)=exp(−∥x−y∥2/c)
我们希望最小化下式(以找到
x
x
x的一个近似的原像):
ρ
(
z
)
=
∥
Φ
(
z
)
−
P
H
Φ
(
x
)
∥
2
\rho(z) = \|\Phi(z) - P_H \Phi(x)\|^2
ρ(z)=∥Φ(z)−PHΦ(x)∥2
获得了一个迭代公式:
z
(
t
)
=
∑
i
=
1
N
w
i
k
(
x
i
,
z
(
t
−
1
)
)
x
i
∑
i
=
1
N
w
i
k
(
x
i
,
z
(
t
−
1
)
)
z(t) = \frac{\sum_{i=1}^N w_i k(x_i, z(t-1))x_i}{\sum_{i=1}^N w_i k(x_i, z(t-1))}
z(t)=∑i=1Nwik(xi,z(t−1))∑i=1Nwik(xi,z(t−1))xi
其中
w
i
=
∑
h
=
1
H
y
h
u
i
h
w_i=\sum_{h=1}^Hy_h u_i^h
wi=∑h=1Hyhuih,
u
u
u通过求解kernel PCA获得(通常是用
α
\alpha
α表示的),
z
(
0
)
=
x
z(0)=x
z(0)=x。
主要内容
虽然我们可以通过撇去小特征值对应的方向,但是这对于去噪并不足够。Kernel PCA and De-Noisingin Feature Spaces中所提到的方法,也就是上面的那个迭代的公式,也没有很好地解决这个问题。既然 { y h } \{y_h\} {yh}并没有改变——也就是说,我们可能一直在试图用带噪声的数据去恢复一个不带噪声的数据。
所以,作者论文,在迭代更新过程中, y h y_h yh也应该进行更新。
这样,每一步我们都可以看作是在寻找:
∥
Φ
(
z
)
−
P
H
Φ
(
x
~
(
t
)
∥
\|\Phi(z)-P_H\Phi(\widetilde{x}(t)\|
∥Φ(z)−PHΦ(x
(t)∥
的最小值。
从
(
10
)
(10)
(10)可以发现,除非
x
~
(
t
)
=
z
(
t
−
1
)
\widetilde{x}(t)=z(t-1)
x
(t)=z(t−1)是
x
x
x的一个比较好的估计,否则,通过这种方式很有可能会失败(这里的失败定义为,最后的结果与
x
x
x差距甚远)。这种情况我估计是很容易发生的。所以,作者提出了一种新的,更新
x
~
(
t
)
\widetilde{x}(t)
x
(t)的公式:
其中
B
(
t
)
B(t)
B(t)为确定度,是一个
M
×
M
M \times M
M×M的矩阵,定义为:
B
(
t
)
=
d
i
a
g
(
β
1
(
t
)
,
…
,
β
M
(
t
)
)
β
j
(
t
)
=
exp
(
−
(
x
j
−
z
j
(
t
−
1
)
)
2
/
2
σ
j
2
)
B(t) = diag(\beta_1(t), \ldots, \beta_M(t)) \\ \beta_j(t) = \exp (-(x_j - z_j (t-1))^2/2\sigma_j^2)
B(t)=diag(β1(t),…,βM(t))βj(t)=exp(−(xj−zj(t−1))2/2σj2)
对角线元素,反映了
x
j
x_j
xj和
z
j
(
t
−
1
)
z_j(t-1)
zj(t−1)的差距,如果二者差距不大,说明
P
H
(
x
)
P_H(x)
PH(x)和
x
x
x的差距不大,
x
x
x不是异常值点,所以,结果和
x
x
x的差距也不会太大,否则
x
x
x会被判定为一个异常值点,自然
z
z
z应该和
x
x
x的差别大一点。
σ
j
\sigma_j
σj的估计是根据另一篇论文来的,这里只给出估计的公式:
m
e
d
(
x
)
\mathrm{med}(x)
med(x)表示
x
x
x的中位数,
ε
i
j
\varepsilon_{ij}
εij表示第
i
i
i个训练样本第
j
j
j个分量与其重构之间平方误差。话说,这个重构如何获得呢?