t-SNE
1.t-SNE主要是用来对高维数据进行降维可视化,它是一种非线性降维算法
2.t-SNE将点与点之间的相似度转换为条件概率
对于原始高维数据
x
i
x^i
xi和
x
j
x^j
xj之间的相似率:
P
(
x
j
∣
x
i
)
=
S
(
x
i
,
x
j
)
∑
k
≠
i
S
(
x
i
,
x
k
)
\begin{aligned} P(x^j|x^i) = \frac{S(x^i,x^j)}{\sum_{k\neq i}S(x^i,x^k)} \end{aligned}
P(xj∣xi)=∑k̸=iS(xi,xk)S(xi,xj)
对于降维之后的数据
z
i
z^i
zi和
z
j
z^j
zj相似概率:
Q
(
z
j
∣
z
i
)
=
S
′
(
x
i
,
x
j
)
∑
k
≠
i
(
z
i
,
z
k
)
Q(z^j|z^i) = \frac{S^\prime(x^i,x^j)}{\sum_{k\neq i}(z^i, z^k)}
Q(zj∣zi)=∑k̸=i(zi,zk)S′(xi,xj)
3.计算出
P
(
x
j
∣
x
i
)
P(x^j|x^i)
P(xj∣xi)和
Q
(
z
j
∣
z
i
)
Q(z^j|z^i)
Q(zj∣zi)之后,我们需要使得
P
P
P和
Q
Q
Q的连接分布最接近,也就是
K
L
KL
KL散度尽可能的小。
L
=
∑
i
K
L
(
P
(
∗
∣
x
i
)
∣
∣
Q
(
∗
∣
z
j
)
)
=
∑
i
∑
j
P
(
x
j
∣
x
i
)
l
o
g
P
(
x
j
∣
x
i
)
Q
(
x
j
∣
x
i
)
\begin{aligned} L&=\sum_iKL\left(P\left(*|x^i\right)||Q\left(*|z^j\right)\right)\\ &=\sum_i\sum_jP(x^j|x^i)log\frac{P(x^j|x^i)}{Q(x^j|x^i)} \end{aligned}
L=i∑KL(P(∗∣xi)∣∣Q(∗∣zj))=i∑j∑P(xj∣xi)logQ(xj∣xi)P(xj∣xi)