CN117321608A - 使用酉矩阵的参数化角度的反向传播 - Google Patents

使用酉矩阵的参数化角度的反向传播 Download PDF

Info

Publication number
CN117321608A
CN117321608A CN202280034235.5A CN202280034235A CN117321608A CN 117321608 A CN117321608 A CN 117321608A CN 202280034235 A CN202280034235 A CN 202280034235A CN 117321608 A CN117321608 A CN 117321608A
Authority
CN
China
Prior art keywords
matrix
unitary matrix
rotated
givens
parameterized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280034235.5A
Other languages
English (en)
Inventor
F·哈姆扎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN117321608A publication Critical patent/CN117321608A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations 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

一种计算系统,包括处理器,处理器被配置为在多个反向传播迭代中训练机器学习模型。每个反向传播迭代可以包括生成坐标对序列。每个坐标对在坐标对序列内可以是唯一的并且可以包括不匹配的坐标。反向传播迭代还可以包括接收分别与多个坐标对相关联的参数化角度。反向传播迭代还可以包括计算由参数化角度参数化的酉矩阵、计算损失梯度矩阵以及计算雅可比向量积(JVP)。计算JVP可以包括针对每个坐标对计算所旋转的酉矩阵和所旋转的损失梯度矩阵。JVP可以从所旋转的酉矩阵和所旋转的损失梯度矩阵来计算。反向传播迭代还可以包括至少部分地基于JVP来更新参数化角度。

Description

