分子生成领域的stable diffusion - GEOLDM

news2024/11/25 20:54:40

一、关于stable diffusion

很多人都知道stable diffusion,stable diffusion的出现改变了机器生成领域,让AI技术第一次无比的接近正常人。大语言模型,AIGC概念于是兴起。基于stable diffusion 大家开发了lora, hyperwork等微调技术,使得我们可以精确的控制生成图片,于是我们可以生成如下一些图片,以假乱真:

​​​​​​​

神奇的stable diffusion模型的架构如下:

stable diffusion模型架构简单理解:首先使用一个编码器,将图片编码到隐式空间的潜向量,然后基于该潜向量实现diffusion model的增噪和去噪过程,生成新的潜向量,然后再使用解码器,解码潜向量,生成新图片。关于stable diffusion的介绍,全网到处都是,感兴趣的可以仔细研究研究。

那么问题来了,在分子生成领域,在药物设计领域,是不是可以有一个stable diffusion 模型?实现真正的可控分子生成?让药物设计、分子设计领域的大语言模型真正的兴起,实现Drug-AIGC?要实现这一点的难点在于:药物分子是具有空间几何特征的(即旋转不变性和空间平移不变性),且不连续稀疏的。而图片更简单,是平面的且连续的。因此,基机器视觉开发的stable diffusion是不能直接使用于分子设计、药物设计等领域的,需要专门开发一个能处理空间几何与稀疏不连续的stable diffusion模型架构。

新发表的GEOLDM 模型实现了这一点。也许从此刻开始,变天了。Drug-AIGC真的要来了。分子设计领域有了stable diffusion模型,那么分子设计领域的lora还远吗?

二、分子生成领域的stable diffusion - GeoLDM

GEOLDM 模型是发表在2023年 ICML(全称:International Conference on Machine Learning)会议上的会刊 <Geometric Latent Diffusion Models for 3D Molecule Generation> 文章。第一作者是斯坦福大学计算机系的Minkai Xu。文章链接为:https://arxiv.org/pdf/2305.01140.pdf

GEOLDM模型可以生成3D的分子,在有条件或者无条件下都可以生成。

GEOLDM的全称是Geometric Latent Diffusion Models,几何隐式扩散模型。GEOLDM 是分子几何领域的第一个隐式扩散模型(简称:DM),由将结构编码为连续隐式向量的自动编码器和在隐式空间中运行的扩散模型组成。 文章的关键创新在于,对 3D 分子几何进行建模,通过构建具有不变标量和等变张量的点结构隐式空间来捕获其关键的旋转平移等变约束。

在GEOLDM模型中,分子中原子坐标和特征,即x,h会,被编码器编码成隐式向量,即z_x和z_h。然后在隐式空间内,对z_x和z_h进行T步的加噪过程,使用深度学习网络预测噪音,反向去噪,生成隐式向量。解码器根据去噪后的隐式向量生成分子。

注意,GEOLDM的扩散过程是操作在隐式向量空间的。这一点与之前的分子生成模型,EDM,Difflinker,Targetdiff等不同。之前的分子生成模型的扩散过程是直接操作在原子空间的,即添加噪音在坐标x和原子特征h上。而GEOLDM是将扩散过程操作在坐标x和原子特征h,生成的嵌入隐空间z上。这一点完全与机器视觉中的stable diffusion对齐了。

训练GEOLDM模型的伪代码:

首先,需要按照常规的变分自动编码器一样,在没有加噪和去噪的扩散过程下,先训练变分自动编码器,即First stage。然后,固定自动变分编码器,加入扩散的加噪和去噪过程,训练模型学习去噪。所以,可以简单的理解GEOLDM模型由编码器,扩散去噪,解码器,三个AI网络组成。

使用GEOLDM模型生成分子的伪代码如下:

三、GeoLDM模型的性能

作者在QM9和DRUG数据上进行了测试,考察了分子生成的质量(有效性,唯一性)。作者对每个模型都进行了三次分子生成,每次生成1w个分子。测试结果如下:

与之前的方法相比,同时具有不变变量和等变变量的潜在空间使GEOLDM在大分子生成的有效性方面实现了高达7%的改进。

stable diffusion模型厉害之处,主要是其非常强大的可改造能力,最简单的,就是条件控制生成。这里作者做了尝试。作者尝试让GEOLDM模型生成HOMO等更低的分子,结果发现,GEOLDM确实要好于我们之前常用的EDM模型。如下图:

另一方面,在条件控制生成中,GEOLDM,可以对生成的条件的程度进行控制。作者以生成极化的分子为例,使用了不同的极化控制参数,如下图:

四、总结

整体感觉GEOLDM这个模型非常好模拟了stable diffusion模型的结构,将扩散过程的加噪去噪过程操作在隐式向量空间内。大大降低了,在分子生成领域的计算成本。同时,因为在潜向量空间内,也打开了分子生成领域的优化可能,我们可以CLIP, LORA, Controlnet 等技术,微调模型,实现精确控制分子生成。

看来Drug-AIGC的日子不远了,真的不远了。距离作者正式发表GEOLDM有几个月了,距离作者开始在GitHub上传代码有10个月了。我们将很快看到很多的相关文章出现。老了,脑子跟不上了。

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

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

相关文章

React-hooks

1 hooks使命 #逻辑组件复用 逻辑与UI组件分离 React 官方推荐在开发中将逻辑部分与视图部分结耦&#xff0c;便于定位问题和职责清晰 函数组件拥有state 在函数组件中如果要实现类似拥有state的状态&#xff0c;必须要将组件转成class组件 逻辑组件复用 社区一直致力于逻辑…

【数据结构高阶】红黑树

目录 一、红黑树的概念 二、红黑树的性质 2.1 红黑树与AVL树的比较 三、红黑树的实现 3.1 红黑树节点的定义 3.2 数据的插入 3.2.1 红黑树的调整思路 3.2.1.1 cur为红&#xff0c;f为红&#xff0c;g为黑&#xff0c;u存在且为红 3.2.1.2 cur为红&#xff0c;f为红&am…

Seata配置

参考教程 seata 分布式事务的环境搭建与使用 Seata 1.4.0 nacos配置和使用&#xff0c;超详细 Seata 1.4.2 的安装 Nacos的配置和使用 官网下载地址 本文以v1.4.1为例 1.数据库及表的创建 创建seata数据库&#xff0c;创建以下表&#xff08;右键连接-》新建数据库seata-》…

MVC Gantt Wrapper:RadiantQ jQuery

The RadiantQ jQuery Gantt Package includes fully functional native MVC Wrappers that let you declaratively and seamlessly configure the Gantt component within your aspx or cshtm pages just like any other MVC extensions. 如果您还没有准备好转向完全基于客户端…

天池SQL训练营(二)-SQL基础查询与排序

-天池龙珠计划SQL训练营 Task02&#xff1a;SQL基础查询与排序 SQL训练营页面地址&#xff1a;https://tianchi.aliyun.com/specials/promotion/aicampsql 一、SELECT语句基础 1.1 从表中选取数据 SELECT语句 从表中选取数据时需要使用SELECT语句&#xff0c;也就是只从表…

unity 2d 入门 飞翔小鸟 死亡 显示GameOver(十四)

1、添加Img create->ui->img 把图片拖进去 2、和分数一样、调整位置 3、修改角色脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : MonoBehaviour {//获取小鸟&#xff08;刚体&#xff09;private Rigidbod…

题目:肖恩的乘法表(蓝桥OJ 3404)

题目描述&#xff1a; 解题思路&#xff1a; 本题采用二分中的二分答案。且本题check()用不到开数组&#xff0c;所以不需要开数组&#xff0c;脑海中想象一个数组就好了 题解&#xff1a; #include<bits/stdc.h> using namespace std; using ll long long;ll n, m , k…

C# 图解教程 第5版 —— 第17章 转换

文章目录 17.1 什么是转换17.2 隐式转换17.3 显示转换和强制转换17.4 转换的类型17.5 数字的转换17.5.1 隐式数字转换17.5.2 溢出检测上下文17.5.3 显示数字转换 17.6 引用转换17.6.1 隐式引用转换17.6.2 显式引用转换17.6.3 有效显式引用转换 17.7 装箱转换17.7.1 装箱是创建副…

Python 全栈体系【四阶】(三)

第三章 matplotlib 一、基本绘图 1. 绘图核心 API 案例&#xff1a; 绘制简单直线 import numpy as np import matplotlib.pyplot as plt# 绘制简单直线 x np.array([1, 2, 3, 4, 5]) y np.array([3, 6, 9, 12, 15])plt.plot(x, y) plt.show() # 显示图片&#xff0c;阻塞…

《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》阅读笔记

论文标题 《Mamba: Linear-Time Sequence Modeling with Selective State Spaces》 作者 Albert Gu 和 Tri Dao 初读 摘要 Transformer 架构及其核心注意力模块 地位&#xff1a;目前深度学习领域普遍的基础模型。 为了解决 Transformers 在长序列上的计算效率低下的问题…

【视频笔记】古人智慧与修行

古人的智慧 相由心生、老子悟道、佛祖成佛 多一些思考&#xff0c;多一些精神修炼。 除非我们今天能够产生与人类科技发展相并行的精神变革&#xff0c;否则永远可能也无法跳脱出历史的轮回。 视频来源 曾仕强教授周易的智慧 太极两仪四象八卦 一生二&#xff0c;二生三&…

gRPC基本用法:以人脸识别为例,搭建一个简单的gRPC服务

标题 0. gRPC简介 相关网站&#xff1a; 中文文档&#xff1a;gRPC 官方文档中文版_V1.0 官网&#xff1a;gRPC 介绍&#xff08;以下引自官方文档中文版中的介绍&#xff09;&#xff1a; gRPC是一个高性能、开源和通用的 RPC 框架&#xff0c;面向移动和 HTTP/2 设计。目前提…

LANDSAT_7/02/T1/RAW的Landsat7_C2_RAW类数据集

Landsat7_C2_RAW是指Landsat 7卫星的数据集&#xff0c;采用的是Collection 2级别的数据处理方法&#xff0c;对应的是Tier 1级别的原始数据&#xff08;RAW&#xff09;。该数据集包括了Landsat 7卫星从1999年4月15日开始的所有数据&#xff0c;共涵盖了全球范围内的陆地和海洋…

性格内向怎么办?如何改变性格内向?

性格内向和外向并没有优劣之分&#xff0c;性格内向也不是坏事&#xff0c;但从人际交往和事务处理的角度来看&#xff0c;内向性格确实不如外向的有优势&#xff0c;所以这也是很多人希望改变自己内向性格的原因。 此外性格内向也容易称为心理问题的替代词&#xff0c;比如&a…

Data Mining数据挖掘—2. Classification分类

3. Classification Given a collection of records (training set) – each record contains a set of attributes – one of the attributes is the class (label) that should be predicted Find a model for class attribute as a function of the values of other attribu…

【Linux】进程间通信之共享内存/消息队列/信号量

文章目录 一、共享内存的概念及原理二、共享内存相关接口说明1.shmget函数2.ftok函数3.shmat函数4.shmdt函数5.shmctl函数 三、用共享内存实现server&client通信1.shm_server.cc2.shm_client.cc3.comm.hpp4.查看ipc资源及其特征5.共享内存的优缺点6.共享内存的数据结构 四、…

ADAudit Plus:强大的网络安全卫士

随着数字化时代的不断发展&#xff0c;企业面临着越来越复杂和多样化的网络安全威胁。在这个信息爆炸的时代&#xff0c;保护组织的敏感信息和确保网络安全已经成为企业发展不可或缺的一环。为了更好地管理和监控网络安全&#xff0c;ADAudit Plus应运而生&#xff0c;成为网络…

【队列】数据也得排队

目录 引言 队列的概念 队列的实现 单向链表队列 结构 初始化 入队 出队 取队头 取队尾 求个数 判空 内存释放 总结 引言 队列&#xff0c;这个看似普通的数据结构&#xff0c;其实隐藏着无尽的趣味和巧思。就像单向链表这把神奇的魔法钥匙&#xff0c;它能打开队…

解决Git提交错误分支

如果 Git 提交到错误的分支&#xff0c;可以通过以下步骤将其转移到正确的分支上&#xff1a; 1.检查当前所在的分支&#xff0c;可以通过 git branch 命令查看。 git branch2.切换到正确的分支&#xff0c;可以通过 git checkout <正确的分支名> 命令进行切换。 git …

vue3-vite前端快速入门教程 vue-element-admin

Vue3快速入门学习 初始化项目 # 创建项目 npm create vitelatest my-vue-app -- --template vue # 安装依赖 npm i # 运行 npm run dev 模板语法 文本插值​ 最基本的数据绑定形式是文本插值&#xff0c;它使用的是“Mustache”语法 (即双大括号)&#xff1a; <span&g…