當前位置:
首頁 > 知識 > 線性代數與張量?這本開放書籍幫你掃清通往ML的數學絆腳石

線性代數與張量?這本開放書籍幫你掃清通往ML的數學絆腳石

機器之心編輯

參與:思源

數學是機器學習的基礎。斯坦福大學教授 Stephen Boyd 聯合加州大學洛杉磯分校的 Lieven Vandenberghe 教授出版了一本基礎數學書籍,從向量到最小二乘法,分三部分進行講解並配以輔助資料。此外,這本書也是斯坦福 EE103 課程、UCLA EE133A 課程的教材,由劍橋大學出版社出版(允許網路公開)。

項目地址:https://web.stanford.edu/~boyd/vmls/

這一本書的資料還是比較齊全的,除了本身 473 頁的教材,還有另一本 178 頁的對應代碼講解。當然如果讀者只需要了解數學部分的話,代碼部分是不需要了解的。但是如果比較關注線性代數的應用,可能就需要閱讀這些基礎代碼,並順便學一學 Julia 語言了。最後,這一本書還提供了對應的課程 PPT,讀者也可以把它們作為輔助資料。

書籍簡介

這本書旨在介紹向量、矩陣和最小二乘方法等應用線性代數的基礎內容,它的目標是為只有很少或根本沒有線性代數基礎的初學者提供入門方法,包括線性代數的基本思想以及在數據科學和機器學習等領域的應用方法。

不過讀者還是需要熟悉一般的數學符號,並且在一些地方也會用到微積分,但它們並不起關鍵作用,因此基本上以前學過高數就差不多了。這本書包含了很多傳統概率論與統計學所討論的話題,例如使用數學模型擬合數據等,但讀者不一定需要這一方面的背景知識。

這本書比一般的應用線性代數課本要有更少的數學成分,只會詳細介紹基本線性代數、線性獨立性等理論概念,以及 QR 因式分解這一計算工具。而這本書討論的大多數機器學習等方面的應用只會使用一種方法,即最小二乘法及其擴展。在某種意義下,該書更強調的是應用,即依賴於少量基本數學概念和方法,而覆蓋大多數應用。但是這本書所呈現的數學是完整的,因為它會仔細證明每一個數學聲明。然而,與大多數介紹性的線性代數課本相比,這本書描述了許多實際應用。包括一些通常被認為是高級主題的應用,如文檔分類、狀態估計和投資組合優化等。

這本書並不需要任何計算機編程的知識,因此可以作為傳統的教學課程,我們只需要閱讀對應章節並完成一些不涉及數值計算的練習題就行了。然而,這種方法會並不能使我們完全理解這本書,同時也得不到實際鍛煉,例如我們可以使用這本書的觀點與方法構建一個基於數據的預測模型、增強圖像數據或優化投資組合等。隨著計算力的不斷增長,以及 NumPy 等高效矩陣運算庫的發展,這本書中的描述的方法可以輕鬆地應用到實踐中。因此讀者還可以使用 Python 等編程語言練習不同的項目而補充學習資源,只有使用真實數據搭建應用才能真切地理解理論思想。本書提供了一些需要數值計算的練習題,且數據文件與編程語言的資源都可在線獲得。

這本書主要分為三部分。第一部分介紹了向量及各種向量運算和函數,例如加法、向量內積、距離和角度等。本書還展示了如何使用向量表示文檔中的詞數、時間序列、目標屬性、產品規格、音頻數據和圖像等。第二部分如同前一部分重點關注矩陣的概念與應用,包括矩陣的求逆和解線性方程等。第三部分介紹了最小二乘法,它不僅展示了如何簡單而自然地近似求解一個超定方程組,同時還有一些可應用到很多方法的最小二乘擴展知識。

該書還可用於自學,並輔以在線提供的資料,例如下面這份 470 頁的 PPT。

地址:https://web.stanford.edu/~boyd/vmls/vmls-slides.pdf

按照設計,本書的進度會逐漸加快,也就是說第一部分和第二部分有許多細節和簡單的例子,第三部分有更多高級的例子和應用。對於只有很少線性代數基礎或根本沒有的讀者而言,課程可以側重於第一部分和第二部分,並且僅簡單了解一些更高級的應用。而熟悉背景知識的讀者可以快速過一遍前面兩部分,並將重點放在最後的應用部分上。

除了線性代數等數學基礎,這本書還介紹了很多機器學習應用,包括比較流行的 K 均值聚類等。而這些機器學習演算法主要都介紹了數學表現形式和偽演算法,並不涉及具體的代碼,讀者可另外查看這本書的配套代碼實現。這本書提供的了基於 Julia 語言的配套代碼!

下面我們將簡要介紹聚類這一方面課本內容與對應的 Julia 代碼。聚類也就是說將同類的無監督數據聚在一起,它的目標函數可以簡單地定義為各樣本到對應聚類中心的距離和。如果這個距離和非常大,那麼聚類的效果就不好,我們會希望通過最優化演算法最小化這個距離。在這本書中,距離可以定義為:

而 K 均值聚類會更形象地利用圖像展示聚類效果,下圖展示了 K 均值聚類迭代一次的更新過程:

而這一更新過程會有對應的為代碼:

除了這些基礎內容外,這本書還會展示很多可視化內容以幫助理解理論知識,例如展示了最終聚類結果的圖 4.4 和展示了損失函數下降趨勢的圖 4.5:

當然,K 均值聚類還提供了對應 Julia 實現,如下展示了實現該演算法的代碼,讀者在學習這本書的同時還能順便學學 Julia 語言。

最後,這本書的對應代碼和數據都可以在 GitHub 中找到:https://github.com/VMLS-book。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

業界 | 一統所有AI晶元:Facebook揭秘深度學習編譯器Glow
學界 | 把2D公路變成3D飛車遊戲,MIT、清華打破圖像編輯的次元壁

TAG:機器之心 |