深度學習的數學-向量與矩陣

2020-02-27     sandag

前言

本篇主要學習下線代中向量與矩陣相關的知識,包括多維向量內積與機器學習中遞推的關係,矩陣的基礎概念和計算等;在書中也只提到與機器學習有關聯的基礎知識點,整體難度不算高;

正文

向量的定義

假設現在有兩個點 A和B,那麼 A->B 就是一個 有位置 (A的位置) 有方向 (A指向B的方向) 有大小 (AB線段的長度)的向量

一個向量可以由如下三種方式表達

坐標表示

如果我們建立一個直角坐標系,把A點移動到坐標原點,B點相對A點的位置不變,那麼B點的坐標就可以看作是向量 A->B 的坐標表示

也可以把這個定義推廣到三維甚至N維直角坐標繫上,下圖表示 A(1, 1, 1) 向量

向量的大小

向量的大小用 |a| 表示,與絕對值符號相同

向量的大小即向量的長度,通過直角坐標系可以很方便的理解,比如 a = (3, 4),根據勾股定理,該向量的大小就是 5

再推廣到三維,a = (1, 2, 2),那麼向量 a 的大小就是:

向量內積

向量的內積定義為兩個向量的大小乘以向量夾角的 cos

a和b,只要有一個為0,那麼內積就是0

同理,這種解法也適用於三維向量

柯西不等式

因為任意的θ都會另 -1 < cos(θ) < 1,所以很容易推出下面的不等式

結合這個不等式,可以得到如下三種情況

  • 兩個向量方向相反時,內積最小
  • 兩個向量方向相同是,內積最大
  • 兩個向量方向夾腳在 0 ~ 180° 時,內積大小會從最大到最小

書中特意提到,第一條性質(兩個向量方向相反時,內積最小) 是日後梯度下降法的基本原理

內積的坐標表示

還是首先以二維直角坐標係為例,內積可以以坐標的形式進行計算

三維向量一樣有這樣的性質

多維向量一般化(重點)

關於推導,我也嘗試用我撇腳的數學推算過,算了一兩頁紙發現越算越複雜,推不出來,找了個別人的推導過程,有興趣的可以研究下

https://blog.csdn.net/zhangyingjie09/article/details/88375120

看到這個向量內積公式,有沒有想到之前提到的神經單元的加權輸入:

就可以表現為兩個向量的內積加上偏置,向量 w = (w1, w2, w3, w4, …),x = (x1, x2, x3, x4, …),即:

矩陣的定義

矩陣是數的陣列,橫排為行,豎排為列,行數與列數相同稱為 方陣 (類比正方形)

以及如下圖X,Y所示的 行向量和列向量

可以定義一個 m行n列的向量,第 i 行 j 列的元素用 aij 表示,

單位矩陣

單位矩陣是一個特殊的矩陣,矩陣的斜對角線元素(aii)都是1,其他元素都是0

矩陣的運算

矩陣比較、和差常數積

A和B相等的含義是兩個矩陣對應的元素包括行數列數完全相等

兩個矩陣的和、差、常數倍都符合四則運算,和與差都是相同位置的元素直接進行加減,常數倍的乘法直接乘到對應的元素中去,如下:

矩陣乘積(重點)

向量A的i行 看作行向量, 向量B的j列 看作列向量, 其內積 作為結果的 i行j列 的元素

比如,兩個向量乘積計算過程如下:

哈達瑪積

Hadamard積適用於兩個相同形狀的矩陣,符號的含義是相同行數相同列數的數相乘,作為新矩陣對應函數和列數的值

下圖表現了哈達瑪積的計算過程,很直觀

轉置矩陣

轉置矩陣是將矩陣A的i行j列的元素轉換為新矩陣的j行i列,轉置矩陣在原矩陣左上角加上一個小t表示

總結

本片博客主要介紹向量和矩陣的基礎知識,其中多維向量內積與神經單元加權輸入的關係(w = (w1, w2, w3, w4, …),b = (x1, x2, x3, x4, …),則 z = w*x + b)以及矩陣的乘積計算(i行j列 = A的i行向量與B的j列向量內積)是重點。

文章來源: https://twgreatdaily.com/zh/Z7sjkHABjYh_GJGVJpUM.html