TW202248908A - 使用單位矩陣的參數化角度的反向傳播 - Google Patents
使用單位矩陣的參數化角度的反向傳播 Download PDFInfo
- Publication number
- TW202248908A TW202248908A TW111112975A TW111112975A TW202248908A TW 202248908 A TW202248908 A TW 202248908A TW 111112975 A TW111112975 A TW 111112975A TW 111112975 A TW111112975 A TW 111112975A TW 202248908 A TW202248908 A TW 202248908A
- Authority
- TW
- Taiwan
- Prior art keywords
- matrix
- rotated
- unitary matrix
- unitary
- parameterized
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Agricultural Chemicals And Associated Chemicals (AREA)
- Machine Translation (AREA)
Abstract
提供一種計算系統,包括處理器,其經配置以在複數個反向傳播迭代中訓練機器學習模型。每一反向傳播迭代可包括產生一座標對序列。每一座標對可在座標對序列內為唯一的且可包括不匹配座標。反向傳播迭代可進一步包括接收分別與座標對相關聯之參數化角度。反向傳播迭代可進一步包括計算藉由參數化角度參數化之單式矩陣,計算損失梯度矩陣,及計算Jacobian向量積(JVP)。計算JVP可包括針對每一座標對計算經旋轉之單式矩陣及經旋轉之損失梯度矩陣。可根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP。反向傳播迭代可進一步包括至少部分地基於JVP來更新參數化角度。
Description
本揭示案係關於使用單式矩陣之參數化角度的反向傳播。
在機器學習的一些近期工作中,已使用正交矩陣來編碼神經網路中神經元之權重。正交矩陣為其中矩陣之行指定一組正交向量的方形矩陣。正交矩陣滿足性質
,其中
為矩陣
的轉置,且
為矩陣
的逆矩陣。另外,正交矩陣集為單式矩陣集的子集,其中每個矩陣元素為實值的。單式矩陣集為其中
之矩陣集,其中
為矩陣
的共軛轉置。
藉由使用正交矩陣來編碼神經網路中神經元之權重,可避免在經由反向傳播訓練神經網路時出現消失梯度問題及***梯度問題。當執行反向傳播時損失函數之梯度變得非常大或非常小時,分別會發生***梯度問題及消失梯度問題。因此,神經網路之權重可能會更新太大或太小的量,以實現神經網路的期望行為。在正交矩陣中表示權重可藉由對行向量之長度進行歸一化來防止***及消失梯度問題。
根據本揭示案之一個態樣,提供一種計算系統,其包括處理器,該處理器經配置以在複數個反向傳播迭代中訓練機器學習模型。每一反向傳播迭代可包括產生包括複數個座標對之座標對序列。該複數個座標對中之每一座標對在座標對序列中可為唯一的且可包括不匹配座標。反向傳播迭代可進一步包括接收分別與複數個座標對相關聯之複數個參數化角度。反向傳播迭代可進一步包括計算藉由該複數個參數化角度參數化之單式矩陣。反向傳播迭代可進一步包括關於單式矩陣之複數個單式矩陣元素計算訓練損失的損失梯度矩陣。反向傳播迭代可進一步包括關於該複數個參數化角度計算訓練損失的Jacobian向量積(Jacobian-vector product; JVP)。計算JVP可包括藉由在該單式矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的軸之逆Givens旋轉達參數化角度,來計算經旋轉之單式矩陣。計算JVP可進一步包括藉由在該損失梯度矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的該軸之Givens旋轉達參數化角度,來計算經旋轉之損失梯度矩陣。可根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP。反向傳播迭代可進一步包括至少部分地基於JVP來更新複數個參數化角度。
提供本
發明內容以便以簡化形式介紹一系列概念,以下在實施方式中更詳細描述該等概念。此發明內容並不意欲識別所主張標的之關鍵特徵或基本特徵,亦不意欲用以限制所主張標的之範疇。另外,所主張標的並不限於解決在本揭示案之任何部分中提及的任何或所有劣勢之實施。
在機器學習中使用正交矩陣的先前工作中,當權重以正交矩陣表示時,訓練神經網路之方法很難推廣。先前已存在的方法中之一些受限於單式矩陣集的特定子集。其他現有方法已包括具有高計算複雜度之步驟,如
矩陣求逆,其可能使此類方法無法用於訓練大的模型。另外,在訓練機器學習模型時使用正交矩陣之現有方法不適合高級別之並行化。
為了克服以上挑戰,以下揭示用於訓練機器學習模型之系統及方法。在以下實例中,用以表示權重之矩陣為一組特殊正交矩陣{U∈SO(n)}的成員,其滿足屬性
及
的實值矩陣,其中
為單位矩陣。然而,如以下更詳細論述,可擴展以下系統及方法,以使得可使用任何單式矩陣。另外,以下實例假設矩陣
中包括之行數
為偶數。下文亦將論述將如下技術擴展至為
之奇數值。
第1A圖示意性地示出根據本揭示案之一個實施例的示例性計算系統10,可在該示例性計算系統10處訓練機器學習模型20。計算系統10可包括以通訊方式耦接之處理器12及記憶體14。在第1A圖之實例中,處理器12及記憶體14被示為在單個實體計算裝置內。然而,在其他實例中,處理器12及/或記憶體14之功能可分佈在複數個以通訊方式耦接之實體計算裝置上。在該等實例中,該複數個實體計算裝置可為位於資料中心中之複數個伺服器計算裝置。舉例而言,處理器12可實例化在一或更多個中央處理單元(central processing unit; CPU)、圖形處理單元(graphical processing unit; GPU)、場可程式化閘極陣列(field-programmable gate array; FPGA)、專用硬體加速器或某一其他類型之處理裝置中。
處理器12可經配置以在執行機器學習模型20時並行地執行複數個處理器執行緒42。如第1A圖中之實例中所示,處理器12可經配置以執行工作負載排程演算法40以將計算任務指派給複數個處理器執行緒42。在該等實例中,工作負載排程演算法40可經配置以將指令傳輸至複數個處理單元44以並行地執行複數個處理器執行緒42。可接著在相應複數個處理單元44處執行複數個處理器執行緒42。複數個處理單元44可在單個實體計算裝置處或計算系統10中所包括之複數個實體計算裝置處被實例化。如一些實例,處理單元可為多核處理器(例如,多核中央處理單元(central processing unit; CPU)、多核圖形處理單元(graphical processing unit; GPU)或多核張量處理單元(tensor processing unit; TPU))之特定核,或可藉由單核CPU、GPU或TPU來體現,或可為場可程式化閘極陣列(field-programmable gate array; FPGA)加速硬體。在第1A圖之實例中,將複數個處理器執行緒42繪示為在藉由互連耦接至處理器12之硬體加速單元的複數個處理器核心處執行。
如第1A圖中之實例中所示,機器學習模型20可為深度神經網路。舉例而言,機器學習模型20可為卷積神經網路、循環神經網路或生產性模型。機器學習模型20可包括具有相應激活函數之複數個神經元。另外,神經元之間的連接可具有可形成機器學習模型20之參數的相應權重w。複數個神經元可被組織至輸入層22、一或更多個深層24及輸出層26中。每一神經元可連接至每一相鄰層中之至少一個其他神經元。當機器學習模型20接收到輸入時,該輸入可被加載至輸入層22中並經過一或更多個深層24,使得在輸出層26處產生一或更多個輸出。
可使用訓練資料30來訓練機器學習模型20,該訓練資料30包括複數個訓練輸入32及對應複數個真實訓練輸出34。處理器12可經配置以使用反向傳播演算法36來訓練機器學習模型20。當處理器12執行反向傳播演算法36時,處理器12可經配置以執行複數次迭代,每一迭代包括經由機器學習模型20之正向傳遞及反向傳遞。在每一正向傳遞中,處理器12可經配置以將一或更多個訓練輸入32輸入至輸入層22中並計算一或更多個輸出。在反向傳遞期間,處理器12可經配置以使用損失函數比較在正向傳遞期間所產生之一或更多個輸出與對應的真實訓練輸出34,處理器12可經配置以計算損失函數之梯度。處理器12可接著經配置以基於損失函數之梯度修改機器學習模型20之權重。因此,當執行反向傳播演算法36時,處理器12可經配置以為機器學習模型20執行複數個神經元權重計算38。
反向傳播演算法之每一神經元權重計算38可包括執行並行正向
演算法38A及並行Jacobian向量積(Jacobian-vector product; JVP)演算法38B。第1B圖更詳細地示出當在處理器12處執行並行正向
演算法38A及並行JVP演算法38B時之計算系統10。如上所述,計算系統10之處理器12可經配置以在複數次反向傳播迭代中訓練機器學習模型,每一反向傳播迭代包括一正向傳遞及一反向傳遞。在正向傳遞中,處理器12可經配置以計算由複數個參數化角度
參數化之單式矩陣
,如以下更詳細論述。在反向傳遞中,處理器12可經配置以計算如下定義之Jacobian向量積(Jacobian-vector product; JVP)
其中
為機器學習模型之訓練損失。在每一反向傳播迭代中,處理器12可進一步經配置以至少部分地基於JVP來更新機器學習模型之參數。因此,處理器12可經配置以藉由在複數次反向傳播迭代的整個過程中更新模型參數來訓練機器學習模型。
可經由複數個Givens旋轉之組合來參數化單式矩陣
。當使用Givens旋轉參數化單式矩陣
時,可在單式矩陣
之座標軸對所跨越的平面中執行
Givens旋轉。處理器12可經配置以定義應用Givens旋轉以參數化
之次序。可將應用Givens旋轉之次序指示為座標對序列
,其包括複數個座標對
,其中
。複數個座標對中之每一座標對
在座標對序列
內可為唯一的且可包括不匹配之座標。可以
中之索引來標記單式矩陣
之座標。座標對序列
之元素
可用以定義應用Givens旋轉之次序,如以下更詳細論述。
每一反向傳播迭代可包括接收分別與複數個座標對
相關聯之複數個參數化角度
。因此,處理器12可經配置以接收
個參數化角度
,其可統一被指示為
。複數個參數化角度
可用作對機器學習模型中所包括之神經元的權重進行參數化的基礎。複數個參數化角度
可各自參數化在由用於
及
座標之單位向量跨越的對應平面中之旋轉。每一參數化角度
可為執行對應Givens旋轉之角度,如以下更詳細論述。
複數個Givens矩陣中之每一Givens矩陣可能與單位矩陣相差僅四個元素。對於座標對
,對應Givens矩陣中可能與單位矩陣元素不同的元素為
、
、
及
。Givens矩陣
之非零元素可如下來定義:
for
,
。
因此,乘以
僅可能修改乘數之列
及
。可如下使用複數個Givens矩陣來參數化單式矩陣
:
在以上參數化中,與座標對
相關聯之角度
可為跟蹤
中之矩陣集的參數。
具有維度
之實值正交矩陣(其形成所謂的正交群組)可能屬於
或屬於一組具有行列式-1之實值正交矩陣,亦稱作反射。類似於
中之矩陣,可使用Givens矩陣參數化反射,在自Givens旋轉構造矩陣後,具有對任意固定行否定之額外步驟。
第2圖示出示例性第一演算法100之偽代碼,處理器12可經配置以經由該第一演算法100基於複數個參數化角度
來計算單式矩陣
。在第2圖之第一演算法100中,單式矩陣
被初始化為
單位矩陣
。處理器12可進一步經配置以至少部分地藉由在單位矩陣
上迭代地執行複數個Givens旋轉達參數化角度
而計算單式矩陣
。在第2圖之示例性第一演算法100中,與座標對
相關聯之角度
的複數個Givens旋轉以與座標對在
中出現之次序相反的次序在單位矩陣
上迭代地執行。在已執行了全部
個Givens旋轉之後,第一演算法100將所得矩陣返回,作為
。
在第2圖之實例中,每一Givens旋轉可在
順序操作中執行,該等操作可被並行化。然而,第一演算法100包括
個Givens旋轉。因為該等Givens旋轉通常不交換,所以
個Givens旋轉亦不可參數化。為了解決第一演算法100之該等缺點,在第3圖之實例中示出第二演算法110之偽代碼。第二演算法110為第1A圖中所示之並行正向
演算法38A的一個實例。在第3圖之第二演算法110中,將座標對佈置至區塊序列
中。在每一區塊
中,
中所包括之每一索引可發生一次。因此,區塊序列可定義複數個Givens旋轉區塊
,每一者包括複數個可相互交換的Givens旋轉。因為每一區塊
中所包括之Givens旋轉彼此交換,所以可並行地計算彼等Givens旋轉。
處理器12可經配置以使用稱作循環方法之循環排程演算法來計算區塊序列
。循環方法可針對
個索引之索引序列執行並可包括
次配對迭代。在第4圖中示出當
時循環方法之實例。在複數次配對迭代之每一配對迭代中,處理器12可經配置以在連接索引序列的末端而不包括固定索引之迴圈中保持一個索引固定,而同時使其他索引的位置移一個位置。因此,在初始配對迭代之後的每一配對迭代中,配對迭代可包括將除固定索引之外的每個索引之索引序列中的相應位置以1模
移位。在第4圖之實例中,固定索引為0。每一配對迭代可進一步包括迭代地將索引序列中之第一未配對索引與索引序列中之最後一個未配對索引配對,直至索引序列包括少於兩個未配對索引為止。
在配對索引之後,配對迭代可進一步包括將每一對索引添加至座標對序列
。在配對迭代中添加至座標對序列
中的對可共同形成區塊
。因此,在座標對序列
內,座標對
可被分組成形成區塊序列
之複數個區塊
。第4圖之實例中的區塊序列
包括區塊
、
、
、
及
。
在其中
為偶數之實例中,循環方法可在每次配對迭代中不留下未配對索引。因此,索引序列中所包含的每個索引皆可包含在每個區塊b中。然而,在其中
為奇數之實例中,可能在每一配對迭代中留下未經配對之索引。對於複數次配對迭代中之每一配對迭代而言,未經配對之索引可不同。
在一些實例中,當處理器12計算區塊序列
時,處理器12可經配置以在複數個處理器執行緒中之每一者處獨立且延遲地評估當前區塊。當區塊被延遲執行時,處理器12在執行使用區塊執行計算的指令時計算區塊中所包括的座標對,而非預先計算複數個區塊。處理器12可經配置以至少部分地基於當前配對迭代之迭代次數決定當前區塊
。因此,複數個處理器執行緒可計算區塊序列
之個別區塊
,而不會計算整個區塊序列
。
返回第3圖之示例性第二演算法110,處理器12可進一步經配置以將中間單式矩陣初始化為單位矩陣
。迭代地,對於可相互交換之Givens旋轉的每一區塊
,處理器12可經配置以在中間單式矩陣之複數個複本上並行地執行複數個可相互交換的Givens旋轉。複數個可相互交換之Givens旋轉可(例如)在複數個處理器執行緒、GPU、FPGA或專用硬體加速器處並行執行。處理器12可進一步經配置以在對中間單式矩陣之複本執行了可相互交換的Givens旋轉之後,同步化中間單式矩陣之複數個複本。在一些實例中,如第3圖中所示,可以與區塊
在區塊序列
中出現之次序相反的次序計算複數個區塊
的對應Givens旋轉。
第5圖示出可並行執行之實例Givens旋轉,如第4圖之實例的Givens旋轉區塊
及
所示。可根據第3圖之第二演算法110並行地執行Givens旋轉。在第5圖之實例中,中間單式矩陣被指示為
,其中
為在中間單式矩陣上執行之Givens旋轉的最近區塊。如第5圖之實例中所示,處理器12可經配置以在對應於Givens旋轉區塊
的迭代處在單位矩陣
之相應複本上執行Givens旋轉
、
及
。處理器12可進一步經配置而在已執行了Givens旋轉之後,同步化單位矩陣
之複數個複本。處理器12可經配置以藉此產生
。當處理器同步化經旋轉之單位矩陣時,處理器12可經配置以使經旋轉之單位矩陣相乘在一起。因為經旋轉之單位矩陣可彼此交換,所以經旋轉之單位矩陣可以任何次序相乘。
在Givens旋轉區塊
處,處理器12可進一步經配置以在
的相應複本上執行Givens旋轉
、
及
。因此,可迭代地應用複數個區塊
中所包括之Givens旋轉。處理器12可進一步經配置而在已執行Givens旋轉之後同步化
的複數個複本,以便產生
。儘管第5圖中未示出,處理器12可進一步經配置以對中間單式矩陣執行區塊
、
及
中所包括之Givens旋轉,並在應用上述區塊中之每一者中所包括的Givens旋轉之後同步化中間單式矩陣之複本。在已將區塊序列
之每一區塊中所包括的複數個Givens旋轉應用於中間單式矩陣之後,可將所得的中間單式矩陣用作單式矩陣
。
使用第3圖中所示之第二演算法110,處理器12可經配置而以
的計算複雜度來計算單式矩陣
。相反,第2圖中所示之第一演算法100可具有
的計算複雜度。因此,當為較大的
值計算單式矩陣
時,使用第二演算法110可允許明顯加速。
返回參考第1B圖,處理器12可進一步經配置以計算關於單式矩陣
之複數個單式矩陣元素之訓練損失
的損失梯度矩陣
。處理器12可經配置以藉由計算損失函數的值來計算訓練損失
,該損失函數可為分類損失函數或迴歸損失函數。損失梯度矩陣
可為如下定義之
矩陣:
在一些實例中,處理器12可經配置以經由關於單式矩陣
的單式矩陣元素的訓練損失
的自動微分來計算損失梯度矩陣
。處理器12可(例如)經配置以藉由執行機器學習函數庫中所包括之函數來執行自動微分。
處理器12可進一步經配置以計算關於複數個參數化角度
之訓練損失
的JVP。處理器12可經配置以直接計算JVP,而非計算定義JVP之方程式右側的兩個偏導數,如以上所論述。當處理器12計算JVP時,處理器12可經配置以計算經旋轉之單式矩陣
及經旋轉之損失梯度矩陣
,如以下更詳細論述。處理器12可進一步經配置以根據經旋轉之單式矩陣
及經旋轉之損失梯度矩陣
來計算JVP。
第6A圖至第6B圖示出第三演算法120之偽代碼。第6A圖至第6B圖之第三演算法120為第1A圖之並行JVP演算法38A的一個實例,處理器12可經配置以藉由其來計算JVP。第6A圖中示出第三演算法120之第一部分120A。如第6A圖中所示,第三演算法120之輸入可為區塊序列
、參數化角度
、單式矩陣
及損失梯度矩陣
。
在第6A圖中所示之第三演算法120的第一部分120A中,處理器12可經配置以計算經旋轉之單式矩陣
。處理器12可經配置以至少部分地藉由將中間經旋轉單式矩陣初始化為單式矩陣
來計算經旋轉之單式矩陣
。計算經旋轉之單式矩陣
可進一步包括:在單式矩陣
上,對於複數個座標對
中之每個座標對
,圍繞座標對
所指定之軸對座標對
執行逆Givens旋轉達參數化角度
。由座標對指定之軸可為垂直於由
及
個單位向量跨越之平面的軸,如上所述。達到角度
的逆Givens旋轉在本文中被定義為達到角度
的Givens旋轉。對於各自包括複數個可相互交換之逆Givens旋轉的複數個逆Givens旋轉區塊中的每一者而言,可迭代地執行逆Givens旋轉。如第6A圖之實例中所示,逆Givens旋轉區塊可為如上所定義之Givens旋轉區塊
。
在每一逆Givens旋轉區塊內,處理器12可經配置以對中間經旋轉單式矩陣之複數個複本並行地執行可相互交換的逆Givens旋轉。處理器12可進一步經配置以在對中間經旋轉單式矩陣之複本執行可相互交換的逆Givens旋轉之後,同步化中間經旋轉單式矩陣的複數個複本。因此,在每一逆Givens旋轉區塊內,可並行執行複數個逆Givens旋轉,且可同步化並行計算之結果以更新中間經旋轉單式矩陣。逆Givens旋轉之區塊可以逆區塊序列次序應用於中間經旋轉單式矩陣。在已對每一逆Givens旋轉區塊執行逆Givens旋轉之後,所得的中間經旋轉單式矩陣可用作經旋轉之單式矩陣
。
作為第6A圖中所示之第一部分120A的延續,第6B圖示出第三演算法120之第二部分120B的偽代碼。第6B圖示出用於計算經旋轉之損失梯度矩陣
的偽代碼。當處理器12計算經旋轉之損失梯度矩陣
時,處理器12可經配置以將中間經旋轉損失梯度矩陣初始化為損失梯度矩陣
。處理器12可進一步經配置以在損失梯度矩陣
上,針對複數個座標對
中的每個座標對
,針對座標對
圍繞由座標對
指定之軸執行Givens旋轉達參數化角度
。處理器12可經配置以在複數個Givens旋轉區塊中迭代地執行複數個Givens旋轉,每一Givens旋轉區塊包括複數個可相互交換的Givens旋轉。複數個Givens旋轉區塊可為以上所論述之區塊
,可以逆區塊序列次序應用於中間經旋轉損失梯度矩陣。
在每一Givens旋轉區塊
中,處理器12可經配置以在中間經旋轉損失梯度矩陣之複數個複本上並行地執行被包括在區塊
中之可相互交換的Givens旋轉。處理器12可進一步經配置以在對中間經旋轉損失梯度矩陣之複本執行可相互交換的Givens旋轉之後,同步化中間經旋轉損失梯度矩陣之複數個複本。在已對每一Givens旋轉區塊
執行了複數次Givens旋轉之後,所得的中間經旋轉損失梯度矩陣可用作經旋轉之損失梯度矩陣
。
當處理器12根據經旋轉之單式矩陣
及經旋轉之損失梯度矩陣
計算JVP時,處理器12可經配置以根據經旋轉之單式矩陣
及經旋轉之損失梯度矩陣
來計算中間向量積矩陣
。中間向量積矩陣
可為
矩陣且可在執行第三演算法120時初始化為空矩陣。處理器12可經配置以至少部分地藉由產生座標對
至中間向量乘積矩陣
之列
的映射,來計算中間向量乘積矩陣
。處理器12可經配置以為每一座標對
計算中間向量矩陣
的
個元素。對於中間向量積矩陣
之每一列,處理器12可進一步經配置以如下計算彼列中所包括之每一中間向量積矩陣元素:
其中
為經旋轉之損失梯度矩陣,
為經旋轉之單式矩陣,
及
為座標對中所包括之座標,且
為中間向量積矩陣
之行號。
在計算中間向量積矩陣
的元素之後,處理器12可進一步經配置以計算中間向量積矩陣
之複數個列的和,作為JVP之元素。處理器12可經配置以藉由將
乘以一個向量來計算中間向量乘積矩陣
之列的總和:
處理器12可進一步經配置以將JVP之元素設定為
之對應元素,如由
的列及座標對
之間的映射指定:
因此,處理器12可經配置以為每一參數化角度
計算JVP的對應元素。
使用第6A圖至第6B圖中所示之第三演算法120,處理器12可經配置而以
複雜度計算JVP。中間向量積矩陣
之列的求和可在
時間內執行,且在第三演算法120中為區塊
執行的每一其他步驟可在
時間內執行。因為在使用循環方法計算區塊序列
時,區塊序列
中之區塊
的數量為
,所以使用第三演算法120計算JVP之總體計算複雜度可為
。
返回第1B圖,在計算JVP之後,處理器12可進一步經配置以至少部分地基於JVP來更新複數個參數化角度
。因此,處理器12可經配置以計算複數個經更新之參數化角度
。處理器12可經配置以經由梯度下降計算複數個經更新之參數化角度
,此可進一步至少部分地基於學習率
。當訓練機器學習模型時,可針對在處理器12處執行之每一反向傳播迭代計算複數個經更新之參數化角度
。在一些實例中,處理器12可經配置以動態地修改反向傳播迭代之間的學習率
。
在以上實例中,儘管
為實值正交矩陣,但以上所論述之技術可擴展至包括虛值或複值元素之單式矩陣,如第7圖之示例性第四演算法130中所示。第7圖中所示之示例性第四演算法130為當單式矩陣
的元素不被假定為實值時可計算單式矩陣
的演算法。如第7圖之實例中所示,除了區塊序列
及複數個參數化角度
之外,處理器12可經配置以接收複數個參數化相位角
。每一參數化相位角
可為彼座標對
之對應的Givens旋轉貢獻相應的複相位因子
。因此,Givens旋轉
矩陣之元素可如下:
for
,
。
在第7圖中所示之第四演算法130中,處理器12可進一步經配置以將中間單式矩陣初始化為
單位矩陣
。處理器12可進一步經配置以在複數個Givens旋轉區塊
中之中間單式矩陣上迭代地執行複數個Givens旋轉
,每一Givens旋轉區塊
包括複數個可相互交換之Givens旋轉,如在第3圖之第二演算法110中所述。在每一Givens旋轉區塊
內,可在中間單式矩陣之相應複數個複本上並行地執行複數個Givens旋轉。處理器12可進一步經配置以在已對中間單式矩陣之複本執行複數個Givens旋轉之後同步化中間單式矩陣之複數個複本。
現以實例論述反向傳播,其中
之元素不被假定為實值。正向矩陣
及反向矩陣
可被定義為如下運行之矩陣積:
正向矩陣
及反向矩陣
之列及行可如下表述:
處理器12可經配置以關於參數化角度
梯度及關於參數化相位角
單式矩陣
的梯度:
處理器12可進一步經配置以藉由應用鏈式法則計算訓練損失
相對於參數化角度
及參數化相位角
的梯度:
在此實例中,可如上所述關於單式矩陣
之單式矩陣元素計算訓練損失
的梯度。因此,處理器12可經配置以關於參數化角度
之JVP及關於參數化相位角
計算JVP。
在以上所述技術之另一種擴展中,可指定座標子集,以使得在每次反向傳播迭代期間,在座標對所指示之平面中不執行旋轉,其中兩個座標皆包括在子集中。在不失一般性的情況下,當整數
時,可定義以下量:
藉由以上定義,排除之座標對的數目可等於
,且剩餘之座標對的數目可等於
。舉例而言,當
且
時,可自28對之完整集合中排除配對
,留下22個剩餘配對。如上所述,排除座標對子集可用以參數化任意的
矩陣。
在其中排除座標對子集之實例中,處理器12可經配置以將剩餘座標對分區成複數個區塊之區塊序列。對剩餘座標對分區可能等效於解決圖表之邊緣著色問題,其中前
個節點與所有其他節點相鄰,且其中最後
個節點彼此不連接。為了使第3圖之第二演算法110適用於在其中排除
個座標對的實例中使用,內部「for」迴圈可增加一個條件,該條件指示處理器12在
時跳過對座標對執行Givens旋轉。因為按慣例
,所以當
為被排除的對時,便會滿足此條件。類似於第二演算法110之內部「for」迴圈,在其中座標對子集被排除之實例中,亦可將跳過
之座標對的Givens旋轉之條件添加至包括在第三演算法120及第四演算法中之並行「for」迴圈中。以此方式跳過Givens旋轉可使第二演算法110、第三演算法120及第四演算法130之順序部分的算術指令計數保持不變。另外,在其中
與
線性縮放以使得對於固定值
而言
的實例中,座標對之總數
可能保持
。因此,在區塊內參數化Givens旋轉仍可導致如上所述在其中排除了座標對之實例中的加速。
第8A圖示出在計算系統處訓練機器學習模型之方法200的流程圖。方法200可(例如)在第1A圖中所繪示之計算系統10處執行。方法200之步驟可在複數次反向傳播迭代中之每一者中執行,該等反向傳播迭代可經執行以決定機器學習模型中所包括之神經元的權重。
在步驟202處,方法200可包括產生包括複數個座標對之座標對序列。該複數個座標對中之每一座標對在座標對序列中可為唯一的且可包括不匹配座標。在步驟204處,方法200可進一步包括接收分別與複數個座標對相關聯之複數個參數化角度。座標對之參數化角度可參數化在由對應於座標堆的座標之單位向量所定義的平面中之旋轉。
在步驟206處,方法200可進一步包括計算藉由複數個參數化角度所參數化之單式矩陣。單式矩陣可至少部分地藉由在單位矩陣上迭代地執行複數次Givens旋轉達參數化角度來計算。在步驟208處,方法200可進一步包括關於單式矩陣之複數個單式矩陣元素計算訓練損失的損失梯度矩陣。可針對機器學習模型之預定義損失函數來計算損失梯度矩陣。在一些實例中,可關於單式矩陣之單式矩陣元素藉由訓練損失的自動微分來計算損失梯度矩陣。
在步驟210處,方法200可進一步包括關於複數個參數化角度計算訓練損失之JVP。在步驟212處,在步驟210處計算JVP可包括藉由在單式矩陣上針對複數個座標對中之每一座標對執行逆Givens旋轉達座標對之參數化角度來計算經旋轉之單式矩陣。座標對之逆Givens旋轉可圍繞由座標對所指定之軸來執行。在步驟214處,在步驟210處計算JVP可進一步包括藉由在損失梯度矩陣上針對複數個座標對中之每一座標對執行Givens旋轉達座標對之參數化角度來計算經旋轉之損失梯度矩陣。座標對之Givens旋轉可圍繞由座標對所指定之軸來執行。在步驟216處,在步驟210處計算JVP可進一步包括根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣來計算JVP。
方法200可進一步包括在步驟218處至少部分地基於JVP來更新複數個參數化角度。可經由梯度下降來更新複數個參數化角度,此可至少部分地基於學習率及基於JVP來執行。因此,可執行每一反向傳播迭代以更新參數化角度,該等參數化角度參數化機器學習模型中所包括之神經元的權重。
第8B圖示出方法200之額外步驟,該等額外步驟在一些實例中可當在步驟202處產生座標對序列時執行。第8B圖中所示之步驟可針對
個索引之索引序列執行,其中
為單式矩陣之列數。另外,第8B圖之步驟可在複數個配對迭代中之每一者中執行。在步驟220處,方法200可進一步包括在初始配對迭代之後的每一配對迭代中將每一索引之索引序列中除固定索引以外的相應位置移位1模
。在步驟222處,方法200可進一步包括迭代地將索引序列中之第一個未配對索引與索引序列中之最後一個未配對索引配對,直至索引序列包括少於兩個未配對索引為止。在步驟224處,方法200可進一步包括將每一索引對添加至座標對序列。因此,在複數個次配對迭代中之每一配對迭代中,可產生對應於可相互交換之Givens旋轉的座標對之區塊。座標對序列中之區塊次序可指示區塊序列。
第8C圖示出方法200之額外步驟,該等額外步驟在一些實例中可當在步驟206處計算單式矩陣時執行。在步驟226處,方法200可包括初始化中間單式矩陣作為單位矩陣。單位矩陣的大小可為
。在步驟228處,方法200可進一步包括藉由參數化角度對單位矩陣迭代地執行複數個Givens旋轉。步驟228可包括在步驟230處在中間單式矩陣之複數個複本上並行地執行複數個可相互交換之Givens旋轉。步驟228可進一步包括在步驟232處在已在中間單式矩陣的複本上執行可相互交換之Givens旋轉之後同步化中間單式矩陣之複數個複本。步驟230及步驟232可針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者執行。在已針對每一Givens旋轉區塊執行了步驟230及步驟232之後,所得的中間單式矩陣可用作單式矩陣。
第8D圖示出方法200之額外步驟,該等額外步驟在一些實例中可當在步驟212處計算經旋轉之單式矩陣時執行。在步驟234處,方法200可進一步包括初始化中間經旋轉單式矩陣作為單式矩陣。在步驟236處,方法200可進一步包括藉由複數個參數化角度對單式矩陣迭代地執行複數個逆Givens旋轉。步驟236可包括在步驟238處在中間經旋轉單式矩陣之複數個複本上並行地執行可相互交換之逆Givens旋轉。步驟236可進一步包括在步驟240處在已在中間經旋轉單式矩陣的複本上執行可相互交換之逆Givens旋轉之後同步化中間經旋轉單式矩陣之複數個複本。步驟238及步驟240可針對各自包括複數個可相互交換之逆Givens旋轉的複數個逆Givens旋轉區塊中之每一者執行。該複數個逆Givens旋轉區塊可為在計算座標對序列時所決定之Givens旋轉區塊。在已針對每一逆Givens旋轉區塊執行了步驟238及步驟240之後,所得的中間經旋轉單式矩陣可用作經旋轉單式矩陣。
第8E圖示出方法200之額外步驟,該等額外步驟在一些實例中可當在步驟216處計算經旋轉之損失梯度矩陣時執行。在步驟242處,方法200可包括初始化中間經旋轉損失梯度矩陣作為損失梯度矩陣。在步驟244處,方法200可進一步包括藉由參數化角度對損失梯度矩陣迭代地執行複數個Givens旋轉。步驟244可包括在步驟246處在中間經旋轉損失梯度矩陣之複數個複本上並行地執行可相互交換之Givens旋轉。步驟244可進一步包括在步驟248處在已在中間經旋轉損失梯度矩陣的複本上執行可相互交換之Givens旋轉之後同步化中間經旋轉損失梯度矩陣之複數個複本。步驟246及步驟248可針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者執行。在已針對每一Givens旋轉區塊執行了步驟246及步驟248之後,所得的中間經旋轉損失梯度矩陣可用作經旋轉損失梯度矩陣。
第8F圖示出方法200之額外步驟,該等額外步驟在一些實例中可當在步驟216處根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP時執行。在步驟250處,方法200可包括根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算中間向量積矩陣。在步驟250處計算中間向量積矩陣可包括在步驟252處產生座標對與中間向量積矩陣之列的映射。在步驟250處計算中間向量積矩陣可進一步包括在步驟254處針對中間向量積矩陣之每一列計算彼列中所包括之每一中間向量積矩陣元素,作為
。在中間向量積矩陣元素之此表達式中,
為經旋轉之損失梯度矩陣,
為經旋轉之單式矩陣,
及
為座標對中所包括之座標,且
為中間向量積矩陣之行數。在步驟256處,方法200可進一步包括作為JVP之元素,計算中間向量積矩陣之複數個列總和。中間向量積矩陣之列總和可(例如)藉由使中間向量積矩陣乘以一個向量來計算。
上述技術可允許避免***及消失梯度問題,而不依賴於計算繁複之步驟。使用上述系統及方法,機器學習模型可至少部分地由單式矩陣表示且可以在複數個反向傳播迭代中進行訓練。可使用上述系統及方法在
時間內自複數個參數化角度產生單式矩陣。另外,反向傳播迭代中之每一者可在
時間內執行,其中
為單式矩陣之列數。因此,上述系統及方法可允許即使對大的單式矩陣亦可高效地執行反向傳播。
第9A圖示出執行時間之曲線圖300,以毫秒為單位,作為基於複數個參數化角度
計算單式矩陣
時之函數
。在第9A圖之實例中,示出第一演算法100(順序演算法)及第二演算法110(並行演算法)之對應執行時間。另外,第9B圖示出在計算JVP時執行時間(以毫秒為單位)作為
的函數之曲線圖310。在第9B圖之實例中,針對順序演算法及針對第三演算法120(並行演算法)示出對應執行時間。順序演算法係在CPU上執行,且並行演算法(第二演算法110及第三演算法120)係在GPU上執行。如第9A圖之實例中所示,與針對
之測試值的順序演算法相比較而言,並行演算法可允許
及JVP之計算加速幾個數量級。
在一些實施例中,本文所述方法及過程可綁定一或更多個計算裝置之計算系統。特定而言,該等方法及過程可實施為電腦應用程式或服務、應用程式化介面(application-programming interface; API)、庫及/或其他電腦程式產品。
第10圖示意性地示出計算系統400之非限制性實施例,其可實施上述方法及過程中之一或更多者。以簡化形式示出計算系統400。計算系統400可體現以上所述且在第1A圖中所繪示之計算系統10。計算系統400之部件可被包括在一或更多個個人電腦、伺服器電腦、平板電腦、家庭娛樂電腦、網路計算設備、遊戲設備、行動計算設備、行動通訊設備(例如,智慧型電話)及/或其他計算設備及可穿戴式計算設備(如智慧型手錶及頭戴式增強現實設備)中。
計算系統400包括邏輯處理器402、揮發性記憶體404,及非揮發性儲存裝置406。計算系統400可視情況包括顯示器子系統408、輸入子系統410、通訊子系統412及/或第10圖中未示出之其他部件。
邏輯處理器402包括經配置以執行指令之一或更多個實體裝置。舉例而言,邏輯處理器可經配置以執行指令,該等指令為一或更多個應用程式、程式、常用程式、庫、對象、部件、資料結構或其他邏輯結構的一部分。該等指令可經實施以執行任務、實施資料類型、變換一或更多個部件的狀態、實現技術效果或以其他方式達成期望結果。
邏輯處理器可包括一或更多個實體處理器(硬體),其經配置以執行軟體指令。或者或另外,邏輯處理器可包括一或更多個硬體邏輯電路或韌體裝置,其經配置以執行硬體實施之邏輯或韌體指令。邏輯處理器402之處理器可為單核或多核的,且在其上執行之指令可經配置用於順序的、並行的及/或分散式處理。邏輯處理器之個別部件視情況可分佈在兩個或更多個單獨裝置之間,該等裝置可遠程定位及/或經配置用於協調處理。邏輯處理器之態樣可由以雲端計算配置來配置之可遠端存取的聯網計算裝置虛擬化並執行。在此情形下,該等虛擬化態樣係在各種不同機器之不同實體邏輯處理器上運行,此將可理解。
非揮發性儲存裝置406包括一或更多個實體裝置,其經配置以保持可由邏輯處理器執行之指令以實施本文所述之方法及過程。當實施該等方法及過程時,可變換非揮發性儲存裝置406之狀態,例如,用以保持不同資料。
非揮發性儲存裝置406可包括可移除及/或內置式的實體裝置。非揮發性儲存裝置406可包括光學記憶體(例如,CD、DVD、HD-DVD、藍光光盤,等)、半導體記憶體(例如,ROM、EPROM、EEPROM、FLASH,等)及/或磁性記憶體(例如,硬碟驅動器、軟碟驅動器、磁帶驅動器、MRAM,等),或其他大容量儲存裝置技術。非揮發性儲存裝置406可包括非揮發性的、動態的、靜態的、讀/寫、唯讀、順序存取、位置可定址、檔案可定址及/或內容可定址之裝置。將瞭解,非揮發性儲存裝置406經配置以保持指令,甚至當非揮發性儲存裝置406被斷電時。
揮發性記憶體404可包括實體裝置,其包括隨機存取記憶體。揮發性記憶體404通常由邏輯處理器402用以在處理軟體指令期間臨時儲存資訊。將瞭解,當揮發性記憶體404被斷電時,揮發性記憶體404通常不會繼續儲存指令。
可將邏輯處理器402、揮發性記憶體404及非揮發性儲存裝置406之態樣一起整合至一或更多個硬體邏輯部件中。舉例而言,該等硬體邏輯部件可包括FPGA、程式及應用專用之積體電路(program- and application-specific integrated circuit; PASIC/ASIC)、程式及應用專用之標準產品(program- and application-specific standard product; PSSP/ASSP)、系統單晶片(system-on-a-chip; SOC),及複雜的可程式化邏輯裝置(complex programmable logic device; CPLD)。
術語「模組」、「程式」及「引擎」可用以描述計算系統400之態樣,該計算系統400通常由處理器以軟體實施以便使用揮發性記憶體的部分執行特定功能,該功能涉及特定地配置處理器以執行該功能之變形處理。因此,可經由邏輯處理器402使用揮發性記憶體404的部分執行由非揮發性儲存裝置406保持之指令來實例化模組、程式或引擎。將理解,可自相同的應用程式、服務、代碼塊、對象、庫、常用程式、API、函數等實例化不同的模組、程式及/或引擎。同樣,相同模組、程式及/或引擎可由不同應用程式、伺服器、代碼塊、對象、常用程式、API、函數等進行實例化。術語「模組」、「程式」及「引擎」可涵蓋個別或成群組的可執行檔案、資料檔案、庫、驅動程式、腳本、資料庫記錄,等。
當被包括在內時,顯示器子系統408可用以呈現由非揮發性儲存裝置406保持之資料的可視表示。該可視表示可採取圖形使用者介面(graphical user interface; GUI)的形式。由於本文所述方法及過程改變了非揮發性儲存裝置所保持之資料,並因此變換了非揮發性儲存裝置之狀態,因此顯示器子系統408之狀態可同樣經變換以在視覺上表示底層資料的變化。顯示器子系統408可包括利用幾乎任何類型的技術之一或更多種顯示器裝置。該等顯示器裝置可在共享外殼中與邏輯處理器402、揮發性記憶體404及/或非揮發性儲存裝置406組合,或該等顯示器裝置可為周邊顯示器裝置。
當被包括在內時,輸入子系統410可包括一或更多個使用者輸入裝置或與一或更多個使用者輸入裝置介面連接,如鍵盤、滑鼠、觸控式螢幕或遊戲控制器。在一些實施例中,輸入子系統可包括選定的自然使用者輸入(natural user input; NUI)部件或與選定的自然使用者輸入(NUI)部件介面連接。此種部件可為整合式或周邊的,且輸入動作之轉換及/或處理可在板上或在板外處置。實例NUI部件可包括用於聲音及/或語音識別之麥克風;用於機器視覺及/或手勢識別之紅外線、彩色、立體及/或深度照相機;用於運動偵測及/或意圖識別之頭部***、眼球***、加速度計及/或陀螺儀;及用於評估大腦活動之電場感測部件;及/或任何其他適當感測器。
當被包括在內時,通訊子系統412可經配置以使本文所述之各種計算裝置以通訊方式彼此耦接及與其他裝置耦接。通訊子系統412可包括與一或更多個不同通訊協定相容之有線的及/或無線的通訊裝置。作為非限制性實例,通訊子系統可經配置而用於經由無線電話網路、或有線或無線區域網路或廣域網路(如HDMI over Wi-Fi連接)進行通訊。在一些實施例中,通訊子系統可允許計算系統400經由網路(如網際網路)將訊息發送至其他裝置及/或自其他裝置接收訊息。
以下段落論述本揭示案之若干態樣。根據本揭示案之一個態樣,提供一種計算系統,其包括處理器,該處理器經配置以在複數個反向傳播迭代中訓練機器學習模型。每一反向傳播迭代可包括產生包括複數個座標對之座標對序列。該複數個座標對中之每一座標對在座標對序列中可為唯一的且可包括不匹配座標。反向傳播迭代可進一步包括接收分別與複數個座標對相關聯之複數個參數化角度。反向傳播迭代可進一步包括計算藉由該複數個參數化角度參數化之單式矩陣。反向傳播迭代可進一步包括關於單式矩陣之複數個單式矩陣元素計算訓練損失的損失梯度矩陣。反向傳播迭代可進一步包括關於該複數個參數化角度計算訓練損失之Jacobian向量積(Jacobian-vector product; JVP)。計算JVP可包括藉由在該單式矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的軸之逆Givens旋轉達參數化角度的來計算經旋轉之單式矩陣。計算JVP可進一步包括藉由在該損失梯度矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的該軸之Givens旋轉達參數化角度來計算經旋轉之損失梯度矩陣。可根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP。反向傳播迭代可進一步包括至少部分地基於JVP來更新複數個參數化角度。
根據此態樣,該處理器可經配置以至少部分地藉由以下各者而產生該座標對序列:對於
個索引之索引序列,其中
為單式矩陣之列數,在初始配對迭代之後的複數個配對迭代中之每一者中,將每一索引之索引序列中除固定索引以外的相應位置移位1模
。在複數個配對迭代中之每一配對迭代中,處理器可進一步經配置以至少部分地藉由迭代地將該索引序列中之第一個未配對索引與該索引序列中之最後一個未配對索引配對直至索引序列包括少於兩個未配對索引為止而產生座標對序列。在複數個配對迭代中之每一配對迭代中,處理器可進一步經配置以至少部分地藉由將每一索引對添加至座標對序列而產生座標對序列。
根據此態樣,處理器可經配置以至少部分地藉由在單位矩陣上藉由參數化角度迭代地執行複數個Givens旋轉來計算單式矩陣。
根據此態樣,處理器可經配置以至少部分地藉由初始化中間單式矩陣作為該單位矩陣來計算單式矩陣。處理器可進一步經配置以至少部分地藉由以下來計算單式矩陣:針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地在該中間單式矩陣之複數個複本上並行地執行該複數個可相互交換之Givens旋轉,並在已在該中間單式矩陣的該等複本上執行該等可相互交換之Givens旋轉之後同步化該中間單式矩陣之該複數個複本。
根據此態樣,處理器可經配置以至少部分地藉由初始化中間經旋轉單式矩陣作為單式矩陣來計算經旋轉之單式矩陣。處理器可進一步經配置以至少部分地藉由以下來計算經旋轉之單式矩陣:針對各自包括複數個可相互交換之逆Givens旋轉的複數個逆Givens旋轉區塊中之每一者,迭代地在中間經旋轉單式矩陣之複數個複本上並行地執行可相互交換之逆Givens旋轉,並在已在中間經旋轉單式矩陣的複本上執行該等可相互交換之逆Givens旋轉之後同步化中間經旋轉單式矩陣之該複數個複本。
根據此態樣,處理器可經配置以至少部分地藉由初始化中間經旋轉損失梯度矩陣作為損失梯度矩陣來計算經旋轉之損失梯度矩陣。處理器可進一步經配置以至少部分地藉由以下來計算經旋轉之損失梯度矩陣:針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地在中間經旋轉損失梯度矩陣之複數個複本上並行地執行可相互交換之Givens旋轉,並在已在中間經旋轉損失梯度矩陣的複本上執行該等可相互交換之Givens旋轉之後同步化中間經旋轉損失梯度矩陣之該複數個複本。
根據此態樣,處理器可經配置以經由關於單式矩陣之單式矩陣元素的訓練損失的自動微分來計算損失梯度矩陣。
根據此態樣,處理器可經配置以至少部分地藉由根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算中間向量積矩陣而根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣來計算JVP。處理器可進一步經配置以至少部分地藉由計算中間向量積矩陣之複數個列總和(作為該JVP之元素)而根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣來計算JVP。
根據此態樣,處理器可經配置以至少部分地藉由產生該等座標對與該中間向量積矩陣之列的映射而計算中間向量積矩陣。處理器可進一步經配置以至少部分地藉由以下來計算中間向量積矩陣:對於中間向量積矩陣之每一列,計算彼列中所包括之每一中間向量積矩陣元素,作為
,其中
為經旋轉之損失梯度矩陣,
為經旋轉之單式矩陣,
及
為座標對中所包括之座標,且
為中間向量積矩陣之行號。
根據本揭示案之另一態樣,提供一種訓練機器學習模型之方法。該方法可包括在複數個反向傳播迭代中之每一者中,產生包括複數個座標對之座標對序列。該複數個座標對中之每一座標對在座標對序列中可為唯一的且可包括不匹配座標。該方法可進一步包括在該複數個反向傳播迭代中之每一者中,接收分別與該複數個座標對相關聯之複數個參數化角度。該方法可進一步包括在該複數個反向傳播迭代中之每一者中,計算藉由該複數個參數化角度參數化之單式矩陣。該方法可進一步包括在該複數個反向傳播迭代中之每一者中,關於單式矩陣之複數個單式矩陣元素計算訓練損失的損失梯度矩陣。該方法可進一步包括在該複數個反向傳播迭代中之每一者中,關於該複數個參數化角度計算訓練損失之Jacobian向量積(Jacobian-vector product; JVP)。計算JVP可包括藉由在該單式矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的軸之逆Givens旋轉達參數化角度來計算經旋轉之單式矩陣。計算JVP可進一步包括藉由在該損失梯度矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的該軸之Givens旋轉達參數化角度來計算經旋轉之損失梯度矩陣。可根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP。該方法可進一步包括在該複數個反向傳播迭代中之每一者中,至少部分地基於JVP來更新複數個參數化角度。
根據此態樣,產生座標對序列可包括對於
個索引之索引序列,其中
為單式矩陣之列數,在初始配對迭代之後的複數個配對迭代中之每一者中,將每一索引之索引序列中除固定索引以外的相應位置移位1模
。產生座標對序列可進一步包括在複數個配對迭代中之每一者中,迭代地將該索引序列中之第一個未配對索引與該索引序列中之最後一個未配對索引配對,直至該索引序列包括少於兩個未配對索引為止。產生座標對序列可進一步包括在複數個配對迭代中之每一者中,將每一索引對添加至該座標對序列。
根據此態樣,計算單式矩陣可包括單位矩陣上藉由參數化角度迭代地執行該複數個Givens旋轉。
根據此態樣,計算單式矩陣可包括初始化中間單式矩陣作為該單位矩陣。計算單式矩陣可進一步包括針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地在中間單式矩陣之複數個複本上並行地執行該複數個可相互交換之Givens旋轉,並在已在該中間單式矩陣的該等複本上執行該等可相互交換之Givens旋轉之後同步化該中間單式矩陣之該複數個複本。
根據此態樣,計算經旋轉之單式矩陣可包括初始化中間經旋轉單式矩陣作為單式矩陣。計算經旋轉之單式矩陣可進一步包括針對各自包括複數個可相互交換之逆Givens旋轉的複數個逆Givens旋轉區塊中之每一者,迭代地在中間經旋轉單式矩陣之複數個複本上並行地執行該等可相互交換之逆Givens旋轉,並在已在該中間經旋轉單式矩陣的該等複本上執行該等可相互交換之逆Givens旋轉之後同步化該中間經旋轉單式矩陣之該複數個複本。
根據此態樣,計算經旋轉之損失梯度矩陣可包括初始化中間經旋轉損失梯度矩陣作為損失梯度矩陣。計算經旋轉之損失梯度矩陣可進一步包括針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地在中間經旋轉損失梯度矩陣之複數個複本上並行地執行該等可相互交換之Givens旋轉,並在已在該中間經旋轉損失梯度矩陣的該等複本上執行該等可相互交換之Givens旋轉之後同步化該中間經旋轉損失梯度矩陣之該複數個複本。
根據此態樣,可經由訓練損失關於單式矩陣之單式矩陣元素的自動微分來計算損失梯度矩陣。
根據此態樣,根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP可包括根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算中間向量積矩陣。根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP可進一步包括計算中間向量積矩陣之複數個列總和,作為該JVP之元素。
根據此態樣,計算中間向量積矩陣可包括產生座標對與中間向量積矩陣之列的映射。計算中間向量積矩陣可進一步包括對於中間向量積矩陣之每一列,計算彼列中所包括之每一中間向量積矩陣元素,作為
,其中
為經旋轉之損失梯度矩陣,
為經旋轉之單式矩陣,
及
為座標對中所包括之座標,且
為中間向量積矩陣之行號。
根據本揭示案之另一態樣,提供一種計算系統,其包括處理器,該處理器經配置以在複數個反向傳播迭代中訓練機器學習模型。每一反向傳播迭代可包括在正向傳遞中,至少部分地藉由並行地執行複數個Givens旋轉來計算藉由複數個參數化角度參數化之單式矩陣。每一反向傳播迭代可進一步包括在反向傳遞中,至少部分地藉由並行地在損失梯度矩陣上執行該複數個Givens旋轉及在單式矩陣上執行複數個逆Givens旋轉而關於該複數個參數化角度計算訓練損失之Jacobian向量積(Jacobian-vector product; JVP)。每一反向傳播迭代可進一步包括至少部分地基於JVP來更新複數個參數化角度。
如本文中所使用,「及/或」被定義為包括性的或∨,如以下真值表中所指定:
A | B | A∨B |
真 | 真 | 真 |
真 | 假 | 真 |
假 | 真 | 真 |
假 | 假 | 假 |
將理解,本文所述之配置及/或方法本質上為例示性的,且不應在限制性意義上考慮該等特定實施例或實例,因為諸多變化係可能的。本文所述之特定常用程式或方法可代表任何數目個處理策略中之一或更多者。如此,所繪示及/或描述之各種動作可以所繪示及/或描述之順序執行,以其他順序執行,並行地執行,或被省略。同樣,上述過程之次序可變化。
本揭示案之標的包括各種過程、系統及配置之所有新穎且非顯而易見的組合及子組合,及本文所揭示之其他特徵、功能、動作及/或性質,及其任何及所有等效物。
10:計算系統
12:處理器
14:記憶體
20:機器學習模型
22:輸入層
24:深層
26:輸出層
30:訓練資料
32:訓練輸入
34:真實訓練輸出
36:反向傳播演算法
38:神經元權重計算
38A:並行正向U演算法
38B:並行Jacobian向量積(JVP)演算法
40:工作負載排程演算法
42:處理器執行緒
44:處理單元
100:第一演算法
110:第二演算法
120:第三演算法
120A:第一部分
120B:第二部分
130:第四演算法
200:方法
202:步驟
204:步驟
206:步驟
208:步驟
210:步驟
212:步驟
214:步驟
216:步驟
218:步驟
220:步驟
222:步驟
224:步驟
226:步驟
228:步驟
230:步驟
232:步驟
234:步驟
236:步驟
238:步驟
240:步驟
242:步驟
244:步驟
246:步驟
248:步驟
250:步驟
252:步驟
254:步驟
256:步驟
300:曲線圖
310:曲線圖
400:計算系統
402:邏輯處理器
404:揮發性記憶體
406:非揮發性儲存裝置
408:顯示器子系統
410:輸入子系統
412:通訊子系統
第1A圖示意性地示出根據一個示例性實施例之示例性計算系統,其包括處理器,可在該處理器處在複數個處理器執行緒上並行地訓練機器學習模型。
第1B圖示意性地示出當在處理器處執行反向傳播迭代時第1A圖之示例性計算系統。
第2圖示出根據第1A圖的實例之第一演算法的示例性偽代碼,處理器可經配置以藉由該第一演算法基於複數個參數化角度及座標對序列來計算單式矩陣。
第3圖示出根據第1A圖的實例之第二演算法的示例性偽代碼,處理器可經配置以藉由該第二演算法基於複數個參數化角度及佈置在複數個區塊中之座標對序列來計算單式矩陣。
第4圖示意性地示出根據第1A圖的實例之包括複數個座標對區塊之示例性區塊序列的產生。
第5圖示意性地示出當在第4圖的實例中所產生之複數個區塊內並行地執行複數個Givens旋轉時使用第3圖的第二演算法之單式矩陣的示例性計算。
第6A圖至第6B圖示出根據第1A圖的實例之第三演算法的示例性偽代碼,處理器可經配置以藉由該第三演算法來計算機器學習模型之Jacobian向量積(Jacobian-vector product; JVP)。
第7圖示出根據第1A圖的實例之第四演算法的示例性偽代碼,處理器可經配置以藉由該第四演算法基於複數個參數化角度、複數個參數化相位角及佈置在複數個區塊中之座標對序列來計算單式矩陣。
第8A圖示出根據第1A圖的實例之示例性方法,其用於計算系統以在複數個反向傳播迭代中訓練機器學習模型。
第8B圖示出第8A圖的方法之可在產生座標對序列時執行的額外步驟。
第8C圖示出第8A圖的方法之可在計算單式矩陣時執行的額外步驟。
第8D圖示出第8A圖的方法之可在計算旋轉單式矩陣時執行的額外步驟。
第8E圖示出第8A圖的方法之可在計算旋轉損失梯度矩陣時執行的額外步驟。
第8F圖示出第8A圖的方法之可在根據經旋轉之單式矩陣及經旋轉之損失梯度矩陣計算JVP時執行的額外步驟。
第9A圖示出根據第1A圖的實例之當使用依序演算法及使用並行演算法計算單式矩陣時執行時間的曲線圖。
第9B圖示出根據第1A圖的實例之當使用依序演算法及使用並行演算法計算JVP時執行時間的曲線圖。
第10圖示出可在其中實施第1A圖的計算系統之示例性計算環境的示意圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
10:計算系統
12:處理器
14:記憶體
20:機器學習模型
22:輸入層
24:深層
26:輸出層
30:訓練資料
32:訓練輸入
34:真實訓練輸出
36:反向傳播演算法
38:神經元權重計算
38A:並行正向U演算法
38B:並行Jacobian向量積(JVP)演算法
40:工作負載排程演算法
42:處理器執行緒
44:處理單元
Claims (20)
- 一種計算系統,包括: 一處理器,經配置以: 在複數個反向傳播迭代中訓練一機器學習模型,其中每一反向傳播迭代包括: 產生包括複數個座標對之一座標對序列,其中該複數個座標對中之每一座標對在該座標對序列內為唯一的且包括不匹配座標; 接收分別與該複數個座標對相關聯之複數個參數化角度; 計算藉由該複數個參數化角度參數化之一單式矩陣; 關於該單式矩陣之複數個單式矩陣元素計算一訓練損失的一損失梯度矩陣; 關於該複數個參數化角度計算該訓練損失之一Jacobian向量積(JVP),其中計算該JVP包括: 藉由在該單式矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的一軸之一逆Givens旋轉達該參數化角度,來計算一經旋轉之單式矩陣; 藉由在該損失梯度矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的該軸的一Givens旋轉達該參數化角度,來計算一經旋轉之損失梯度矩陣;及 自該經旋轉之單式矩陣及該經旋轉之損失梯度矩陣計算該JVP;及 至少部分地基於該JVP來更新該複數個參數化角度。
- 如請求項1所述之計算系統,其中該處理器經配置以至少部分地藉由在一單位矩陣上藉由該等參數化角度迭代地執行該複數個Givens旋轉來計算該單式矩陣。
- 如請求項3所述之計算系統,其中該處理器經配置以至少部分地藉由以下各者而計算該單式矩陣: 初始化一中間單式矩陣作為該單位矩陣;及 針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地進行: 在該中間單式矩陣之複數個複本上並行地執行該複數個可相互交換之Givens旋轉;及 在已在該中間單式矩陣的該等複本上執行該等可相互交換之Givens旋轉之後同步化該中間單式矩陣之該複數個複本。
- 如請求項1所述之計算系統,其中該處理器經配置以至少部分地藉由以下各者而計算該經旋轉之單式矩陣: 初始化一中間經旋轉單式矩陣作為該單式矩陣;及 針對各自包括複數個可相互交換之逆Givens旋轉的複數個逆Givens旋轉區塊中之每一者,迭代地進行: 在該中間經旋轉單式矩陣之複數個複本上並行地執行該等可相互交換之逆Givens旋轉;及 在已在該中間經旋轉單式矩陣的該等複本上執行該等可相互交換之逆Givens旋轉之後,同步化該中間經旋轉單式矩陣之該複數個複本。
- 如請求項1所述之計算系統,其中該處理器經配置以至少部分地藉由以下各者而計算該經旋轉之損失梯度矩陣: 初始化一中間經旋轉損失梯度矩陣作為該損失梯度矩陣;及 針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地進行: 在該中間經旋轉損失梯度矩陣之複數個複本上並行地執行該等可相互交換之Givens旋轉;及 在已在該中間經旋轉損失梯度矩陣的該等複本上執行該等可相互交換之Givens旋轉之後同步化該中間經旋轉損失梯度矩陣之該複數個複本。
- 如請求項1所述之計算系統,其中該處理器經配置以經由關於該單式矩陣之該等單式矩陣元素的該訓練損失的自動微分來計算該損失梯度矩陣。
- 如請求項1所述之計算系統,其中該處理器經配置以至少部分地藉由以下各者而自該經旋轉之單式矩陣及該經旋轉之損失梯度矩陣來計算該JVP: 自該經旋轉之單式矩陣及該經旋轉之損失梯度矩陣計算一中間向量積矩陣;及 作為該JVP之元素,計算該中間向量積矩陣之複數個列總和。
- 一種訓練一機器學習模型之方法,該方法包括在複數個反向傳播迭代中之每一者中的以下步驟: 產生包括複數個座標對之一座標對序列,其中該複數個座標對中之每一座標對在該座標對序列內為唯一的且包括不匹配座標; 接收分別與該複數個座標對相關聯之複數個參數化角度; 計算藉由該複數個參數化角度參數化之一單式矩陣; 關於該單式矩陣之複數個單式矩陣元素計算一訓練損失的一損失梯度矩陣; 關於該複數個參數化角度計算該訓練損失之一Jacobian向量積(JVP),其中計算該JVP之步驟包括以下步驟: 藉由在該單式矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的該軸的一逆Givens旋轉達該參數化角度,來計算一經旋轉之單式矩陣; 藉由在該損失梯度矩陣上針對該複數個座標對中之每一座標對執行針對該座標對圍繞由該座標對所指定的該軸的一Givens旋轉達該參數化角度,來計算一經旋轉之損失梯度矩陣;及 自該經旋轉之單式矩陣及該經旋轉之損失梯度矩陣計算該JVP;及 至少部分地基於該JVP來更新該複數個參數化角度。
- 如請求項11所述之方法,其中計算單式矩陣之步驟包括以下步驟:在一單位矩陣上藉由該等參數化角度迭代地執行該複數個Givens旋轉。
- 如請求項13所述之方法,其中計算該單式矩陣之步驟包括以下步驟: 初始化一中間單式矩陣作為該單位矩陣;及 針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地進行: 在該中間單式矩陣之複數個複本上並行地執行該複數個可相互交換之Givens旋轉;及 在已在該中間單式矩陣的該等複本上執行該等可相互交換之Givens旋轉之後,同步化該中間單式矩陣之該複數個複本。
- 如請求項11所述之方法,其中計算該經旋轉之單式矩陣之步驟包括以下步驟: 初始化一中間經旋轉單式矩陣作為該單式矩陣;及 針對各自包括複數個可相互交換之逆Givens旋轉的複數個逆Givens旋轉區塊中之每一者,迭代地進行: 在該中間經旋轉單式矩陣之複數個複本上並行地執行該等可相互交換之逆Givens旋轉;及 在已在該中間經旋轉單式矩陣的該等複本上執行該等可相互交換之逆Givens旋轉之後,同步化該中間經旋轉單式矩陣之該複數個複本。
- 如請求項11所述之方法,其中計算該經旋轉之損失梯度矩陣之步驟包括以下步驟: 初始化一中間經旋轉損失梯度矩陣作為該損失梯度矩陣;及 針對各自包括複數個可相互交換之Givens旋轉的複數個Givens旋轉區塊中之每一者,迭代地進行: 在該中間經旋轉損失梯度矩陣之複數個複本上並行地執行該等可相互交換之Givens旋轉;及 在已在該中間經旋轉損失梯度矩陣的該等複本上執行該等可相互交換之Givens旋轉之後,同步化該中間經旋轉損失梯度矩陣之該複數個複本。
- 如請求項11所述之方法,其中經由關於該單式矩陣之該等單式矩陣元素的該訓練損失的自動微分來計算該損失梯度矩陣。
- 如請求項11所述之方法,其中自該經旋轉之單式矩陣及該經旋轉之損失梯度矩陣計算該JVP之步驟包括以下步驟: 根據該經旋轉之單式矩陣及該經旋轉之損失梯度矩陣計算一中間向量積矩陣;及 作為該JVP之元素,計算該中間向量積矩陣之複數個列總和。
- 一種計算系統,包括: 一處理器,經配置以: 在複數個反向傳播迭代中訓練一機器學習模型,其中每一反向傳播迭代包括: 在一正向傳遞中,至少部分地藉由並行地執行複數個Givens旋轉來計算藉由複數個參數化角度參數化之一單式矩陣;及 在一反向傳遞中: 至少部分地藉由並行地在一損失梯度矩陣上執行該複數個Givens旋轉及在該單式矩陣上執行複數個逆Givens旋轉而關於該複數個參數化角度計算一訓練損失之一Jacobian向量積(JVP);及 至少部分地基於該JVP來更新該複數個參數化角度。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/318,977 | 2021-05-12 | ||
US17/318,977 US20220374718A1 (en) | 2021-05-12 | 2021-05-12 | Backpropagation using parametrizing angles of unitary matrix |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202248908A true TW202248908A (zh) | 2022-12-16 |
Family
ID=81387373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111112975A TW202248908A (zh) | 2021-05-12 | 2022-04-06 | 使用單位矩陣的參數化角度的反向傳播 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220374718A1 (zh) |
EP (1) | EP4338098A1 (zh) |
CN (1) | CN117321608A (zh) |
AU (1) | AU2022274680A1 (zh) |
TW (1) | TW202248908A (zh) |
WO (1) | WO2022240514A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922314B1 (en) * | 2018-11-30 | 2024-03-05 | Ansys, Inc. | Systems and methods for building dynamic reduced order physical models |
CN116523065B (zh) * | 2023-04-18 | 2024-07-12 | 北京百度网讯科技有限公司 | 确定量子设备演化酉矩阵的方法及装置、电子设备和介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018098230A1 (en) * | 2016-11-22 | 2018-05-31 | Massachusetts Institute Of Technology | Systems and methods for training neural networks |
US10740693B2 (en) * | 2018-05-15 | 2020-08-11 | Lightmatter, Inc. | Systems and methods for training matrix-based differentiable programs |
JP7295421B2 (ja) * | 2019-08-22 | 2023-06-21 | オムロン株式会社 | 制御装置及び制御方法 |
WO2022123655A1 (ja) * | 2020-12-08 | 2022-06-16 | 日本電信電話株式会社 | 学習装置、学習方法及びプログラム |
-
2021
- 2021-05-12 US US17/318,977 patent/US20220374718A1/en active Pending
-
2022
- 2022-04-06 TW TW111112975A patent/TW202248908A/zh unknown
- 2022-04-09 WO PCT/US2022/024151 patent/WO2022240514A1/en active Application Filing
- 2022-04-09 AU AU2022274680A patent/AU2022274680A1/en active Pending
- 2022-04-09 CN CN202280034235.5A patent/CN117321608A/zh active Pending
- 2022-04-09 EP EP22719180.6A patent/EP4338098A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220374718A1 (en) | 2022-11-24 |
EP4338098A1 (en) | 2024-03-20 |
CN117321608A (zh) | 2023-12-29 |
WO2022240514A1 (en) | 2022-11-17 |
AU2022274680A1 (en) | 2023-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7087079B2 (ja) | 深層学習アプリケーションのための堅牢な勾配重み圧縮方式 | |
KR102327615B1 (ko) | 연산 그래프 수정 | |
TW202248908A (zh) | 使用單位矩陣的參數化角度的反向傳播 | |
CN113469355B (zh) | 分布式***中的多模型训练管道 | |
US20210295168A1 (en) | Gradient compression for distributed training | |
US8464026B2 (en) | Method and apparatus for computing massive spatio-temporal correlations using a hybrid CPU-GPU approach | |
US10628740B2 (en) | Asynchronous stochastic gradient descent | |
US11922337B2 (en) | Accelerator for computing combinatorial cost function | |
Witte et al. | An event-driven approach to serverless seismic imaging in the cloud | |
CN113449861A (zh) | 使用部分梯度更新的推测性训练 | |
WO2019060730A1 (en) | DETERMINING CONTROL POLICIES FOR ROBOTS WITH STRUCTURED EXPLORATION TOLERANT TO NOISE | |
US20240232634A1 (en) | Neural adapter for classical machine learning (ml) models | |
CN115699033A (zh) | 量子数据加载器 | |
US10922606B2 (en) | Multi-directional reduction in large scale deep-learning | |
CN114008635A (zh) | 神经网络逐层调试 | |
Nunez et al. | A formal framework to analyze cost and performance in map-reduce based applications | |
TW202230168A (zh) | 在硬體加速器上計算部分矩陣 | |
US20230196651A1 (en) | Method and apparatus with rendering | |
TW202234267A (zh) | 在硬體加速器處計算內積 | |
CN111340950A (zh) | 数字高程模型重建方法及装置 | |
TW202338668A (zh) | 用於神經網路訓練的稀疏性掩蔽方法 | |
JP2023524822A (ja) | アナログ・クロスバー・アーキテクチャを使用した行列スケッチング | |
EP4156029A1 (en) | Method and apparatus with dynamic convolution | |
US20210081610A1 (en) | Method and apparatus for processing sequence | |
US20240086719A1 (en) | Sparse encoding and decoding at mixture-of-experts layer |