為什麼學習線性代數?

2021-02-08 惠通學子

剛接觸這門學科的同學可能都會提類似的問題。簡短的回答就是:

        (1)我們所處的世界、宇宙太複雜了,很多現象都無法理解,更談不上用數學去描述;

        (2)有一些符合特定條件的複雜問題,可以轉化為簡單的線性問題,線性問題就完全可以理解、完全可以被數學所描述(怎麼把複雜問題轉為線性問題是別的學科要解決的,比如說微積分);

        (3)線性代數就是研究怎麼解決線性問題的。

簡短的回答結束,下面會在該回答基礎展開,給出更詳細的闡述。

舉兩個例子,展示下我們所處的世界、宇宙到底有多複雜。

1.1 三體

科幻小說《三體》描述了一個三體世界,這是一個周圍有三個「太陽」的行星(這樣的行星在宇宙中是有原形的):

在引力的作用下,三個「太陽」互相推拉,導致它們的運行軌跡十分複雜,這樣的問題可以稱為「三體問題」。其中的行星(下圖中最小的球體),也就是三體世界被牽扯著四處運動:

這樣導致的結果是,三體世界上的環境非常惡劣:如果三個「太陽」同時靠近它,那麼溫度就會非常高;三個「太陽」同時遠離,則又變成冰封大陸;只有在三個「太陽」不遠不近、不多不少的靠近它時,會有那麼一段適合生物發展的時期。

在這樣殘酷的環境中,反覆地毀滅和創造下,孕育出了比人類先進很多的三體文明。就是這樣的先進文明也沒有辦法預測三個「太陽」的軌跡。有可能短暫地預測成功了,但是偶爾路過的彗星,或者遠處的超新星爆炸等,又會給非常不穩定的三體系統帶來攪動,導致運動軌跡重新變得撲朔迷離。

1.2 散熱

三體的例子很遙遠,下面來看一個生活中的例子。下面是電腦裡面的顯卡,左側是顯卡風扇。從動圖中可以看出,工作中的顯卡有的地方溫度很高,風扇吹出來的風不斷在給顯卡降溫:

由於各種器件的存在,以及氣流的相互影響,導致風的運動非常複雜。假如要去計算某一時刻、某一點的風力大小和方向,可想而知難度會有多大。

相對於複雜的世界而言,線性問題是非常簡單的。下面籠統說下什麼是線性問題。

2.1 線性

有一類幾何對象,比如立方體、直線、平面,看上去都是有稜有角的,都是「直」的,在數學中稱為 線性(這麼說肯定不嚴格,可以暫時這麼通俗地理解):

2.2 線性問題

要處理它們,以及和它們相關的問題就非常簡單。比如在高中就學過,兩根直線可以用兩個線性方程來表示,想求它們交點的話:

聯立出兩者的方程組,求出該方程組的解就可以得到交點:

這裡舉的例子很簡單,隨著後面的深入學習就會知道,線性問題還是有一定的複雜性,不然不會需要《線性代數》這門學科來研究線性問題。

複雜的世界介紹了,簡單的線性問題也介紹了,之前說了,某些複雜問題可以轉為簡單的線性問題,或者稱為複雜問題可以 線性化 ,下面就來看幾個例子。

3.1 靜態

不規則曲線挺複雜的,不過在一定的條件下,  點附近的曲線可以用一根直線來代替(這是《單變量微積分》中的內容):

不規則曲線也蠻複雜的,也是在一定的條件下,  附近的曲面可以用一個平面來代替(這是《多變量微積分》中的內容):

3.2 動態

在5G通信中,會遇到各種各樣複雜的周期波,我們可以通過正弦函數來近似這些周期波(這是《信號與系統》中的內容):

為什麼要用正弦函數來近似?這是因為,如果將一根線段旋轉一圈,記錄該線段在 y 軸上的軌跡,得到的就是正弦函數:

也就是說,正弦函數實際上是運動的線段,也是線性的。那麼用正弦函數來近似周期波,就相當於將各種複雜的周期波的問題給線性化了。

之前的例子比較直覺,下面通過人臉識別給出一個具體的例子,雖然相對於真正的應用而言,這個例子已經極度簡化了,大家還是可以看到是怎麼通過線性化來解決像人臉識別這樣的複雜問題的(下面的圖片出自 這裡)。

下圖中,有兩張照片是同一個人的:

對於這個問題,人是很容易分辨出來的,但計算機應該怎麼辦呢?其中一種方法就是將之線性化。首先,給出此人更多的照片:

將其中某張照片分為眼、鼻、嘴三個部位,這是人臉最重要的三個部位。通過某種算法,可以用三個實數來分別表示這三個部位,比如下圖得到的分別是 150 、30、20:

將所有這些照片分別算出來,用三維坐標來表示得到的結果,比如上圖得到的結果就是  (150,30,20) 。將這些三維坐標用點標註在直角坐標系中,發現這些點都落在某平面上,或該平面的附近。因此,可認為此人的臉線性化為了該平面:

