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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

线性代数应该这样讲(二)

發布時間:2024/7/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性代数应该这样讲(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在《...(一)》中,小夕從映射的角度講解了矩陣及矩陣運算,這也是機器學習中看待矩陣的非常重要的視角。

?

另一方面說,矩陣當然也是用于存儲數據的數據結構,這也是最好理解的形式。另外還可以看做是一個線性方程組(課本上講爛了的開頭),甚至可以將其僅僅看做一般化的張量(tensor)中的一個普通切片(slice),或者說其中一層。所以矩陣代表什么含義,要在不同的場景中靈活對待,不要局限在一種視角哦。

繼續從映射的視角來看。

小夕說,不同的矩陣就代表著不同的映射,就像上一篇文章講的,就可以表示“將輸入的空間的第一個維度的坐標軸縮短為原來的一半,將第二個維度的坐標軸拉伸為原來的兩倍”。這就是這個矩陣的含義。

?

例如,輸入一個二維空間里的多個樣本點:

?

比如

?

此時的矩陣就是存儲數據的視角啦。這里的矩陣就是每一行就是空間中的一個樣本點,所以這個矩陣就代表二維空間里的3個樣本點。

?

所以將A中這個空間的三個樣本丟給W這個映射,就得到了三個樣本在新的空間的鏡像點(跟高一時學的集合的映射是一個概念):

?

?

看,是不是新得到的三個樣本的第一維都被壓縮成了原來的一半,而第二維被拉伸成了原來的兩倍呢~

?

而神經網絡中,每一層的輸出經過權重矩陣,映射到下一層的輸入的過程,就是上述這個過程哦(沒有理解的再看看這篇文章《神經網絡激活函數》)

好啦。從映射的視角接著走。那么既然矩陣是描述映射的,那么肯定會有更嚴謹,更直觀的形式去描述一個矩陣背后所暗示的映射規則。這個更直觀的形式是什么呢?

?

好,然后我們將映射更加夸張一下,我們來看映射。顯然,按照小夕之前的講解,這個映射就代表將第一維度壓縮為原來的0.99倍(幾乎沒有變化!),將第二維度拉伸為原來的100倍(顯然變化十分極其非常的大)。這個映射的作用對象很明顯:

?

1、第一維度坐標軸。怎么描述這個作用對象呢?回顧一下中學數學,在二維空間中,第一維度坐標軸不就是(x,0)嘛~既然是描述坐標軸,我們不妨用一個單位為1的向量表示x軸,即(1,0).

?

2、第二維度坐標軸。同樣的道理,在二維空間中,第二維度坐標軸就是y軸,表示為(0,1)

?

這個映射對每個作用對象的作用程度也很明顯不一樣:

?

1、對第一維度坐標軸的作用程度就很小,對它幾乎沒有改變(改變成了原來的0.99倍),所以我們直接用0.99來表示作用程度(顯然,越接近1表示作用程度越小)。

?

2、同樣,這個映射對第二維度的坐標軸作用程度非常大。所以用100來表示。

?

好啦~小夕用“作用對象”和“對某作用對象的作用程度”是不是就已經非常清晰的描述清楚了矩陣的映射規則呢~所以理論上說,這兩者應該完全等價才對~

?

學過線代的你有沒有靈光一現呢~

沒!錯!小夕這里講的“作用對象”就是大學課本講成一坨的“特征向量”(eigenvector)!小夕這里講的“對某作用對象的作用程度”就是課本里的“特征值”(eigenvalue)!因此,一個矩陣,或者說一個線性映射,完全可以用它的全部特征向量及其對應的特征值去描述!(當然嚴謹的說是方陣,先接著開車,下一篇文章再解釋細節)

而將矩陣分解為它的特征值與特征向量的過程被稱為特征分解”(Eigendecomposition),又稱"譜分解"(Spectral decomposition)。特征分解是眾多矩陣分解中的一種,因此當然原矩陣A會被分解成幾個目標矩陣啦~這里的目標矩陣當然就是兩個,一個由特征向量組成的,還有一個是由特征值組成的。

?

你可以試一下,將上面的兩個特征向量疊在一起(一列為一個特征向量):

?

然后每個特征向量對應的特征值依次放到一個對角矩陣的各位置上

?

然后由公式即可以恢復出原映射W。(注:是eVec的逆矩陣)

對于這個例子,一眼就能算出來肯定是對的~對于的證明,可以參考各種教材和博客,就不展開啦。(文章末尾有鏈接推薦)

有了對特征值和特征向量的這一層理解,我們當然很容易繼續聯想到:

?

當一個矩陣的特征值中包含0時,就表示要將一個“坐標軸”直接毀滅!(將一個坐標軸映射回原點。這個“坐標軸”就是這個0特征值所對應的特征向量(所描述的方向));

?

同理,負數特征值就表示將它所對應的特征向量所在的坐標軸反轉。因此,-1就表示將該坐標軸反轉,但是不拉伸也不壓縮。(-1,0)表示反轉且壓縮,(-∞,-1)表示反轉且拉伸。

?

這就是映射的視角下,矩陣的特征值與特征向量的含義。這也是升華對一些機器學習算法理解的必經之路。

?在數據存儲的視角下,矩陣的特征值與特征向量的含義更容易理解了,畢竟圖像就是最直觀的數據存儲的矩陣嘛~這方面的理解強烈推薦wiki,蒙娜麗莎的例子非常形象:

?

https://zh.wikipedia.org/wiki/%E7%89%B9%E5%BE%81%E5%80%BC%E5%92%8C%E7%89%B9%E5%BE%81%E5%90%91%E9%87%8F

?

當然需要翻墻。(都開始做機器學習了,翻墻這么簡單的事情就不用小夕教了吧。。。

想進一步加深對特征值與特征向量的理解的同學,尤其是想從數學形式上去理解的同學,更要看一下上面的Wiki啦~

如何將矩陣分解出它的特征值與對應的特征向量呢?

API小王子/小公主可以在matlab中直接調用

[eVecs,eVal] = eig(A)

得到矩陣A的特征向量和特征值。python中的numpy和scipy庫中應該也有相應的API。

如果有同學對特征值分解算法細節感興趣,小夕推薦從QR算法入手~如果覺得不過癮,可以繼續嘗試Hessenburg-QR算法,還不過癮就再加上shift操作~不過一般來說,做機器學習的話沒大有必要對這些算法花太多精力~

?

QR分解有個好玩的帖子,講的很詳細(雖然排版不忍直視):

http://blog.csdn.net/cinmyheart/article/details/44086369

另外,不知道大家對SVD的細節有沒有興趣呢?因為網上講SVD的帖子很多啦,有很多講的很好的,小夕也不知道有沒有必要再講一下了QAQ,丟個投票器吧。

?再丟個小狐貍

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的线性代数应该这样讲(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

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