這裡有乙份新手友好的線性代數筆記,是和深度學習花書配套,還被ian goodfellow老師翻了牌。
筆記來自巴黎高等師範學院的博士生hadrien jean,是針對「花書」的線性代數一章,初來乍到的小夥伴可以在筆記的輔佐之下,了解深度學習最常用的數學理論,加以輕鬆的支配。
把理論和**搭配食用,療效更好。筆記裡列舉的各種例子,可以幫初學者用一種更直觀實用的方式學好線代。開始前,你需要準備好numpy和python。
然後來看一下,要走怎樣乙個療程——
△ 標量,向量,矩陣,張量 (左起)
這一課講了向量和矩陣,以及它們的一些基礎運算。另外,這裡介紹了numpy的一些相關函式,也淺淺地談到了broadcasting機制。
△ 矩陣與向量的點乘
本小節主要討論的是,向量和矩陣的點積,我們可以從中了解矩陣的一些屬性。之後,便是用矩陣符號來建立乙個線性方程組——這也是日後的學習裡,經常要做的事情。
△ 單位矩陣長這樣
我們要了解這兩種矩陣為什麼重要,然後知道怎樣在numpy裡和它們玩耍。另外,本小節包含用逆矩陣求解線性方程組的乙個例題。
線性方程組,除非無解,不然要麼有唯一解,要麼有無窮多解。
看著影象,我們可能更直觀地了解,這件看上去理所當然的事情,背後的道理是什麼。
△ 無解,一解,無窮多解 (左起)
回到方程組的矩陣形式,感受gilbert strang說的「橫看成嶺側成峰」——豎看幾個方程,橫看乙個方程裡的多個係數。
然後,我們要理解什麼是線性組合,還會看到關於超定和欠定方程組的幾個例子。
向量的範數是個函式,將乙個向量輸入,我們就得到乙個正值——可以把它看做向量的長度。
範數可以用來衡量模型**值與實際值之間的距離。
△ 對角矩陣 (左) 與對稱矩陣 (右)
一些矩陣和向量,會有和普通矩陣/向量不一樣的有趣特性。雖然,這個小節不長,但對理解後面的內容會有幫助。
這裡,有線性代數的一些主要概念。我們可以對特徵向量和特徵值,有乙個初步的了解。
大家將會看到,矩陣並不像外表那樣單調,它們可以作為線性變換的工具。用乙個矩陣對它的特徵向量做些加工,便會得到方向相同的新向量。
△ 特徵向量 (藍箭頭) ,線性變換後的向量 (黃箭頭)
然後,矩陣還可以用來表示二次函式。利用矩陣的特徵分解,可以找到對應函式的最大值和最小值。
堅持讀到這個小節,就可以解鎖用python將線性變換視覺化的操作。
這是除了特徵值分解之外的,另一種矩陣分解方式。svd是將乙個矩陣,分解到三個新矩陣裡面。
△ 一分為三的矩陣a
依照「將矩陣看做空間的線性變換」這一理念,我們可以將這些新的矩陣,當做空間的子變換——變換並非一步達成,而是經過了三個分解動作。
走到這裡,就可以撿起「將svd用於影象處理」的新裝備。
在研究矩陣的路上,我們會遇到不同的風景。
並不是所有矩陣都有自己的逆矩陣。不幸之處不在於孤獨,而在於逆矩陣可以用來解方程組。方程組無解的時候,也就沒有逆矩陣。
△ 無解的超定方程組
不過,如果將誤差最小化,我們也可以找到乙個很像解的東西。偽逆便是用來找假解的。
△ 矩陣的跡
上圖就是矩陣的跡。後面講到主成分分析 (pca) 的時候,會需要這個看上去不怎麼厲害的東西。
△ 有正有負的行列式
行列式是乙個奇妙的數值,可以告訴我們關於矩陣的很多秘密。
△ 要找到編碼與解碼的方法
恭喜大家來到線性代數的最後一課。
用上前十一課傳授的全部技能,便能掌握這個資料分析重要工具的使用方法。
最後說一句,這份筆記看去有幾分軟妹,配色和那些年所見的硬漢畫風截然不同,相信初學者的各位也會很有食慾的。
全套筆記真容在此:
花書線代章節在此:
矩陣 Matrices 線性代數
矩陣 在數學中,矩陣 matrix 是乙個按照長方陣列排列的複數或實數集合 矩陣相加 通常的矩陣加法被定義在兩個相同大小的矩陣 矩陣乘法 矩陣和向量的乘法 如圖 m n 的矩陣乘以 n 1 的向量,得到的是 m 1 的向量 矩陣乘法 m n 矩陣乘以 n o 矩陣,變成 m o 矩陣。矩陣乘法的性質...
線性代數 矩陣相乘
線性代數 矩陣相乘1 矩陣相乘 2 include 3using namespace std 45 6int main 7 矩陣c 結果矩陣 13 cout 請輸入矩陣a的行數和列數 14 cin am an 15 cout 請輸入矩陣b的行數和列數 16 cin bm bn 17if an bm ...
點乘 線性代數 線性代數 1 3C 矩陣
我們在前面費了好大得勁,從線性組合和空間兩個角度,描述了線性變換。你可能要問,為什麼向量在原來的空間,用i 和j 活的挺好,為什麼要費這麼大的勁換乙個基向量組,把整個空間全都換一遍呢?這全部的一切,都是為了引出整個線性代數學科中概念的核心 矩陣。我們前面講過線性變換,像乙個黑盒子,或者乙個函式 如果...