將人臉線性化為平面後,再給出一張新的照片,按照剛才的方法算出這張照片的三維坐標,發現不在平面上或者平面附近,就可以判斷不是此人的照片:

總結下,人臉識別就是把之前的人臉線性化為平面,然後判斷新的照片是否在該平面內:

這裡面有兩個數學問題:

        (1)怎麼表示人臉線性化後的平面?

        (2)怎麼判斷人臉是否在該平面內?

線性代數提供了這兩個數學問題的解決方案。

5.1 向量和向量空間

第一個問題,怎麼表示人臉線性化後的平面?線性代數提供了向量或向量空間來表示平面、直線以及立體等線性的幾何對象:

5.2 矩陣函數

第二個問題,怎麼判斷人臉是否在該平面內?線性代數提供了關於向量和向量空間的函數,也就矩陣函數,或者簡稱為矩陣。這樣可以很方便的判斷出新的照片是否在之前線性化得到的平面上(下面的不等於就表示不在平面上):

綜上,線性代數要學習的內容就是如何解決線性問題(再重複一下,如何把複雜問題線性化是別的學科的內容,比如《微積分》、《信號與系統》等),我們的《線性代數》課程會討論的線性問題如下:

掌握了以上內容,才具備了處理複雜問題的部分基礎能力,因此線性代數是工科、理科的必修科目。

