Python 矩陣(線性代數)

2022-09-15 08:27:08 字數 3146 閱讀 1872

這裡有乙份新手友好的線性代數筆記,是和深度學習花書配套,還被ian goodfellow老師翻了牌。

筆記來自巴黎高等師範學院的博士生hadrien jean,是針對「花書」的線性代數一章,初來乍到的小夥伴可以在筆記的輔佐之下,了解深度學習最常用的數學理論,加以輕鬆的支配。

理論**搭配食用,療效更好。筆記裡列舉的各種例子,可以幫初學者用一種更直觀實用的方式學好線代。開始前,你需要準備好numpypython

然後來看一下,要走怎樣乙個療程——

△ 標量,向量,矩陣,張量 (左起)

這一課講了向量和矩陣,以及它們的一些基礎運算。另外,這裡介紹了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 活的挺好,為什麼要費這麼大的勁換乙個基向量組,把整個空間全都換一遍呢?這全部的一切,都是為了引出整個線性代數學科中概念的核心 矩陣。我們前面講過線性變換,像乙個黑盒子,或者乙個函式 如果...