什麼是張量網路 (tensor network)?
已在微分幾何學過張量
作為我的研究方向,我簡單地介紹一下張量網路是什麼,以及它有什麼應用。
1. 張量(tensor)
張量網路中的張量,和微分幾何和GR中的張量場並不完全相同。在微分幾何中,一點處的張量是基於流形上該點的切空間的。一個(m,n)型張量是指將m個協變矢量(餘切矢量,cotangent vector)和n個逆變矢量(切矢量,tangent vector)映射到數域上的多重線性映射。取定一組基,這個多重線性映射可以用一系列分量表示出來。這些分量當然和基的選取有關。在張量網路中,我們通常不會去作坐標變換,因此,任何一個具有n個指標的分量集合就稱為一個張量。例如,christoffel符號在幾何意義上不構成張量,但它是可以出現在張量網路中的。2.量子力學裡的張量
量子力學有一個基本假設,複合系統的Hilbert空間是其子系統Hilbert空間的張量積。因此,多體波函數天然就是一個張量。對於n體系統來說,它的波函數是一個n階張量。當然,由於維數相同的線性空間是同構的,所以也可以把波函數看成一個矢量,這個矢量的維數是d^n。n體系統的哈密頓量是d^n維的矩陣,當然也可以看成一個(n,n)型的張量。單體運算元可以看成2階張量。兩體運算元可以看成d^2維的二階張量,也可以看成維數為d的(2,2)型(四階)張量。
量子力學中所有可觀測量的平均值都可以寫成內積,從矩陣的觀點看這是二次型。如果波函數是一個張量的形式,算符也可以寫成局域張量的求和,那麼算符的平均值也可以看作這些張量的縮並的和。3. 張量網路 (tensor network)
張量的基本運算包括線性運算、張量積、轉置和縮並。當涉及的指標較少,縮並關係簡單時我們常用抽象指標記號去作解析運算,例如在GR里。但是,當張量數目多,指標縮並關係複雜時,我們最好能用圖形表示它們的縮並關係,這就是張量網路。在張量網路中,n階張量由帶n條外腿的圓圈(或方形、三角形等)表示,每條外腿代表一個指標。如果某兩個張量的外腿連成一條線,就代表這兩個張量的對應指標縮並。整個圖形由張量、內腿(參與縮並的指標)和外腿(不參與縮並的指標)構成。整個圖形所表示的張量的階數就是其外腿的個數。例如,如果一個張量網路用來表示n體系統的波函數,那麼它就有n條外腿。4. why tensor networks?
對於量子多體系統,其一般波函數有d^n個分量,當粒子數較大時,這個數目是天文數字,電腦不可以存儲。好在我們知道量子系統的基態一般具有兩個性質:1. area law 2. exponential/algebraic decay of correlations. 首先,任何多體量子系統都可以選取其中L個連續的粒子構成子系統,而子系統與其他部分是有糾纏的。這個糾纏由子系統的約化密度矩陣的本徵值刻畫。把這些本徵值按一定方式組合成一個數,就是糾纏熵(entanglement entropy),記為S。它刻畫了這個長為L的子系統與其他部分的糾纏大小。對於一維繫統來說,如果這個系統是gapped,那麼它的基態具有如下性質:S有和L無關的上界;如果它是gapless,那麼它的基態具有如下性質:S的上界和log L成正比。對於N維繫統而言,取子系統為一個N維超正方體,邊長為L,那麼糾纏熵S的上界與這個正方體的表面積成正比,或者對於gapless系統而言,可以有log L的修正。以上只是對基態和低激發態說的,而凝聚態物理中我們一般也只關心基態和低激發態。對於Hilbert空間中的一般態,其糾纏熵符合volume law,要遠遠大於基態。其次,統計物理表明,系統處在臨界點(critical point)附近時,關聯長度趨於無窮大,關聯函數是按多項式遞減的(例如L^(d-2+eta),eta是臨界指數,稱為反常維度);在系統為gapped的時候,關聯函數是指數下降的(對應的臨界指數稱為dynamical critical exponent或者z)。這些性質使得我們在選取系統的波函數時,不需要考慮大部分Hilbert空間的態,從而通過恰當的參數化,減少獨立變數的個數。這種參數化是由tensor network描述的。換而言之,用tensor network表述的量子態能很好的符合系統基態的糾纏和關聯性質,因此是很好的試驗態。其獨立參量個數一般只有O(n),甚至O(1)(當系統具有平移不變性時),這使得高效模擬成為可能。5.MPS
矩陣乘積態(matrix product states,MPS)是最先被發現和使用的張量網路。它源於人們對密度矩陣重整化群(density matrix renormalization group,DMRG)的原理探究。DMRG是90年代White等人為了模擬量子多體系統提出的演算法[1]。它被廣泛使用,大獲成功的同時,其演算法的有效性卻沒有理論證明。同時,人們發現DMRG不能準確模擬gapless系統。直到00年代人們發現它本質上是使用MPS作為一維量子系統基態的試驗態[2]。MPS的糾纏熵有上界,正好符合1維gapped系統的性質。因此在處理critical系統時就會出現一些問題,例如,只有短程行為是準確的(technically,這種現象被稱為MPS引入了off-criticality,或者說引入了artifical correlation length)。現在,MPS被高效地用於無限大一維繫統的基態和激發態的模擬中[3][4][5]。同時,對MPS取連續極限可以用它模擬量子場論的基態[6][19]。而筆者本人現在的工作是盡量實現用MPS模擬critical系統,實現對Conformal Field Theory的精確模擬,參見[20]。
6. PEPS
投影糾纏對態(projected entangled pair states,PEPS)是MPS在二維的拓展,它比MPS更難操縱,儘管獲得了較大成功,但演算法複雜度要比MPS高很多。二維繫統有很多更有趣的物理性質,例如拓撲序、拓撲相變。PEPS可以用來研究這些性質。[7][8]7.MERA
多尺度糾纏重整化試驗態(multiscale entanglement renormalization ansatz,MERA)是一種一維量子系統基態的試驗態。它具有log L的糾纏,符合一維臨界系統的基態性質。而且MERA天然有尺度不變性(scale invariance),符合統計物理中對critical system的描述(critical point是重整化群流的不動點)[9][10]。MREA可以看成從直積態出發,按尺度逐層引入糾纏的過程。這一過程和holograhy的思想類似。MERA作為臨界系統的試驗態取得了極大成功,能夠精確求解共形場論(conformal field theory,一種描述臨界系統的場論),得到scaling operator的scaling dimension、conformal spin和operator product expansion [11]。並能構造具有正確fixed point的重整化群流[12][13]。高維的MERA也被發現並應用,例如2D MERA,branching MERA[14]。現在,MERA還被看成是實現AdS/CFT對偶的一種方式,成為一種全息對偶(holographic duality)的玩具模型[15][16]。MERA也被連續化為cMERA,因此可以用來模擬量子場論和共形場論[17][18]。8.其他應用
除了模擬量子系統,tensor network還廣泛運用於經典統計物理、量子化學和機器學習中。由於作者本人對其中的某些領域不熟悉,所以本文也止步於此。9. 更新:最近的「張量網路與量子場論」會議上有很多非常精彩的進展。我將會稍後補充,敬請期待。
--Interested readers may want to refer to following literatures and references therein--
For general information, Arxiv: 1603.03039.
For specific details, please see below:
[1] S. R. White, Phys. Rev. Lett. 69, 2863 (1992).
[2] U. Schollwoeck, Annals of Physics 326, 96 (2011)
[3] G. Vidal, Phys. Rev. Lett. 91, 147902 (2003)
[4] G. Vidal, Phys. Rev. Lett. 98, 070201 (2007)
[5] J. Haegeman etal, Phys. Rev. B 88, 075133 (2013)
[6] J. Haegeman etal, Phys.Rev.Lett.104:190405,2010
[7] S. Yang etal, Phys. Rev. Lett. 114, 106803 (2015)
[8] N. Schuch, Phys. Rev. Lett. 111, 090501 (2013)
[9] K.G. Wilson, Rev. Mod. Phys. 47, 773 (1975)
[10] Scaling and Renormalization in Statistical Physics, J. Cardy (Cambridge
University Press, 1996)
[11] G. Vidal, Phys. Rev. Lett. 99, 220405 (2007), G. Vidal, Phys. Rev. Lett. 101, 110501 (2008).
[12] G. Evenbly, G. Vidal, Phys. Rev. Lett. 115, 180405 (2015)
[13] G. Evenbly, G. Vidal, Phys. Rev. Lett. 115, 200401 (2015)
[14] G. Evenbly, G. Vidal, Phys. Rev. B 89, 235113 (2014)
[15] B. Swingle, Phys. Rev. D 86, 065007 (2012)
[16] B. Czech etal, arXiv:1512.01548
[17] J. Haegeman etal, Phys. Rev. Lett. 110, 100402 (2013)
[18] Q, Hu, G.Vidal, arXiv:1703.04798
[19] M. Ganahl etal, arXiv:1611.03779
[20] Y. Zou, A. Milsted, G. Vidal, arxiv:1710.05397
樓上已經回答得很全面了
我再補充一點
這張量網路跟數據壓縮有很大關係。
比方一個圖片,可以通過svd分解,只保留一些最重要的信息,就是一種張量網路方法。
如果作者不是物理學專業,可以看看svd分解在壓縮方面的應用,就會有些體會。樓上有大神回復了,非常詳細,我就只作點補充。
張量網路(tensor networks)可以用圖像方法表示,如圖中所示:
每一腳就是一個index,這些念過電磁理論或廣義相對論的同儕都會明白。用腳連接的代表總和,想像一下Einstein』s summation of repeated indices:
這些樓上大神都談過了。這個概念來自密度矩陣重整化群(density matrix renormalization group, DMRG),是一個求多體低維繫統最低能解的演算法。原始的演算法由Steve White發明,只用了基本量子力學、統計物理等基本概念。但後來為了優化,發展出張量網路的概念,因為一個多體的量子態可寫成:
其中的係數可寫成多個張量的乘積:
這個就是matrix product state(MPS)。這個表達方法有gauge自由度的寫法,使每次本來用Schmidt分解法變成用SVD,據說可加強計算速度(須大神解釋)。
至於entanglement renormalization和MERA是我很有興趣弄明白,但現在還沒弄懂的東西??
======================
樓上大神給了很多文獻,我在這加多一個:
我主要看這個:
Ulrich Schollw ?ock, DMRG: Ground States, Time Evolution, and Spectral Functions http://www.cond-mat.de/events/correl13/manuscripts/schollwoeck.pdf當然不要忘了Steve White的原文,雖然跟現在的演算法有很大差異。
=====================
Python implementation of the DMRG algorithm for the Taipei DMRG Winter School: iglpdc/dmrg101: Python implementation of the DMRG algorithm for the Taipei DMRG Winter School=====================
對深度學習有興趣的朋友,可讀一讀這一篇,基本是用DMRG演算法寫出了一個新的監督機器學習演算法E. Miles Stoudenmire, David J. Schwab, Supervised Learning with Quantum-Inspired Tensor Networks, arXiv:1605.05775和這博客:Tensor Networks and Density Matrix Renormalization Group張量是個什麼「東東」
想要理解張量的同學是需要理解深度學習(DL),那我就提出自己理解「張量」在機器學習方面的看法。
一、張量概念
張量:是個非常非常非常「抽象」的概念,大家要有心理準備,它到底是數值?、數組?、向量?、函數?、矩陣運算?、向量運算?...。好像都有點沾邊,但好像都不是。
相比以下概念比較具象,非常好理解,如:
標量:是指數系中的實數R和複數a+bi數值表達;
向量:數學稱為有方向的數值,可以是二維R2、三維R3、或多維Rn,向量也可以用矩陣列數表達 A=[a b c],矩陣A中有3個向量。物理用矢量來表達,如力、加速度都認為是矢量(向量);
然而「張量」就沒那麼好理解,從字面上理解「張」可以用物理的角度看做是張力「場」或某種張力的拉伸,而「量」可以看做在某個張力場作用下的拉伸標量「數」。但這種解釋還是比較抽象,仍然晦澀的解釋。那我們就分析下張量的特徵屬性!
張量的屬性
函數性質:多個變數xn通過各種映射(線性組合變換)最終輸出一個標量實數R,即:f:(aij*xn)→y∈R,因此張量可以認為是個超參數函數,張量就是節點函數;
張量的階:張量的秩或階(與矩陣的秩和階均無關係),0階是標量,1階是向量,2階是矩陣,3階或r階可以理解為「分量數組」。因為0,1,2階可以在笛卡爾坐標系中表示,還是很好理解的,比如:1階向量可以理解平面坐標系中含方向的點[數組表達(x,y)],三維是體的方向點[數組表達(x,y,z)];2階張量矩陣(矩陣是二維的)可以將列數看做是向量(向量可以是多維n,m),因此也可以在笛卡爾坐標系中表達;但對於多階張量很難在坐標中描述,因為我們現實生活中三維是體,非常直觀且可以建立三維坐標系(x,y,z),四維是三維體中加了時間軸,多維就更抽象了,這裡不再描述了,否則要跑題了,總之對於現實多維無法建立「原點0」的坐標系,因此對於r階的張量可以看做是低階中「分量數組」就好(這裡的分量實際就是指一階向量、二階矩陣中的「組數」,如:向量中的(x,y))。但同學可能還不明白分量中的「數組」到底是什麼東東?這樣說吧,對於三階張量表示為三維r3∈﹤2,,5,7﹥,那麼組數就等於2*5*7=70個數組。描述到現在應該理解了張量「階」的性質了吧。
張量線性:因張量具有函數性質,是經過多次映射的函數表達。我們可以把每次映射看做是一個節點(機器學習中的神經元,或隱含神經元),但節點運算是線性組合輸出(輸出函數),即線性變換(需要理解線性組合,線性變換的同學要複習下線性代數和多重線性代數了),也可以進行非線性變換f(.)=(1/1+e-x),非線性變換就是激活函數(sigmoid、tanh),將數字壓縮到(-1,1)或(0,1)中,這樣可以近似看做概率P輸出。因此張量是具有線性的,但在現實生活中往往是線性無關的,或者說是關聯性不強,但在黎曼幾何中可以將線性可微,總之明白張量的函數運算實際就是映射視為節點線性變換運算就好,說到線性變換實際是節點向量運算、矩陣運算,在DL中是點積(內積)AX(AX即為線性組合),A是矩陣,矩陣中的列數組是向量,向量中的數是標量(wij),大家看到wij很熟悉吧,就是連接權重(標量);X是輸入變數,可以用一維矩陣[0 1 0 0 0...],也可以轉置為列向量作為輸入組數,而wij是初始狀態下給出的隨機一組權值[-1 2 4 -6 0...]。大家現在是否可以將張量的多階性和張量的線性聯繫起來了嗎?因為深度學習是多層的神經網路,而且每層都有大量的節點數,這樣的話,一組數據Xn的輸入經過多層多節點運算到輸出,可以看做是數據組數經過多次變換(CNN卷積是超參數降維的過程)在張量場中向前運算到輸出的過程。
張量密度:張量場也可有一個「密度」。密度為的張量和普通張量一樣坐標變換,但是它還要乘以雅可比矩陣的行列式值的第次冪。這個的最佳解釋可能是使用向量叢:其中,切叢的行列式叢是一個線叢,可以用來"扭轉"其它叢次。
張量的其他性質:由於本文主要描述的性質是和DL有關,其他性質待讀者細細研究。張量可以微積分;張量在幾何中的描述,物理中(廣義相對論)中的描述等。
二、張量在深度學習DL中的理解
在goolge中的TensorFlow(TF)中引入了張量的概念,張量(Tensor):用來描述深度學習中所有數據都是通過張量的形式表達,如果同學採用的是TensorFlow來訓練自己的應用數學模型,需要理解的是TF並不是保存的數組,是對訓練後運算結果的一種引用,意思是訓練穩定後模型保存是指運算結果過程的保存,而不是保存數組(如:保存的是1+1,而不是保存2)。數據的計算過程是通過節點node(神經元)計算,對於卷積CNN來說就是卷積核、池化核或者說是激活函數,每個節點計算的運算結果都保存在整個張量中,所以說張量和計算節點的代表的計算結果相對應的關係,這樣訓練好的模型相當於是個能夠預測和分類的張量場。
E
推薦閱讀:
※到底是什麼讓你愛上了數學?最能體現數學之美和數學之趣的東西有哪些?
※錯排問題求解?
※如何評價42是1000以內人們最不可能寫的最小正整數?
※如何解釋賭徒輸光問題中的矛盾?
※拉馬努金圓周率公式的原理是什麼?