小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

更好編程的 50 個(gè)數(shù)學(xué)概念 | 張量、標(biāo)量、向量和矩陣 (續(xù)篇)

 taotao_2016 2023-04-29 發(fā)布于遼寧

祝五一節(jié)日快樂(lè),辛苦在一線的勞動(dòng)者在一起!

今天的課程導(dǎo)入故事:小蘭有一天在朋友圈看見(jiàn)小黃的分享一張咖啡館的圖片和位置,就推斷出小黃的住址。
小黃有一天分享朋友圈自己家往東400米,再往北300米新開(kāi)的咖啡館;小蘭看到照片后,發(fā)現(xiàn)和自己家附近新開(kāi)的咖啡館看起來(lái)很像。小蘭思索片刻便迅速推算出小黃家的位置,請(qǐng)問(wèn)是怎么做到的?
圖片

坐標(biāo)變換問(wèn)題

1、先到咖啡廳,再向南300米,再向東400米;注意次序不能反。注意這是對(duì)人友好的思路 :-)
2、對(duì)機(jī)器友好的思路,換句話說(shuō)如何交給機(jī)器去解決這個(gè)問(wèn)題?

矢量計(jì)算模擬—機(jī)器只能按著算法理解和處理數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的數(shù)字。于是,小蘭換角度重新考慮:我的位置在 B,B是一維數(shù)組表示坐標(biāo);

因?yàn)椴恢佬↑S的家,不妨設(shè)小黃位置在Y點(diǎn)。小黃先沿著BY找到小黃家,再按著小黃在朋友圈分享的路線:向東400米,向北300米,到達(dá)咖啡館C:B -> Y ->C 

但小蘭直接從B -> C 一樣能走到咖啡館 C ,這里就有了??等式成立:

|BY| + |YC| = |BC|
圖片

想到一個(gè)事實(shí):

BY + YC = BC,那么矢量運(yùn)算等式左邊的YC移到右邊變換為:

BY = BC - YC

圖片

(左)小黃為坐標(biāo)原點(diǎn)看:小蘭位置在  [7, -1]

圖片

(右) 小蘭為坐標(biāo)原點(diǎn)看:小黃位置在  [-7, 1]

圖片

當(dāng)我們理解機(jī)器只能理解數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的數(shù)字,并按著算法理解和處理數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的數(shù)字。我們就明白為什么引入標(biāo)量、向量和點(diǎn)積等線性代數(shù)的概念。

例如,創(chuàng)建垃圾郵件檢測(cè)器,則首先必須將文本數(shù)據(jù)轉(zhuǎn)換為數(shù)字(通過(guò)單詞嵌入),將數(shù)據(jù)存儲(chǔ)在向量、矩陣和張量中。
兩個(gè)句子之間的余弦相似性 兩個(gè)句子之間的余弦相似性可以通過(guò)它們的向量表示法的點(diǎn)積來(lái)找到。有多種方法可以將句子/段落表示為向量。
similarity
= cos(a,b)
= dotproduct(a,b) / ( norm(a) * norm(b) )
= a.b / ||a|| * ||b||
這里有兩個(gè)非常短的文本可以比較:
Julie loves me more than Linda loves me

Jane likes me more than Julie loves me

我們想知道這些文本的相似程度,純粹從字?jǐn)?shù)上看(而忽略了字?jǐn)?shù)順序)。

我們首先列出兩篇文章中的單詞:

me Julie loves Linda than more likes Jane

現(xiàn)在我們計(jì)算這些詞在每個(gè)文本中出現(xiàn)的次數(shù):

 me     2   2
 Jane   0   1
Julie   1   1
Linda   1   0
likes   0   1
loves   2   1
 more   1   1
 than   1   1
對(duì)這兩個(gè)垂直向量的計(jì)數(shù)感興趣。
例如,每個(gè)文本中都有兩個(gè) '我 '的例子。我們將通過(guò)計(jì)算這兩個(gè)向量的一個(gè)函數(shù),即它們之間的角度的余弦,來(lái)決定這兩個(gè)文本之間的距離。

