Centering

Centering

「中心化」。各個維度的總和調成0。數據減去平均數。

幾何意義:數據中心位移至原點。

All-one Matrix

「全一矩陣」。元素全是1。沒有反矩陣。

    [ 1 1 1 ]
𝟏 = [ 1 1 1 ]
    [ 1 1 1 ]

用途:總和、平均數、離差(中心化的結果)。

X = {(1,2,3), (4,5,6), (5,0,4), (3,3,3), (7,5,9)}

data:               one:
                        [ 1 1 1 1 1 ]
    [ 1 4 5 3 7 ]       [ 1 1 1 1 1 ]
X = [ 2 5 0 3 5 ]   𝟏 = [ 1 1 1 1 1 ]
    [ 3 6 4 3 9 ]       [ 1 1 1 1 1 ]
                        [ 1 1 1 1 1 ]

sum:
       [ 20 20 20 20 20 ]
Xsum = [ 15 15 15 15 15 ] = X𝟏
       [ 25 25 25 25 25 ]

mean:
    [ 4 4 4 4 4 ]
X̄ = [ 3 3 3 3 3 ] = (X𝟏)/n = X(𝟏/n)
    [ 5 5 5 5 5 ]

deviation:
    [ 1-4 4-4 5-4 3-4 7-4 ]
X̃ = [ 2-3 5-3 0-3 3-3 5-3 ] = X - X(𝟏/n) = X(I - 𝟏/n) = XC
    [ 3-5 6-5 4-5 3-5 9-5 ]

Centering Matrix

「中心化矩陣」。中心化寫成矩陣形式。沒有反矩陣。

              [ 1 0 0 ]     [ 1 1 1 ]   [  ⅔ -⅓ -⅓ ]
C = I - 𝟏/n = [ 0 1 0 ] - ⅓ [ 1 1 1 ] = [ -⅓  ⅔ -⅓ ]
              [ 0 0 1 ]     [ 1 1 1 ]   [ -⅓ -⅓  ⅔ ]

中心化矩陣乘在數據矩陣的右邊。

X = {(1,2,3), (4,5,6), (5,0,4), (3,3,3), (7,5,9)}

data:               centering:
                        [  ⅔ -⅓ -⅓ -⅓ -⅓ ]
    [ 1 4 5 3 7 ]       [ -⅓  ⅔ -⅓ -⅓ -⅓ ]
X = [ 2 5 0 3 5 ]   C = [ -⅓ -⅓  ⅔ -⅓ -⅓ ]
    [ 3 6 4 3 9 ]       [ -⅓ -⅓ -⅓  ⅔ -⅓ ]
                        [ -⅓ -⅓ -⅓ -⅓  ⅔ ]

deviation:
                  [  ⅔ -⅓ -⅓ -⅓ -⅓ ]
    [ 1 4 5 3 7 ] [ -⅓  ⅔ -⅓ -⅓ -⅓ ]
X̃ = [ 2 5 0 3 5 ] [ -⅓ -⅓  ⅔ -⅓ -⅓ ] = XC
    [ 3 6 4 3 9 ] [ -⅓ -⅓ -⅓  ⅔ -⅓ ]
                  [ -⅓ -⅓ -⅓ -⅓  ⅔ ]

中心化矩陣可以左乘或右乘,效果不同。

                                          [ 1 4 5 3 7 ]  
                                                +        
[ 1 ]   [ 4 ]   [ 5 ]   [ 3 ]   [ 7 ]     [ 2 5 0 3 5 ]  
[ 2 ] + [ 5 ] + [ 0 ] + [ 3 ] + [ 5 ]           +        
[ 3 ]   [ 6 ]   [ 4 ]   [ 3 ]   [ 9 ]     [ 3 6 4 3 9 ]  

                X𝟏n×1                         𝟏1×dX
(每個橫條分開調整)直條們總和   X𝟏n×n
(每個橫條分開調整)直條們平均   X(𝟏n×n/n)
(每個橫條分開調整)各直條減去平均 X - X(𝟏/n) = X(I - 𝟏/n) = XC
(每個直條分開調整)橫條們總和   𝟏d×dX
(每個直條分開調整)橫條們平均   (𝟏d×d/d)X
(每個直條分開調整)各橫條減去平均 X - (𝟏/d)X = (I - 𝟏/d)X = CX

