Drawing(Under Construction!)

Drawing

「繪圖」。製造數據,盡量形成均衡造型。

專著《Handbook of Graph Drawing and Visualization》

相關應用:

1. Graph Drawing: Stress Majorization。無向圖畫成圖片。
2. Structural Optimization: Topology Optimization。調整模型結構。
3. Molecular Modeling: Energy Minimization。調整化學結構。

相對距離盡量小(盡量均勻)

我們希望數據盡量聚集、盡量不要四處散落。我們設計一個簡單的最佳化目標函數:兩兩距離平方總和盡量小。

min sum ‖xᵢ - xⱼ‖²
 x (i,j)

甚至引入Adjacency Matrix,只考慮部分的兩兩距離。

甚至引入權重,伸縮各個兩兩距離。

min sum wᵢⱼ ‖xᵢ - xⱼ‖²
 x (i,j)

可以改寫成二次型。主角從邊變點。

min xᵀLx

答案是所有點聚在一點、所有點皆相等,缺乏討論意義。大家習慣追加其他限制條件,後面章節將一一介紹。

位置必須固定

釘住某些點。挑選一些點,設定明確座標。

解的一部分變成了定值。撰寫數學式子時,可以重新調整維度,將定值排在一起,比較好看。

矩陣拆成四塊,向量拆成兩塊,展開,微分。

min [ x ]ᵀ [ L₀₀ L₀₁ ] [ x ]
    [ c ]  [ L₁₀ L₁₁ ] [ c ]
min xᵀ L₀₀ x + xᵀ L₀₁ c + cᵀ L₁₀ x + cᵀ L₁₁ c
solve (L₀₀ + L₀₀ᵀ) x + (L₀₁ + L₁₀ᵀ) c = 0
solve (L₀₀ + L₀₀ᵀ) x = - (L₀₁ + L₁₀ᵀ) c

對稱矩陣,同除以二,簡化式子。

solve L₀₀ x = - L₀₁ c

也有人先微分才展開,只取第一式。怪怪的,所幸結果一樣。

min [ x ]ᵀ [ L₀₀ L₀₁ ] [ x ]
    [ c ]  [ L₁₀ L₁₁ ] [ c ]
solve [ (L₀₀ + L₀₀ᵀ) (L₀₁ + L₁₀ᵀ) ] [ x ] = [ 0 ]
      [ (L₁₀ + L₀₁ᵀ) (L₁₁ + L₁₁ᵀ) ] [ c ]   [ 0 ]
solve (L₀₀ + L₀₀ᵀ) x + (L₀₁ + L₁₀ᵀ) c = 0
solve (L₀₀ + L₀₀ᵀ) x = - (L₀₁ + L₁₀ᵀ) c

對稱矩陣,同除以二,簡化式子。

min [ x ]ᵀ [ L₀₀ L₀₁ ] [ x ]
    [ c ]  [ L₁₀ L₁₁ ] [ c ]
solve [ L₀₀ L₀₁ ] [ x ] = [ 0 ]
      [ L₁₀ L₁₁ ] [ c ]   [ 0 ]
solve L₀₀ x + L₀₁ c = 0
solve L₀₀ x = - L₀₁ c

推導很囉嗦,實作卻很直白。沿用先前的演算法,釘住的點不必更新,就這樣而已。

相對位置盡量固定、絕對位置盡量固定

v是相對位置差異,p是絕對位置,w u是權重。

min sum { wᵢⱼ ‖(xᵢ - xⱼ) - vᵢⱼ‖² } + sum { ui ‖xᵢ - pᵢ‖² }

改寫成二次型。

min (Dx-v)ᵀW(Dx-v) + (x-p)ᵀU(x-p)

改寫成一次方程組。

solve Lx = b   where L = DᵀWD + U and b = DᵀWv + Up
W and U are diagonal matrices: diagonals are wij and ui.
D is difference matrix: in each row, column i is 1 and column j is -1.
x:n×1, v:n²×1, D:n²×n, W:n²×n², p:n×1, U:n×n, L:n×n, b:n×1.

仍然是對稱、半正定、對角優勢矩陣。沿用先前的演算法。

《Efficient Preconditioning of Laplacian Matrices for Computer Graphics》

相對距離盡量固定

d是相對距離。

min sum (‖xᵢ - xⱼ‖ - dᵢⱼ)²

