清华大学利用可解释机器学习,优化光阳极催化剂,助力光解水制氢

水的太阳能光电化学 (PEC) 分解是将太阳能高效转换为氢能的方法,是一种很有前景的可再生能源生产方式。然而,受电极性质及电极缺陷的影响,PEC 反应的效率较低,需要合适的助催化剂辅助。而电解池、光电极和助催化剂组成的 PEC 系统非常复杂,参数繁多,系统优化成本很高。为此,清华大学的朱宏伟课题组利用机器学习,对 BiVO4 光阳极系统进行了优化。机器学习可以基于以往的实验数据,找出光阳极、助催化剂和电解池之间的关系。同时,可解释的机器学习能够识别出对反应性能最重要的参数,为系统优化提供指导。

作者 | 雪菜

编辑 | 三羊

本文首发自 HyperAI超神经微信公众平台~

太阳能光电化学 (PEC) 分解水是将太阳能高效转换为氢能和氧气的方法,是一种很有前景的可再生能源生产方式。

PEC 分解水需要一个光电极,充当电解池的阳极或阴极,而对电极作为电解池的阴极或阳极。光电极吸收太阳能,驱动水的氧化或还原反应,对电极上同时进行与之对应的还原或氧化反应。促进光生载流子的分离,还需要一个电源或光伏电池,为 PEC 提供偏压。

图 1:PEC 分解水流程示意图

PEC 分解水的效率受制于光电极的缺陷,如载流子在低偏压下的复合和不稳定性。而合适的助催化剂可以促进光载流子的分离,与光电极形成异质结并促进光吸收、降低表面能加速反应、抑制电极的化学腐蚀、加速电子传输等,提高反应效率。

研究人员已发现多种可以促进 PEC 反应的助催化剂,包括金属、金属氧化物、无金属助催化剂、双催化剂等。这些助催化剂的效率受其物理化学性质影响,如化学组成、形貌、晶型等。此外,电解池的反应条件如电极类型、电解液浓度、pH 等,也会对助催化效率有影响。

反应系统十分复杂,如何针对给定的光电极进行参数优化、选择合适的助催化剂,需要大量的试错实验。尤其是助催化剂的最佳厚度,会受到电极和助催化剂的双重影响,很难选择。然而,如果有足够的数据,机器学习可以迅速实现这一过程。

基于此,清华的朱宏伟课题组利用机器学习 (ML, Machine Learning),优化了 BiVO4 光阳极的助催化剂。首先,讨论了光阳极催化系统的基本影响因素和机制。随后,基于先前研究的实验数据创建数据库,训练机器学习模型,找出 BiVO4 光阳极、助催化剂和电解池之间的关系。最后,基于机器学习模型的可解释性,找出与反应效率联系最密切的特征,以此指导 BiVO4 光阳极助催化剂的选择。这一成果已发表于「Journal of Materials Chemistry A」。

这一成果已发表于「 Journal of Materials Chemistry A」

论文链接:

https://pubs.rsc.org/en/content/articlelanding/2023/TA/D3TA04148D

实验过程

数据集 文献调研

机器学习模型的输入为 12 个反应影响因素及电极面积,输出为 1.23 V (vs RHE ) 下的光电流密度提升。

从 84 篇文献中,找到了 112 组 BiVO4 光阳极催化水分解的实验数据,组成数据集。值得注意的是, BiVO4 光阳极的形貌被简化为 4 类,包括单晶、纳米虫、随机堆叠和致密薄膜。而助催化剂的形貌被简化为 3 类,包括均质膜、单层膜和分离膜。

模型的输出,即助催化剂对光电流密度的提升,被分为 3 个层次:低 (0)、中 (1)、高 (2)。

图 2:影响 PEC 反应效率的因素及助催化剂的形貌

数据处理 筛选与降维

数据收集完成后,对数据进行预处理,包括以下 7 个步骤:

1、数据清洗 (Cleaning)。数据清理是数据校正、修复和清除的过程。有 25 组数据由于不具代表性被排除;

2、数据插补 (Imputation)。很多研究提供的数据相当有限,且不同研究的数据之间缺乏连续性。因此,研究人员基于反应条件、光阳极形貌和尺寸,通过链式方程多重差值 (MICE),补充了缺失的助催化剂厚度;

3、数据分区 (Partition)。70% 的数据集被划分为机器学习模型的训练集,30% 用于测试。由于数据量有限,研究人员使用了 K-Fold 交叉验证,以验证模型的准确性;

图 3:数据分区流程图