中心化寫成矩陣運算,繁文縟節。人類深不見底的惡意。

Standardizing

Second Moment Normalization【尚無正式名稱】

「二階動差正規化」。各個維度的平方總和調成1。數據除以平方總和平方根。

矩陣運算觀點:數據矩陣自身外積,對角線調成1。

幾何意義:各個維度的平方總和縮放至1,導致數據長度平方總和縮放至d。

Elementwise Product(Hadamard Product)

「矩陣逐項乘法」、「矩陣點乘」。兩個矩陣對應元素相乘。

    [ 1 4 ]       [ 6 3 ]          [  6 12 ]
A = [ 2 5 ]   B = [ 5 2 ]   A⊙B = [ 10 10 ]
    [ 3 6 ]       [ 4 1 ]          [ 12  6 ]

用途:每項平方、平方總和、平方總和平方根。

data:               squares:
    [ 1 4 5 3 7 ]          [ 1 16 25 9 49 ]
X = [ 2 5 0 3 5 ]   X⊙X = [ 4 25  0 9 25 ]
    [ 3 6 4 3 9 ]          [ 9 36 16 9 81 ]

sum of squares:     square root of sum of squares:
          [ 100 ]               [ 10.00 ]
(X⊙X)1⃗ = [  63 ]   √(X⊙X)1⃗ᵢ = [  7.93 ]
          [ 151 ]               [ 12.28 ]

inverse of square root of sum of squares:
              [ 0.10 ]
1/√(X⊙X)1⃗ᵢ = [ 0.12 ]
              [ 0.08 ]

Second Moment Normalization Matrix【尚無正式名稱】

「二階動差正規化矩陣」。縮放矩陣。

    [ 0.10 0    0    ]
S = [ 0    0.12 0    ]
    [ 0    0    0.08 ]

左乘。

     [ 1/0.10 4/0.10 5/0.10 3/0.10 7/0.10 ]
SX = [ 2/0.12 5/0.12 0/0.12 3/0.12 5/0.12 ]
     [ 3/0.08 6/0.08 4/0.08 3/0.08 9/0.08 ]

數據平方總和調成1。自身外積,對角線調成1。

            [ 1    0.83 0.96 ]
(SX)(SX)ᵀ = [ 0.83 1    0.92 ]
            [ 0.96 0.92 1    ]

數學公式:自身點乘、橫向加總、平方根倒數。

S = diag(1/√(X⊙X)1⃗ᵢ) = √((X⊙X)𝟏)⊙I⁻¹

二階動差正規化寫成矩陣運算,繁文縟節。人類太可惡。

Standardizing(Batch Normalization)

「中心化、二階動差正規化」併稱「標準化」。

計算順序影響結果。大家習慣先做中心化、再做二階動差正規化,恰好讓兩者同時成立。

Whitening

Decorrelation

「不相關化」、「去相關」。相異維度的點積調成0。

矩陣運算觀點:數據矩陣自身外積,非對角線調成0。

幾何意義:數據矩形面積總和調成零。一三象限面積為正、二四象限面積為負。也許可以想成是將數據擺正。

內積分解【尚無正式名稱】

「內積分解」。A = BᵀB。對稱半正定矩陣分解成矩陣內積。

答案無限多個。常見解法:特徵分解、Cholesky分解。

eigendecomposition:                 Cholesky decomposition:
A = EΛEᵀ= E√Λ√ΛEᵀ = (√ΛEᵀ)ᵀ(√ΛEᵀ)   A = LLᵀ
conjugate decomposition:            conjugate decomposition:
⟌A = √ΛEᵀ                           ⟌A = Lᵀ

Decorrelation Matrix

「不相關化矩陣」、「去相關矩陣」。有許多種方式,通常是旋轉矩陣。

    [ -0.56 -0.43 -0.71 ]
R = [  0.60 -0.80  0.01 ]
    [ -0.57 -0.42  0.71 ]

左乘。

     [ -3.50  1.59 -1.49 -1.97  5.37 ]
RX = [ -1.08 -1.56  2.96 -0.66  0.34 ]
     [  0.75 -0.14 -0.01 -0.82  0.23 ]

相異維度的點積調成0。自身外積,非對角線調成0。

            [ 299.72   0.00  0.00 ]
(RX)(RX)ᵀ = [   0.00  12.96  0.00 ]
            [   0.00   0.00  1.32 ]

