日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

machit r语言_机器学习应该准备哪些数学预备知识?

發布時間:2025/3/13 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 machit r语言_机器学习应该准备哪些数学预备知识? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果想理解機器學習理論,特別是深度學習,掌握線性代數中的概念知識非常重要。有了牢固的數學基礎,能讓你更好更直觀的理解算法背后的原理。所以如果想在機器學習領域有所建樹,學習數學知識是躲不掉的。機器學習專家 Niklas Donges 特地為大家整理出了機器學習領域用到的最重要的線性代數概念,集智分享過來。

引言

線性代數是我們理解機器學習背后原理的重要基礎知識,尤其是使用深度學習算法時。在實踐機器學習項目過程中,熟悉相關的線性代數知識會幫你更好的理解算法是如何工作的,從而幫你做出更好的決定。在線性代數中,數據通過線性等式來表示,線性等式又表示為矩陣和向量的形式。所以,你更多的是跟矩陣和向量打交道,而不是標量。一旦獲取了合適的程序庫,比如 Numpy,你就能很容易地執行復雜的矩陣運算,只需幾行代碼。

注:本文忽略了哪些對機器學習不重要的線性代數概念。

數學對象

標量

標量就是一個單獨的數字,比如24。

向量

向量是一個有序的數字數組,可以是一行,也可以是一列。一個向量只有一個索引,可以指向向量內的某個具體值。例如,V2表示向量內的第二個值,在上圖中就是-8。

矩陣

矩陣是一個有序的2D數字數組,有兩個索引。第一個索引指向矩陣中的行,第二個索引指向矩陣中的列。例如,M23表示位于第2行、第3列的值,在上面第一張圖中就是8。矩陣可以有多個行和列值。注意,向量也是矩陣的一種,只是只有一行或一列。

上面第一張圖中所示的矩陣,同時也是一個2*3維的矩陣(行數x列數)。關于這一點,下面是另一個矩陣示例:

張量

張量也是一個由數字組成的數組,排列為一個有規則的網格,有數量不定的軸(axis)。張量有3個索引,第一個指向張量的行,第二個指向列,第三個指向軸。比如,T232指向張量的第2列、第3行和第2軸,在下圖右側的張量中就表示0這個值。

在上面這些概念中,張量是最大的概念,因為張量是一個多維數組,根據它所擁有的索引數,它還可以是向量或矩陣。比如,一個一階張量就是一個向量(只有1個索引);一個二階張量就是一個矩陣(有2個索引);三階張量(3個索引)或更高階的張量就被稱為高階張量(有3個以上的索引)。

我們以一張圖表示這4個概念:

關于這幾個概念,集智在此前的回答中曾簡單介紹過:

計算規則

矩陣-標量運算

如果你將一個標量和一個矩陣進行加減乘除運算,你是在和矩陣中的每個元素進行運算。下面這張圖很好地演示了兩者的相乘運算:

矩陣-向量相乘

將一個矩陣乘以一個向量,可以看作將矩陣的每一行乘以向量的每一列。計算結果會是一個和矩陣有相同行數的向量。下圖展示了計算過程:

為了幫大家更好地理解這個概念,我們詳細解讀第二張圖的計算。

要想得到結果向量(16)的第一個值,我們取用該向量中需要和矩陣(1和5)相乘的值,將它們和矩陣(1和3)的第一行的數字相乘。過程會如下所示:

1*1 + 3*5 = 16

我們對矩陣第二行中的值執行同樣的操作:

4*1 + 0*5 = 4

然后是第三行:

2*1 + 1*5 = 7

這里是另一個例子:

可以將其總結為一張速查表:

矩陣-矩陣相加和相減

矩陣之間加減比較簡單直觀,不過要求矩陣有相同的維度,計算結果是一個有相同維度的矩陣。只需將第一個矩陣的每個值和第二個矩陣中對應的值相加減即可,如下所示:

矩陣-矩陣相乘

如果你掌握了讓矩陣和向量相乘,那么兩個矩陣相乘就不是很難了。注意,如果第一個矩陣的列數和第二個矩陣的行數相等,你只能將矩陣相乘。其結果也會是一個矩陣,行數和第一個矩陣的行數相同,列數和第二個矩陣的列數相同。工作方式如下:

我們就是將第二個矩陣拆分成了幾個列向量,并將每個向量分別和第一個矩陣相乘。然后將結果放在新矩陣中(不把它們相加!)。過程如下圖所示:

這里我們同樣把這個運算進行總結:

矩陣乘法的特點

矩陣乘法有幾個特點,我們下面逐個討論它們,首先借助標量解釋它們的概念,然后再用矩陣解釋它們,這樣能讓你更好地理解整個過程。

不滿足乘法交換律

標量乘法是可交換的,但矩陣乘法不可以。意思就是說,我們讓兩個標量相乘時,比如7*3,它和3*7是一樣的。但是如果我們將一個矩陣乘以另一個矩陣,比如A*B,它和B*A是不一樣的。

滿足乘法結合律

標量乘法和矩陣乘法都滿足乘法結合律。比如標量相乘3(5*3)等于(3*5)3,矩陣相乘A(B*C)等于(A*B)C。

滿足乘法分配律

標量乘法和矩陣乘法都滿足乘法分配律,比如標量相乘3(5 + 3)等于3*5 + 3*3,矩陣相乘A(B+C)等于A*B + A*C。

單位矩陣

單位矩陣(identify matrix)是一種特別的矩陣,但是首先我們需要定義什么是單位(identity)。

數字1是一個單位,因為不管什么乘以1都等于它自己。所以每個矩陣乘以一個單位矩陣都等于它自己。例如,矩陣A乘以它的單位矩陣,結果還是等于A。

你可以這么理解單位矩陣,它的對角線上的值都是1,其它值則是0。它同時還是個“方陣”,意思是它的行數等于列數。

我們前面說過,矩陣乘法是不滿足交換律的,但是也有一個例外情況,即我們將一個矩陣乘以一個單位矩陣時。所以,這種情況下,以下等式是成立的:

A*I = I*A = A

矩陣倒式和矩陣轉置

矩陣倒式(Matrix inverse)與矩陣轉置(Matrix transpose)是兩個很特別的矩陣特點。我們還是先討論兩者和數字是如何相關聯的,然后再說說它們和矩陣的關系。

矩陣倒式

首先,什么是倒式?一個數字乘以它自己的倒式等于1。注意,除了0以外的每個數字都有倒式。如果你將一個矩陣乘以它的倒式,結果就是它的單位矩陣。下面的例子展示了標量的倒式:

但并非每個矩陣都有倒式。如果一個矩陣是一個“方陣”且有倒式,就能計算它的倒式。哪些矩陣有倒式暫不在本文討論范圍內。

我們為何需要倒式?因為我們無法除以矩陣。并不存在矩陣相除的概念,但是我們可以將一個矩陣乘以倒式,其結果本質上是一樣的。

下圖展示了一個矩陣乘以其倒式,結果會是一個2*2的單位矩陣。

矩陣轉置

最后,我們談談矩陣轉置。它基本上就是一個矩陣的鏡像,有一個45度的軸。獲得一個矩陣的轉置還是比較簡單的。矩陣的第一列就是矩陣轉置的第一行,第二列就是轉置的第二行,以此類推。一個m*n矩陣經過轉置后就是一個n*m矩陣。另外,矩陣A的Aij元素等于Aji(轉置)元素。如下圖所示:

總結

本文我們講解了應用于機器學習中的重要的線性代數概念,以及這些數學對象的加減乘除運算。另外,我們還討論了矩陣乘法的幾點特性,能讓我們更高效的計算。最后我們談到了矩陣倒式和矩陣轉換。當然,應用在機器學習中的線性代數知識不止如此,本文只是幫大家入門理解其中一些最重要的概念。

后面我們會分享面向機器學習的數學學習建議,歡迎關注我們。

可能還對你有用:深度學習所需的線性代數 - 集智課堂?jizhi.im概率論與數理統計 - 集智課堂?jizhi.im

總結

以上是生活随笔為你收集整理的machit r语言_机器学习应该准备哪些数学预备知识?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。