使用酉矩阵的参数化角度的反向传播
背景技术
在机器学习的一些最新进展中,正交矩阵已被用于编码神经网络中神经元的权重。正交矩阵是一个方块矩阵,方块矩阵中矩阵的列指定正交向量的集合。正交矩阵满足特性UT=U-1,其中UT是矩阵U的转置,U-1是矩阵U的逆矩阵。此外,正交矩阵的集合是酉矩阵集合的子集,其中每个矩阵元素都是实值。酉矩阵集合是满足的矩阵的集合,其中是矩阵U的共轭转置。
通过使用正交矩阵来编码神经网络中神经元的权重,可以避免经由反向传播训练神经网络时的梯度消失问题和梯度爆炸问题。在反向传播被执行时,梯度爆炸问题和梯度消失问题会分别在损失函数的梯度变得非常大或非常小时出现。因此,神经网络的权重可以通过过大或过小的数量来更新,以实现神经网络的期望行为。在正交矩阵中表示权重可以通过归一化列向量的长度来防止梯度爆炸和消失的问题。
发明内容
根据本公开的一个方面,提供了一种计算系统,包括被配置为在多个反向传播迭代中训练机器学习模型。每个反向传播迭代可以包括生成包括多个坐标对的坐标对序列。多个坐标对中的每个坐标对在坐标对序列内可以是唯一的,并且可以包括不匹配的坐标。反向传播迭代还可以包括接收分别与多个坐标对相关联的多个参数化角度。反向传播迭代还可以包括计算由多个参数化角度参数化的酉矩阵。反向传播迭代还可以包括计算相对于酉矩阵的多个酉矩阵元素的训练损失的损失梯度矩阵。反向传播迭代还可以包括计算相对于多个参数化角度的训练损失的雅可比向量积(JVP)。计算JVP可以包括通过针对多个坐标对中的每个坐标对,在酉矩阵上通过坐标对的参数化角度围绕由坐标对指定的轴执行逆吉文斯旋转来计算所旋转的酉矩阵。计算JVP可以包括通过针对多个坐标对中的每个坐标对,在损失梯度矩阵上通过坐标对的参数化角度围绕由坐标对指定的轴执行吉文斯旋转来计算所旋转的损失梯度矩阵。JVP可以从所旋转的酉矩阵和所旋转的损失梯度矩阵来计算。反向传播迭代还可以包括至少部分地基于JVP来更新多个参数化角度。
提供本发明内容是为了以简化的形式介绍下面在详细描述中进一步描述的概念的选择。本发明内容的目的不在于识别所要求保护的主题的关键特征或基本特征,也不在于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决本公开的任何部分中指出的任何或所有缺点的实现。
附图说明
图1A示意性地示出了根据一个示例实施例的包括处理器的示例计算系统,在该处理器处机器学习模型可以在多个处理器线程处并行地被训练。
图1B示意性地示出了当反向传播迭代在处理器处被执行时的图1A的示例计算系统。
图2示出了根据图1A的示例的第一算法的示例伪代码,通过该示例伪代码,处理器可以被配置为基于多个参数化角度和坐标对序列来计算酉矩阵。
图3示出了根据图1A的示例的第二算法的示例伪代码,通过该示例伪代码,处理器可以被配置为基于多个参数化角度和被布置在多个块中的坐标对序列来计算酉矩阵。
图4示意性地示出了根据图1A的示例的包括多个坐标对的块的示例块序列的生成。
图5示意性地示出了当多个吉文斯旋转当图4的示例中生成的多个块内被并行地执行时,使用图3的第二算法的酉矩阵的示例计算。
图6A-6B示出了根据图1A的示例的第三算法的示例伪代码,通过该示例伪代码,处理器可以被配置为计算用于机器学习模型的雅可比向量积(JVP)。
图7示出了根据图1A的示例的第四算法的示例伪代码,通过该示例伪代码,处理器可以被配置为基于多个参数化角度、多个参数化相位角以及被布置在多个块中的坐标对序列来计算酉矩阵。
图8A示出了根据图1A的示例,与计算系统一起用于在多个反向传播迭代中训练机器学习模型的示例方法。
图8B示出了当生成坐标对序列时可以被执行的图8A的方法的附加步骤。
图8C示出了当计算酉矩阵时可以被执行的图8A的方法的附加步骤。
图8D示出了当计算旋转的酉矩阵时可以被执行的图8A的方法的附加步骤。
图8E示出了当计算旋转的损失梯度矩阵时可以被执行的图8A的方法的附加步骤。
图8F示出了当从旋转的酉矩阵和旋转的损失梯度矩阵计算JVP时可以被执行的图8A的方法的附加步骤。
图9A示出了根据图1A的示例,当使用顺序算法以及使用并行算法来计算酉矩阵时的执行时间的图。
图9B示出了根据图1A的示例,当使用顺序算法以及使用并行算法计算JVP时的执行时间的图。
图10示出了其中可以实施图1A的计算系统的示例计算环境的示意视图。
具体实施方式
在先前关于在机器学习中使用正交矩阵的工作中,当权重在正交矩阵中被表示时训练神经网络的方法很难推广。先前存在的一些方法被限于酉矩阵集合的特定子集。其它现有方法包括计算复杂度高的步骤,诸如矩阵求逆O(n3),可能使这些方法无法被用于训练大型模型。此外,当训练机器学习模型时使用正交矩阵的现有方法不适合高水平的并行化。
为了克服上述挑战,下面将讨论用于训练机器学习模型的系统和方法。在下面的示例中,用于表示权重的矩阵是特殊正交矩阵的集合{U∈SO(n)}的成员,它们是满足特性UUT=UTU=I和det U=1的实值矩阵,其中I是单位矩阵。然而,如下文进一步详细讨论的,下面的系统和方法可以被扩展,使得任何酉矩阵可以被使用。此外,下面的示例假设矩阵U中包括的列的数目n为偶数。下面还将讨论以下技术对n为奇数值的扩展。
图1A示意性地示出了根据本公开的一个实施例的的示例计算系统10,机器学习模型20可在其上被训练。计算系统10可以包括通信耦合的处理器12和存储器14。在图1A的示例中,处理器12和存储器14在单个物理计算设备内被示出。然而,在其他示例中,处理器12和/或存储器14的功能可以跨多个通信耦合的物理计算设备被分布。在这些示例中,多个物理计算设备可以是位于数据中心中的多个服务器计算设备。处理器12可以例如在一个或多个中央处理器(CPU)、图形处理器(GPU)、现场可编程门阵列(FPGA)、专用硬件加速器或其他类型的处理设备中被实例化。
处理器12可以被配置为当训练机器学习模型20时并行执行多个处理器线程42。如图1A的示例所示,处理器12可以被配置为执行工作负载调度算法40,以将计算任务分配给多个处理器线程42。在这样的示例中,工作负载调度算法40可以被配置为向多个处理单元44传输指令,以并行执行多个处理器线程42。然后,多个处理器线程42可以在相应的多个处理单元44处被执行。多个处理单元44可以在计算系统10中包括的单个物理计算设备处或多个物理计算设备处被实例化。在一些示例中,处理单元可以是多核处理器(例如,多核中央处理器(CPU)、多核图形处理器(GPU)、或多核张量处理器(TPU))的特定核、或者可以由单核CPU、GPU或TPU来具体化,或者可以是现场可编程门阵列(FPGA)加速硬件。在图1A的示例中,多个处理器线程42被描绘为在通过互相连接被耦合到处理器12的硬件加速单元的多个处理器核处执行。
如图1A的示例所示,机器学习模型20可以是深度神经网络。例如,机器学习模型20可以是卷积神经网络、循环神经网络或生成模型。机器学习模型20可以包括具有各个激活函数的多个神经元。此外,神经元之间的连接可以具有各自的权重w,这些权重可以形成机器学习模型20的参数。多个神经元可以被组织在输入层22、一个或多个深层24、以及输出层26之中。每个神经元可以被连接到每个相邻层中的至少一个其他神经元。当机器学习模型20接收到输入时,该输入可以被加载到输入层22中并穿过一个或多个深层24,使得一个或多个输出在输出层26处被产生。
机器学习模型20可以使用包括多个训练输入32和相应的多个真实训练输出34的训练数据30来训练。处理器12可以被配置为使用反向传播算法36来训练机器学习模型20。当处理器12执行反向传播算法36时,处理器12可以被配置为执行多个迭代,每个迭代包括通过机器学习模型20的前向传递和反向传递。在每个前向传递中,处理器12可以被配置为将一个或多个训练输入32输入到输入层22中,并计算一个或多个输出。在反向传递期间,处理器12可以被配置为使用损失函数将前向传递期间产生的一个或多个输出与相应的真实训练输出34进行比较,其中处理器12可以被配置为计算梯度。处理器12然后可以被配置为基于损失函数的梯度来修改机器学习模型20的权重,因此,当反向传播算法36被执行时,处理器12可以被配置为针对机器学习模型20执行多个神经元的权重计算38。
反向传播算法的每个神经元权重计算38可以包括执行并行前向U算法38A和并行雅可比向量积(JVP)算法38B。图1B示出了当并行前向U算法38A和并行JVP算法38B在处理器12处被执行时计算系统10的附加细节。如上所述,计算系统10的处理器12可以被配置为在多个反向传播迭代中训练机器学习模型,每个反向传播迭代包括前向传递和反向传递。如下文进一步详细讨论,在前向传递中,处理器12可以被配置为计算由多个参数化角度θ参数化的酉矩阵U。在反向传递期间,处理器12可以被配置为计算雅可比向量积(JVP),被定义为:
其中L是机器学习模型的训练损失。在每个反向传播迭代中,处理器12可以进一步被配置为至少部分地基于JVP来更新机器学习模型的参数。因此,处理器12可以被配置为通过在多个反向传播迭代的过程中更新模型参数来训练机器学习模型。
酉矩阵U可以经由多个吉文斯(Givens)旋转的组合被参数化。当酉矩阵使用吉文斯旋转对被参数化时,吉文斯旋转可以在由酉矩阵U的坐标轴对贯穿的平面中来执行。处理器12可以被配置为定义吉文斯旋转被应用于参数化SO(n)的顺序。吉文斯旋转被应用的顺序可以被指示为包括多个坐标对ek=(i,j),i<j的坐标对序列E=(e1…eN)。多个坐标对中的每个坐标对ek在坐标对序列E中可以是唯一的并且可以包括不匹配的坐标。酉矩阵U的坐标可以使用{0,…n-1}中的索引来标记。如下文进一步所描述,坐标对序列E的元素ek可以被用于定义吉文斯旋转被应用的顺序。
每个反向传播迭代可以包括接收分别与多个坐标对ek相关联的多个参数化角度θe。因此,处理器12可以被配置为接收N个参数化角度θe,其可以被统称地指示为θ=(θ1,…θN)。多个参数化角度θe可以被用作对包括在机器学习模型中的神经元的权重进行参数化的基础。多个参数化角度θe的每个参数化角度可以参数化由坐标i和j的单位向量贯穿的相应平面中的旋转。如下文进一步所详细讨论,每个参数化角度θe可以是由相应的吉文斯旋转来执行的角度。
多个吉文斯矩阵中的每个吉文斯矩阵可以与单位矩阵仅相差四个元素。对于坐标对e=(i,j),相应的吉文斯矩阵中可能与单位矩阵不同的元素为(i,i)、(i,j)、(j,i)、以及(j,j)。吉文斯矩阵Gee)的非零元素可以被定义为如下:
针对l≠i,l≠j。
因此,乘以Gee)仅修改行i和j的被乘数。酉矩阵U可以使用多个吉文斯矩阵来参数化如下:
在上述参数化中,与坐标对e相关联的角度 可以是跟踪矩阵集合SO(n)的参数。
具有维度n的实值正交矩阵,形成所谓的正交组,可以属于SO(n)或具有行列式-1的实值正交矩阵的集合,也称为反射。反射可以使用类似于SO(n)中的矩阵的吉文斯矩阵来参数化,在从吉文斯旋转构造矩阵后,利用一个附加步骤来否定任意固定列。
图2示出了示例第一算法100的伪代码,经由该伪代码处理器12可以被配置为基于多个参数化角度θ来计算酉矩阵U(θ)。在图2的第一算法100中,酉矩阵U被初始化为单位矩阵In。处理器12可以进一步被配置为至少部分地通过在单位矩阵In上的参数化角度θ迭代地执行多个吉文斯旋转来计算酉矩阵U。在图2的示例第一算法100中,通过与坐标对e=(i,j)相关联的角度θij进行的多个吉文斯旋转以与坐标对在E中出现的顺序相反的顺序在单位矩阵In上迭代地执行。在全部的N个吉文斯旋转已经被执行之后,第一算法100将作为结果的矩阵返回为U(θ)。
在图2的示例中,每个吉文斯旋转可以在顺序操作O(n)中被执行,这些顺序操作可以被并行化。然而,第一算法100包括N=O(n2)个吉文斯旋转。由于这些吉文斯旋转通常不可交换,因此N=O(n2)个吉文斯旋转也不可并行化。为了解决第一算法100的这些缺点,第二算法110的伪代码在图3的示例中被示出。第二算法110是图1A所示的并行前向U算法38A的一个示例。在图3的第二算法110中,坐标对被布置为块序列B=(b1,…bn-1)。在每个块b内,被包括在{0,…n-1}中的每个索引可能出现一次。因此,块序列可以定义多个吉文斯旋转块b,每个吉文斯旋转块包括多个可相互交换的吉文斯旋转。由于被包括在每个块b中的吉文斯旋转彼此交换,因此这些吉文斯旋转可以被并行计算。
处理器12可以被配置为使用被称为循环方法的轮询调度算法来计算块序列B。循环方法可以针对n个索引的索引序列来执行,并且可以包括n-1个配对迭代。循环方法在n=6时的示例如图4所示。在多个配对迭代的每个配对迭代中,处理器12可以被配置为在连接索引序列的端部而不包括固定索引的循环中保持一个索引固定,同时将其他索引的位置移动一。因此,在初始配对迭代之后的每个配对迭代中,配对迭代可以包括将除了固定索引之外的每个索引的索引序列中的相应位置移动1模n-1。在图4的示例中,固定索引为0。每个配对迭代还可以包括迭代地将索引序列中的第一个未配对索引与索引序列中的最后一个未配对索引配对,直到索引序列包括少于两个未配对索引。
随后为了对索引进行配对,配对迭代还可以包括将每一对索引添加到坐标对序列E中。在配对迭代中被添加到坐标对序列E中的对可以共同形成一个块b。因此,在坐标对序列E内,坐标对e可以被分成形成块序列B的多个块b。图4的示例中的块序列B包括块b1、b2、b3、b4、以及b5
在n为偶数的示例中,在每个配对迭代中循环方法可以不留下未配对的索引。因此,被包括在索引序列中的每个索引可以被包括在每个块b中。然而,在n为奇数的示例中,在每个配对迭代中未配对的索引可以被留下。对于多个配对迭代的每个配对迭代,被留下的未配对的索引可以不同。
在一些示例中,当处理器12计算块序列B时,处理器12可以被配置为在多个处理器线程中的每一个处理器线程处独立且惰性评估当前块。当块被惰性执行时,处理器12当用于使用块来执行计算的指令被执行时计算被包括在该块中的坐标对,而不是预先计算多个块。处理器12可以被配置为至少部分地基于当前配对迭代的迭代数目来确定当前块b。因此,多个处理器线程可以计算块序列B的单独的块b而非计算整个块序列B。
返回到图3的示例第二算法110,处理器12可以进一步被配置为将中间酉阵初始化为单位矩阵In。迭代地,对于可相互交换的吉文斯旋转的每个块b,处理器12可以被配置为在中间酉矩阵的多个拷贝上并行地执行多个可相互交换的吉文斯旋转。多个可相互交换的吉文斯旋转可以在例如多个处理器线程、GPU、FPGA或专用硬件加速器处被并行地执行。处理器12可以进一步被配置为可相互交换的吉文斯旋转已经在中间酉矩阵的多个拷贝上被执行之后同步中间酉矩阵的多个拷贝。在一些示例中,如图3所示,多个块b的相应的吉文斯旋转可以以与块b在块序列B中出现的顺序相反的顺序来计算。
图5示出了如图4的示例的由吉文斯旋转块b5和b4所指示的可以被并行执行的示例吉文斯旋转。根据图3的第二算法110,吉文斯旋转可以被并行执行。在图5的示例中,中间酉矩阵被指示为Uk:n-1,其中bk是在中间酉矩阵上吉文斯旋转被执行的最近的块。如图5的示例所示,处理器12可以被配置为在对应于吉文斯旋转块b5的迭代处在单位矩阵In的各个拷贝上执行吉文斯旋转G(0,1)、G(2,5)和G(3,4)。处理器12还可以被配置为在吉文斯旋转已经被执行之后同步单位矩阵In的多个拷贝。处理器12可以被配置为由此生成U5:5。当处理器同步所旋转的单位矩阵时,处理器12可以被配置为将所旋转的单位矩阵一起相乘。由于所旋转的单位矩阵彼此交换,所旋转的单位矩阵可以以任何顺序相乘。
在吉文斯旋转块b4处,处理器12可以进一步被配置为在U5:5的各个拷贝上执行吉文斯旋转G(0,2)、G(1,3)和G(4,5)。因此,被包括在多个块b中的吉文斯旋转可以被迭代地应用。处理器12可以进一步被配置为在吉文斯旋转已经被执行之后同步U5:5的多个拷贝,以便生成U4:5。尽管在图5中未示出,处理器12可以进一步被配置为中间酉矩阵上执行被包括在块b3、b2和b1中的吉文斯旋转,以及被配置为在应用被包括在上述每个块中的吉文斯旋转之后,同步中间酉矩阵的拷贝。在被包括在块序列B的每个块中的多个吉文斯旋转已经被应用到中间酉矩阵之后,作为结果的中间酉矩阵可以被用作酉矩阵U(θ)。
使用图3中所示的第二算法110,处理器12可以被配置为计算具有计算复杂度为O(n)的酉矩阵U(θ)。相反,图2中所示的第一算法100可以具有计算复杂度O(n2)。因此,使用第二算法110可以允许在针对大数值n计算酉矩阵U(θ)时的显著加速。
回到图1B,处理器12可以进一步被配置为计算相对于酉矩阵U(θ)的多个酉矩阵元素的训练损失L的损失梯度矩阵Γ。处理器12可以被配置为通过计算损失函数的值来计算训练损失L,其中损失函数可以是分类损失函数或回归损失函数。损失梯度矩阵Γ可以是被如下定义的n×n的矩阵:
在一些示例中,处理器12可以被配置为经由相对于酉矩阵U(θ)的酉矩阵元素的训练损失L的自动微分来计算损失梯度矩阵Γ。例如,处理器12可以被配置为通过执行被包括在机器学习库中的函数来执行自动微分。
处理器12可以进一步被配置为计算相对于多个参数化角度θ的训练损失L的JVP。处理器12可以被配置为直接计算JVP,而非如上所述的计算定义了JVP的式子右侧的两个偏导数。如下文进一步详细讨论,当处理器12计算JVP时,处理器12可以被配置为计算所旋转的酉矩阵Ufwd和所旋转的损失梯度矩阵M。处理器12可以进一步被配置为从所旋转的酉矩阵Ufwd和所旋转的损失梯度矩阵M计算JVP。
图6A-6B示出了第三算法120的伪代码。图6A-6B的第三算法120是图1A的并行JVP算法38A的一个示例,通过该算法处理器12可以被配置为计算JVP。第三算法120的第一部分120A在图6A中示出。如图6A所示,第三算法120的输入可以是块序列B=(b1,…bn-1)、参数化角度酉矩阵U和损失梯度矩阵Γ。
在图6A所示的第三算法120的第一部分120A中,处理器12可以被配置为计算所旋转的酉矩阵Ufwd。处理器12可以被配置为至少部分地通过将中间旋转酉矩阵初始化为酉矩阵U来计算所旋转的酉矩阵Ufwd。计算所旋转的酉矩阵Ufwd还可以包括在酉矩阵U上,针对多个坐标对e中的每个坐标对e=(i,j),通过坐标对e的参数化角度θe围绕由坐标对e指定的轴执行逆吉文斯旋转。如上所述,由坐标对指定的轴可以是垂直于由单位向量i和j贯穿的平面的轴。通过角度θ进行的逆吉文斯旋转在本文中被定义为通过角度-θ进行的吉文斯旋转。对于多个逆吉文斯旋转块中的每个逆吉文斯旋转块,逆吉文斯旋转可以被迭代地执行,其中每个逆吉文斯旋转块包括多个可相互交换的逆吉文斯旋转。如图6A的示例所示,逆吉文斯旋转块可以是如上所定义的吉文斯旋转块b。
在每个逆吉文斯旋转块内,处理器12可以被配置为在中间旋转酉矩阵的多个拷贝上并行地执行可相互交换的逆吉文斯旋转。处理器12还可以被配置为在可相互交换的逆吉文斯旋转已经在中间旋转酉矩阵的拷贝上被执行之后,同步中间旋转酉矩阵的多个拷贝。因此,在每个逆吉文斯旋转块内,多个逆吉文斯旋转可以被并行地执行,并且并行计算的结果可以被同步来更新中间旋转酉矩阵。逆吉文斯旋转的块可以以反向块序列顺序被应用于中间旋转酉矩阵。在逆吉文斯旋转已经针对每个逆吉文斯旋转块被执行之后,作为结果的中间旋转酉矩阵可以被用作所旋转的酉矩阵Ufwd
图6B示出了第三算法120的第二部分120B的伪代码,作为图6A中所示的第一部分120A的延续。图6B示出了用于所旋转的损失梯度矩阵M的计算的伪代码。当处理器12计算所旋转的损失梯度矩阵M时,处理器12可以被配置为初始化中间旋转损失梯度矩阵作为损失梯度矩阵Γ。处理器12可以进一步被配置为在损失梯度矩阵e上,针对多个坐标对e中的每个坐标对e=(i,j),通过坐标对e的参数化角度θe围绕由坐标对e指定的轴执行吉文斯旋转。处理器12可以被配置为在多个吉文斯旋转块中迭代地执行多个吉文斯旋转,其中多个吉文斯旋转块中的每个吉文斯旋转块包括多个可相互交换的吉文斯旋转。多个吉文斯旋转块可以是上面所讨论的块b,其可以以反向块序列顺序被应用于中间旋转损失梯度矩阵。
在每个吉文斯旋转块b中,处理器12可以被配置为在中间旋转损失梯度矩阵的多个拷贝上并行地执行被包括在块b中的可相互交换的吉文斯旋转。处理器12还可以被配置为在可相互交换的吉文斯旋转已经在中间旋转损失梯度矩阵的拷贝上被执行之后,同步中间旋转损失梯度矩阵的多个拷贝。在多个吉文斯旋转已经针对每个吉文斯旋转块b被执行之后,作为结果的中间旋转损失梯度矩阵可以被用作所旋转的损失梯度矩阵M。
当处理器12从所旋转的酉矩阵Ufwd和所旋转的损失梯度矩阵M计算JVP时,处理器12可以被配置为从所旋转的酉矩阵Ufwd和所旋转的损失梯度矩阵M计算中间向量积矩阵A。中间向量积矩阵A可以是N/2×N的矩阵,并且在第三算法120被执行时可以被初始化为空矩阵。处理器12可以被配置为至少部分地通过生成坐标对e到中间向量积矩阵A的行m(e)的映射来计算中间向量积矩阵A。处理器12可以被配置为针对每个坐标对e计算中间向量矩阵A的N个元素。针对中间向量积矩阵A的每一行,处理器12还可以被配置为计算被包括在该行中的每个中间向量积矩阵元素,如下:
Aml←Milulj-Mjluli
其中M是所旋转的损失梯度矩阵,u是所旋转的酉矩阵,i和j是被包括在坐标对中的坐标,并且l是中间向量积矩阵A的列数目。
在计算中间向量积矩阵A的元素之后,处理器12可以进一步被配置为计算中间向量积矩阵A的多个行的加和作为JVP的元素。处理器12可以被配置为通过A乘以1的向量来计算中间向量积矩阵A的行的加和:
d←A1n
处理器12还可以被配置为将JVP的元素设置为由A的行和坐标对e之间的映射所指定的d的相应元素:
因此,处理器12可以被配置为针对每个参数化角度θe计算JVP的相应元素。
使用图6A-6B所示的第三算法120,处理器12可以被配置为计算JVP,其具有复杂度O(nlogn)。中间向量积矩阵A的行的求和可以在时间O(logn)上被执行,并且在第三算法120中针对块b执行的其他步骤中的每一个步骤可以在时间O(1)上被执行。由于当循环方法被用来计算块序列B时块序列B中的块b的数目是n-1,使用第三算法120计算JVP的总体计算复杂度可以是O(nlogn)。
返回到图1B,随后计算JVP,处理器12可以进一步被配置为至少部分地基于JVP来更新多个参数化角度θe。因此,处理器12可以被配置为计算多个所更新的参数化角度θe′。处理器12可以被配置为经由梯度下降来计算多个所更新的参数化角度θe′,这可以进一步至少部分地基于学习率η。在训练机器学习模型时,多个所更新的参数化角度θe′可以针对在处理器12处执行的每个反向传播迭代来被计算。在一些示例中,处理器12可以被配置为在反向传播迭代之间动态地修改学习率η。
如图7的示例第四算法130所示,尽管在上述示例中,U(θ)是实值正交矩阵,但上文讨论的技术可以被扩展到包括虚值或复值元素的酉矩阵。图7所示的示例第四算法130是一种算法,通过该算法当酉矩阵U的元素不是被假设为实值时酉矩阵U可以被计算。如图7的示例所示,处理器12可以被配置为接收除了块序列B和多个参数化角度θ之外的多个参数化相位角每个参数化相位角/>可以为该坐标对e的相应吉文斯旋转贡献相应的复相位因子/>因此,吉文斯旋转矩阵的元素可以为如下所示:
针对l≠i,l≠j.
在图7所示的第四算法130中,处理器12可以进一步被配置为将中间酉矩阵初始化为n×n的单位矩阵In。如图3的第二算法110,处理器12可以进一步被配置为在多个吉文斯旋转块b中迭代地在中间酉矩阵上执行多个吉文斯旋转多个吉文斯旋转块中的每个吉文斯旋转块包括多个可相互交换的吉文斯旋转。在每个吉文斯旋转块b内,多个吉文斯旋转可以在中间酉矩阵的相应的多个拷贝上被并行地执行。处理器12可以进一步被配置为在块中的多个吉文斯旋转已经在中间酉矩阵的拷贝上被执行之后同步中间酉矩阵的多个拷贝。
现在讨论反向传播的示例,其中元素U(θ)不被假设为实值。前向矩阵Ufwd和反向矩阵Ubck可以被定义为以下运行矩阵乘积:
前向矩阵Ufwd和反向矩阵Ubck的行和列可以被表示如下:
Ufwd=[u1 … un]
处理器12可以被配置为计算相对于参数化角度θ的酉矩阵U的梯度以及相对于参数化相位角的酉矩阵U的梯度:
处理器12可以进一步被配置为通过应用链式规则来计算相对于参数化角度θ和参数化相位角的训练损失L的梯度:
在该示例中,相对于酉矩阵U的酉矩阵元素的训练损失L的梯度可以如上文所讨论的那样来计算。因此,处理器12可以被配置为计算相对于参数化角度θ的JVP以及相对于参数化相位角的JVP。
在上文所讨论的技术的另一个扩展中,坐标的子集可以被指定,使得在每次反向传播迭代期间,旋转不在由坐标对指示的平面中被执行,其中两个坐标都被包括在子集中。在不失一般性的情况下,对于整数m≤n-1,以下数量可以被定义:
使用上述定义,被排除的坐标对的数目可以等于κ(κ-1)/2,并且剩余坐标对的数目可以等于mn-m(m+1)/2。例如,当n=8并且m=4时,这些对{(4,5),(4,6),(4,7),(5,6),(5,7),(6,7)}可以从28对的全集中被排除,剩下22个剩余对。如上所述,坐标子集中排除的对可以被用于参数化任意m×n的矩阵。
在坐标子集的对被排除的示例中,处理器12可以被配置为将剩余坐标对划分为多个块的块序列。划分剩余坐标对可以等同于解决图的边着色问题,其中第一m个节点与全部其他节点相邻,并且最后κ个节点不相互连接。为了使图3的第二算法110适用于对κ坐标被排除的示例,内部“for”循环可以增加一个条件,该条件指示处理器12当i≥m时跳过执行针对坐标对的吉文斯旋转。因为按照惯例i<j,当(i,j)是被排除的对时,这样的条件将被满足。类似于第二算法110的内部“for”循环,在坐标的子集的对被排除的示例中,跳过执行坐标对的吉文斯旋转的i≥m的条件也可以被添加到被包括在第三算法120和第四算法130中的并行“for”循环中。以这种方式跳过吉文斯旋转可以使第二算法110、第三算法120以及第四算法130的顺序部分的算术指令计数保持不变。此外,在m随着n线性缩放使得对于α∈(0,1]的固定值,m=αn的示例中,坐标对N的总数目可以保持为O(n2)。因此,在块内并行化吉文斯旋转仍然可以导致前文在坐标对被排除的示例中所讨论的加速。
图8A示出了在计算系统处训练机器学习模型的方法200的流程图。方法200例如可以在图1A中所描绘的计算系统10处被执行。方法200的步骤可以在多个反向传播迭代中的每一个反向传播迭代中被执行,多个反向传播迭代中的每一个反向传播迭代中被执行用以确定被包括在机器学习模型中的神经元的权重。
在步骤202,方法200可以包括生成包括多个坐标对的坐标对序列。多个坐标对中的每个坐标对在坐标对序列内可以是唯一的并且可以包括不匹配的坐标。在步骤204,方法200还可以包括接收分别与多个坐标对相关联的多个参数化角度。坐标对的参数化角度可以参数化由与坐标对的坐标相对应的单位向量所定义的平面内的旋转。
在步骤206,方法200还可以包括计算由多个参数化角度参数化的酉矩阵。酉矩阵可以至少部分地通过在单位矩阵上的参数化角度迭代地执行多个吉文斯旋转来计算。在步骤208,方法200还可以包括计算相对于酉矩阵的多个酉矩阵元素的训练损失的损失梯度矩阵。损失梯度矩阵可以针对机器学习模型的预定义损失函数来计算。在一些示例中,损失梯度矩阵可以经由相对于酉矩阵的酉矩阵元素的训练损失的自动微分来计算。
在步骤210,方法200还可以包括计算相对于多个参数化角度的训练损失的JVP。在步骤212,在步骤210计算JVP可以包括通过针对多个坐标对中的每个坐标对,在酉矩阵上通过坐标对的参数化角度执行逆吉文斯旋转来计算所旋转的酉矩阵。针对坐标对的逆吉文斯旋转可以围绕由坐标对指定的轴来执行。在步骤214,在步骤210计算JVP还可以包括通过针对多个坐标对中的每个坐标对,在损失梯度矩阵上通过坐标对的参数化角度执行吉文斯旋转来计算所旋转的损失梯度矩阵。针对坐标对的吉文斯旋转可以围绕由坐标对指定的轴来执行。在步骤216,在步骤210计算JVP还可以包括从所旋转的酉矩阵和所旋转的损失梯度矩阵计算JVP。
在步骤218,方法200还可以包括至少部分地基于JVP来更新多个参数化角度。多个参数化角度可以经由梯度下降来更新,梯度下降可以至少部分地基于学习率以及JVP来执行。因此,每个反向传播迭代可以被执行来更新参数化角度,参数化角度参数化被包括在机器学习模型中的神经元的权重。
图8B示出了在步骤202处生成坐标对序列时可以在一些示例中执行的方法200的附加步骤。图8B中所示的步骤可以针对n个索引的索引序列来执行,其中n是酉矩阵的行数。此外,图8B的步骤可以在多个配对迭代中的每一个配对迭代中执行。在步骤220,方法200还可以包括在初始配对迭代之后的每一个配对迭代中,将除固定索引之外的每个索引的索引序列中的相应位置移动1模n-1。在步骤222,方法200还可以包括迭代地将索引序列中的第一个未配对索引与索引序列中的最后一个未配对索引配对,直到索引序列包括少于两个未配对索引。在步骤224,方法200还可以包括将每对索引添加到坐标对序列中。因此,在多个配对迭代中的每一个配对迭代中,对应于可相互交换的吉文斯旋转的坐标对的块可以被生成。坐标对序列中的块的顺序可以指示块序列。
图8C示出了在步骤206处当计算酉矩阵时可以在一些示例中执行的方法200的附加步骤。在步骤226,方法200可以包括将中间酉矩阵初始化为单位矩阵。单位矩阵可以是大小为n×n的。在步骤228,方法200还可以包括通过在单位矩阵上的参数化角度来迭代地执行多个吉文斯旋转。步骤228可以包括,在步骤230,在中间酉矩阵的多个拷贝上并行执行多个可相互交换的吉文斯旋转。步骤228还可以包括,在步骤232,在可相互交换的吉文斯旋转已经在中间酉矩阵的拷贝上被执行之后,同步中间酉矩阵的多个拷贝。步骤230和步骤232可以针对多个吉文斯旋转块中的每一个吉文斯旋转块执行,每一个吉文斯旋转块包括多个可相互交换的吉文斯旋转。在针对每个吉文斯旋转块已经执行了步骤230和步骤232之后,作为结果的中间酉矩阵可以被用作酉矩阵。
图8D示出了在步骤212处当计算所旋转的酉矩阵时可以在一些示例中执行的方法200的附加步骤。在步骤234,方法200还可以包括将中间旋转酉矩阵初始化为酉矩阵。在步骤236,方法200还可以包括通过酉矩阵上的多个参数化角度迭代地执行多个逆吉文斯旋转。步骤236可以包括,在步骤238,在中间旋转酉矩阵的多个拷贝上并行执行可相互交换的逆吉文斯旋转。步骤236还可以包括,在步骤240,在可相互交换的逆吉文斯旋转已经在中间旋转酉矩阵的拷贝上被执行之后,同步中间旋转酉矩阵的多个拷贝。步骤238和步骤240可以针对多个逆吉文斯旋转块中的每一个逆吉文斯旋转块来执行,每个逆吉文斯旋转块包括多个可相互交换的逆吉文斯旋转。多个逆吉文斯旋转块可以是当计算坐标对序列时所确定的吉文斯旋转块。在步骤238和步骤240已经针对每个逆吉文斯旋转块执行之后,作为结果的中间旋转酉矩阵可以被用作所旋转的酉矩阵。
图8E示出了在步骤216处当计算所旋转的损失梯度矩阵时可以在一些示例中执行的方法200的附加步骤。在步骤242,方法200可以包括将中间旋转损失梯度矩阵初始化为损失梯度矩阵。在步骤244,方法200还可以包括通过在损失梯度矩阵上的参数化角度迭代地执行多个吉文斯旋转。步骤244可以包括,在步骤246,在中间旋转损失梯度矩阵的多个拷贝上并行执行可相互交换的吉文斯旋转。步骤244还可以包括,在步骤248处,在可相互交换的吉文斯旋转已经在中间旋转损失梯度矩阵的拷贝上被执行之后,同步中间旋转损失梯度矩阵的多个拷贝。步骤246和步骤248可以针对多个吉文斯旋转块中的每一个吉文斯旋转块来执行,每一个吉文斯旋转块包括多个可相互交换的吉文斯旋转。在步骤246和步骤248已经针对每个吉文斯旋转块被执行之后,作为结果的中间旋转损失梯度矩阵可以被用作所旋转的损失梯度矩阵。
图8F示出了在步骤216处当从所旋转的酉矩阵和所旋转的损失梯度矩阵计算JVP时可以在一些示例中执行的方法200的附加步骤。在步骤250,方法200可以包括从所旋转的酉矩阵和所旋转的损失梯度矩阵计算中间向量积矩阵。在步骤250处的计算中间向量积矩阵可以包括,在步骤252,生成坐标对到中间向量积矩阵的行的映射。在步骤250处的计算中间向量积矩阵还可以包括,在步骤254,针对中间向量积矩阵的每一行,将被包括在该行中的每一个中间向量积矩阵元素计算为Milulj-Mjluli。在针对中间向量积矩阵元素的表示中,M为所旋转的损失梯度矩阵,u为所旋转的酉矩阵,i和j为被包括在坐标对中的坐标,并且l为中间向量积矩阵的列号。在步骤256,方法200还可以包括将中间向量积矩阵的行的多个加和计算为JVP的元素。例如,中间向量积矩阵的行的加和可以通过将中间向量积矩阵乘以1的向量来计算。
上文所讨论的技术可以允许避免梯度爆炸和梯度消失问题,而不依赖于计算成本高的步骤。使用上文所讨论的系统和方法,机器学习模型可以至少部分地由酉矩阵来表示,并且可以在多个反向传播迭代中被训练。酉矩阵可以使用上文所讨论的系统和方法从多个参数化角度在时间O(n)上来生成。此外,每个反向传播迭代可以在时间O(nlogn)上来执行,其中n是酉矩阵的行的数目。因此,上文所讨论的系统和方法可以允许即使针对大型酉矩阵反向传播也可以被有效地执行。
图9A示出了执行时间的图300,以毫秒为单位,作为当基于多个参数化角度θ计算酉矩阵U时的函数n。在图9A的示例中,示出了第一算法100(顺序算法)和第二算法110(并行算法)的相应执行时间。此外,图9B示出了执行时间(以毫秒为单位)的图310,作为当计算JVP时的函数n。在图9B的示例中,示出了顺序算法以及第三算法120(并行算法)的相应执行时间。顺序算法被执行在CPU上,并行算法(第二算法110和第三算法120)被执行在GPU上。如图9A的示例中所示,与n的测试值的顺序算法相比,并行算法可以允许U和JVP的计算被加速多个数量级。
在一些实施例中,本文所描述的方法和过程可以被绑定到一个或多个计算设备的计算系统。特别地,这样的方法和过程可以被实现为计算机应用程序或服务、应用程序编程接口(API)、库和/或其它计算机程序产品。
图10示意性地示出了可执行上述方法和过程中的一个或多个的计算系统400的非限制性实施例。以简化形式示出了计算系统400。计算系统400可以体现上述以及在图1A中图示的计算系统10。计算系统400的部件可以被包括在一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、和/或其他计算设备、以及可穿戴计算设备诸如智能腕表以及头戴式增强现实设备。
计算系统400包括逻辑处理器402、易失性存储器404以及非易失性存储设备406。计算系统400可以可任选地包括显示子系统408、输入子系统410、通信子系统412和/或在图10中未示出的其他组件。
逻辑处理器402包括被配置成执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置成执行指令,所述指令是一个或多个应用、程序、例程、库、对象、部件、数据结构或其他逻辑构造的一部分。此类指令可被实现以执行任务、实现数据类型、变换一个或多个组件的状态、实现技术效果、或以其他方式得到期望的结果。
逻辑处理器可包括被配置成执行软件指令的一个或多个物理处理器(硬件)。附加地或替换地,逻辑处理器可包括被配置成执行硬件实现的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器的各处理器可以是单核的或多核的,并且其上所执行的指令可被配置成用于串行、并行和/或分布式处理。逻辑处理器的各个个体组件可任选地分布在两个或更多个分开的设备之间,这些设备可以位于远程以及/或者被配置成用于协同处理。逻辑处理器的各方面可由以云计算配置进行配置的可远程访问的联网计算设备来虚拟化和执行。将理解,在这样的情形中,这些虚拟化方面在各种不同机器的不同物理逻辑处理器上运行。
非易失性存储设备406包括被配置成保持可由逻辑处理器执行的指令以实现本文中所描述的方法和过程的一个或多个物理设备。当实现此类方法和过程时,非易失性存储设备406的状态可以被变换-例如以保持不同的数据。
非易失性存储设备406可包括可移动的和/或内置设备。非易失性存储设备406可包括光学存储器(例如,CD、DVD、HDDVD、蓝光碟等)、半导体存储器(例如,ROM、EPROM、EEPROM、闪存等)、和/或磁性存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)或其他大容量存储设备技术。非易失性存储设备406可包括非易失性、动态、静态、读/写、只读、顺序存取、位置可寻址、文件可寻址、和/或内容可寻址设备。将领会,非易失性存储设备406被配置成即使当切断给非易失性存储设备406的功率时也保存指令。
易失性存储器404可以包括包含随机存取存储器的物理设备。易失性存储器404通常被逻辑处理器402用来在软件指令的处理期间临时地储存信息。将领会,当切断给易失性存储器404的电源时,易失性存储器404通常不继续存储指令。
逻辑处理器402、易失性存储器404和非易失性存储设备406的各方面可以被一起集成到一个或多个硬件逻辑组件中。这样的硬件逻辑组件可包括例如FPGAs、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC),以及复杂可编程逻辑设备(CPLD)。
术语“模块”、“程序”和“工具”可被用于描述典型地由处理器以软件实现的计算系统400的方面,以使用易失性存储器的部分来执行特定功能,该功能涉及专门将处理器配置成执行该功能的变换处理。因此,模块、程序或工具可经由逻辑处理器402执行由非易失性存储设备406所保持的指令、使用易失性存储器404的各部分来实例化。将理解,不同的模块、程序和/或工具可以从相同应用、服务、代码块、对象、库、例程、API、函数等实例化。同样,可以由不同的应用、服务、代码块、对象、例程、API、函数等实例化相同模块、程序和/或工具。术语“模块”、“程序”和“工具”可涵盖个体或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
当包括显示子系统408时,显示子系统408可被用来呈现由非易失性存储设备406保持的数据的视觉表示。视觉表示可以采用图形用户界面(GUI)的方式。由于本文中所描述的方法和过程改变了由非易失性存储设备保持的数据,并因而变换了非易失性存储设备的状态,因此同样可以变换显示子系统408的状态以视觉地表示底层数据中的改变。显示子系统408可包括利用实质上任何类型的技术的一个或多个显示设备。可将此类显示设备与逻辑处理器402、易失性存储器404和/或非易失性存储设备406结合在分享外壳中,或此类显示设备可以是外围显示设备。
当包括输入子系统410时,输入子系统410可包括诸如键盘、鼠标、触摸屏或游戏控制器之类的一个或多个用户输入设备或者与上述用户输入设备对接。在一些实施例中,输入子系统可包括所选择的自然用户输入(NUI)部件或者与上述自然用户输入(NUI)部件相对接。此类部件可以是集成的或外围的,并且输入动作的换能和/或处理可以在板上或板外被处置。示例NUI部件可包括用于语言和/或语音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体显示和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速计和/或陀螺仪;以及用于评估脑部活动的电场感测部件;和/或任何其他合适的传感器。
当包括通信子系统412时,通信子系统412可被配置成将本文描述的各种计算设备彼此通信地耦合,并且与其他设备通信地耦合。通信子系统412可包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可被配置成用于经由无线电话网络或者有线或无线局域网或广域网(诸如WiFi连接上的HDMI)来进行通信。在一些实施例中,通信子系统可允许计算系统400经由诸如因特网之类的网络将消息发送至其他设备以及/或者从其他设备接收消息。
以下段落讨论本公开的几个方面。根据本公开的一个方面,提供了一种计算系统,包括被配置为在多个反向传播迭代中训练机器学习模型的处理器。每个反向传播迭代可以包括生成包括多个坐标对的坐标对序列。多个坐标对中的每一个坐标对在坐标对序列内可以是唯一的并且可以包括不匹配的坐标。反向传播迭代还可以包括接收分别与多个坐标对相关联的多个参数化角度。反向传播迭代还可以包括计算由多个参数化角度参数化的酉矩阵。反向传播迭代还可以包括计算相对于酉矩阵的多个酉矩阵元素的训练损失的损失梯度矩阵。反向传播迭代还可以包括计算相对于多个参数化角度的训练损失的雅可比向量积(JVP)。计算JVP可以包括通过针对多个坐标对中的每个坐标对,在酉矩阵上通过坐标对的参数化角度围绕由坐标对指定的轴执行逆吉文斯旋转来计算所旋转的酉矩阵。计算JVP还可以包括通过针对多个坐标对中的每个坐标对,在损失梯度矩阵上通过坐标对的参数化角度围绕由坐标对指定的轴执行吉文斯旋转来计算所旋转的损失梯度矩阵。JVP可以从所旋转的酉矩阵和所旋转的损失梯度矩阵来计算。反向传播迭代还可以包括至少部分地基于JVP来更新多个参数化角度。
根据这一方面,处理器可以被配置为针对n个索引的索引序列,其中n为酉矩阵的行的数目,在初始配对迭代之后的多个配对迭代中的每一个配对迭代中,将除固定索引之外的每个索引的索引序列中的相应位置移动1模n-1。在多个配对迭代的每一个配对迭代中,处理器可以进一步被配置为至少部分地通过迭代地将索引序列中的第一个未配对索引与索引序列中的最后一个未配对索引配对,直到索引序列包括少于两个未配对索引,来生成坐标对序列。在多个配对迭代的每一个配对迭代中,处理器还可以被配置为至少部分地通过将每对索引添加到坐标对序列中来生成坐标对序列。
根据这一方面,处理器可以被配置为至少部分地通过在单位矩阵上的参数化角度迭代地执行多个吉文斯旋转来计算酉矩阵。
根据这一方面,处理器可以被配置为至少部分地通过将中间酉矩阵初始化为单位矩阵来计算酉矩阵。处理器可以进一步被配置为至少部分地通过针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块,在中间酉矩阵的多个拷贝上并行执行多个可相互交换的吉文斯旋转,以及在可相互交换的吉文斯旋转已经在中间酉矩阵的拷贝上被执行之后,同步中间酉矩阵的多个拷贝来计算酉矩阵。
根据这一方面,处理器可以被配置为至少部分地通过将中间旋转酉矩阵初始化为酉矩阵来计算所旋转的酉矩阵。处理器还可以被配置为至少部分地通过下述方式计算所旋转的酉矩阵:迭代地,针对多个逆吉文斯旋转块中的分别包括多个可相互交换的逆吉文斯旋转的每一个吉文斯旋转块:在中间旋转酉矩阵的多个拷贝上并行执行可相互交换的逆吉文斯旋转;以及在可相互交换的逆吉文斯旋转已经在中间旋转酉矩阵的拷贝上被执行之后,同步中间旋转酉矩阵的多个拷贝。
根据这一方面,处理器可以被配置为至少部分地通过将中间旋转损失梯度矩阵初始化为损失梯度矩阵来计算所旋转的损失梯度矩阵。处理器还可以被配置为至少部分地通过下述方式计算所旋转的损失梯度矩阵:迭代地,针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块:在中间旋转损失梯度矩阵的多个拷贝上并行执行可相互交换的吉文斯旋转;以及在可相互交换的吉文斯旋转已经在中间旋转损失梯度矩阵的拷贝上被执行之后,同步中间旋转损失梯度矩阵的多个拷贝。
根据这一方面,处理器可以被配置为经由相对于酉矩阵的酉矩阵元素的训练损失的自动微分来计算损失梯度矩阵。
根据这一方面,处理器可以被配置为至少部分地通过从所旋转的酉矩阵和所旋转的损失梯度矩阵计算中间向量积矩阵来从所旋转的酉矩阵和所旋转的损失梯度矩阵计算JVP。处理器还可以被配置为至少部分地通过将中间向量积矩阵的行的多个加和计算为JVP的元素来从所旋转的酉矩阵和所旋转的损失梯度矩阵计算JVP。
根据这一方面,处理器可以被配置为至少部分地通过生成坐标对到中间向量积矩阵的行的映射来计算中间向量积矩阵。处理器可以进一步被配置为至少部分地通过下述方式计算中间向量积矩阵:针对中间向量积矩阵的每一行,将被包括在该行中的每一个中间向量积矩阵元素计算为Milulj-Milulj,其中M为所旋转的损失梯度矩阵,u为所旋转的酉矩阵,i和j为被包括在坐标对中的坐标,并且l为中间向量积矩阵的列号。
根据这一方面,处理器可以被配置为计算具有复杂度O(n log n)的JVP。
根据本公开的另一方面,提供了一种训练机器学习模型的方法。方法可以包括在多个反向传播迭代的每一个反向传播迭代中,生成包括多个坐标对的坐标对序列。多个坐标对中的每个坐标对在坐标对序列内是唯一的并且包括不匹配的坐标。方法还可以包括在多个反向传播迭代的每一个反向传播迭代中,接收分别与多个坐标对相关联的多个参数化角度。方法还可以包括在多个反向传播迭代的每一个反向传播迭代中,计算由多个参数化角度参数化的酉矩阵。方法还可以包括在多个反向传播迭代的每一个反向传播迭代中,计算相对于酉矩阵的多个酉矩阵元素的训练损失的损失梯度矩阵。方法还可以包括在多个反向传播迭代的每一个反向传播迭代中,计算相对于多个参数化角度的训练损失的雅可比向量积(JVP)。计算JVP可以包括通过针对多个坐标对中的每个坐标对,在酉矩阵上通过坐标对的参数化角度围绕由坐标对指定的轴执行逆吉文斯旋转来计算所旋转的酉矩阵。计算JVP还可以包括通过针对多个坐标对中的每个坐标对,在损失梯度矩阵上通过坐标对的参数化角度围绕由坐标对指定的轴执行吉文斯旋转来计算所旋转的损失梯度矩阵。JVP可以从所旋转的酉矩阵和所旋转的损失梯度矩阵来计算。方法还包括在多个反向传播迭代的每一个反向传播迭代中,至少部分地基于JVP来更新多个参数化角度。
根据这一方面,生成坐标对序列可以包括针对n个索引的索引序列,其中n为酉矩阵的行的数目,在初始配对迭代之后的多个配对迭代中的每一个配对迭代中,将除固定索引之外的每个索引的索引序列中的相应位置移动1模n-1。生成坐标对序列还可以包括在多个配对迭代中的每一个配对迭代中,迭代地将索引序列中的第一个未配对索引与索引序列中的最后一个未配对索引配对,直到索引序列包括少于两个未配对索引。生成坐标对序列还可以包括在多个配对迭代中的每一个配对迭代中,将每对索引添加到坐标对序列中。
根据这一方面,计算酉矩阵可以包括通过在单位矩阵上的参数化角度来迭代地执行多个吉文斯旋转。
根据这一方面,计算酉矩阵可以包括将中间酉矩阵初始化为单位矩阵。计算酉矩阵还可以包括迭代地,针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块,在中间酉矩阵的多个拷贝上并行执行多个可相互交换的吉文斯旋转,以及在可相互交换的吉文斯旋转已经在中间酉矩阵的拷贝上被执行之后,同步中间酉矩阵的多个拷贝。
根据这一方面,计算所旋转的酉矩阵可以包括将中间旋转酉矩阵初始化为酉矩阵。计算所旋转的酉矩阵还可以包括迭代地,针对多个逆吉文斯旋转块中的分别包括多个可相互交换的逆吉文斯旋转的每一个吉文斯旋转块,在中间旋转酉矩阵的多个拷贝上并行执行可相互交换的逆吉文斯旋转,以及在可相互交换的逆吉文斯旋转已经在中间旋转酉矩阵的拷贝上被执行之后,同步中间旋转酉矩阵的多个拷贝。
根据该方面,计算所旋转的损失梯度矩阵可以包括将中间旋转损失梯度矩阵初始化为损失梯度矩阵。计算所旋转的损失梯度矩阵还可以包括迭代地,针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块,在中间旋转损失梯度矩阵的多个拷贝上并行执行可相互交换的吉文斯旋转,以及在可相互交换的吉文斯旋转已经在中间旋转损失梯度矩阵的拷贝上被执行之后,同步中间旋转损失梯度矩阵的多个拷贝。
根据这一方面,损失梯度矩阵可以经由相对于酉矩阵的酉矩阵元素的训练损失的自动微分来计算。
根据这一方面,从所旋转的酉矩阵和所旋转的损失梯度矩阵计算JVP可以包括从所旋转的酉矩阵和所旋转的损失梯度矩阵计算中间向量积矩阵。从所旋转的酉矩阵和所旋转的损失梯度矩阵计算JVP还可以包括将中间向量积矩阵的行的多个加和计算为JVP的元素。
根据这一方面,计算中间向量积矩阵可以包括生成坐标对到中间向量积矩阵的行的映射。计算中间向量积矩阵还可以包括针对中间向量积矩阵的每一行,将被包括在该行中的每一个中间向量积矩阵元素计算为Mjlulj-Mjluli,其中M为所旋转的损失梯度矩阵,u为所旋转的酉矩阵,i和j为被包括在坐标对中的坐标,并且l为中间向量积矩阵的列号。
根据本公开的另一方面,提供了一种计算系统,计算系统包括处理器,处理器被配置为在多个反向传播迭代中训练机器学习模型。每个反向传播迭代可以包括在正向传递中,至少部分地通过并行执行多个吉文斯旋转来计算由多个参数化角度参数化的酉矩阵。每个反向传播迭代还可以包括在反向传递中,至少部分地通过并行执行损失梯度矩阵上的多个吉文斯旋转和酉矩阵上的多个逆吉文斯旋转来计算相对于多个参数化角度的训练损失的雅可比向量积(JVP)。每个反向传播迭代还可以包括至少部分地基于JVP来更新多个参数化角度。
本文中所使用的“和/或”被定义为包括的或∨,由以下真值表指定:
A B A∨B
应当理解,这里描述的配置和/或方法本质上是示例性的,并且这些具体实施例或示例不应被认为是限制性的,因为许多变化是可能的。本文中所描述的具体例程或方法可以表示任何数量的处理策略中的一个或多个。如此,所示出和/或所描述的各种动作可以按照所示出和/或所描述的顺序、以其他顺序、并行地执行或被省略。同样,上述过程的顺序可以被改变。
本公开的主题包括本文公开的各种过程、系统和配置以及其他特征、功能、动作和/或属性、以及它们的任一和全部等价物的所有新颖且非显而易见的组合和子组合。

