<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          機器學習中的線性代數(shù)入門教程

          共 3303字,需瀏覽 7分鐘

           ·

          2021-08-20 03:08


          數(shù)據(jù)人才】公眾號,幫助數(shù)據(jù)人才找工作,數(shù)據(jù)公司招人才。

          本文經(jīng)機器之心授權(quán) 作者:Niklas Donges 參與:Tianci LIU、思源

          線性代數(shù)的概念對于理解機器學習背后的原理非常重要,尤其是在深度學習領(lǐng)域中。它可以幫助我們更好地理解算法內(nèi)部到底是怎么運行的,借此,我們就能夠更好的做出決策。所以,如果你真的希望了解機器學習具體算法,就不可避免需要精通這些線性代數(shù)的概念。這篇文章中,我們將向你介紹一些機器學習中涉及的關(guān)鍵線性代數(shù)知識。

          線性代數(shù)是一種連續(xù)形式的數(shù)學,被廣泛應用于理工類學科中;因為它可以幫助我們對自然現(xiàn)象建模,然后進行高效的計算。但是,由于線性代數(shù)是一種連續(xù)而非離散的數(shù)學,因此,很多計算機科學家都不太了解它。另外,線性代數(shù)還在幾乎所有的數(shù)學學科中都擁有著核心地位:例如幾何學和泛函分析。

          線性代數(shù)中的概念是理解機器學習理論所必需的基礎(chǔ)知識,尤其是對那些處理深度學習算法的人而言。在剛接觸機器學習時,你可以不需要掌握線性代數(shù)。但到了一定程度后,當你希望更好地理解不同機器學習算法運作原理時,線性代數(shù)就很有用了,它可以幫助你在開發(fā)機器學習系統(tǒng)時更好地做決策。

          在線性代數(shù)中,我們使用線性方程來表示數(shù)據(jù),并把它們寫成矩陣或向量的形式。因此,基本上你都是在與矩陣和向量打交道,而不是標量(我們會在文章的稍后部分介紹這些概念)。如果你能夠想到使用一個合適的庫,比如 NumPy,你就可以通過簡短的幾行代碼,輕松實現(xiàn)復雜的矩陣乘法。請注意,這篇文章忽略了那些對機器學習并不重要的線性代數(shù)概念。

          1數(shù)學對象

          標量

          標量就是一個簡單的數(shù),比如 24。

          向量

          向量是一個有序數(shù)組,能夠?qū)懗梢恍谢蛘咭涣械男问健O蛄恐话粋€索引,用來表示向量中的某個特定元素。比如 V_2 表示向量中的第二個元素,在上面淡黃色的圖中是-8。

          矩陣

          矩陣是一個有序的二維數(shù)組,有兩個索引。第一個索引表示行,第二個索引表示列。例如,M_23 表示的是第二行、第三列的元素,在上面淡黃色的圖中是 8。矩陣可以有多個行或者列,注意一個向量也是一個矩陣,但僅有一行或者一列。

          淡黃色圖中有一個矩陣的例子:一個 2×3 的矩陣 (行數(shù)×列數(shù))。下圖中是另一個矩陣和對應的表示形式。

          張量

          三維張量是按照一定規(guī)律排列在方格中的數(shù)組,其中一個變量數(shù)字表示軸。張量有三個索引,其中第一個索引表示行,第二個索引表示列,第三個索引表示軸。例如,V_232 指向第二行、第三列、第二軸的元素,在下圖右邊的張量中表示 5。

          張量是上面談到的概念中最常用的一個,因為張量是一個多維數(shù)組,同時可以是一個向量或者一個矩陣,具體取決于它的索引數(shù)量。例如,一階張量可以表示向量(1 個索引),二階張量可以表示矩陣(2 個索引),三階就是張量(3 個索引),更高階的稱為高階張量(超過 3 個索引)。

          2運算法則


          矩陣和標量的計算

          如果你在一個矩陣上加、減、乘、除一個標量,你所做的就是直接對矩陣的每個元素進行這些數(shù)學運算。下圖給出了矩陣數(shù)乘的一個很好的例子。

          矩陣和向量的運算

          對一個矩陣乘以一個向量,可以理解為對矩陣的每一行乘以向量的每一列,運算結(jié)果會是一個向量,它的行數(shù)和矩陣的行數(shù)一樣。下圖展示了這是如何計算的。

          為了更好地理解這個概念,我們詳細講解一下第二張圖中的計算步驟。為了得到結(jié)果向量中的第一個元素 16,選擇拿來和矩陣相乘的向量中的元素 1 和 5,把它們與矩陣第一行中的元素 1 和 3 相乘,像這樣:1*1 + 3*5 = 16。對矩陣第二行的元素進行相同的計算:4*1 + 0*5 = 4。同樣,再計算矩陣第三行的元素:2*1 + 1*5 = 7。

          這里還有另一個例子:

          在這里,我們給出一個備忘錄:

          矩陣間的加減法

          矩陣間的加減法非常簡單直接。這里要求,兩個矩陣需要維度相同,運算結(jié)果也會是一個相同維度的矩陣。你只需要將第一個矩陣中的每一個元素和第二個矩陣中對應位置的元素相加或者相減就可以了。如下圖所示: 

          矩陣間的乘法

          如果你知道如何計算矩陣和向量間的乘法,矩陣間的乘法就也簡單了。注意,只有當?shù)谝粋€矩陣的列數(shù)和第二個矩陣的行數(shù)相等時,才能把它們兩個乘起來。運算結(jié)果會是一個矩陣,行數(shù)和第一個矩陣的行數(shù)相等,列數(shù)和第二個矩陣的列數(shù)相等。計算方法如下:

          你只需要將第二個矩陣分成列向量,然后分別將第一個矩陣和每個列向量相乘。然后,將運算結(jié)果拼接成一個新的矩陣(不要把它們加起來!)。下圖逐步展示了計算過程:

          同樣,我們也給出一個備忘錄:

          3矩陣的乘法性質(zhì)

          矩陣乘法擁有一些性質(zhì),根據(jù)這些性質(zhì),我們可以將大量計算整合成一個矩陣乘法。在下面我們會依次討論這些性質(zhì)。為了便于理解,我們會先用標量來解釋這些性質(zhì),然后再使用矩陣形式。

          交換律

          數(shù)乘滿足交換律,但矩陣乘法并不滿足。這意味著,當我們在將兩個標量乘在一起的時候:7×3 和 3×7 的結(jié)果是一樣的,但當我們將兩個矩陣相乘起來的時候:A×B 并不等于 B×A。

          結(jié)合律

          數(shù)乘和矩陣乘法都滿足結(jié)合律。這意味著,數(shù)乘 3×(5×3)等于(3×5)×3,同時矩陣乘法 A×(B×C)等于(A×B)×C。

          分配律

          數(shù)乘和矩陣乘法都滿足分配律。這表示,數(shù)乘 3×(5+3)等于 3×5+3×3,而矩陣乘法 A×(B+C)等于 A×B +A×C。

          單位矩陣

          單位矩陣是一種特殊的矩陣,不過首先,我們需要定義什么是「單位」。數(shù)字 1 是一個「單位」,因為任何數(shù)乘以 1 都等于它自身。因此,任何矩陣乘以一個單位矩陣都應該等于它自己。例如,矩陣 A 乘以單位矩陣還等于矩陣 A。

          單位矩陣的主對角線元素都是 1,其余元素都是 0,你可以根據(jù)這個性質(zhì)得到一個單位矩陣。同時它也是一個「方陣」,這表示它的行數(shù)和列數(shù)是相等的。

          我我們之前說,矩陣乘法不滿足交換律,但這里有一個例外:將一個矩陣和一個單位矩陣相乘。因此,下式是成立的:A × I = I×A = A。

          矩陣的逆和轉(zhuǎn)置

          矩陣的逆和矩陣的轉(zhuǎn)置是兩種矩陣特有的性質(zhì)。同樣的,我們首先在實數(shù)上討論這些性質(zhì),然后再使用在矩陣中。

          1.逆運算

          首先,什么是逆(倒數(shù))? 一個數(shù)乘以它的逆(倒數(shù))等于 1。注意,任何非零的數(shù)都有倒數(shù)。如果將矩陣和它的逆矩陣相乘,結(jié)果就應該是單位矩陣。下面的例子展示了標量的逆(倒數(shù)):

          不過,并不是每個矩陣都有逆矩陣。如果一個矩陣是方陣,而且它可逆,就可以求出它的逆矩陣。很遺憾,討論什么矩陣可逆超出了這篇文章的范圍。

          我們?yōu)槭裁葱枰婢仃嚹兀窟@是因為我們不能計算用矩陣相除,并沒有「除以矩陣」的定義,但我們可以用一個矩陣乘以一個逆矩陣,來達到相同的目的。

          下圖展示了一個矩陣乘以它的逆矩陣,計算結(jié)果是一個 2×2 的單位矩陣。

          可以利用 NumPy 輕松計算出一個矩陣的逆矩陣(如果它可逆的話)。

          2.轉(zhuǎn)置

          最后,我們討論矩陣轉(zhuǎn)置的性質(zhì)。這基本上就是將一個矩陣沿著 45 度軸線鏡像翻轉(zhuǎn)。計算矩陣的轉(zhuǎn)置非常簡單,原始矩陣的第一列就是轉(zhuǎn)置后矩陣的第一行,第二列則變成了轉(zhuǎn)置后矩陣的第二行。一個 m×n 的矩陣僅僅是轉(zhuǎn)成了 n×m 的矩陣。同時,矩陣 A 的元素 A_ij 等于轉(zhuǎn)置后矩陣的元素 A_ji。下圖展示了矩陣的轉(zhuǎn)置:

          總結(jié)

          在這篇文章中,你接觸到了一些機器學習中使用到的線性代數(shù)概念。你學會如何對這些對象進行加、減、乘、「除」。另外,你還掌握了矩陣最重要的性質(zhì),以及它們?yōu)槭裁纯梢詭臀覀兊玫礁行У挠嬎恪T谶@些知識的基礎(chǔ)上,你還學習了逆矩陣和轉(zhuǎn)置矩陣的概念,以及可以如何使用它們。雖然機器學習中還有很多線性代數(shù)知識,但這篇文章提供了關(guān)于最核心的概念的一些適當介紹。

          原文地址:https://towardsdatascience.com/linear-algebra-for-deep-learning-f21d7e7d7f23



          點個在看你最好看

          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美特黄一级视频 | 国产精品伦理久久久久 | 国产高潮的视频网站在线观看 | 亚洲手机在线 | 北条麻妃三级片 |