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

2020-11-29 機器之心Pro

本文系巴黎高等師範學院在讀博士 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 示例代碼:

用 numpy 構建數組。

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

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

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

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

正定型函數的交互界面:

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

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

協方差矩陣的特徵向量。

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

祝大家學習愉快!

相關焦點

  • 深度學習中的NumPy基礎
    一個常用的線性代數函數是 norm() ,一個用來計算向量長度的函數,也稱為向量範數或向量大小。在機器學習和深度學習應用中,向量範數作為一種規範化技術被用來解決過度填充問題。NumPy 的 linalg 子模塊具有計算向量範數的 norm()函數。
  • 深度學習和機器學習的線性代數入門
    本文目錄引言機器學習ML和深度學習NN中的線性代數矩陣向量矩陣乘法轉置矩陣逆矩陣正交矩陣對角矩陣在模型構建過程中,我們經常設計各種概念,例如維數災難、正則化、二進位、多分類、有序回歸等。神經元是深度學習的基本單位,該結構完全基於數學概念,即輸入和權重的乘積和。至於Sigmoid,ReLU等等激活函數也依賴於數學原理。
  • Python學習第116課——numpy.dot和矩陣相乘的數學運算
    關於numpy中數組的相乘,我們學習了對位相乘(用numpy.multiply、或*直接相乘,比如數組a和b的對位相乘就是numpy.multiply(a,b)或a*b)和一維數組的點乘(dot product,也有人叫inner product,比如一維數組a和b的點乘就是a.b)。
  • 數學學習如此容易:用Python學習線性代數
    還在為學習數學而發愁嗎?看完這篇文章,希望Python能幫助你消滅數學恐懼症。用NumPy進行線性代數運算線性代數是數學的一個重要分支,比如,我們可以使用線性代數來解決線性回歸問題。子程序包numpy.linalg提供了許多線性代數例程,我們可以用它來計算矩陣的逆、計算特徵值、求解線性方程或計算行列式等。對於NumPy來說,矩陣可以用ndarray的一個子類來表示。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • Python學習第119課——numpy中的broadcasting
    【每天幾分鐘,從零入門python編程的世界!】這節課我們學習numpy中的數據的一個多變的特性--broadcasting,broadcasting的官方的說明比較麻煩,我們這裡把它簡化一下,就把它當做「腦補」的意思。我們舉例來說明。
  • Python學習第114課——numpy中ndarray的四則運算
    【每天幾分鐘,從零入門python編程的世界!】我們為什麼要學習numpy?numpy其實就是number+Python的簡寫,意思就是通過Python對數據進行處理。要對數據進行處理,就少不了最基本的加減乘除等操作。
  • Python學習第117課——numpy中dot的運用舉例
    【每天幾分鐘,從零入門python編程的世界!】上節我們學習了最基礎的matrix的運算,可能有小夥伴覺得這都要涉及高等數學知識了,確實如果你想做數據科學、做人工智慧,統計學、概率論等數學知識,尤其是算法是繞不過去的坎,但是不要怕!!!
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • 乾貨 | 請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • Numpy學習打卡task01
    在內部,MATLAB和NumPy都依靠BLAS和LAPACK進行高效的線性代數計算。廣泛使用的計算機視覺庫OpenCV的Python綁定利用NumPy數組來存儲和操作數據。由於具有多個通道的圖像被簡單地表示為三維數組,因此用其他數組進行索引、切片或遮蔽是訪問圖像特定像素的非常有效的方法。
  • 詳細解讀,8000字線性代數知識點長文,帶你入門深度學習/機器學習
    本文目錄:引言機器學習和深度學習建立在數學原理和概念之上,因此AI學習者需要了解基本數學原理。在模型構建過程中,我們經常設計各種概念,例如維數災難、正則化、二進位、多分類、有序回歸等。神經元是深度學習的基本單位,該結構完全基於數學概念,即輸入和權重的乘積和。至於Sigmoid,ReLU等等激活函數也依賴於數學原理。
  • 教程| 基礎入門:深度學習矩陣運算的概念和代碼實現
    本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。本文從向量的概念與運算擴展到矩陣運算的概念與代碼實現,對機器學習或者是深度學習的入門者提供最基礎,也是最實用的教程指導,為以後的機器學習模型開發打下基礎。
  • Python數據分析之Numpy學習 2——NumPy 基礎 ndarray對象
    Python數據分析之Numpy學習 2 —— NumPy 基礎學習NumPy(Numerical Python)是高性能科學計算和數據分析的基礎包。NumPy的主要對象是同構數據多維容器(homogeneous multidimensional array)——ndarray,也就是說每一個ndarray都是一個相同類型元素組成的表格(二維)。
  • Python學習第113課——numpy中用條件判斷去篩選數組中的元素
    【每天幾分鐘,從零入門python編程的世界!】之前我們學習了如何在numpy中查找數組元素的方法和技巧,現在我們學習如何用條件判斷的方式篩選數組的元素。●numpy中的數組可以直接進行比較直接上代碼:運行結果:我們看到,condition列印出來,它的結構和h的結構一樣。
  • Python學習第112課——numpy中數組查找元素和改變元素的小技巧
    【每天幾分鐘,從零入門python編程的世界!】上節我們學習了如何利用index找到ndarray數組中的一些元素,並把找到的元素生成一個新的ndarray。代碼如下:現在我們學習幾個用index找到ndarray中元素的小技巧。
  • 機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用...
    原標題:機器學習、深度學習算法原理與案例實踐暨Python大數據綜合應用高級研修班通信和信息技術創新人才培養工程項目辦公室 通人辦〔2018〕 第5號 機器學習、深度學習算法原理與案例實踐暨Python
  • 機器學習中的線性代數:關於常用操作的新手指南
    大數據文摘作品,轉載要求見文末編譯 | 沈愛群,徐凌霄,Aileen在學習深度學習的課程時,數學知識十分重要,而如果要挑選其中最相關的部分,「線性代數」首當其衝。如果你也跟本文作者一樣,正在探索深度學習又困於相關數學概念,那麼一定要讀下去,這是一篇介紹深度學習中最常用線性代數操作的新手指南。在深度學習中,線性代數是一個非常有用的數學工具,提供同時操作多組數值的方法。
  • Python求解特徵向量和拉普拉斯矩陣
    學過線性代數和深度學習先關的一定知道特徵向量和拉普拉斯矩陣,這兩者是很多模型的基礎,有著很重要的地位,那用python要怎麼實現呢?numpy和scipy兩個庫中模塊中都提供了線性代數的庫linalg,scipy更全面些。