數學公式:自身外積、正規化、內積分解。

R = ⟌⧚XXᵀ⧛

不相關化寫成矩陣運算,繁文縟節。人類的能力是有極限的。

XXᵀ特徵分解

兩種演算法:X奇異值分解、XXᵀ特徵分解。兩者等價。

(RX)(RX)ᵀ = D     where D is diagonal
RXXᵀRᵀ    = D
REΛEᵀRᵀ   = D     where Λ is diagonal, E is orthogonal
  Λ       = D     let R = E⁻¹ = Eᵀ

相異維度的點積調成0,自身外積調成對角線矩陣。

特徵分解XXᵀ = EΛEᵀ。XXᵀ是對稱半正定矩陣,特徵值Λ是非負對角線矩陣、特徵向量E是正規正交矩陣。

令R和E相消,剩下對角線矩陣,滿足等式。E⁻¹做為不相關化矩陣。

X奇異值分解

X = UΣVᵀ             where Σ is diagonal, U and V are orthogonal
U⁻¹X = ΣVᵀ           let R = U⁻¹ = Uᵀ
(ΣVᵀ)(ΣVᵀ)ᵀ = Σ²     where Σ² is diagonal

奇異值分解Xd×n = Ud×dΣd×nVᵀn×n。奇異值Σ是非負對角線矩陣。奇異向量U和V是正規正交矩陣。

ΣVᵀ恰是不相關數據矩陣。ΣVᵀ自身外積恰是對角線矩陣。

令U移項。U⁻¹做為不相關化矩陣。

或者直接將ΣVᵀ當作不相關化結果,自行校正矩陣大小。

或者採用瘦奇異值分解,自行校正矩陣大小,計算速度更快。

X奇異值分解=XXᵀ特徵分解

X = UΣVᵀ
XXᵀ = EΛEᵀ = UΣ²Uᵀ
thus E = U and Λ = Σ²

X奇異值分解,時間複雜度較低。

一般來說,實數對稱半正定矩陣XXᵀ的特徵分解,比普通矩陣X的奇異值分解來得快。可是當X是超大矩陣的情況下,預先計算XXᵀ相當費時,而奇異值分解不必計算XXᵀ,逆轉勝。

去除鏡射

特徵向量不具方向性。特徵向量可以任意對調次序、顛倒方向。

正確答案有許多種。正確答案可以包含鏡射,也可以不包含。

想要去除鏡射,一種想法是窮舉每個向量的方向,從中找到旋轉矩陣。然而時間複雜度太高,沒人這樣做。

另一種想法是讓向量成為右手座標系。

一、標準座標軸(單位矩陣I)是右手座標系。
二、右手座標系,經過鏡射,得到左手座標系。
  左手座標系,經過鏡射,得到右手坐標系。
三、右手座標系,經過偶數次鏡射,仍是右手座標系。
  右手座標系,經過奇數次鏡射,則是左手座標系。
四、偶數次鏡射,得視作一次旋轉。
五、右手座標系經過旋轉,仍是右手座標系。

determinant可以判斷鏡射次數、判斷左手右手座標系。

det(U) = +1,鏡射偶數次,右手座標系。det(U) = -1,鏡射奇數次,左手座標系;再增加一次鏡射,得到右手座標系,例如任取一個向量顛倒方向(元素通通添上負號)。

注意到,左右奇異向量,必須一起顛倒方向。

Whitening

「中心化、二階動差正規化、不相關化」併稱「白化」。

計算順序影響結果。大家習慣依序做中心化、不相關化、二階動差正規化,恰好讓三者同時成立。

白化:計算學的定義方式

大量數據實施白化,將數據搓圓擺正。

中心化:各個維度的總和調成0。Σvᵢ = vᵀ1⃗ = 0, ∀v ∈ rows(X)
不相關化:相異維度的點積調成0。v∙w = vᵀw = 0, ∀v,w ∈ rows(X) and v≠w
二階動差正規化:各個維度的平方總和調成1。‖v‖² = vᵀv = 1, ∀v ∈ rows(X)

矩陣運算觀點:中心化之後,相同維度點積調成1,相異維度點積調成0。中心化結果的自身外積調成單位矩陣I。

奇異值分解X̃ = UΣVᵀ。Vᵀ自身外積恰是單位矩陣I。

