通过增强学习发现更快的矩阵乘法算法

  TensorGame的播放如下 。游戏的起始位置对应于表示在某种程度上表示的张量,代表了双线性操作 。在游戏的每个步骤t中 ,玩家都会写下三个向量(u(t) ,v(t),w(t)),该矢量指定了rank-1张量u(t)v(t)v(t)w(t) ,游戏的状态通过减去新写下来的因子来更新。   当该州达到零张量时,游戏结束。这意味着在整个游戏中写下的因素形成了开始张量的分解,也就是说 。然后对此分解。例如 ,当优化渐近时间复杂性时,得分为-R,并且在实用运行时进行优化时 ,构建了与分数相对应的算法(请参见算法1),然后触发基准测试(请参阅补充信息)。   在实践中,我们还对游戏中最大的移动次数施加了限制 ,因此弱者不会不必要地(甚至无限)长的比赛 。当游戏结束时,由于动作用完了,就会给出罚球得分 ,因此故意耗尽移动限制绝不是有利的。例如 ,当优化渐近时间复杂性时,这种惩罚是从最终残留张量的张量等级上的上限得出的。通过求和张量的矩阵等级来获得张量等级的上限 。   我们说,如果每个因素u(t) ,v(t)和w(t)都属于该集合,则方程(1)中的分解是在环中(定义算术操作),并且根据该集合的条目 ,并且按照根据该集合的条目进行解释。通常,张量等级取决于环。在张力参与的每个步骤中,公式(2)中的添加和乘法都会在中解释 。例如 ,当工作(在这种情况下,u(t),v(t)和w(t)的因素f = {0 ,1})时,在每个状态更新(等式(公式(2))之后,将应用一个模拟2操作。   我们注意到 ,整数值分解u(t) ,v(t)和w(t)导致任意环中的分解。因此,提供F仅包含整数,我们在标准算术中发现的算法更普遍地适用于任何环 。   alphatensor构建在Alphazero1及其扩展采样Alphazero21上 ,将深神经网络与基于样本的MCTS搜索算法相结合 。   深神经网络Fθ(s)=(π,z)由θ进行了参数,将游戏的当前状态作为输入 ,并输出概率分布π(s)对动作和z(s)的回报(未来奖励之和)G。G。演员们玩自我游戏游戏,在游戏中遇到的每个州ST进行基于样本的MCT搜索 。MCT搜索返回的概率分布比从中选择的动作并应用于环境的移动。在AT下的子树重复使用,以在ST+1处进行后续搜索。在游戏结束时 ,获得了返回g,并将轨迹发送给学习者以更新神经网络参数θ 。通过使用分位数回归分布损失34的分配加固学习来学习Z(st)的分布,并使用Kullback-Leibler差异损失更新网络策略π(ST) ,以最大程度地与自我玩法的搜索策略相似,或者以对自我玩法的游戏或下一个合成示范的搜索策略的相似性。我们使用具有脱钩权重decay36的Adam Optimizer35来优化神经网络的参数θ。   基于样本的MCT搜索与采样Alphazero中描述的搜索非常相似 。具体而言,搜索包括一系列汇总在树中的张力游戏的模拟轨迹。因此 ,搜索树由代表代表动作的状态和边缘的节点组成。每个州行动对(S ,a)存储一组统计信息,其中n(s,a)是访问量计数 ,q(s,a)是行动值,是经验策略概率 。每个模拟都会从根状态S0穿越树 ,直到通过在每个状态中递归选择一个不经常探索的动作A来达到叶状态SL,具有很高的经验策略概率和高价值。具体而言,通过对概率上限树的最大化来选择树内的动作21,37   其中c(s)是控制相对于值q(s ,a)的经验政策影响的探索因素,因为节点被更频繁地访问。另外,如果换位表达到完全相同的张量 ,则使用它们重组不同的动作序列 。由于行动是可交换的,这可能会在张力参与中发生 。最后,当达到叶状态SL时 ,它会通过神经网络进行评估 ,该神经网络返回从π(ASL)采样的K Action {ai}以及经验分布以及从Z(SL)构建的值V(SL)的返回。与Alphazero和采样Alphazero不同,我们选择V并不是大多数强化学习剂的Z(SL)分布的平均值,而是作为一个寻求风险的价值 ,而是利用张力参与是确定性的环境的事实,并且我们对我们有兴趣找到最佳的发动机。然后,如采样Alphazero中的“访问计数”和“模拟轨迹 ”上的值进行更新 。   使用MCT模拟了状态s的n(s)轨迹后 ,搜索树n(s,a)/n(s,a)/n(s ,a)/n(s)的动作的归一化访问计数形成了基于样本的改进策略。与Alphazero和采样Alphazero不同,我们使用自适应温度方案来平滑归一化访问计数分布,因为某些状态由于子树的重复使用和换位表 ,某些状态可以累积比其他访问量的数量级。具体而言,我们将改进的政策定义为否则,否则为1和1 。对于培训 ,我们直接将其用作网络策略π的目标。对于行动 ,我们还丢弃了所有具有低于最访问量的动作价值的行动,并且与剩下的高价值动作相称的样本。   我们在给定的算术(标准或模块化)中训练单个试剂分解不同的张量 。当网络与固定大小的输入配合使用时,我们将所有张量(带有零)添加到我们考虑的最大张量的尺寸(25×25×25)。在每个游戏开始时 ,我们以随机的目标进行均匀采样,然后玩TensOrgame。由于目标之间的转移,对不同目标的单个代理训练可以带来更好的结果 。我们在图3中报告的所有结果均使用此多目标设置的多个运行获得。我们还训练单个代理以分解两种算术中的张量。由于学到了两种算术之间的传递 ,该代理在标准算术中发现了与仅在标准算术训练的代理相比,在标准算术中(相同等级)的分布不同,从而增加了发现算法的总体多样性 。   合成示范缓冲液包含张量 - 分子化对 ,其中首先是随机生成的,然后形成张量 。我们创建了一个包含500万此类张量的分子化对的数据集。这些因素中的每个元素都是从f上给定的分类分布(可以采取的所有可能值)的独立和相同分布的(i.i.d。) 。我们丢弃了分解显然是次优的实例(包含一个因子,u = 0 ,v = 0或w = 0)。   除了这些综合演示外,我们还进一步增加了演示缓冲区以前的游戏,这些游戏取得了较大的成绩 ,以增强这些游戏中代理商的良好动作。   双线性操作的等级不取决于表示张量表示其表示的张量   因此 ,在任何基础上表达的矩阵乘法张量的秩-R分解表明,可以使用R标量乘积计算两个N×N矩阵的乘积 。此外,在规范的基础上将这种等级R分解转换为等级-R分解是很简单的 ,从而产生了算法1所示的形式的实际算法。我们通过在所有随机生成的基础(典型的基础上)以及lies laysial in ligtting andting andting和litching andting andting和litting andting andting and layting anding n in Grangorithm 1中所示。   这种方法具有三个吸引人的特性:(1)它提供了一种自然的探索机制,因为在不同基础上玩游戏会自动将多样性注入代理商玩的游戏;(2)它利用了问题的特性,因为代理在所有基础上都不需要成功 - 足以在任何碱基中找到低级分解;(3)它扩大了算法空间的覆盖范围 ,因为有限集中的条目f = {-2,-1、0 、1 、2}在不同基础上找到的分解,当将转换回经典基础时 ,不需要在同一集合中具有条目 。   In full generality, a basis change for a 3D tensor of size S × S × S is specified by three invertible S × S matrices A, B and C. However, in our procedure, we sample bases at random and impose two restrictions: (1) A = B = C, as this performed better in early experiments, and (2) unimodularity (), which ensures that after converting an integral factorization into the canonical basis it still仅包含整数条目(这是为了代表性的便利性和所得算法的数值稳定性)。有关确切算法,请参见补充信息。   除了在不同基础上玩(和训练)游戏外,每当在新的MCTS节点中查询神经网络时 ,我们还都会使用数据增强机制 。在ACTING时,当查询网络时,我们通过应用基础更改来转换输入张量 - 在此处将基础矩阵的更改设置为随机签名的置换。然后 ,我们在此转换的输入张量上查询网络 ,最后倒入网络策略预测中的转换。尽管可以使用基矩阵的任何通用更改(即,它不限于签名的置换矩阵)应用此数据增强过程,但我们主要使用签名排列 ,主要用于计算效率 。在训练时,每当对神经网络进行培训(输入,策略目标 ,价值目标)三胞胎(图2),我们就将随机选择的签名置换应用于输入和策略目标,并在此转换的三胞胎上训练网络 。实际上 ,我们在实验开始时采样了100个签名的排列,然后使用它们。   对于任何λ1,λ2 ,λ3{-1,+1},使得λ1λ2λ3= 1 ,动作(λ1U ,λ2V,λ3W)和(u,v ,v,w)是等效的,因为它们会导致相同的cond-One-One tensor(λ1U)(λ2V)(λ2V)(λ2V)(λ3W)(λ3W)。为了防止网络浪费能力来预测多个等效动作 ,在训练期间,我们总是以规范形式为策略头呈现目标(u,v ,w),定义为具有u的第一个非零元素,并且v stricty vlyst vlice version vermy元素的第一个非零元素 。这是很好的定义 ,因为u或v不能全部零(如果它们是最小等级分解的一部分),并且对于任何(u,v ,w) ,都有唯一的λ1,λ2,λ3 ,λ3{-1,+1,+1}(带有λ11λ2λ3= 1)将其转化为规范形式。如果该网络无论如何都会预测多个等效的动作 ,我们将它们插入MCTS树之前将它们合并在一起(总结其经验策略概率)。   我们在TPU V3上训练Alphatensor,总批量大小为2,048 。我们使用64个TPU内核,并进行60万迭代训练。在演员方面 ,游戏是在独立的TPU V4上玩的,我们使用了1,600名演员。实际上,该过程需要一周的时间才能融合 。   该体系结构由躯干组成 ,然后是一个策略头,该策略负责人可以预测动作的分布,以及一个预测从当前状态的收益分布的价值头(请参见图3)。   网络的输入包含当前状态的所有相关信息 ,并由张量列表和标量列表组成。最重要的信息是当前大小S×S×S的3D张量 。(为简单起见 ,在此处的描述中,我们假设张量的所有三个维度都等于大小。对不同尺寸的概括是直接的。)此外,此外 ,该模型还可以访问最后一个h动作(h通常设置为h的超级参数(h),通常设置为h等级为h等级 。标量列表包括当前动作的时间索引t(其中0≤t<rlimit) 。   网络的躯干负责将标量和张量从输入映射到对策略和价值主有用的表示形式。它的体系结构基于变形金刚的修改23,其主要签名是它在S×S×S×S输入张量投影的三个S×S网格上运行。每个网格代表张量的三个模式中的两个 。定义张量的模式为AS ,第一个网格的行和列分别与第二个网格的行和列分别关联,并且第三个网格的行和列相关联。每个网格的每个元素都是特征向量,其初始值均由网格缺失模式的输入张量元素给出。这些特征向量通过从标量线中串联S×S×1线性投影来丰富 。接下来是线性层将这些特征向量投射到512维空间中。   躯干的其余部分是一系列基于注意力的块 ,目的是在三个网格之间传播信息。这些块中的每个块都有三个阶段,每对网格一个一个阶段 。在每个阶段,涉及的网格是连接的 ,并且轴向注意力24在柱上进行。值得注意的是,在每个阶段,我们在每个阶段都以2s元素的平行自我发项操作执行。发送给策略头的表示形式对应于躯干最后一层产生的3S2 512维特征向量 。躯干结构的详细描述在扩展数据中指定了补充信息中的图4(顶部)和附录A.1.1。   策略负责人使用Transformer Architection23对自回归政策进行建模。因子被分解为维度D的K标记 ,以使K×D = 3s 。令牌上的变压器条件已经生成并与躯干产生的特征交叉 。在培训时 ,我们使用教师努力,也就是说,地面真理动作被分解为令牌 ,并将其作为因果变压器的输入,以使代币的预测仅取决于以前的令牌。在推理时,K的动作是从头部采样的。在初始步骤的最后一个线性层之前的特征表示(即 ,在地面真实情况下未经条件的唯一步骤)用作值头的输入,如下所述 。架构的详细信息在扩展数据中介绍了图4(中心)和附录A.1.2在补充信息中。   值头由四层多层感知器组成,其最后一层产生与分位数相对应的Q输出。通过这种方式 ,价值头会以上述刻痕预测的值的形式预测该状态的回报分布34 。在推论时,我们鼓励代理商使用超过75%的分位数的预测值的平均值来寻求风险。在扩展数据中介绍了值头的详细说明图4(底部)和附录A.1.3在补充信息中。   对有效的矩阵乘法算法的追求始于Strassen在参考文献中的突破 。2,这表明可以使用7个标量乘法乘以2×2矩阵 ,从而导致复杂算法。这导致了一个非常活跃的数学领域的发展,吸引了全球兴趣,该领域研究了矩阵乘法的渐近复杂性(参见参考文献3,4,5,6)。到目前为止 ,矩阵乘法的最著名复杂性是(参考文献12) ,它改进了参考文献 。11,并以田地的基本结果为基础8,9,10。但是,这不会产生实际算法 ,因为这种方法仅对天文矩阵大小才有优势。因此,由于这些因素化提供了实用算法,因此重要的工作旨在展示矩阵乘法张量的明确因素化 。在Strassen的突破表明 ,发现较大基质尺寸的有效算法15,16,18,26,38 。最值得注意的是,拉德曼(Laderman)在参考文献中表现出来。15可以使用23个标量乘法执行3×3矩阵乘法。除了提供个体的低级别因素化外,一个重要的研究方向旨在通过研究对称组和因素化的多样性(参见参考文献5和其中的参考文献) ,旨在了解矩阵乘法算法的空间(与表现出个体低级别的因素化相对) 。例如,在参考文献中研究了2×2矩阵乘法的对称性。39,40,41,42,Strassen的算法被证明是本质上独特的。参考文献中研究了3×3的情况 。43 ,而所有n的对称分解均在参考文献中提供。44。   在计算方面,连续优化一直是分解张量17,45,46的主要主力,尤其是矩阵乘法张量 。但是 ,这种连续的优化过程(例如 ,交替的最小二乘)产生近似解决方案,该解决方案对应于带有浮点操作的不精确矩阵乘法算法。为了避免此问题,已经提出了正规化程序 ,例如参考文献。18,提取精确的分解 。不幸的是,这种方法通常需要大量的人类干预和专业知识来分解大量张量。参考文献中探讨了另一种攻击线。47,48 ,基于学习模拟矩阵乘法操作结构的两层网络的连续权重 。通过监督矩阵乘法示例的监督学习,该方法可找到2×2和3×3矩阵乘法的近似解决方案 。在参考48,量化过程被进一步用于获得2×2的精确分解。与基于连续优化的方法不同 ,Alphatensor直接从所需的一组有效算法中产生算法,并且具有灵活性,并且它使我们能够优化广泛的(甚至是非不同的)目标。这可以解锁解决更广泛的设置(例如 ,在有限字段中的优化,运行时的优化)以及比以前考虑的更大的问题(例如) 。与连续优化不同,最近在参考文献中提出了基于布尔的满意度(SAT)对分解3×3矩阵乘法问题的公式。20 ,在已知的3×3因子列表中增加了成千上万的新分解等级23。该方法依赖于最先进的SAT解决程序 ,在该过程中,对减少搜索空间的因素化进行了几个假设和简化 。但是,这种方法是 随着搜索空间的尺寸 ,搜索空间的增长非常快,因此不太可能扩展到更大的张量。   在实际实施方面,参考。31提出了几个想法 ,以加快中央处理单元(CPU)的快速矩阵乘法算法的实施 。然后比较不同的快速算法并根据标准乘法显示了此类算法的潜在速度。其他作品的重点是从CPU32或GPU49上的特定快速矩阵乘法算法(具有一两个递归级别的Strassen的算法)中获得最大性能(Strassen的算法)。这些作品表明,尽管人们普遍认为,这种算法具有实际价值 。我们认为编写了给定算法的自定义低级实现 ,与本文的重点(开发了新的有效算法)不同,我们相信我们发现的算法可以从专家的更有效的实施中进一步受益。   除了矩阵乘法和双线性操作之外,越来越多的研究使用优化和机器学习来提高计算操作的效率。There are three levels of abstractions at which this can be done: (1) in the hardware design, for example, chip floor planning50, (2) at the hardware–software interface, for example, program super-optimization of a reference implementation for specific hardware51, and (3) on the algorithmic level, for example, program induction52, algorithm selection53 or meta-learning54.尽管Alphatensor也可以灵活地发现特定硬件的有效算法 ,但我们的工作重点是抽象的算法水平 。与以前的工作不同,我们专注于发现矩阵乘法算法,这些算法证明是正确的 ,而无需初始参考实现 。我们结论是将我们的工作与现有的加强学习方法联系起来 ,以进行科学发现。在数学中,将增强学习应用于例如定理55,56,57,58,并在组合和图理论中找到反例驳斥猜想59。增强学习进一步证明在科学的许多领域都有用 ,例如分子设计60,61和Synthesis62并优化量子动力学63 。

本文来自作者[admin]投稿,不代表象功馆立场,如若转载,请注明出处:https://m1.xianggongguan.cn/zixun/202506-1089.html

(21)
admin的头像admin签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • admin的头像
    admin 2025年06月20日

    我是象功馆的签约作者“admin”

  • admin
    admin 2025年06月20日

    本文概览:  TensorGame的播放如下。游戏的起始位置对应于表示在某种程度上表示的张量,代表了双线性操作。在游戏的每个步骤t中,玩家都会写下三个向量(u(t),v(t),w(t))...

  • admin
    用户062012 2025年06月20日

    文章不错《通过增强学习发现更快的矩阵乘法算法》内容很有帮助

联系我们

邮件:象功馆@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信