免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PCA線性代數(shù)講解

線性代數(shù)及PCA詳解

本章對最近學習的線性代數(shù)知識進行總結(jié),最后以PCA為例運用線代中的相關知識討論其中的原理。才疏學淺,各位有什么意見可以討論,一起查缺補漏。

1. 線代基礎

對于深度學習,它需要一定的數(shù)學和機器學習基礎,特別的,線性代數(shù)、概率與信息論和數(shù)值計算尤為重要(參見《deep learning》一書)

所以我們本章主要對線代進行討論,當然主要是為了針對PCA包含的知識點。

線代主要圍繞線性變換展開,其中變換指的是一種函數(shù)關系:輸入輸出都為向量的一種函數(shù),但是既然取名為變換,意為強調(diào)一種運動關系;線性表示變換的約束:一為原點不能變,二為保持網(wǎng)格線平行且均勻分布。

而描述線性變換也很簡單,通常一組線性無關向量即可,稱為可以理解為構(gòu)建向量世界的基礎,任何向量都可以利用它線性組合而成。

我們利用最多的就是i帽j帽(即正交基(1,0),(0,1)注:一般描述為列向量,為了方便,本章的向量都為列向量)

如下圖所示,α=(3,2)向量其實具體應該描述為α=3i+2j

既然如此,假如我們不再使用常規(guī)的i帽和j帽最為基,例如小明同學非要換一組其他的(例如將i,j旋轉(zhuǎn)90°,其實這就是一種線性變換)基,那么在他看來,原來的α該怎么描述呢?

可能有人會問,α并未變化,產(chǎn)生差別的原因是?在這里,我們的視角和小明的視角并不一樣,更進一步說,是因為我們和小明選取的坐標(參考)系不一樣。我們看到的α是在xy坐標系下3倍i帽與2倍j帽的線性組合,而小明看到的是旋轉(zhuǎn)后的坐標系,這時我們需要利用小明選取的基來描述α。

具體說來,可以有兩種方法求解“小明眼中α的坐標”:

  1. 將α投影到新基上,得出投影長度(有方向,即可正負)即為坐標;
  2. 通過坐標變換公式求得

先說方法一,先說明一下投影的含義,一方面,從幾何意義上,如下圖所示,即將向量向另一向量所在直線做垂線,則投影長度即為藍色向量與垂線交點的向量長度;另一方面,內(nèi)積與投影關系密切,有A·B=|A|cos(a)|B|,這里設A為投影向量,則B為被投影向量,則|A|cos(a)為投影矢量長度,|B|為被投影向量的模。再進一步,如果我們假設B的模為1,即讓|B|=1,那么就變成了:A·B=|A|cos(a)

簡而言之,如果設向量B的模為1,則A與B的內(nèi)積值等于A向B所在直線投影的矢量長度!

繼續(xù)說下面這幅圖,圖中基由(1,0),(0,1)轉(zhuǎn)換為(1/√2,1/√2),(-1/√2,1/√2)
:這里基的坐標都是以我們視角的坐標系來看的

那么,新基坐標系下,α的坐標計算為:



即下圖所示:

一般說來,如果我們有M個N維向量,想將其變換為由R個N維向量表示的新空間中,那么首先將R個基按行組成矩陣A(上例中我們把基(1/√2,1/√2),(-1/√2,1/√2)按行排列),然后將向量按列組成矩陣B,那么兩矩陣的乘積AB就是變換結(jié)果,其中AB的第m列為A中第m列變換后的結(jié)果。

