目錄
矩陣分解簡(jiǎn)介
矩陣分解用到的基礎(chǔ)知識(shí)
矩陣的滿秩分解
矩陣的LU分解
矩陣的LDU分解
矩陣的QR分解(正交分解)
矩陣的特征分解(譜分解EVD)
矩陣的Schur三角分解
矩陣的奇異值分解(SVD)
矩陣的極分解
PCA理盆、NMF的推導(dǎo)與應(yīng)用
矩陣分解簡(jiǎn)介
??由于最近在看機(jī)器學(xué)習(xí)相關(guān)書(shū)籍渐北,里面涉及到很多矩陣分解的知識(shí)點(diǎn),上網(wǎng)翻閱相關(guān)知識(shí)點(diǎn)欠雌,發(fā)現(xiàn)機(jī)器學(xué)習(xí)書(shū)上和網(wǎng)上相關(guān)解釋和推導(dǎo)非常簡(jiǎn)化像棘,不易從根本上理解矩陣分解的知識(shí)稽亏,從而不能發(fā)現(xiàn)矩陣分解的本質(zhì)。故我想以一個(gè)數(shù)學(xué)推導(dǎo)的角度(不是工科應(yīng)用的角度)缕题,從根本的概念來(lái)推導(dǎo)這些矩陣分解的定理截歉,從本質(zhì)理解矩陣分解。
??矩陣分解在數(shù)學(xué)烟零,機(jī)器學(xué)習(xí)瘪松,工程學(xué)中的意義和目的有以下幾點(diǎn):一、矩陣求逆锨阿,總所周知宵睦,在矩陣求逆時(shí),涉及到伴隨矩陣與行列式的復(fù)雜計(jì)算墅诡,如果對(duì)矩陣進(jìn)行適當(dāng)分解壳嚎,在求逆,就會(huì)省去這些運(yùn)算末早。二烟馅、矩陣的存儲(chǔ),矩陣分解可以省很多存儲(chǔ)空間荐吉,例如一個(gè)100x100的矩陣焙糟,需要10000個(gè)元素,而將其分解成100x20與20x100的兩個(gè)矩陣時(shí)样屠,只需要4000個(gè)元素既可以穿撮。三、矩陣的性質(zhì)痪欲,矩陣分解后悦穿,更容易理解矩陣的性質(zhì),就如正整數(shù)可以分解成質(zhì)數(shù)业踢,原子可以分解成質(zhì)子一樣栗柒,更容易看到其性質(zhì)。
??對(duì)于矩陣的常用分解為:滿秩分解、LU分解瞬沦、LDU分解太伊、特征分解、QR分解逛钻、奇異值分解僚焦、極分解。下面我將對(duì)其進(jìn)行詳細(xì)的推導(dǎo)論證曙痘。不過(guò)在論證之前芳悲,先梳理一下用到的基礎(chǔ)知識(shí)。這樣可以保證讀者在看到陌生的概念時(shí)边坤,不用翻閱其他資料名扛。
矩陣分解用到的基礎(chǔ)知識(shí)
一、線性映射茧痒、線性變換肮韧、以及他們與矩陣的關(guān)系
??線性映射( linear mapping)是從一個(gè)向量空間V到另一個(gè)向量空間W的映射且保持加法運(yùn)算和數(shù)量乘法運(yùn)算。
???????? (α+β)= (α)+ (β)
???????? (kα)=k (α)
??線性變換是一個(gè)特殊的線性映射文黎,從向量空間V映射到自己的線性映射叫做線性變換 惹苗。
??任意線性映射都可找到一個(gè)矩陣與之對(duì)應(yīng),任意矩陣都可找到一個(gè)線性映射與之對(duì)應(yīng)耸峭。任意方陣都可以找到一個(gè)線性變化與之對(duì)應(yīng)桩蓉,任意線性變化都可找到一個(gè)方陣與之對(duì)應(yīng)。但需要注意的是劳闹,線性映射與矩陣的對(duì)應(yīng)關(guān)系必須給定每個(gè)空間的基院究,線性映射和線性變化在不同基下的矩陣是不一樣的。
??對(duì)于任意矩陣Amxn,可以找到n維空間V到m維空間W的一個(gè)線性映射 , 如下定義本涕,對(duì)任意屬于V业汰, 有()=A (<font color="#660000">這是線性變換矩陣的坐標(biāo)表示,下文還有一種表示方式菩颖,兩者等價(jià)</font>)样漆。以下證明由此定義的是V到W的線性映射。
是n維晦闰,A是mxn的放祟,所以A是m維的,所以A屬于W空間呻右,又可以驗(yàn)證滿足上面的加分和數(shù)乘運(yùn)算跪妥,所以是V到W的線性映射。
??對(duì)于任意的n維空間V到m維空間W的線性映射声滥,都可以找到一個(gè)mxn的矩陣A與之對(duì)應(yīng)眉撵,對(duì)應(yīng)關(guān)系為:
對(duì)任意屬于V, 有()=A,其中A屬于W纽疟。
定理1 :
??線性映射在給定基下的矩陣表示A是唯一的罐韩。
證明:設(shè)線性映射是n維線性空間V到m維線性空間W的線性映射,1污朽,2伴逸,...n是n維空間的一組基。1膘壶,2,...m是m維空間給定的一組基洲愤,
??反證法颓芭,若線性映射 ?? 在給定基下的矩陣表示A是不唯一,
??設(shè)有兩個(gè)分別為A和B柬赐,
??使得亡问,在同一組下有()=A和()=B 對(duì)任意的屬于V成立。
??由于屬于V肛宋,所以在基1州藕,2,...n下酝陈,的坐標(biāo)為k1床玻,k2,...kn ,
所以同時(shí)又()=A(k1沉帮,k2锈死,...kn)T,()=B(k1,k2穆壕,...kn)T 而()在W空間中待牵,且W空間的基給定,所以在W空間給定基下的坐標(biāo)是唯一的喇勋,所以
????????A(k1缨该,k2,...kn)T=B(k1川背,k2贰拿,...kn)T
由于上式對(duì)V空間中的任意向量都成立。所以A=B渗常,所以假設(shè)不成立壮不,所以定理得證。
??在上面的證明中皱碘,若= 1询一,則的坐標(biāo)為(1,0,...0)Tnx1 ,則A=(a11,a21,...am1)Tmx1 ,而(a11,a21,...am1)Tmx1是向量A在W空間基1,2,...m下的坐標(biāo)健蕊。所以有(1菱阵,2,...n)=(1缩功,2晴及,...m)A(<font color="#660000">這是線性變換矩陣的另一種表示方式</font>)
定理2 :
??設(shè)V的基為1,2嫡锌,...n虑稼,W的基為1,2势木,...m 蛛倦,已給m×n矩陣A颁独,則存在唯一的線性映射巢音,它在這兩個(gè)基下的矩陣表示為A亥揖。
證明:反證法偿衰,假設(shè)存在兩個(gè)不一樣的線性變換1,2靡狞。在給定兩組基下的矩陣為A味赃。
則有:
????1()=A
????2()=A
其中對(duì)于任意的屬于V都成立炮赦。
所以對(duì)任意的屬于V都有1()=2()
所以1=2
所以與假設(shè)矛盾持舆,定理的證板驳。
二又跛、矩陣的等價(jià)
??設(shè)V的一組基為1,2笋庄,...n效扫,W的一組基為1,2直砂,...m 菌仁,V到W空間的線性映射在兩組基下的矩陣為A。V的另一組基為1'静暂,2'济丘,...n',W的另一組基為1'洽蛀,2'摹迷,...m ',則V到W空間的線性映射在兩組基下的矩陣為B。
??因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cvarepsilon" alt="\varepsilon" mathimg="1">1郊供,2峡碉,...n與1',2'驮审,...n'是V的不同的兩組基鲫寄,所以存在過(guò)度矩陣P吉执,有
(1,2地来,...n)P =(1'戳玫,2',...n')
??因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Ceta" alt="\eta" mathimg="1">1未斑,2咕宿,...m 與1',2'蜡秽,...m '是V的不同的兩組基府阀,所以存在過(guò)度矩陣Q,有
(1芽突,2肌似,...m )Q =(1',2'诉瓦,...m ')
過(guò)度矩陣必可逆(下文有給出證明),
??因?yàn)閂到W空間的線性映射在給定第一組基下的矩陣為A力细,所以有睬澡,對(duì)任意的屬于V,其在1眠蚂,2煞聪,...n基下的坐標(biāo)表示為(k1,k2,....kn)T
有 ((k1,k2,....kn)T)=A(k1,k2,....kn)T ,而A(k1,k2,....kn)T為映射到W空間的向量在基1逝慧,2昔脯,...m下的坐標(biāo)表示。
??同理因?yàn)閂到W空間的線性映射在給你第二組基下的矩陣為B笛臣,所以有云稚,對(duì)上面同一向量屬于V,其在1'沈堡,2'静陈,...n'基下的坐標(biāo)表示為(l1,l2,....ln)T 有
((l1,l2,....ln)T =B(l1,l2,....ln)T ,B(l1,l2,....ln)T 為映射到W空間的向量在基1'诞丽,2'鲸拥,...m '下的坐標(biāo)表示。
而在V中是同一向量僧免,V到W空間的映射也為同一映射刑赶,所以映射到W空間的向量也為同一向量。所以有
??(1懂衩,2撞叨,...m)A(k1,k2,....kn)T=(1'金踪,2',...m ')B(l1,l2,....ln)T??????(1)
而又有
??(1谒所,2热康,...m )=(1',2'劣领,...m ')Q-1????????(2)
??(k1,k2,....kn)T=P(l1,l2,....ln)T?????? (3)
所以將(2)(3)帶入到(1)中得到
(1'姐军,2',...m ')Q-1AP(l1,l2,....ln)T&=(1'尖淘,2'奕锌,...m ')B(l1,l2,....ln)T
所以?????? Q-1AP=B 。
????<font color="#660000">過(guò)度矩陣必可逆村生,因?yàn)?1惊暴,2,...n)線性無(wú)關(guān)趁桃,所以基構(gòu)成的矩陣秩為n可逆辽话,(1',2'卫病,...n')線性無(wú)關(guān)油啤,所以基構(gòu)成的矩陣秩為n可逆,所以P也可逆 </font>
??如果對(duì)于兩個(gè)矩陣Amxn,Bmxn蟀苛,存在可逆矩陣Pnxn和可逆矩陣Qmxm滿足以下式子
????????????????Q-1AP=B
??則稱矩陣A與矩陣B等價(jià)益咬。
三、矩陣的相似
??上面推出等價(jià)關(guān)系是以線性映射為基礎(chǔ)帜平,當(dāng)線性映射變?yōu)榫€性變換時(shí)幽告,又可推導(dǎo)出什么結(jié)論。
c設(shè)是空間V上的線性變換裆甩,在基1冗锁,2,...n下的矩陣為A嗤栓,在基1'蒿讥,2',...n'下的矩陣為B抛腕,
1芋绸,2,...n到1'担敌,2'摔敛,...n'的過(guò)度矩陣為P。
即:
??????(1全封,2马昙,...n)P=(1'桃犬,2',...n')
所以有:
??????(1行楞,2攒暇,...n)=(1,2子房,...n)A
和
??????(1'形用,2',...n')=(1'证杭,2'田度,...n')B
所以和上面推導(dǎo)等價(jià)關(guān)系一樣的步驟可得到:
??????P-1AP=B
??所以推出相似的定義,如果對(duì)于兩個(gè)方陣Anxn解愤,Bnxn,存在可逆矩陣Pnxn镇饺,有
??????P-1AP=B
??則稱A與B相似。
四送讲、初等矩陣和初等變換
??在這里介紹一類(lèi)簡(jiǎn)單的矩陣和變換奸笤,初等矩陣和初等變換。
??所謂初等變換哼鬓,有三種
??1揭保、用一非零的數(shù)字乘以矩陣的某一行(列)。
??2魄宏、矩陣的一行(列)加到另一行(列) 。
??3存筏、互換矩陣兩行(列)的位置宠互。
??所謂初等矩陣,是指由單位矩陣經(jīng)過(guò)一次矩陣初等變換得到的矩陣椭坚。
??由初等矩陣的定義可以看出予跌,初等矩陣只有三種形式:
??1、Pi,j 單位矩陣的第i行和第j行互換善茎。
??2券册、Pi(k) 單位矩陣的第i行乘以非零k倍。
??2垂涯、Pi,j(k) 單位矩陣的第i行乘以非零k倍加到第j行烁焙。
??由上面初等矩陣的形式可以看出,初等矩陣都是可逆矩陣耕赘,初等變換都是可逆變換骄蝇。
如果兩個(gè)矩陣A,B操骡,A通過(guò)初等變換可以得到B九火,那么A和B成為等價(jià)赚窃。
??這里說(shuō)的矩陣等價(jià)和上文說(shuō)的矩陣等價(jià)是一樣的,A=PB岔激,P為一系列初等矩陣相乘得到勒极,是可逆矩陣,設(shè)Q為P的逆虑鼎,則可以寫(xiě)成 A=Q-1BE辱匿,所以形式和上文一致。
五震叙、置換矩陣
設(shè)P 是一個(gè) m×n 的 (0,1) 矩陣掀鹅,如 m≤n且 P*Pt=E,則稱 P為一個(gè) m×n的置換矩陣媒楼。其中Pt是P的轉(zhuǎn)置矩陣乐尊,E是m階單位方陣。
引理1
當(dāng) m≦n時(shí)划址,一個(gè) m×n 的(0,1) 矩陣P為置換矩陣的充要條件是P的每一行恰有一個(gè) 1扔嵌,每一列最多只有一個(gè) 1。當(dāng)P是方陣時(shí)夺颤,每行和每列有且僅有一個(gè)1.
置換矩陣的性質(zhì):
1痢缎、置換矩陣為方陣時(shí)必是可逆矩陣
2、一個(gè)矩陣左成一個(gè)置換方陣世澜,相當(dāng)于對(duì)矩陣進(jìn)行互換独旷,一個(gè)矩陣右乘一個(gè)置換矩陣時(shí),相當(dāng)于對(duì)矩陣進(jìn)列互換
3寥裂、置換方陣一定是正交矩陣嵌洼。
主子式和順序主子式
主子式:對(duì)于n階矩陣A,取出標(biāo)號(hào)相同的k行和k列的共有元素構(gòu)成矩陣的行列式為矩陣A的k階主子式封恰,例如:取第一麻养,第三,第五行與第一诺舔,第三鳖昌,第五列的公有的值構(gòu)成一個(gè)3階矩陣,此三階矩陣的行列式就是矩陣的三階主子式低飒。
順序主子式:對(duì)于n階矩陣A许昨,取前k行和前k列構(gòu)成矩陣的行列式為其k階順序主子式。
順序主子式的相關(guān)性質(zhì):
1褥赊、一個(gè)n階矩陣的所有順序主子式大于零车要,當(dāng)且僅當(dāng)其構(gòu)成的二次型為正定二次型,此矩陣稱作正定矩陣崭倘。
2、一個(gè)n階矩陣的所有順序主子式小于零,當(dāng)且僅當(dāng)其構(gòu)成的二次型為負(fù)定二次型汉柒,此矩陣稱作負(fù)定矩陣。
3悉患、一個(gè)n階矩陣的所有順序主子式大于等于零,當(dāng)且僅當(dāng)其構(gòu)成的二次型為半正定二次型榆俺,此矩陣稱作半正定矩陣售躁。
4、一個(gè)n階矩陣的所有順序主子式不等與零茴晋,該矩陣可進(jìn)行LU分解陪捷,且分解唯一。
由于矩陣分解這一塊不涉及二次型知識(shí)诺擅,故不對(duì)前三天進(jìn)行證明市袖,第四條將在下面的矩陣LU分解中證明。
矩陣的滿秩分解
定理3
??對(duì)于任意給定非零矩陣Amxn,都可以進(jìn)行以下分解
??????A=FG
??其中F為mxr矩陣烁涌,G為rxn矩陣苍碟,r為矩陣A的秩,F(xiàn)列滿秩撮执,G行滿秩微峰。此時(shí)A=FG 為矩陣A的滿秩分解。
證明:對(duì)于任意給定的非零矩陣Amxn抒钱,都可以經(jīng)過(guò)一系列的初等行變換和初等列變換蜓肆,變?yōu)槿缦滦问降木仃?/p>
其中E為r階單位矩陣,r?yàn)锳的秩谋币。既有如下等式成了
其中P為一系列mxm初等矩陣的乘積仗扬,Q為一系列nxn初等矩陣的乘積。因?yàn)槌醯染仃嚍榭赡婢仃嚾鹦牛訮,Q是可逆矩陣。
而
所以
因?yàn)镻mxm,Qnxn是可逆矩陣穴豫,所以令
F為列滿秩矩陣凡简,G為行滿秩矩陣,且秩都為r.定理得到證明
矩陣的LU分解
LU分解只對(duì)方陣而言精肃,但并非任意的方陣都可進(jìn)行LU分解秤涩。
定理4
對(duì)于任意的方陣A,存在置換矩陣P司抱,使得PA=LU筐眷,其中L為單位下三角矩陣,U為上三角矩陣习柠。當(dāng)A的對(duì)角線上沒(méi)有零元素時(shí)匀谣,A=LU照棋。
證明:對(duì)于任意方陣A,若A對(duì)角線上沒(méi)有0元素武翎,則存在一系列的初等矩陣Pi,j(k) 烈炭,其中i>j,使得這一系列的初等矩陣乘以A宝恶,將打A變成一個(gè)上三角矩陣符隙。既
因?yàn)槌醯染仃嚳赡妫砸幌盗谐醯染仃嚦朔eP也可逆垫毙,又因?yàn)椋椋荆昱撸赃@一些列初等矩陣為單位下三角矩陣,所以P是可逆的單位下三角矩陣综芥。記L=P-1,又因?yàn)閱挝幌氯蔷仃嚨哪婢仃囘€是單位下三角矩陣丽蝎。所以A=LU,其中L為單位下三角矩陣,U為上三角矩陣毫痕。
??對(duì)于對(duì)角線上有0元素的矩陣A征峦,若0元素所在的列,存在一個(gè)元素不為領(lǐng)消请,則存在一個(gè)置換矩陣P栏笆,使得PA對(duì)角線上的元素全不為零,若0元素所在的列都為零臊泰,則在將A轉(zhuǎn)化成上三角矩陣時(shí)蛉加,不處理該列,因?yàn)樵摿袑?duì)角線下面的元素已經(jīng)為0.所以當(dāng)對(duì)角線上有0元素時(shí)缸逃,存在一個(gè)置換矩陣P针饥,使得PA=LU,L為單位下三角矩陣需频,U為上三角矩陣丁眼,所以定理的證。
對(duì)于矩陣的LU分解昭殉,
定理5
設(shè)A為n階非奇異的實(shí)矩陣苞七,A存在唯一分解式A=LU的充要條件為A的n-1階順序主子式Di0,(i=1,2...n-1),其中L為單位下三角矩陣挪丢,U為上三角矩陣
證明:必要性:因?yàn)锳是非奇異矩陣蹂风,所有|A|=|L|* |U|0,而|L|=1,|U|=u1u2...un,其中ui為U的對(duì)角線上的第i個(gè)元素。所以u(píng)i0乾蓬。
對(duì)于A的k階順序主子式對(duì)應(yīng)的矩陣Ak,有Ak的任意元素ai,j是原來(lái)A的ai,j,因?yàn)锳=LU惠啄,所以有
????ai,j=li,1u1,j+li,2u2,j+...+ li,nun,j
其中當(dāng)r>i時(shí),有l(wèi)i,r=0 ,當(dāng)r>j時(shí),有ur,j=0.
所以上式可化簡(jiǎn)為:
????ai,j=li,1u1,j+li,2u2,j+...+ li,min(i,j)umin(i,j),j
所以Ak=LkUk,Lk為L(zhǎng)的k階順序主子式對(duì)應(yīng)的矩陣撵渡,Uk為U的k階順序主子式對(duì)應(yīng)的矩陣融柬,所以有
????|Ak|=|Lk||Uk|
而|Lk|=1,|Uk| =u1u2...uk,又因?yàn)閡i0,
所以 |Ak|0姥闭,所以A的k階順序主子式不等于零丹鸿。所以必要性得證。
充分性:分兩步先證明可分解性棚品,再證明唯一性靠欢。
(數(shù)學(xué)歸納法)當(dāng)A為1階非零常數(shù)a時(shí),a=1*a,1是退化單位下三角铜跑,a 時(shí)退化上三角矩陣门怪。滿足充分性。
設(shè)A為k-1階矩陣時(shí)锅纺,定理成立掷空,既:對(duì)于k-1階非奇異矩陣,若他的k-2順序主子式不為零囤锉,則有唯一LU分解坦弟,Ak-1=Lk-1Uk-1
當(dāng)A為k階矩陣的時(shí)候,A可寫(xiě)為以下形式:
因?yàn)锳的k-1階順序主子式不為零官地,所以Ak-1是可逆的酿傍,且其所有順序主子式都不為零,有假設(shè)得到驱入,Ak-1=Lk-1Uk-1
所以赤炒,有:
其中,L_{k-1}與U_{k-1}可逆亏较。
對(duì)于A矩陣左乘一個(gè)矩陣為
所以有
單位下三角矩陣的逆還是單位下三角矩陣莺褒,單位下三角矩陣乘以單位下三角矩陣還是單位下三角矩陣,所以設(shè)
所以有Ak=LkUk雪情, 而 Ak是非奇異的遵岩,所以令ukk=akk-TUk-1-1Lk-1-1,ukk0
所以,定理充分性中的可分解性得證巡通。
下面證明唯一性(反證法)
假設(shè)A純?cè)趦煞NLU分解尘执,則存在A=L1U1與A=L2U2同時(shí)成立。
所以有
L1U1=L2U2
所以
L2-1L1=U2U1-1
由于單位下三角矩陣的逆還是單位下三角矩陣扁达,單位下三角矩陣乘以單位下三角矩陣還是單位下三角矩陣正卧,而上三角矩陣乘以上三角矩陣還是上三角矩陣蠢熄。
所以等式左邊是單位下三角矩陣跪解,等式右邊是上三角矩陣,所以L2-1L1=U2U1-1 =E
所以L1=L2,U1=U2叉讥,這與假設(shè)矛盾窘行,所以唯一性得到證明。
矩陣LU分解求解
上面給出了矩陣LU分解的相關(guān)理論和定理图仓,下面給出矩陣LU分解的具體解法罐盔。
方法—、
對(duì)于給定的矩陣A(可進(jìn)行LU分解),構(gòu)造以下矩陣
對(duì)此矩陣進(jìn)行行變換救崔,把A轉(zhuǎn)化成上三角矩陣A1,則由于進(jìn)行了換變換惶看,原來(lái)矩陣中的E變?yōu)榱薆。
所以上面矩陣變成
此時(shí)B就是矩陣LU分解中的L六孵,A1就是矩陣分解中的U纬黎。
方法二(Doolittle算法)、
類(lèi)似待定系數(shù)法劫窒,若A可進(jìn)行LU分解本今,設(shè)
則有
和
求解上面方程,即可得到L和U的每一個(gè)元素主巍。具體求解順序?yàn)橄聢D (緊湊格式)
對(duì)于矩陣得LU分解其本質(zhì)是高斯消元法冠息。應(yīng)用為一般解線性方程組上,例如 :
可以利用矩陣得LU分解得到以下公式:
公式中孕索,L與U都是三角矩陣逛艰,所以大大減少了計(jì)算量。
矩陣得LDU分解
有了上面矩陣LU分解得介紹檬果,可以很快的得到矩陣LDU分解相關(guān)的定理瓮孙。
定理6
設(shè)A是n階非奇異矩陣,則存在唯一的單位下三角矩陣L选脊,對(duì)角矩陣D=diag(u1,u2,u3.....un)和單位上三角矩陣U
使得
的充分必要條件是A的所有順序主子式均非零杭抠,即Dk0。并且有
再矩陣LU分解定理證明時(shí)恳啥,可以將U分解成DU偏灿,其中D=diag(u1,u2,u3.....un),U為單位上三角矩陣钝的。所以這個(gè)定理的證明只需證明
證明:由上面LU的證明翁垂,可以看除,A=LU分解時(shí)硝桩,A的k階順序主子式就等于L的k階主子式對(duì)應(yīng)的矩陣乘以U的k階主子式對(duì)應(yīng)的矩陣沿猜。所以A的k階主子式Dk=u1u2u3...u1k.所以上面公式得到證明
注意
由矩陣LU分解定理和矩陣LDU分解定理可知,并不是所有的非奇異矩陣都可進(jìn)行LU與LDU分解.但此時(shí)一定存在一個(gè)置換矩陣P,使得PA可進(jìn)行LU分解和LDU分解.其證明過(guò)程可參考上文定理4.
對(duì)于矩陣的LDU分解,當(dāng)A是非奇異的是對(duì)稱矩陣時(shí)碗脊,若A的各階順序主子式都不為零啼肩,那么有以下分解.
證明:因?yàn)锳的各階順序主子式都不為零,所以A可唯一的分解為L(zhǎng)DU.即A=LDU
又因?yàn)锳是對(duì)稱矩陣,所以有
因?yàn)閁T是單位下三角,LT是單位上三角,且分解式唯一,所以L=UT,U=LT.所以以上公式成立.
矩陣的正交分解
正交矩陣
如果一個(gè)n階實(shí)矩陣A,A的任意兩列構(gòu)成的向量正交且任意列向量的模為1,那么A成為正交矩陣.即滿足ATA=E.有這個(gè)公式得到,AT=A-1
進(jìn)一步有AAT=E ,所以推出A的任意行向量也正交.
所以判斷一個(gè)A是否是正交矩陣,以下方法等價(jià),AT=A-1 ,ATA=E,AAT=E
由此可以看出正交矩陣的行列式,只能等于1或者-1
正交矩陣的性質(zhì)
談?wù)撜痪仃嚨男再|(zhì)等價(jià)與談?wù)撜蛔儞Q的性質(zhì).由上文我們得到,線性變換在一組基下與一方陣一一對(duì)應(yīng).所以對(duì)于正交矩陣,可以找到一個(gè)線性變換,使這一線性變換在標(biāo)準(zhǔn)正交基下的矩陣是正交矩陣.所以研究正交矩陣和研究正交變換是等價(jià)的.
設(shè)是一線性變換,這一線性變換在n維空間V標(biāo)準(zhǔn)正交基1祈坠,2害碾,...n下的矩陣為正交矩陣A,
對(duì)于空間V中任意兩個(gè)向量,,在標(biāo)準(zhǔn)正交基1,2赦拘,...n的坐標(biāo)w為(k1慌随,k2,...kn)和(l1躺同,l2阁猜,...ln),經(jīng)過(guò)變換后,求變換后的內(nèi)積為((),())
其中(,,...)是A的列向量組成的向量組.
所以可以得到,正交變換不但可以保證加法和數(shù)乘運(yùn)算,還可以保證內(nèi)積不變.
正交變換保證兩個(gè)向量的內(nèi)積不變,等價(jià)于,正交變化隊(duì)醫(yī)一個(gè)向量而言不改變其長(zhǎng)度和不改變其和其他向量的夾角.
正交矩陣的行列式只能為1或者-1,所以對(duì)應(yīng)的正交變換也有兩種.當(dāng)正交矩陣的行列式為1時(shí),對(duì)應(yīng)的正交變換為旋轉(zhuǎn)變換,當(dāng)正交矩陣的行列式為-1時(shí),對(duì)應(yīng)的正交變換為瑕旋轉(zhuǎn)變換(旋轉(zhuǎn)后再反射的線性變換).
另外,對(duì)于n維空間中的兩組標(biāo)準(zhǔn)正交基:1,2蹋艺,...n與1蹦漠,2,...n,設(shè)其過(guò)度矩陣為P.則:
(1车海,2笛园,...n)=(1,2侍芝,...n)P,此時(shí)P是正交矩陣.
證明:由于(1研铆,2,...n)=(1州叠,2棵红,...n)P
所以有k=p1k1+p2k2+p3k3+...+pnkn
其中pij為P的第i行第j列的元素.
所以
(i,j)=(p1i1+p2i2+p3i3+...+pnin ,p1j1+p2j2+p3j3+...+pnjn) =p1ip1j+p2ip2j+p3ip3j+pnipnj=(i,j)
其中i為矩陣P的第i列組成的向量,j為矩陣P的第j列組成的向量,而(i,j)當(dāng)i=j時(shí)為1,ij時(shí)為0.
所以(i,j))當(dāng)i=j時(shí)為1,ij時(shí)為0.
所以P是一個(gè)正交矩陣.
向量的正交化
對(duì)于一組線性無(wú)關(guān)的向量,其會(huì)構(gòu)成一個(gè)線性空間V.在研究空間V時(shí),標(biāo)準(zhǔn)正交基可以將此空間的問(wèn)題大大簡(jiǎn)化,所以找到V的一組標(biāo)準(zhǔn)正交基,就成了研究空間V的關(guān)鍵問(wèn)題.
<font color="#FF0000">此時(shí)估計(jì)有很多人會(huì)有一個(gè)疑問(wèn),為什么非要找標(biāo)準(zhǔn)正交基咧栗,自然基不就是一個(gè)標(biāo)準(zhǔn)正交基嗎逆甜?為什么不用自然基</font>
對(duì)于這一問(wèn)題,一開(kāi)始也困擾我致板,可以舉個(gè)列子交煞,來(lái)解釋為什么不用自然基。
對(duì)于AX=0的解空間研究斟或,設(shè)其解空間為k維素征,向量1,2萝挤,...k為k個(gè)線性無(wú)關(guān)的解向量御毅。則1,2怜珍,...k為解空間的一組基端蛆。求這個(gè)解空間的標(biāo)準(zhǔn)正交基時(shí),若直接用自然基酥泛,(1,0,0,...0),(0,1,0,...0),...(0,0,0,...1,...0)k個(gè)向量(<font color="#FF0000">注意這個(gè)地方是k個(gè)n維向量今豆,因?yàn)榻庀蛄恳欢ㄊ莕維向量</font>)侈沪。顯然這些向量不能被1,2晚凿,...k線性表示,所以不是AX=0的解瘦馍,所有這個(gè)自然基并不在這個(gè)解空間中冗懦。所以不能用自然基嫁艇。此時(shí)找的標(biāo)準(zhǔn)正交基必然可以被1,2,...k線性表示趴腋。這樣才能確保找到的標(biāo)準(zhǔn)正交基是解空間的一組基。
這樣就引出了施密特正交化算法(Schmidt orthogonalization)摔寨,其具體算法如下:
設(shè)1,2,3,... n,是n維線性空間的一組基闲询。
由這組基找到標(biāo)準(zhǔn)正交基的算法如下:
由于,,...的模不是1,故再將其除以各自的模長(zhǎng)底瓣,得到,,....這就是有原來(lái)的基生成的一組標(biāo)準(zhǔn)正交基谢揪。
其算法的幾何圖形如下:
矩陣的正交分解
由上面線性無(wú)關(guān)向量組的正交化可以看出,設(shè)Q=(,,...)時(shí)捐凭,
設(shè)A=()
則有A=QR拨扶,其中R是上面公式中單位上三角矩陣的逆。單位上三角矩陣的逆還是單位上三角矩陣茁肠。所以由
其中患民,是正交矩陣,是上三角矩陣垦梆。這就是矩陣的QR分解(正交分解)匹颤。其定理敘述如下:
定理7
設(shè)A是n階非奇異矩陣,則存在正交矩陣Q和非奇異的上三角矩陣R托猩,使得:
且除去相差一個(gè)對(duì)角元絕對(duì)值等于1的對(duì)角矩陣因子分解外印蓖,分解式是唯一的。
上面的算法以給出可分解性京腥,下面只需要證明唯一性即可另伍。
反證法:假設(shè)A有以下兩種不同的分解。A=與A=
那么有=绞旅。由于都是可逆的摆尝,所以有
連個(gè)都是正交矩陣,所以的轉(zhuǎn)置等于的逆因悲,所以也是正交矩陣堕汞。
所以是正交矩陣,的逆等于其轉(zhuǎn)置晃琳, 而是上三角矩陣讯检, 上三角矩陣的逆是上三角矩陣琐鲁,上三角矩陣的轉(zhuǎn)置是下三角矩陣,如果一個(gè)上三角矩陣等于一個(gè)下三角矩陣人灼,必然都是對(duì)角矩陣围段,所以R_2R_1{-1}是對(duì)角矩陣,所以Q_2{-1}Q_1也是對(duì)角矩陣投放,而Q_2{-1}Q_1是正交矩陣奈泪,所以列向量的模等于1,所以Q_2{-1}Q_1必然是一個(gè)對(duì)角線上只有 1或者-1的對(duì)角矩陣灸芳。
設(shè)涝桅,,其中B是一個(gè)對(duì)角線上只有1或者-1的矩陣。那么,
所以定理得證烙样。
Householder矩陣與Householder變換(初等反射變換)
定義: 設(shè)是n維單位列向量冯遂,E為n階單位矩陣,則
稱為Householder矩陣谒获,或稱作初等Householder矩陣蛤肌。
與Householder矩陣對(duì)應(yīng)的變換為Householder變換,既
以下H代表Householder變換批狱,主要研究Householder變換的性質(zhì)寻定,因?yàn)镠ouseholder矩陣的性質(zhì)全部在Householder變換中
對(duì)于Householder變換,有一個(gè)強(qiáng)大的功能精耐,既:Householder變換可將任意n維非零向量x狼速,變換成任意n維相等模長(zhǎng)的非零向量y.表述成定理如下
定理8
對(duì)于給定的任意兩個(gè)n維非零向量想x、y卦停,且
都純?cè)谝粋€(gè)Householder變換H向胡,使得y=Hx.
證明:(構(gòu)造性證明)如下圖所示,對(duì)任意給定的向量x,y惊完。構(gòu)造
則有
則有
則有
所以定理得證僵芹。由下圖可知,向量x,y是關(guān)于一個(gè)面對(duì)稱小槐。這個(gè)面的法向量就是
所以拇派,HouseHolder變換是正交變化,且HouseHolder矩陣的行列式為-1.
由定理得知凿跳,對(duì)于任意單位向量件豌,都可經(jīng)過(guò)Householder變換把變成
HouseHolder變換的性質(zhì)
1、HouseHloder變換是對(duì)稱變換控嗜。既:
2茧彤、HouseHloder變換是正交變換。既:
3疆栏、HouseHolder變換是對(duì)合變化曾掂。既:
4惫谤、HouseHolder變換的特征值為1,1,1,1,1...1,-1
定理9
設(shè)A是mXn(其中n<m)實(shí)數(shù)矩陣,且其n個(gè)列向量下行無(wú)關(guān)珠洗,則存在m階正交矩陣Q溜歪,與n階非奇異上三角矩陣R。有
證明:定理的證明用HouseHolder變換许蓖。
因?yàn)锳的所有列線性無(wú)關(guān)蝴猪,設(shè)
由上面關(guān)于Householder變換的定理可知,存在一個(gè)Householder矩陣H1,使得
所以H1A第一列除了第一個(gè)元素外其余全為零蛔糯。
設(shè)
其中除第一個(gè)元素非零外,其余全為零窖式。
對(duì)于第二個(gè)列向量蚁飒,也存在一個(gè)Householder矩陣,有
也就是說(shuō)對(duì)任意的列向量,都存在一個(gè)householder矩陣萝喘,使尾部變成零淮逻。但是需要證明的一點(diǎn)是,后面的householder矩陣不改變前面已經(jīng)變換的列向量阁簸。
所以爬早,只要能找到不改變前面列零和非零的householder矩陣即可。
如果H是householder矩陣启妹,那么
也是householder矩陣筛严。
由于
所以
其中
所以
也是個(gè)householder矩陣,(定理的最后饶米,只能將矩陣A上三角化桨啃,而不能對(duì)角化,原因就在這個(gè)地方檬输,這樣構(gòu)造出來(lái)的householder矩陣不能保證只有對(duì)角線上元素非零照瘾,只能保證對(duì)角線下方的元素為零。)
所以丧慈,可以找到一系列的houserholder矩陣析命,使得
設(shè)Q=H_n...H_2H_1,所以Q是正交矩陣逃默,而R是上三角矩陣鹃愤,又因?yàn)锳是列滿秩,所以R也是滿秩的完域,所以定理得到證明昼浦。
矩陣的特征分解(普分解)
正規(guī)矩陣
對(duì)于n階實(shí)矩陣A,如果則稱A是正規(guī)矩陣。
所以可以輕松得到筒主,對(duì)稱矩陣关噪,正交矩陣鸟蟹,對(duì)角矩陣都是正規(guī)矩陣。
定理10(Schur定理)(矩陣的Schur三角分解)
對(duì)于任意n階實(shí)矩陣A使兔,都正交相似于一個(gè)上三角矩陣建钥,既存在正交矩陣U,有
其中R是一個(gè)上三角矩陣虐沥,且其R對(duì)角線上的元素為A的特征值熊经。
證明:(使用數(shù)學(xué)歸納法證明)。
當(dāng)n=1時(shí)欲险,定理成立镐依,假設(shè)當(dāng)A的階數(shù)為n-1也成立,當(dāng)A的階數(shù)為n時(shí)天试,
對(duì)于n階實(shí)矩陣A槐壳,設(shè)A的一個(gè)特征向量為
對(duì)于存在householder矩陣,有
其中為A的一個(gè)單位特征向量。
則
其中
所以
設(shè)
則必然有如下形式
其中為的特征值喜每。而是n-1階矩陣务唐,由歸納法的假設(shè)得到有定理中的分解。而由特征值和特征向量的定義得到带兜,的特征值就是的特征值枫笛。所以當(dāng)A為n階矩陣時(shí)定理也成立。所以定理得證刚照。
Schur定理告訴我們?nèi)我鈔階實(shí)矩陣A都正交相似于一個(gè)上三角矩陣刑巧,且這個(gè)上三角矩陣對(duì)角線上的元素為原矩陣的特征值。既:
如果A是正規(guī)矩陣无畔,則有以下結(jié)論:
定理11(<font color="#660000">對(duì)于以上的所有定理雖然都是在實(shí)數(shù)域討論海诲,但同樣適用于復(fù)數(shù)域,所以未進(jìn)行區(qū)分檩互,而這個(gè)定理如果不區(qū)分實(shí)數(shù)和復(fù)數(shù)的話特幔,就會(huì)被搞暈,所以一定要注意</font>)
對(duì)于任意的n階矩陣A,存在一個(gè)酉矩陣U闸昨,使得
其中為對(duì)角矩陣的充分必要條件是A為正規(guī)矩陣蚯斯。
<font color="#660000">此定理中U為酉矩陣,不能修改為正交矩陣饵较,因?yàn)檎痪仃囈彩钦?guī)矩陣拍嵌,由定理得,一個(gè)正交矩陣正交相似與一個(gè)對(duì)角矩陣循诉,所以這個(gè)正交矩陣是對(duì)稱矩陣横辆,并不是所有的正交矩陣都是對(duì)稱矩陣,所以要想讓正規(guī)矩陣對(duì)角化茄猫,必須在復(fù)數(shù)域上狈蚤,酉相似對(duì)角化</font>
證明:必要性證明
由條件知困肩, 和
所以
所以必要性得到證明。
充分性證明
若A為正規(guī)矩陣脆侮,則锌畸。又因?yàn)镾chur定理,對(duì)于n階矩陣A靖避,存在酉矩陣U使得
其中R為上三角矩陣潭枣。
所以且
所以和
所以
而R是一個(gè)上三角矩陣,所以是一個(gè)下三角矩陣幻捏,所以盆犁,設(shè)
所以:
由中對(duì)應(yīng)元素相等,得到篡九,R是一個(gè)對(duì)角矩陣谐岁,注意此時(shí)對(duì)角線上不一定是實(shí)數(shù),所以定理得證瓮下。
定理12(特征分解定理)
對(duì)于n階實(shí)對(duì)稱矩陣A翰铡,存在一個(gè)酉矩陣U钝域,使得
其中,為A的實(shí)特征值讽坏。
證明:因?yàn)閷?shí)對(duì)稱矩陣是正規(guī)矩陣,由上面的定理例证,可知必存在酉矩陣U路呜,使得
只需證明,是個(gè)實(shí)數(shù)矩陣织咧,其對(duì)角線上為A的特征值胀葱。
對(duì)于上式等式兩邊同時(shí)取轉(zhuǎn)置共軛,有
因?yàn)锳是實(shí)對(duì)稱矩陣笙蒙,所以抵屿,
所以為實(shí)對(duì)角矩陣。
又
設(shè)則有
所以可以看出捅位,U的列向量為屬于對(duì)應(yīng)特征值的特征向量轧葛。所以定理得證。
所以對(duì)于任意n階實(shí)對(duì)稱矩陣A艇搀,有以下分解
稱這個(gè)分解為特征分解或譜分解尿扯。因?yàn)镼的列向量為A的特征向量。對(duì)角線上的值為A 的特征值焰雕。
奇異值分解
矩陣的奇異值分解較上面幾種分解是一種重要的分解衷笋。下面討論的一些結(jié)論在復(fù)數(shù)域上,但在實(shí)數(shù)域上也成立矩屁。
什么是奇異值
對(duì)于任意復(fù)數(shù)域上的mxn矩陣A辟宗,存在非負(fù)實(shí)數(shù)爵赵,非零向量與非零向量,有
則稱為矩陣A的奇異值慢蜓。稱為矩陣A的屬于的右奇異向量亚再,稱為矩陣A的屬于的左奇異向量,
在理解奇異值到底有什么用之前晨抡,先證明關(guān)于奇異值的幾個(gè)結(jié)論氛悬。
1、有一樣的非零特征值如捅。
2、的特征值一定是非負(fù)實(shí)數(shù)调煎。
3镜遣、
第一個(gè)結(jié)論的證明,用矩陣的特征方程可證士袄,的特征方程分別為與悲关,各自特征方程的解就是矩陣的特征值。
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%EF%BD%9C%5Clambda%20E-B_%7Bmxn%7DA_%7Bnxm%7D%EF%BD%9C%EF%BC%9D%5Clambda%5E%7Bm-n%7D%EF%BD%9C%5Clambda%20E-A_%7Bnxm%7DB_%7Bmxn%7D%EF%BD%9C" alt="|\lambda E-B_{mxn}A_{nxm}|=\lambda^{m-n}|\lambda E-A_{nxm}B_{mxn}|" mathimg="1">
所以有一樣的非零特征值娄柳。
第二個(gè)結(jié)論的證明寓辱,設(shè)是矩陣的特征值,是對(duì)應(yīng)的特征向量赤拒。所以有
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cmu" alt="\mu" mathimg="1">是對(duì)應(yīng)的特征向量秫筏,所以非零,上式兩遍左乘一個(gè),得到
所以
上式中等式右邊必然是個(gè)非負(fù)實(shí)數(shù)挎挖,也必然是個(gè)非負(fù)實(shí)數(shù)这敬,所以必然為非負(fù)實(shí)數(shù)。
第三個(gè)結(jié)論的證明蕉朵,由第一個(gè)結(jié)論可以輕松證明崔涂,只要證明
用方程解空間的維度證明。只要證明Ax=0的解空間和的解空間一樣始衅,即可說(shuō)明冷蚂,若非零向量是Ax=0的解,那么
一定是的解觅闽。若非零向量是的解帝雇,則
所以
所以是Ax=0的解尊勿,所以兩者的解空間一樣舶掖,所以
如何求得奇異值
根據(jù)奇異值的概念,對(duì)于矩陣A兵拢,設(shè)是其奇異值,為右奇異向量吮廉,為左奇異向量苞尝。那么有
和
所以
所以若是A的奇異值,等價(jià)于是的特征值宦芦,因?yàn)樯厦娼Y(jié)論1宙址,與有一樣的非零特征值,所以也是的特征值
所以若要求A的奇異值调卑,只需求得的特征值抡砂,因?yàn)樯厦娼Y(jié)論2,的特征值非負(fù)恬涧,對(duì)的特征值求正平方根注益,即為A的奇異值。需要注意的是A的奇異值的個(gè)數(shù)等于min{m,n}.
同時(shí)溯捆,我們還得到丑搔,是與矩陣對(duì)應(yīng)的變換在下的特征向量,同理提揍,是與矩陣對(duì)應(yīng)的變換在下的特征向量
定理13
若一個(gè)矩陣是正規(guī)矩陣啤月,則其奇異值等于特征值的模。
證明:對(duì)于正規(guī)矩陣有個(gè)非常優(yōu)良的性質(zhì)劳跃,就是可以酉相似對(duì)角化谎仲,既存在酉矩陣U,對(duì)于正規(guī)矩陣A售碳,有
所以
所以A的奇異值為.所以定理得證强重。
定理14 (奇異值分解定理)
對(duì)于任意mxn階矩陣A绞呈,必定存在以下分解
其中U是mxm階酉矩陣贸人,V是nxn階酉矩陣,是mxn階級(jí)對(duì)角矩陣可寫(xiě)為
r為A的秩佃声,為A的第i大的非零奇異值艺智。
證明:
對(duì)于任意矩陣A,有是埃爾米特矩陣圾亏,所以是正規(guī)矩陣十拣,所以存在酉矩陣U,和對(duì)角矩陣,使得
其中對(duì)角線上為的特征值,U的列向量為對(duì)應(yīng)的特征向量
所以
兩邊同時(shí)左乘一個(gè)
有
所以
其中 r為A的秩志鹃,為A的第i大的非零特征值夭问。
設(shè)其中V_1,U_1的階數(shù)為rank(A).
所以
所以
由于
逆向證明曹铃,如果定理成立缰趋,有
必須有
設(shè)
則必須有
則必須有
則必須有,,,,其中 r為A的秩,為A的第i大的非零奇異值。
取,
則(由上面的(**)式得到)
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5CLambda" alt="\Lambda" mathimg="1">是實(shí)數(shù)秘血,所有=E
所以的所有列正交味抖。所有既是合理的也是能取到的。
而此時(shí)
此時(shí)在列向量形成的空間的正交補(bǔ)空間中取m-r個(gè)單位正交向量形成.
那么必然是酉矩陣灰粮,且
所以
由公式(*)得到
所有當(dāng)U和V的取法為上面時(shí)仔涩,下面公式成立
所以反推回去,成立粘舟。
其中U熔脂,V為酉矩陣, r為A的秩柑肴,為A的第i大的非零奇異值锤悄。
所以奇異值分解定理得到證明
奇異值分解的幾個(gè)結(jié)論
1、U的列向量是的屬于對(duì)應(yīng)特征值的特征向量嘉抒。
2零聚、V的列向量是的屬于對(duì)應(yīng)特征值的特征向量。
3些侍、U的列向量是A的屬于對(duì)應(yīng)奇異值的右奇異向量隶症。
4、V的列向量是A的屬于對(duì)應(yīng)奇異值的左奇異向量岗宣。
證明:第一條蚂会,由上面定理的證明過(guò)程可以看到,U是使得的酉矩陣耗式,所以U的列向量是的屬于對(duì)應(yīng)特征值的特征向量胁住。
對(duì)于第二條,因?yàn)?img class="math-block" src="https://math.jianshu.com/math?formula=A%3DV%20%5CSigma%20U%5EH" alt="A=V \Sigma U^H" mathimg="1">
所以,所以
所以
所以V的列向量是的對(duì)應(yīng)特征值的特征向量刊咳。
對(duì)于第三條和第4條彪见,因?yàn)?img class="math-block" src="https://math.jianshu.com/math?formula=A%3DV%20%5CSigma%20U%5EH" alt="A=V \Sigma U^H" mathimg="1">
所以有和
所以第三條和第四條成立
奇異值分解的性質(zhì)
<font color="#660000">奇異值分解在機(jī)器學(xué)習(xí)中是極其重要的分解,因?yàn)樗哂泻芏鄡?yōu)良的性質(zhì)娱挨,一定程度上揭示了矩陣的一些本質(zhì)余指。下面我們就來(lái)討論一下這些性質(zhì)。矩陣的特征值更能反映矩陣的本質(zhì)跷坝,但為什么不對(duì)特征值進(jìn)行討論酵镜,因?yàn)橹挥蟹疥嚥庞刑卣髦担也⒉皇撬械姆疥嚩寄苓M(jìn)行特征分解柴钻。</font>
為進(jìn)行奇異值的性質(zhì)分析淮韭,我們先做一下兩點(diǎn)準(zhǔn)備。
1贴届、矩陣特征分解和奇異值分解的另一種表示方式
對(duì)于任意的埃爾米特矩陣靠粪,有特征分解 ,其中,為U矩陣足丢,
所以A可寫(xiě)為
對(duì)于任意的矩陣,并不是都有有特征分解 庇配,為了得到上式的表達(dá)式斩跌,我們進(jìn)行奇異值分解,這也就是奇異值分解由來(lái)的原因捞慌,由奇異值分解定理耀鸦,有,
其中r為A 的 秩。
2啸澡、向量的L2范數(shù)和矩陣的F-范數(shù)
一個(gè)向量(矩陣)的大小可以用向量(矩陣)的范數(shù)來(lái)表示袖订,從而一個(gè)向量(矩陣)與另一個(gè)向量(矩陣)所含的信息量的差--既兩個(gè)向量(矩陣)的距離,可以用這兩個(gè)向量(矩陣)的差向量(矩陣)的范數(shù)表示.如果這個(gè)范數(shù)越大嗅虏,說(shuō)明這兩個(gè)向量(矩陣)的差異越大洛姑,從而認(rèn)定兩個(gè)向量(矩陣)所含信息量差異越大。
在機(jī)器學(xué)習(xí)中和接下來(lái)討論奇異值分解的性質(zhì)時(shí)皮服,最常用的是向量的L2范數(shù)楞艾,矩陣的F范數(shù)。下面對(duì)其詳細(xì)介紹
定義:向量(矩陣)的范數(shù)是一個(gè) 將向量(矩陣)映射到一個(gè)非負(fù)實(shí)數(shù)的函數(shù)龄广,其滿足一下三個(gè)性質(zhì):
(1)非負(fù)性硫眯,F(xiàn)(x)=0 <=> x=0
(2)齊次性,F(xiàn)(kx)=|k|F(x)
(3)三角不等式择同,F(xiàn)(x+y)<=F(x)+F(y)
其中x為向量(矩陣)两入。
·向量的L2范數(shù)
設(shè),則x的2范數(shù)如下表示
向量的L2范數(shù)用處非常廣,在誤差分析敲才,正則化裹纳,最小二乘法中均有用到。有向量?jī)?nèi)積的定義得到紧武,L2范數(shù)還有以下表示:
·矩陣的F范數(shù)
與向量的L2范數(shù)相對(duì)應(yīng)剃氧,在矩陣中,F(xiàn)范數(shù)定義為下面形式:
矩陣的F范數(shù)還有以下表示方式:
有上面范數(shù)的基礎(chǔ)脏里,即可討論下面奇異值分解的性質(zhì):
1她我、奇異值的酉(正交)不變性虹曙。
對(duì)任意酉矩陣(正交矩陣)P迫横,矩陣A的奇異值和PA的奇異值,AP的奇異值都是一樣的酝碳。
證明:
對(duì)任意矩陣PA,由奇異值分解定理得到矾踱,存在酉矩陣U和V有以下分解(奇異值從大到小排列)。
所以
而兩個(gè)酉矩陣想乘還是酉矩陣疏哗,所以奇異值的定義得到呛讲,也是Ade奇異值形成的矩陣,所以性質(zhì)得到證明。
這一性質(zhì)說(shuō)明了贝搁,鏡面變換和旋轉(zhuǎn)變換都不改變一個(gè)矩陣的奇異值吗氏。
2、比例不變性雷逆。
A的奇異值是,則kA的奇異值為
3弦讽、矩陣降維
對(duì)于mxn階矩陣A,當(dāng)時(shí),在計(jì)算機(jī)存儲(chǔ)時(shí)膀哲,會(huì)減小存儲(chǔ)空間往产。
證明:對(duì)任意的mxn階矩陣A,若不進(jìn)行分解某宪,需要存儲(chǔ)mxn個(gè)數(shù)字仿村,而當(dāng)進(jìn)行奇異值分解時(shí),A可以分解成mxm階矩陣U兴喂,mxn階矩陣,nxn階矩陣V
既
所以:
所以是mxr階矩陣蔼囊,是rxn階矩陣,是r階對(duì)角方陣。所以此時(shí)存儲(chǔ)A需要存儲(chǔ)(m+n+1)r個(gè)元素衣迷。所以當(dāng)時(shí)压真,在計(jì)算機(jī)存儲(chǔ)時(shí),會(huì)減小存儲(chǔ)空間蘑险。
4滴肿、尋找秩為k的一個(gè)矩陣,作為A的最佳逼近佃迄。
對(duì)于給定的一個(gè)矩陣A,如果需要找到一個(gè)秩為k(k<rank(A))的矩陣泼差,去逼近這個(gè)矩陣A.奇異值分解給出了方法。為什么要找到一個(gè)秩比原矩陣小的矩陣呵俏,去逼近原矩陣堆缘,因?yàn)椋@是有實(shí)際意義的普碎,在圖像處理中吼肥,一張圖像,可以看成是一個(gè)矩陣麻车,尋找這個(gè)圖像的特征(此特征非矩陣的特征值和特征向量缀皱,而是機(jī)器學(xué)習(xí)里面圖像的特征,例如圖像的顏色动猬,形狀之類(lèi)的啤斗,雖然這些最終會(huì)體現(xiàn)在矩陣的特征里,但是還是要區(qū)分開(kāi)赁咙,不要混淆钮莲。)時(shí)要去除噪音免钻,去燥的過(guò)程就是找一個(gè)比原矩陣秩小的矩陣,使找到的這個(gè)矩陣是原矩陣的最佳逼近崔拥。這一過(guò)程也就是PCA的原理极舔,PCA下面一節(jié)介紹,在這里只證明這個(gè)性質(zhì)链瓦。
談到逼近姆怪,必然要定義一個(gè)范數(shù),因?yàn)橹挥性诜稊?shù)下逼近才有意義澡绩,在機(jī)器學(xué)習(xí)中稽揭,圖像處理,音頻處理肥卡,都使用矩陣的F范數(shù)溪掀,所以這里所說(shuō)的最佳逼近是F范數(shù)下的最佳逼近。
定義:所謂F范數(shù)下的最佳逼近為滿足下面表達(dá)式的矩陣C
定理15(矩陣的低秩逼近定理)
給定一個(gè)秩為r的矩陣A,則
欲求其最優(yōu)k秩近似矩陣,k?r, 該問(wèn)題可形式化為
對(duì)矩陣A進(jìn)行奇異值分解后畜吊,將矩陣中的 r ? k 個(gè)最小的奇異值置零獲得矩陣, 僅保留最大的k個(gè)奇異值, 則
就是上面最優(yōu)化問(wèn)題的的最優(yōu)解,其中Uk和Vk分別是式U和V中前k列組成的矩陣. (Eckart-Young-Mirsky定理)
所以由這個(gè)定理我們就得到了矩陣的低秩逼近矩陣,這個(gè)應(yīng)用在圖像壓縮中用處非常大,稍后介紹。這個(gè)定理的證明在此就不給出了不同,感興趣的話聚蝶,詳見(jiàn)論文
Eckart-Young-Mirsky矩陣逼近定理钩乍。
在矩陣的低秩最佳逼近中,對(duì)于mxn階秩為r的矩陣A楞件,有
其中
而秩為k的最佳逼近矩陣
所以矩陣A到矩陣丟失的信息量比例為
<font color="#660000">網(wǎng)上很多奇異值分解降維應(yīng)用的原理都是用這個(gè)公式推導(dǎo)矩陣低秩逼近定理衫生,但是我認(rèn)為這個(gè)并不能證明,在數(shù)學(xué)上不能?chē)?yán)格證明矩陣的低秩逼近定理土浸,要想嚴(yán)格的證明矩陣的低秩逼近定理必須參考Eckart-Young-Mirsky論文給出的方法罪针。也就是說(shuō)理解SVD在降維中的理論,必須用論文Eckart-Young-Mirsky矩陣逼近定理證明黄伊,網(wǎng)上給出的證明都是從結(jié)論出發(fā)还最,用結(jié)論驗(yàn)證結(jié)論。</font>
奇異值分解的應(yīng)用
1拓轻、在圖像壓縮中的應(yīng)用
由前文奇異值分解的第3扶叉、4個(gè)性質(zhì)勿锅,我可以對(duì)一張圖片進(jìn)行壓縮溢十,一張圖片可以看成是一個(gè)矩陣张弛,對(duì)這個(gè)矩陣進(jìn)行奇異值分解吞鸭,取秩為k的矩陣進(jìn)行逼近瞒大,這個(gè)秩序?yàn)閗的矩陣就是原圖像壓縮后的圖像透敌。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
def rebuild_img(u, sigma, v, p): #p表示奇異值的百分比
m = len(u)
n = len(v)
a = np.zeros((m, n))
count = (int)(sum(sigma))
curSum = 0
k = 0
while curSum <= count * p:
uk = u[:, k].reshape(m, 1)
vk = v[k].reshape(1, n)
a += sigma[k] * np.dot(uk, vk)
curSum += sigma[k]
k += 1
a[a < 0] = 0
a[a > 255] = 255
#按照最近距離取整數(shù)酗电,并設(shè)置參數(shù)類(lèi)型為uint8
return np.rint(a).astype("uint8")
if __name__ == '__main__':
img = Image.open('Hydrangeas.jpg', 'r')
a = np.array(img)
plt.figure(figsize = (16, 8))
i=0
for p in np.arange(0.1, 1, 0.2):
u, sigma, v = np.linalg.svd(a[:, :, 0])
R = rebuild_img(u, sigma, v, p)
u, sigma, v = np.linalg.svd(a[:, :, 1])
G = rebuild_img(u, sigma, v, p)
u, sigma, v = np.linalg.svd(a[:, :, 2])
B = rebuild_img(u, sigma, v, p)
I = np.stack((R, G, B), 2)
plt.subplot(2, 3, i+1), plt.imshow(I), plt.axis('off'), plt.title("p =" + str(np.around(p*100, decimals=1))+"%")
i=i+1
#保存圖片在img文件夾下
#Image.fromarray(I).save("svd_" + str(p * 100) + ".jpg")
上面程序給出,當(dāng)奇異值舍棄的順序由小到大话瞧,保留的奇異值的個(gè)數(shù)越多交排,圖片被壓縮的比例越小埃篓,圖像越清晰。上面的例子可以看出保留的奇異值比例在50%的時(shí)候還能辨別是一個(gè)花架专。這就是奇異值分解在圖像壓縮中的應(yīng)用部脚。
2丧没、在圖像恢復(fù)中的應(yīng)用
在圖像恢復(fù)中的應(yīng)用骂铁,主要是缺失矩陣(稀疏矩陣)的數(shù)據(jù)補(bǔ)全拉庵。下面舉的例子是基于協(xié)同過(guò)濾算法去實(shí)現(xiàn)的套蒂。協(xié)同過(guò)濾算法的講解詳見(jiàn)“奇異值分解在協(xié)同過(guò)濾推薦算法中的應(yīng)用”。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
'''以下是三種計(jì)算相似度的算法婴洼,分別是歐式距離柬采、皮爾遜相關(guān)系數(shù)和余弦相似度,
注意三種計(jì)算方式的參數(shù)inA和inB都是列向量'''
#這段代碼在機(jī)器學(xué)習(xí)實(shí)戰(zhàn)書(shū)中P259
#(注意傳入的inA,inB都是列向量,行向量會(huì)報(bào)錯(cuò))
def ecludSim(inA, inB):
return 1.0 / (1.0 + la.norm(inA - inB)) # 范數(shù)的計(jì)算方法linalg.norm(),這里的1/(1+距離)表示將相似度的范圍放在0與1之間
def pearsSim(inA, inB):
if len(inA) < 3: return 1.0
return 0.5 + 0.5 * corrcoef(inA, inB, rowvar=0)[0][
1] # 皮爾遜相關(guān)系數(shù)的計(jì)算方法corrcoef()肩刃,參數(shù)rowvar=0表示對(duì)列求相似度盈包,這里的0.5+0.5*corrcoef()是為了將范圍歸一化放到0和1之間
def cosSim(inA, inB):
num = float(inA.T * inB)
denom = np.linalg.norm(inA) * np.linalg.norm(inB)
return 0.5 + 0.5 * (num / denom) # 將相似度歸一到0與1之間
def rebuild_img(u, sigma, v, p): #p表示奇異值的百分比
m = len(u)
n = len(v)
a = np.zeros((m, n))
count = (int)(sum(sigma))
curSum = 0
k = 0
while curSum <= count * p:
uk = u[:, k].reshape(m, 1)
vk = v[k].reshape(1, n)
a += sigma[k] * np.dot(uk, vk)
curSum += sigma[k]
k += 1
a[a < 0] = 0
a[a > 255] = 255
#按照最近距離取整數(shù),并設(shè)置參數(shù)類(lèi)型為uint8
return np.rint(a).astype("uint8")
def loadExData():
# 利用SVD提高推薦效果疮茄,菜肴矩陣
"""
行:用戶
列:電影
值:用戶對(duì)電影的評(píng)級(jí),0表示未評(píng)分
"""
return mat([[1, 0, 7],
[9, 6, 4],
[5, 7, 0],
[0, 7, 1]])
# 基于物品相似度的推薦引擎
def standEst(dataMat, user, simMeas, item):
"""standEst(計(jì)算某用戶未評(píng)分電影中畸裳,以對(duì)該電影和其他物品評(píng)分的電影的物品相似度,然后進(jìn)行綜合評(píng)分)
Args:
dataMat 訓(xùn)練數(shù)據(jù)集
user 用戶編號(hào)
simMeas 相似度計(jì)算方法
item 未評(píng)分的物品編號(hào)
Returns:
ratSimTotal/simTotal 評(píng)分(0~10之間的值)
"""
# 得到數(shù)據(jù)集中的物品數(shù)目
n = np.shape(dataMat)[1]
# 初始化兩個(gè)評(píng)分值
simTotal = 0.0
ratSimTotal = 0.0
# 遍歷行中的每個(gè)物品(對(duì)用戶評(píng)過(guò)分的物品進(jìn)行遍歷伍伤,并將它與其他物品進(jìn)行比較)
for j in range(n):
userRating = dataMat[user, j]
# 如果某個(gè)物品的評(píng)分值為0,則跳過(guò)這個(gè)物品
if userRating == 0:
continue
# 尋找兩個(gè)用戶都評(píng)級(jí)的物品
# 變量 overLap 給出的是兩個(gè)物品當(dāng)中已經(jīng)被評(píng)分的那個(gè)元素的索引ID
# logical_and 計(jì)算x1和x2元素的真值劝评。
overLap = np.nonzero(np.logical_and(dataMat[:, item].A < 255, dataMat[:, j].A < 255))[0]
# 如果相似度為0声畏,則兩著沒(méi)有任何重合元素插龄,終止本次循環(huán)
if len(overLap) == 0:
similarity = 0
# 如果存在重合的物品初斑,則基于這些重合物重新計(jì)算相似度见秤。
else:
similarity = simMeas(dataMat[overLap, item], dataMat[overLap, j])
# print 'the %d and %d similarity is : %f'(iten,j,similarity)
# 相似度會(huì)不斷累加乎澄,每次計(jì)算時(shí)還考慮相似度和當(dāng)前用戶評(píng)分的乘積
# similarity 用戶相似度置济, userRating 用戶評(píng)分
simTotal += similarity
ratSimTotal += similarity * userRating
if simTotal == 0:
return 0
# 通過(guò)除以所有的評(píng)分總和浙于,對(duì)上述相似度評(píng)分的乘積進(jìn)行歸一化羞酗,使得最后評(píng)分在0~5之間,這些評(píng)分用來(lái)對(duì)預(yù)測(cè)值進(jìn)行排序
else:
return ratSimTotal/simTotal
# recommend()函數(shù)参萄,就是推薦引擎,它默認(rèn)調(diào)用standEst()函數(shù)淤袜,產(chǎn)生了最高的N個(gè)推薦結(jié)果铡羡。
# 如果不指定N的大小烦周,則默認(rèn)值為3漱贱。該函數(shù)另外的參數(shù)還包括相似度計(jì)算方法和估計(jì)方法
def recommend(dataMat, simMeas=cosSim, estMethod=standEst):
retMat=dataMat.copy()
n=np.shape(dataMat)[0]
for user in range(0,n):
# 尋找未評(píng)級(jí)的物品
# 對(duì)給定的用戶建立一個(gè)未評(píng)分的物品列表
unratedItems = np.nonzero(dataMat[user, :].A == 255)[1]
# 如果不存在未評(píng)分物品幅狮,那么就退出函數(shù)
if len(unratedItems) == 0:
continue
# 在未評(píng)分物品上進(jìn)行循環(huán)
for item in unratedItems:
estimatedScore = estMethod(dataMat, user, simMeas, item)
retMat[user,item]=estimatedScore
# 按照估計(jì)得分,對(duì)該列表進(jìn)行排序并返回逐抑。列表逆排序,第一個(gè)值就是最大值
return retMat
if __name__ == '__main__':
img = Image.open('old_1.jpg', 'r')
a = np.array(img)
p=0.99
plt.figure(figsize = (16, 8))
u, sigma, v = np.linalg.svd(a[:, :, 0])
R = rebuild_img(u, sigma, v, p)
u, sigma, v = np.linalg.svd(a[:, :, 1])
G = rebuild_img(u, sigma, v, p)
u, sigma, v = np.linalg.svd(a[:, :, 2])
B = rebuild_img(u, sigma, v, p)
I = np.stack((R, G, B), 2)
plt.subplot(2, 3, 1), plt.imshow(I), plt.axis('off'), plt.title("p =" + str(np.around(p*100, decimals=1))+"%")
R_new=recommend(np.mat(R))
G_new=recommend(np.mat(G))
B_new=recommend(np.mat(B))
I_new = np.stack((np.array(R_new), np.array(G_new), np.array(B_new)), 2)
plt.subplot(2, 3, 2), plt.imshow(I_new), plt.axis('off'), plt.title("p =" + str(np.around(p*100, decimals=1))+"%")