令UΣ移項。Σ⁻¹Uᵀ做為白化矩陣。Vᵀ做為白化結果。

白化:統計學的定義方式

計算學採用離散數值,單位量1,彙集之後形成總和。

統計學採用機率密度函數,機率1/n,彙集之後形成平均。

優點:即便數據數量不同,仍可比較大小。

缺點:計算步驟更多。

         計算學     統計學
中心化    |總和調成0  |平均數調成0  |兩者等價
二階動差正規化|平方總和調成1|平方平均數調成1|再乘以√n(或者√n-1)
不相關化   |兩兩點積調成0|相關數調成0  |兩者等價

計算學採用大量數據。

統計學採用分布。分布有三個重要指標、兩個重要性質。

平均數:數據的中心。數據期望值。E[X]
變異數:數據的疏密。數據減去期望值、取平方、期望值。E[(X-E[X])²]
共變異數:數據的正反比。數據減去期望值、相乘、期望值。E[(X-E[X])(Y-E[Y])]
獨立:平行截面均為相同分布。
不相關:相異維度的相關數是0。(可以改成相關係數、共變異數,意義相同。)

統計學當中,中心化、標準化、白化,以指標與性質來描述。

中心化:調整平均數。
標準化:依序調整平均數、變異數。
 白化:依序調整平均數、共變異數、變異數。
中心化:各個維度的平均數調成0。每筆數據減去平均數。
不相關化:相異維度的共變異數調成0。分布變成不相關。
二階動差正規化:各個維度的變異數調成1。每筆數據除以變異數平方根。
中心化:中心位置位移至原點0。
不相關化:整體數據旋轉至面積平衡。數據擺正。
二階動差正規化:長寬範圍縮放至長度1。

Normalization

Normalization

「正規化」。長度調成一單位。

Vector Normalization

一個向量的正規化。向量長度調成1。

數學式子:向量除以自身長度(向量除以自身點積平方根)。

 v      v        v
——— = —————— = —————
‖v‖   √‖v‖²v∙v

Data Normalization

大量數據的正規化。每筆數據視作向量,各自正規化。

正規化調整直條,二階動差正規化調整橫條。長度調成1。

Matrix Normalization【尚無正式名稱】

一個矩陣的正規化。瘦矩陣是自身內積調成I,胖矩陣是自身外積調成I,方陣是兩者皆調成I。

數學式子:矩陣除以自身長度(矩陣除以自身內積平方根)。

thin matrix:
       A      A
⧚A⧛ = ——— = ————— = A√AᵀA⁻¹ = UΣVᵀVΣ⁻¹Vᵀ = UVᵀ
      ‖A‖   √AᵀA

fat matrix:
⧚A⧛ = √AAᵀ⁻¹A = UΣ⁻¹UᵀUΣVᵀ = UVᵀ

Data Whitening

大量數據的白化。先中心化、再矩陣正規化。

數據矩陣通常是胖矩陣。胖矩陣正規化=二階動差正規化+不相關化+乘以正規正交矩陣。

白化數據,再乘以正規正交矩陣,仍是白化數據。

⧚X̃⧛ = √X̃X̃ᵀ⁻¹X̃ = UΣ⁻¹UᵀX̃
 X̃        = UΣVᵀ
 X̃X̃ᵀ      = UΣ²Uᵀ
√X̃X̃ᵀ      = UΣUᵀ
√X̃X̃ᵀ⁻¹    = UΣ⁻¹Uᵀ
√X̃X̃ᵀ⁻¹X̃   = UΣ⁻¹UᵀX̃
                  centering:      X ->       X̃  }
              decorrelation:      X̃ ->     UᵀX̃  } whitening
second moment normalization:    UᵀX̃ ->  Σ⁻¹UᵀX̃  }
        rotation/reflection: Σ⁻¹UᵀX̃ -> UΣ⁻¹UᵀX̃

「共變異矩陣的平方根倒數」可以做為「白化矩陣」。

W = √X̃X̃ᵀ⁻¹ = UΣ⁻¹Uᵀ
covariance matrix:  X̃X̃ᵀ
      square root: √X̃X̃ᵀ
          inverse: √X̃X̃ᵀ⁻¹

延伸閱讀:數學符號

由於尚無正式名稱,我只好自己瞎掰數學符號了。

