麻省理工学院的研究人员将张量编程扩展到连续世界

1957年,FORTRAN编程语言问世,它改变了科学家和工程师编写计算机程序的方式。借助数组——这种便于描述数据运算的数值集合,复杂的计算 suddenly 能以简洁、类数学的符号来表达。这一简单的理念演变成了如今的“张量”,通过NumPy和PyTorch等现代框架,为世界上许多最先进的人工智能和科学计算系统提供支持。

传统的张量编程假设所有数据都存在于整数网格中——例如,存储在坐标(1,2)或(5,7)处的值。这一假设促成了硬件和软件领域数十年的优化。如今,数据位于整数网格上的张量在编程中似乎无处不在,并且是许多计算范式(如机器学习和科学计算)的基础。但许多现实世界的数据集并不完全符合这种网格模式。3D传感中的点云、计算机图形学中的几何模型或物理学中的数值模拟通常存在于连续世界中,其中坐标可以取任何实数值。为了处理这些数据,研究人员长期以来一直依赖复杂的数据结构以及与主流张量框架分开编写的冗长且难以维护的代码。

如今,麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员找到了一种方法,将这些连续数据集带入人们熟悉的张量世界。他们的新框架名为连续张量抽象(CTA),允许在实数坐标下存储和访问数据——例如,使程序员能够编写A[3.14],而不仅仅是A[3]。该框架还引入了一种名为连续爱因斯坦求和的新语言,它是爱因斯坦求和符号的推广形式。爱因斯坦求和符号在传统张量编程中被广泛使用,最初由阿尔伯特·爱因斯坦提出,这种新语言能够以简洁、类数学的形式表达连续张量之间的计算。

将连续数据表示为数组似乎是不可能的——毕竟,实数是无限的,而数组的大小是有限的。麻省理工学院的团队通过一个名为分段常数张量的巧妙概念克服了这一挑战,该概念将连续空间划分为具有相同值的可管理区域。这类似于通过从数百万张不同颜色的普通纸上剪切和粘贴矩形来制作一幅大型拼贴画(例如,横幅中描绘的皮特·蒙德里安的艺术):基本信息得以保留,但形式是硬件可以处理的。

这种方法使得以前繁琐的算法能够用单行简洁的张量代码来表达。从分析3D激光雷达扫描数据,到建模流体流动,再到模拟物理系统,这些曾经需要数千行专门逻辑的任务,现在都可以用人们熟悉的高级数学Einsum语言来编写,并在现代加速器上高效执行。

“过去需要2000行代码编写的程序,用我们的语言一行就能完成,”麻省理工学院电气工程与计算机科学教授、CSAIL首席研究员、该研究的资深作者萨曼·阿马拉辛格说。“对于任何涉及连续数据的任务,我们的研究表明,张量编程能帮助人们以比科学家们之前认为的更多样化的方式来表示这类程序。”另一位资深作者、麻省理工学院教授乔尔·埃默——同时也是CSAIL的首席研究员和英伟达的高级杰出研究科学家——补充道:“连续爱因斯坦求和在直观上与在规则网格上定义的张量上日益流行的爱因斯坦求和工作方式相同,这使得程序员很容易采用这种新的扩展。”

在一项案例研究中,麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员发现,CTA能够帮助用户搜索二维空间,例如在谷歌地图等地理信息系统(GIS)中常见的空间。该团队使用了两种不同的查询方法:框选搜索,即系统检索用户指定正方形区域内的所有点;以及半径搜索,即系统查找用户勾勒的圆形范围内的数据点。在这些地理空间测试中,CTA生成的搜索程序代码行数比帮助用户测量和处理形状的Python工具Shapely少62倍。在半径搜索方面,CSAIL的系统速度也快了约9倍。

在编程机器学习算法以分析3D点云搜索中的模式时,CTA展现出了更为惊人的改进。虽然实现“核点卷积”需要超过2300行代码,但CSAIL的方法仅需23行代码就能完成相同的任务——换句话说,简洁了101倍。

该系统还测试了在人类基因组的特定染色体区域定位特征的能力。CTA的巧妙之处帮助执行了这些搜索查询,生成的代码比三个可比较的基准短18倍,同时平均速度略快。

另一项案例研究展示了CTA在3D深度学习任务中可能具有的实用性,这些任务能帮助机器人在抓取物体前看清周围环境。特别是,他们的系统在计算神经辐射场(NeRF)内的数据点方面表现出色,神经辐射场是一种利用2D图像构建3D场景的深度学习方法。在这项任务中,该系统的速度几乎是同类PyTorch工具的两倍,同时代码量减少了约70行。

每项实验都揭示了张量如何加速我们对各种复杂应用的分析。“此前,张量领域和非张量领域在很大程度上是孤立发展的,各自独立开发算法和数据结构,”主要作者Jaeyeon Won(SM ‘23届)表示,他是麻省理工学院计算机科学与人工智能实验室(CSAIL)的博士生,由Emer和Amarasinghe共同指导。“通过我们的语言,我们发现许多几何应用都能简洁而精确地用连续爱因斯坦求和(Einsums)来表达,同时还能受益于稀疏张量编译器中使用的相同性能优化。”

“我们认为这起到了连接两个世界的桥梁作用,” Won补充道。“此外,我们旨在探索如何通过连续张量符号的视角,重新解读并应用来自非张量世界的优化——例如,光线追踪核心是否能加速张量程序。”

CTA通过将张量编程的能力扩展到连续的无限空间中,为其开辟了一条令人振奋的道路。Won、Emer和Amarasinghe的下一步可能是探索该领域中更复杂的数据结构,这些结构使用变量而非常量来表示某个区域内特定点的值。进而,他们可以在深度学习和计算机图形学中尝试更复杂的应用,从而更深入地研究复杂的世界和科学可视化。

Won、Emer和Amarasinghe与佐治亚理工学院助理教授Willow Ahrens(2019年理学硕士、2024年博士)以及计算机科学与人工智能实验室的附属人员——博士生Teodoro Fields Collin(2025年理学硕士)共同撰写了这篇论文。他们的研究工作部分得到了英特尔、美国国家科学基金会、美国国防高级研究计划局以及美国能源部预测科学学术联盟计划(PSAAP)的支持。他们于10月在新加坡举行的面向对象编程、系统、语言与应用会议(OOPSLA)上展示了自己的研究成果。

内容概要:本文介绍了一种基于蒙特卡洛模拟和拉格朗日优化方法的电动汽车充电站有序充电调度策略,重点针对分时电价机制下的分散式优化问题。通过Matlab代码实现,构建了考虑用户充电需求、电网负荷平衡及电价波动的数学模【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)型,采用拉格朗日乘子法处理约束条件,结合蒙特卡洛方法模拟大量电动汽车的随机充电行为,实现对充电功率和时间的优化分配,旨在降低用户充电成本、平抑电网峰谷差并提升充电站运营效率。该方法体现了智能优化算法在电力系统调度中的实际应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源汽车、智能电网相关领域的工程技术人员。; 使用场景及目标:①研究电动汽车有序充电调度策略的设计与仿真;②学习蒙特卡洛模拟与拉格朗日优化在能源系统中的联合应用;③掌握基于分时电价的需求响应优化建模方法;④为微电网、充电站运营管理提供技术支持和决策参考。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注目标函数构建、约束条件处理及优化求解过程,可尝试调整参数设置以观察不同场景下的调度效果,进一步拓展至多目标优化或多类型负荷协调调度的研究
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值