引
kernel PCA通过 k ( x , y ) k(x,y) k(x,y)隐式地将样本由输入空间映射到高维空间 F F F,那么问题来了,如何回来呢,即已知 Φ ( x ) ∈ F \Phi(x) \in F Φ(x)∈F,如何找到其原像 x x x呢?可是呢:
- 这个问题不一定有解,因为从低维空间往高维空间映射往往不是满射;
- 即便有解,这个也不一定唯一。
但是这个方面的应用还是蛮多的啊,PCA可以通过抛去一些方向(方差小的部分)来去噪声(虽然效果似乎不是很好),kernel PCA如果也要这么做的话,就会产生上面的问题。这篇文章就是提出了一种可行的方法来解决这个问题。
通过最小化下式:
min
z
ρ
(
z
)
=
∥
Φ
(
z
)
−
P
n
Φ
(
x
)
∥
2
\min \limits_z \quad \rho (z)= \|\Phi(z) - \mathrm{P}_n \Phi(x)\|^2
zminρ(z)=∥Φ(z)−PnΦ(x)∥2
其中
P
n
(
⋅
)
\mathrm{P}_n(\cdot)
Pn(⋅)是投影算子——将向量投影至由前n个特征向量构成的子空间之中。
主要内容
在化简上式之前,需要先进行一些必要的符号说明:
V
k
=
∑
i
=
1
l
α
i
k
Φ
(
x
i
)
V^k = \sum \limits_{i=1}^l \alpha_i^k \Phi(x_i)
Vk=i=1∑lαikΦ(xi)
为第k个特征向量(F空间中的),其中
l
l
l为样本个数(沿用了论文的符号)。
定义:
β
k
=
(
V
k
⋅
Φ
(
x
)
)
=
∑
i
=
1
l
α
i
k
k
(
x
,
x
i
)
\beta_k = (V^k\cdot \Phi(x))=\sum \limits_{i=1}^l \alpha_i^k k(x, x_i)
βk=(Vk⋅Φ(x))=i=1∑lαikk(x,xi)
那么:
P
n
Φ
(
x
)
=
∑
i
=
1
n
β
k
V
k
\mathrm{P}_n \Phi(x) = \sum_{i=1}^n \beta_k V^k
PnΦ(x)=i=1∑nβkVk
现在,我们可以展开
ρ
(
z
)
\rho(z)
ρ(z):
其中
Ω
\Omega
Ω为与
z
z
z无关的项,通过梯度下降可以获得
z
z
z。
如果我们假设
k
(
x
,
y
)
=
k
(
∥
x
−
y
∥
2
)
k(x,y)=k(\|x-y\|^2)
k(x,y)=k(∥x−y∥2),即
k
(
x
,
x
)
k(x,x)
k(x,x)为常数,则:
其中
Ω
′
\Omega'
Ω′为与
z
z
z无关的项,
γ
i
=
∑
k
=
1
n
β
k
α
i
k
\gamma_i = \sum_{k=1}^n \beta_k \alpha_i^k
γi=∑k=1nβkαik
容易计算其梯度为(差个常数2):
∇
z
ρ
(
z
)
=
∑
i
=
1
l
γ
i
k
′
(
∥
z
−
x
i
∥
)
(
z
−
x
i
)
\nabla_z \rho(z) = \sum \limits_{i=1}^l \gamma_i k'(\|z-x_i\|)(z-x_i)
∇zρ(z)=i=1∑lγik′(∥z−xi∥)(z−xi)
令其为0,得到一个必要条件:
z
=
∑
i
=
1
l
δ
i
x
i
∑
i
=
1
l
δ
i
z = \frac{\sum \limits_{i=1}^l \delta_i x_i}{\sum \limits_{i=1}^l \delta_i}
z=i=1∑lδii=1∑lδixi
其中
δ
i
=
γ
i
k
′
(
∥
z
−
x
i
∣
2
\delta_i = \gamma_i k'(\|z-x_i|^2
δi=γik′(∥z−xi∣2
一个例子就是高斯核,这时:
选取一个合适的起始点(分母不为0),可以通过下式来迭代:
这么来想,一般的迭代方法是:
z
t
+
1
=
z
t
−
η
∇
ρ
(
z
t
)
z_{t+1} = z_t - \eta \nabla \rho(z_t)
zt+1=zt−η∇ρ(zt)
令
η
=
1
/
∑
i
=
1
l
δ
i
\eta=1 / \sum_{i=1}^l \delta_i
η=1/∑i=1lδi即可得(10),我不知道这么做是否有别的深意。