05.14 資源|用Python和NumPy學習《深度學習》中的線性代數基礎

本文系巴黎高等師範學院在讀博士 Hadrien Jean 的一篇基礎學習博客,其目的是幫助初學者/高級初學者基於深度學習和機器學習來掌握線性代數的概念。掌握這些技能可以提高你理解和應用各種數據科學算法的能力。

對於初學者而言,《深度學習》(Ian Goodfellow、Yoshua Bengio、Aaron Courville)中的理論基礎部分可能過於簡略。作者按照這本書的第二章的線性代數內容來逐一介紹機器學習中的線性代數基礎,讀者可以在原書、中譯版或中文筆記中查看每個小節的基礎介紹,或直接參考該博客的推導部分。作者除了對部分概念進行詳細推導之外,還添加了多個示例,並給出了 python/numpy 的實現代碼。

  • 博客地址:https://hadrienj.github.io/posts/Deep-Learning-Book-Series-Introduction/

  • GitHub 地址:https://github.com/hadrienj/deepLearningBook-Notes

  • 《深度學習》中文版下載地址:https://github.com/exacity/deeplearningbook-chinese

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

《深度學習》第二章目錄。

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

博客目錄。

純符號的公式推導可能令人覺得過於抽象,在博客中作者一般先列出具體案例,再給出符號表述。

例如,用帶彩色的數字方陣來解釋基本定義:

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

標量、向量、矩陣、張量的區別。

符號表述:

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

再給出 python/numpy 示例代碼:

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

用 numpy 構建數組。

對某些運算關係,作者給出了直觀可理解的圖示:

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

單位圓和由矩陣 A 變換後的橢圓,其中的向量是 A 的兩個特徵向量。

對於某些較為複雜的對象,作者還給出了函數可視化和交互界面。例如,在特徵值分解的二次型變換問題中,二次型函數

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

其正定型、負定型、不定型的可視化:

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

正定型函數的交互界面:

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

最後一個小節的 PCA(主成分分析)問題,是對之前介紹概念的綜合運用,讀者可以將其作為自主練習。

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

PCA 作為座標系統變換問題。

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

協方差矩陣的特徵向量。

資源|用Python和NumPy學習《深度學習》中的線性代數基礎

旋轉數據以在一個軸上得到最大方差。

祝大家學習愉快!


分享到:


相關文章: