首页
/
每日頭條
/
圖文
/
矩陣算法與分析
矩陣算法與分析
更新时间:2024-10-05 07:20:57

前面已經提到了矩陣和向量的乘法運算,這裡再對矩陣相乘的概念進行重述。矩陣相乘是基本且常用的運算之一。這裡定義矩陣X和矩陣A相乘得到矩陣Y。在定義乘法運算的過程中,需要使X的列數與A的行數相等。将乘法運算寫為如下形式。

Y=AX或Y=A.X (1.17)

式(1.17)展示了兩種矩陣乘法的書寫習慣,前一種是線性代數裡常用的矩陣乘法書寫形式,後一種在張量分析中常用,代表向量的點乘運算。式(1.18)為寫1成分量的形式。

(1.18)

矩陣算法與分析(深度學習算法與實踐)1

這裡有兩點需要解釋,有時會用字母加下标的方式來表示矩陣元素。而矩陣相乘的過程中,在一部分文獻中會寫成約定求和的方式,即省略求和符号而用相同的指标/代表求和。對于矩陣的乘法來說,還有其他的乘法形式,如矩陣的哈達瑪積( Hadamard Product ) ,就是矩陣的對應元素相乘,其形式如下。

(1.19)

矩陣算法與分析(深度學習算法與實踐)2

這裡需要注意的是,式(1.19)中相同指标并不代表求和,而僅是元素相乘。與之相類似的是矩陣的加法運算,其代表着矩陣對應元素相加。

(1.20)

矩陣算法與分析(深度學習算法與實踐)3

矩陣運算本身也有着類似于數字運算的法則。

(1)分配率

A(B C)=AB AC

(2)結合律:

(AB)C=A(BC)

(3) 交換律:矩陣運算無交換律。

1 矩陣分塊運算和線性變換

回顧如下一種簡單的等式。

(1.21)

Y=ax b

這是一種簡單的表示形式,它代表x和y之間存在某種關系。如果将x與y看成二維空間中的坐标,那麼式(1.21)則代表了空間中的某一條直線。寫成矩陣的乘法與加法,則形式如下。

(1.22)

Y=AX B

式(1.22)實際上代表對矩陣X進行線性變換後得到Y的過程。因此矩陣的線性變換實際上就是對式(1.21)的擴展。這代表X與Y之間存在某種簡單的關系。取Y,X, B的某一列向量r,y,b,則公式如下。

(1.23)

y=Ax b

這代表着對向量 進行線性變換。在給出式(1.22)的過程中,我們需要解釋一個細節,就是矩陣的分塊運算。對于矩陣的乘法及加法運算,都可以分解為對子矩陣進行相乘運算。例如将式(1.22)中矩陣的每一列看作一個子矩陣(向量) ,那麼 可以寫成分塊形式。式(1.23)中X就來自于x1~xn。

(1.24)

X=[x1,...,xn]

将Y,B均寫成類似的形式,那麼X與A的乘法可以寫成如下形式。

(1.25)

矩陣算法與分析(深度學習算法與實踐)4

這就是矩陣的分塊運算。當然,分塊運算還有其他劃分形式,讀者可參考線性代數的相關内容。如果令y=0,那麼式(1.23)就變成了如下形式。

(1.26)

Ax=-6

式(1.26)是一個标準的線性方程組。從矩陣分塊運算的角度來看,将n個未知數的m組方程寫成了式(1.23)所示的緊湊形式。矩陣可以簡化公式的書寫。假設.4矩陣是m行n列的,則嚴格來說還需要Rank (A) =min(m, n)

(1) 如果m=n,那麼代表未知數個數與方程個數是相等的,這是一個适定方程。

(2)如果m<n,那麼代表未知數個數大于方程個數,這是一個欠定方程。

(3)如果m >n,那麼代表未知數個數小于方程個數,這是一個超定方程。

這就有了3種典型問題。對于适定問題,如果矩陣行列式不等于0,那麼方程有唯一解(空間中的一個點) ;對于欠定方程,方程具有無窮多個解(一個空間曲面) ;對于超定方程,僅有近似解。機器學習問題應當都是超定問題,也就是方程個數是多于未知數個數的。但是也有些情況例外,比如深度學習模型,未知數個數可能是大于方程個數的。