Claims (15)

1.一种计算系统,包括:
处理器,被配置为:
在多个反向传播迭代中训练机器学习模型,其中每个反向传播迭代包括:
生成包括多个坐标对的坐标对序列,其中所述多个坐标对中的每个坐标对在所述坐标对序列内是唯一的并且包括不匹配的坐标;
接收分别与所述多个坐标对相关联的多个参数化角度;
计算由所述多个参数化角度参数化的酉矩阵;
计算相对于所述酉矩阵的多个酉矩阵元素的训练损失的损失梯度矩阵;
计算相对于所述多个参数化角度的所述训练损失的雅可比向量积(JVP),其中计算所述JVP包括:
通过针对所述多个坐标对中的每个坐标对,在所述酉矩阵上通过所述坐标对的所述参数化角度围绕由所述坐标对指定的轴执行逆吉文斯旋转来计算所旋转的酉矩阵;
通过针对所述多个坐标对中的每个坐标对,在所述损失梯度矩阵上通过所述坐标对的所述参数化角度围绕由所述坐标对指定的所述轴执行吉文斯旋转来计算所旋转的损失梯度矩阵;以及
从所旋转的所述酉矩阵和所旋转的所述损失梯度矩阵计算所述JVP;以及
至少部分地基于所述JVP来更新所述多个参数化角度。
2.根据权利要求1所述的计算系统,其中所述处理器被配置为至少部分地通过下述方式生成所述坐标对序列:
针对n个索引的索引序列,其中n为所述酉矩阵的行的数目:
在多个配对迭代中的每一个配对迭代中:
在初始配对迭代之后的每一个配对迭代中,将除固定索引之外的每个索引的所述索引序列中的相应位置移动1模n-1;
迭代地将所述索引序列中的第一个未配对索引与所述索引序列中的最后一个未配对索引配对,直到所述索引序列包括少于两个未配对索引;以及
将每对索引添加到所述坐标对序列中。
3.根据权利要求1所述的计算系统,其中所述处理器被配置为:至少部分地通过在单位矩阵上的所述参数化角度迭代地执行所述多个吉文斯旋转来计算所述酉矩阵。
4.根据权利要求3所述的计算系统,其中所述处理器被配置为至少部分地通过下述方式计算所述酉矩阵:
将中间酉矩阵初始化为所述单位矩阵;以及
迭代地,针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块:
在所述中间酉矩阵的多个拷贝上并行执行所述多个可相互交换的吉文斯旋转;以及
在所述可相互交换的吉文斯旋转已经在所述中间酉矩阵的所述拷贝上被执行之后,同步所述中间酉矩阵的所述多个拷贝。
5.根据权利要求1所述的计算系统,其中所述处理器被配置为至少部分地通过下述方式计算所旋转的所述酉矩阵:
将中间旋转酉矩阵初始化为所述酉矩阵;以及
迭代地,针对多个逆吉文斯旋转块中的分别包括多个可相互交换的逆吉文斯旋转的每一个吉文斯旋转块:
在所述中间旋转酉矩阵的多个拷贝上并行执行所述可相互交换的逆吉文斯旋转;以及
在所述可相互交换的逆吉文斯旋转已经在所述中间旋转酉矩阵的所述拷贝上被执行之后,同步所述中间旋转酉矩阵的所述多个拷贝。
6.根据权利要求1所述的计算系统,其中所述处理器被配置为至少部分地通过下述方式计算所旋转的所述损失梯度矩阵:
将中间旋转损失梯度矩阵初始化为所述损失梯度矩阵;以及
迭代地,针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块:
在所述中间旋转损失梯度矩阵的多个拷贝上并行执行所述可相互交换的吉文斯旋转;以及
在所述可相互交换的吉文斯旋转已经在所述中间旋转损失梯度矩阵的所述拷贝上被执行之后,同步所述中间旋转损失梯度矩阵的所述多个拷贝。
7.根据权利要求1所述的计算系统,其中所述处理器被配置为:经由相对于所述酉矩阵的所述酉矩阵元素的所述训练损失的自动微分来计算所述损失梯度矩阵。
8.根据权利要求1所述的计算系统,其中所述处理器被配置为至少部分地通过下述方式从所旋转的所述酉矩阵和所旋转的所述损失梯度矩阵计算所述JVP:
从所旋转的所述酉矩阵和所旋转的所述损失梯度矩阵计算中间向量积矩阵;以及
将所述中间向量积矩阵的行的多个加和计算为所述JVP的元素。
9.根据权利要求8所述的计算系统,其中所述处理器被配置为至少部分地通过下述方式计算所述中间向量积矩阵:
生成所述坐标对到所述中间向量积矩阵的行的映射;以及
针对所述中间向量积矩阵的每一行,将被包括在该行中的每一个中间向量积矩阵元素计算为Milulj-Mjluli,其中M为所旋转的所述损失梯度矩阵,u为所旋转的所述酉矩阵,i和j为被包括在所述坐标对中的所述坐标,并且l为所述中间向量积矩阵的列号。
10.根据权利要求1所述的计算系统,其中所述处理器被配置为:计算具有复杂度O(nlog n)的所述JVP。
11.一种用于训练机器学习模型的方法,所述方法包括在多个反向传播迭代的每一个反向传播迭代中:
生成包括多个坐标对的坐标对序列,其中所述多个坐标对中的每个坐标对在所述坐标对序列内是唯一的并且包括不匹配的坐标;
接收分别与所述多个坐标对相关联的多个参数化角度;
计算由所述多个参数化角度参数化的酉矩阵;
计算相对于所述酉矩阵的多个酉矩阵元素的训练损失的损失梯度矩阵;
计算相对于所述多个参数化角度的所述训练损失的雅可比向量积(JVP),其中计算所述JVP包括:
通过针对所述多个坐标对中的每个坐标对,在所述酉矩阵上通过所述坐标对的所述参数化角度围绕由所述坐标对指定的轴执行逆吉文斯旋转来计算所旋转的酉矩阵;
通过针对所述多个坐标对中的每个坐标对,在所述损失梯度矩阵上通过所述坐标对的所述参数化角度围绕由所述坐标对指定的所述轴执行吉文斯旋转来计算所旋转的损失梯度矩阵;以及
从所旋转的所述酉矩阵和所旋转的所述损失梯度矩阵计算所述JVP;以及
至少部分地基于所述JVP来更新所述多个参数化角度。
12.根据权利要求11所述的方法,其中生成所述坐标对序列包括:
针对n个索引的索引序列,其中n为所述酉矩阵的行的数目:
在多个配对迭代中的每一个配对迭代中:
在初始配对迭代之后的每一个配对迭代中,将除固定索引之外的每个索引的所述索引序列中的相应位置移动1模n-1;
迭代地将所述索引序列中的第一个未配对索引与所述索引序列中的最后一个未配对索引配对,直到所述索引序列包括少于两个未配对索引;以及
将每对索引添加到所述坐标对序列中。
13.根据权利要求11所述的方法,其中计算所述酉矩阵包括:
将中间酉矩阵初始化为所述单位矩阵;以及
迭代地,针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块:
在所述中间酉矩阵的多个拷贝上并行执行所述多个可相互交换的吉文斯旋转;以及
在所述可相互交换的吉文斯旋转已经在所述中间酉矩阵的所述拷贝上被执行之后,同步所述中间酉矩阵的所述多个拷贝。
14.根据权利要求11所述的方法,其中计算所旋转的所述酉矩阵包括:
将中间旋转酉矩阵初始化为所述酉矩阵;以及
迭代地,针对多个逆吉文斯旋转块中的分别包括多个可相互交换的逆吉文斯旋转的每一个吉文斯旋转块:
在所述中间旋转酉矩阵的多个拷贝上并行执行所述可相互交换的逆吉文斯旋转;以及
在所述可相互交换的逆吉文斯旋转已经在所述中间旋转酉矩阵的所述拷贝上被执行之后,同步所述中间旋转酉矩阵的所述多个拷贝。
15.权利要求11的方法,其中计算所旋转的所述损失梯度矩阵包括:
将中间旋转损失梯度矩阵初始化为所述损失梯度矩阵;以及
迭代地,针对多个吉文斯旋转块中的分别包括多个可相互交换的吉文斯旋转的每一个吉文斯旋转块:
在所述中间旋转损失梯度矩阵的多个拷贝上并行执行所述可相互交换的吉文斯旋转;以及
在所述可相互交换的吉文斯旋转已经在所述中间旋转损失梯度矩阵的所述拷贝上被执行之后,同步所述中间旋转损失梯度矩阵的所述多个拷贝。
CN202280034235.5A 2021-05-12 2022-04-09 使用酉矩阵的参数化角度的反向传播 Pending CN117321608A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/318,977 US20220374718A1 (en) 2021-05-12 2021-05-12 Backpropagation using parametrizing angles of unitary matrix
US17/318,977 2021-05-12
PCT/US2022/024151 WO2022240514A1 (en) 2021-05-12 2022-04-09 Backpropagation using parametrizing angles of unitary matrix

