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

2021-01-09 機器之心Pro

機器之心編輯

參與:思源

數學是機器學習的基礎。史丹福大學教授 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 語言。

function kmeans(X, k; maxiters = 100, tol = 1e-5)if ndims(X) == 2 X = [X[:,i] for i in1:size(X,2)]end; N = length(X) n = length(X[1]) distances = zeros(N) reps = [zeros(n) for j=1:k] assignment = [ rand(1:k) for i in1:N ] Jprevious = Inf for iter = 1:maxitersfor j = 1:k group = [i for i=1:Nif assignment[i] == j] reps[j] = sum(X[group]) / length(group);end;for i = 1:N (distances[i], assignment[i]) = findmin([norm(X[i] - reps[j]) for j = 1:k]) end; J = norm(distances)^2 / N println("Iteration ", iter, ": Jclust = ", J, ".")if iter > 1 && abs(J - Jprevious) < tol * J return assignment, repsend Jprevious = Jendend

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

相關焦點

  • 線性代數與數據學習:MIT教授Gilbert Strang幫你打下堅實的數學...
    這一本書為機器學習提供了很多數學基礎,它同時也提供了深度學習一些基本概念。可以說藉助這本書,我們能從數學的角度來理解流行的模型。書籍主頁:http://math.mit.edu/~gs/learningfromdata/這本書的目的是解釋數據科學和機器學習所依賴的數學:線性代數、最優化、概率論和統計學。
  • 這是一份文科生都能看懂的線性代數簡介
    線性代數的概念對於理解機器學習背後的原理非常重要,尤其是在深度學習領域中。它可以幫助我們更好地理解算法內部到底是怎麼運行的,藉此,我們就能夠更好的做出決策。所以,如果你真的希望了解機器學習具體算法,就不可避免需要精通這些線性代數的概念。這篇文章中,我們將向你介紹一些機器學習中涉及的關鍵線性代數知識。
  • 一文弄清深度學習、TensorFlow和張量之間的關係
    結果就是,當你瀏覽熱詞時,你會發現,真的有一些基礎強大的、有用的並且可用的方法,它們能夠充分利用張量所能提供的,而這不僅僅是針對深度學習而言的。這就是為什麼張量為什麼那麼受歡迎。 如果說計算也是有傳統特點的話,那麼使用線性代數的數值計算就是最受歡迎的計算之一了。
  • 涵蓋邏輯回歸、貝葉斯等算法,一本關於ML在線免費書籍,值得一讀
    近日,本科畢業於哈佛大學統計學與經濟學專業、現任哈佛助教的 Daniel Friedman 開放了他撰寫的一本免費在線書籍《Machine Learning from Scratch》,該書從理論和數學上介紹了 ML 最常見算法(OLS、邏輯回歸、樸素貝葉斯、決策樹、boosts 和神經網絡等)的完整推論。
  • 免費在線閱讀:用於計算機視覺、機器學習、機器人的線性代數
    郭一璞 發自 凹非寺量子位 報導 | 公眾號 QbitAI研究機器學習、計算機視覺,總離不開數學,尤其是……線性代數。要是沒有一定數學基礎的話,當你看到SVM、拉格朗日乘數等各種複雜術語的時候,可能會頭禿。所以,為了有更堅實的理論基礎,從根源上理解機器學習背後的數學問題,還是好好學一下數學吧~現在,這本《用於計算機視覺、機器人和機器學習的線性代數》可能會幫上你。
  • 微積分、線性代數、概率論,這裡有份超詳細的ML數學路線圖
    深入挖掘一下,你會發現,線性代數、微積分和概率論等都和機器學習背後的算法息息相關。機器學習算法背後的數學知識你了解嗎?在構建模型的過程中,如果想超越其基準性能,那麼熟悉基本細節可能會大有幫助,尤其是在想要打破 SOTA 性能時,尤其如此。機器學習背後的原理往往涉及高等數學。例如,隨機梯度下降算法建立在多變量微積分和概率論的基礎上。
  • 心理學教授力薦的3本書籍,幫你提升社交關係,讓你更好的溝通
    心理學教授力薦的3本書籍,幫你提升社交關係,幫讓你更好的溝通編輯:悅讀有書我在上學的時候就特別喜歡心理學的書籍,因為我想當一個心理諮詢師這樣就可以幫助困在自己世界的人走出陰霾,後來聽說急需量很大但是沒有太多的公司,所以也沒有考證,但是現在依然喜歡看心理學方面的書籍,
  • 乾貨滿滿:5本必看深度學習書籍!
    在過去的一年裡,他們以手指能承受的最大速度拼命敲擊鍵盤,以期用一本絕妙的書在亟需投餵的深度學習市場中打敗同行。現在,讓我們一覽這些書籍,比較優劣,看看哪些對於學習AI,或者說進一步理解這門藝術有最大的幫助。「合適的才是最好的」。對AI學習也是如此——需要合理的、適量的理論學習和實際操作。
  • 線性代數應該這樣學一
    瑞典數學家Lars Garding在其名著Encounter with Mathematics中說:「如果不熟悉線性代數的概念,要去學習自然科學,現在看來就和文盲差不多。然而「按照現行的國際標準,線性代數是通過公理化來表述的,它是第二代數學模型,這就帶來了教學上的困難。」
  • 2018考研數學大綱,線性代數如何得分
    考研數學複習:考研數學複習先了解考察特點,命題趨勢,再對症下藥的複習,這樣才能提升效率。本文為廣大考生整理2018考研數學大綱,線性代數如何得分,更多考研數學怎麼複習、考研數學題型、考研數學大綱、考數學試題等備考資料,歡迎訪問北京研究生招生信息網。
  • 人工智慧之線性代數
    線性代數是代數學的一個分支,主要處理線性問題。線性問題是指數學對象之間的關係是以一次形式來表達的。線性代數誕生於求解線性方程組。行列式、矩陣和向量是處理線性問題的有力工具。線性代數與人工智慧的聯繫:1)神經網絡中的所有參數都被存儲在矩陣中;線性代數使矩陣運算變得更加快捷簡便,尤其是在GPU上訓練模型時,因為GPU可以並行地以向量和矩陣運算。2)圖像在計算中被表示為按序排列的像素數組。3)視頻遊戲使用龐大的矩陣來產生令人炫目的遊戲體驗。
  • CFD理論掃盲|02 矩陣與張量
    :如果兩個階次相同的矩陣對應的元素都相等,那麼這兩個矩陣相等。標量是一個秩為0的張量,而向量是一個秩為1的張量。高秩張量的主要用途是處理和變換方程組。在CFD中只需要秩為2的張量。這裡以其作為張量介紹的對象。
  • 417頁《機器學習中的數學》免費開放下載!| 好書分享
    工欲善其事必先利其器,對機器學習而言,這把利器無疑就是數學。AI科技評論今天給大家介紹一本今年由劍橋大學出版社出版的一本新書:《Mathematics for machine learing》~本書涵蓋了機器學習中的絕大多數基本數學概念。具體而言,這本書涵蓋了支撐現代機器學習的關鍵數學概念,特別是線性代數,微積分和概率論。
  • 2016考研數學:線性代數解題技巧
    >>2016考研考前終極預測題及答案解析匯總(各科目)   線性代數考研數學中佔有重要的地位,多以計算題為主,證明題為輔。以下是總結的線性代數解題技巧,以供大家參考。
  • 沉浸式學習線性代數!這裡有一本全交互的線性代數書
    機器之心編輯參與:路今天,我們給大家介紹一本好玩的線性代數書籍。線性代數的書籍那麼多,這本卻獨具特色。準確來講,量詞似乎不能用「本」,因為它需要在網頁上閱讀,更重要的是,書裡的圖是可以動的,讀者還可以拖動圖。
  • 極客數學幫課外閱讀指導課——寒假課外書籍推薦
    前兩天有一篇文章火遍了朋友圈,叫《馬上放寒假,千萬別帶孩子去旅遊了》,極客數學幫覺得文章中有些地方說的很對,現在很多家長帶孩子出行的目的不單單是增長見識或是感受山河的壯美,而是因為這背後隱藏的層次消費,這樣的旅行真的有意義嗎?
  • 如何看待清華大學將線性代數教材改為英文教材?
    我當年堅定的選擇了全校唯一上這個教材的瞿燕輝老師,至今仍然對線性代數擁有著很多深刻的認識和觀點,我覺得這本教材和瞿老師功不可沒。問題在,好的教材也要有與之對應的水平的老師,深刻體會之後,適應了這本教材的模式才能講得好。這一點清華的其他老師初次接觸,難免力不能逮,誠然不能怪老師,但更不能怪教材。其次,國外(尤其美國)教材和國內教材的區別在,他們都或多或少有點「囉嗦」。
  • 線性代數重要,選對教材更重要:同濟版《線性代數》引發激烈爭議
    目前這本教材已更新了好幾版,每次更新的內容看起來也是無關緊要,如果有下次版本更新,還是希望制定教材的老師們聽取一下廣大學生的建議。同濟版《線性代數》何以引發眾怒?一直以來,同濟版《線性代數》都是一本頗有爭議的教材,它在知乎上的風評基本都是這個畫風:很多同學吐槽這本教材結構不合理、內容抽象(甚至讓抽象的東西變得更抽象),整本學下來很難有什麼收穫,還可能會喪失對於數學學習的興趣。
  • 斯坦福和伯克利都在用的線性代數教材,現在可以免費下載了
    白交 發自 凹非寺量子位 報導 | 公眾號 QbitAI豆瓣評分9.3分,線性代數網紅書,現在可以免費下載了。被美國公認為刷新線代學習的書籍,《Linear Algebra Done Right》第三版,近日已經可以在Springerlink免費下載了!
  • 2020考研數學知識點:線性代數重點(齊次/非齊次線性方程組)
    2020考研數學知識點:線性代數重點(齊次/非齊次線性方程組) 中公考研小編整理分享性代數的考察重點,還沒有掌握的同學要抓緊看,衝刺複習時間有限,大家要重點攻克難點要點,不明白的知識點要強化訓練。