摘要:關(guān)于矩陣和張量的區(qū)別有些人可能不太清楚苛让,看了這篇文章相信你會(huì)很明白了
這個(gè)問(wèn)題有一個(gè)簡(jiǎn)短的答案火惊,讓我們從那里開始吧液斜。然后累贤,我們可以查看一個(gè)應(yīng)用程序以獲得更深入的了解。
矩陣是由括號(hào)括起的n×m(例如少漆,3×3)個(gè)數(shù)字的網(wǎng)格臼膏。我們可以加上和減去相同大小的矩陣,只要大小兼容((n×m)×(m×p)= n×p)示损,就將一個(gè)矩陣與另一個(gè)矩陣相乘渗磅,以及可以將整個(gè)矩陣乘以常數(shù)。向量是一個(gè)只有一行或一列的矩陣(但見(jiàn)下文)。因此始鱼,我們可以對(duì)任何矩陣進(jìn)行一系列數(shù)學(xué)運(yùn)算仔掸。
不過(guò),基本的思想是医清,矩陣只是一個(gè)二維的數(shù)字網(wǎng)格起暮。
張量通常被認(rèn)為是一個(gè)廣義矩陣。也就是說(shuō)会烙,它可以是1-D矩陣(一個(gè)向量實(shí)際上就是一個(gè)張量)负懦,3-D矩陣(類似于一個(gè)數(shù)字的立方),甚至是0-D矩陣(單個(gè)數(shù)字)柏腻,或者一個(gè)更難形象化的高維結(jié)構(gòu)纸厉。張量的維數(shù)叫做它的秩。
但是這個(gè)描述忽略了張量最重要的性質(zhì)!
張量是一個(gè)數(shù)學(xué)實(shí)體葫盼,它存在于一個(gè)結(jié)構(gòu)中并與其他數(shù)學(xué)實(shí)體相互作用。如果以常規(guī)方式轉(zhuǎn)換結(jié)構(gòu)中的其他實(shí)體村斟,那么張量必須服從一個(gè)相關(guān)的變換規(guī)則贫导。
張量的這種“動(dòng)態(tài)”特性是將其與單純矩陣區(qū)分開來(lái)的關(guān)鍵。它是一個(gè)團(tuán)隊(duì)成員蟆盹,當(dāng)一個(gè)影響到所有成員的轉(zhuǎn)換被引入時(shí)孩灯,它的數(shù)值會(huì)隨著隊(duì)友的數(shù)值而變化。
任何秩-2張量都可以表示為一個(gè)矩陣逾滥,但并不是每個(gè)矩陣都是秩-2張量峰档。張量矩陣表示的數(shù)值取決于整個(gè)系統(tǒng)應(yīng)用了什么變換規(guī)則。
對(duì)于您的目的寨昙,這個(gè)答案可能已經(jīng)足夠了讥巡,但是我們可以通過(guò)一個(gè)小例子來(lái)說(shuō)明它是如何工作的。這個(gè)問(wèn)題是在一個(gè)深度學(xué)習(xí)研討會(huì)上提出的舔哪,所以讓我們看一下該領(lǐng)域的一個(gè)簡(jiǎn)單例子欢顷。
假設(shè)我在神經(jīng)網(wǎng)絡(luò)中有一個(gè)隱藏的3個(gè)節(jié)點(diǎn)層。數(shù)據(jù)流入它們捉蚤,通過(guò)它們的ReLU函數(shù)抬驴,然后彈出一些值。對(duì)于確定性缆巧,我們分別得到2.5,4和1.2布持。 (別擔(dān)心,圖表即將出現(xiàn)陕悬。)我們可以將這些節(jié)點(diǎn)的輸出表示為向量题暖,
假設(shè)有另外一層3個(gè)節(jié)點(diǎn)。第一層的3個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)都有一個(gè)權(quán)重,該權(quán)重與其對(duì)接下來(lái)3個(gè)節(jié)點(diǎn)的輸入相關(guān)聯(lián)芙委。那么逞敷,將這些權(quán)重寫為3×3矩陣的條目將是非常方便的。假設(shè)我們已經(jīng)對(duì)網(wǎng)絡(luò)進(jìn)行了多次更新灌侣,并得到了權(quán)重(本例中半隨機(jī)選擇)推捐。
在這里,一行的權(quán)值都到下一層的同一個(gè)節(jié)點(diǎn)侧啼,而某一列的權(quán)值都來(lái)自第一層的同一個(gè)節(jié)點(diǎn)牛柒。例如,輸入節(jié)點(diǎn)1對(duì)輸出節(jié)點(diǎn)3的權(quán)值是0.2(第3行痊乾,第1列)皮壁。 我們可以通過(guò)將權(quán)重矩陣乘以輸入向量來(lái)計(jì)算饋入下一層節(jié)點(diǎn)的總值,
不喜歡矩陣?這里有一個(gè)圖哪审。數(shù)據(jù)從左到右流動(dòng)蛾魄。
太棒了!到目前為止,我們所看到的只是矩陣和向量的一些簡(jiǎn)單操作湿滓。
但是滴须,假設(shè)我想對(duì)每個(gè)神經(jīng)元進(jìn)行干預(yù)并使用自定義激活函數(shù)。一種簡(jiǎn)單的方法是從第一層重新縮放每個(gè)ReLU函數(shù)叽奥。在本例中扔水,假設(shè)我將第一個(gè)節(jié)點(diǎn)向上擴(kuò)展2倍,保留第二個(gè)節(jié)點(diǎn)朝氓,將第三個(gè)節(jié)點(diǎn)向下擴(kuò)展1/5魔市。這將改變這些函數(shù)的圖形如下圖所示:
這種修改的效果是將第一層生成的值分別乘以2、1和1/5赵哲。等于L1乘以一個(gè)矩陣A待德,
現(xiàn)在,如果這些新值通過(guò)原來(lái)的權(quán)值網(wǎng)絡(luò)被輸入枫夺,我們得到完全不同的輸出值磅网,如圖所示:
如果神經(jīng)網(wǎng)絡(luò)之前運(yùn)作正常,我們現(xiàn)在就把它破壞了筷屡。我們必須重新進(jìn)行訓(xùn)練以恢復(fù)正確的重量涧偷。
或者我們會(huì)嗎?
第一個(gè)節(jié)點(diǎn)的值是之前的兩倍毙死。 如果我們將所有輸出權(quán)值減少1/2燎潮,則它對(duì)下一層的凈貢獻(xiàn)不變。我們沒(méi)有對(duì)第二個(gè)節(jié)點(diǎn)做任何處理扼倘,所以我們可以不考慮它的權(quán)值确封。最后除呵,我們需要將最后一組權(quán)值乘以5,以補(bǔ)償該節(jié)點(diǎn)上的1/5因子爪喘。從數(shù)學(xué)上講颜曾,這相當(dāng)于使用一組新的權(quán)值,我們通過(guò)將原權(quán)矩陣乘以A的逆矩陣得到:
如果我們將第一層的修改后的輸出與修改后的權(quán)值結(jié)合起來(lái)秉剑,我們最終會(huì)得到到達(dá)第二層的正確值:
太好了泛豪!盡管我們做出了最大努力,但網(wǎng)絡(luò)仍在重新運(yùn)作侦鹏!
好了诡曙,我們已經(jīng)學(xué)了很多數(shù)學(xué)了,讓我們回顧一下略水。
當(dāng)我們把節(jié)點(diǎn)的輸入价卤,輸出和權(quán)值看作固定的量時(shí),我們稱它們?yōu)橄蛄亢途仃囋ɡ裕⒂盟瓿伞?/p>
但是慎璧,一旦我們開始用其中一個(gè)向量進(jìn)行修復(fù),以常規(guī)方式對(duì)其進(jìn)行轉(zhuǎn)換跨释,我們就必須通過(guò)相反的方式轉(zhuǎn)換權(quán)值來(lái)進(jìn)行補(bǔ)償胸私。這個(gè)附加的、集成的結(jié)構(gòu)將單純的數(shù)字矩陣提升為一個(gè)真正的張量對(duì)象煤傍。
事實(shí)上盖文,我們可以進(jìn)一步描述它的張量性質(zhì)嘱蛋。如果我們把對(duì)節(jié)點(diǎn)的變化稱為協(xié)變(即蚯姆,隨著節(jié)點(diǎn)的變化而乘以A),那么權(quán)值就變成了一個(gè)逆變張量(具體來(lái)說(shuō)洒敏,對(duì)節(jié)點(diǎn)變化龄恋,乘以A的倒數(shù)而不是A本身)。張量可以在一個(gè)維度上是協(xié)變的凶伙,在另一個(gè)維度上是逆變的郭毕,但那是另外的事了。
現(xiàn)在你知道了矩陣和張量之間的區(qū)別了吧函荣。
作者:阿里云云棲社區(qū)
鏈接:http://www.reibang.com/p/1873aefeb7eb
來(lái)源:簡(jiǎn)書
簡(jiǎn)書著作權(quán)歸作者所有显押,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。