Publications (1)

Publication Number Publication Date
CN117321608A true CN117321608A (zh) 2023-12-29

Family

ID=81387373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280034235.5A Pending CN117321608A (zh) 2021-05-12 2022-04-09 使用酉矩阵的参数化角度的反向传播

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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116523065A (zh) * 2023-04-18 2023-08-01 北京百度网讯科技有限公司 确定量子设备演化酉矩阵的方法及装置、电子设备和介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7295421B2 (ja) * 2019-08-22 2023-06-21 オムロン株式会社 制御装置及び制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116523065A (zh) * 2023-04-18 2023-08-01 北京百度网讯科技有限公司 确定量子设备演化酉矩阵的方法及装置、电子设备和介质

Also Published As

Publication number Publication date
EP4338098A1 (en) 2024-03-20
AU2022274680A1 (en) 2023-10-26
WO2022240514A1 (en) 2022-11-17
US20220374718A1 (en) 2022-11-24
TW202248908A (zh) 2022-12-16

Similar Documents

Publication Publication Date Title
JP7485740B2 (ja) ニューラルネットワーク命令セットアーキテクチャ
US10534607B2 (en) Accessing data in multi-dimensional tensors using adders
CN117321608A (zh) 使用酉矩阵的参数化角度的反向传播
US10108538B1 (en) Accessing prologue and epilogue data
US11024073B2 (en) Method and apparatus for generating virtual object
CN110363294A (zh) 利用网络中的路径来表示神经网络以提高神经网络的性能
US9946539B1 (en) Accessing data in multi-dimensional tensors using adders
US8464026B2 (en) Method and apparatus for computing massive spatio-temporal correlations using a hybrid CPU-GPU approach
US11694105B2 (en) Quantum data loader
WO2019060730A1 (en) DETERMINING CONTROL POLICIES FOR ROBOTS WITH STRUCTURED EXPLORATION TOLERANT TO NOISE
CN110309918A (zh) 神经网络在线模型的验证方法、装置和计算机设备
US20230316080A1 (en) Sparsity masking methods for neural network training
US20230196651A1 (en) Method and apparatus with rendering
TW202230168A (zh) 在硬體加速器上計算部分矩陣
EP4091078A1 (en) Cluster update accelerator circuit
US20230102335A1 (en) Method and apparatus with dynamic convolution
CN117492838A (zh) 访问序言和结尾数据
US20240127522A1 (en) Multi-modal three-dimensional face modeling and tracking for generating expressive avatars
US20240086719A1 (en) Sparse encoding and decoding at mixture-of-experts layer
TW202234267A (zh) 在硬體加速器處計算內積
WO2024081052A1 (en) Multi-modal three-dimensional face modeling and tracking for generating expressive avatars
WO2023149920A2 (en) Quantum device simulation using natural-orbital basis
TW202340980A (zh) 用於稀疏矩陣乘法的系統及方法
EP4302198A1 (en) Data transfer scheduling for hardware accelerator

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination