國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
表示自旋 σi =−1。以 L = 32 及 L = 512 為例,分別展示溫度低於臨界溫度、處 於臨界溫度(Tc≈ 2.26)及高於臨界溫度的組態。觀察大尺寸系統 L = 512,可以 看到溫度高於 Tc,自旋組態的對稱性越高,黑白點均勻分佈而不形成同色的大區 塊;溫度低於 Tc,則大多數自旋朝同方向而使某一特定顏色占據組態圖的大部份 面積;處於臨界溫度時,黑白兩色各形成許多不同大小的區塊。較小尺寸 L = 32 的組態圖較無法呈現上述熱力學極限下不同相態的特徵,但亦可看出組態圖像在 不同溫度範圍的差異。組態圖像差異明顯有利於機器學習辨識。
3.2 量子三角反鐵磁模型採樣方法
蒙地卡羅方法亦用於對量子三角反鐵磁模型作自旋組態作採樣。對於以哈密頓 算符 ˆH 定義的量子系統,溫度 T 熱平衡下觀察量 ˆO 期望值為
⟨ ˆO⟩ = 1
ZTr(Oeˆ − ˆH/T) , (3.8) 其中配分函數 Z 表示為
Z = Tr(e− ˆH/T) , (3.9) 針對量子多體系統設計的量子蒙地卡羅(QMC)演算法中,所謂隨機級數展開
(Stochastic Series Expansion, SSE)QMC 方法 [6] 應屬最有效率的方法之一。SSE 方法首先將 e− ˆH/T 作級數展開:
e−β ˆH =
∑∞ n=0
(−β)n n!
Hˆn, (3.10)
其中我們引入溫度倒數 β = 1/T 。考慮將哈密頓算符 ˆH 改寫成局域算符 { ˆHt} 的 組合:
H =ˆ −∑
ti
Hˆti, (3.11)
‧
(a) Clock phase (b) KT phase (c) PM phase
Figure 3.2: 三角反鐵磁模型(L = 30)各相態組態圖。(a) h = 0.65, T = 0.1 (b) h = 1.6, T = 0.05 Metropolis 演算法作局域自旋組態的更新,也可大範圍的作自旋叢集的更新 [7]。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
對於每對選取的溫度值與橫場值 (T, h),我們同樣預跑一些蒙地卡羅步驟來達平 衡態,之後以每筆間隔 128 步方式蒐集 10,000 筆自旋組態作為機器學習的資料。
圖 3.2 展示以 SSE 方法獲得三角反鐵磁模型在三個相態的自旋組態樣本。考 慮的系統大小為 L = 30。與前一節展示的古典易辛模型自旋組態比較,這裡量子 組態似乎無法以圖像看出各相態的特徵。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
Chapter 4
深度學習自旋組態
本章描述我們用以學習自旋組態的神經網路模型架構,並討論預測相態的結 果。神經網路模型可視為一組安排成層狀互相連結的神經元(neurons )。層數多 的神經網路模型稱為深層神經網路,為作所謂深度學習(deep learning)所使用 的模型 [8, 9]。我們採用兩類型的神經網路模型,分別是多層感知器,及捲積神經 網路。Google 所開發的 TensorFlow [10] 為廣泛被應用於深度學習的程式庫,而 Python 套件 Keras [11] 提供一便捷使用 TensorFlow 的介面。本論文的神經網路 模型均藉 Keras 建構而成。
我們採監督學習(supervised learning)的方式讓神經網路機器辨識自旋組態 所對應的相態。監督學習需要一組有標籤的訓練資料;在我們的問題,這組資料 為由蒙地卡羅方法產生的自旋組態(見第 3 章的討論)。我們將 n 組加標籤的訓 練資料表示為{(Xα, yα)}α=1,2,··· ,n,其中 Xα 為元素值 ±1(代表自旋朝上或朝下)
的向量,其維度為自旋數目 N,例如,對 L = 30 的三角反鐵磁而言 Xα 維度為 900;yα 為對應 Xα 的標籤。我們以慣用的 one-hot encoding 方式製標籤 [8],對 C 類(C classes)問題,我們共有 C 個標籤,對編號為 α 的那筆資料,one-hot 向量形式的標籤為 [yα1, yα2,· · · , yαC],其中
yαc =
1 if yα = c , 0 otherwise.
(4.1)
例如對於有三個相態的三角反鐵磁,標示 [1, 0, 0] 為順磁態,[0, 1, 0] 為 KT 態,
‧
(weights)。判斷學習成效的一指標函數為所謂的損失函數(loss function),用以 度量預測的標籤與真實標籤的差距;若差距小,損失函數值則小。我們以負的平 均對數似然(negative log-likelihood)來作為與損失函數相關的欲極小化的目標函 數(代價函數) [9]: 極小化損失函數的一種方法為梯度下降法(Gradient Descent),也就是根據損 失函數梯度方向迭代更新參數 w:
wt+1= wt− η∇wL , (4.4)
上式中的 η 為可調整的參數,稱為學習率(learning rate);調整 w 的方向為 L 負梯度大的方向,如此可在訓練過程調整 w 流向目標函數的一個局部最小值
(local minimum)。機器學習技術中常用的最佳化(optimization)方法為梯度下 降法的擴充版本,例如,隨機梯度下降法(Stochastic Gradient Descent, 以下簡 稱 SGD) [12] 及 Adam 演算法 (Adaptive Moment Estimation) [13],這兩種最佳 化演算法也將運用在本論文。簡單說,SGD 就是隨機挑選訓練資料的一小部分資 料(稱為 minibatch)作為梯度的依據。SGD 可另外加上一慣性項,所謂的動量
(momentum),當作在參數空間移動方向的記憶 [9]。加動量的 SGD 可表示為
‧
input layer
hidden layer hidden layer
output layer
Figure 4.1: 多層感知器基本架構。
多層感知器 (Multilayer Perceptron) 網路,簡稱 MLP,包含輸入層、隱藏層 和輸出層三層基本結構,其中至少一層隱藏層,且其數目可為任意多。每一層 由不同數目的神經元組成,每層間為完全連結(fully-connected)的架構(見示 意圖 4.1)。以分類問題來說,輸出層的神經元數目即為類別數目 C。資訊的傳 遞是由輸入層向輸出層單向進行的,即所謂前饋神經網路(feed-forward neural network)。
一個神經元的功能主要將接受到的資料向量與權重作純量積(可能再加偏權值
(bias)b ), 再經過非線性激活函數(activation function)g 輸出。如此,神經元
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
轉換資訊的功能可表示為
zj(ℓ)=∑
k
wjk(ℓ)x(ℓk−1)+ b(ℓ)j , x(ℓ)j = g(ℓ)(zj(ℓ)) ,
(4.6)
這裡 w(ℓ)jk 代表連結第 (ℓ− 1) 層第 k 個神經元及第 (ℓ) 層第 j 個神經元的權重,bℓj 為第 ℓ 層第 j 個神經元的偏權值,g(ℓ) 為第 ℓ 層的激活函數。式 (4.6) 也可更簡潔 地以向量形式表示為:
X(ℓ)= g(ℓ)(w(ℓ)X(ℓ−1)+ b(ℓ)) . (4.7)
常用的激活函數包含 sigmoid 函數:
g(z) = 1
1 + e−z , (4.8) ReLU(rectified linear unit)函數:
g(z) = max(0, z) , (4.9)
等。對於一個 M 層感知器(M 層前饋神經網路),我們可將其 fw(X) 的運作如 下表示 [8]:
fw(X) = g(M )(w(M )· · · g(2)(w(2)g(1)(w(1)X)) . (4.10) 當神經網路的深度 M 大時,可見找尋最佳的一組大量參數的計算工程之浩大。
值得一提,所謂反向傳遞演算法(backpropagation algorithm) [14] 在深層神經網 路的參數最佳化過程中扮演關鍵性的角色。基本上,反向傳遞演算法可由偏微分 的連鎖律(chain rule)導出 [9, 15]。在 Keras 套件中反向傳遞演算法已包含於最 佳化計算過程。
除了上述提到的一些神經網路基礎及最佳化技術,實務上執行深度學習其
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
Figure 4.2: Dropout 技術的示意圖,取自 [16]。右圖 (b) 為從完全連結的神經網路中 (a) 隨機丟 棄一些神經元間的連結的一個例子。
能因模型參數過多及複雜度太高而衍生的過度擬合(overfitting)問題 [16]。而 BatchNorm 的作用在於將輸入一層神經元待訓練的資料分小批(minibatch)作標 準化,使其平均值為零且標準差歸一 [17],藉以避免資訊在神經網路層層傳遞中 分佈改變造成梯度消失進而導致最佳化方法沒效率 [17],或另一被提出的解釋:
可使目標函數的景觀變平滑而有利尋找極小值 [18]。
最後關於輸出層(第 M 層)。在分類問題上,輸出層一般為 softmax 層,並 有 C 個神經元,其中 C 為類別個數。如同式 (4.6) 的描述,具權重的輸入值為 zcM =∑kwck(M )x(Mk −1)+ b(M )c ,再由 softmax 激活函數轉換為 [9, 15]
ˆ
yc′ = e−zc′M
∑C c=1
e−zMc
(4.11)
所獲得的 ˆyc′ 即代表歸屬於第 c′ 類的機率;也不難看出此機率滿足 ∑c′yˆc′ = 1。