如何直觀理解矩陣和線性代數?
想從直覺上理解矩陣的定義,運算規則和屬性,比如特徵向量什麼的。
網上有流傳甚廣的《理解矩陣》老三篇理解矩陣(一) 。非常欣賞這樣的教程的思路、文筆,也很贊同作者關於學習的方法論,可惜這三篇只是開了個頭,大約只講到了矩陣的定義的直觀理解,沒有講到秩、特徵值、奇異值之類的。
這個系列視頻講得比較全了,都是動畫演示,非常直觀。自己按需觀看吧:視頻地址:【雙語字幕】「線性代數的本質」合集內容目錄:
第零講:序言
第一講:向量究竟是什麼第二講:線性組合、張成的空間與基第三講:矩陣與線性變換第四講:矩陣乘法與線性變換的複合第四講附註:三維空間中的線性變換第五講:行列式的意義第六講:逆矩陣、列空間與零空間第六講附註:非方陣第七講:點積與對偶性第八講上:叉積的標準介紹
第八講下:以線性變換的眼光看叉積第九講:基變換第十講:特徵向量與特徵值第十一講:抽象向量空間
視頻原作者:3Blue1Brown(可汗學院的一位教師),字幕中譯:Solara570@Bilibili
原作者3Blue1Brown最近在Patreon上發起眾籌,說如果獲得足夠多的資助,他就可以辭去工作,全職做這類視頻,以每月兩部的速度發布。計劃要做的視頻系列包括「微積分的本質」「概率的本質」「實分析的本質」「複分析的本質」「常微分方程的本質」等等,此外還會經常製作像「最速降線問題」「希爾伯特曲線」那樣的單個視頻。目前他正開始著手製作「微積分的本質」系列,凡是在Patreon上資助了他的人可以搶先看,不必等到整個系列製作完畢。資助網址是:https://www.patreon.com/3blue1brown ,諸位若有條件不妨去支持一下。最低額度只要1美元/個視頻,就能優先觀看今後製作的所有「XX的本質」系列視頻。(剛發現,Minecraft的作者Markus Persson赫然出現在資助者名單中……)
另外還有個好消息:應B站幾位字幕譯者的邀請,3Blue1Brown本人已同意在B站設立官方賬號:3Blue1Brown @ Bilibili,今後他在Youtube發布的精彩視頻都會在B站上持續發布中文字幕版,大家可以去B站關注和支持。來試著回答一下這個問題吧。
1 首先講線性代數。
既然是代數,無非都是研究量與量之間的關係。
在高中代數裡面:
基本量是實數集里的標量,量與量的關係可以是線性的(),也可以是非線性的(指數、冪、多項式等等)。
而線性代數呢:
基本量是 線性空間里的向量(一個數組),基本關係是嚴格的線性關係。會在最後一章「二次型」裡面簡單講述二次關係。
2 然後就是矩陣。
矩陣就是描述這種線性關係的參數。
2.1 我們來比較:
初等代數中,表示的是的一種映射關係,是描述這個關係的參數。
線性代數中呢, ()表示什麼呢?
首先與初等代數一樣,這個等式表示的是的一種映射(關係),同理此處矩陣就是描述這種關係的參數。
換句話說和的本質是一樣的。
2.2.1 那一定會有人問,為什麼定義這麼複雜(加權求和)呢(遠沒有實數相乘這麼簡單)?
那我想說的是,其實這是在「無損信息」下最簡單的關係了!
且看:
我們得考慮到自變輸入量是個維向量,那麼就得把這個維度都逐一考慮一遍吧……
而且考慮到因變輸出量是個維向量,那總得把前面那個維(自變輸入量)向量逐一考慮次吧……
這就決定了的「信息量」一定至少得……
2.2.2 當然一定也有人問,那為什麼要用加權求和(而不用加權求積,先求和再求積等)的方式定義矩陣乘法?
首先這是個線性演算法(去翻線性的定義)。
其次,我認為最重要的是,在非線性問題線性化後,求一階近似的時候,
一元函數:即其中是
多元函數:即其中是的Jacobian。
換句話說,加權求和可以表達一種邊際增加的概念,這是非常有用的。
3 最後講特徵值和奇異值。
首先說明的是,特徵值奇異值的定義是為了簡化矩陣運算提供了一種方式,一種技巧;也是描述一個矩陣特徵的特定參數,讓我們從特定角度理解這個矩陣。
3.1 特徵值是矩陣特有的值。說其為特徵值,根據定義也好理解:
定義:如果,則說是的一個特徵值,是對應的的特徵向量。
換句話說,在這個方向上,做的事情無非是把沿其的方向拉長/縮短了一點(而沒有一絲絲的旋轉到其它方向),就是描述這個沿著方向上伸縮的比例。注意這裡隱藏了一個重要的潛在條件:映射的定義域和值域是相同的空間(不然無法說自變數在其方向上通過拉伸倍得到因變數),反應在大一線代裡面也就是說必須是方陣。
【西文原文中Eigenvalue Eigenvector 中的Eigen原意為「自我」,也就是說,Eigenvector是經原矩陣變換之後只向「自我方向」延伸的向量,Eigenvalue是這個「自我延伸」的倍率。所以與其翻譯成「特徵」,個人更願意把它翻譯成「本徵」(這也是一種通俗譯法)。】
那麼這樣,給定任意的一個向量,我們如何求呢? 很簡單,把沿著分解,然後分別按照各自的比例伸縮 最後再求和即可。
有人一定問,這不是折騰么!
那麼當你運算的時候就發現好處了!沿著各個的伸縮正好是。
所以,特徵值在動態系統分析中是描述系統穩定性的非常重要的量,它決定了離散系統在空間內某個方向上的變化趨勢(是無限擴張?還是收縮?還是保持不變?),這是判斷離散線性系統的重要特徵。
特徵值分解也就很好定義。 一個可對角化的方陣:
分解為:,的列向量為特徵向量()。
理解為:以為基的坐標分解變換+伸縮變換+以為基坐標還原變換。
3.2 奇異值分解也是為了簡化矩陣運算的一種方式。它和特徵值變換的基本理念不同,看似繁瑣一點,卻能道出線性變換的一般本質。
定義:任何(而不僅僅是可對角化的方陣)的矩陣都可以如下分解:
其中和是正交矩陣(複數域裡面是酉矩陣),是由對角陣和零矩陣合成的矩陣。
它的含義是 任何的變換可以理解為 一個正交變換+伸縮變換+另一個正交變換。(正交變換可以暫時理解為 「不改變大小以及正交性」的旋轉/反射 等變換)
這是對一般線性變換的本質的闡釋。
3.3 小結:
特徵值變換的條件很苛刻,必須是 1方陣 2可對角化。
而奇異值變換卻對矩陣沒有任何要求。它闡明的是一般線性變化的本質。
-----------------------------分割線----------------------------------
才疏學淺,疏漏眾多,還望達人提供意見。
2013-09-26 Ver1 初始版本。
2014-02-26 Ver2 擴展SVD(奇異值分解)部分。
2016-12-01 Ver2.1 微調了一下排版,加了英文解釋部分。
2016-12-12 Ver2.2 微調了特徵值分解部分。
線性代數主要研究的是(有限維)向量空間和線性變換,矩陣不是線性代數主要研究的。
-------向量空間-------
什麼是向量空間呢?數域上向量空間就是一個集合,裡面的元素叫作向量,並且上面定義了兩個運算,向量加法和數量乘法,加法和數乘要滿足向量空間的八個公理。詳細請見:向量空間。定義了向量空間後,就可以定義生成(span)空間、線性相關和基。- 向量空間的子集的生成空間就是包含作為子集的最小向量空間:
- 的子集說是線性相關的,如果存在各不相同的元素以及不全零的數使得。
- 說是線性無關的,如果它不是線性相關的。
- 向量空間的一個基就是的一個生成集合(即),並且是線性無關的。
前面說過線性代數主要研究的是有限維向量空間,那麼什麼是維數呢?
在定義維數之前,有一點細節要處理,花一點力氣論證一下,就可以得到向量空間的每個基包含的元素個數是相同的。因此我們說向量空間有維數如果它有一個基含有個元素,我們說是有限維的如果它的維數是有限的,否則我們說是無限維的。-------線性變換-------線性變換就是從向量空間到向量空間的函數,並且保持向量空間的運算。設是向量空間,一個從到的線性變換是一個函數,並且滿足下面性質:- (保持向量加法)對任意,。
- (保持數量乘法)對於任何和數,。
線性變換可以用矩陣來表示,為此,我們需要有序基的概念,
- 設是有線性維向量空間,一個有序基是中的有限向量序列使得集合是的一個基。
- 設是的一個有序基,是中的向量,我們知道有唯一的表示形式
,
我們把叫做相對於的坐標,記作。-------線性變換的矩陣表示-------- 設是有限維向量空間,是線性變換,中的向量相對於基有坐標表示
,
因為在中,它相對於基也有坐標表示。我們很自然地要問和有怎樣的關係?這依賴於相對於和的矩陣表示。
我們先求向量在基下坐標表示:- 定義線性變換相對於基和的矩陣表示為矩陣
線性變換的和、數乘和複合也可以用矩陣來表示,因為我們有下面的命題:
命題. 設是有限維向量空間有有序基,設和是線性變換,設是數,那麼。命題. 設是維向量空間有有序基,是維向量空間有有序基,是維向量空間有有序基,那麼
。可以看到,矩形的加法表示線性變換的和,矩陣的乘法表示線性變換的複合。我們可以表這一點說的更明白。
設是的實矩陣,我們定義線性變換為
,這裡我們認為和中的向量是列向量。根據上面的定義,計算一下就可以得到設是的實矩陣,是的實矩陣,那麼。設是的實矩陣,是的實矩陣,那麼。矩陣不是線性代數最重要的課題,是次重要的。
線性代數研究的東西,可以統一地說成是線性空間。
研究向量——向量的全體是一個線性空間。
研究線性映射——線性映射的全體是一個線性空間。
我們用8A(八個公理)定義了什麼是線性空間:
要素:數域K,集合V不是空集,兩個映射+: VxV-&>V和*: KxV-&>V
公理:(我把量詞集中到前面了)
exists 0 in V
forall a, b, c in V, p, q in K
(1) a + b = b + a
(2) (a + b) + c = a + (b + c)
(3) a + 0 = a
(4) exists d in V, a + d = 0
(5) p(a + b) = pa + pb
(6) (p + q)a = pa + qa
(7) p(qa) = (pq)a
(8) 1a = a
好了現在V是一個線性空間了。
依此我們可以定義線性空間的基、維數等等等。
線性空間的幾何化例子:坐標系裡面的原點、過原點的直線、過原點的平面、全空間等等等。
但是代數不是幾何,代數需要研究的是結構。線性代數呢,就是研究線性空間這種結構的。
線性空間是一個很好的結構,我們可以研究線性空間到線性空間的映射,而且對這種映射加一點限制——線性。這是正比例函數的自然延拓。
如果U, V都是K上的線性空間,f: U-&>V,符合下面的條件:
forall x, y in U, k in K
f(x + y) = f(x) + f(y)
f(kx) = kf(x)
那麼f就是一個從U到V的線性映射。(這裡特彆強調一件事情:兩個性質裡面,左右雖然都是加法或數乘,但是由於U、V可以是不同的線性空間,所以等式左右的加法和數乘其實不同,不要混淆)
現在來點具體的例子舒服舒服:R-&>R、C-&>C之類的正比例函數是線性映射。又例如,投影映射,繞原點的旋轉映射等等。
說了這麼多,好像沒有什麼具象化的東西嘛,好像和矩陣沒什麼關係嘛。不然。矩陣該登場了。
對於f: U-&>V是K上有限維線性空間U到有限維線性空間V的線性映射,選定U、V各自的一組基u1...um, v1...vn,我們可以用m*n個K裡面的數決定這個線性映射。
具體地說,就是令
f(ui) = sum(a(i, j)v(j), j=1...n), i=1...m
知道了a(i, j),用線性映射的線性性和基的性質,可以得到任意U中元素在f作用下的像,所以說這m*n個數決定了這個線性映射。
把這m*n個數如此排列:
a(1, 1) ... a(1, n)
...
a(m, 1) ... a(m, n)
這就是一個矩陣。
說白了,選定基,就可以用矩陣描述線性映射。
矩陣的乘法的意義極其顯然——就是映射的乘法(複合)。(說到這個,最近某次考試我還因為這件事出了點洋相,不過因為保密協定,暫時不能說)
相似矩陣是什麼呢?是同一個線性變換在不同基下的矩陣。所以說,對角化、化為Jordan標準形就是要尋找一組基,讓這組基下這個線性變換簡單一點。方陣的特徵值是什麼呢?就是這種「簡單」的一種表現,也很自然,因為一旦有了特徵值和特徵向量,這個線性變換看起來就像是正比例函數了!
矩陣的合同,則是出於二次型的研究,二次型則可以用雙線性形式表示。二次型看似和線性代數無關,其實骨子裡還是線性的。
那矩陣的相抵(等價)呢?如果是相似,我們已經知道了。注意談到相似的時候,矩陣是方陣,而且所描述的線性映射必須是線性變換(同一個線性空間),而且所用的基必須是同一組。去掉這兩個性質,U到V的線性映射,選定U不同的基、V不同的基,都會導致這個線性映射的矩陣不同。這些矩陣是相抵的。
還有很多,在此不贅述。
I trust that the answer is hidden in this book.
這麼說吧,如果有人能給你寫一個很好的答案,那他一定是花很大功夫學習了線性代數,寫出來讓你覺得很有道理。但你看完這些貌似很直觀的理解之後,其實對你的認識和理解沒有任何幫助。先認認真真學吧,沒有捷徑,只有學懂了才會覺得有一些直觀的理解。沒有深入學習的直觀都是錯覺。。
什麼是線性代數?
不斷變化的世界使我們產生時間觀念。正確描述事物狀態及其不同時間下的變化至關重要。我們知道在三維空間下如何描述物體的位置。然而除了長寬高,世界上還有很多決定事物狀態的因素。如決定股票價錢的因素、決定天氣的因素。這些因素又該如何合理的描述?線性代數給了我們答案。線性代數 · 超智能體
矩陣線性代數是有關任意維度空間下事物狀態和狀態變化的規則。
線性代數是用來描述狀態和變化的,而矩陣是存儲狀態和變化的信息的媒介,可以分為狀態(靜態)和變化(動態)信息來看待。
當把矩陣以靜態信息來看待時,其信息的側重點在於狀態二字。
描述一個事物的狀態需要在一個選好的坐標系(什麼樣的向量空間)中進行,所以矩陣所包含的信息從來都是成對出現(坐標值和坐標系)。而基就是坐標系的信息,可以將其拆分出來。
當把矩陣以動態信息來看待時,其信息的側重點在於變化二字。這時的矩陣可以看做是一個方程。
通過矩陣內所描述的變化規則從一個狀態變換到另一個狀態。變換可以理解為事物本身的變化,也可以理解為坐標系的變化。
矩陣乘法是什麼矩陣乘法就是變化的行為
靜態信息又可以看成是動態信息的矩陣相乘後得到的狀態,所以矩陣可以被分解。
秩描述的是一個矩陣內帶有多少信息,秩低則信息就少。
原文2016/11/02 更新內容:已閱讀過該文的朋友,請到線性代數 · 超智能體中再看一遍關於矩陣圍繞狀態和變化的理解。
目錄
- 矩陣乘法
- 向量點乘
- 矩陣乘向量
- 向量乘矩陣
- 矩陣乘矩陣
- 矩陣的靜態信息
- 坐標值與坐標系
- 坐標值的兩種看法
- 矩陣的動態信息
- 矩陣的靜態信息
- 向量空間
- 子空間
- 線性無關
- 張成
- 基基底
- 維度
- 秩
- 線性變換
下面嚴肅點,我是來講線性代數的。先讓我們來看一段視頻,但我希望你只看一遍!PPAP洗腦全球
如果你繼續讀到了這句話,那麼恭喜你,你抵抗住了病毒的洗腦。同時你聽到了3個向量點乘。- 1、I have a pen, I have an apple—-&>apple pen (eq.1)
- 2、I have a pen, I have a pineapple—-&>pineapple pen (eq.2)
- 3、apple pen, pineapple pen—-&>pen pineapple apple pen (eq.3)
以(eq.1)舉例。等式右邊的第二個向量表示你有什麼,右邊的第一個向量表示你各拿幾個,而等式的左邊表示你獲得了什麼。從中你可以看出來:
向量點乘(dot product)是一種組合(combination)
矩陣乘向量
我們也可以把(eq.1)(eq.2)合二為一表示為(eq.4):
- I have a pen, I have an apple—-&>apple pen,
- I have a pen, I have a pineapple—-&>pineapple pen (eq.4)
這時,表示你各拿幾個的向量變成了兩行(兩組),也就成了矩陣(向量是只有一行或一列的矩陣)。
表示你各拿幾個的一個向量也叫一組權重(weights)。 在 中,第一個1對應著apple,第二個0對應著pineapple,第三個1對應著pen,我們不可以隨意調換位置。所以,向量是有順序的一組數字,每個數字都是該向量的一個因素(element)
因素橫著排列的向量叫做行向量(row vector),因素豎著排列的向量叫做列向量(column vector)
到這裡我們需要更具體的描述一下第一個結論。向量點乘是一種組合,但
向量點乘向量可以是列向量中各個因素的一個組合
上式(eq.4)可分兩步計算:
- 計算第一行權重得到的組合apple pen後,放到了第一行
- 計算第二行權重得到的組合pineapple pen後,放到了第二行
行成的依然有順序,仍然是一個向量。比較向量點乘向量,我們可以看出
矩陣乘向量可以是列向量中各個因素的多個有順序的組合
向量乘矩陣
然而形成組合的成分並不一定非要是向量中的各個元素,也可以是不同向量之間的組合。我們可以把(eq.1)(eq.2)(eq.3)改寫成(eq.5)(eq.6):
- (eq.5)
- (eq.6)
在(eq.5)等式右側的矩陣是由兩個行向量組成的。矩陣中,第一個行向量表示怪蜀黍兩次組合中分別先拿什麼,第二個行向量表示兩次組合中分別後拿什麼。等式右側的權重(行向量)的第一個因素對應著矩陣中第一個行向量的個數,第二個因素表示右側第二個行向量的個數。這樣保持矩陣中每個行向量內部因素的比例,完成矩陣內向量與向量之間的組合。
向量乘矩陣可以是矩陣中各個行向量的多個有順序的組合
而向量中的每個因素都可以當成是因素個數為一個的向量,也再次解釋了為什麼,向量可以看成是矩陣。
在(eq.6)中,你會發現,要形成組合的向量被拿到了乘法點(dot)的左邊,而權重被拿到了右邊。因為當行向量的因素作為組合成分時,乘法點右側的矩陣(向量)裝有著權重信息。效果是拿一個penpineapple和一個applepen形成組合。
從中你可以看出矩陣乘法並不滿足乘法交換律,因為交換了兩個矩陣的位置,就交換了權重與要形成組合的向量的位置。矩陣乘法不滿足乘法交換律:commutative law: AB =! BA
矩陣乘矩陣
如果怪蜀黍跳了兩遍舞蹈。第二遍跳舞時,他在兩次組合時,後一次拿的東西都是都拿兩個,那麼我們就可以把等式右側的行向量變成兩個行向量,也就形成了一個矩陣。
那怪蜀黍在唱第二遍時,就要唱:
I have a pen. I have two apples. 2-Apples-pen! I have a pen. I have two pineapples. 2-Pineapples-pen! 那該蜀黍就有賣水果的嫌疑,每次都拿兩個水果。 至此你看到了我用的是2*pineapple +pen方式去形成組合。也就是只有乘法來控制數量,加法來組合不同向量。這樣的組合方式才是線性代數討論的組合,即線性組合。所以我們所有概括的結論中,所有組合前面都要加上線性二字。同時乘法所乘的數屬於什麼數要事先規定好(經常被規定為是實數,也有虛數域)。不過這還沒有結束,嚴謹性是數學的特點。我上文所說的「加法」「乘法」也只不過是一個名字而已。它們到底指的是什麼運算,遵循什麼樣的規則。然後當你看線性代數教材的時候,你就會發現這8條規則。
- .
- .
- There is a unique 「zero vector」 such that for all x.
- For each x there is a unique vector such that .
- .
- .
- .
- .
然而你不需要去記它們。你只需要知道,他們是用於描述和約束在線性代數中的加法,乘法的運算。特別要注意的是,這些運算都有一個原點(0),為了允許正負的出現。
線性組合:一組向量乘上各自對應的一個標量後再相加所形成的組合。(滿足上述對乘法、加法的規則)
當我們再用(m by n),即m行n列的方式去描述一個矩陣的形狀(shape)時,你就得到了矩陣的第一種描述:
矩陣的靜態信息坐標值與坐標系:矩陣所包含的信息從來都是成對出現,拿向量舉例來說,這個向量並沒有被賦予任何數值。但你已經確定了你要在apple的數量和pen的數量的兩個因素(兩個維度)下描述你的數據。換句話說,你已規定好你的坐標系。所以當你寫出任何具有實際數值的向量,例如
時,他們的坐標系(二維向量空間)和坐標值就同時被確定了。它實際上是和的縮寫。二者無法分割。即使是,雖然我沒有再pen,apple前面寫具體數字。但依然包含所有因素間的比例相同的隱含信息。而調換2和1的順序同時也表示坐標軸之間的調換。坐標值的兩種看法:單單考慮坐標值時,有兩種角度去理解矩陣所包含的靜態信息。
矩陣的靜態坐標值信息:
(1)若干個維度相同的要形成組合的向量信息 (2)若干組維度相同的權重信息
他們本質都是向量,然而(2)中所指的向量(或叫權重)是用於控制每個向量的數量(scale),而(1)中的所指的向量是要通過乘法與加法的線性組合形成新向量的向量。
拿矩陣來說,你可以理解成該矩陣包含了兩個行向量,也可以理解為包含了兩組權重;同時,用列向量的方式也同樣可以理解成向量和權重。
矩陣的動態信息在一個矩陣內,你把矩陣內的向量理解為向量或權重都可以。但是當兩個矩陣進行矩陣乘法時,一旦選擇以權重信息理解其中一個矩陣,另一個矩陣的信息就會被瞬間確定為要形成組合的向量(量子力學的味道)。
舉例來說,它的實際數學表達應該是:
,即便是都換成了數字,其物理意義任然存在,始終並未丟失。但也可以被理解為其他的物理意義。我會在與二者之間進行切換,他們表示同一個矩陣。 當我把矩陣看成是兩組行向量的權重時,後一個矩陣的兩個行向量和就瞬間被賦予了要形成組合的向量的觀察方式。 當我把矩陣看成是兩組列向量的權重時,前一個矩陣的兩個列向量和就瞬間被賦予了要形成組合的向量的觀察方式。矩陣的動態信息,兩個矩陣相乘A?B 時,
當把前者矩陣(A)中行向量理解成若干組權重,後者矩陣(B)中的行向量就是要形成組合的成分。
http://weibo.cn/qr/userinfo?uid=5288598930 (二維碼自動識別)
同樣的兩個矩陣相乘
當把後者矩陣(B)中列向量理解成若干組權重,前者矩陣(A)中的列向量就是要形成組合的成分。
http://weibo.cn/qr/userinfo?uid=5288598930 (二維碼自動識別)
注意對應行向量與列向量。
請回想線性組合的描述(一組向量乘上各自對應的一個標量後再相加所形成的組合),這是因為向量的維度和權重的維度要一一對應。所以,
矩陣A(m by n)和矩陣B(p by q)能夠做乘法的條件是 n = p
向量空間
很多線性代數教材所引入的第一個概念就是線性空間(linear space)。可見它的地位。雖然它有些抽象,但是卻是自然而然推演出來的一個概念。
空間的本質是集合。而且是一個能夠容納所有你要描述內容的集合。 在具體討論之前先要對上句話中「你要描述的內容」進行進一步說明。 從如何理解線性代數這四個字開始。首先我們已經知道了什麼是線性(那8個條件約束的加法和乘法)。那什麼是代數?意思是指你可以把任何概念都代入其中。 可以怪蜀黍手中的水果和筆換成盆和大菠蘿PPAP河南話版。也可以換成任何宇宙上有的物體。然而不僅僅是物體,甚至可以是一個抽象的概念。我個人最喜歡的描述是:向量空間是描述狀態(state)的線性空間。再加上之前的約束,於是我們就有了向量空間是能夠容納所有線性組合的狀態空間
那什麼樣的空間(所有狀態的集合)能夠容納所有的線性組合?
如果說,我現在想要描述的你的兩個狀態(下圖中的行向位置,和縱向位置),向量的維度就是二維。那麼一個大圓盤夠不夠容納所有的線性組合?答案是不夠。因為線性組合是一組向量乘上各自對應的一個標量後再相加所形成的組合,而這個標量是實數域的時候,由於實數域無線延伸,那麼乘以標量後的狀態也會無限延伸。所以向量空間一定是各個維度都像實數軸一樣可以無線延伸。最終你得到的將不會是一維下的線段,二維下的圓盤。而一定是一維下的無限延伸的直線,二維下的無限延伸的平面。
向量空間的基本特點是各個維度都可以無限延伸。 我之所以用狀態二字,是因為剛才的兩個維度,我可以用於描述你的速度和體溫。這時,這兩個維度所展開的依然是一個平面,但卻又不是描述位置的平面。子空間子空間(subspace)可以被想成是向量空間內的空間,同樣要滿足能夠容納線性組合的條件
那麼最小的子空間是什麼?只有一個狀態的空間(集合)。而這個狀態不是其他狀態,就是0。只有這樣才可以在乘以完一個標量後依然不會跑出空間外部。(因為跑出去了,我們就不得不擴大空間來容納它)。其次空集可不可以是向量空間?不可以,空集是沒有任何元素的集合,既然什麼狀態都沒有,又怎麼能夠容納線性組合。最小的向量空間是只包含零向量的空間
假如上圖的圓盤是一個無線延伸的平面,那麼這個平面的子空間就是那個平面上所有直線嗎?不是,8個運算規則中明確規定了,一定要有原點,這樣才可以包含正負。所以這個平面的子空間是所有過原點的直線,並且包括中心的那個原點自己所組成的最小子空間,同時也包括這個平面自身(最大的子空間)
線性無關s你會發現,在怪蜀黍的例子中,當要把可以把(eq.1)(eq.2)合二為一表示為(eq.4)時,是這個樣子:
(eq.4) (eq.4)最右側的向量並不是4個維度。而是三個。因為pen 和pen是一個東西。我們想用的是若干個毫不相關的因素去描述狀態。這裡的毫不相關是在線性空間下的毫不相關,所以叫做線性無關。那麼當我們要描述的狀態是由向量來描述時怎麼辦?我們知道判斷兩個向量是否線性無關是,可以看他是否在空間下平行。但怎麼判斷幾個向量之間(不一定是兩個)是否線性無關?我們需要可靠的依據。這也是數學為什麼要證明,它要讓使用者知道某個性質在什麼條件下適用,什麼條件下又不適用。線性無關(linearly independent): 當表示權重,表示向量時,
只發生在當 全都等於零時。 換句話說,這些向量不可以通過線性組合形成彼此。形成彼此的情況只能是他們都是零向量。
張成
明白了線性無關後,張成(spanning)就十分容易了,接下來要注意的是詞的屬性和關聯詞。
張成(spanning)是一個動詞,而動詞的主語是一組向量(a set of vectors)。描述的是一組向量通過線性組合所能形成子空間。是個動詞,描述的內容並不是形成的這個空間,而是形成的這個行為。,就可以看成是4個向量,這4個向量,可以張成一個三維空間。(因為有兩維線性相關,所以並不能張成4維)
基(基底)基底也是建立在張成的基礎上理解的。
一個向量空間的一個基底(A basis for a vector space V)是一串有順序的向量(a sequence of vectors),滿足:
A、向量之間彼此線性無關 (不可多餘) B、這些向量可以張成向量空間V (不可過少) 換句話說,剛剛好可以張成向量空間V的一串向量是該向量空間V的一個基底
基底是一個類似people的複數名詞,是從屬於某個空間的,而不是矩陣,也不是向量。
維度一個向量空間可以有無數個基底。但每個基底所包含的向量的個數(the number of vectors in every basis)是一個空間的維度。注意,維度是空間的概念,而不是描述一個具體的向量。人們常說的n維向量實際是指n維向量空間內的向量,由於在討論時並未給向量指定任何實際的數值,所以可以是任何值,可以張成整個空間。所以其真正描述的依舊是一個空間。並且,選擇的維度是一個站在觀察者角度,希望在某個向量空間下可以儘可能的描述一個物體的狀態而選擇的,並不一定是被描述者真實處在的空間。數學就是這麼「拐外抹角」的去描述一個概念,不過確實非常有必要。但若是你覺得理解起來有困難。就簡單記住:
互不相關的因素的個數是一個向量空間的維度。
秩
秩(rank)是矩陣的概念。指的是一個矩陣的所有列向量所能張成的空間的維度。
矩陣的所有列向量所張成的空間叫做列空間(column space)
矩陣的所有行向量所張成的空間叫做行空間(row space) 一個矩陣的列空間的維度是這個矩陣的秩,同時也等於該矩陣行空間的維度 秩是用於描述矩陣的包含的信息的轉置一個矩陣可以理解為調換一個矩陣的行空間與列空間。 單位矩陣可以被理解為行空間與列空間相同。
線性變換
線性變換(linear transformation)可以說是最最重要的概念了。你可以忘記我上面描述的所有內容,但不可以不深刻理解線性變換。下面是關於什麼叫變換。由於概念很重要,我先不用逗比例子來解釋。而用比較抽象的描述。
- 一個從n維實數域()到m維實數域()的變換(transformation or mapping or function)是將n維實數域()空間下任意一個向量轉換成為在m維實數域()空間下對應向量
- 其中n維實數域()空間叫做變換T的domain,m維實數域()的空間叫做該變換的codomain。
- 向量叫做向量的image(變換T行為下的)
- 所有image組成的集合叫做變換的range
而線性變換是是指線性規則所造成的變換,是由一個矩陣來實現的。此時你就會看到無處不在的式子:
:列向量左乘一個矩陣後得到列向量
(eq.4)舉例來說,
是三維空間的向量(即的domain是三維),而經過線性變換後,變成了二維空間的向量(即的codomain是二維)。矩陣可以被理解成一個函數(function),將三維空間下的每個向量投到二維空間下。
也可以理解為x經由一個動因,使其狀態發生了改變。 同時也是深層神經網路每層變換中的核心:
在機器學習中你會你會需要構架一個虛擬的世界,並選擇合適的、用於描述某個事物狀態的各種因素。
線性代數是有關如何構架「世界」的學問。矩陣又是存儲著所架構的世界的信息的媒介。
舉一個小小的例子,比如你想通過溫度,氣候,濕度,當天時間,海拔,經度,緯度等信息來描述天氣狀況,從而進行預測是否會下雨。你如何合理的選擇這些信息?你如何知道這些信息,海拔和氣候如是否相關,是否重複?如果重複,那麼你又是否可以減少某個信息?判斷的準則又是什麼?
數學講的是我剛才所描述的內容的純粹的結構關係。請你忘記我給你舉得怪蜀黍例子,抓住「邏輯框架」。當你可以把這種關係應用在任何符合該結構關係的現實現象中時,你就算是精通了如何應用數學。
線性代數的內容十分龐大,行列式,特徵向量,奇異值分解等你也會經常用到。然而我的描述就到此為止,我無法涵蓋所有內容。寫這篇文章只是希望能夠用你腦中已有的概念幫助你構建一個對線性代數模糊的認識。當你今後用到線性代數時,再不斷的加深和更正此刻的理解。
讀完Linear Algebra Done Right就行
同濟的線性代數教程我當年大二覺得自己學的很透,每一章課後習題基本也都做完了,當時覺得自己很牛逼,考試的時候應該也是全年級第一吧97。然而!然而!當我來到美國後,我發現我特么跟傻逼一樣,大部分的線性代數我居然看不懂,就比如連特么多維高斯分布裡面居然會帶著矩陣,這個公式的物理意義和怎麼跟一維高斯分布聯繫起來我一點都不知道。所以我又用了不到一年的時間去聽了youtube上MIT的視頻,之後還修了我們學校數學系的應用線性代數,拿了A+,但因為是本科課所以課上要求也不高。綜上,我覺得老師和材料很重要。一般的國內的大學(top10除外)教的線性代數的知識僅僅為工業界需要用的20%-30%,而美國課上所交為70%-80%,國內老師的作業難度為15%左右,考試難度為15%;而美國作業難度接近90%,考試難度50%-70%。以上均為我個人經歷,大家只做個參考吧。中國講課偏重計算,因為老師的學術水平或講課技巧不夠,還有教材水平稍低,畢竟大部分老師沒有參與過類似matlab頂級實驗室的線性代數運算函數的設計,沒有什麼高端的經驗,所以有可能老師自己都不知道知識用來幹什麼的,知識最重要的點永遠不在計算,因為計算可以說完全是體力輸出,我們學習的重點應該永遠在於思維和素質的培養。就像MIT Gilbert Strang講的線性代數,我覺得作為一個本科生,如果你能把一個2x2的矩陣的性質搞得差不多透,你的本科的線性代數就是成功的了,已經為你不論在工業界還是學術界都打下了堅實的基礎。我下面給出自己的愚見,你可以看看自己是否能回答上我的問題。1. AB=C 這個式子可以有幾種計算方法實現(我現在知道4種,我本科只學了一種,後面三種你不懂可能就不容易理解向量空間和SVD)2. 任意一個矩陣A,它的四大子空間col space, row space, null space, left null space分別是什麼維度,如何去求它們的基底,代表什麼物理意義,各個子空間什麼關係,怎麼應用東西太多了,我就先說這兩個最基本的吧。希望你有所收穫。
《理解矩陣》老三篇以矩陣為線代的中心,是錯誤的和業餘的(作者孟岩本來也就不是數學專業人士)。可以參考藍以中的《高等代數簡明教程》前言。
1、代數的基本研究對象應當是各類代數系統及其相互關係(態射),對於線性代數,其核心是線性映射(變換)。擴展出來的關係有:線性變換和雙線性函數的關係,雙線性函數和內積空間的關係,線性空間的應用(向量空間、多項式空間、線性方程組)
2、對有限維線性空間,取定一組基後,可以把問題轉換為具體的矩陣論課題。但對無限維線性空間以至一般代數系統(群、環、模等),則不可能。所以矩陣論不能全面反映代數學的基本思想、方法,它不是線性代數(高等代數)的主線,不應占太大分量,衝擊主線
3、處理矩陣論的核心課題,對於抽象代數很熟練的讀者,無疑會看清其捷徑的。(N.Jacobson《抽象代數學第二卷線性代數》)好好看一遍這本書。
線性代數及其應用 (豆瓣)真正做到每一個重要概念都有對應的來由,每一章都有相關領域的應用範例。學過線性代數、甚至用過好多年了再回頭來翻也可,直接拿來入門也可。【轉】隨記:我們需要怎樣的數學教育?
看這個其實矩陣想要的就是一個簡單的R^m到R^n的映射秩就是保證是在R^n上而不是R^n上的一個sub space(其實我不知道這東西的英文或者中文怎麼說所以我隨意扯了一個名詞)特徵值和SVD放在一起比較好,就是把線性映射分解成一個旋轉鏡像和一個拉伸收工了,現在你可以去學學統計學看看線性代數有什麼應用了(之所以不說量子或者電動是因為這兩科我不敢推薦textbooks,因為學得時候沒有好好看textbooks知乎專欄知乎專欄
第一次回答問題。努力嘗試講得明白點。若有不妥請指正。我對矩陣這麼理解的。首先還原矩陣的物理意義。我把矩陣看作方程組的係數。那麼,一個n個變數的方程,最多有n個獨立的行,再多就是冗餘了。所以我把秩看作方程組有意義的方程的個數,也就是一種信息的度量。
要談理解,必須講範疇,也就是你要應用在哪裡。比如「紅色」在電工的世界裡是火線,在工業設計者的王國里是危險,在物理學世界裡是波長630到750納米的可見光,在畫家眼中是激情……弄混了範疇談直觀是危險的,比如這篇文章看上去很好,但是如果你以後學習現代控制論的時候拿矩陣當成空間里的變換,那無異於讓畫家去用波長來理解紅色。用普通課本上的線性方程組去理解就會非常恰當……
個人的經驗是,把大部分重要的定理自己獨立證出來,基本上你就懂了。
我是一名大四狗,學習線性代數也不過是一本同濟五版的教材,有自己的一些理解,但是不敢說完全正確。
Action
我開始以為矩陣是為了把線性方程組的係數抽取出來,方便方程組化簡和求解,後來發現矩陣的用處不止如此,不然就不會寫一本書了。
矩陣可以方便的用來表示線性空間,一個簡單的二維數陣,就可以表示成n維線性空間。
一個毫無意義的有序數陣,我們賦予它意義,他就可以表示成一個空間。那為什麼要這麼做呢?這是因為矩陣的運算可以表示線性空間的變換。以向量舉例,我們求兩個向量相加,可以讓(x1,y1)和(x2,y2)相加,而不必真的在圖上畫出來這個相加後的向量。到三維空間我們就畫不出來了,因為二維空間中的向量不能表示三維空間中的向量。同樣,n大於3以上維度的空間中的向量我們不但不方便表示,甚至根本實現不了,但是矩陣可以幫助我們表示出來。一個3x3的矩陣,我們把他分成三列,就得到三個三維的列向量,同樣4階方陣中包含了4個4維向量。
--------------------------------------------------------------------------------------------------------------------------------------------
為了直觀理解,下面全部用二維向量舉例。- 平面內引入直角坐標系之後,二維空間內所有的向量都可以用兩個基向量i=(1,0)和j=(0,1)的線性組合來表示,例如a=(4,6),可以表示為a=4i+6j。
- 但是也可以由i=(2,0)和j=(0,2)兩個向量來表示,例如a=2i+3j。
- 還可以由i=(1,1)和j=(1,-1)來表示,例如a=5i-1j。
- 或者由i=(1,0)和j=(1,-1)表示,例如a=10i-6j。
- 在1的基礎上,我們還可以將a表示為i=(1,0),j=(0,1),k=(1,1)三個向量的線性組合,也就是a=4i+6j+0k或者a=0i+2j+4k或者a=2i+4j+2k等等等等我舉不完了。這其中k=i+j。
通過上面的舉例我們可以總結出幾條。
- 由5點到4點,將多餘的基向量k去掉,得到最大線性無關向量組。
- 由4點到3點,將兩個基向量的夾角變成直角,實現正交化。
- 由3點到2點,將構成正交的兩個基向量旋轉,使其與坐標軸重合,實現對角化。
- 由2點到1點,通過伸縮將兩個基向量的長度變成單位長度,實現規範化。
通過上面的幾個步驟,我們可以看出,任何一組向量構成的坐標系,都可以通過化簡,正交,對角,規範的過程,將任何亂七八糟莫名其妙的坐標系變換成笛卡爾坐標系。那這麼做有什麼用呢?到這裡我開了一下腦洞:
假如說,平面內有兩個橢圓,將直角坐標系的原點放在一個橢圓的長軸和短軸交點處,這樣就可以得到這個橢圓的標準方程,就是高中課本上那個。由於這兩個橢圓的位置相對,這樣一來另一個橢圓的位置也就定下來了,可惜很難看,長得很歪,很難用方程表示。這時就可以以這個橢圓為原點再建立一個坐標系,並且在這個坐標系下用標準方程表示出來,這樣兩個橢圓都有了方程來表示,問題就化簡為了兩個坐標系之間的關係,這時再用矩陣來運算就好了。可惜這裡不能畫矩陣,關於矩陣的好多問題都不能解釋。BTW,上面列舉的例子都是同維度內的問題,關於升維和降維的問題其實關係到求矩陣的秩,以及線性方程組有解無解多解的問題。 ----------------------------------------------------------------------------------------------------------------------------------------關於特徵向量和特徵值我還沒想到,想到我再告訴你請參考:An Intuitive Guide to Linear Algebra
一條直線,由一個一維向量與一個係數相乘即可表達。
一個平面,由兩個相互獨立的二維向量與兩個係數相乘即可表達。
一個三維空間,由三個相互獨立的三維向量與三個係數相乘即可表達。
一個四維空間,由四個相互獨立的四維向量與四個係數相乘即可表達。
一個五維空間,……%¥#
向量A與向量B相互獨立,即A不能用B與一個係數k相乘得到。
係數k屬於實數。
矩陣的秩就是相互獨立的向量的個數。不知道誰起的名字,抽向又難懂。
矩陣的列數就是向量的維數。
僅當維數等於相互獨立的向量的個數時才能表達一個完整的維度空間。
當然四個相互獨立的四維向量也能表達三維,二維,一維空間。
四個相互獨立的四維向量表達三維空間必有一個向量為0向量。
四個相互獨立的四維現量表達二維空間必有二個向量為0向量。
四個相互獨立的四維現量表達一維空間必有三個向量為0向量。
1000
0100
0010
0001
四維空間里四個相互獨立的單位向量,正交向量,相互垂直。
任意兩個可組成一個平面,就是三個不平行平面。
看了孟岩的《理解矩陣》,認為線性變換不是運動,而是在不同方向的投影。
哎,做到直觀?
如果中學生進入大學,怎麼讓別人給線性代數你講得直觀,也沒有辦法直觀起來,都是莫名其妙,一頭霧水。如果學了群論,學了矩陣論,或者看了現代控制理論,或者量子力學……怎麼看線性代數都會覺得真直觀,真簡單,恨不得用再少些在抽象點的話來描述,這樣才夠本質。這個過渡過程,除非天賦異常,只有一個絕殺辦法,學什麼都能直觀起來,而這早已是學數學人的共識:
大量做題,大量思考。《理解矩陣》以前也看過,啰嗦半天,還不如好好做一題體會深刻。當你學會了更加抽象的數學,或者學回了大量的線性代數的理論(量子力學,哪怕第一章)上或者工程上的應用(機器視覺、現代控制理論等等),你再回頭看看線性代數。推薦閱讀:
※hessian矩陣的特徵向量有什麼含義?
※如何對SPD流形上的測地距離進行凸近似?
※矩陣的指數函數到底說的是個啥?
※矩陣和向量組和線性方程組之間的關係是什麼?
※為什麼matrix(矩陣)不可以相除?