這兩個(gè)向量也是如此:

a: [2, 1, 0, 2, 0, 1, 1, 1]
b: [2, 1, 1, 1, 1, 0, 1, 1]
它們之間的角度的余弦約為0.822。

這些向量是8維的。使用余弦相似性的一個(gè)優(yōu)點(diǎn)顯然是,它將問(wèn)題轉(zhuǎn)化為可視化。在這種情況下,你可以把它看作是大約35度的角度,這與零或完全一致有一些 '距離'。

再例如色彩表示為 0 到 255 之間的值矩陣,表示每個(gè)像素的每種顏色的亮度??梢岳镁€性代數(shù)領(lǐng)域的工具和概念來(lái)操作這些向量、矩陣和張量。

第 2 個(gè)情景導(dǎo)入還是延續(xù)上篇??
更好編程的 50 個(gè)數(shù)學(xué)概念 | 張量、標(biāo)量、向量和矩陣

(數(shù)學(xué)求解不是討論的重點(diǎn))

Python 求 2D 平面空間的3個(gè)點(diǎn)所決定的三角形三邊之間的角度。矢量分析中的點(diǎn)積將用于計(jì)算3點(diǎn)之間的角度。多個(gè)維度數(shù)據(jù),如 1D、2D、3D 和更高維度,而不僅僅是 2D。但我用2D數(shù)據(jù)點(diǎn)解釋。

點(diǎn)積,可以用代數(shù)或幾何方式定義。幾何定義基于角度和距離,矢量的大小的概念。這兩個(gè)定義的等價(jià)性依賴(lài)于歐幾里得空間的笛卡爾坐標(biāo)系。

圖片
幾何定義:
同時(shí)具有大小和方向的幾何對(duì)象。矢量可以描繪成箭頭,大小是它的長(zhǎng)度,它的方向是箭頭指向的方向。
圖片
向量 a 的大小用 a 表示|a|
兩個(gè)歐幾里得向量 a 和 b 的點(diǎn)積由下式定義。其中 θ 是 a 和 b 之間的角度。
圖片

解釋向量vector的加和減:

圖片

使用Math庫(kù)的寫(xiě)法不是今天討論的重點(diǎn)。

因?yàn)閷?xiě)法1只照顧到我們熟知的數(shù)學(xué)思路,僅在最后一步調(diào)用對(duì)應(yīng)的python函數(shù)求解。換句話話說(shuō):寫(xiě)法1人理解起來(lái)比較容易,但在機(jī)器看來(lái)并不是它的菜。

import math
def getAngle(a, b, c):
    y_ca,x_ca = c[1] - a[1], c[0] - a[0]
    y_ba,x_ba = b[1] - a[1], b[0] - a[0]
    ang = math.degrees(math.atan2(y_ca,x_ca) - math.atan2(y_ba,x_ba))
    return ang + 360 if ang < 0 else ang

a,b,c = (0,0),(4,0),(4,3)
print(getAngle(a, b, c))
36.86989764584402

今天的重點(diǎn)是在??

第2種思路:Numpy
a  ?  b (點(diǎn)積) = (a 或 b 在b或a方向上的投影) × (b 或 a)
OA’ × OB = OA × OB ×COSθ
a  ?  b = |a| × |b|× COSθ
numpy.dot() #計(jì)算 a  ?  b = 9

numpy.linalg.norm() #|a| × |b|

導(dǎo)入上一篇的任務(wù)鏈接在此??,繼續(xù)深入求解斜拉的兩根繩索與水平呈的角度是多少?

上期課程直觀向量相加的概念:
圖片

OC = OA + OB #合力

圖片
圖片

代碼解釋?zhuān)?/span>

1、點(diǎn)積 運(yùn)算
numpy求點(diǎn)積:np.dot的函數(shù)
2、范式 運(yùn)算
numpy求范數(shù):np.linalg.norm
圖片

圖示的過(guò)程代碼實(shí)現(xiàn)如下:

import numpy as np
# c a = angle
#a,b,c = (0,0,0),(1,0,1),(1,1,1)
a,b,c = list(map(list,(a,b,c)))
a = np.array(a)
b = np.array(b)
c = np.array(c)

# O
ba = b - a
ca = c - a
print(ba,ca) #[ 0 -3] [ 4 -3]
cosine_angle = np.dot(ba, ca) / (np.linalg.norm(ba) * np.linalg.norm(ca))

angle = np.arccos(cosine_angle)

#a,b,c = (0,0),(0,3),(4,0)
print('c與b 的夾角',np.degrees(angle))
c與b 的夾角 36.86989764584401

如何推而廣之?

應(yīng)用場(chǎng)景-1.  四面體的鍵角
在四面體分子的幾何結(jié)構(gòu)中,一個(gè)中心原子位于中心位置,四個(gè)取代基位于四面體的四角。當(dāng)所有四個(gè)取代基都相同時(shí):
圖片
四面體的鍵角
鍵角為cos-1(-1?3)=109.4712206°≈109.5°
如甲烷CH4以及其較重的類(lèi)似物。甲烷和其他完全對(duì)稱(chēng)的四面體分子屬于點(diǎn)群Td,但大多數(shù)四面體分子的對(duì)稱(chēng)性較低。四面體的鍵角用點(diǎn)乘法計(jì)算對(duì)稱(chēng)四面體分子的鍵角。
對(duì)稱(chēng)的四面體分子如CH4的鍵角可以用兩個(gè)向量的點(diǎn)積來(lái)計(jì)算。如圖所示,分子可以被刻在一個(gè)立方體中,四價(jià)原子如位于立方體中心,也就是坐標(biāo)的原點(diǎn)O。

四個(gè)單價(jià)原子,如位于立方體的四個(gè)角A、B、C、D,選擇這些角時(shí),沒(méi)有兩個(gè)原子位于相鄰的角,

只由一條立方體邊連接。如果立方體的邊長(zhǎng)選擇為2個(gè)單位,那么兩個(gè)鍵OA和OB對(duì)應(yīng)于矢量:

a =  (1,-1,1)和

b =  (1,1,-1),而鍵角θ是這兩個(gè)矢量之間的角度。

這個(gè)角度可以通過(guò)這兩個(gè)矢量的點(diǎn)積來(lái)計(jì)算,定義為
a-b=||a||||b||cos θ
其中|a|表示矢量a的長(zhǎng)度。如圖所示,這里的點(diǎn)積為-1,每個(gè)矢量的長(zhǎng)度為√3,所以cos θ=-1/3,四面體的鍵角θ = arccos(-1/3) ? 109.47°
圖片
如何推而廣之?
(0,0,0),(1,-1,1),(1,1,-1)
import numpy as np
# c a = angle
a,b,c = (0,0,0),(1,-1,1),(1,1,-1)
a,b,c = list(map(list,(a,b,c)))
a = np.array(a)
b = np.array(b)
c = np.array(c)

# c 與 b 的夾角 b-a , c-a
ba = b - a
ca = c - a

cosine_angle = np.dot(ba, ca) / (np.linalg.norm(ba) * np.linalg.norm(ca))

angle = np.arccos(cosine_angle)
print('np-c與b 的夾角',np.degrees(angle)) #,math.cos()

c與b的夾角 109.47122063449069

立方體鍵角圖示

圖片

應(yīng)用場(chǎng)景-2. 圖論 (Path)

給出頂點(diǎn)集合{A,B,C,D)和有向邊集合(AB,AA,AC,AD,BA,BC,CC,DC)有多少條長(zhǎng)度為3的路徑?    
A.21
B.22
C.25    
D.26 
E.28

***原題沒(méi)有圖,給出參考:

圖片

圖論中兩個(gè)節(jié)點(diǎn)之間的長(zhǎng)度定義:

路徑長(zhǎng)度是兩個(gè)節(jié)點(diǎn)之間的最短路徑長(zhǎng)度,即路徑中的邊數(shù)。這需要用到廣度優(yōu)先搜索或深度優(yōu)先搜索算法來(lái)尋找最短路徑。

圖片

