這是一份文科生都能看懂的線性代數簡介

2021-01-09 機器之心Pro

線性代數的概念對於理解機器學習背後的原理非常重要,尤其是在深度學習領域中。它可以幫助我們更好地理解算法內部到底是怎麼運行的,藉此,我們就能夠更好的做出決策。所以,如果你真的希望了解機器學習具體算法,就不可避免需要精通這些線性代數的概念。這篇文章中,我們將向你介紹一些機器學習中涉及的關鍵線性代數知識。

線性代數是一種連續形式的數學,被廣泛應用於理工類學科中;因為它可以幫助我們對自然現象建模,然後進行高效的計算。但是,由於線性代數是一種連續而非離散的數學,因此,很多計算機科學家都不太了解它。另外,線性代數還在幾乎所有的數學學科中都擁有著核心地位:例如幾何學和泛函分析。

線性代數中的概念是理解機器學習理論所必需的基礎知識,尤其是對那些處理深度學習算法的人而言。在剛接觸機器學習時,你可以不需要掌握線性代數。但到了一定程度後,當你希望更好地理解不同機器學習算法運作原理時,線性代數就很有用了,它可以幫助你在開發機器學習系統時更好地做決策。

在線性代數中,我們使用線性方程來表示數據,並把它們寫成矩陣或向量的形式。因此,基本上你都是在與矩陣和向量打交道,而不是標量(我們會在文章的稍後部分介紹這些概念)。如果你能夠想到使用一個合適的庫,比如 NumPy,你就可以通過簡短的幾行代碼,輕鬆實現複雜的矩陣乘法。請注意,這篇文章忽略了那些對機器學習並不重要的線性代數概念。

數學對象

標量

標量就是一個簡單的數,比如 24。

向量

向量是一個有序數組,能夠寫成一行或者一列的形式。向量只包含一個索引,用來表示向量中的某個特定元素。比如 V_2 表示向量中的第二個元素,在上面淡黃色的圖中是-8。

矩陣

矩陣是一個有序的二維數組,有兩個索引。第一個索引表示行,第二個索引表示列。例如,M_23 表示的是第二行、第三列的元素,在上面淡黃色的圖中是 8。矩陣可以有多個行或者列,注意一個向量也是一個矩陣,但僅有一行或者一列。

淡黃色圖中有一個矩陣的例子:一個 2×3 的矩陣 (行數×列數)。下圖中是另一個矩陣和對應的表示形式。

張量

三維張量是按照一定規律排列在方格中的數組,其中一個變量數字表示軸。張量有三個索引,其中第一個索引表示行,第二個索引表示列,第三個索引表示軸。例如,V_232 指向第二行、第三列、第二軸的元素,在下圖右邊的張量中表示 5。

張量是上面談到的概念中最常用的一個,因為張量是一個多維數組,同時可以是一個向量或者一個矩陣,具體取決於它的索引數量。例如,一階張量可以表示向量(1 個索引),二階張量可以表示矩陣(2 個索引),三階就是張量(3 個索引),更高階的稱為高階張量(超過 3 個索引)。

運算法則

矩陣和標量的計算

如果你在一個矩陣上加、減、乘、除一個標量,你所做的就是直接對矩陣的每個元素進行這些數學運算。下圖給出了矩陣數乘的一個很好的例子。

矩陣和向量的運算

對一個矩陣乘以一個向量,可以理解為對矩陣的每一行乘以向量的每一列,運算結果會是一個向量,它的行數和矩陣的行數一樣。下圖展示了這是如何計算的。

為了更好地理解這個概念,我們詳細講解一下第二張圖中的計算步驟。為了得到結果向量中的第一個元素 16,選擇拿來和矩陣相乘的向量中的元素 1 和 5,把它們與矩陣第一行中的元素 1 和 3 相乘,像這樣:1*1 + 3*5 = 16。對矩陣第二行的元素進行相同的計算:4*1 + 0*5 = 4。同樣,再計算矩陣第三行的元素:2*1 + 1*5 = 7。

這裡還有另一個例子:

在這裡,我們給出一個備忘錄:

矩陣間的加減法

矩陣間的加減法非常簡單直接。這裡要求,兩個矩陣需要維度相同,運算結果也會是一個相同維度的矩陣。你只需要將第一個矩陣中的每一個元素和第二個矩陣中對應位置的元素相加或者相減就可以了。如下圖所示:

矩陣間的乘法

如果你知道如何計算矩陣和向量間的乘法,矩陣間的乘法就也簡單了。注意,只有當第一個矩陣的列數和第二個矩陣的行數相等時,才能把它們兩個乘起來。運算結果會是一個矩陣,行數和第一個矩陣的行數相等,列數和第二個矩陣的列數相等。計算方法如下:

你只需要將第二個矩陣分成列向量,然後分別將第一個矩陣和每個列向量相乘。然後,將運算結果拼接成一個新的矩陣(不要把它們加起來!)。下圖逐步展示了計算過程:

同樣,我們也給出一個備忘錄:

矩陣的乘法性質

矩陣乘法擁有一些性質,根據這些性質,我們可以將大量計算整合成一個矩陣乘法。在下面我們會依次討論這些性質。為了便於理解,我們會先用標量來解釋這些性質,然後再使用矩陣形式。

交換律

數乘滿足交換律,但矩陣乘法並不滿足。這意味著,當我們在將兩個標量乘在一起的時候:7×3 和 3×7 的結果是一樣的,但當我們將兩個矩陣相乘起來的時候:A×B 並不等於 B×A。

結合律

數乘和矩陣乘法都滿足結合律。這意味著,數乘 3×(5×3)等於(3×5)×3,同時矩陣乘法 A×(B×C)等於(A×B)×C。

分配律

數乘和矩陣乘法都滿足分配律。這表示,數乘 3×(5+3)等於 3×5+3×3,而矩陣乘法 A×(B+C)等於 A×B +A×C。

單位矩陣

單位矩陣是一種特殊的矩陣,不過首先,我們需要定義什麼是「單位」。數字 1 是一個「單位」,因為任何數乘以 1 都等於它自身。因此,任何矩陣乘以一個單位矩陣都應該等於它自己。例如,矩陣 A 乘以單位矩陣還等於矩陣 A。

單位矩陣的主對角線元素都是 1,其餘元素都是 0,你可以根據這個性質得到一個單位矩陣。同時它也是一個「方陣」,這表示它的行數和列數是相等的。

我我們之前說,矩陣乘法不滿足交換律,但這裡有一個例外:將一個矩陣和一個單位矩陣相乘。因此,下式是成立的:A × I = I×A = A。

矩陣的逆和轉置

矩陣的逆和矩陣的轉置是兩種矩陣特有的性質。同樣的,我們首先在實數上討論這些性質,然後再使用在矩陣中。

1.逆運算

首先,什麼是逆(倒數)? 一個數乘以它的逆(倒數)等於 1。注意,任何非零的數都有倒數。如果將矩陣和它的逆矩陣相乘,結果就應該是單位矩陣。下面的例子展示了標量的逆(倒數):

不過,並不是每個矩陣都有逆矩陣。如果一個矩陣是方陣,而且它可逆,就可以求出它的逆矩陣。很遺憾,討論什麼矩陣可逆超出了這篇文章的範圍。

我們為什麼需要逆矩陣呢?這是因為我們不能計算用矩陣相除,並沒有「除以矩陣」的定義,但我們可以用一個矩陣乘以一個逆矩陣,來達到相同的目的。

下圖展示了一個矩陣乘以它的逆矩陣,計算結果是一個 2×2 的單位矩陣。

可以利用 NumPy 輕鬆計算出一個矩陣的逆矩陣(如果它可逆的話)。

2.轉置

最後,我們討論矩陣轉置的性質。這基本上就是將一個矩陣沿著 45 度軸線鏡像翻轉。計算矩陣的轉置非常簡單,原始矩陣的第一列就是轉置後矩陣的第一行,第二列則變成了轉置後矩陣的第二行。一個 m×n 的矩陣僅僅是轉成了 n×m 的矩陣。同時,矩陣 A 的元素 A_ij 等於轉置後矩陣的元素 A_ji。下圖展示了矩陣的轉置:

總結

在這篇文章中,你接觸到了一些機器學習中使用到的線性代數概念。你學會如何對這些對象進行加、減、乘、「除」。另外,你還掌握了矩陣最重要的性質,以及它們為什麼可以幫我們得到更有效的計算。在這些知識的基礎上,你還學習了逆矩陣和轉置矩陣的概念,以及可以如何使用它們。雖然機器學習中還有很多線性代數知識,但這篇文章提供了關於最核心的概念的一些適當介紹。

相關焦點

  • 文科生如何入門機器學習:先看看這篇零基礎教程,再多算幾遍
    曉查 發自 凹非寺量子位 出品 | 公眾號 QbitAIAI技術變得越來越熱門,很多人開始轉行進入這一領域,其中當然也不乏文科生。最近有位Reddit網友David Code,他也是一名文科生,曾經在脫口秀節目《周六夜現場》工作過。後來他經過兩年「地獄式」的自學,十幾次的挫敗,最終掌握了機器學習的知識,並把他的經驗寫成了一個長篇博客。他說,長期以來編寫AI書籍和在線課程的都是專家,而這些人因為專業而會忽視初學者的能力。
  • 文科生也能看懂的量子力學概論(上)
    雖然這門課比較水,但還是讓對量子力學的理解停留在科普層面的我來到了這個全新世界的大門前。在準備打開這扇門前,有必要總結一下在尋找這扇門的路上領略的風景。 這是我第一次嘗試寫科普,目標是讓擁有正常大學數學水平(中學數學加基礎微積分)以及中學物理水平的同學都能看懂(因為沒有真正理解,所以還不能讓大媽看懂)。
  • 文科生如何入門機器學習:先看看這篇零基礎教程,再多算幾遍吧
    曉查 發自 凹非寺量子位 出品 | 公眾號 QbitAIAI技術變得越來越熱門,很多人開始轉行進入這一領域,其中當然也不乏文科生。他們在普遍缺乏大學數學知識的情況下,就不能入門機器學習了嗎?最近有位Reddit網友David Code,他也是一名文科生,曾經在脫口秀節目《周六夜現場》工作過。
  • 學霸式土味情話大PK,理科生浪漫起來,文科生都自嘆不如!
    俗話說得好「知識就是力量」,學霸們在和異性告白的時候,寫的情話都不一樣,運用了專業知識,滿是套路卻又充滿內涵。今天就帶大家看看學霸式土味情話大PK,理科生浪漫起來,文科生都自嘆不如!第二句理科生的情話是「遇到你的剎那,從此再不願與你分離」聽著像是文科生慣用的神情告白,其實這是理科生運用了完全非彈性碰撞原理想出來的撩妹情話。第三句學霸式土味情話是「縱使我飛上藍天,也捨不得你溫暖的懷抱」,這麼含情脈脈的告白運用了萬有引力原理,即使兩個人的距離隔得再遠,因為彼此的心在一起,所以有一種愛的吸引力。
  • 南林大現化學元素符號對聯,你能看懂嗎?
    南林大現化學元素符號對聯,你能看懂嗎?網友調侃:這是要"逼死"文科生啊!你能看懂嗎?
  • 文科生不懂理科生的浪漫?
    文科生不懂理科生的浪漫? 類似的學術情話 還有以下這些, 大家能看懂嗎?
  • 文科生能報心理學嗎?
    我是高三文科生,高考志願想報心理學。但是父母都不同意,他們認為心理學是偏理的冷門專業。我想知道心理學真的是冷門專業嗎?以後不好就業嗎?」感謝這名學生對我的信任。的確,心理學在我國是一門新興學科,人們對這個專業的了解並不多,很多人都表現出好奇心,如有人會問:「心理學可以給人算命嗎?」還有的人問:「學心理學的,能猜猜我現在想什麼嗎?」
  • 這本免費線性代數教科書,斯坦福和UCLA都在用,配套PPT可下載
    書中都講了啥?內容如其名,整本書一共分為三大部分:向量、矩陣、最小二乘導論。與其他大多數同類教科書相比,這本書的最大的特徵是面向應用,通過實際的例子來展示一些看似簡單的方法,將抽象的線性代數知識轉化為現實世界的應用。書中討論的例子,也覆蓋了各個領域,不僅有數據科學、機器學習和人工智慧,還涉及信號和圖像處理、導航和金融領域等等。
  • 高考:文科生也能學醫,這5個能拿高薪的醫學類專業你會選嗎?
    高考:文科生也能學醫,這5個能拿高薪的醫學類專業你會選嗎?高考對於很多高三黨來說是非常重要的,有一些家長詢問小水,孩子是文科生,但是想學醫可以報考嗎?這當然可以的。不過醫學類專業有很多,像臨床醫學專業就不允許文科生報考。但是如果現在孩子已經讀了文科,想學醫還可以嗎?
  • 文科生能學醫嗎?最適合文科生的三種醫學專業,就業方便還工資高
    大學選擇專業是非常重要的一件事,如果選了一份畢業後難就業,發展空間狹隘的專業,這就無異於浪費著寶貴的大學四年時間。而我們在選擇專業之前,除了需要考慮自身的興趣愛好,更重要的是要把握該專業的就業前景與發展空間,而發展空間廣,就業薪資高的專業中,醫學類專業無異於是很吃香的!
  • 大學生用化學元素周期表做春聯 文科生表示看不懂
    早個幾天貼春聯也沒啥毛病,就是這春聯看著實在讓人忍俊不禁。上聯:Ag Zn Na F Ga Hf Mg,下聯:Re Sg Tc Au As Sc Ti。南京林業大學的卞正同學的化學元素新春對聯,你看懂了嗎?小編我盯著它看了五分鐘,愣是沒看懂……要不你也來挑戰一下,看看這春聯到底是什麼意思?實在看不明白的學渣,往下看。
  • 線性變換——線性代數的本質(二)
    這裡用的變換,其實是暗示我們用一種運動的角度去看待這種輸入--輸出關係,在大腦裡面形成動畫,可視化地表示出這輸入向量移動到輸出向量時的運動過程。概念倒是看懂了,那我們應該怎麼描述線性變換呢?經過線性代數的本質(一)基向量和線性組合的學習,我們知道只要改變標量的大小,就可以用基向量表示線性空間內的所有向量。
  • 學好線性代數,我推薦這本書|展卷
    大概是陸啟鏗先生的話被人聽岔了,做出這一評價的外爾教授,有時被訛傳為韋伊(A. Weil)。稍微了解韋伊的人都知道,他不可能說這話。為什麼呢?因為韋伊是法國布爾巴基學派的靈魂人物,他跟謝瓦萊(C. Chevalley)都致力於消除代數中的行列式、結式等計算性的概念,而華羅庚是以矩陣計算見長,絕非韋伊所欣賞的風格。
  • 線性代數入門——三階行列式的定義與計算
    系列簡介:這個系列文章講解線性代數的基礎內容,注重學習方法的培養。
  • 馬輝:「中外結合」帶你領略線性代數之美
    【教師簡介】馬輝,清華大學數學科學系教授。自2011年參加數學系與電子系的課程改革和共建項目,連續5個學期擔任電子系大一學生的線性代數教學工作。【課程簡介】線性代數是現代數學的基礎之一,在物理、計算機圖形學、工程、經濟學等自然科學和社會科學各領域具有廣泛和深刻的應用,同時線性代數是高等學校理工科各專業的一門重要基礎課。
  • 6個文科生也能報考的「理科專業」,前途無量!
    每年到報考季節,文科生家長最迷茫的就是不知道選擇什麼專業?在大部分家長觀念裡,文科生挑專業,無非是語言類、經濟類、法學類、管理類、師範類。今天宇宬老師幫大家總結,6個文科生也能報考的理科專業。主幹學科是計算機學、傳播學、藝術設計學、多媒體技術學,出來一般都是各種設計師工作。如視覺設計師、平面設計師。兼收文科生高校:哈爾濱工業大學03應用心理學應用心理學是用來解決實際問題的。
  • 如何看待清華大學將線性代數教材改為英文教材?
    我當時是抽出時間把這本英文線性代數教材一點點研讀下來的,受益匪淺。作者:王洪浩https://www.zhihu.com/question/352747514/answer/875009903在清華讀書的時候,曠課看小說太多,導致晚自習看課本怎麼都看不懂,考試成績很差。直到有一天,翻學校影印的外文教材,竟然看懂了。這就是差別吧。
  • 羅振宇「文科生」式自嘲成看點,《最強大腦》成得到App招聘會?
    此次來到《最強大腦》舞臺,對羅振宇來說可謂又是一場挑戰,作為「文科生」的他將與《最強大腦》碰撞出怎樣的火花,令人期待。首度觸電《最強大腦》,羅振宇「文科生」式自嘲引爆笑眾所周知,羅振宇是知識服務類應用得到App的創始人,自己也錄製過很多知識服務類視頻,與用戶分享他所學到的知識。
  • 線性代數的非主流經典名作:《線性代數應該這樣學》
    內容簡介本書強調抽象的向量空間和線性映射, 內容涉及多項式、本徵值、本徵向量、內積空間、
  • 文科生能「學醫」嗎?這6個醫學專業前景很好,畢業不比理科生差
    「小編,我想問一下文科生可以當醫生嗎?以前也沒有想過這麼問題,但是聽說文科生貌似不能當醫生?」其實大部分的醫學類專業文科生都是沒辦法報考的,只有極個別的院校會招收文科生,但都很少,並且競爭也比較激烈。 所以文科生想要報考醫學專業,畢業後想要學醫的話,西醫這條路是沒辦法走的。