動手學深度學習需要這些數學基礎知識
本附錄總結了本書中涉及的有關線性代數、微分和機率的基礎知識。為避免贅述本書未涉及的數學背景知識,本節中的少數定義稍有簡化。
A.1 線性代數
下面分別概括了向量、矩陣、運算、範數、特徵向量和特徵值的概念。
A.1.1 向量
本書中的 向量 指的是 列向量 。一個n維向量 x 的表示式可寫成
其中
是向量的 元素 。我們將各元素均為實數的 n 維向量 x 記作
或
。
A.1.2 矩陣
一個m行n列 矩陣 的表示式可寫成
其中
是矩陣 X 中第 i 行第j列的元素(
)。我們將各元素均為實數的 m 行 n列矩陣 X 記作
。不難發現,向量是特殊的矩陣。
A.1.3 運算
設n維向量 a 中的元素為
,n維向量 b 中的元素為
。向量 a 與 b 的點乘( 內積 )是一個標量:
設兩個m行n列矩陣
矩陣 A 的 轉置 是一個n行m列矩陣,它的每一行其實是原矩陣的每一列:
兩個相同形狀的矩陣的加法是將兩個矩陣按元素做加法:
我們使用符號
表示兩個矩陣 按元素乘法 的運算,即 阿達馬積 (Hadamard product):
定義一個標量k。標量與矩陣的乘法也是按元素做乘法的運算:
其他諸如標量與矩陣按元素相加、相除等運算與上式中的相乘運算類似。矩陣按元素開根號、取對數等運算也就是對矩陣每個元素開根號、取對數等,並得到和原矩陣形狀相同的矩陣。
矩陣乘法 和按元素的乘法不同。設 A 為m行p列的矩陣, B 為p行n列的矩陣。兩個矩陣相乘的結果
是一個m行n列的矩陣,其中第i 行第j 列(
)的元素為
A.1.4 範數
設n維向量 x 中的元素為
。向量 x 的
範數 為
例如, x 的
範數 是該向量元素絕對值之和:
而 x 的
範數 是該向量元素平方和的平方根:
我們通常用 || x || 指代 || x ||2。
設 X 是一個m行n列矩陣。矩陣 X 的Frobenius 範數 為該矩陣元素平方和的平方根:
其中
為矩陣 X 在第 i 行第 j 列的元素。
A.1.5 特徵向量和特徵值
對於一個n 行n 列的矩陣 A ,假設有標量 λ 和非零的n維向量 v 使
那麼 v 是矩陣 A 的一個 特徵向量 ,標量 λ 是 v 對應的 特徵值 。
A.2 微分
我們在這裡簡要介紹微分的一些基本概念和演算。
B.2.1 導數和微分
假設函式
的輸入和輸出都是標量。函式 f 的 導數
且假定該極限存在。給定
,其中x和y分別是函式 f 的 自變數 和 因變數 。以下有關導數和微分的表示式等價:
其中符號D和d/dx也叫 微分運算子 。常見的微分演算有DC = 0(C為常數)、
(n為常數)、
、
等。
如果函式 f 和g都可導,設C為常數,那麼
如果
和
都是可導函式,依據 鏈式法則 ,
A.2.2 泰勒展開
函式 f 的 泰勒展開式 是
其中
為函式 f 的 n 階導數(求n次導數),n! 為 n 的階乘。假設
是一個足夠小的數,如果將上式中 x 和 a 分別替換成
和 x,可以得到
由於
足夠小,上式也可以簡化成
A.2.3 偏導數
設u為一個有n個自變數的函式,
,它有關第i個變數
的 偏導數 為
以下有關偏導數的表示式等價:
為了計算
,只需將
視為常數並求u有關xi的導數。
A.2.4 梯度
假設函式
的輸入是一個n維向量
,輸出是標量。函式
有關 x 的梯度是一個由n個偏導陣列成的向量:
為表示簡潔,我們有時用
代替
。
假設 x 是一個向量,常見的梯度演算包括
類似地,假設 X 是一個矩陣,那麼
A.2.5 海森矩陣
假設函式
的輸入是一個n維向量
,輸出是標量。假定函式 f所有的二階偏導數都存在,f 的海森矩陣 H 是一個n行n列的矩陣:
其中二階偏導數為
A.3 機率
最後,我們簡要介紹條件機率、期望和均勻分佈。
A.3.1 條件機率
假設事件A和事件B的機率分別為
和
,兩個事件同時發生的機率記作
或
。給定事件B,事件A的 條件機率 為
也就是說,
當滿足
時,事件 A 和事件 B 相互獨立 。
A.3.2 期望
離散的隨機變數X的 期望 (或平均值)為
A.3.3 均勻分佈
假設隨機變數X服從[a, b]上的 均勻分佈 ,即
。隨機變數X取a和b之間任意一個數的機率相等。
小結
- 本附錄總結了本書中涉及的有關線性代數、微分和機率的基礎知識。
練習
求函式
的梯度。
本文摘自《動手學深度學習》
動手學深度學習
作者:阿斯頓·張(Aston Zhang), 李沐(Mu Li), [美] 扎卡里·C. 立頓(Zachary C. Lipton), [德] 亞歷山大·J. 斯莫拉(Alexander J. Smola)
- 人工智慧機器學習深度學習領域重磅教程圖書
- 亞馬遜科學家作品
- 動手學深度學習的全新模式,原理與實戰緊密結合
目前市面上有關深度學習介紹的書籍大多可分兩類,一類側重方法介紹,另一類側重實踐和深度學習工具的介紹。本書同時覆蓋方法和實踐。本書不僅從數學的角度闡述深度學習的技術與應用,還包含可執行的程式碼,為讀者展示如何在實際中解決問題。為了給讀者提供一種互動式的學習體驗,本書不但提供免費的教學影片和討論區,而且提供可執行的Jupyter記事本檔案,充分利用Jupyter記事本能將文字、程式碼、公式和影像統一起來的優勢。這樣不僅直接將數學公式對應成實際程式碼,而且可以修改程式碼、觀察結果並及時獲取經驗,從而帶給讀者全新的、互動式的深度學習的學習體驗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2651584/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【筆記】動手學深度學習-預備知識筆記深度學習
- Pytorch 手寫數字識別 深度學習基礎分享PyTorch深度學習
- 關於深度學習,這些知識點你需要了解一下深度學習
- 學習網路安全,這些必備基礎知識不能少!
- Android基礎知識學習Android
- React學習手記1--基礎知識React
- 關於深度學習編譯器,這些知識你需要了解一下深度學習編譯
- 零基礎如何學好大資料?必備需要學習知識大資料
- 基礎知識學習筆記筆記
- 深度學習基礎深度學習
- 想要成為黑客?那你需要學會這些知識黑客
- 學習爬蟲必須學的基礎知識爬蟲
- 怎麼學習基礎知識啊?
- 機器學習基礎知識1機器學習
- JVM學習之JVM基礎知識JVM
- JavaSE基礎知識學習—–多型Java多型
- JavaSE基礎學習知識整理大全Java
- RxJava 學習筆記 -- 基礎知識RxJava筆記
- go語言學習-基礎知識Go
- 深度學習--RNN基礎深度學習RNN
- 學習React之前你需要知道的的JavaScript基礎知識ReactJavaScript
- 零基礎學習UI設計到底需要學些什麼?UI
- Android面試之——數學基礎知識Android面試
- MySQL 基礎知識梳理學習(四)—-GTIDMySql
- iOS 基礎知識學習目錄索引iOS索引
- 【學習】MySQL基礎知識要點-001MySql
- 學 Java 網路爬蟲,需要哪些基礎知識?Java爬蟲
- 軟體測試都需要學哪些基礎知識
- 怎麼學好Java?需要學習哪些知識?Java
- 需掌握的深度學習知識深度學習
- 圖形學基礎知識
- 【機器學習基礎】神經網路/深度學習基礎機器學習神經網路深度學習
- 一些數學知識&題
- 【Get】用深度學習識別手寫數字深度學習
- vue3 自學(一)基礎知識學習和搭建一個腳手架Vue
- 深度學習及pytorch基礎深度學習PyTorch
- 深度學習基礎之 Dropout深度學習
- DL-深度學習基礎深度學習