以上的證明并不復(fù)雜,大喵將在課堂上分享思路。

第 2 步 數(shù)學(xué)工具

線性代數(shù)中的一個(gè)基本運(yùn)算符。它被稱(chēng)為點(diǎn)積或兩個(gè)向量的內(nèi)積。你們中的大多數(shù)人已經(jīng)熟悉這個(gè)運(yùn)算符,實(shí)際上它很容易解釋。

圖片

兩個(gè)向量之間的點(diǎn)積可以解釋為向量 vec{v}上的向量 vec{w}的投影。然后,我們將投影向量 vec{w}的長(zhǎng)度乘以vec{v}的長(zhǎng)度。
圖片
然而,我們將提供一些額外的見(jiàn)解以及如何在 Python 中使用它的一些基本信息。
因此,根據(jù)兩個(gè)向量之間的角度,我們可以有以下情況。
例如,如果內(nèi)積為正,則兩個(gè)向量之間的角度小于銳角。
圖片
如果向量垂直,則內(nèi)積為零。這是一個(gè)重要的結(jié)論!
對(duì)于這樣的向量,我們說(shuō)它們是正交的。
圖片
如果向量產(chǎn)生鈍角,則內(nèi)積將為負(fù)數(shù)。
圖片

內(nèi)積還有一個(gè)技巧。內(nèi)積是一個(gè)交換向量運(yùn)算?;旧?,這意味著我們可以在vec{w}上投影vec{v},在這種情況下,我們將有一個(gè)投影 vec{v}的長(zhǎng)度乘以 vec{w}的長(zhǎng)度,因此我們將獲得相同的結(jié)果。

讓我們進(jìn)一步探討內(nèi)積的交換性質(zhì)。

如果 vec{v} 和 vec{w} 碰巧具有相同的長(zhǎng)度,我們可以利用對(duì)稱(chēng)性。好吧,我們可以看到 vec{w} 到 vec{v}上的投影長(zhǎng)度與投影到 vec{w}上的長(zhǎng)度相同。這樣,很明顯,兩種計(jì)算方法的內(nèi)積是相同的。

圖片
此外,我們可以假設(shè)其中一個(gè)向量,假設(shè)vec{v},比vec{w}長(zhǎng)3倍?,F(xiàn)在,我們看到我們不能有相同長(zhǎng)度的投影。
但是,我們可以將其解釋為 3 vec{v}向量的簡(jiǎn)單縮放vec{v}
圖片

線性代數(shù),對(duì)稱(chēng)線 讓我們回想一下,使用標(biāo)量縮放向量實(shí)際上是縮放其長(zhǎng)度。

因此,我們可以觀察到向量的大小與標(biāo)量縮放的 vec{w} 相同。

現(xiàn)在,我們有一個(gè)標(biāo)量乘以向量 vec{v},取 vec{w} 的內(nèi)積與將 3 乘以 vec{v} 和 vec{w}相同。這說(shuō)明內(nèi)積確實(shí)是一種交換運(yùn)算。

線性函數(shù)

現(xiàn)在,我們將再次討論線性函數(shù)。但是現(xiàn)在,我們將觀察輸入和輸出維度不同的函數(shù)。例如,我們有一個(gè) 2D 輸入向量,使用函數(shù) L 它將為 1D 輸出向量。

圖片
對(duì)于線性變換,以下屬性確實(shí)成立:
圖片
例如,一條帶有均勻分布的點(diǎn)的線將被映射到一條 1D 線。在這里,請(qǐng)注意,實(shí)際上是將坐標(biāo)為(x, y)的點(diǎn)映射到單個(gè)坐標(biāo)在某條線上 z重要的是,映射線上的點(diǎn)之間的距離是等距的。這是線性變換的屬性。
圖片
現(xiàn)在,觀察在vec{w}向量上應(yīng)用線性變換 [1 -2] 會(huì)發(fā)生什么?
它被映射,使其值為 -2, 轉(zhuǎn)換將 2D 空間映射到一條線的一維空間。變換顯示了如何映射單個(gè)基向量。
因此,-2 不改變 hat{i}向量(保持不變),但它會(huì)改變我們的 hat{j}向量。因此,使用任何向量都可以分解為基向量組合的想法,我們可以得到以下公式。
圖片

