序言:將 n 個 m 維 data X=[x1,x2,...,xn] (shape of X = (m,n))
投影到某 k 維空間中,
令 S=1n∑ni=1(xi−ˉX)(xi−ˉX)T ,S 之 eigenvalue λ1′≥λ2′≥… 符合 Sui=λi′ui,令[u1,u2,...,um]=U
則如果該 k 維空間為 span{u1,u2,...,uk} ,則投影後的 data 有最大的變異數
完整一點的敘述如下:
假設投影 data 到 k 個向量中,該 k 個向量為A=[a1,a2,...,ak],(a1,a2,...,ak 長度皆為 1 且互相垂直),且投影到該 k 個向量後的 data 變異數為 V
而此時有另一組向量B=[b1,b2,...,bk],b1,b2,...,bk 長度皆為 1 且互相垂直,且span{A}=span{B},則投影到該 k 個向量後的 data 變異數也是 V
sol:
投影到某 k 維空間中,
令 S=1n∑ni=1(xi−ˉX)(xi−ˉX)T ,S 之 eigenvalue λ1′≥λ2′≥… 符合 Sui=λi′ui,令[u1,u2,...,um]=U
則如果該 k 維空間為 span{u1,u2,...,uk} ,則投影後的 data 有最大的變異數
1. 首先證明:假設投影到相同的空間中,投影後的 data 變異數就會相同(其實蠻直觀的)
↑雖然投影在不同座標軸,但只要是投影在同空間,投影後的 data 變異數就會相同
完整一點的敘述如下:
假設投影 data 到 k 個向量中,該 k 個向量為A=[a1,a2,...,ak],(a1,a2,...,ak 長度皆為 1 且互相垂直),且投影到該 k 個向量後的 data 變異數為 V
而此時有另一組向量B=[b1,b2,...,bk],b1,b2,...,bk 長度皆為 1 且互相垂直,且span{A}=span{B},則投影到該 k 個向量後的 data 變異數也是 V
sol:
for x=1, 2, ..., k, data 在ax的投影,所貢獻的變異數為axTSax=axTUDUTax=αx12λ1′+αx22λ2′+...+αxm2λm′
上式中αx1,αx2,...,αxm 皆為純量,且ax=αx1u1+αx2u2+...+αxmum
投影到a1,a2,...,ak後 data 的整體變異數為a1,a2,...,ak所貢獻的變異數總和
V= α112λ1′+α122λ2′+...+α1m2λm′+ α212λ1′+α222λ2′+...+α2m2λm′+ ⋮ αk12λ1′+αk22λ2′+...+αkm2λm′
同理,投影到b1,b2,...,bk後 data 的整體變異數為
V2= β112λ1′+β122λ2′+...+β1m2λm′+ β212λ1′+β222λ2′+...+β2m2λm′+ ⋮ βk12λ1′+βk22λ2′+...+βkm2λm′其中bx=βx1u1+βx2u2+...+βxmum∀x=1,...,k
投影到 A 的部分,觀察有λ1′的部分,其總和為(α112+α212+...+αk12)λ1′
(α112+α212+...+αk12)為u1投影到該空間的向量長度
(設u1投影到該空間的向量為x,xTx=(α11a1+α21a2+...+αk1ak)T(α11a1+α21a2+...+αk1ak))
因 x 同時等於β11b1+β21b2+...+βk1bk,α112+α212+...+αk12=β112+β212+...+βk12
其他λ2′,λ3′,...的部分可以以此類推,最後可得V2=V
將 data 投影到某 k 維空間中,
則如果該 k 維空間為 span{u1,u2,...,uk} ,則投影後的 data 有最大的變異數
sol:
使用反證法:假設存在 k 個長度為 1 且互相垂直的向量 C=[c1,c2,...,ck],data 投影到 C 的變異數為 V' > V。
接著我們觀察 C ,對其中任一個向量 cx,其可寫為:cx=γx1u1′+γx2u2′+...+γxmum′。 γx1,γx2,...,γxm 皆為純量。
我們將 k 個向量的係數以矩陣記錄下來:
C′=(γ1,1γ1,2⋯γ1,mγ2,1γ2,2⋯γ2,m⋮⋮⋱⋮γk,1γk,2⋯γk,m)
更新 C' 的算法:
0. 令 i = m, j = k
1. 對於第 i 個 column ,可以看有沒有非 0 值,有的話想辦法消掉:
假設有 γx,m≠0,則將 row x 與 row j 交換
C′=(γ1,1γ1,2⋯γ1,i…γ2,1γ2,2⋯γ2,i…⋮⋮⋱⋮…γj,1γj,2⋯γj,i≠0…⋮⋮⋱⋮⋱)
對於其他的非 0 值,假設有 γx′,i≠0,可以令κ=−γxi,iγj,i,assign cx′ := 1√1+κ2(cx′+κcj) ,和 assign cj := 1√1+κ2(−κcx′+cj)
使得 γxi,i=0,且每個 row 長度維持為 1、列空間維持不變 ( data 投影在 C′UT之列空間 的變異數維持不變)
對於其他的非 0 值可以比照辦理,最後矩陣可改寫成:
C′=(γ1,1γ1,2⋯0…γ2,1γ2,2⋯0…⋮⋮⋱⋮…γj−1,1γj−1,2⋯0…γj,1γj,2⋯γj,i≠0…⋮⋮⋱⋮⋱)
2. 假設 γj,1,γj,2,⋯,γj,i−1 不全為 0
則可以令 κ′=√11−γj,i2 ,assign cj := [κ′γj,1,κ′γj,2,⋯,κ′γj,i−1,0]
使 cj 長度維持為 1 ((κ′2−1)γj,12+(κ′2−1)γj,22+⋯+(κ′2−1)γj,i−12=γj,i2)
、每個 row 之間仍互相垂直、且新 cjUT 所貢獻的變異數 ≥ 原本 cjUT 所貢獻的變異數
((κ′2−1)γj,12λ1′+(κ′2−1)γj,22λ2′+⋯+(κ′2−1)γj,i−12λi−1′≥
(κ′2−1)γj,12λi′+(κ′2−1)γj,22λi′+⋯+(κ′2−1)γj,i−12λi′=γj,i2λi′)
也有可能 γj,1,γj,2,⋯,γj,i−1 全為 0,如此γj,i 則為 1。
3. 如果 column i 不全為 0 ,更新 ( i, j ) := ( i-1, j ),否則更新 ( i, j ) := ( i-1, j-1)
更新完後回到步驟 1.
做完算法後的矩陣會變為:
C′=(XX⋯Xindex=c100⋯⋯⋯⋯000⋯⋯01index=c2>c100⋯⋯⋯000⋯⋯⋯01index=c3>c200⋯⋯0⋮⋮⋱⋮⋮⋮⋮⋮⋮⋮⋮⋮00⋯⋯⋯⋯01index=ck>ck−100⋯0)
=> Data 投影在 C′UT之列空間 的變異數 ≥V′>V
但其 ≤ data 投影在 (I|0)UT之列空間 的變異數。
而(I|0)UT 則為 [u1,u2,...,uk]T
矛盾
故得證。
上式中αx1,αx2,...,αxm 皆為純量,且ax=αx1u1+αx2u2+...+αxmum
投影到a1,a2,...,ak後 data 的整體變異數為a1,a2,...,ak所貢獻的變異數總和
V= α112λ1′+α122λ2′+...+α1m2λm′+ α212λ1′+α222λ2′+...+α2m2λm′+ ⋮ αk12λ1′+αk22λ2′+...+αkm2λm′
同理,投影到b1,b2,...,bk後 data 的整體變異數為
V2= β112λ1′+β122λ2′+...+β1m2λm′+ β212λ1′+β222λ2′+...+β2m2λm′+ ⋮ βk12λ1′+βk22λ2′+...+βkm2λm′其中bx=βx1u1+βx2u2+...+βxmum∀x=1,...,k
投影到 A 的部分,觀察有λ1′的部分,其總和為(α112+α212+...+αk12)λ1′
(α112+α212+...+αk12)為u1投影到該空間的向量長度
(設u1投影到該空間的向量為x,xTx=(α11a1+α21a2+...+αk1ak)T(α11a1+α21a2+...+αk1ak))
因 x 同時等於β11b1+β21b2+...+βk1bk,α112+α212+...+αk12=β112+β212+...+βk12
其他λ2′,λ3′,...的部分可以以此類推,最後可得V2=V
2. 接著證明以下敘述:
則如果該 k 維空間為 span{u1,u2,...,uk} ,則投影後的 data 有最大的變異數
sol:
使用反證法:假設存在 k 個長度為 1 且互相垂直的向量 C=[c1,c2,...,ck],data 投影到 C 的變異數為 V' > V。
接著我們觀察 C ,對其中任一個向量 cx,其可寫為:cx=γx1u1′+γx2u2′+...+γxmum′。 γx1,γx2,...,γxm 皆為純量。
我們將 k 個向量的係數以矩陣記錄下來:
C′=(γ1,1γ1,2⋯γ1,mγ2,1γ2,2⋯γ2,m⋮⋮⋱⋮γk,1γk,2⋯γk,m)
更新 C' 的算法:
0. 令 i = m, j = k
1. 對於第 i 個 column ,可以看有沒有非 0 值,有的話想辦法消掉:
假設有 γx,m≠0,則將 row x 與 row j 交換
C′=(γ1,1γ1,2⋯γ1,i…γ2,1γ2,2⋯γ2,i…⋮⋮⋱⋮…γj,1γj,2⋯γj,i≠0…⋮⋮⋱⋮⋱)
對於其他的非 0 值,假設有 γx′,i≠0,可以令κ=−γxi,iγj,i,assign cx′ := 1√1+κ2(cx′+κcj) ,和 assign cj := 1√1+κ2(−κcx′+cj)
使得 γxi,i=0,且每個 row 長度維持為 1、列空間維持不變 ( data 投影在 C′UT之列空間 的變異數維持不變)
對於其他的非 0 值可以比照辦理,最後矩陣可改寫成:
C′=(γ1,1γ1,2⋯0…γ2,1γ2,2⋯0…⋮⋮⋱⋮…γj−1,1γj−1,2⋯0…γj,1γj,2⋯γj,i≠0…⋮⋮⋱⋮⋱)
2. 假設 γj,1,γj,2,⋯,γj,i−1 不全為 0
則可以令 κ′=√11−γj,i2 ,assign cj := [κ′γj,1,κ′γj,2,⋯,κ′γj,i−1,0]
使 cj 長度維持為 1 ((κ′2−1)γj,12+(κ′2−1)γj,22+⋯+(κ′2−1)γj,i−12=γj,i2)
、每個 row 之間仍互相垂直、且新 cjUT 所貢獻的變異數 ≥ 原本 cjUT 所貢獻的變異數
((κ′2−1)γj,12λ1′+(κ′2−1)γj,22λ2′+⋯+(κ′2−1)γj,i−12λi−1′≥
(κ′2−1)γj,12λi′+(κ′2−1)γj,22λi′+⋯+(κ′2−1)γj,i−12λi′=γj,i2λi′)
也有可能 γj,1,γj,2,⋯,γj,i−1 全為 0,如此γj,i 則為 1。
3. 如果 column i 不全為 0 ,更新 ( i, j ) := ( i-1, j ),否則更新 ( i, j ) := ( i-1, j-1)
更新完後回到步驟 1.
做完算法後的矩陣會變為:
C′=(XX⋯Xindex=c100⋯⋯⋯⋯000⋯⋯01index=c2>c100⋯⋯⋯000⋯⋯⋯01index=c3>c200⋯⋯0⋮⋮⋱⋮⋮⋮⋮⋮⋮⋮⋮⋮00⋯⋯⋯⋯01index=ck>ck−100⋯0)
=> Data 投影在 C′UT之列空間 的變異數 ≥V′>V
但其 ≤ data 投影在 (I|0)UT之列空間 的變異數。
而(I|0)UT 則為 [u1,u2,...,uk]T
矛盾
故得證。
沒有留言:
張貼留言