入选NeurIPS 24!浙大团队提出全新去噪蛋白质语言模型DePLM,突变效应预测优于SOTA模型

ESM蛋白质语言模型系列 第一篇《Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences 》ESM-1b第二篇《MSA Transformer》在ESM-1b的基础上作出改进,将模型的输入从单一蛋白质序列改为MSA矩阵,并在Transformer中加入行、列两种轴向注意力机制,对位点分别计算第个序列和第个对齐位置的影响,充分利用二维输入的优势。 阅读详情

作为生物功能的主要载体,蛋白质结构和功能在数十亿年的进化中所展示出的多样性,为药物发现和材料科学等领域的进步提供了重要机遇,然而,现有蛋白质的固有特性(如热稳定性)在许多情况下往往无法满足实际需求。因此,研究人员致力于通过优化蛋白质来增强其特性。

传统的深度突变扫描 (DMS) 和定向进化 (DE) 依赖于昂贵的湿实验技术,与之相比,基于机器学习的方法能够快速评估突变效果,对高效的蛋白质优化至关重要。其中,一种应用广泛的研究途径是利用进化信息 (Evolution Information) 来检验突变效果。 进化信息可以通过氨基酸在蛋白质序列中某一位置出现的可能性来推断突变效果。为了计算将一种氨基酸突变为另一种的相关概率,主流方法使用训练在数百万蛋白质序列上的蛋白质语言模型 (PLMs),以自监督的方式捕捉进化信息。

然而,现有的方法通常有 2 个关键方面被忽视——首先,现有方法未能去除无关的进化信息,进化是为了满足生存需求而同时优化多个特性,这往往会掩盖目标特性的优化;其次,目前主流的学习目标包含数据集特定的信息,这些信息往往过度拟合于当前的训练数据,限制了模型对新蛋白质的泛化能力。

为了解决这些挑战,浙江大学计算机科学与技术学院、浙江大学国际联合学院、浙江大学杭州国际科创中心陈华钧教授、张强博士等人,共同提出了一种针对蛋白质优化的全新去噪蛋白质语言模型 (DePLM), 核心在于将蛋白质语言模型捕捉到的进化信息 EI 视为与特性相关和无关信息的混合体,其中无关信息类似于目标特性的「噪音」,因此需要消除这些「噪音」。大量实验表明,本研究所提出的基于排序的去噪过程显著提高了蛋白质优化性能,并同时保持了强大的泛化能力。

相关成果以「DePLM: Denoising Protein Language Models for Property Optimization」为题,入选了顶会 NeurIPS 24。

研究亮点:

  • DePLM 能够有效过滤无关信息,通过优化 PLM 中包含的进化信息来改善蛋白质优化

  • 本研究设计了去噪扩散框架中的基于排序的前向过程,将扩散过程扩展到突变可能性的排序空间,同时将学习目标从最小化数值误差转变为最大化排序相关性,促进数据集无关的学习并确保强大的泛化能力

  • 大量实验结果表明,DePLM 不仅在突变效应预测方面优于当前最先进的模型,还展现出对新蛋白质的强大泛化能力
    在这里插入图片描述

论文地址:
https://neurips.cc/virtual/2024/poster/95517

关注公众号,后台回复「去噪蛋白质语言模型」获取完整 PDF

ProteinGym 蛋白质突变数据集下载:
https://hyper.ai/datasets/32818

开源项目「awesome-ai4s」汇集了百余篇 AI4S 论文解读,并提供海量数据集与工具:

https://github.com/hyperai/awesome-ai4s

数据集:广泛的深度突变筛选实验集合

ProteinGym 是一个广泛的深度突变筛选 (DMS) 实验集合,包含 217 个数据集。 由于 PLM 的长度限制,研究人员排除了包含长度超过 1,024 的野生型蛋白质的数据集,最终保留了 201 个 DMS 数据集。ProteinGym 将 DMS 分类为 5 个粗略类别:66 个用于稳定性,69 个用于适应性,16 个用于表达,12 个用于结合,38 个用于活性。

  • 性能比较实验: 研究人员采用了随机交叉验证方法,在该方法中,数据集中的每个突变会随机分配到 5 个折叠中的一个,然后通过对这 5 个折叠的结果进行平均来评估模型的性能。

  • 泛化能力实验: 给定一个测试数据集,研究人员随机选择多达 40 个与其优化目标(例如热稳定性)一致的数据集作为训练数据,需确保训练蛋白质与测试蛋白质之间的序列相似性低于 50%,以避免数据泄漏。

模型架构:基于排序空间的前向过程来扩展扩散模型

如前文所述,DePLM 的核心在于将蛋白质语言模型 PLM 捕捉到的进化信息 EI 视为与特性相关和无关信息的混合体,其中无关信息类似于目标特性的「噪音」,并消除这些「噪音」。为实现这一目标,研究人员从去噪扩散模型中获得灵感,该模型通过精炼含噪输入以生成期望的输出。

具体而言,研究人员设计了一个基于排序信息的前向过程来扩展扩散模型以去噪进化信息,如下图所示。 在下图左侧,DePLM 使用从 PLM 中得出的进化似然 (Evolution Likelihood) 作为输入,并生成针对特定属性的去噪似然 (Denoised Likelihood),用于预测突变的影响;在下图中间和右侧,去噪模块 (Denoising Module) 利用特征编码器 (Feature Encoder) 生成蛋白质的表征,考虑一级和三级结构,这些表征随后通过去噪模块用于过滤似然中的噪声。
在这里插入图片描述

DePLM 架构概览

去噪扩散模型 (Denoising diffusion models) 包含 2 个主要过程: 正向的扩散过程和需要学习的反向去噪过程。在正向扩散过程中,少量噪声逐步添加到真实值中;然后,反向去噪过程学习通过逐步消除积累的噪声来恢复真实值。

然而,在将这些模型应用于蛋白质优化中的突变概率进行去噪时,存在 2 个主要挑战——首先,实际特性值与实验测量之间的关系通常表现出非线性,这源于实验方法的多样性,因此,仅依赖于最小化预测值和观测值之间的差异进行去噪,可能会导致模型过拟合到特定数据集,从而降低模型的泛化能力;其次,与传统的去噪扩散模型不同,研究人员要求累积的噪声收敛。

为了解决这些挑战,研究人员提出了基于排序的去噪扩散过程 (a rank-based denoising diffusion process), 重点在于最大化排序相关性,如下图所示。在下图左侧,DePLM 的训练涉及 2 个主要步骤:正向加噪过程 (a forward corruption process) 和反向去噪过程 (a learned reverse denoising process)。

在加噪步骤中,研究人员使用排序算法 (sorting algorithm) 生成轨迹,从属性特异性似然 (Property-specific Likelihood) 的排序转变为进化似然 (Evolution Likelihood) 的排序,DePLM 被训练来模拟这一反向过程。在下图右侧,研究人员展示了从进化似然 (Evolution Likelihood) 向属性特异性似然 (Property-specific Likelihood) 转变过程中 Spearman 系数的变化。
在这里插入图片描述

DePLM 的训练过程

最后,为了实现与数据集无关的学习和强大的模型泛化能力, 研究人员在特性值的排序空间中进行扩散过程,并将传统的最小化数值误差目标替换为最大化排序相关性。

研究结果:DePLM 性能优越且具备强大的泛化能力

性能评估:验证了将进化信息与实验数据相结合的优势

首先,为了评估 DePLM 在蛋白质工程任务中的性能,研究人员将其与 9 个基准进行了比较,包括 4 个从零开始训练的蛋白质序列编码器 (CNN、ResNet、LSTM 和 Transformer),5 个自监督模型 (OHE、ESM-1v 的微调版本、ESM-MSA、Tranception 以及 ProteinNPT)。

结果如下表所示,最佳结果和次优结果在表中分别用粗体和下划线标出。整体来看,DePLM 的表现优于基线模型,从而确认了将进化信息与实验数据相结合在蛋白质工程任务中的优势。
在这里插入图片描述

DePLM 与基线模型在蛋白质工程任务中的表现

值得注意的是,ESM-MSA 和 Tranception 由于引入了多序列比对 (MSA),表现出比 ESM-1v 更强的进化信息,通过比较它们的结果,研究人员证明了高质量的进化信息显著改善了微调后的结果。然而,即使在这些改进的情况下,它们的表现仍然未能达到 DePLM 的水平。研究人员还注意到,DePLM 的表现优于 ProteinNPT,强调了所提出的去噪训练过程的有效性。

泛化能力评估:消除无关因素影响,提升性能

接着,为了进一步评估 DePLM 的泛化能力,研究人员将其与 4 个自监督基线 (ESM-1v、ESM-2 和 TranceptEVE)、2 个基于结构的基线 (ESM-IF 和 ProteinMPNN) 以及 3 个监督基线 (CNN、ESM-1v 和 ESM-2 的微调版本)进行比较。

结果如下表所示,最佳结果和次优结果在表中分别用粗体和下划线标出,可以观察到,DePLM 始终优于所有基线模型——这进一步展示了仅依赖未过滤进化信息的模型存在不足,其往往由于同时优化多个目标而稀释了目标属性。通过消除无关因素的影响,DePLM 显著提高了性能。
在这里插入图片描述

泛化能力评估

此外,为了最小化预测分数与实验分数之间的差异而训练的基线模型 ESM1v (FT) 和 ESM2 (FT) 的表现远远低于 DePLM。这一结果表明,在排序空间中优化模型降低了来自特定数据集的偏差,从而实现了更优的泛化。 此外,研究人员还观察到,蛋白质结构信息有助于稳定性和结合性的提升,而进化信息则增强了适应性和活性属性。

总而言之,大量实验结果表明,DePLM 不仅在突变效应预测方面优于当前最先进的模型,还展现出对新蛋白质的强大泛化能力。

浙大团队持续深耕 PLMs,助力生物产业发展

蛋白质大语言模型具有准确预测蛋白质结构、功能和相互作用的能力,代表了 AI 技术在生物学中的前沿应用,其通过学习蛋白质序列的模式和结构,能够预测蛋白质的功能和形态,对于新药开发、疾病治疗和基础生物学研究具有重大意义。

面对这一富有前景的新兴领域,浙江大学团队近年来持续深耕,取得了多项创新科研成果。

2023 年 3 月,陈华钧教授、张强博士和其所在的 AI 交叉中心研究团队开发了一种针对蛋白质语言的预训练模型,该模型的相关研究以「 Multi-level Protein Structure Pre-training with Prompt Learning」 为题发表在 2023 年 ICLR 国际机器学习表征会议上。值得一提的是,ICLR 会议是深度学习领域最顶尖的会议之一,由两位图灵奖得主 Yoshua Bengio 和 Yann LeCun 领衔创办。

在这项工作中,研究团队在国际上率先提出了面向蛋白质的提示学习机制,并构建了 PromptProtein 模型, 设计了 3 个预训练任务,将蛋白质的第一、三、四级结构信息注入到模型中。为了灵活使用结构信息,受到自然语言处理中的提示技术的启发,研究人员提出了提示符引导下的预训练和微调框架。在蛋白质功能预测任务和蛋白质工程任务上的实验结果表明,成果提出的方法比传统模型具有更好的性能。

时间来到 2024 年,该团队的研究取得了进一步进展。为了解决 PLMs 在理解氨基酸序列方面表现出色,但无法理解人类语言的挑战,浙江大学陈华钧、张强团队提出 InstructProtein 模型,利用知识指令对齐蛋白质语言与人类语言,探索了在蛋白质语言和人类语言间的双向生成能力,有效弥补了两种语言之间的差距,展示了将生物序列整合到大型语言模型的能力。

该研究以「InstructProtein: Aligning Human and Protein Language via Knowledge Instruction」为题,被 ACL 2024 主会录用。大量双向蛋白质-文本生成任务的实验表明,InstructProtein 在性能上优于现有的最先进 LLMs。

点击查看详细报道:入选ACL2024主会 | InstructProtein:利用知识指令对齐蛋白质语言与人类语言
在这里插入图片描述

论文地址:

https://arxiv.org/abs/2310.03269

实际上,这些文章仅仅还只是团队正在开展工作的一个方面。据报道,在浙江大学 AI 交叉中心研究人员更希望实现的是怎样利用蛋白质或分子语言大模型来驱动像 iBioFoundry 和 iChemFoundry 这样的科学实验机器人,将真实世界的传感器信号、蛋白质、人类语言相结合,建立语言和感知的链接。
在这里插入图片描述

未来,该团队期待将自己的研究成果进一步产业化,为新药研发、生命健康领域做更多有价值的探索和支撑。

参考资料:

1.https://neurips.cc/virtual/2024/poster/95517

2.https://hic.zju.edu.cn/2023/0328/c56130a2733579/page.htm

手把手教你使用ESM-2进行蛋白质结构预测:从安装到实战 本文详细介绍了如何使用ESM-2蛋白质语言模型进行蛋白质结构预测,从环境准备、模型安装到实战应用。通过逐步指导,读者可以掌握ESM-2的配置、单序列预测、结果可视化及高级优化技巧,适用于生物信息学研究和药物开发。 阅读详情

相关推荐

从文本到蛋白质:揭秘ESM-2语言模型如何『无师自通』原子级结构预测

本文深入解析了Meta AI的ESM-2蛋白质语言模型如何通过掩码语言建模任务,从海量氨基酸序列中无监督地学习并涌现出对蛋白质三维结构的深刻理解。文章揭秘了其从序列编码到原子级坐标预测的完整流程,重点阐述了ESMFold如何凭借其无需多序列比对的单序列输入优势,实现极速预测,并成功应用于宏基因组未知蛋白质的结构探索。

rice5的博客 1121

生物大模型——ESM模型(一)

ESM是用于蛋白质序列建模的深度学习模型。它属于蛋白质语言模型家族,通过对大量的蛋白质序列进行训练,能够学习到序列中的进化信息

weixin_47520540的博客 3万+

推荐系统实战(七)-多任务多场景(上)多任务

多任务Multi-Task,有时也被称为多目标Multi-Objective建模。比如说电商场景下,希望曝光的物料被多多点击,还希望商品被下单购买,因此同时建模三个目标:曝光到点击CTR,点击到购买转换率CVR,曝光到购买的概率CTCVR。

Willowii的博客 2723

【AI模型学习】ESM2

ESM-2是一个基于Transformer架构的蛋白质语言模型,提供多个版本选择,包括从8M到15B参数的不同规模模型,适用于不同计算需求的任务。

wwl412095144的博客 8363

AI4S - 开源 OpenFold: 蛋白质结构预测的 HHSearch 搜索 Template 教程(12)

HHsearch 是基于 HMM-HMM 比较的算法实现的搜索工具,可以用来检测蛋白质的远缘同源性,生成高质量的序列比对,用于同源建模和功能预测。优点是可以利用蛋白质序列的共进化信息,提高搜索的灵敏度和准确度。还可以使用多种结构域数据库进行搜索,包括PDB、SCOP、Pfam等,增加了搜索的覆盖度和多样性。

AGI 5008

ESM2蛋白预训练模型 蛋白质、氨基酸向量表示

参考: https://github.com/facebookresearch/esm https://huggingface.co/facebook/esm2_t33_650M_UR50D https://esmatlas.com/resources?action=fold tokenizer_对输入蛋白会头尾添加cls、eos特殊字符,占两个字符长度 参考:https://github.com/facebookresearch/esm 直接clone下来代码

weixin_42357472的博客 1万+

ESMM模型与ESM2模型总结

ESSM模型 2018 阿里妈妈 SIGIR 原文链接:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate 该论文基于Multi-Task Learning 的思路,提出一种新的CVR预估模型,有效解决了真实场景中CVR预估面临的数据稀疏以及样本选择偏差这两个关键问题。 Sample Selection Bias (SSB):转化是在点击之后才“有可能”发生的动作,传统

rotation博客 8220

鼎捷T100——二次开发:维护作业添加非实体字段

非实体字段添加

weixin_52342654的博客 1160

ESM-2蛋白质语言模型深度解析:从原理到实战的完整指南

ESM-2(Evolutionary Scale Modeling-2)是Meta AI开发的新一代蛋白质语言模型,通过掩码语言建模目标训练,能够理解蛋白质序列的深层语义信息。esm2_t33_650M_UR50D作为该系列中的中等规模模型,在33层网络架构和650M参数量的支持下,为蛋白质功能预测、结构分析等任务提供了强大的技术支撑。 ## 模型架构与核心技术原理 ESM-2采用基于Tran

gitblog_00261的博客 1655

关于动态存储器dram中rank,bank,device之间的关系

DEVICE_WIDTH表示设备的带宽(单位bit),每个列(column)包含DEVICE_WIDTH 位(bit),每一行(row)包含NUM_COLS个column。   而每一个bank包含NUM_ROWS个行(row)。所以一个设备(device)的存储容量为PER_DEVICE_STORAGE =NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUM_BANKS (i

wyj7260的专栏 4732

1、深入解析OTA/gm - C滤波器架构与设计

本文深入探讨了OTA/gm-C滤波器的架构与设计方法,涵盖了从基本构建模块到高阶滤波器实现的多种技术。重点分析了双积分器环路结构(如Tow-Thomas和KHN滤波器)的工作原理、性能特点及OTA非理想特性对滤波器的影响,并介绍了降低寄生效应、提升动态范围的方法。文章还讨论了基于LC梯形仿真、多环反馈和电流模式的gm-C滤波器设计,以及自动调谐技术在频率稳定性中的应用。最后总结了不同类型gm-C滤波器的优缺点及其适用场景,为高频集成连续时间滤波器的设计提供了全面的技术参考。

fanta的博客 185

[阿里]基于多任务学习的CVR预估模型ESM2

今天介绍的文章名称是《Conversion Rate Prediction via Post-Click Behaviour Modeling》 论文下载地址为:https://arxiv.org/abs/1910.07099 在本系列的第十九篇文章中,我们已经介绍过一种基于多任务学习的CVR预估模型ESMM,同样是阿里发表的论文。本文可以看作是ESMM的升级版,一起来学习一下吧。 ...

hellozhxy的博客 4194

Android 14 (AOSP) 源码架构深度解析与开发者指南

Android14源码的仓库指南信息

保持专注,保持热爱 1186

ESM-2蛋白质语言模型实战指南:从入门到精通

ESM-2作为Meta AI推出的革命性蛋白质语言模型,正在彻底改变生物信息学的研究范式。esm2_t33_650M_UR50D作为该系列中的黄金平衡点,在计算效率与预测精度之间找到了最佳平衡,为蛋白质功能分析、结构预测等任务提供了前所未有的技术支撑。 ## 快速上手:五分钟开启蛋白质AI分析 ### 环境一键配置 ```bash pip install transformers torch

gitblog_00330的博客 469

python乘法运算 信息素养大赛复赛/决赛真题 小学组/初中组 python编程挑战赛 真题详细解析

本文解析了全国青少年信息素养大赛Python编程挑战赛的乘法运算题目。题目要求通过递归算法实现两个自然数的乘法运算,并输出算式。算法分析指出可将乘法转化为累加,使用递归函数实现。程序代码展示了一个自定义函数add(),通过递归调用完成累加运算。文章还分析了考点,包括递归函数、输入处理、分支语句等编程基础知识的应用。最后强调解题方法的多样性,重点在于理解递归原理和实现题目要求。该题目难度适中,主要考查选手对递归算法的理解和编程基础能力。

青少年编程学习指导 789

雷达方程从零开始的详细推导及实现

通过以上六步,我们从最基本的物理图像出发,完整地推导出了雷达方程。初学者可以按照这个逻辑,自己在纸上一步步重现整个过程。Python实现。

VectorShift的博客 337

如何在同一个环境同时安装ESM2和ESM3

我的解决方法是,正常安装ESM3, 然后把ESM2的源码改了,安装改源码之后的ESM2,这样就可以用。ESM2 和 ESM3 的 package 都叫 esm。在官方也有很多人问。想要修改后的源码(wheel文件),我已经上传到我的github (

yihang___的博客 954

汽车ECU诊断刷写和OTA升级中的验签和校验

汽车ECU诊断刷写和OTA升级中的验签和校验

天赐好车的博客 617

ESM-1v:突变对蛋白质功能影响的零样本预测

ESM-1v预测突变效应

白景屹的博客 2800

RT-DETR模型应用过程中的报错处理及疑问解答,涉及环境搭建、模型训练、模块改进、论文写作

本文记录了RT-DETR模型的这一系列过程中可能发生的问题,以及大家非常关心的问题,这里统一做了一个记录和解答。

Limiiiing的博客 1766

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ESM-1v:零样本预测蛋白质突变效应的革命性突破与应用前景

ESM-1v是一种革命性的蛋白质语言模型,实现了蛋白质突变效应的零样本预测。它无需依赖特定蛋白质的实验数据或训练,仅通过预训练学到的通用序列知识,即可快速评估突变对功能的影响,将预测任务简化为概率比较问题。该模型在酶工程、致病突变解读和药物设计等领域展现出巨大应用潜力,正推动蛋白质研究从试错转向智能导航。

u8v9w0x1y的博客 495

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

推荐论文阅读之多任务建模ESM2

介绍 CVR转化率预估过程中存在样本选择偏差和数据稀疏问题。这两个问题在阿里的上一篇论文ESMM中有提到,这里介绍一下。 样本选择偏差:CVR模型建模通常使用点击后的样本post-click,或者说使用记录用户在点击后是否产生订单的数据;而模型在实际应用过程中是在整个样本空间上,用户还没有发生点击。这就导致数据有偏,不同分布。在post-click样本上建模后,在实际应用过程中并不能保证模型的准确性,而且应用模型的泛化能力。 数据稀疏:在电商系统,如淘宝,用户的行为链,通常包括曝光、点击、购买,各个

Viking的博客 1175

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ESM蛋白质语言模型学习笔记一

蛋白质-蛋白质相互作用位点预测的时需要的是representations。加载模型后使用示例的data,模型的输出结果results包含以下内容。include里面自己可以设置保存的嵌入,以下是命令行的使用文档。在服务器上,安装使用。

weixin_43950953的博客 4096

【限时免费】 深度拆解esm2_t6_8M_UR50D:从基座到技术实现

在当今蛋白质研究的浪潮中,ESM-2系列模型如一座座技术丰碑,标志着蛋白质语言模型的重大突破。其中,esm2_t6_8M_UR50D作为该系列中最小巧精简的变体,以仅800万参数的轻量级架构,在保持强大性能的同时实现了计算效率的优化平衡。这个看似朴素的模型,却承载着深度学习在生物信息学领域的前沿技术精髓。 esm2_t6_8M_UR50D的命名本身就蕴含着丰富的技术信息:t6代表6层Transf...

gitblog_02993的博客 630

ESM-2蛋白质语言模型实战指南:从问题诊断到高效部署

你是否曾在蛋白质序列分析中遇到这样的困境:模型加载缓慢、内存占用过高、预测结果不稳定?别担心,这篇文章将带你深入剖析ESM-2模型的核心应用技巧,让你从问题诊断到高效部署全程无忧。 ## 问题诊断:识别蛋白质分析中的常见痛点 在实际应用中,研究人员经常面临这些挑战: **资源瓶颈分析**: - GPU内存不足导致模型无法加载 - 计算时间过长影响研究效率 - 批量处理时显存溢出问题 **模

gitblog_00653的博客 335
上一篇: 首个真实开放环境具身智能平台环境与基准测试集,清华大学城市科学与计算中心开放发布EmbodiedCity...
下一篇: 【TVM 教程】规约(reduce)
HyperAI超神经
博客等级 码龄7年 8873粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值