摘要:分子动力学仿真模拟的重点就在于如何建立模型描述分子间的相互作用。

本文分享自华为云社区《AI建模-分子动力学仿真》,作者: 木子_007 。

一、背景

分子动力学的仿真模拟广泛应用于医药、化学、生物、材料等领域,研究模拟物质的微观结构,可以帮助我们理解物质的宏观性质,甚至对物质的宏观性质做出预测,物质的微观结构是由原子间的相互作用决定的,所以分子动力学仿真模拟的重点就在于如何建立模型描述分子间的相互作用。

传统的建模手段有两种:DFT(第一性原理)和经验力场。

DFT

DFT又称为第一性原理,具体建模和计算的过程非常复杂,需要很高深的数学和领域知识,了解一下即可

DFT构建的模型,可以看做是黑盒,根据输入,可以计算出下一帧体系内原子的状态

DFT的计算结果是比较准确的,但是因为计算代价太高,导致计算效率太低,只能够模拟几百个原子的物理体系。

经验力场

经验力场,是人们在研究某个物理体系时,根据其物理特性和一些实验结果,再加上一些处理经验,所构建的一个高阶函数,如研究惰性气体时的势能函数。

这种构建方式计算效率很高,但是其建模方式本身就决定了其精度不高。所以传统的分子动力学仿真存在一个困境,即无法效率和精度兼顾,而随着深度学习的普及使这种困境有了解决的思路。接下来就分子动力学仿真框架DeepMD的建模思想,做一个简单的介绍。

二、AI建模(water H2O 为例)

微观粒子上的相互作用

本质上是关于原子空间坐标的一个高维函数,如果能够计算出这个函数,那么在进行仿真的时候,就可以性能与精度兼顾了,传统数学工具对高维函数缺乏有效手段,而AI深度学习,本质上就是一个数学工具。为高维函数的逼近提供了有力工具,接下来会介绍一下建模的思想和过程。首先理清楚我们的目的和已具备的条件:

目的:构建一个深度学习网络,最终可以训练计算出一个高维函数(训练出一个模型)来表示这个物理体系,最终计算出来的结果,近似于第一性原理的计算结果。

模型:

训练及测试数据:

由第一性原理计算出来的体系内不同帧的原子状态,包括,原子坐标coord,空间尺度坐标box,体系的能量energy,体系中每个原子受到的力force

训练:

训练L2级别的loss

2.1 数据处理

通过上面的分析,我们要建立的这个模型,输入就是体系内原子的坐标,输出就是体系的势能和原子受到的力,但是,有一点需要特别注意,对于一个体系如水分子,如果一个水分子发生了旋转,平移或者它的两个氢原子发生交换,那么能量是不变的。

这种变化我们从直觉上理解是正常的,但是从模型的角度,这就要求,在坐标发生变化之后,输出还能保持与变化前一致,这对模型来说,往往是不可能的,所以在真正进入到深度学习DNN网络之前,需要对原始的原子三维坐标,做一些处理,使其能够满足空间中的平移,旋转和交换不变性。

2.1.1 平移不变性

要保证平移不变性,我们可以把空间中的原子左边转为原子间的相对距离,创建一个距离矩阵Ri。

根据原子中心框架,对距离矩阵做平滑处理,将超过截断半径外的原子的影响置为0。

2.1.2 交换和旋转不变性

要满足空间中的交换和旋转不变性,需要对距离矩阵做一些变化,这里介绍一下结论

创建矩阵G,将环境描述符D表示为如下的形式,可以满足空间的交换不变。

同时,因为对距离矩阵做旋转变化后,仍然是其本身,所以也满足了旋转不变。

这样,空间的坐标就转为了具备实际物理意义的环境描述D,就可以参与到接下来的DNN网络训练中。

2.2 整网训练

到这里,训练网络的构建已经完成,如下图所示

深度势能的构造如下:

环境描述

原子的受力根据其平滑势能计算,得到如下,实际上是对原子势能面计算梯度得到。

损失函数定义为

那么这个建模就完成了,之后就是具体的实现了。

三、小结

以上只是分享了一些DeepMD-kit框架的构建思想,分子动力学仿真领域还有很多框架和思想值得学习挖掘,比如为了增强模型对物理场景分布的覆盖,需要在训练的过程中随机采样,生成数据让模型做出预测,预测的不准,就把数据加入训练集继续训练,这个操作是包装了DeepMD-kit的另外一个框架DeepGen做的内容,以后有时间再总结一下其中的一些设计思想和算法优化的内容。

点击关注,第一时间了解华为云新鲜技术~

