ML Lecture 15: Unsupervised Learning - Neighbor Embedding

PDF

Manifold Learning

  • 在高維空間上,只有靠得比較近的 data point 做 Euclidean Distance 才合理,若 data point 之間離得比較遠,使用 Euclidean Distance 就不合理,因此降維使得 Euclidean Distance 合理

Locally Linear Embedding (LLE)

  1. 先選出 xi 的 neighbor xj,他們之間的關係寫做 wij
  2. 希望 xi 可以寫成 neighbors 的 linear combination,因此要 minimize ixijwijxj2,得到所有 wij
  3. 希望降維後的 space 仍然保持原來 space 的關係,也就是希望可以利用同樣的 linear combination 產生 zi,因此要 minimize izijwijzj2

LLE 需要選好 neighbor 的數量,才會 work

  • 太少不會 work
  • 太多也不 work,原因:回想 manifold learning,距離太遠的 data point 使用 Euclidean Distance 不合理

Laplacian Eigenmap / Spectral Clustering

  • Graph-based approach
  • Assumption: if x1 and x2 are close in a high density region, z1 and z2 are then close to each other

回想 semi-supervised learning

S=12i,jwi,j(yiyj)2=yTLy

- w_{i,j}: 相連的data i和j的相似程度,若沒相連則=0

L=xrC(yr,ˆyr)+λS

  1. S=12i,jwijzizj2
    • 寫平方不太好,寫 Euclidean Distance 比較好
  2. 但是這樣的 constraint 還不夠,因為它會想把所有 z 都設 0,所以要再對 z 下 constraint
    • if the dim of z is M, Span{z1,...,zN}=RM
  3. 這樣解出來的 z 其實就是 graph Laplacian 的 Eigen Vector
  4. 找到 z 之後再對 z 做 clustering,這種做法叫 spectral clustering

T-distributed Stochastic Neighbor Embedding(t-SNE)

之前做法的問題

  • 只假設相近的 data point 要相似,沒有說不相近的要分開

t-SNE

  1. 計算所有 x 之間的相似度 S(xi,xj)
    • 之後會說相似度的計算方式
  2. S 做 normalize 得到 P(xj|xi)=S(xi,xj)kiS(xi,xk)
    • normalize 是必要的,因為你不知道計算出的 S scale 在什麼範圍
  3. 可以用類似的方式對 lower dimension 計算 Q(zj|zi)=S(zi,zj)kiS(zi,zk)
  4. 找到 z 使得 PQ 的 distribution 越接近越好,因此 minimize L=iKL(P(|xi)||Q(|zi))=ij.....
    • 可以用 gradient descent 解這問題
  • 將x降維到z上
  • P(xj|xi): 對於xi而言,xj與他相似的機率,各個xj的此項加總為1
  • 找出一組 z 使得 P(|xi)Q(|zi) 之間的 KL Divergence越小越好
  • data point 很多的時候,可能先做 PCA 降維,再 t-SNE 比較快
  • 每有一個新的 data point 就要重 train 一次 t-SNE,所以通常只用來 visualize

Similarity Measure

之前的 graph-based 方法說用 RBF function 比較好

因此計算 x 之間的 similarity 時:

  • S(xi,xj)=exp(xixj2)

而計算 z 的 similarity 時:

SNE

  • S(zi,zj)=exp(zizj2)
  • 合理,xz 使用同樣的 similarity function

t-SNE

  • S(zi,zj)=11+zizj2
    • 可是錄音說是 Euclidean Distance 的平方欸@@
  • 利用 t-distribution,則本來遠的會拉更遠

results matching ""

    No results matching ""