万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 3 (人工神经网络)

news2024/9/25 7:14:15

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 1

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 2 (传统机器学习方法如何选择)

b8b90754698bfd6d21c62703c995dc9a.png

人工神经网络

人工神经网络模型得名于这样一个事实,即所拟合的数学模型的形式受到大脑中神经元的连接性和行为的启发,最初设计用于学习大脑的功能。然而,数据科学中常用的神经网络已不再被视为大脑的模型,而是可以在某些应用中提供最先进性能的机器学习模型。近几十年来,由于深度神经网络的架构和训练的快速发展,人们对神经网络模型的兴趣与日俱增。在本节中,我们将介绍基本的神经网络,以及在生物学研究中广泛使用的各种神经网络。其中一些如图4所示。06f3c5d30da373370957271d4994b0ab.png

图4 | 神经网络方法。a | 多层感知器由代表数字的节点(以圆圈表示)组成:输入值、输出值或内部(隐藏)值。节点按层排列,每一层的节点与下一层的节点之间有连接,表示已学习的参数。例如,可以使用分子特性预测药物毒性,因为预测可以从一些复杂的独立输入特征组合中得出。b | 卷积神经网络(CNN)使用在输入层上移动的滤波器,并用于计算下一层的值。整个层上操作的滤波器意味着参数是共享的,无论实体的位置如何,都可以检测到相似的实体。示例显示了一个在显微镜图像上操作的二维CNN,但在生物学中,一维和三维CNN也有应用。这里的维度是指数据中有多少空间维度,CNN内的连接可以相应地配置。例如,生物序列可以被认为是1D的,磁共振成像数据可以被认为是3D的。c | 循环神经网络(RNN)使用相同的学习参数处理序列输入的每一部分,为每个输入给出输出和更新的隐藏状态。隐藏状态用于传递有关序列前部分的信息。在这个例子中,预测转录因子在DNA序列中每个碱基的结合概率。图中RNN被展开以显示如何使用相同的层生成每个输出;这不应与为每个输出使用不同的层混淆。d | 图卷积网络使用图中的连接节点信息,如蛋白质-蛋白质相互作用网络,通过组合所有邻近节点的预测来更新网络中的节点属性。更新后的节点属性形成网络中的下一层,并在输出层预测所需的属性。e | 自编码器由 (autoencoder)一个编码器神经网络(encoder, 将输入转换为低维隐表示),以及一个解码器神经网络(decoder, 将隐表示转换成原始输入)。例如,蛋白序列可以通过 encoder 编码,再通过 decoder 解码产生新的蛋白序列。在图示中,自编码器编码和解码后,输入的5 个氨基酸残基中有 4 个得到了正确的超出,代表了序列准确性是 80%。

神经网络的基本原理。神经网络的一个关键特性是它们是通用函数逼近器,这意味着,在很少的假设下,正确配置的神经网络可以将任何数学函数逼近到任意精度水平 (如下图:任何形式的曲线都可以近似为很多条直线的组合;无论多复杂的模型,都可以死用足够数目的线性模型组合获得;台大李宏毅老师 PPT)。换言之,如果任何过程(生物学或其他)都可以被认为是一组变量的函数,那么该过程可以被建模为任意精度,仅受模型的大小或复杂性的控制。上述定义的函数逼近在数学上并不严格,但这确实突出了几十年来人们对神经网络的兴趣持续存在的一个原因。然而,这并不能保证提供一种为给定数据集产生最佳近似找到神经网络模型的最佳参数的方法。也不能保证该模型在新的数据上给出准确的预测。

24ea2c687938bf3d15c285e6502c5091.png

人工神经元是所有神经网络模型的基石。人工神经元只是一个数学函数,它以特定的方式将输入映射(转换)为输出。单个人工神经元接受任意数量的输入值,对其应用特定的数学函数并返回输出值。使用的函数通常表示为

985ed461bc1e664280aeacf90ef50a91.png

其中xi表示单个输入变量或特征(有n个这样的输入),wi表示该输入的可学习权重,b表示可学习偏差项,σ表示接受单个输入并返回单个输出的非线性激活函数。为了创建一个网络,人工神经元被分层排列,一层的输出是下一层的输入。网络的节点可以被视为持有上述方程中的y值,这些值成为下一层的x值。