跟我学AI建模:分子动力学仿真模拟之DeepMD-kit框架的更多相关文章

  1. P2P/WSN信任建模与仿真平台

    1.ART Testbed 该平台是基于多代理的信任仿真平台,官网的介绍如下: The Agent Reputation and Trust (ART) Testbed initiative has ...

  2. ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse

    ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse 书中,大部分出现hydro的地方,直接替换为indigo或ja ...

  3. Java多线程 编写三各类Ticket、SaleWindow、TicketSaleCenter分别代表票信息、售票窗口、售票中心。 售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来模拟此售票过程。

    package com.swift; import java.util.ArrayList; import java.util.HashMap; import java.util.List; impo ...

  4. eNSP仿真模拟软件之理解Hybrid接口的应用

    1. 实验原理 Hybrid接口既可以连接普通终端的接入链路又可以连接交换机间的干道链路,它允许多个VLAN的帧通过,并可以在出接口方向将某些VLAN帧的标签剥掉. Hybrid接口处理VLAN帧的过 ...

  5. 《花雕学AI》13:早出对策,积极应对ChatGPT带来的一系列风险和挑战

    ChatGPT是一款能和人类聊天的机器人,它可以学习和理解人类语言,也可以帮人们做一些工作,比如翻译.写文章.写代码等.ChatGPT很强大,让很多人感兴趣,也让很多人担心. 使用ChatGPT有一些 ...

  6. 《花雕学AI》17:关注提示工程—本世纪最重要的技能可能就是与AI人工智能对话

    本文目录与主要结构 引言:介绍提示工程的概念和背景,说明为什么它是本世纪最重要的技能之一. 正文: 一.提示工程的基本原理和方法:介绍什么是提示.如何设计和优化提示.如何使用提示与语言模型进行交互. ...

  7. 为什么要学3D建模呢?你看中的肯定是这几点

    游戏行业的大环境 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的5年时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.虚拟社区.网络游戏.电子 ...

  8. 为什么需要学UML建模

    今天在看<设计模式>的时候,看到了许多的UML模型图,案例中作者用极少的代码却能讲清楚讲好设计模式的背景和思想,抽象成一张张的UML图就能很好的review和复盘,这对于在工作中习惯用代码 ...

  9. ROS-机器人建模与仿真概论

    前言:无论是因为高昂的设备费用还是为了减少实验次数,仿真都是十分必要的. ROS提供了很多优秀的仿真方式,下面来介绍一下: URDF:Unified Robot Description Format, ...

  10. 【小白学AI】八种应对样本不均衡的策略

    文章来自:微信公众号[机器学习炼丹术] 目录 1 什么是非均衡 2 8种解决办法 2.1 重采样(四种方法) 2.2 调整损失函数 2.3 异常值检测框架 2.4 二分类变成多分类 2.5 EasyE ...

随机推荐

  1. 两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

    安装Ubuntu Linux元信息 两台机器,每台机器两台Ubuntu Ubuntu版本:ubuntu-22.04.3-desktop-amd64.iso 处理器数量2,每个处理器的核心数量2,总处理 ...

  2. vue打包部署遇到的问题

    网站上线中遇到的问题(跨域,404,空白页解决方案) 因为本人是后端开发工程师,对前端开发不了解,踩了很多坑,所以将踩过的坑分享出来,以供参考 网站地址:这里 这段时间将项目部署到服务器中引发了几个问 ...

  3. CSP 初赛复习

    想要做一些不需要思考也算不得摆烂的事,但发现很难找到符合上述要求的学习内容. 突然想到还剩两天就 CSP 初赛了.虽然在 LN 想过不了初赛纯属搞笑,但为了不让自己的分数太难看还是简单复习一下. 没有 ...

  4. xxl-job安装部署文档

    xxl-job安装部署文档 注意:替换yaml文件中的mysql地址 安装方式 kubectl apply -f xxl-job.yaml -n xxxx 安装配置文件 xxl-job.yaml ## ...

  5. Eclipse设置GC日志输出

    今天看了关于垃圾回收的书籍,然后自己就想自己试试,自己就在eclipse里面配置了日志输出.方法如下: 1 右键项目,选择properties 2 选择run/debug setting  新建一个a ...

  6. 第五周阅读笔记|人月神话————胸有成竹(Calling the Shot)

    这个章节标题是胸有成竹,而要做到胸有成竹就必须在项目计划阶段我们对项目的预测和估算都需要很准确.因此整个章节的内容就是在讲估算,而估算就涉及到预测和估算模型,估算要做到准确必须通过前期多个历史项目和版 ...

  7. 自学 --day9---js中的数学操作和时间日期

    typora-copy-images-to: media 一.数学处理 1.Math常用API 圆周率 Math.PI // 3.1415926535 生成随机数 Math.random() 生成的是 ...

  8. 小程序的登录授权与退出功能(wx.getUserProfile)

    一.授权登录:wx.getUserProfile 1.使用wx.getUserProfile实现登录 1.javascript: login(){ wx.getUserProfile({ desc: ...

  9. 新来个架构师,把Xxl-Job原理讲的炉火纯青

    大家好,我是三友~~ 今天来继续探秘系列,扒一扒轻量级的分布式任务调度平台Xxl-Job背后的架构原理 公众号:三友的java日记 核心概念 这里还是老样子,为了保证文章的完整性和连贯性,方便那些没有 ...

  10. SpringBoot实战项目:蚂蚁爱购(从零开发)

    ​ 简介 这是从零开发的SpringBoot实战项目,名字叫蚂蚁爱购. 从零开发项目,视频加文档,十天彻底掌握开发SpringBoot项目. 教程路线是:搭建环境=> 安装软件=> 创建项 ...