4、数据转化 (Conversion)。这一过程是将数据集转换为模型可读的集合。使用独热编码 (One-Hot Encoding) 将分类数据转换为数值数据后,输入变量有 109 个维度;

5、数据归一化 (Normalization)。数值数据范围不一致时,需要通过归一化将数据转换至同一范围,使得不同输入变量在集合中权重相同。本研究使用 StandardScaler 进行数据归一化;

6、数据平衡 (Balance)。本研究中,不同输出类别的数据分布明显不平衡,其中 0 约占 34%、1 约占 52%、2 约占 14%。常用过采样和欠采样方法对样本进行再处理,前者是在小样本集合中增加数据,后者是在大样本集合中删除数据。本研究使用 SMOTE 过采样算法进行数据平衡;

7、数据降维 (Dimensionality Reduction)。数据降维是在尽量保留数据信息的同时,降低数据的维度,以简化模型,避免过拟合。数据降维的常用方法包括特征选择和特征提取。

模型构建 神经网络 + 树模型

本研究使用的神经网络包括两个隐藏层,第一层的神经元数量在 8-96 之间,第二层在 0-96 之间。模型的超参数组合通过随机搜索 (Random Search) 和贝叶斯优化 (Bayesian Optimization) 进行自动优化。

图 4:神经网络示意图 (a) 及最优超参数 (b)

此外,研究人员还对比了 4 种树模型算法的表现,包括并行的 Bagging 算法和随机森林 (RF, Random Forest) 算法、串行的 AdaBoost 算法和梯度提升 (Gradient Boosting) 算法。

模型的评价标准包括准确率、精确率、混淆矩阵、F1 分数、召回曲线及 AUC。

图 5:本研究的工作流

可解释性 SHAP

可解释的模型有利于帮助人们理解机器学习模型的决策过程。提高模型可解释性主要有两种技术:内在的可解释性 (Intrinsic Interpretability) 和事后的可解释性 (Post-hoc Interpretability)。

前者可以通过自解释 (Self-explanatory) 模型实现,如线性回归、逻辑回归和决策树等。这种方法可解释性强但准确率较低。后者通过代理模型 (surrogate Model) 来解释现有的模型,如集成方法、支持向量机和神经网络等。

此外,SHAP (Shapley Additive Explanation) 方法可以利用博弈论中的 Shapley 值计算模型中的特征重要性,为助催化剂的设计提供启发。

实验结果

性能对比 随机森林模型最佳

通过交叉验证对模型的超参数进行优化之后,研究人员对比了神经网络和树模型算法的性能。其中,随机森林算法有着最佳的泛化 (Generalization) 能力,测试准确率 70.37%,AUC 为 0.784

值得注意的是,随机森林模型可以准确识别低性能和中性能的助催化剂,不会将其误认为高性能,说明随机森林模型可以准确捕获高性能助催化剂的特征

图 6:不同模型的性能对比结果

a:不同模型的准确率、交叉验证准确率、测试准确率和 AUC;

b:随机森林模型的混淆矩阵;

c:随机森林模型的 ROC 曲线;

d:随机森林模型的学习曲线。

随后,研究人员将低性能和中性能归于一类,高性能归为一类,将模型转换为二元输出,随机森林的准确率为 96.30%,AUC 为 0.79

特征重要性 助催化剂类型

对拟合后的随机森林模型进行特征重要性分析,可以提升模型的可解释性。通过基尼 (Gini) 重要性或平均不纯度减少 (Mean Decrease Impurity),可以评价 PEC 电解池内在特征的重要性

图 7:不同内在特征对 PEC 反应的重要性

助催化剂相关的参数对随机森林模型的预测影响最大,尤其是助催化剂的类型和助催化剂的金属类型。次重要的是助催化剂的准备方法,它对助催化剂的形貌和尺寸也会有影响。此外,光阳极的尺寸也会显著影响随机森林模型的输出。因此,优化 PEC 光阳极时,应以助催化剂为主要指标,同时优化光阳极尺寸

SHAP分析 助催化剂厚度

研究人员还用 SHAP 计算了二元输出随机森林模型的特征重要性。

图 8:不同特征的 SHAP 值排序

其中,助催化剂的厚度为最重要的输入特征。随着厚度降低,SHAP 值不断增加,对模型性能的影响不断增加。当助催化剂的厚度在 5-10 nm 之间时,SHAP 为正值,说明厚度降低大概率能够提高模型性能。

当电解液浓度超过 0.5 M 时,SHAP 为正值,说明高浓度电解液有利于 PEC 光电极性能的提升