a5717896dbe0ac7b4fe100444b296613.png

我们在以下小节中描述了人工神经元的各种组织方法,称为“神经网络架构”。组合不同的架构类型也是常见的;例如,在用于分类的卷积神经网络(CNN)中,通常使用完全连接的层来产生最终的分类输出。

多层感知器。神经网络模型的最基本布局是以完全连接的方式排列的人工神经元层,如图4a所示。在这种布局中,固定数量的“输入神经元”表示用于网络训练的数据的输入特征值,一对神经元之间的每个连接表示一个可训练的权重参数。这些权重是神经网络中的主要可调参数,优化这些权重就是通常所说的神经网络训练。在网络的另一端,许多输出神经元代表网络的最终输出值。当正确配置时,这样的网络可以用于对输入进行复杂的分层决策,因为给定层中的每个神经元都接收来自前一层中所有神经元的输入。这种简单排列的神经元层通常被称为“多层感知器”,并且是第一个可用于生物信息学应用的网络。由于它们易于训练和耗时少,现在仍广泛用于许多生物建模应用中。然而,在许多其他应用中,下面讨论的新模型体系结构已经超越了这些简单的体系结构,尽管这些新体系结构中的一些仍然经常使用完全连接层作为其子组件。

卷积神经网络 (CNN)。神经网络非常适合于图像数据,其中数据具有某种类型的局部结构,并且这种结构的识别是分析的关键目标。对于图像的示例,该局部结构可以与视场中的特定类型的对象(例如,显微图像中的细胞)相关,由输入图像中空间临近的像素中的颜色和/或边缘的特定局部图案表示。

CNN神经网络由一个或多个卷积层组成(见图4b),其中输出是将一个称为“滤波器 (filter)”或“核函数(kernel)”的小型单层完全连接的神经网络应用于输入中的局部特征变量组的结果。以图像做为输入为例,该局部区域是图像中的一小块像素。卷积层的输出也是像图像一样的阵列,承载着在整个输入数据上进行滤波器“滑窗”的结果,并计算每个位置的输出。至关重要的是,对所有的像素点都使用同一个的滤波器,这样滤波器可以更好地学习输入数据中的局部结构。在较深的CNN中,除了输入信号层层通过网络中每一层的处理单元之外,通常允许输入信号绕过一个或多个层的连接。这种类型的网络被称为“残差网络 (ResNet)”,允许训练过程更快地收敛到准确的解决方案上。

CNNs可以通过配置参数以便有效的应用于具有不同空间结构的输入数据上。例如,1D CNN的滤波器只能在一个方向上滑动(比如从左到右);这种类型的CNN适用于只有一个空间维度的数据(例如文本或生物序列)。2D CNN对具有两个空间维度的数据进行操作,例如数字图像。3D CNN对体积数据进行操作,例如磁共振成像扫描。

CNN在各种数据类型的生物学分析上取得了重大成功。最新的蛋白质结构预测工作已使用相关蛋白质序列中残基对的共进化信息来提取残基对互作和距离的信息,从而可以以前所未有的精度建立3D蛋白质结构的预测。在这种情况下,神经网络学会了挑选直接耦合互作,并且即使对于具有很少或甚至没有相近序列的新序列也可以进行准确的结构预测。CNN也已成功应用于鉴定遗传序列数据的变异信息,3D基因组折叠,DNA-蛋白质相互作用,冷冻电镜图像分析和医学背景下的图像分类(如恶性肿瘤检测),它们现在经常有与人类专家相媲美的表现。

