這份筆記是針對“花書”的線性代數(shù)一章,快要畢業(yè)的Jean希望初來乍到的小朋友們,可以在筆記的輔佐之下,了解深度學(xué)習(xí)里最常用的數(shù)學(xué)理論,并加以輕松的支配。
要解鎖自己的數(shù)據(jù)科學(xué)技能,或許就要從線性代數(shù)開始。而對于深度學(xué)習(xí)領(lǐng)域的大家,如果把理論和代碼搭配食用,療效可能會更好。
而Jean在筆記里列舉的各種例子,可以幫助初學(xué)者用一種更直觀且實用的方式,學(xué)好線代。要跟住他的腳步,可能需要準(zhǔn)備好Numpy和Python。
現(xiàn)在,我們來看一下,這份筆記走的是怎樣一個療程——
△ 標(biāo)量,向量,矩陣,張量 (左起)
這一課講了向量和矩陣,以及它們的一些基礎(chǔ)運算。另外,這里介紹了Numpy的一些相關(guān)函數(shù),也淺淺地談到了Broadcasting機制。
△ 矩陣與向量的點乘
本小節(jié)主要討論的是,向量和矩陣的點積,我們可以從中了解矩陣的一些屬性。之后,便是用矩陣符號來創(chuàng)建一個線性方程組——這也是日后的學(xué)習(xí)里,經(jīng)常要做的事情。
我們要了解這兩種矩陣為什么重要,然后知道怎樣在Numpy里和它們玩耍。另外,本小節(jié)包含用逆矩陣求解線性方程組的一個例題。
線性方程組,除非無解,不然要么有唯一解,要么有無窮多解。
看著圖像,我們可能更直觀地了解,這件看上去理所當(dāng)然的事情,背后的道理是什么。
回到方程組的矩陣形式,感受Gilbert Strang說的“橫看成嶺側(cè)成峰”——豎看幾個方程,橫看一個方程里的多個系數(shù)。
然后,我們要理解什么是線性組合,還會看到關(guān)于超定和欠定方程組的幾個例子。
向量的范數(shù)是個函數(shù),將一個向量輸入,我們就得到一個正值——可以把它看做向量的長度。
范數(shù)可以用來衡量模型預(yù)測值與實際值之間的距離。
一些矩陣和向量,會有和普通矩陣/向量不一樣的有趣特性。雖然,這個小節(jié)不長,但對理解后面的內(nèi)容會有幫助。
這里,有線性代數(shù)的一些主要概念。我們可以對特征向量和特征值,有一個初步的了解。
大家將會看到,矩陣并不像外表那樣單調(diào),它們可以作為線性變換的工具。用一個矩陣對它的特征向量做些加工,便會得到方向相同的新向量。
△ 特征向量 (藍(lán)箭頭) ,線性變換后的向量 (黃箭頭)
然后,矩陣還可以用來表示二次函數(shù)。利用矩陣的特征分解,可以找到對應(yīng)方程的最大值和最小值。
如果堅持讀到這個小節(jié),就可以解鎖用Python將線性變換可視化的操作。
這是除了特征值分解之外的,另一種矩陣分解方式。SVD是將一個矩陣,分解到三個新矩陣里面。
依照“將矩陣看做空間的線性變換”這一理念,我們可以將這些新的矩陣,當(dāng)做空間的子變換——變換并非一步達(dá)成,而是經(jīng)過了三個分解動作。
走到這里,就可以撿起“將SVD用于圖像處理”的新裝備。
在研究矩陣的路上,我們會遇到不同的風(fēng)景。
并不是所有矩陣都有自己的逆矩陣。不幸之處不在于孤獨,而在于逆矩陣可以用來解方程組。方程組無解的時候,也就沒有逆矩陣。
不過,如果將誤差最小化,我們也可以找到一個很像解的東西。偽逆便是用來找假解的。
△ 矩陣的跡
上圖就是矩陣的跡。后面講到主成分分析 (PCA) 的時候,會需要這個看上去不怎么厲害的東西。
行列式是一個奇妙的數(shù)值,可以告訴我們關(guān)于矩陣的很多秘密。
恭喜大家來到線性代數(shù)的最后一課。
用上前十一課傳授的全部技能,便能掌握這一數(shù)據(jù)分析重要工具的使用方法。
雖然,我還沒有非常了解,用Python和Numpy學(xué)線代,會是怎樣一種愉快的體驗。不過,這份筆記看去有幾分軟妹,圖片配色和我學(xué)線代那年所見的硬漢畫風(fēng)截然不同,相信初學(xué)者的各位也會很有食欲的。
據(jù)說,“花書”和春天更配哦。