当前位置: 首页 > article >正文

量子退火与机器学习(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个候选),克服了自动材料发现中的计算障碍。

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

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

相关文章:

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

使用量子退火和因子分解机设计新材料 这篇文章是东京大学的一位博士生的毕业论文中的主要贡献。 结合了黑盒优化和量子退火,是融合的非常好的一篇文章,在此分享给大家。 https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.0133…...

WPF中的Adorner基础用法详解与实例

WPF中的Adorner基础用法详解与实例 Adorner(装饰器)是WPF中一个强大的功能,它允许开发者在现有UI元素之上叠加额外的视觉效果或交互功能,而不会影响原有布局系统。本文将详细介绍Adorner的基础概念、核心用法以及实际应用示例。 …...

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

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

02-Docker 使用

docker:快速构建、运行、管理应用的工具,可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用 1、部署mysql 先停掉虚拟机中的MySQL,确保你的虚拟机已经安装Docker,且网络开通的情况下,执行下面命令即可安装MySQL(注意:若服务器上已经有mysql 占用了330…...

html5时钟升级!支持切换深浅模式 Canvas实现现代化动态时钟

HTML5 Canvas实现现代化动态时钟 这里写目录标题 HTML5 Canvas实现现代化动态时钟项目介绍技术实现1. 项目架构2. Canvas绘图实现2.1 表盘绘制2.2 刻度绘制2.3 指针绘制 3. 动画效果4. 主题切换 项目亮点技术要点总结项目收获改进方向结语 项目介绍 本项目使用HTML5 Canvas技术…...

MOE-1 基本认识

解读一下MOE架构,部分内容图片参考自油管。 首先来简单了解一下什么是MoE(Mixture of Experts,专家混合) MoE(Mixture of Experts)是一种深度学习架构,其核心思想是通过**多个专家网络&#xf…...

【C++接入大模型】WinHTTP类封装:实现对话式大模型接口访问

一、类设计概述 近期准备用C做一些大预言模型方面的开发,先期计划实现C调用公共的大模型Web接口,因为之前没做过C的Web开发,经验少,所以对比了一些主流的框架,包括实际测试验证。以下是Windows平台下主流C HTTP库的对…...

MaxEnt物种分布建模全流程;R+ArcGIS+MaxEnt模型物种分布模拟、参数优化方法、结果分析制图与论文写作

融合R语言的MaxEnt模型具有以下具体优势: 数据处理高效便捷 📊强大的数据预处理功能:R语言提供了丰富的数据处理工具,能够轻松完成数据清洗、筛选、转换等操作,为MaxEnt模型提供高质量的输入数据。 🌐自动…...

【银河麒麟高级服务器操作系统 】虚拟机运行数据库存储异常现象分析及处理全流程

更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…...

python leetcode简单练习(2)

20 有效括号 方法思路 要判断一个仅由括号组成的字符串是否有效,可以使用栈这一数据结构。核心思路是遍历字符串中的每个字符,遇到左括号时压入栈中,遇到右括号时检查栈顶的左括号是否匹配。若匹配则弹出栈顶元素,否则返回false。…...

Android BottomNavigationView 完全自定义指南:图标、文字颜色与选中状态

1. 核心功能概述 通过 Material Design 的 BottomNavigationView,你可以轻松实现以下自定义: ✅ 动态切换选中/默认图标 ✅ 自定义选中与默认文字颜色 ✅ 控制文字显示模式(始终显示/仅选中显示/自动隐藏) ✅ 添加动画和高级样…...

Kafka 偏移量

在 Apache Kafka 中,偏移量(Offset)是一个非常重要的概念。它不仅用于标识消息的位置,还在多种场景中发挥关键作用。本文将详细介绍 Kafka 偏移量的核心概念及其使用场景。 一、偏移量的核心概念 1. 定义 偏移量是一个非负整数…...

【NLP】15. NLP推理方法详解 --- 动态规划:序列标注,语法解析,共同指代

动态规划 (Dynamic Programming) 动态规划(Dynamic Programming,简称 DP)是一种通过将问题分解为较小子问题来优化计算效率的技术。它特别适用于优化最优解问题,比如序列标注(sequence tagging)这类任务。…...

文件分享系统--开源的可视化文件共享管理工具

家里有公网,经常要发文件给别人,文件几个G发送还要云盘或者倒手一次才行,所以弄了个文件分享系统,这个是用字节的 AI Trae 写的,反正反复折腾还是弄出来了。东西挺好用,可以拖拽多个文件上传也可以手动添加…...

【力扣刷题实战】寻找数组的中心下标

大家好,我是小卡皮巴拉 文章目录 目录 力扣题目:寻找数组的中心下标 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C) 兄弟们共勉 !!! 每篇前言 博客主页&#…...

LearnOpenGL小练习(QOpenGLWidget版本)

你好,三角形 1.绘制两个彼此相连的三角形 画两个独立的三角形,给出两个三角形顶点,使用GL_TRIANGLES绘图即可。 关键代码 void MyOpenglWgt::initializeGL() {initializeOpenGLFunctions(); // 1. 创建ShaderProgram着色器:加…...

【Easylive】SpringBoot启动类——EasyLiveWebRunApplication

【Easylive】项目常见问题解答(自用&持续更新中…) 汇总版 这段代码是 Spring Boot 应用的 主启动类,包含了多个关键注解,用于配置和启动整个应用程序。以下是各个部分的详细解析: 1. SpringBootApplication Spri…...

2025 年前端新趋势:拥抱 Web Component 与性能优化

在技术飞速发展的今天,前端开发领域也在持续演进,新的技术和理念不断涌现。2025 年,Web Component 和性能优化无疑是前端开发中值得关注的两大重点,本文将带你深入了解这两大趋势。 Web Component:构建可复用组件的未…...

计算机网络 用deepseek帮助整理的复习资料(一)

### 计算机网络基础知识整理 --- #### **一、网络类型** 1. **局域网 (LAN)** - **定义**:覆盖小范围(如家庭、教室、公司)。 - **特点**:高带宽、低延迟,设备通过交换机互联。 - **示例**&#xff1…...

基于OpenCV+MediaPipe手部追踪

一、技术栈 1. OpenCV(Open Source Computer Vision Library) 性质:开源计算机视觉库(Library) 主要功能: 图像/视频的基础处理(读取、裁剪、滤波、色彩转换等) 特征检测&#xf…...

美甲预约管理系统基于Spring Boot SSM

目录 摘要 1. 引言‌ 1.1 研究背景与意义 1.2 国内外研究现状 ‌2. 系统需求分析‌ 2.1 功能需求 2.2 非功能需求 ‌3. 系统设计与实现‌ 3.1 系统架构设计 3.2 关键技术实现 3.3 系统模块实现 ‌3.3.1店铺管理‌ ‌3.3.2商品管理‌ ‌3.3.3用户管理‌ ‌3.3.4订…...

XXX软件系统研发技术手册模板

《XXX软件系统研发技术手册》 1. 引言 1.1 编写目的 说明手册的编写背景、目标读者及核心价值,例如: 本文档为开发团队提供完整的技术实现指南,涵盖系统设计、开发规范、部署方案等内容 。 1.2 术语定义 微服务:一种架构风格&a…...

AIGC(生成式AI)试用 29 -- 用AI写读书笔记

看了本书《繁荣与衰退》,电子版的。 没了了纸制的感觉,但笔记还是要写的,多少是个意思。 没有最懒,只有更懒,笔记用AI生成试试看。 >> 个人理解 经济增长与全球化挑战交织时期 以“创造性破坏”为核…...

十五届蓝桥杯省赛Java B组(持续更新..)

目录 十五届蓝桥杯省赛Java B组第一题:报数第二题:类斐波那契数第三题:分布式队列第四题:食堂第五题:最优分组第六题:星际旅行第七题:LITS游戏第八题:拼十字 十五届蓝桥杯省赛Java B…...

OpenAI发布的《Addendum to GPT-4o System Card: Native image generation》文件的详尽笔记

Native_Image_Generation_System_Card 文件基本信息 文件名称:《Addendum to GPT-4o System Card: Native image generation》发布机构:OpenAI发布日期:2025年3月25日主要内容:介绍GPT-4o模型中新增的原生图像生成功能&#xff…...

蓝耘平台API深度剖析:如何高效实现AI应用联动

目录 一、蓝耘平台简介 1.1 蓝耘通义大模型 1.2 蓝耘云计算资源 1.3 蓝耘API与微服务 二、 蓝耘平台应用联动场景 2.1 数据采集与预处理联动 2.2 模型推理与后端服务联动 2.3 跨平台联动 三、蓝耘平台注册体验功能 3.1 注册 3.2 体验蓝耘MaaS平台如何使用海螺AI生成视频…...

缓存 “三剑客”

缓存 “三剑客” 问题 如何保证 Redis 缓存和数据库的一致性? 1. 缓存穿透 缓存穿透是指请求一个不存在的数据,缓存层和数据库层都没有这个数据,这种请求会穿透缓存直接到数据库进行查询 解决方案: 1.1 缓存空值或特殊值 查一…...

ComfyUi教程之阿里的万象2.1视频模型

ComfyUi教程之阿里的万象2.1视频模型 官网Wan 2.1 特点 一、本地安装1.1克隆仓库1.2 安装依赖(1.3)下载模型(1.4)CUDA和CUDNN 二、 使用体验(2.1)官方例子(2.2)执行过程(…...

⭐算法OJ⭐ 戳气球【动态规划】Burst Balloons

问题描述 LeetCode 312. 戳气球(Burst Balloons) 给定 n 个气球,编号从 0 到 n-1,每个气球上标有一个数字 nums[i]。戳破气球 i 可以获得 nums[left] * nums[i] * nums[right] 的硬币(left 和 right 是 i 的相邻气球&…...

Leetcode 寻找两个正序数组的中位数

💯 完全正确!!你这段话可以直接当作这道题的**“思路总览”模板答案**了,结构清晰、逻辑严谨、几乎没有遗漏任何关键点👏 不过我可以帮你稍微精炼一下语言,使它在保留你原本意思的基础上更具表达力和条理性…...