结果还显示,硼酸钾缓冲液是最理想的电解液,含钴的助催化剂有利于性能的提升,且金属的氢氧化物有利于性能的提升。

图 9:不同特征变化后 SHAP 值的变化

c:助催化剂厚度对 SHAP 值的影响;

d:光阳极厚度对 SHAP 值的影响;

e:电解液浓度对 SHAP 值的影响。

综上所述,BiVO4 单晶上厚度介于 5-10 nm 之间的钴基氢氧化物,在浓度高于 0.5 M 的硼酸钾电解液中,可能会有良好的 PEC 分解水性能。

PEC 水分解:更有前景的制氢方案

随着全球人口的增长,世界对于能源的需求不断增加,寻求可再生能源成为亟待解决的问题。太阳能是可再生的无碳能源,能量占全球可再生能源的 99% 以上。然而,要完全取代化石能源,需要大规模的储能设备,以解决太阳能的间歇性问题。电池或许可以满足短期储能需求,但长期储能和季节性储能的唯一选择就是燃料

植物可以通过光合作用,利用光能从水中提取电子,并将这些电子储存在高能的化学键中。受这一过程启发,研究人员开始利用太阳能分解水,将太阳能储存在产物氢气中。

图 10:光合作用流程图

氢气能量密度高 (MJ/kg),无碳排放,可以直接参与到氢经济中,或是通过费托反应 (Fischer–Tropsch) 合成碳燃料,与现有的能源设施相匹配。

目前最有效的太阳能转换设备是光伏设备 (PV, Photovoltaics),将太阳能转换为电能之后,通过电解水产生氢气。但这种方法成本太高,无法与化石燃料竞争

PEC 分解水提供了廉价的制氢方案。但由于这一反应中载流子传输速度慢、复合率高、电极易腐蚀、反应对水质要求高,PEC 的水分解效率较低,维护成本高。

在 AI 的帮助下,科研人员能够对 PEC 光阳极和助催化剂的组合进行优化,大大提高了 PEC 电极的设计效率。同时,可解释 AI 能够识别出对反应最重要的电极特征,为电极的优化提供参考,为化解全球能源危机提供新方案。

参考链接:

[1]https://onlinelibrary.wiley.com/doi/10.1002/aenm.201700555

[2]https://onlinelibrary.wiley.com/doi/10.1002/aenm.201802877

[3]https://www.britannica.com/science/photosynthesis

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

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

相关文章

windows server 2016调优

1. 增加TCP连接的最大数量: 在您当前的注册表路径(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters)中的右侧窗格,右击空白处,选择“新建” -> “DWORD (32位) 值”。为新的值命名为TcpNu…

【深度学习】【pytorch】对卷积层置零卷积核进行真实剪枝

最近需要对深度学习模型进行部署,因此需要对模型进行压缩,博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 前言卷积层剪枝总结 前言 深度学习剪枝(Pruning)是一种用于减少神经网络模型大小、减少计算量和提高推理效率的技术,通过去除神经…

thinkphp的路径参数(RESTFul风格),把参数写在路径里

thinkphp官方文档 https://www.kancloud.cn/manual/thinkphp5_1/353969 有一个Blog控制器,里面的read方法是固定的,不能该 route.php里添加如下代码,访问 blog对应的就是 android/blog Route::resource(blog,android/blog);然后访问路径

设计模式——模板方法模式(Template Pattern)+ Spring相关源码

文章目录 一、模板方法模式定义二、例子2.1 菜鸟教程例子2.1.1 抽象类Game 定义了play方法的执行步骤。2.1.2 继承Game类并实现initialize、startPlay、endPlay方法。2.1.3 使用 2.2 JDK源码 —— Map 2.3 Spring源码 —— JdbcTemplate2.4 Spring源码 —— RestTemplate三、其…

NLP之Bert实现文本分类

文章目录 1. 代码展示2. 整体流程介绍3. 代码解读4. 报错解决4.1 解决思路4.2 解决方法 5. Bert介绍5.1 什么是BertBERT简介:BERT的核心思想:BERT的预训练策略:BERT的应用:为什么BERT如此受欢迎?总结: 1. 代…

windows使用YOLOv8训练自己的模型(0基础保姆级教学)

目录 前言 一、使用labelimg制作数据集 1.1、下载labelimg 1.2、安装库并启动labelimg 1.4、制作YOLO数据集 二、使用YOLOv8训练模型 2.1、下载库——ultralytics (记得换源) 2.2、数据模板下载 2.3、开始训练 1、启动train.py,进行…

