量子退火与机器学习(2):少量实验即可找到新材料,黑盒优化➕量子退火

使用量子退火和因子分解机设计新材料

这篇文章是东京大学的一位博士生的毕业论文中的主要贡献。
结合了黑盒优化和量子退火,是融合的非常好的一篇文章,在此分享给大家。

https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.013319

论文中黑盒优化的概述

黑盒优化是一种迭代过程,适用于输入(材料结构)与输出(期望性能)之间的关系复杂或未知,且输出评估计算成本高昂的场景。在本文中,目标是设计具有高性能指标(FOM)的元材料,专门针对大气透明窗口(8-13 μm)的热辐射冷却。设计空间包含众多可能的材料配置,使得穷举评估变得不切实际。论文采用机器学习和量子退火来解决这一挑战,其中QUBO矩阵在量子退火优化中扮演核心角色。

FMQA算法由三个主要组成部分,如下图所示:

  1. 回归:因子分解机(FM)根据材料结构预测FOM值。
  2. 选择:量子退火器求解QUBO问题以选择下一个候选结构。
  3. 模拟:通过RCWA计算所选结构的FOM,并用于更新模型。
    在这里插入图片描述

QUBO矩阵是在选择步骤中推导出来的,它连接了机器学习模型与量子退火过程。以下我们详细说明如何实现这一过程。

第一步:将元材料结构表示为二进制变量

应用黑盒优化的第一步是将问题编码为适合优化的形式。目标元材料由二维网格(在 x − z x-z xz平面上)组成,离散为边长1μm的正方形单元,具有 L L L层(沿 z z z方向)和 C C C列(沿 x x x方向)。每个单元可以填充 S i O 2 \mathrm{SiO}_2 SiO2 S i C \mathrm{SiC} SiC或PMMA,但有一个约束:在每一层内,所有线都必须是相同的材料( S i O 2 \mathrm{SiO}_2 SiO2 S i C \mathrm{SiC} SiC),而某些位置可以包含PMMA(无线)。
在这里插入图片描述

为了编码这个结构:

  • 线的编码:对于网格中 L × C L \times C L×C个位置中的每一个,二进制变量 q i , j q_{i,j} qi,j(其中 i i i是层, j j j是列)表示是否存在线(1)或者PMMA填充该位置(0)。
  • 材料类型:对于 L L L层中的每一层,附加的二进制变量 q i , mat q_{i,\text{mat}} qi,mat指定线材料:0表示 S i O 2 \mathrm{SiO}_2 SiO2,1表示 S i C \mathrm{SiC} SiC
  • 也就是说,最右侧的1列0和1的编码,是表示左侧3列中的1是选择了 S i O 2 \mathrm{SiO}_2 SiO2,还是 S i C \mathrm{SiC} SiC

因此,二进制变量的总数为:
N = L × C + L = L ( C + 1 ) N = L \times C + L = L (C + 1) N=L×C+L=L(C+1)

例如,当 L = 6 L = 6 L=6 C = 3 C = 3 C=3时,有 6 × ( 3 + 1 ) = 24 6 \times (3 + 1) = 24 6×(3+1)=24位,对应 2 24 = 16 , 777 , 216 2^{24} = 16,777,216 224=16,777,216种可能的配置。

向量 q = { q 1 , q 2 , … , q N } \mathbf{q} = \{q_1, q_2, \ldots, q_N\} q={q1,q2,,qN}表示整个结构,其中前 L × C L \times C L×C位编码线的放置,最后 L L L位编码每层的材料类型。

第二步:用因子分解机建模FOM

由于使用RCWA评估所有 2 N 2^N 2N种配置的FOM(在论文中定义为8-13μm范围内的发射率减去此范围外的惩罚项)是不可行的,因此使用机器学习模型来近似这种关系。论文采用因子分解机(FM),根据二进制变量 q \mathbf{q} q预测FOM。

FM定义为:
f ( q ) = ∑ i = 1 N w i q i + ∑ i = 1 N ∑ j = 1 N ∑ k = 1 K v i k v j k q i q j f(\mathbf{q}) = \sum_{i=1}^N w_i q_i + \sum_{i=1}^N \sum_{j=1}^N \sum_{k=1}^K v_{i k} v_{j k} q_i q_j f(q)=i=1Nwiqi+i=1Nj=1Nk=1Kvikvjkqiqj

其中:

  • w i w_i wi:每个二进制变量 q i q_i qi的线性权重。
  • v i k v_{i k} vik:捕捉变量间交互的潜在因子(大小为 K K K),在论文中 K = 8 K = 8 K=8
  • q i q_i qi:来自结构编码的二进制变量(0或1)。
  • N = L ( C + 1 ) N = L (C + 1) N=L(C+1):变量总数。

这可以更紧凑地重写为:
f ( q ) = ∑ i = 1 N w i q i + ∑ i = 1 N ∑ j = 1 N ⟨ v i , v j ⟩ q i q j f(\mathbf{q}) = \sum_{i=1}^N w_i q_i + \sum_{i=1}^N \sum_{j=1}^N \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j f(q)=i=1Nwiqi+i=1Nj=1Nvi,vjqiqj

其中 ⟨ v i , v j ⟩ = ∑ k = 1 K v i k v j k \langle \mathbf{v}_i, \mathbf{v}_j \rangle = \sum_{k=1}^K v_{i k} v_{j k} vi,vj=k=1Kvikvjk是因子向量 v i \mathbf{v}_i vi v j \mathbf{v}_j vj的点积。

关键细节:FM被训练预测负FOM f ( q ) ≈ − FOM ( q ) f(\mathbf{q}) \approx -\text{FOM}(\mathbf{q}) f(q)FOM(q)),因为量子退火器最小化目标,而目标是最大化FOM。训练使用现有数据(初始结构及其RCWA计算的FOM)和Adam优化器来拟合 w i w_i wi v i k v_{i k} vik

FM的二次形式自然与QUBO兼容,因为它包括线性项( ∑ w i q i \sum w_i q_i wiqi)和成对交互项( ∑ i , j ⟨ v i , v j ⟩ q i q j \sum_{i,j} \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j i,jvi,vjqiqj)。

第三步:从训练好的FM推导QUBO矩阵

QUBO问题表达为:
H ( q ) = ∑ i = 1 N ∑ j = 1 N Q i j q i q j \mathcal{H}(\mathbf{q}) = \sum_{i=1}^N \sum_{j=1}^N Q_{i j} q_i q_j H(q)=i=1Nj=1NQijqiqj

其中 Q i j = Q j i Q_{i j} = Q_{j i} Qij=Qji(对称矩阵),且 q i ∈ { 0 , 1 } q_i \in \{0, 1\} qi{0,1}。量子退火器(D-Wave 2000Q)最小化这个哈密顿量以找到最优的 q \mathbf{q} q

由于FM中的 f ( q ) f(\mathbf{q}) f(q)是预测的负FOM,QUBO目标设定为:
H ( q ) = f ( q ) \mathcal{H}(\mathbf{q}) = f(\mathbf{q}) H(q)=f(q)

最小化 H ( q ) \mathcal{H}(\mathbf{q}) H(q)因此找到具有最负预测FOM的 q \mathbf{q} q,对应于最高的实际FOM。

为了将 f ( q ) f(\mathbf{q}) f(q)映射到QUBO形式,考虑其展开:
f ( q ) = ∑ i = 1 N w i q i + ∑ i = 1 N ∑ j = 1 N ⟨ v i , v j ⟩ q i q j f(\mathbf{q}) = \sum_{i=1}^N w_i q_i + \sum_{i=1}^N \sum_{j=1}^N \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j f(q)=i=1Nwiqi+i=1Nj=1Nvi,vjqiqj

由于 q i q i = q i q_i q_i = q_i qiqi=qi(因为二进制变量满足 q i 2 = q i q_i^2 = q_i qi2=qi),将对角项( i = j i = j i=j)和非对角项( i ≠ j i \neq j i=j)分开:

  • 对角项 ∑ i = 1 N ( w i q i + ⟨ v i , v i ⟩ q i q i ) = ∑ i = 1 N ( w i + ⟨ v i , v i ⟩ ) q i \sum_{i=1}^N (w_i q_i + \langle \mathbf{v}_i, \mathbf{v}_i \rangle q_i q_i) = \sum_{i=1}^N (w_i + \langle \mathbf{v}_i, \mathbf{v}_i \rangle) q_i i=1N(wiqi+vi,viqiqi)=i=1N(wi+vi,vi⟩)qi
  • 非对角项 ∑ i ≠ j ⟨ v i , v j ⟩ q i q j \sum_{i \neq j} \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j i=jvi,vjqiqj

在QUBO约定( ∑ i , j Q i j q i q j \sum_{i,j} Q_{i j} q_i q_j i,jQijqiqj)中:

  • 对于 i = j i = j i=j Q i i q i q i = Q i i q i Q_{i i} q_i q_i = Q_{i i} q_i Qiiqiqi=Qiiqi,所以 Q i i = w i + ⟨ v i , v i ⟩ = w i + ∑ k = 1 K v i k 2 Q_{i i} = w_i + \langle \mathbf{v}_i, \mathbf{v}_i \rangle = w_i + \sum_{k=1}^K v_{i k}^2 Qii=wi+vi,vi=wi+k=1Kvik2
  • 对于 i ≠ j i \neq j i=j Q i j q i q j + Q j i q j q i = 2 Q i j q i q j Q_{i j} q_i q_j + Q_{j i} q_j q_i = 2 Q_{i j} q_i q_j Qijqiqj+Qjiqjqi=2Qijqiqj(因为 Q i j = Q j i Q_{i j} = Q_{j i} Qij=Qji),但FM项是 ⟨ v i , v j ⟩ q i q j \langle \mathbf{v}_i, \mathbf{v}_j \rangle q_i q_j vi,vjqiqj,所以 Q i j = ⟨ v i , v j ⟩ = ∑ k = 1 K v i k v j k Q_{i j} = \langle \mathbf{v}_i, \mathbf{v}_j \rangle = \sum_{k=1}^K v_{i k} v_{j k} Qij=vi,vj=k=1Kvikvjk

因此,QUBO矩阵为:
Q i j = { w i + ∑ k = 1 K v i k 2 如果  i = j ∑ k = 1 K v i k v j k 如果  i ≠ j Q_{ij} = \begin{cases} w_i + \sum_{k=1}^K v_{ik}^2 & \text{如果 } i = j \\ \sum_{k=1}^K v_{ik} v_{jk} & \text{如果 } i \neq j \end{cases} Qij={wi+k=1Kvik2k=1Kvikvjk如果 i=j如果 i=j

在训练FM后, w i w_i wi v i k v_{i k} vik已知,允许直接计算 Q i j Q_{i j} Qij

第四步:用量子退火求解QUBO

QUBO矩阵 Q Q Q被输入到D-Wave 2000Q量子退火器中,最小化 H ( q ) \mathcal{H}(\mathbf{q}) H(q)。解 q ∗ \mathbf{q}^* q代表预测具有最高FOM的下一个候选结构。退火器输出50个候选状态(num_reads = 50),在16毫秒的QPU时间内选择最低能量状态。然后通过RCWA评估此结构的FOM,将其添加到训练数据中,并重复该过程。

过程总结

以下是黑盒优化如何得出QUBO矩阵:

  1. 编码问题:将元材料表示为 N = L ( C + 1 ) N = L (C + 1) N=L(C+1)个二进制变量。
  2. 训练FM:使用现有数据拟合FM,预测负FOM: f ( q ) = ∑ i w i q i + ∑ i , j ∑ k v i k v j k q i q j f(\mathbf{q}) = \sum_{i} w_i q_i + \sum_{i,j} \sum_{k} v_{i k} v_{j k} q_i q_j f(q)=iwiqi+i,jkvikvjkqiqj
  3. 提取QUBO:从训练好的FM参数:
    • Q i i = w i + ∑ k = 1 K v i k 2 Q_{i i} = w_i + \sum_{k=1}^K v_{i k}^2 Qii=wi+k=1Kvik2(对角线,线性+自交互项)。
    • Q i j = ∑ k = 1 K v i k v j k Q_{i j} = \sum_{k=1}^K v_{i k} v_{j k} Qij=k=1Kvikvjk(非对角线,成对交互)。
  4. 优化:使用量子退火求解QUBO以选择下一个候选。

这种方法通过使用FM近似FOM并利用量子退火器处理QUBO问题的能力,有效地导航指数级设计空间( 2 N 2^N 2N个候选),克服了自动材料发现中的计算障碍。

这种方法展示了黑盒优化的强大应用,整合机器学习和量子计算来设计具有定制性能的复杂元材料,如增强的辐射冷却性能。

这篇文章给机器学习和量子退火的结合提供了新方向。
代码大家自己可以找一下,是公开的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/74154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始:Makefile 与 CMake 的基础入门与实践

本文适合基础学者 零基础 makefile 定义:Makefile 是一种传统的构建工具,用于定义如何编译和链接源代码。它通过一系列规则来描述如何生成目标文件(如可执行文件或库)。 功能:定义编译规则(如如何从源文件…

android开启Sys V IPC,并使用共享内存编程

参考:安卓开启Sys V IPC,并使用共享内存编程 | 久奈浜的CS部 删除config中-# CONFIG_SYSVIPC is not set 在rk3576.config中增加CONFIG_SYSVIPCy CONFIG_SYSVIPCy CONFIG_SYSVIPC_SYSCTLy CONFIG_SYSVIPC_COMPATy CONFIG_IPC_NSy system/sepolicy/pre…

docker pull lss233/one-api:latest 在哪里运行,作用是什么

docker pull lss233/one-api:latest 在哪里运行,作用是什么 1. 在哪里运行? docker pull lss233/one-api:latest 是一个Docker命令,需在已安装Docker的环境中执行。 适用环境:本地开发机、服务器、云主机等。前提条件:需先安装Docker并配置好环境。2. 作用是什么? 该命令…

轮胎厂相关笔记

一、术语 图解:https://news.yiche.com/hao/wenzhang/38498703/ 1、胚胎 在轮胎制造行业中,“胎胚”(也称“生胎”或“未硫化轮胎”)是指轮胎在硫化(高温高压固化)之前的半成品形态。它是轮胎成型的中间…

开发者视角:应用程序中HTTP代理的集成指南

目录 一、为何需要HTTP代理? 二、集成方式分阶解析 三、关键配置管理策略 四、安全与性能平衡 五、调试与问题排查 六、最佳实践总结 结语 在开发需要与外部网络交互的应用程序时,HTTP代理是绕不开的实用工具。它既能解决网络限制问题&#xff0c…

从纸质到 AI 时代:我的笔记工具探索之旅

今天清晨,在得到上闲逛时,偶然间发现了一本名为《笔记的方法》的书,这本由Flomo的作者出版的图书,深入探讨了记笔记的艺术。 说起记笔记,这些年来,我尝试了各种各样的工具,今天就来梳理一下我的…

Ubuntu22云服务器添加2G Swap分区

Ubuntu22云服务器添加2G Swap分区 步骤 1:检查当前 Swap 和内存步骤 2:创建 2GB 的 Swap 文件步骤 3:设置权限并格式化步骤 4:启用 Swap 文件步骤 5:永久保留 Swap 配置可选优化:调整 Swappiness验证结果注…

网络空间安全(43)Linux实战篇

一、系统配置安全 BIOS安全设置 设置BIOS密码:防止未授权用户修改BIOS设置。修改引导次序:禁止从软盘启动系统,减少潜在的启动攻击风险。 文件系统权限管理 最小化SUID权限程序:SUID(Set User ID)程序以ro…

软件的常用设计模式。可参考一个一个学习

以下是软件设计中常见的 **23种经典设计模式**(基于《设计模式:可复用面向对象软件的基础》GoF 的经典分类),并结合 **Python 语言特性**的简要说明和典型应用场景。我将它们分为 **创建型、结构型、行为型** 三大类,供…

性能比拼: Go(Gin) vs Python(Flask)

本内容是对知名性能评测博主 Anton Putra Go (Golang) vs Python Performance Benchmark (Kubernetes - OpenTelemetry - Prometheus - S3/Postgres) 内容的翻译与整理, 有适当删减, 相关指标和结论以原作为准 在本视频中,我们将比较 Golang 和 Python 的性能。 但…

Android版本更新服务通知下载实现

在日常开发中,我们肯定会有检查版本更新的需求,那我版本更新的轮子网上也是有的,想自己实现一下代码如下: 下载管理类: public class DownLoadManager {private static final String MAIN "main"; //Tagp…

UE5学习笔记 FPS游戏制作33 换子弹 动画事件

新建动画蒙太奇 为Rifle和Launcher各自新建一个动画蒙太奇,拖入动画,注意动画的轨道要和动画蓝图里的一致 在蒙太奇添加动画事件 在通知一栏新增一个轨道,右键轨道,新增一个 换枪完成 通知,不同动画的同名通知需要…

uniapp中uploadFile的用法

基本语法 uni.uploadFile(OBJECT)OBJECT 是一个包含上传相关配置的对象,常见参数如下: 参数类型必填说明urlString是开发者服务器地址。filePathString是要上传文件资源的本地路径。nameString是文件对应的 key,开发者在服务端可以通过这个 …

Android设计模式之责任链模式

一、定义: 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系将这些对象连城一条链,并沿着这条链传递该请求,只到有对象处理它为止。 二、模式结构: 抽象处理者(Handler&#xff…

Oracle数据库数据编程SQL<3.3 PL/SQL 游标>

游标(Cursor)是Oracle数据库中用于处理查询结果集的重要机制,它允许开发者逐行处理SQL语句返回的数据。 目录 一、游标基本概念 1. 游标定义 2. 游标分类 二、静态游标 (一)显式游标 【一】不带参数,普通的显示游标 1. 显式…

逗万DareWorks|创意重构书写美学,引领新潮无界的文创革命

当传统文具陷入同质化泥潭时,逗万DareWorks品牌犹如一颗璀璨的明星,以其独特的创意理念和卓越的产品品质,迅速赢得了广大消费者的青睐。 逗万DareWorks隶属于东莞司贸文教赠品有限公司,后者深耕制笔行业45年,占地4.6万…

写Prompt的技巧和基本原则

一.基本原则 1.一定要描述清晰你需要大模型做的事情,不要模棱两可 2.告诉大模型需要它做什么,不需要做什么 改写前: 请帮我推荐一些电影 改写后: 请帮我推荐2025年新出的10部评分比较高的喜剧电影,不要问我个人喜好等其他问题&#xff…

【React】基于 React+Tailwind 的 EmojiPicker 选择器组件

1.背景 React 写一个 EmojiPicker 组件,基于 emoji-mart 组件二次封装。支持添加自定义背景 、Emoji 图标选择!并在页面上展示! 2.技术栈 emoji-mart/data 、emoji-mart : emoji 图标库、元数据 tailwindcss: 原子化 CSS 样式库 antd : 组…

Qt中绘制不规则控件

在Qt中绘制不规则控件可通过设置遮罩(Mask)实现。以下是详细步骤: ‌继承目标控件‌:如QPushButton或QWidget。‌重写resizeEvent‌:当控件大小变化时,更新遮罩形状。‌创建遮罩区域‌:使用QRegion或QPain…

Parallel_Scheduling_of_DAGs_under_Memory_Constraints论文阅读

内存约束下的 DAG 并行调度 点击阅读原文语雀链接更清晰 摘要 科学工作流通常被建模为任务的有向无环图(DAG),这些任务代表计算模块及其依赖关系,依赖关系表现为任务生成的数据被其他任务使用。这种形式化方法允许使用运行时系统&…