所有這些都可以在這個(gè)例子中澄清。你可以這樣想:如何將二維點(diǎn)投影到一條線上。

我們有一個(gè)從 0 到 hat{u}的向量。

此外,我們還有很多 2D 點(diǎn)。我們感興趣的是這些二維點(diǎn)(向量)將投影在一條線上的什么位置?

圖片
讓我們看看hat{i}向量將落在定義這條線的單位向量hat{u}上。如果我們使用所謂的對(duì)稱(chēng)線,我們將得出結(jié)論,u_{x}將是一個(gè)投影 hat{i}。這也是向量hat{u}的 x–坐標(biāo)。
圖片
同樣的情況也適用于向量hat{i}。它將被投影到一個(gè)長(zhǎng)度為u_{y}的向量。所以,什么將是一個(gè)具有兩個(gè)非零(x,y)坐標(biāo)的任意矢量的投影。
我們看到u_{x} 和 u_{y} 定義了我們的投影矩陣。它們將告訴我們基向量的著陸點(diǎn):u_{x}和 u_{y}
圖片

換句話說(shuō),如果我們用基向量表示我們的向量,我們會(huì)得到坐標(biāo)(x, y)

圖片

當(dāng)我們將這些坐標(biāo)分別與 u_{x} 和 u_{y} 相乘,然后將這兩個(gè)乘積相加,我們將得到一個(gè)位置,在這個(gè)位置上,我們的原始(x, y)矢量將落在一條由矢量 hat{u} 定義的直線上。這個(gè)位置,將是我們的新坐標(biāo),對(duì)于一個(gè)一維坐標(biāo)系來(lái)說(shuō)就是 hat{u}

此時(shí),大喵已顯得力不從心 ... 上視頻吧
請(qǐng)觀看3Blue1Brown視頻 

Dot product 點(diǎn)積

第 3 步 編程工具
NumPy 的線性代數(shù)模塊提供了多種方法將線性代數(shù)應(yīng)用于任何 numpy 數(shù)組。人們可以找到:
秩、行列式、跟蹤等的數(shù)組
矩陣的特征值
矩陣和向量積(點(diǎn)積、內(nèi)積、外積等) 矩陣冪
求解線性或張量方程等等!
線性代數(shù)是研究向量空間的數(shù)學(xué)分支。您將看到向量如何構(gòu)成向量空間以及線性代數(shù)如何將線性變換應(yīng)用于這些空間。
您還將學(xué)習(xí)線性方程組和矢量方程組之間的強(qiáng)大關(guān)系,這些關(guān)系與重要的數(shù)據(jù)科學(xué)概念,如最小二乘近似相關(guān)。
您最終將學(xué)習(xí)重要的矩陣分解方法:特征分解和奇異值分解 SVD,這對(duì)于理解主成分分析 PCA 等無(wú)監(jiān)督學(xué)習(xí)方法非常重要。

Brilliant.org在線課程

圖片

- 鞏固和復(fù)習(xí)練習(xí)

圖片
圖片

點(diǎn)積告訴我們實(shí)數(shù)向量有多接近,但正如我們?cè)诒菊轮锌吹降模泻芏嘞蛄靠臻g,我們目前對(duì)點(diǎn)積的定義是沒(méi)有意義的(例如,什么是矩陣的點(diǎn)積?) 為了解決這個(gè)問(wèn)題,我們擴(kuò)展到實(shí)向量空間的內(nèi)積,它本質(zhì)上是廣義的點(diǎn)積。

內(nèi)積的表示方法是 

正如我們馬上要看到的,正交向量在構(gòu)建基數(shù)時(shí)極為重要。回顧一下,對(duì)于實(shí)數(shù)向量來(lái)說(shuō),正交與垂直的意思是一樣的??紤]到這一點(diǎn),什么是兩個(gè)正交向量的點(diǎn)積?

圖片

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多