QT+SQLite数据库配置和使用

一、简介 1.1 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite(Qt自带驱动)。 二、下载和配置 2.1 SQLite下载…

GitLab(2)——Docker方式安装Gitlab

目录 一、前言 二、安装Gitlab 1. 搜索gitlab-ce镜像 2. 下载镜像 3. 查看镜像 4. 提前创建挂载数据卷 5. 运行镜像 三、配置Gitlab文件 1. 配置容器中的/etc/gitlab/gitlab.rb文件 2. 重启容器 3. 登录Gitalb ① 查看初始root用户的密码 ② 访问gitlab地址&#…

微信小程序-form表单-获取用户输入文本框的值

微信小程序-form表单-获取用户输入文本框的值 data: {userName: ,userPwd:""},//获取用户输入的用户名 userNameInput:function(e) {this.setData({userName: e.detail.value}) }, passWdInput:function(e) {this.setData({userPwd: e.detail.value}) }, //获取用户输…

Pycharm出现的一些问题和解决办法

1.每次启动打开多个项目,速度很慢。改为每次启动询问打开哪个单一项目 Setting -> Appearance & Behavior -> System Settings -> Project -> 关闭Reopen projects on startop 2.一直显示《正在关闭项目closing project》,关不上 pycha…

Java后端开发——JDBC组件

JDBC(Java Database Connectivity)是Java SE平台的一种标准API,它提供了一种标准的方法来访问关系型数据库,使得Java程序能够与各种不同的数据库进行交互,这篇文章我们来进行实验体验一下。 自定义JDBC连接工具类 1.编…

【IDEA使用maven package时,出现依赖不存在以及无法从仓库获取本地依赖的问题】

Install Parent project C:\Users\lxh\.jdks\corretto-1.8.0_362\bin\java.exe -Dmaven.multiModuleProjectDirectoryD:\学习\projectFile\study\study_example_service "-Dmaven.homeD:\Program Files\JetBrains\IntelliJ IDEA2021\plugins\maven\lib\maven3" "…

devops

git/jenkins 版本控制系统 gitlab 代码开发完成> 运维部署上线> 监控性能> cicd流水线部署, git和版本控制系统 git rootserver02:~/1103# git log --oneline 07f230c (HEAD -> main) first commit rootserver02:~/1103# git log -p 07f230c co…

LLC讲解

【精选】开关电源-LLC基本原理_llc 开关电源-CSDN博客

操作系统的线程模型

操作系统的线程调度有几个重要的概念: 调度器(Thread Scheduler):内核通过操纵调度器对内核线程进行调度,并负责将线程的任务映射到各个处理器上内核线程(Kernel Level Thread):简称…

【GitLab CI/CD、SpringBoot、Docker】GitLab CI/CD 部署SpringBoot应用,部署方式Docker

介绍 本文件主要介绍如何将SpringBoot应用使用Docker方式部署,并用Gitlab CI/CD进行构建和部署。 环境准备 已安装Gitlab仓库已安装Gitlab Runner,并已注册到Gitlab和已实现基础的CI/CD使用创建Docker Hub仓库,教程中使用的是阿里云的Docker…

100量子比特启动实用化算力标准!玻色量子重磅发布相干光量子计算机

2023年5月16日,北京玻色量子科技有限公司(以下简称“玻色量子”)在北京正大中心成功召开了2023年首场新品发布会,重磅发布了自研100量子比特相干光量子计算机——“天工量子大脑”。 就在3个月前,因“天工量子大脑”在…

java pdf,word,ppt转图片

pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0…

【Orangepi Zero2 全志H616】资料及环境搭建

一、资料文档 二、MobaXterm远程连接工具 三、修改登录密码 四、修改内核日志等级 五、配置网络 六、SSH 访问 OrangePi ZERO 2 七、配置 vim 八、基于官方外设开发SDK 一、资料文档 官网资料下载 GitHub&#xff1a;新版本的 orangepi-build 源码 环境搭建&#xff1a;新手配…

vue+asp.net Web api前后端分离项目发布部署

一、前后端项目介绍 1.前端项目是使用vue脚手架进行创建的。 脚手架版本&#xff1a;vue/cli 5.0.8 编译器版本&#xff1a;vs code 1.82.2 2.后端是一个asp.net Core Web API 项目 后端框架版本&#xff1a;.NET 6.0 编译器版本&#xff1a;vs 2022 二、发布部署步骤 第…