X̄ = X(𝟏/n)               mean
X̃ = X - X̄ = X(I - 𝟏/n)   deviation (centering)
‖X‖ = √XᵀX               length
⧚X⧛ = X / ‖X‖ = X‖X‖⁻¹   unit (normalization)

Correlation

Correlation

「相關」。兩物的巧合程度。

Vector Correlation

兩物相乘,稱作「相關數correlation」。

兩個數字的相關數:兩數相乘ab。
兩個向量的相關數:兩向量點積x∙y。
兩個浮動數字的相關數:兩數相乘期望值E[XY]。

事先正規化,稱作「餘弦相似度cosine similarity」。

兩個數字的餘弦相似度:cos(a,b) = (a/|a|)(b/|b|) = (ab)/(|a||b|)
兩個向量的餘弦相似度:cos(x,y) = (x/‖x‖)∙(y/‖y‖) = (x∙y)/(‖x‖‖y‖)
兩個浮動數字的餘弦相似度:cos(X,Y) = E[XY] / (√E[XX]E[YY])

事先中心化,稱作「共變異數covariance」。

兩個數字的共變異數:0
兩個向量的共變異數:0
兩個浮動數字的共變異數:cov(X,Y) = E[X̃Ỹ] = E[(X-E[X])(Y-E[Y])]

事先標準化,稱作「相關係數correlation coefficient」。

兩個數字的相關係數:0
兩個向量的相關係數:0
兩個浮動數字的相關係數:corr(X,Y) = E[X̃Ỹ] / (√E[X̃X̃]E[ỸỸ])

事先白化,沒有名稱。

Vector Pairwise Correlations

兩物相乘,衍生兩種版本。大家習慣採用維度版本。

數據版本:數據兩兩點積是矩陣內積XᵀY。維度數量必須一樣多。
維度版本:維度兩兩點積是矩陣外積XYᵀ。數據數量必須一樣多。

兩兩相乘,稱作「相關矩陣correlation matrix」。

兩堆數據的相關矩陣:RXY = XYᵀ
兩堆浮動數字的相關矩陣:RXY(i,j) = E[XᵢYⱼ]

事先中心化,稱作「共變異數矩陣covariance matrix」。

兩堆數據的共變異數矩陣:CXY = (X-X̄)(Y-Ȳ)ᵀ = X̃Ỹᵀ
兩堆浮動數字的共變異數矩陣:CXY(i,j) = cov(Xᵢ,Yⱼ) = E[X̃ᵢỸⱼ]

事先標準化,稱作「相關係數矩陣correlation coefficient matrix」。因為經常使用,所以大家經常直接稱作「相關矩陣」。

兩堆數據的相關係數矩陣:PXY = (SX̃)(SỸ)ᵀ
兩堆浮動數字的相關係數矩陣:PXY(i,j) = corr(Xᵢ,Yⱼ) = E[X̃ᵢỸⱼ] / (√E[X̃ᵢX̃ᵢ]E[ỸⱼỸⱼ])

事先白化,沒有名稱。

Data Correlation

兩堆數據的相關數。相關矩陣的奇異值分解XYᵀ = UΣVᵀ,最大的奇異值σ₁,做為相關數。

幾何意義:找到向量u和v。X投影到向量u,Y投影到向量v,投影量各視作一個向量,讓兩向量相關數最大。

u和v恰是最大的奇異值的左右奇異向量u₁和v₁,投影量相關數恰是奇異值σ₁。

最大可以推廣成前幾大,直線可以推廣成平面、空間、……。

XYᵀ = UΣVᵀ
UᵀXYᵀV = Σ          (U⁻¹ = Uᵀ, V⁻¹ = Vᵀ)
(UᵀX)(VᵀY)ᵀ = Σ
(uᵢᵀX)(vᵢᵀY)ᵀ = σᵢ
dot((uᵢᵀX)ᵀ, (vᵢᵀY)ᵀ) = σᵢ
dot(proj_uᵢ(X), proj_vᵢ(Y)) = σᵢ

順帶一提,古人在探索過程當中,發明許多冗餘名詞。

《Characterizing the Response of PET and fMRI Data using Multivariate Linear Models》

Partial Least Squares Regression  X與Y都預先中心化
Orthonormalized PLS Regression    X預先白化、Y預先中心化
Canonical Correlation Analysis    X與Y都預先白化