循环神经网络。RNN最适合于有序序列形式的数据,比如序列中的一个点与下一个点之间存在某种依赖性或相关性(至少在理论上)。可能它们在生物学之外的主要应用是自然语言处理,其中文本被视为一系列单词或字符。如图4c所示,RNN可以被认为是神经网络层的其中一块,将与序列中的每个条目(或时间)相对应的数据作为输入,并为每个条目产生依赖于先前已处理的条目的输出。它们还可以用于生成整个序列的表示,该序列被传递到网络的后续层以生成输出。这是有用的,因为任何长度的序列都可以转换为固定大小的表示,并输入到多层感知器。在生物学中使用RNN的明显例子是分析基因或蛋白质序列,任务包括从基因序列中识别启动子区域、预测蛋白质二级结构或基因随时间的表达水平变化模型;在最后一种情况下,给定时间点的值将作为序列中的一个条目。RNN的更高级的长短期记忆或门控重复单位变体在生物学中有许多用途,包括蛋白质结构预测、肽链设计和根据健康记录预测临床诊断。这些更先进的方法通常与CNN结合使用,这可以提高精度。RNN在分析基于序列的数据时非常稳健。例如,在数百万蛋白质序列上训练的RNN显示出能捕获进化和结构信息的能力,并可应用于各种监督任务,包括设计新蛋白质序列等任务。

注意力机制的作用和transformers的使用。RNN的一个问题是它们在检查输入序列的特定部分时会遇到困难,这对于生成高精度输出非常重要。为了缓解这个问题,RNN引入了注意力机制,该机制允许模型在计算每个输出时访问输入序列的所有部分。最近的研究表明,注意力机制甚至可以不依赖于RNN而进行单独使用,生成的模型被称为“transformers”,在许多自然语言处理基准测试上获得了当前最好的结果。最近,Transformer模型在生物序列处理相关的务中显示出比RNN更高的准确性,但这些方法(通常使用数千个图形处理单元对数十亿个序列进行训练)是否能够胜过生物信息学中现有的基于比对的序列分析方法,还有待观察。AlphaFold2在第14届蛋白质结构预测评估(CASP14)竞赛中的杰出成功表明,使用注意力模型也有可能用于结构生物学中的任务。

图卷积网络。图卷积网络特别适合于这样的数据,像图像一样没有任何明显可见的结构,由任意指定的关系或互作的实体组成的数据。与生物学相关的此类数据包括分子(由原子和键组成)和蛋白-蛋白互作网络(由蛋白质相互作用组成)。在计算术语中,图就是这种数据的表示,每个图都有一组顶点或节点,以及一系列表示节点之间各种类型的关系或连接的边。对于上面提到的例子,原子或蛋白质的可以归类为节点特征,键或相互作用可以被分类为边特征。图卷积网络使用生成的图的结构来确定神经网络模型中的信息流。如图4d所示,当在整个网络中更新每个节点的特征时,相邻节点都会被考虑到,最后一层中的节点特征用作输出(例如,蛋白质上互作的氨基酸)或组合以形成整个图的输出(例如蛋白质的折叠类型)。在进行预测时,表示不同关联的图可以整合不同的信息来源,例如结合药物-基因和食物-基因关系图来预测用于预防癌症的食物。用于训练图形卷积网络的软件包括PyTorch GeometricGraph Nets

自编码器。顾名思义,自编码器是一种神经网络架构,旨在通过将原始数据点通过自编码的形式在预定维度的新空间中降维展示(自编码),这个预定维度通常远少于输入数据的维度数量。一个神经网络(编码器)被训练为将输入数据转换为一个紧凑的内部表示,称为“隐向量”或“隐表示”,表示为新空间中的独立点。自编码器的第二部分,称为“解码器”,是一个经过训练的可以输入隐向量、输出具有原始维度的原始数据的模型(图4e)。也可以理解为,编码器尝试压缩输入,解码器尝试解压缩。自编码器、隐变量和解码器同时进行训练。虽然这听起来像是一个无意义的练习,其输出只是模拟输入,但其想法是学习输入数据的新表示,该新表示能紧凑地编码期望的特征,例如数据点之间的相似性,同时仍然保留使用学习到隐表示重建原始数据的能力。其应用包括预测两个数据点有多密切相关,并在潜在空间上形成一些结构,这对进一步的预测任务很有用。自编码器-解码器架构的另一个好处是,一旦经过训练,解码器就可以单独使用生成新的预测、生成可以在实验室进行验证的数据,并有助于合成生物学工作。自编码器已应用于一系列生物学问题,包括预测DNA甲基化状态、基因和蛋白质序列工程以及单细胞RNA测序分析。

训练和改进神经网络。方框1概述了训练机器学习模型的一般程序。然而,由于神经网络在结构上比传统的机器学习算法复杂得多,因此存在一些神经网络特有的训练点。选择神经网络作为预期应用的适当模型(图1)后,只用单个训练示例(例如,单个图像或基因序列)对其进行训练通常是一个好主意。这种经过训练的模型对于做出预测没有什么用处,但是这种训练可以很好地发现编程错误。训练损失函数应该可以很快变为零,因为网络很简单地记忆了输入;如果不是这样,则代码中可能存在错误,或者算法不够复杂以至于无法对输入数据进行建模。一旦网络通过了这一基本调试,就可以对整个训练集进行训练,从而使训练损失函数最小化。这可能需要调整超参数,例如学习率(图2e)。通过监测训练集和验证集上的损失,来判断网络是否过拟合,这表现为训练模型时损失函数持续下降,而应用于验证集上时损失开始增加。训练通常在这一点停止,这一过程称为提前停止(图2f)。神经网络的过拟合如图2d所示,这意味着模型开始简单地记忆训练集的特征,并因此开始失去泛化新数据的能力。提前停止是防止这种情况的一种好方法,但在训练期间可以使用其他技术,例如模型的正则化或节点丢弃技术,其中网络中的节点被随机忽略以迫使网络学习涉及多个节点的更鲁棒的预测策略。

用于训练神经网络的流行软件包包括PyTorchTensorflow。训练神经网络需要大量计算,通常需要具有足够内存的图形处理器 (GPU)或张量处理器 (TPU),因为这些设备可以提供比使用标准中央处理器 (CPU) 10到100倍的加速。在近年来取得成功的大型模型训练时,以及在大型数据集上执行训练时,这种加速是必须的。然而,运行一个已经训练好的模型通常要快得多,并且通常只在一个普通的中央处理器上就是可行的。通用计算服务提供商提供的云计算解决方案适用于那些无法访问图形处理器进行训练的人,值得注意的是,对于小型任务,Colaboratory(Colab)允许Python代码在图形处理器或张量处理器上免费测试。使用Colab是开始基于Python的深度学习的一种很好的方法。

往期精品(点击图片直达文字对应教程)

d87ff1c9696e74e5d27cf6cadccf4326.jpeg

b1c7f19cc6fec7fb8f9ea8605c90fb2a.jpeg

048d11dcf3c122c712ef45f9cdd6371b.jpeg

496df6353b814a7542580ec5ee0332d9.jpeg

ae26f558c9071b9e16ef97dbd18e7d86.jpeg

5e5cd665c9f597939bd91b670497b79d.jpeg

5a163298e5b806106913663a3ac3a56d.jpeg

d570652ac9ad567d27b31555f54cc37e.jpeg

8bd316cf20daa55e29283d0f44595cde.jpeg

c46686f9183552122ae8a33d836cdcfd.jpeg

636a59b36b9be84154c91ea54b183ec2.jpeg

3399a667e2e2d15425240529b7128b6e.jpeg

43dc03ccdffa4ddaebd107eae8675c4a.png

b27245bd3aab617e4ba800ac9786cc72.png

b26b3525f57cc2a4dc61847b85fba0d4.png

e126273243f9b86d975352b1997c867d.png

1598f59d89afd8296be265cceb709af6.jpeg

c04cb1f0db4710c4e3ec48ad293108f6.jpeg

f2c3ad370bb3a73e37b7b41865e23ca2.jpeg

a9b3677cc15a4241eaf69bea30586b96.jpeg

d90cb5ae0a72da65c4d1014279323669.png

b784382f2d8f85693c2aea85ad5ea334.png

caf3ec2dae56d5762ead1e9ce60f88da.jpeg

99bf95e1b23a4d4d481dbf138598c6fa.png

36d5566688c2c4406ecac0d94d872cd2.png

77ecaefcdee3ab0128d6fdb3dd74947d.jpeg

549bd9a77edc8312654f58c10388f96c.png

0fc3ff3ab3625c9a4265898252aa9f85.png

机器学习

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

4f9310f252d861c163caad1b20324da1.jpeg

3813f17b650a0d3cf9e476c3c2c51ed7.jpeg

e5f6e016218f4e5ddc7bc8230f522edc.png

e4d34e9b62b8e32c47846800cdc597c8.png

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

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

相关文章

一个新的ubuntu

1 安装cmake 方法一:现成的教程 ubuntu安装cmake_yuanzhoulvpi的博客-CSDN博客 方法二:自己总结的 安装openssl系统:sudo apt-get install libssl-dev 安装:sudo apt-get install build-essential 以上是防止安装cmake时缺少文…

Ubuntu零基础安装

Ubuntu零基础安装 首先我们需要安装VM,再安装ubuntu。 1、安装VM 进入VM官网 VM官网地址 选择下载试用版 下载Windows版本 下载完成后,点击安装包进行安装 至此就安装完毕了。 桌面会出现VM的图标。 点击打开,弹出如下画面: …

基于Springboot的旅游网管理系统后台

目录 一. 🦁 研究背景及意义二. 🦁 技术栈系列及主要功能Ⅰ. 技术栈Ⅱ. 主要功能 三. 🦁 项目搭建Ⅰ. 后端模块Ⅱ. 前端模块 四. 🦁 主要实现过程Ⅰ. 认证和授权1. SpringSecurity配置类2. 自定义逻辑认证 Ⅱ. 富文本编辑器——wa…

边无际CEO陈永立:让ChatGPT通过物联网看到世界

如何利用ChatGPT及其插件,将AI与物联网设备相连? 通过Shifu Plugin获取摄像头的实时画面 我们都认识到,ChatGPT引发了一连串的技术变革。作为一个对AI和物联网技术充满热情的开发者,获得ChatGPT插件的早期访问权限,是…

Table 表格 + Pagination 分页

<el-table>属性 v-loading 加载动画 data 显示的数据 border 是否带有纵向边框 fit 列的宽度是否自撑开 highlight-current-row 是否要高亮当前行 row-style 行的 style 的回调方法&#xff0c;也可以使用一个固定的 Object 为所有行设置一样的 Style…

Android - 深色主题

一、简介 我们一直以来使用的操作系统都是以浅色主题为主的&#xff0c;这种主题模式在白天或者是光线充足的 情况下使用起来没有任何问题&#xff0c;可是在夜晚灯光关闭的情况下使用就会显得非常刺眼。 于是&#xff0c;许多应用程序为了能够让用户在光线昏暗的环境下更加舒…

mysql使用innodb引擎,请简述mysql索引的最左前缀如何优化orderby语句。

关键点 如果排序字段不在索引列上&#xff0c;filesort有两种算法&#xff1a; mysql就要启动双路排序和单路排序无过滤不索引order by非最左 filesort顺序错 filesort方向反 filesort 答案 首先要对sql进行分析检查必要的查询字段&#xff0c;过滤字段&#xff0c;排序字段…

JeecgBoot免费低代码平台—多租户SAAS解决方案

JeecgBoot免费低代码平台&#xff0c;提供一键切换多租户模式机制&#xff01;快速实现全系统的saas租户方案&#xff0c;通过租户ID进行数据隔离。 租户设计思路 1、开启全系统租户隔离 开启方法 将 org.jeecg.config.mybatis.MybatisPlusSaasConfig#OPEN_SYSTEM_TENANT_CO…

Selenium:浏览器及鼠标、键盘事件

目录 一、控制浏览器 二、鼠标事件 三、键盘事件 一、控制浏览器 webdriver主要提供操作页面上各种元素的方法&#xff0c;但它也提供操作浏览器的一些方法&#xff0c;例如控制浏览器大小、前进和后退等。 1、控制浏览器窗口大小 1 # 控制浏览器大小 2 from selenium imp…

2023哪款蓝牙耳机性价比高?200左右高性价比蓝牙耳机推荐

现如今的蓝牙耳机越来越多&#xff0c;人们在选择时不免纠结&#xff0c;不知道选什么蓝牙耳机比较好&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款性价比高的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xff1a;299 蓝牙版本&am…

常见提高SQL执行效率示例

1、减少与数据库的交互&#xff1a; 当传参是一个list集合时&#xff0c;通过遍历查询数据库会造成数据库压力过大&#xff0c;这样查询效率就比较低&#xff0c;应该减少与数据库的交互来提高查询效率&#xff1a;(这里的objId为“ljydl”,"ljtpfl") QueryWrapper&…

JavaScript全解析——本地存储的概念、用法详解

本地存储概念&#xff1a; 就是浏览器给我们提供的可以让我们在浏览器上保存一些数据 常用的本地存储 localStorage sessionStorage localStorage 特点: 1.长期存储,除非手动删除否则会一直保存在浏览器中&#xff0c;清除缓存或者卸载浏览器也就没有了 2.可以跨页面通讯,…

如何设计出结构清晰布局漂亮的SWC结构图

我们都知道AUTOSAR的设计理念是自顶向下的设计,并且现在使用的很多AUTOSAR工具链对于SWC的设计都支持模型设计,以Vector Developer工具为例,假设我们不调整Composition,其结构图显示将会比较乱,比如如下这个样子,结构图中ports关系不清晰,位置重叠,布局不够清晰,有些朋…

二维码在设备管理中的应用

对设备进行巡检是工厂日常管理中必不可少的工作之一&#xff0c;从前很多工厂使用纸质记录打钩的方式进行设备巡检&#xff0c;但纸质巡检单不易保存也不方便进行查阅或汇总&#xff0c;除此之外光靠打钩很难保证巡检的真实性&#xff0c;不能起到防假检的功能。 为了让设备巡…

vue3+Typescript实现路由标签页和面包屑

文章目录 在vue中实现路由标签页和面包屑需求分析最终效果实现步骤第一步&#xff1a;创建路由标签组件和面包屑第二步&#xff1a;创建路由标签数组第三步&#xff1a;监听路由变化并自动添加新标签第四步&#xff1a;处理关闭标签事件第五步&#xff1a;当前路由标题同步面包…

Oracle RAC 19c集群搭建指南:实现高可用、高性能的数据库集群(超详细)

Oracle RAC 19c集群搭建指南&#xff1a;实现高可用、高性能的数据库集群&#xff08;超详细&#xff09; 1.新建节点 因为rac集群使用的是共享盘&#xff08;esxi设置共享盘步骤如下&#xff09;&#xff1a; 首先添加一个iSCSI控制器SCSI总线共享选择虚拟添加硬盘&#xf…

java:fastjson,jackson自定义反序列化器设计暨jackson反序列化时出现StackOverflowError异常的原因分析

问题描述 如下是一个Java Bean类&#xff0c;这是我的sql2java工具根据数据库表自动生成的对应表记录的Java类。 与之对应的数据库表定义如下&#xff1a; CREATE TABLE IF NOT EXISTS dc_device_channel (device_id int NOT NULL COMMENT XNAME:设备IDX,sid …

一种具备过载检测和打嗝式保护功能的MBUS主机电路

关于MBUS电路原理和简化电路见本篇文章&#xff0c; MBUS主机端简化版电路设计_Tech-Wang的博客-CSDN博客https://blog.csdn.net/jsf120/article/details/123378064?spm1001.2014.3001.5502 上篇中的电路已经验证通过并在产品中实际应用&#xff0c;本篇在此基础上增加了打嗝…

itop-3568开发板驱动学习笔记(25)设备树(四)GPIO 实例分析

《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 GPIO 控制器必要属性其他属性 指定 GPIO 引脚 和时钟类似&#xff0c;GPIO 在设备树中也存在两层定义&#xff0c;首先是 GPIO 控制器&#xff0c;这部分由芯片原厂工程师编写&#xff0c;相当于 GPIO 底层…

恺撒密码太简单?这样一改,秒变地狱级难度(37)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 看过上一篇文章的朋友&#xff0c;可能觉得这样加密&#xff0c;未免太简单了吧&#xff1f; 一共26个字母&#xf…