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 ]

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

此處應右乘,中心化矩陣乘在數據矩陣的右邊。

                                          [ 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。

統計學的定義方式

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

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

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

優點:即便數據數量不同,也可以互相比較大小。

缺點:計算步驟更多、數學式子更長。

本站採用計算學定義。儘管大家都採用統計學定義。

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 = diag(1/√(X⊙X)1⃗ᵢ) = √((X⊙X)𝟏)⊙I⁻¹ = [ 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    ]

二階動差正規化矩陣通常有反矩陣,除非某個維度全為零。

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

Standardizing(Batch Normalization)

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

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

數學式子:

中心化:每個維度的總和調成0。Σvᵢ = vᵀ1⃗ = 0, ∀v ∈ rows(X)
二階動差正規化:每個維度的平方總和調成1。‖v‖² = vᵀv = 1, ∀v ∈ rows(X)

統計學的定義方式

統計學當中,大量數據構成分布,而分布有兩個重要指標:

平均數:數據的中心。數據期望值。E[X]
變異數:數據的疏密。數據減去期望值、取平方、期望值。E[(X-E[X])²]

統計學當中,標準化是調整平均數暨變異數:

中心化:每個維度的平均數調成0。E[X] = 0
    每筆數據減去平均數。Xᵢ - E[X]
二階動差正規化:每個維度的變異數調成1。E[(X-E[X])²] = 1
        每筆數據除以變異數平方根。Xᵢ / √E[(X-E[X])²]

幾何意義:

中心化:中心位置位移至原點0。
二階動差正規化:長寬範圍縮放至長度1。

Whitening

Decorrelation

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

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

幾何意義:數據矩形面積總和調成零。一三象限面積為正、二四象限面積為負。此幾何意義目前沒有實際用處。也許可以想成是將數據擺正。

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 ]

不相關化矩陣通常有反矩陣,除非數據矩陣rank不足。

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

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,鏡射奇數次,左手座標系;再增加一次鏡射,得到右手座標系,例如任取一個向量顛倒方向(元素通通添上負號)。

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

Decorrelation Matrix

自身外積、正規化、共軛分解。

R = ⎠⎠⧚XXᵀ⧛

不相關化寫成矩陣運算,超凡入聖。人類的能力是有極限的。

Whitening

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

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

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

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

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

統計學的定義方式

統計學當中,大量數據構成分布,而分布有兩個重要性質:

獨立:平行截面均為相同分布。
不相關:相異維度的相關數是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。

數據矩陣通常都是扁平矩陣,正規化之後恰是二階動差正規化暨不相關化。

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

        A
⧚A⧛ = ————— = A√AᵀA⁻¹ = UΣVᵀVΣ⁻¹Vᵀ = UVᵀ       (A = UΣVᵀ)
      √AᵀA
⧚A⧛ = √AAᵀ⁻¹A = UΣ⁻¹UᵀUΣVᵀ = UVᵀ

反矩陣改成虛擬反矩陣,就不必煩惱rank。

矩陣平方根倒數,目前沒有高速演算法。等你幫忙翻身!

Data Whitening

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

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

⧚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都預先白化