如果指定了所有的兩兩距離,可以視作Multidimensional Scaling。如果指定了部分的兩兩距離,可以視作Matrix Completion,補足所有的兩兩距離。

Matrix Completion of D:
D = M⊙M       距離平方
D = UΣVᵀ       SVD(D)
Dₖ = UₖΣₖVₖᵀ     保留前k大的奇異值暨奇異向量們,做為距離矩陣。
D̃ = ½(Dₖ+Dₖᵀ)   調整成對稱矩陣。距離矩陣必須是對稱矩陣。

Multidimensional Scaling of D̃:
YᵀY = -½CD̃C    行列中心化、去掉係數
YᵀY = EΛEᵀ     Eigen(YᵀY)
Y = √Λ₃E₃ᵀ     保留前三大的特徵值暨特徵向量們

《Localization From Incomplete Euclidean Distance Matrix: Performance Analysis for the SVD–MDS Approach》

彈力位能盡量小(盡量均勻)

w是彈性係數,d是彈簧長度,整體是彈力位能總和。

min sum wᵢⱼ (‖xᵢ - xⱼ‖ - dᵢⱼ)²

我不知道能不能使用MDS。等你發論文。

演算法是數值模擬。各點各自求得加速度、更新速度、更新座標。請見本站文件「Particle Simulation」。

數值模擬宛如梯度下降法的改良版本。我不知道收斂條件為何。

表面積盡量小(盡量均勻)

方才只討論點與邊。當邊不相交(平面圖),則可以討論面。

面積公式:中垂線得到外心,外心將三角形切三塊。

缺點:直角導致外心落在邊界,面積為零;鈍角導致外心落在外部,面積為負值。

1. 三中垂線交於一點
2. 三個等腰三角形
3. alpha = a+b,邊ij對頂角是2a+2b,對半分是a+b = alpha
4. 底(|xi-xj|/2)  高cot(alpha)*(|xi-xj|/2)
5. 底乘以高除以二就是半個等腰三角形面積
6. 半個等腰三角形面積係數1/8
7. 三個等腰三角形面積係數1/4

採用此公式,面積變成了先前提到的兩兩距離平方形式。

min sum area_t
     t

min sum sum ½ ‖xᵢ - xⱼ‖ ½ ‖xᵢ - xⱼ‖ cot(θᵢⱼ)
     t   3    ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
               bottom          height

min sum sum ¼ cot(θᵢⱼ) ‖xᵢ - xⱼ‖²
     t   3

主角從面變邊。

min sum wᵢⱼ ‖xᵢ - xⱼ‖²   where wᵢⱼ = ¼ (cot(γ₋ᵢⱼ) + cot(γ₊ᵢⱼ)) 

未知數包含角度和位置,答案無限多個,缺乏討論意義。大家習慣指定角度大小,如此一來事情簡單多了。

改寫成二次型。省略係數。權重併入矩陣。主角從邊變點。

min xᵀLcotx

改寫成一次方程組。

solve Lcotx = 0

沿用先前的演算法即可。注意到,當沒有鈍角,才保證是對稱、半正定、對角優勢矩陣。

《Computing Discrete Minimal Surfaces and Their Conjugates》

表面積盡量小(盡量均勻)

更換面積公式,不必擔心鈍角。

面積公式:角平分線得到內心,內心將三角形切三塊。

缺點:公式太長,計算較久。

必是對稱、半正定、對角優勢矩陣。

wᵢⱼ = ½ (tan(½α₋) ⋅ tan(½β₋)) / (tan(½α₋) + tan(½β₋))
    + ½ (tan(½α₊) ⋅ tan(½β₊)) / (tan(½α₊) + tan(½β₊))

偷懶方式。【尚待確認】

wᵢⱼ = ½ (tan(½α₋) + tan(½α₊))

《Mean Value Coordinates》

延伸閱讀:權重設定

