0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

學(xué)習(xí)過(guò)程中需要必備的線性代數(shù)知識(shí)

電子工程師 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-10-04 09:02 ? 次閱讀

【導(dǎo)讀】線性代數(shù)是一種連續(xù)的、非離散的數(shù)學(xué)形式,許多計(jì)算機(jī)科學(xué)家對(duì)此缺乏應(yīng)用經(jīng)驗(yàn),掌握線性代數(shù)對(duì)理解深度學(xué)習(xí)算法至關(guān)重要。今天AI科技大本營(yíng)就為大家整理了學(xué)習(xí)過(guò)程中需要必備的線性代數(shù)知識(shí),并附上代碼實(shí)現(xiàn),幫助大家加深理解。

為什么數(shù)學(xué)是必要的?

線性代數(shù)、概率論和微積分都是機(jī)器學(xué)習(xí)的“語(yǔ)言”。學(xué)習(xí)這些科目將有助于深入了解底層的算法機(jī)制和開(kāi)發(fā)新的算法。從較低的層級(jí)來(lái)看,深度學(xué)習(xí)背后的一切都是以數(shù)學(xué)為基礎(chǔ)的。因此,理解基礎(chǔ)的線性代數(shù)對(duì)于探索深度學(xué)習(xí)和上手與深度學(xué)習(xí)相關(guān)的編程來(lái)說(shuō)是必要的。

深度學(xué)習(xí)中的核心數(shù)據(jù)結(jié)構(gòu)由標(biāo)量、向量、矩陣和張量組成。從編程的角度來(lái)說(shuō),我們只需運(yùn)用這些知識(shí)就能解決所有基本的線性代數(shù)問(wèn)題。

參考閱讀:

https://hadrienj.github.io/posts/Deep-Learning-Book-Series-2.1-Scalars-Vectors-Matrices-and-Tensors/

標(biāo)量

標(biāo)量?jī)H用于表達(dá)值的大小,也是零階張量的一個(gè)例子。符號(hào) x ∈ ? 表示標(biāo)量 x 屬于實(shí)數(shù)值數(shù)組“ ? ”。

在深度學(xué)習(xí)中我們比較關(guān)注以下幾個(gè)數(shù)集,?、?和?。? 表示正整數(shù)集(1,2,3,...)。 ? 表示整數(shù)集,它包含了正值、負(fù)值和零值。 ? 表示可以由兩個(gè)整數(shù)所構(gòu)成的分?jǐn)?shù)進(jìn)行表達(dá)的有理數(shù)數(shù)集。

Python 中內(nèi)置了少數(shù)幾種標(biāo)量類(lèi)型,如 int,float,complex,bytes,Unicode。而在 Python 庫(kù) NumPy中,有 24 種新的基本數(shù)據(jù)類(lèi)型來(lái)描述不同類(lèi)型的標(biāo)量。

參考閱讀:

https://docs.scipy.org/doc/numpy-1.14.0/reference/arrays.scalars.html

如何在Python中定義和運(yùn)算標(biāo)量?

以下代碼片段解釋了基礎(chǔ)的標(biāo)量(Scalars)運(yùn)算。

參考閱讀:

https://gist.github.com/vihar/fbd3406bd9ba2402465fb1c8f3d8b3a6#file-scalars-py

返回如下:

以下代碼片段用于檢驗(yàn)所給的變量類(lèi)型是否為標(biāo)量。

參考閱讀:

https://gist.github.com/vihar/b9ef648d47c1cb3db977f13fd3071dc6#file-is_scalar-py

返回如下:

向量

向量是由多個(gè)單個(gè)數(shù)字組成的有序數(shù)組,也是一階張量的一個(gè)例子。向量是向量空間中的片段。向量空間則可以被認(rèn)為是在特定長(zhǎng)度(或維度)中所有可能存在的向量集合。我們通常說(shuō)的現(xiàn)實(shí)世界中的三維空間,在數(shù)學(xué)里可以用向量空間表達(dá)為 ? ^ 3。

為了清晰明確地標(biāo)示向量中的必要成分,向量中的第 i 個(gè)標(biāo)量元素被記做 x[i] 。

在深度學(xué)習(xí)中,向量通常表示特征向量,它的原始成分則表示特定特征的相關(guān)程度。這些元素可以包括如二維圖像中一組像素的強(qiáng)度的相關(guān)重要性,或是金融工具的橫截面的歷史價(jià)格值。

如何在 Python 中定義和運(yùn)算向量?

參考閱讀:

https://gist.github.com/vihar/7ede36aa2f5ba5e7f70960225a2d351e#file-vectors-py

返回如下:

矩陣

矩陣是由數(shù)字構(gòu)成的矩形陣列,是二階張量的一個(gè)例子。若 m 和 n 為正整數(shù)( m,n ∈ N ),則 m × n的矩陣中包含 m * n 個(gè)元素,由m 行和 n 列構(gòu)成。

完整的 m × n 矩陣可寫(xiě)做:

我們通常會(huì)將上面的矩陣縮寫(xiě)為以下的表達(dá)式:

在 Python 里,我們會(huì)使用 numpy 庫(kù)來(lái)幫助我們創(chuàng)建 n 維的數(shù)組,這基本上可以被認(rèn)作為矩陣。我們將列表傳入名為 matrix 方法來(lái)定義一個(gè)矩陣。

如何在 Python 中定義和運(yùn)算矩陣?

▌矩陣加法

矩陣可以與標(biāo)量、向量或其他的矩陣進(jìn)行相加。每一種加法都有一個(gè)精確的定義。這些技巧在機(jī)習(xí)和深度學(xué)習(xí)有著非常廣泛而頻繁的使用,所以它們值得你去熟悉。

參考閱讀:

https://gist.github.com/vihar/1bdc39d126b4772f5a8e9d0b5185625f#file-matrix_addition-py

▌矩陣與矩陣的加法

C = A + B( A 和 B 的形狀應(yīng)當(dāng)一致)

方法 shape 能夠返回矩陣的形狀,方法 add 會(huì)將傳入的兩個(gè)作為參數(shù)的矩陣相加,并返回相加的總和。若兩個(gè)作為參數(shù)的矩陣的形狀不一致,該方法則會(huì)提示存在“不能相加”的錯(cuò)誤。

參考閱讀:

https://gist.github.com/vihar/b25716665d72d5e6b50c9149718df076#file-m_m_addition-py

▌矩陣與標(biāo)量的加法

將給定矩陣中的各個(gè)元素都與給定的標(biāo)量進(jìn)行相加

參考閱讀:

https://gist.github.com/vihar/ba689ec9a07b1c50f69269454373359a#file-matrix_s_addition-py

▌矩陣與標(biāo)量的乘法

將給定矩陣中的各個(gè)元素都與給定的標(biāo)量進(jìn)行相乘

參考閱讀:

https://gist.github.com/vihar/5dcc0beeb7e48f0f271a75108401d34c#file-m_s_multiplication-py

▌矩陣之間的乘法

形狀為 m x n 的矩陣 A 與形狀為 n x p 的矩陣 B 相乘則會(huì)得到 形狀為 m x p 的矩陣 C

參考閱讀:

https://hadrienj.github.io/posts/Deep-Learning-Book-Series-2.2-Multiplying-Matrices-and-Vectors/

參考閱讀:

https://gist.github.com/vihar/1510e248a117f0af6a3843a4307de7b2#file-matrix_mul-py

▌矩陣的轉(zhuǎn)置

矩陣的轉(zhuǎn)置可以使一個(gè)行向量變成一個(gè)列向量,或反方向操作亦成立作亦成立:

A = [aij]m x n

AT = [aji]n × m

參考閱讀:

https://gist.github.com/vihar/3f2091377b3a1f36c402a203f25ffe33#file-martix_transpose-py

張量

籠統(tǒng)的來(lái)講,張量包含了標(biāo)量,向量,矩陣。有些時(shí)候,例如在物理及機(jī)器學(xué)習(xí)中,使用超過(guò)二階的張量是非常必要的。

參考閱讀:

https://refactored.ai/track/python-for-machine-learning/courses/linear-algebra.ipynb

我們通常不會(huì)將矩陣進(jìn)行嵌套來(lái)表示張量,而是會(huì)使用像 tensoTflow 或者 PyTorch 這樣的 Python 庫(kù)來(lái)對(duì)張量進(jìn)行表示張量 PyTorche 中定義一個(gè)簡(jiǎn)單的張量

參考閱讀:

https://gist.github.com/vihar/eb78a6171de9740b128cbff21fc0b6ea#file-tensors-py

一些在 Python 中其他的張量的運(yùn)算操作

src:

https://gist.github.com/vihar/7b03ca54e4fe811e1053e09bdc1278b5#file-tensor_operations-py

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131841
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84072
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5422

    瀏覽量

    120588

原文標(biāo)題:深度學(xué)習(xí)必備數(shù)學(xué)知識(shí)之線性代數(shù)篇(附代碼實(shí)現(xiàn))

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    線性代數(shù)要和科學(xué)計(jì)算結(jié)成好伙伴(稿)

    在科學(xué)研究,逐漸發(fā)現(xiàn)線性代數(shù)用的越來(lái)越多,在老師的博客里發(fā)現(xiàn)了這篇文章,覺(jué)得很不錯(cuò),因此放在這里,希望大家能有所收獲。在此,也貼出我們矩陣?yán)碚摾蠋煹牟┛偷刂穐ttp
    發(fā)表于 10-29 22:03

    labview線性代數(shù)求解輸入控件如何輸入未知變量

    labview線性代數(shù)求解輸入控件如何輸入未知變量
    發(fā)表于 04-07 09:11

    線性代數(shù)超強(qiáng)總結(jié)

    線性代數(shù)超強(qiáng)總結(jié)
    發(fā)表于 05-26 07:26

    程序世界:線性代數(shù)是一種特定語(yǔ)言

    就明顯復(fù)雜了,而且還要分很多種情況去分別討論。相反,如果我們用線性代數(shù)知識(shí)來(lái)解決這個(gè)問(wèn)題就非常輕松。在線性代數(shù)兩個(gè)向量a,b的叉積(Cross Product)是一個(gè)向量,其方向與a
    發(fā)表于 04-22 06:30

    線性代數(shù)實(shí)踐及MATLAB入門(mén)》第二版《線性代數(shù)實(shí)踐》課件

    線性代數(shù)實(shí)踐及MATLAB入門(mén)》第二版《線性代數(shù)實(shí)踐》課件:第六章 用行階梯法解方程組第7章  矩陣運(yùn)算法解方程第十章  后續(xù)課矩陣建模舉例第二篇  線性代數(shù)實(shí)
    發(fā)表于 10-24 08:49 ?0次下載

    對(duì)線性代數(shù)課程大綱的建議

    對(duì)線性代數(shù)課程大綱的建議 致基礎(chǔ)數(shù)學(xué)分教指委一.問(wèn)題的提出:現(xiàn)在的“線性代數(shù)”大綱不能滿足后續(xù)課的要求。為后續(xù)課程打好基礎(chǔ),應(yīng)該成為任何
    發(fā)表于 05-26 16:59 ?5次下載

    Matlab線性代數(shù)實(shí)驗(yàn)

    Matlab線性代數(shù)實(shí)驗(yàn)8.1 實(shí)驗(yàn)(Ⅰ):用Matlab學(xué)線性代數(shù)8.1.1實(shí)驗(yàn)與觀察:向量組的線性關(guān)系和解線性方程組1.  用線性
    發(fā)表于 10-17 00:36 ?1996次閱讀

    Linear_Algebra_線性代數(shù)(美版教材--習(xí)題答案)

    英文線性代數(shù)電子書(shū)
    發(fā)表于 09-04 10:42 ?0次下載

    工程線性代數(shù)matlab版

    MATLAB,工程線性代數(shù)matlab版。
    發(fā)表于 12-21 14:41 ?0次下載

    線性代數(shù)相關(guān)的基本知識(shí)

    線性代數(shù)包含了關(guān)于矩陣的所有相關(guān)的基本知識(shí),可以快速學(xué)習(xí),適合自學(xué)。
    發(fā)表于 12-22 17:58 ?0次下載

    算法大全__Matlab在線性代數(shù)的應(yīng)用

    算法大全__Matlab在線性代數(shù)的應(yīng)用。
    發(fā)表于 01-14 17:56 ?0次下載

    線性代數(shù)教材(同濟(jì)四版)

    線性代數(shù)教材(同濟(jì)四版),有需要的下來(lái)看看
    發(fā)表于 03-22 11:13 ?0次下載

    機(jī)器學(xué)習(xí)線性代數(shù)基礎(chǔ)

    機(jī)器學(xué)習(xí)需要的一些線性代數(shù)知識(shí)
    發(fā)表于 09-04 10:08 ?0次下載

    線性代數(shù)是什么?存在的意義是什么?

    在大學(xué)數(shù)學(xué)學(xué)科,線性代數(shù)是最為抽象的一門(mén)課,從初等數(shù)學(xué)到線性代數(shù)的思維跨度比微積分和概率統(tǒng)計(jì)要大得多。
    的頭像 發(fā)表于 08-19 10:24 ?29.5w次閱讀
    <b class='flag-5'>線性代數(shù)</b>是什么?存在的意義是什么?

    線性代數(shù)學(xué)習(xí)輔導(dǎo)與習(xí)題全解第六版下載

    線性代數(shù)學(xué)習(xí)輔導(dǎo)與習(xí)題全解第六版下載
    發(fā)表于 03-27 09:28 ?0次下載
    <b class='flag-5'>線性代數(shù)學(xué)習(xí)</b>輔導(dǎo)與習(xí)題全解第六版下載