机器学习基础---降维方法---T分布随机近邻嵌入(TSNE)推导
T-SNE(T-Stochastic Neighbor Embedding)核心思想:对无监督聚类问题:PCA目的是在样本空间内找到子空间,以变换矩阵W对样本矩阵XXX实现原空间到子空间的映射,属于线性聚类方法;其方法核心在于最小化投影后方差LPP方法,本身结合了非线性流形学习方法LE(拉普拉斯特征映射)的思想,引入线性变换的假设,虽然从本质上说属于线性方法,但有效地保留原始高维数据内部的非线性结
T-SNE(T-Stochastic Neighbor Embedding)
核心思想:
-
对无监督聚类问题:
- PCA目的是在样本空间内找到子空间,以变换矩阵W对样本矩阵XXX实现原空间到子空间的映射,属于线性聚类方法;其方法核心在于最小化投影后方差
- LPP方法,本身结合了非线性流形学习方法LE(拉普拉斯特征映射)的思想,引入线性变换的假设,虽然从本质上说属于线性方法,但有效地保留原始高维数据内部的非线性结构,对非线性流形数据聚类也有较好的效果;其核心在于使投影前后距离近的点相似关系保持
- 上述两种方法中,样本相似性都是通过欧氏空间中的距离表示的,欧式距离越近相似度越高
-
不同于上述方法中以欧氏距离为衡量标准,SNE方法将欧式距离转化成条件概率来表示相似性:
-
即对样本点xix_ixi,xjx_jxj,不使用两者间距离作为相似度衡量,而是基于距离计算xix_ixi选择xjx_jxj作为近邻的概率pj∣ip_{j|i}pj∣i
同样,对降维后的yiy_iyi,yjy_jyj,同样使用条件概率qj∣iq_{j|i}qj∣i表示yiy_iyi选择yjy_jyj作为近邻的概率
-
考虑点i与其他所有点之间的关系,则构成条件概率分布PiP_iPi与QiQ_iQi
SNE方法的核心思路即为高维下的条件概率分布QiQ_iQi且应该与PiP_iPi一致
使用K-L散度计算两个分布之间的相似程度
-
使用梯度下降算法进行训练
-
-
SNE方法的问题:
- 概率的不对称性:Pj∣i≠Pi∣jP_{j|i} \neq P_{i|j}Pj∣i=Pi∣j导致梯度计算较为复杂
- K-L散度的不对称性,具体见下文K-L散度部分,导致SNE能保留数据中的局部特征,对全局特征刻画不足
- 存在拥挤问题(具体见下文)
-
改进方案T-SNE
- 改进点:
- 使用联合概率分布来替换条件概率分布,保证对于任意i,有pij=pji,qij=qjip_{ij}=p_{ji}, q_{ij}=q_{ji}pij=pji,qij=qji
- 在低维目的空间,使用t-分布替代高斯分布
- 改进点:
相关概念
-
高斯分布构建条件概率
-
构建样本点xix_ixi的条件概率分布时,可以考虑高斯分布
-
对高维空间中的xix_ixi,xjx_jxj,定义xix_ixi选择xjx_jxj作为近邻的概率pj∣ip_{j|i}pj∣i:
pj∣i=exp(−∣∣xi−xj∣∣22σi2)∑k≠iexp(−∣∣xi−xk∣∣22σi2)) p_{j|i}=\frac{exp(\frac{-||x_i-x_j||^2}{2\sigma_i^2})}{\sum_{k\neq i}exp(\frac{-||x_i-x_k||^2}{2\sigma_i^2}))} pj∣i=∑k=iexp(2σi2−∣∣xi−xk∣∣2))exp(2σi2−∣∣xi−xj∣∣2)
对高维空间中的yiy_iyi,yjy_jyj,定义yiy_iyi选择yjy_jyj作为近邻的概率qj∣iq_{j|i}qj∣i,指定方差σ=12\sigma=\frac{1}{\sqrt{2}}σ=21:
qj∣i=exp(−∣∣xi−xj∣∣2)∑k≠iexp(−∣∣xi−xk∣∣2)) q_{j|i}=\frac{exp(-||x_i-x_j||^2)}{\sum_{k\neq i}exp(-||x_i-x_k||^2))} qj∣i=∑k=iexp(−∣∣xi−xk∣∣2))exp(−∣∣xi−xj∣∣2) -
σ\sigmaσ选取:
- 可计算分布P的熵:H(Pi)=−∑jPj∣ilog2Pj∣iH(P_i)=-\sum_jP_{j|i}log_2P_{j|i}H(Pi)=−∑jPj∣ilog2Pj∣i
- 定义困惑度:Prep(Pi)=2H(Pi)Prep(P_i)=2^{H(P_i)}Prep(Pi)=2H(Pi),对不同样本点有不同的困惑度
- 困惑度随H(Pi)H(P_i)H(Pi)增大而增大
- 当样本xix_ixi与其他m个有效样本点距离相同时,Pj∣i=1mP_{j|i}=\frac1mPj∣i=m1,H(Pi)=log2mH(P_i)=log_2mH(Pi)=log2m,Prep(Pi)=mPrep(P_i)=mPrep(Pi)=m
- 上式说明当维度足够大时,困惑度近似于附近的有效近邻点个数
- 通常通过指定困惑度(近邻数量)的方法,对Pj∣iP_{j|i}Pj∣i中的σi\sigma_iσi进行求解,同时由于Prep(Pi)随σPrep(P_i)随\sigmaPrep(Pi)随σ增大而增大,可以使用二分方法搜索σi\sigma_iσi
-
-
K-L散度
-
KL 散度是一个用来衡量两个概率分布的相似性的度量指标
-
引入 信息熵:表示一个概率分布需要的平均信息量
H=−∑i=1Np(xi)log(p(xi)) H=-\sum_{i=1}^Np(x_i)log(p(x_i)) H=−i=1∑Np(xi)log(p(xi)) -
定义K-L散度:
DKL(p∣∣q)=∑i=1Np(xi)(log(p(xi)−log(q(xi)))=∑i=1Np(xi)logp(xi)q(xi) D_{KL(p||q)}=\sum_{i=1}^Np(x_i)(log(p(x_i)-log(q(x_i)))=\sum_{i=1}^Np(x_i)log\frac{p(x_i)}{q(x_i)} DKL(p∣∣q)=i=1∑Np(xi)(log(p(xi)−log(q(xi)))=i=1∑Np(xi)logq(xi)p(xi)
K-L散度值越小,分布p与分布q之间越接近
-
-
拥挤问题:
- 在m维球中随机分布的样本点与指定样本点xix_ixi的距离分布情况如下图所示:
-
即,随着样本维度增大,随机样本点与xix_ixi点的距离分布极不平衡,其更倾向于分布在m维球的球面区域
-
在降维过程中,需要尽可能地将样本分布保留,会将高维空间下球面上的点集中到低维空间的球面,但低维下球面积远远小于高维,因此出现“拥挤”
-
“拥挤”问题会导致高维数据在降维到低维后过于集中,无法得到可信映射
-
t分布构建条件概率
-
以t分布将距离转换为条件概率公式为:
qj∣i=(1+∣∣yi−yj∣∣2)−1∑k≠l(1+∣∣yk−yl∣∣2)−1 q_{j|i}=\frac{(1+||y_i-y_j||^2)^{-1}}{\sum_{k\neq l}(1+||y_k-y_l||^2)^{-1}} qj∣i=∑k=l(1+∣∣yk−yl∣∣2)−1(1+∣∣yi−yj∣∣2)−1 -
t-分布与高斯分布对比:
就上图(距离-概率分布)而言,对pij=qijp_{ij}=q_{ij}pij=qij,在相似度较高的情况下(上虚线)t-分布的距离小于高斯分布;相似度较高的情况下(下虚线)t-分布的距离大于高斯分布。
t分布可以有效地将高维空间集中在球面附近的点,在低维空间中一定程度上分开。同时,也满足需求:同类样本尽可能集中,不同类样本尽可能分开。
-
方法推导
-
SNE方法(Stochastic Neighbor Embedding 随机近邻嵌入):
-
采用高斯分布构建原空间与目标空间下的条件概率Pi,QiP_i, Q_iPi,Qi
pij=pj∣i=exp(−∣∣xi−xj∣∣22σi2)∑k≠iexp(−∣∣xi−xk∣∣22σi2)) p_{ij}=p_{j|i}=\frac{exp(\frac{-||x_i-x_j||^2}{2\sigma_i^2})}{\sum_{k\neq i}exp(\frac{-||x_i-x_k||^2}{2\sigma_i^2}))} pij=pj∣i=∑k=iexp(2σi2−∣∣xi−xk∣∣2))exp(2σi2−∣∣xi−xj∣∣2)qij=qj∣i=exp(−∣∣yi−yj∣∣2)∑k≠iexp(−∣∣yi−yk∣∣2)) q_{ij}=q_{j|i}=\frac{exp(-||y_i-y_j||^2)}{\sum_{k\neq i}exp(-||y_i-y_k||^2))} qij=qj∣i=∑k=iexp(−∣∣yi−yk∣∣2))exp(−∣∣yi−yj∣∣2)
-
使用所有样本点降维前后条件概率K-L散度之和作为优化目标函数:
C=∑i=1NDKL(Pi∣∣Qi)=∑i=1N∑j=1Nqijlog(pijqij) C=\sum_{i=1}^ND_{KL(P_i||Q_i)}=\sum_{i=1}^N\sum_{j=1}^Nq_{ij}log(\frac{p_{ij}}{q_{ij}}) C=i=1∑NDKL(Pi∣∣Qi)=i=1∑Nj=1∑Nqijlog(qijpij) -
优化目标为寻找到能使函数C取最小值的低维样本集Y=[y1,y2,...,yn]Y=[y_1,y_2,...,y_n]Y=[y1,y2,...,yn]
-
考虑通过动量梯度下降法对Y进行迭代更新:
yit=yit−1+η∂C∂yi+α(t)(yit−1−yit−2) y_i^t=y_i^{t-1}+\eta\frac{\partial C}{\partial y_i}+\alpha(t)(y_i^{t-1}-y_i^{t-2}) yit=yit−1+η∂yi∂C+α(t)(yit−1−yit−2) -
求导过程:
-
定义中间变量:
-
qij=wij∑kwik q_{ij}=\frac{w_{ij}}{\sum_{k}w_ik} qij=∑kwikwij
-
wijw_{ij}wij:yi,yjy_i,y_jyi,yj之间相似度
wij=exp(−∣∣yi−yj∣∣2)=exp(−fij) w_{ij}=exp(-||y_i-y_j||^2)=exp(-f_{ij}) wij=exp(−∣∣yi−yj∣∣2)=exp(−fij) -
fijf_{ij}fij:yi,yjy_i,y_jyi,yj之间距离度量
fij=∣∣yi−yj∣∣2=dij2 f_{ij}=||y_i-y_j||^2=d_{ij}^2 fij=∣∣yi−yj∣∣2=dij2 -
dijd_{ij}dij:yi,yjy_i,y_jyi,yj之间欧氏距离
dij=∣∣yi−yj∣∣ d_{ij}=||y_i-y_j|| dij=∣∣yi−yj∣∣
-
-
通过求导链式法则,可得:
∂C∂yh=∑ij∂C∂qij∑kl∂qij∂wkl∑mn∂wkl∂fmn∑pq∂fmn∂dpq∂dpq∂yh \frac{\partial C}{\partial y_h}=\sum_{ij}\frac{\partial C}{\partial q_{ij}}\sum_{kl}\frac{\partial q_{ij}}{\partial w_{kl}}\sum_{mn}\frac{\partial w_{kl}}{\partial f_{mn}}\sum_{pq}\frac{\partial f_{mn}}{\partial d_{pq}}\frac{\partial d_{pq}}{\partial y_h} ∂yh∂C=ij∑∂qij∂Ckl∑∂wkl∂qijmn∑∂fmn∂wklpq∑∂dpq∂fmn∂yh∂dpq
由于w,f,dw,f,dw,f,d交叉项为0,除非p=m=kp=m=kp=m=k且q=n=lq=n=lq=n=l,故:
∂C∂yh=∑ij∂C∂qij∑kl∂qij∂wkl∂wkl∂fkl∂fkl∂dkl∂dkl∂yh \frac{\partial C}{\partial y_h}=\sum_{ij}\frac{\partial C}{\partial q_{ij}}\sum_{kl}\frac{\partial q_{ij}}{\partial w_{kl}}\frac{\partial w_{kl}}{\partial f_{kl}}\frac{\partial f_{kl}}{\partial d_{kl}}\frac{\partial d_{kl}}{\partial y_h} ∂yh∂C=ij∑∂qij∂Ckl∑∂wkl∂qij∂fkl∂wkl∂dkl∂fkl∂yh∂dkl
再,仅当k=ik=ik=i时,∂C∂qij≠0\frac{\partial C}{\partial q_{ij}}\neq 0∂qij∂C=0,故:
∂C∂yh=∑ij∂C∂qij∑l∂qij∂wil∂wil∂fil∂fil∂dil∂dil∂yh \frac{\partial C}{\partial y_h}=\sum_{ij}\frac{\partial C}{\partial q_{ij}}\sum_{l}\frac{\partial q_{ij}}{\partial w_{il}}\frac{\partial w_{il}}{\partial f_{il}}\frac{\partial f_{il}}{\partial d_{il}}\frac{\partial d_{il}}{\partial y_h} ∂yh∂C=ij∑∂qij∂Cl∑∂wil∂qij∂fil∂wil∂dil∂fil∂yh∂dil
对∂dil∂yh\frac{\partial d_{il}}{\partial y_h}∂yh∂dil,仅当i=h或l=hi=h或l=hi=h或l=h时非零,故:
∂C∂yh=∑ij∂C∂qij∂qij∂wih∂wih∂fih∂fih∂dih∂dih∂yh+∑jl∂C∂qhj∂qhj∂whl∂whl∂fhl∂fhl∂dhl∂dhl∂yh \frac{\partial C}{\partial y_h}=\sum_{ij}\frac{\partial C}{\partial q_{ij}}\frac{\partial q_{ij}}{\partial w_{ih}}\frac{\partial w_{ih}}{\partial f_{ih}}\frac{\partial f_{ih}}{\partial d_{ih}}\frac{\partial d_{ih}}{\partial y_h} + \sum_{jl}\frac{\partial C}{\partial q_{hj}}\frac{\partial q_{hj}}{\partial w_{hl}}\frac{\partial w_{hl}}{\partial f_{hl}}\frac{\partial f_{hl}}{\partial d_{hl}}\frac{\partial d_{hl}}{\partial y_h} ∂yh∂C=ij∑∂qij∂C∂wih∂qij∂fih∂wih∂dih∂fih∂yh∂dih+jl∑∂qhj∂C∂whl∂qhj∂fhl∂whl∂dhl∂fhl∂yh∂dhl
在此进行下标替换(由于前后两式独立计算,所以中间变量下标可以进行任意计算):前式中进行替换:j->l ; i->j;后式进行替换:j->l ; l->j;再将两式中h替换为i,有:
∂C∂yi=∑jl∂C∂qjl∂qjl∂wji∂wji∂fji∂fji∂dji∂dji∂yi+∑jl∂C∂qil∂qil∂wil∂wij∂fij∂fij∂dij∂dij∂yi \frac{\partial C}{\partial y_i}=\sum_{jl}\frac{\partial C}{\partial q_{jl}}\frac{\partial q_{jl}}{\partial w_{ji}}\frac{\partial w_{ji}}{\partial f_{ji}}\frac{\partial f_{ji}}{\partial d_{ji}}\frac{\partial d_{ji}}{\partial y_i} + \sum_{jl}\frac{\partial C}{\partial q_{il}}\frac{\partial q_{il}}{\partial w_{il}}\frac{\partial w_{ij}}{\partial f_{ij}}\frac{\partial f_{ij}}{\partial d_{ij}}\frac{\partial d_{ij}}{\partial y_i} ∂yi∂C=jl∑∂qjl∂C∂wji∂qjl∂fji∂wji∂dji∂fji∂yi∂dji+jl∑∂qil∂C∂wil∂qil∂fij∂wij∂dij∂fij∂yi∂dij
d与f时对称的,有dij=dji,fij=fjid_{ij}=d_{ji}, f_{ij}=f_{ji}dij=dji,fij=fji,故:
∂C∂yi=∑j(∑l∂C∂qjl∂qjl∂wji∂wji∂fji+∑l∂C∂qil∂qil∂wij∂wij∂fij)∂fij∂dij∂dij∂yi \frac{\partial C}{\partial y_i}=\sum_j(\sum_{l}\frac{\partial C}{\partial q_{jl}}\frac{\partial q_{jl}}{\partial w_{ji}}\frac{\partial w_{ji}}{\partial f_{ji}}+\sum_{l}\frac{\partial C}{\partial q_{il}}\frac{\partial q_{il}}{\partial w_{ij}}\frac{\partial w_{ij}}{\partial f_{ij}})\frac{\partial f_{ij}}{\partial d_{ij}}\frac{\partial d_{ij}}{\partial y_i} ∂yi∂C=j∑(l∑∂qjl∂C∂wji∂qjl∂fji∂wji+l∑∂qil∂C∂wij∂qil∂fij∂wij)∂dij∂fij∂yi∂dij
令:
∂C∂yi=∑j(kji+kij)∂fij∂dij∂dij∂yi \frac{\partial C}{\partial y_i}=\sum_j(k_{ji}+k_{ij})\frac{\partial f_{ij}}{\partial d_{ij}}\frac{\partial d_{ij}}{\partial y_i} ∂yi∂C=j∑(kji+kij)∂dij∂fij∂yi∂dijkij=∑l[∂C∂qil∂qil∂wij]∂wij∂fij k_{ij}=\sum_{l}\left[\frac{\partial C}{\partial q_{il}}\frac{\partial q_{il}}{\partial w_{ij}}\right]\frac{\partial w_{ij}}{\partial f_{ij}} kij=l∑[∂qil∂C∂wij∂qil]∂fij∂wij
接下来求解kij,∂qil∂wil∂wij∂fijk_{ij},\frac{\partial q_{il}}{\partial w_{il}}\frac{\partial w_{ij}}{\partial f_{ij}}kij,∂wil∂qil∂fij∂wij:
由于f,d表达式已知,直接求导得:
∂fij∂dij∂dij∂yi=2(yi−yj) \frac{\partial f_{ij}}{\partial d_{ij}}\frac{\partial d_{ij}}{\partial y_i}=2(y_i-y_j) ∂dij∂fij∂yi∂dij=2(yi−yj)
求kijk_{ij}kij过程:-
已知
qij=wij∑kwik=wijSi q_{ij}=\frac{w_{ij}}{\sum_{k}w_{ik}}=\frac{w_{ij}}{S_i} qij=∑kwikwij=Siwij∂qij∂wij=Si−wijSi2=1Si−wijSi2=1Si−qijSi \frac{\partial q_{ij}}{\partial w_{ij}}=\frac{S_i-w_{ij}}{S_i^2}=\frac1{S_i}-\frac{w_{ij}}{S_i^2}=\frac1{S_i}-\frac{q_{ij}}{S_i} ∂wij∂qij=Si2Si−wij=Si1−Si2wij=Si1−Siqij
∂qik∂wij=−wikSi2=−qikSi (l≠j) \frac{\partial q_{ik}}{\partial w_{ij}}=-\frac{w_{ik}}{S_i^2}=-\frac{q_{ik}}{S_i} \ \ \ \ (l\neq j) ∂wij∂qik=−Si2wik=−Siqik (l=j)
带入kijk_{ij}kij(i,j固定)得:
kij=∑l[∂C∂qil∂qil∂wij]∂wij∂fij=[∂C∂qij∂qij∂wij+∑l≠j∂C∂qil∂qil∂wij]∂wij∂fij=[∂C∂qij(1Si−qijSi)−∑l≠j∂C∂qilqikSi]∂wij∂fij=1Si[∂C∂qij−∑l∂C∂qilqil]∂wij∂fij \begin{aligned} k_{ij}&=\sum_{l}\left[\frac{\partial C}{\partial q_{il}}\frac{\partial q_{il}}{\partial w_{ij}}\right]\frac{\partial w_{ij}}{\partial f_{ij}}\\ &=\left[\frac{\partial C}{\partial q_{ij}}\frac{\partial q_{ij}}{\partial w_{ij}}+\sum_{l\neq j}\frac{\partial C}{\partial q_{il}}\frac{\partial q_{il}}{\partial w_{ij}}\right]\frac{\partial w_{ij}}{\partial f_{ij}}\\ &=\left[ \frac{\partial C}{\partial q_{ij}}(\frac1{S_i}-\frac{q_{ij}}{S_i}) - \sum_{l\neq j}\frac{\partial C}{\partial q_{il}}\frac{q_{ik}}{S_i} \right]\frac{\partial w_{ij}}{\partial f_{ij}}\\ &=\frac1{S_i}\left[ \frac{\partial C}{\partial q_{ij}}- \sum_{l}\frac{\partial C}{\partial q_{il}}q_{il}\right]\frac{\partial w_{ij}}{\partial f_{ij}} \end{aligned} kij=l∑[∂qil∂C∂wij∂qil]∂fij∂wij=⎣⎡∂qij∂C∂wij∂qij+l=j∑∂qil∂C∂wij∂qil⎦⎤∂fij∂wij=⎣⎡∂qij∂C(Si1−Siqij)−l=j∑∂qil∂CSiqik⎦⎤∂fij∂wij=Si1[∂qij∂C−l∑∂qil∂Cqil]∂fij∂wij -
求∂C∂qij\frac{\partial C}{\partial q_{ij}}∂qij∂C
C=∑i=1NDKL(Pi∣∣Qi)=∑i=1N∑j=1Nqijlog(pijqij)∂C∂qij=−pijqij C=\sum_{i=1}^ND_{KL(P_i||Q_i)}=\sum_{i=1}^N\sum_{j=1}^Nq_{ij}log(\frac{p_{ij}}{q_{ij}})\\ \frac{\partial C}{\partial q_{ij}}=-\frac{p_{ij}}{q_{ij}} C=i=1∑NDKL(Pi∣∣Qi)=i=1∑Nj=1∑Nqijlog(qijpij)∂qij∂C=−qijpij -
求∂wij∂fij\frac{\partial w_{ij}}{\partial f_{ij}}∂fij∂wij
fij=∣∣yi−yj∣∣2=dij2∂wij∂fij=−wij f_{ij}=||y_i-y_j||^2=d_{ij}^2\\ \frac{\partial w_{ij}}{\partial f_{ij}}=-w_{ij} fij=∣∣yi−yj∣∣2=dij2∂fij∂wij=−wij -
kij=1Si(−pijqij−∑l(−pilqil)qil)(−wij)=qij(pijqij−1)=qij−pij \begin{aligned} k_{ij} &=\frac1{S_i}(-\frac{p_{ij}}{q_{ij}}-\sum_l(-\frac{p_{il}}{q_{il}})q_{il})(-w_{ij})\\ &=q_{ij}(\frac{p_{ij}}{q_{ij}}-1)\\ &=q_{ij}-p_{ij} \end{aligned} kij=Si1(−qijpij−l∑(−qilpil)qil)(−wij)=qij(qijpij−1)=qij−pij
-
-
综上所述,得:
∂C∂yi=∑j(kji+kij)∂fij∂dij∂dij∂yi=2∑j(pij−qij+pji−qji)(yi−yj) \begin{aligned} \frac{\partial C}{\partial y_i}&=\sum_j(k_{ji}+k_{ij})\frac{\partial f_{ij}}{\partial d_{ij}}\frac{\partial d_{ij}}{\partial y_i}\\ &=2\sum_j(p_{ij}-q_{ij}+p_{ji}-q_{ji})(y_i-y_j) \end{aligned} ∂yi∂C=j∑(kji+kij)∂dij∂fij∂yi∂dij=2j∑(pij−qij+pji−qji)(yi−yj)
-
-
-
T-SNE方法
-
T-SNE方法与SNE方法的不同之处在于分布概率的计算:
- 低维下采用t分布
pj∣i=exp(−∣∣xi−xj∣∣22σi2)∑k≠iexp(−∣∣xi−xk∣∣22σi2)) p_{j|i}=\frac{exp(\frac{-||x_i-x_j||^2}{2\sigma_i^2})}{\sum_{k\neq i}exp(\frac{-||x_i-x_k||^2}{2\sigma_i^2}))} pj∣i=∑k=iexp(2σi2−∣∣xi−xk∣∣2))exp(2σi2−∣∣xi−xj∣∣2)
qj∣i=(1+∣∣yi−yj∣∣2)−1∑k≠l(1+∣∣yk−yl∣∣2)−1 q_{j|i}=\frac{(1+||y_i-y_j||^2)^{-1}}{\sum_{k\neq l}(1+||y_k-y_l||^2)^{-1}} qj∣i=∑k=l(1+∣∣yk−yl∣∣2)−1(1+∣∣yi−yj∣∣2)−1
- 采用对称概率,使用联合概率分布来替换条件概率分布
pij=pji=pij+pji2qij=qji=qij+qji2 p_{ij}=p_{ji}=\frac{p_{ij}+p_{ji}}2\\ q_{ij}=q_{ji}=\frac{q_{ij}+q_{ji}}2 pij=pji=2pij+pjiqij=qji=2qij+qji
-
目标依然是:
C=∑i=1NDKL(Pi∣∣Qi)=∑i=1N∑j=1Nqijlog(pijqij) C=\sum_{i=1}^ND_{KL(P_i||Q_i)}=\sum_{i=1}^N\sum_{j=1}^Nq_{ij}log(\frac{p_{ij}}{q_{ij}}) C=i=1∑NDKL(Pi∣∣Qi)=i=1∑Nj=1∑Nqijlog(qijpij) -
对于yiy_iyi的求导过程与SNE过程类似,最终求得:
∂C∂yi=4∑j(pij−qij)(1+∣∣yi−yj∣∣2)−1 \begin{aligned} \frac{\partial C}{\partial y_i}=4\sum_j(p_{ij}-q_{ij})(1+||y_i-y_j||^2)^{-1} \end{aligned} ∂yi∂C=4j∑(pij−qij)(1+∣∣yi−yj∣∣2)−1 -
更新公式:
yit=yit−1+η∂C∂yi+α(t)(yit−1−yit−2) y_i^t=y_i^{t-1}+\eta\frac{\partial C}{\partial y_i}+\alpha(t)(y_i^{t-1}-y_i^{t-2}) yit=yit−1+η∂yi∂C+α(t)(yit−1−yit−2)
-
方法流程
- T-SNE方法:
- 输入样本矩阵X=[x1,x2,...xn]X=[x_1,x_2,...x_n]X=[x1,x2,...xn]
- 指定困惑度Prep,迭代次数T, 学习速率η\etaη, 动量α(t)\alpha(t)α(t)
- 使用正态分布随机化目标矩阵Y=[y1,y2,...,yn]Y=[y_1,y_2,...,y_n]Y=[y1,y2,...,yn]
- 计算Prep下的原始条件概率P
- 迭代,t=1,2,...,Tt=1,2,...,Tt=1,2,...,T
- 计算低维分布条件概率Q
- 计算目标C与梯度∂C∂yi\frac{\partial C}{\partial y_i}∂yi∂C
- 更新:Yt=Yit−1+η∂C∂Y+α(t)(Yt−1−Yt−2)Y^t=Yi^{t-1}+\eta\frac{\partial C}{\partial Y}+\alpha(t)(Y^{t-1}-Y^{t-2})Yt=Yit−1+η∂Y∂C+α(t)(Yt−1−Yt−2)
- 结束,输出YTY^TYT
参考资料
【1】[从SNE到t-SNE再到LargeVis][http://bindog.github.io/blog/2016/06/04/from-sne-to-tsne-to-largevis/]
【2】[机器学习:Kullback-Leibler Divergence (KL 散度)][https://blog.csdn.net/matrix_space/article/details/80550561]
【3】[SNE与t-SNE梯度的推导][https://zhuanlan.zhihu.com/p/384698107]
【4】[t-SNE原理与推导][https://blog.csdn.net/scott198510/article/details/76099700]
更多推荐
所有评论(0)