點對距離總和 Wᵢⱼ = 1
表面積(外心)Wᵢⱼ = (cot(γ₋) + cot(γ₊)) / 4
表面積(內心)Wᵢⱼ = ((tan(α₋/2)⋅tan(β₋/2)) / (tan(α₋/2)+tan(β₋/2)) / 2
           + ((tan(α₊/2)⋅tan(β₊/2)) / (tan(α₊/2)+tan(β₊/2)) / 2
體積     Wᵢⱼ = ?

α₋ = ∠j₋ij, β₋ = ∠j₋ji, γ₋ = ∠ij₋j
α₊ = ∠j₊ij, β₊ = ∠j₊ji, γ₊ = ∠ij₊j

網格必須垂直

追加限制條件:w1+...wn=w、h1+...+hn=h。

演算法是二次規劃。

Deformation(Under Construction!)

Deformation

「形變」。調整數據,盡量保持原始造型。

相對位置盡量相同(形狀盡量相同)

x是已知的原始位置,y是未知的新位置。

min sum ‖(yi - yj) - (xi - xj)‖²

改寫成二次型。

min (y-x)ᵀL(y-x)

改寫成一次方程組。

solve Ly = b   where b = Lx

既然x已知,此問題即是於先前提到的:相對位置盡量固定。

先前章節介紹的主題,一律適用,不再贅述。

盡量相似變換、盡量剛體變換

  rigid transformation matrix: ?
similar transformation matrix: min ‖A + Aᵀ - 2tr(A)I‖²

追加最佳化函數:變換矩陣指定格式。

仿射變換之後完全相同

缺乏討論意義。

主角是點、主角是面,兩者式子不同。此處主角是面。

仿射變換之後梯散盡量相同

min sum ‖sum (yi - yj) - Aₖ sum (xi - xj)‖²

主角是點、主角是面,兩者式子不同。此處主角是點。

min sum { ‖Aₖxi - yi‖² + sum ‖Aₖxj - yj‖² }

原作者不知道哪根筋不對勁,故意修改數學式子。

問題變成了:仿射變換之後盡量相同,主角是點。

《Laplacian Surface Editing》

相似變換之後盡量相同(夾角盡量相同)

min sum ‖(yi - yj) - Sₖ(xi - xj)‖²

Alignment + Deformation。

相似變換是位移、整體縮放、旋轉。剛體變換是位移、旋轉。

主角是點、主角是面,兩者式子不同。此處主角是面。

演算法是Block Coordinate Descent:固定R求得y,固定y求得R,兩者不斷輪流。換句話說,Procrustes Analysis與Laplace Equation不斷輪流。

Laplacian Matrix是定值、是對稱矩陣,可以預先做Cholesky Decomposition,以便快速求解。

重心是定值,可以預先處理位移,將重心移到原點。

此演算法有人稱作Global-Local Method。Global解Y全域調整座標,Local解S局部相似變換。

不加權重的話,位置不固定。通常我們都加cot,讓表面積盡量相同。

剛體變換之後盡量相同

min sum ‖(yi - yj) - R(xi - xj)‖²
C = XXᵀ = UΣVᵀ
R = UVᵀ

《As-Rigid-As-Possible Surface Modeling》,剛體,座標下降法,主角是點。

整體縮放變換之後盡量相同

簡單明瞭公式解,不必奇異值分解。

E = sum sum ‖ (yj - yi) - st (xj - xi) ‖²
     t   3

dE
--- = sum sum { 2 (yj - yi) (xj - xi) - 2 st ‖yj - yi‖² } = 0
dst    t   3

     sum sum (yj - yi) (xj - xi)
st = ---------------------------
         sum sum ‖yj - yi‖²

另外再拿向量長度做regularization,以免向量長度變化無常。

sum sum ‖ (yj - yi) - lij (xj - xi) ‖²
 t   3

where lij = ‖yj - yi‖ / ‖xj - xi‖

《Optimized Scale-and-Stretch for Image Resizing》

延伸閱讀:對稱

min sum ‖(yi - yj) - Sₖ(xi - xj)‖² + ‖Sₖ⁻¹(yi - yj) - (xi - xj)‖²

正向轉換、反向轉換,通通計入誤差。

我不知道效果如何。

三角形頂點與對邊的相對尺寸盡量相同

對邊做為第一座標軸,對邊轉90度做為第二座標軸,頂點求座標值。三角形三頂點得到三座標值。

原三角形的三座標值,做為新三角形的三座標值。新三角形三頂點預定位置、以及用對邊暨座標推得的位置,兩者差異盡量小。

https://blog.csdn.net/codes_first/article/details/79462154
1. 全域三角形頂點位置比例
2. 逐個三角形頂點位置比例
3. 全域相對位置

三步得到答案。不必global-local輪流下去直到收斂。

《As-Rigid-As-Possible Shape Manipulation》,全等,Quadratic Form Optimization,主角是面。

Shape Interpolation

不只要結果,還要過程。

旋轉、縮放分開內插

transformation: Q
polar decomposition: Q = RS     旋轉與正定分開內插
R = UVᵀ is a rotation matrix.
S = VΣVᵀ is a stretch tensor. (symmetric positive definite matrix)
transformation interpolation: Qt = Rh((1-h)I + hS) , Rh = slerp
gradient interpolation: Gt = Qt(G0)  三個維度分開做
梯度用cot laplacian?
有了梯度之後,解poisson equation得到座標

《Poisson Shape Interpolation》

路徑必須固定

《As-Rigid-As-Possible Shape Interpolation》

仿射變換盡量相同

需要追加限制條件:鄰面們的公用點,變換之後是同一點。

min sum ‖ St - Tt ‖²   subject to Tj(xi) + bj = Tk(xi) + bk
     t

St : source linear transformation of triangle t
Tt : target linear transformation of triangle t
Tj & Tk: neighbor triangle of vertex xi

《Deformation Transfer for Triangle Meshes》

位置與速度盡量相同,能量必須固定

min sum ‖xi' - xi‖² + ‖vi' - vi‖²  subject to c(x) = 0
x x'是先後位置,v v'是先後速度。c(x)是能量。

二次函數有著高速演算法:Newton-Lagrange Method與Projected Gradient Method兩者合體。

乘子法-->微分方程組--->手動微分--->係數和乘數取出來變向量--->解大矩陣
qk+1 = argmin 1/2 ‖q - qₖ‖²D  subject to c(qₖ) + ∇c(qₖ)ᵀ(q - qₖ) = 0
         q
solve λk+1: [∇c(qₖ)ᵀ D⁻¹ ∇c(qₖ)] λk+1 = c(qₖ)
solve qk+1: qk+1 = qk - D⁻¹ ∇c(qk) λk+1

《FEPR: Fast Energy Projection for Real-Time Simulation of Deformable Objects》

Embedding(Under Construction!)

Embedding(Dimensionality Reduction)

「嵌入」。更換數據所在空間。例如從三維換成二維。例如從二維換成三維。例如從球面換成平面。例如從曲面換成環面。

嵌入方式有許多種。例如投影就是其中一種嵌入方式。例如訂立座標系統並且實施座標轉換,也是其中一種嵌入方式。

嵌入時,我們通常希望儘量保留數據的原始特性。特性可以是數據的聚散程度、數據之間的距離遠近。計算學家針對各種特性,設計各種演算法。

這裡先不談太廣,僅討論最簡單的情況:數據從N維空間換成M維空間。細分為三種情況:維度變小、維度不變、維度變大。

後兩者缺乏討論意義──數據不變、數據補零不就好了。因此我們僅討論維度變小。此時「嵌入」的意義就變成了:找到一個函數,讓一堆數據經過函數變換,減少數據維度。

演算法(Principal Component Analysis)

嵌入時,採用垂直投影。

實施Low-rank PCA,保留大的、捨棄小的特徵值暨特徵向量,只做投影、略過位移、略過縮放。

演算法(Multidimensional Scaling)

嵌入時,盡量保留所有點對距離。

演算法(Random Projection)

https://en.wikipedia.org/wiki/Random_projection

線性函數的本質是旋轉、鏡射、縮放,數據的相對位置不變。隨便找個線性函數做為嵌入函數,都能大致保留數據的相對位置,但是會大幅改變數據的相對距離。

而隨機導致分散,分散導致正交,正交導致距離不變。

絕聖棄智,民利百倍。

Manifold Embedding(Manifold Learning)

更換數據所在空間,從N維空間的流形換成M維空間。

一、選擇鄰居:全部數據、Fixed-radius Near Neighbor、K-Nearest Neighbor。
二、套用核函數:無、Gaussian Kernel、Heat Kernel。
三、保留特性:距離、梯散、內插函數。

核函數採用鐘形函數,以對付流形:超過一定距離,鄰居關係迅速減弱。

各點邊數總和Wᵢⱼ = 1 / ‖xᵢ - xⱼ‖²。

演算法清單:http://www.cs.cmu.edu/~liuy/distlearn.htm

演算法(Isomap)

嵌入時,盡量保留所有點對距離。

一、K-Nearest Neighbor,盡量讓距離較近的數據成為鄰居。
二、All-Pairs Shortest Paths,求出所有點對距離。
三、Multidimensional Scaling,盡量保留所有點對距離。

演算法(Laplacian Eigenmap)

嵌入時,盡量讓相鄰數據距離均衡。

一、K-Nearest Neighbor,盡量讓距離較近的數據成為鄰居。
二、Laplacian Smoothing,盡量讓相鄰數據距離均衡。

Laplacian Smoothing改寫成Dirichlet Energy Minimization。

minimize yᵀLy

各點邊數不一致、梯散不等比、距離不均衡。因此實施正規化。

正解是最小的特徵值暨特徵向量,缺乏討論意義。改取次小的特徵值的特徵向量們。M個特徵向量構成M維數據。v變回y。

minimize yᵀ√D⁻¹L√D⁻¹y
minimize vᵀLv           (v = √D⁻¹y)

令特徵向量長度為一,化作廣義特徵值。

minimize yᵀ√D⁻¹L√D⁻¹y          subject to yᵀy = 1 
minimize vᵀLv                  subject to vᵀDv = 1   (v = √D⁻¹y)
minimize vᵀLv - λ (vᵀDv - 1)
solve Lv - λDv = 0
solve Lv = λDv

延伸閱讀:Laplacian Eigenmap原始版本

原始論文邏輯不通、思維跳躍。我試著腦補一下。

原始論文採取了其他解:令平均值是零、變異數是一。

minimize yᵀ√D⁻¹L√D⁻¹y   subject to yᵀ𝟏 = 0 and yᵀy = 1 
minimize vᵀLv           subject to vᵀ√D𝟏 = 0 and vᵀDv = 1

投影梯度法,求得最佳解位置,只能得到一維數據,無法得到高維數據(所有維度數值相同實在太醜)。折衷方式是特徵向量。

其中一個限制條件當作沒看到,另一個限制條件併入目標函數。化作廣義特徵值,取次小的特徵值的特徵向量們。M個特徵向量構成M維數據。

minimize vᵀLv                  subject to vᵀ√D𝟏 = 0 and vᵀDv = 1
minimize vᵀLv - λ (vᵀDv - 1)   subject to vᵀ√D𝟏 = 0
solve Lv - λDv = 0             subject to vᵀ√D𝟏 = 0
solve Lv = λDv                 subject to vᵀ√D𝟏 = 0

原始論文聲稱限制條件是vᵀD𝟏 = 0與vᵀDv = 1。反正一樣。

solve Lv = λDv                 subject to vᵀD𝟏 = 0

v直接當作答案,不必變回y。v誤植為y。

solve Ly = λDy                 subject to yᵀD𝟏 = 0

演算法(Linear Laplacian Eigenmap)

Laplacian Eigenmap改良版。嵌入時,必須是線性變換。

線性變換的優點:數據相對位置大致相同。

LA追加線性變換,效果等同PCA暨LA。

一、K-Nearest Neighbor,盡量讓距離較近的數據成為鄰居。
二、Linear Transformation & Laplacian Smoothing,
  數據實施某種線性變換,盡量讓相鄰數據距離均衡。

二次型多維版本,代入Y = AX,事情迎刃而解。

求得X√D⁻¹L√D⁻¹Xᵀ,取次小的特徵值的特徵向量們,M個特徵向量做為A的橫條,再以A和X求得Y。

minimize Y√D⁻¹L√D⁻¹Yᵀ      subject to Y = AX
minimize AX√D⁻¹L√D⁻¹XᵀAᵀ

令特徵向量長度為一、互相垂直,化作廣義特徵值。

minimize Y√D⁻¹L√D⁻¹Yᵀ      subject to Y = AX and YYᵀ = I
minimize AX√D⁻¹L√D⁻¹XᵀAᵀ   subject to AXXᵀAᵀ = I
minimize AX√D⁻¹L√D⁻¹XᵀAᵀ - λ (AXXᵀAᵀ - I)
solve X√D⁻¹L√D⁻¹Xᵀa - λXXᵀa = 0
solve (X√D⁻¹L√D⁻¹Xᵀ)a = λ(XXᵀ)a

原始論文令V = X√D⁻¹,式子稍微清爽。

solve VLVᵀa = λVDVᵀa   (V = X√D⁻¹)

原始論文繼承了Laplacian Eigenmap的錯誤,V誤植為X。

solve XLXᵀa = λXDXᵀa

演算法(Self-organizing Map)

https://medium.com/@CCstruggled/d212534160e0

嵌入時,盡量讓相鄰數據距離縮短、互相靠近?

找到最相像的節點,更新鄰居,有如注水。

似乎可以解釋成Local Laplacian Smoothing?

演算法(Poisson Embedding)【尚待確認】

嵌入時,盡量保持梯度相同(梯散相同)。

一、K-Nearest Neighbor,盡量讓距離較近的數據成為鄰居。
二、Poisson Equation,盡量保持梯散相同。

我不知道這要怎麼解。我還沒有看人家解過。

minimize (Xᵀ-Yᵀ)L(Xᵀ-Yᵀ)
solve LXᵀ = LYᵀ
minimize ‖M - LY‖²
minimize MᵀM - MᵀLY - (LY)ᵀM + (LY)ᵀLY

調整Laplacian Matrix權重,調整梯散大小。

演算法(Locally Linear Embedding)

https://www.cnblogs.com/xbinworld/archive/2012/07/09/LLE.html

Poisson Equation改良版。嵌入時,盡量保持梯散為零。

一、K-Nearest Neighbor,盡量讓距離較近的數據成為鄰居。
二、Laplace Equation,針對原數據,令梯散為零,求得權重。
三、Laplace Equation,針對新數據,盡量保持梯散相同。

數據減去相鄰數據的加權平均值,就是梯散!

minimize ‖Y - YWᵀ‖²   subject to YYᵀ = I
minimize YMYᵀ         subject to YYᵀ = I   where M = (I-W)ᵀ(I-W)
solve My = λy
minimize ‖LYᵀ‖²       subject to YYᵀ = I   where L = I - W
minimize YLᵀLYᵀ       subject to YYᵀ = I
solve LᵀLy = λy

演算法(Linear Locally Linear Embedding)

Locally Linear Embedding改良版。嵌入時,必須是線性變換。

solve (XMXᵀ)a = λ(XXᵀ)a     where M = (I-W)ᵀ(I-W)

演算法(Stochastic Neighbor Embedding)

http://www.datakit.cn/blog/2017/02/05/t_sne_full.html

嵌入時,盡量保持分布相同。

原數據、新數據,分別求得高斯混和模型?令兩個分布的距離盡量小,距離採用Kullback-Leibler Divergence。

核函數是常態分布,即是此演算法,簡稱SNE。

核函數是學生t分布,效果更好,簡稱t-SNE。

延伸閱讀:Stochastic Neighbor Embedding等價觀點

嵌入時,盡量保持內插函數相同。

數據添加一個新維度做為函數值,一律是1。原數據X、新數據Y,分別實施Inverse Distance Weighting Interpolation(原始論文的分母少了一項)。令兩個內插函數的距離盡量小。距離是N個數據的函數值,函數值取log相減,越大越好。

核函數是指數函數,超過一定距離,距離迅速暴增。

Unsupervised Manifold Embedding(Clustering)

數據沒有類別。嵌入時,盡量同類相聚。

演算法(Spectral Clustering)

一、K-Nearest Neighbor,盡量讓距離較近的數據成為鄰居。
二、Laplacian Smoothing,盡量讓相鄰數據距離均衡。
三、K-Means Clustering,盡量讓相鄰數據歸類於同一組。

前兩步驟正是Laplacian Eigenmap:Laplacian Matrix取次小的M個特徵向量,數據從N維降為M維。

原始論文聲稱此方法等價於Maximum Cut近似解。我想應該是哪裡搞錯了。Maximum Cut當中,向量元素必須是0或1;而特徵向量元素通常不是0或1。

Supervised Manifold Embedding(Classification)

數據具有類別。嵌入時,盡量同類相聚。

演算法(Linear Discriminative Analysis)

援引PCA的概念。

尋找一條直線,數據投影到直線之後,各類數據的平均值的變異數盡量大(異類盡量散開),各類數據各自的變異數盡量小(同類盡量聚集)。

演算法(Neighborhood Component Analysis)

https://en.wikipedia.org/wiki/Neighbourhood_components_analysis

援引Stochastic Neighbor Embedding的概念。

尋找一個線性變換,數據實施變換之後,各類數據各自求得高斯混和模型,分布總和越大越好?

鄰居:K-Nearest Neighbor。核函數:Gaussian kernel。