天天看點

學習筆記258—張量的背景

張量的背景

張量,是向量與矩陣的推廣(這裡與黎曼幾何裡的張量有差別)。向量可以看做是一階張量,矩陣是二階張量。張量的階數某種意義上代表着資料的“豐富程度”,一個矩陣代表了二維資訊,一個三階張量往往蘊含着三維的空間資訊。

為什麼要用張量這種新的數學工具?矩陣計算難道還不夠用嗎?在回答這兩個問題之前,我們先回顧下目前計算機處理問題的方式。那就是,資料往往以矩陣的方式出現。比如一張使用者-商品表可以表征為使用者-商品矩陣。一張灰階圖也可以用矩陣表示,資訊在計算機裡的存儲以及表示方式都是矩陣的形式,後續的模組化跟計算毫無疑問都是基于矩陣。換而言之,計算機處理數學問題基本上是在數值代數(矩陣計算,方程的數值解)的架構下進行的。但是,有的時候我們擷取的資料并不是天然的就具有“矩陣”這類形式,比如,RGB圖像它是一個三維數組。使用者-商品表也往往不是單獨出現,因為社交媒體的存在,真正的那張表應該是使用者-使用者-商品這個三維數組,類似的例子還有很多。那麼,問題來了:是否可以建立如同矩陣計算(分解)那樣的底層運算,為目前的資料形式(多元數組)提供更有内蘊的計算架構跟工具?

為了回答以上問題,張量計算與分解應運而生。

張量的定義跟基本運算

張量就是一個多元數組,它的元素可以被一個多重名額索引。下圖是一個三階張量

學習筆記258—張量的背景

張量的模式坍縮(unfolding)

張量可以在某個階上坍縮(unfolding)成一個矩陣,這裡取名為張量的模式坍縮(取自量子力學的波函數坍縮這個詞)。比如一個7×8×9的張量,它可以沿着第二階坍縮成一個8×63的矩陣,也可以沿着第一階坍縮成一個7×72的矩陣。“橫看成嶺側成峰”,張量的模式坍縮可以從矩陣角度觀察張量的潛在資料結構,并且張量的模式坍縮使我們可以回到一個“舒适”的位置,因為我們對矩陣已經非常熟悉。張量的模式坍縮類似于“降維打擊”(三體裡二向箔把太陽系拍成一個二維平面)。從高維到低維,當然丢失了資訊,從低維看高維,也會看不清楚一些本質的東西,但是很多個來源于同一個高維母體(原始張量)的低維結構(不同的模式坍縮矩陣),卻潛在保留了高維資料的結構資訊。

學習筆記258—張量的背景

張量與矩陣的模式乘積

為了使高維張量與張量模式坍縮後的矩陣能夠發生某種互相作用,我們需要定義一些新的運算,這些運算當然是要自恰(就如同相對論之于牛頓力學,在物質運動速度遠小于光速時,相對論退化成牛頓力學)。給定張量

學習筆記258—張量的背景

和矩陣

學習筆記258—張量的背景

張量與矩陣的模式乘積的結果是一個這樣子

學習筆記258—張量的背景

的一個張量,它的具體運算如下

學習筆記258—張量的背景

基于這個定義,高維世界跟低維世界就可以愉快的”玩耍“了。

張量的範數

給定一個集合,我們适當的定義一些概念在這個集合上,就”堂而皇之“的可以叫它為XX空間了。沒有距離概念的叫拓撲空間,引入内積再由内積誘導範數進而可以定義一個距離空間。為了之後更愉快的探索一些張量的其他問題,如各種張量分解(CP,Tucker,TT),張量填充(tensor completion,本質上是求解一個核範數極小的優化問題)等等,我們需要引入範數這個強有力的工具。

張量空間裡内積定義:

學習筆記258—張量的背景

張量的範數由内積誘導

學習筆記258—張量的背景

秩一張量(rank-one tensor)

這裡先給出秩一張量的概念,因為後面的張量分解(tensor decomposition)需要反複提及這個秩概念。(張量的秩留待後續介紹)

學習筆記258—張量的背景

秩一張量如同量子力學裡的量子一樣鬼魅。它鬼魅在:張量一般的低秩(秩大于1)逼近有可能并不存在【1】,即便存在也有可能找不到(優化手段找不到全局最優)。但秩一逼近卻存在,并且使用一般的手段(high order power method)就能找到最優解。 

參考文獻