簡單表達:B`X=Y ①(等式左邊,前者為B 的轉(zhuǎn)置,后者為轉(zhuǎn)換前坐標,二者均為同一坐標系下;Y為轉(zhuǎn)換后的坐標,即為小明眼中新基下的坐標)

最后,上述分析同時給矩陣相乘找到了一種物理解釋:兩個矩陣相乘的意義是將右邊矩陣中的每一列列向量變換到左邊矩陣中每一行行向量為基所表示的空間中去。

接下里說說方法二,在介紹坐標變換之前,先說明一下基變換。如同方法一所說的,由舊基到新基,其實經(jīng)歷了一個變換,這個變換的橋梁我們稱之為過渡矩陣。數(shù)學表達為:B=AP,B為新基組成的集合(矩陣),A為舊基組成的集合,P為過渡矩陣。

則有,P逆 X=Y ②(特殊的,如果A為標準單位正交基,即(1,0),(0,1)列向量組成的單位矩陣E,則此時B=P,所以P逆 = B逆,②式變?yōu)?font color="red">B逆 X=Y ,另外因為B為正交基,B`=B逆,所以②式還可以變?yōu)?font color="red">B轉(zhuǎn)置 X=Y 或者P轉(zhuǎn)置 X=Y

綜上,總結(jié)一下,我們主要講了基變換下的坐標變換,涉及投影、內(nèi)積等知識,最重要的X與Y之間的轉(zhuǎn)換:B`X=Y P逆 X=Y

這些都是接下來我們討論PCA的基礎,試想一下,投影的幾何示意是不是有種降維的味道在里面?具體而言,假設我們有多個二維數(shù)據(jù),我們將其降為一維,可能的做法是將這些點投影到某一軸上。接下來的問題就是,如何選擇這個軸,我們采用概率和特征值等知識來解釋選擇的合理性。

2.PCA

我們這里首先說明我們的目標,然后討論將會采取的策略,最后說說來達到目的的一些方法。

2.1定義

PCA(Principal Component Analysis):通過線性變換將原始數(shù)據(jù)變換為一組各維度線性無關的表示,可用于提取數(shù)據(jù)的主要特征分量,常用于高維數(shù)據(jù)的降維。

2.2動機

這里我們采用網(wǎng)絡張洋《PCA的數(shù)學原理》文中的例子,某個淘寶店2012年全年的流量及交易情況可以看成一組記錄的集合,其中每一天的數(shù)據(jù)是一條記錄,格式如下:

(日期, 瀏覽量, 訪客數(shù), 下單數(shù), 成交數(shù), 成交金額)

其中“日期”是一個記錄標志而非度量值,而數(shù)據(jù)挖掘關心的大多是度量值,因此如果我們忽略日期這個字段后,我們得到一組記錄,每條記錄可以被表示為一個五維向量,其中一條看起來大約是這個樣子:

(500,240,25,13,2312.15)T

繼續(xù)強調(diào)這里,用了轉(zhuǎn)置,因為習慣上使用列向量表示一條記錄(后面會看到原因),本文后面也會遵循這個準則。不過為了方便有時會省略轉(zhuǎn)置符號,但我們說到向量默認都是指列向量。

從經(jīng)驗我們可以知道,“瀏覽量”和“訪客數(shù)”往往具有較強的相關關系,而“下單數(shù)”和“成交數(shù)”也具有較強的相關關系。這里我們非正式的使用“相關關系”這個詞,可以直觀理解為“當某一天這個店鋪的瀏覽量較高(或較低)時,我們應該很大程度上認為這天的訪客數(shù)也較高(或較低)”。后面的章節(jié)中我們會給出相關性的嚴格數(shù)學定義。

這種情況表明,如果我們刪除瀏覽量或訪客數(shù)其中一個指標,我們應該期待并不會丟失太多信息。因此我們可以刪除一個,以降低機器學習算法的復雜度。

但是憑借經(jīng)驗,可能選擇的標準不夠精準:我們到底刪除哪一列損失的信息才最?。恳嗷蚋静皇菃渭儎h除幾列,而是通過某些變換將原始數(shù)據(jù)變?yōu)楦俚牧械质沟脕G失的信息最???到底如何度量丟失信息的多少?如何根據(jù)原始數(shù)據(jù)決定具體的降維操作步驟?

PCA作為解決此類的問題的關鍵登場了。

2.3目的

根據(jù)上述的經(jīng)驗,我們認為讓數(shù)據(jù)進行合理的降維,一是盡量減少信息的缺失,即保全信息的所有內(nèi)容;二是減少數(shù)據(jù)之間的相關性(例子中有所體現(xiàn))。

  1. 從統(tǒng)計上來說(另一層面是從概率上來說),方差體現(xiàn)著離散程度,直觀而言,二維數(shù)據(jù)降為一維,這個問題實際上是要在二維平面中選擇一個方向,將所有數(shù)據(jù)都投影到這個方向所在直線上,用投影值表示原始記錄。

    那么如何選擇這個方向(或者說基)才能盡量保留最多的原始信息呢?我們希望投影后的投影值盡可能分散。也就是方差盡可能的大。

  2. 統(tǒng)計中另一指標協(xié)方差,其用于衡量兩個變量的總體誤差,直接理解為相關性即可(由其得到的相關系數(shù)可能更為直接)。
    我們希望的是協(xié)方差盡可能的小,如果為0,則可以得出目標變量之間不相關(或者成為線性獨立,不相關是指兩個隨機變量沒有近似的線性關系,而獨立是指兩個變量沒有任何關系。)

由上述1,2,可以得到我們的目的:數(shù)據(jù)之間的1.方差盡可能的大,2.協(xié)方差逼近0

2.4策略

這里我們假設數(shù)據(jù)每一維度特征的均值為0(我們有能力達到這樣的效果,可以稱之為0均值化,當然也可以不這樣做),上述的方差和協(xié)方差公式為:




假設我們只有a和b兩個字段,那么我們將它們按行組成矩陣X(這里和上面第1節(jié)內(nèi)容定義不一樣,每一列代表一個樣本或者一條記錄):

然后我們用X乘以X的轉(zhuǎn)置,并乘上系數(shù)1/m:

這個矩陣對角線上的兩個元素分別是兩個字段的方差,而其它元素是a和b的協(xié)方差。兩者被統(tǒng)一到了一個矩陣的。

根據(jù)矩陣相乘的運算法則,這個結(jié)論很容易被推廣到一般情況:

設我們有m個n維數(shù)據(jù)記錄,將其按列排成n乘m的矩陣X,設C=X乘以X的轉(zhuǎn)置,并乘上系數(shù)1/m,則C是一個對稱矩陣,其對角線分別個各個字段的方差,而第i行j列和j行i列元素相同,表示i和j兩個字段的協(xié)方差。

2.3節(jié)知我們的目的:數(shù)據(jù)之間的1.方差盡可能的大,2.協(xié)方差逼近0,在協(xié)方差矩陣C體現(xiàn)就為對角元盡可能大,非對角元為0這樣的數(shù)值體現(xiàn)。

2.5方法

上節(jié)我們得知,我們需要讓協(xié)方差矩陣C體現(xiàn)就為對角元盡可能大,非對角元為0,有什么方法能做到這點?

  1. 特征值法
    對角元盡可能大,非對角元為0 這樣的描述直接的想法就是對角矩陣,那么我們能不能聯(lián)系特征向量、特征值這些知識?當然是肯定的,還記得C必為對稱矩陣的這一特點嗎?

    在線性代數(shù)上,實對稱矩陣有一系列非常好的性質(zhì):

    1)對稱矩陣特征值為實數(shù)。
    2)實對稱矩陣不同特征值對應的特征向量必然正交。
    3)設特征向量λλ重數(shù)為r,則必然存在r個線性無關的特征向量對應于λλ,因此可以將這r個特征向量單位正交化。
    ···
    那么我們的想法就很自然了,原數(shù)據(jù)矩陣X,由它得到協(xié)方差矩陣C,我們希望X經(jīng)過變換矩陣P得到降維矩陣Y,而Y協(xié)方差矩陣為對角矩陣,這樣滿足了上述目的。

    拆分上面的語言,
    “X經(jīng)過變換矩陣P得到降維矩陣Y”,數(shù)學上表達為:PX=Y(XP=Y也可以,只不過二者的P不一樣);
    “Y協(xié)方差矩陣為對角矩陣”,設Y的協(xié)方差矩陣為D,我們推導一下D與C的關系:


    目標進一步明確,我們要求變換矩陣P,P是體現(xiàn)我們整個線性變化的關鍵。我們可以通過對它的修改來達到降維這一目的。

    問題是P怎么求得?

    我們從特征變換考慮D與C之間的關系:

    假設C求得特征向量,為e1,e2,?,en,我們將其按列組成矩陣:


    將C對角化:

    很自然,我們希望Λ =D,則P =E轉(zhuǎn)置

    P是協(xié)方差矩陣的特征向量單位化后按行排列出的矩陣,其中每一行都是C的一個特征向量。如果設P按照Λ中特征值的從大到小,將特征向量從上到下排列,則用P的前K行組成的矩陣乘以原始數(shù)據(jù)矩陣X,就得到了我們需要的降維后的數(shù)據(jù)矩陣Y。

    至于K的選擇,一般說來采用一定的比例作為標準(參見西瓜書p231,其中的說法是重構(gòu)閾值。簡單而言,就是選取的K個特征值之和占總體特征值之和的比例必須達到一定的比例)

    總結(jié)一下,特征值法的算法為( 設有m條n維數(shù)據(jù)):

    1)將原始數(shù)據(jù)按列組成n行m列矩陣X

    2)將X的每一行(代表一個屬性字段)進行零均值化,即減去這一行的均值

    3)求出協(xié)方差矩陣C

    4)求出協(xié)方差矩陣的特征值及對應的特征向量

    5)將特征向量按對應特征值大小從上到下按行排列成矩陣,取前k行組成矩陣P

    6)Y=PX即為降維到k維后的數(shù)據(jù)

  2. 奇異值法

    在實踐中,我們一般不采用特征變換(evd),而是轉(zhuǎn)為穩(wěn)定的奇異值法(svd,穩(wěn)定一說聽某一老師的說法)。

    SVD簡單就是原矩陣A分解如下(不介紹如何推導):

這里的U我們稱為左奇異向量,對應的,VT稱為右奇異向量,中間的∑是由了0塊和奇異值對角塊組成的矩陣。簡單而言,奇異值針對于非方陣的分解,其用處很多,并不限于(PCA),直接的,還有M-P偽逆和數(shù)據(jù)壓縮等用處。

對于數(shù)據(jù)壓縮,SVD是很直接,分解完U,∑,V這三者可以近似還原原矩陣達到降維;需要注意的是,之前我聯(lián)系奇異值法和特征值法的時候,總是以為二者可以轉(zhuǎn)換,其實在EVD處理PCA時,我們進行特征轉(zhuǎn)換的對象是C,其中C必為方陣(或者更進一步,C為對稱矩陣);而SVD處理PCA的時候,我們處理的是原數(shù)據(jù)矩陣X,二者其實處理的對象并不一樣。

對于SVD,數(shù)學知識包含內(nèi)容很多,如有機會,后面我會詳細研究談論。這里我們只是針對實際PCA的工作進行應用。

對于PCA,參看2.5節(jié),我們的目標是求得轉(zhuǎn)換矩陣P

實際中,我們可以采用matlab的函數(shù)分解原數(shù)據(jù)矩陣X(重復一遍,X的一列代表一條記錄或者樣本,一行代表所有特征或者屬性),得到U,∑,V。而這里我們可以選取U或者V作為P的選擇,則我們可以進行兩方面的壓縮:如果選擇P=U,則對行進行壓縮,常規(guī)的我們可以稱之為降低維度,那么和特征值法無異;如果選擇P=V(此時P為右乘),則對列進行壓縮,可以理解為,將一些相似的樣本合并在一起,或者將一些沒有太大價值的樣本去掉。

可以看出,其實PCA幾乎可以說是對SVD的一個包裝,如果我們實現(xiàn)了SVD,那也就實現(xiàn)了PCA了,而且更好的地方是,有了SVD,我們就可以得到兩個方向的PCA,如果我們對A’A進行特征值的分解,只能得到一個方向的PCA。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
從奇異值分解 SVD 看 PCA 的主成分
PCA數(shù)學原理
機器學習中的數(shù)學
統(tǒng)計分析中的各種A
矩陣特征值分解與奇異值分解含義解析及應用
機器學習中的數(shù)學(5)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服