相關焦點

  • 線性代數第一章行列式學習指導
    線性代數是數學的一個分支,它研究什麼呢?
  • 入門《線性代數》指南
    為什麼要學習線性代數?
  • 同濟版《線性代數》引發激烈爭議:深度學習基礎很重要
    如今已經畢業多年,沒想到最近在知乎上看到一篇文章《《線性代數》(同濟版)——教科書中的恥辱柱》,點讚量快突破五千。對於這篇文章,大家有時間可以讀一下,看看是不是同意作者的觀點。線性代數真的很重要,這是很多工程技術人員走上工作崗位的最大感受。好多算法都用到線性代數的知識,就比如現在非常熱門的深度學習,它的底層實現方式用到好多線性代數方面的知識。
  • 複習線性代數的正確方式
    有同學對我講現在複習線性代數遇到了瓶頸,在歷年的複習過程中,有許多同學完全找不到複習的感覺,線性代數這門學科的學習方法和高等數學完全不一樣,也就是說你學習線性代數首先你得換學習思想,它完全是一套全新的學習思想,所以很多學生剛剛入門的時候覺得線性代數不好學,雖然是一本很薄的書,評論區有很多人說自己聽我的課恍然大悟了,開竅了,我很高興。
  • 深度學習和機器學習的線性代數入門
    本文目錄引言機器學習ML和深度學習NN中的線性代數矩陣向量矩陣乘法轉置矩陣逆矩陣正交矩陣對角矩陣正確理解機器學習和深度學習的概念,掌握以下這些數學領域至關重要:機器學習和深度學習中的線性代數在機器學習中,很多情況下需要向量化處理,為此,掌握線性代數的知識至關重要。
  • 線性代數複習建議及相關講解
    剛開始進行考研複習的考生中有不少人開始進行線性代數的複習了,有很多同學告訴我複習線性代數時遇到了很大的困難,在歷年的複習過程中,有許多同學完全找不到複習的感覺,線性代數這門學科的學習方法和高等數學完全不一樣,也就是說你學習線性代數首先你得換學習思想,它完全是一套全新的學習思想,所以很多學生剛剛入門的時候覺得線性代數不好學,我想告訴大家線性代數不是先做題
  • 如何學好線性代數?
    哈爾莫斯在回憶錄《我要做數學家》( I Want to Be a Mathematician )談到他第一次學習線性代數的悲慘遭遇[1]:代數課很難,我讀得很搓火。…當我說搓火,我是真的生氣。為什麼線性代數這麼難?
  • 理解線性代數的好課本!
    這個順序個人覺得更佳,更適合我這樣的工科背景的和學習線性代數希望馬上能用的學生。線性代數最早的起源從解方程組出發,所以從這裡開始引入線代的一些概念更加自然。當然,同濟版先從行列式開始也不是完全沒有道理。歷史上行列式對多元方程組的解起到很大的作用,這個作用現在已經完全沒落了,特別是各種高效的計算機上的矩陣分解算法讓解方程完全不需要使用行列式。但是,同濟版如果增加些「我們為什麼一開始要行列式呢?
  • 淺談線性代數的複習
    線性代數在考研中分值佔比不大,但是線性代數的知識相較於高數和概率論而言比較瑣碎和抽象,需要記憶和理解的東西也不少。許多同學在複習線性代數常常會感到很苦惱,那就是非常容易忘,造成這點的原因就是線性代數的知識既抽象又瑣碎,同學無法將線代知識有機地串聯起來。
  • 線性代數很重要,選對教材更重要:同濟版《線性代數》引發激烈爭議
    如今已經畢業多年,沒想到最近在知乎上看到一篇文章《《線性代數》(同濟版)——教科書中的恥辱柱》,點讚量快突破五千。對於這篇文章,大家有時間可以讀一下,看看是不是同意作者的觀點。線性代數真的很重要,這是很多工程技術人員走上工作崗位的最大感受。好多算法都用到線性代數的知識,就比如現在非常熱門的深度學習,它的底層實現方式用到好多線性代數方面的知識。
  • 線性代數重要,選對教材更重要:同濟版《線性代數》引發激烈爭議
    如今已經畢業多年,沒想到最近在知乎上看到一篇文章《《線性代數》(同濟版)——教科書中的恥辱柱》,點讚量快突破五千。對於這篇文章,大家有時間可以讀一下,看看是不是同意作者的觀點。線性代數真的很重要,這是很多工程技術人員走上工作崗位的最大感受。好多算法都用到線性代數的知識,就比如現在非常熱門的深度學習,它的底層實現方式用到好多線性代數方面的知識。
  • 線性代數重要,選對教材更重要:同濟版《線性代數》引發激烈爭議
    好多算法都用到線性代數的知識,就比如現在非常熱門的深度學習,它的底層實現方式用到好多線性代數方面的知識。如果底層基礎打不好,不明白其中的原理,算法實現方式真的很難理解,更不可能去創新了。好的教材才能起到事半功倍的效果。
  • 線性代數試題
    這裡是高等院校數學課程(微積分&高等數學、線性代數、概率統計……)的學習平臺……歡迎關注「微積分線性代數概率統計」!這裡是高等院校數學課程(微積分&高等數學、線性代數、概率統計……)的學習平臺……歡迎關注「微積分線性代數概率統計」!
  • 強化學習中的線性代數知識
    線性代數的基本原理如何用於深度強化學習?答案是解決了馬爾可夫決策過程時的迭代更新。強化學習(RL)是一系列用於迭代性學習任務的智能方法。由於計算機科學是一個計算領域,這種學習發生在狀態向量、動作等以及轉移矩陣上。狀態和向量可以採用不同的形式。
  • 在b站學物理生物線性代數?媽媽再也不用擔心我的學習了!
    就在小夥伴秉承張弛有度的原則,在學習之餘放(打)松(開)大(b)腦(站)的時候,居然有大收穫!不少花式提分視頻出現在大家面前,不曾想這塊ACG寶地,同時也是學習殿堂。在教室裡學習線性代數,學到的可能是如何進行各種計算,比如矩陣乘法、行列式、或者是叉積。但很多學生並非真正理解為什麼矩陣乘法要如此定義,或者為什麼叉積與行列式有所關聯。
  • 深度學習線性代數簡明教程
    深度學習(Deep Learning)是機器學習的子領域。而線性代數(linear algebra)是有關連續值的數學。許多計算機科學家在此方面經驗不足(傳統上計算機科學更偏重離散數學)。想要理解和使用許多機器學習算法,特別是深度學習算法,對線性代數的良好理解是不可或缺的。
  • 數學學習如此容易:用Python學習線性代數
    還在為學習數學而發愁嗎?看完這篇文章,希望Python能幫助你消滅數學恐懼症。用NumPy進行線性代數運算線性代數是數學的一個重要分支,比如,我們可以使用線性代數來解決線性回歸問題。子程序包numpy.linalg提供了許多線性代數例程,我們可以用它來計算矩陣的逆、計算特徵值、求解線性方程或計算行列式等。對於NumPy來說,矩陣可以用ndarray的一個子類來表示。
  • 資源|用Python和NumPy學習《深度學習》中的線性代數基礎
    本文系巴黎高等師範學院在讀博士 Hadrien Jean 的一篇基礎學習博客,其目的是幫助初學者/高級初學者基於深度學習和機器學習來掌握線性代數的概念。掌握這些技能可以提高你理解和應用各種數據科學算法的能力。
  • MIT大牛Gilbert Strang新書:《線性代數與從數據中學習》搶先看
    銅靈 發自 凹非寺量子位 出品 | 公眾號 QbitAI經典教材《Introduction to Linear Algebra》(《線性代數導論》)的作者Gilbert Strang教授又要出新書了。這本新書名叫Linear Algebra and Learning from Data(《線性代數與從數據中學習》),面向有一定基礎、想進階線性代數技能的同學。此次教授親自出馬再推新書,號召力非常強大。微博科技博主@愛可可-愛生活推薦後短短幾個小時,已經有200多人轉發。
  • 線性代數內部試題
    這裡是高等院校數學課程(微積分&高等數學、線性代數、概率統計……)的學習平臺……歡迎關注「微積分線性代數概率統計」!這裡是高等院校數學課程(微積分&高等數學、線性代數、概率統計……)的學習平臺……歡迎關注「微積分線性代數概率統計」!