現在列舉一個簡單的例子。假設在二維空間中有(1.0, 1.1) (2.0, 1.9) (3.0,3.1) (4.0, 4.0)共4個點,求解這4個點所在的直線。如果直線方程為y=ax b ,那麼将4個數據點代入後會得到4個方程,而未知數有a.6兩個,因此這就是一個典型的超定問題。此時,對于a、6取得任何值都無法很好地描述通過4個點的直線。但若取a=1,b=0,此時雖然無法精确地描述z和y的關系,但是通過這種方式可以得到(1.0, 1.0),與數據點相比(1.0, 1.1)十分接近,因此得到了近似意義(最小二乘)上的解。這是一個非常典型的機器學習問題。從這個例子可以看到,實際上機器學習就是一個從數據中尋找規律的過程。而假設數據符合直線分布就是我們給定的模型,求解給定模型參數的過程稱為優化。這裡不需要讀者對機器學習問題進行更多的思考,我們在之後還會進行更詳細的闡釋。這裡隻是說明機器學習問題大部分情況下是一個超定問題,但由于可訓練參數(也就是未知數)較多,在訓練樣本(每個訓練數據都是一個方程)不足的情況下深度學習模型可能并非超定問題,此時會面臨過拟合風險,因此對于機器學習尤其是深度學習需要海量(數量遠超未知數的個數,未知數也就是可訓練參數的個數)的樣本才能學習到有價值的知識。

1.2矩陣分解

上面提到空間中某一坐标向量可以寫成多個向量相加的形式。

(1.27)

矩陣算法與分析(深度學習算法與實踐)5

對于一組不全為0的向量而言,如果其中的任意一個向量都不能由其他向量以式(1.27)的方式表示,那就代表這組向量線性無關或這組向量是線性獨立的。

線性獨立的概念很重要。如果幾個向量線性不獨立,即某個向量可以用其他向量表示,那麼這個向量就沒有存儲的必要。舉個簡單的例子。

(1.28)

矩陣算法與分析(深度學習算法與實踐)6

式(1.28)代表向量

矩陣算法與分析(深度學習算法與實踐)7

仍是線性相關的,也就是說,我們僅需存儲3個向量其中的兩個就可以恢複第3個向量。這種恢複是無損的,是信息壓縮最原始的思想。這裡加強約束,式(1.27)中等式右邊各個向量

矩陣算法與分析(深度學習算法與實踐)8

之間的關系如下。

(1.29)

矩陣算法與分析(深度學習算法與實踐)9

式(1.29)中描述的向量是互相正交的關系,并且是單位向量。

(1.30)

矩陣算法與分析(深度學習算法與實踐)10

單位向量:長度為1的向量。

向量正交:兩個向量内積為0。

坐标基向量是最簡單的單位向量。

因此,實際上式(1.27)就是對坐标向量進行的坐标基展開,這是在空間中所用到的概念。當然,并不是所有坐标基向量都是正交的,同樣也未必是單位向量。

對于一組矩陣的向量

矩陣算法與分析(深度學習算法與實踐)11

來說,其中的每個向量都可以用其他多個向量以加權求和的方式表示。

(1.31)

矩陣算法與分析(深度學習算法與實踐)12

其中,

矩陣算法與分析(深度學習算法與實踐)13

代表第j個單位向量的第i個元素。同樣地

矩陣算法與分析(深度學習算法與實踐)14

代表第k個向量的第i個元素。此時式(1.31)實際上可以表示為矩陣相乘的形式。

(1.32)

矩陣算法與分析(深度學習算法與實踐)15

式(1.32)中由向量

矩陣算法與分析(深度學習算法與實踐)16

組成的矩陣V可以分解為兩個矩陣A,E的乘積表示。如果m >k,也就是說,我們可以用少于m個數字來表示向量V,這是一個标準的數據壓縮過程。此時, A可以代表矩陣V的特征,如果要恢複V的話,還需要保存E。但是機器學習中通常隻需A即可,因為其帶有V的信息。

從前面的内容可以知道,式(1.32)是對矩陣進行的線性變換,這個變換的目的在于信息壓縮。這個過程中需要的是求解矩陣E。如果W=E^T,則信息壓縮方式可以寫為如下形式。

矩陣算法與分析(深度學習算法與實踐)17

W稱為變換矩陣。這是通過矩陣的線性變換來完成數據壓縮的過程。

1.3方陣的線性變換:特征值分解

特征值分解是最簡單的一種矩陣分解形式,也是矩陣算法中最常用的。特征值分解是對方陣而言的。下面将某個矩陣A分解成3個矩陣相乘的形式。

(1.34)

矩陣算法與分析(深度學習算法與實踐)18

這是一個矩陣相乘的逆運算,也是一個典型的欠定問題,因為矩陣分解并不是唯一的。為了解決這種非唯一性問題,我們對分解後的矩陣加入約束條件。第一個約束就是特征值分解中E矩陣是正交矩陣。

(1.35)

矩陣算法與分析(深度學習算法與實踐)19

此時,式(1.33)中的變換矩陣W即為E。另外一個約束就是對角矩陣A ,對角線上的元素稱為特征值。E中的向量則稱為特征向量。

對于特征值分解而言,其本身具有明确的幾何意義。如果将矩陣A當作1.1.2節中的仿射變換矩陣,那麼前面提到的坐标與矩陣.4相乘實際上代表了對空間的旋轉拉伸變換。由此仿射變換本身可以分解為旋轉與拉伸。因此式(1.34)中所得到的矩陣,E代表了對空間的旋轉變換, A則代表了對空間的拉伸變換。在此,以二維情況進行簡單闡述,如圖1.9所示。

矩陣算法與分析(深度學習算法與實踐)20

圖1.9 仿射變換圖示

1.4非方陣線性變換:奇異值分解

作為矩陣的分解算法,特征值分解最主要的缺陷在于它隻能應用于方陣。非方陣情況下的矩陣分解算法,比較有代表性的是奇異值分解(SVD)。

(1.36)

矩陣算法與分析(深度學習算法與實踐)21

SVD的求解過程可以用特征值分解進行,這就需要将矩陣轉換為方陣。

(1.37)

矩陣算法與分析(深度學習算法與實踐)22

對B進行特征值分解,利用對應元素相等可以得到如下關系。

(1.38)

矩陣算法與分析(深度學習算法與實踐)23

根據式(1.36)可以得到M的值如下。

(1.39)

矩陣算法與分析(深度學習算法與實踐)24

由此3個矩陣已經完全确定。因此,有人說矩陣的特征值分解是SVD的基礎。同時可以看到,矩陣A在變換為矩陣M的過程中,相當于對矩陣A進行一次線性變換。

1.5其他線性變換:字典學習

對于SVD分解而言,有一個非常大的問題就是約束過于嚴格,如矩陣與V為正交矩陣,這就導緻在計算的過程中,為了滿足分解條件,信息壓縮的質量可能會降低。因此,産生了另外一個更加寬泛的約束方式.

(1.40)

矩陣算法與分析(深度學習算法與實踐)25

假設條件N足夠稀疏,此時M就稱為字典。在這種情況下弱化了正交性假設,所得到的信息壓縮效果會更加出色。

本文節選自《深度學習算法與實踐》

矩陣算法與分析(深度學習算法與實踐)26

本書旨在為讀者建立完整的深度學習知識體系。全書内容包含3個部分,第一部分為與深度學習相關的數學基礎;第二部分為深度學習的算法基礎以及相關實現;第三部分為深度學習的實際應用。通過閱讀本書,讀者可加深對深度學習算法的理解,并将其應用到實際工作中。 本書适用于對深度學習感興趣并希望從事相關工作的讀者,也可作為高校相關專業的教學參考書。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
為什麼我的美團衆包沒有跑腿單
為什麼我的美團衆包沒有跑腿單
為什麼我的美團衆包沒有跑腿單?2月底的時候,“新冠”病毒在全國還在肆虐,預感到今年各行業都會受到打擊,經濟會受到影響,生活會難過一些,而且本身還負債不少再加上自己沒有什麼技術,認真想了想,想多找一份兼職,也隻有跑外賣、做跑腿的活了因為我本身...
2024-10-05
快手菜杏鮑菇黑椒牛柳
快手菜杏鮑菇黑椒牛柳
這個菜的熱量不高,高蛋白高纖維低碳水低脂肪,調味料隻有少量的油、鹽和黑胡椒,非常适合減脂增肌、三高人群。按以下材料備用,分量也比較大,女生一般一塊雞胸肉可以做兩份,男生可以根據喜愛加入蛋白、牛油果、水煮蝦等食材增加蛋白。墨西哥卷-軟餅以前在...
2024-10-05
豹紋裙遠古時代
豹紋裙遠古時代
當地時間2021年10月1日,巴黎,瑪雅-亨利現身街頭。當天,瑪雅-亨利一襲黃綠色紐扣群身姿傲人腳踩黑色長靴又美又飒。
2024-10-05
吊蘭怎麼養才能養得好
吊蘭怎麼養才能養得好
吊蘭是生活中常見的室内養殖植物,通常人們将它擺放在陽台邊養殖,具有一定的觀賞價值,不過想要知道吊蘭怎麼養才能更旺盛,可以按照着下面吊蘭的養殖方法來做,能夠讓它茁壯的成長,并且隻要養護的好,還能讓它生長得枝繁葉茂。本文由鮮花24小時全國優秀花...
2024-10-05
河裡發現大怪魚
河裡發現大怪魚
世界之大無奇不有!最近,一位釣友上傳了一張魚獲圖片,自稱是“蟒蛇魚”,頭長得像蛇一樣尖細,身體像泥鳅一樣滑滑的非常細長。這條魚是在廣西發現的,當地有很多山地,其中山坡有很多廢棄水庫。這位釣友在一座已經荒廢的水庫裡面釣起來一條這樣的怪魚。聽說...
2024-10-05
Copyright 2023-2024 - www.tftnews.com All Rights Reserved