DNNGP、DeepGS 和 DLGWAS模型构成对比

news2024/12/23 23:57:28

一、DNNGP

 DNNGP 是基于深度卷积神经网络,这个结构包括一个输入层,三个卷积层,一个批标准化层,两个dropout层,一个平坦化层,一个 dense层。

dropout层:在神经网络中,dropout层是一个非常有效的正则化技术,主要作用是防止模型过拟合。dropout层在训练时会随机将一些网络单元暂时“屏蔽”,即将其输出值设置为0。各个迭代训练时屏蔽的单元是随机的。这样可以阻止单元间形成强依赖关系,网络被迫更多地考虑不同的特征,而不是依赖少数关键单元的组合。在测试时,dropout层并不发生随机屏蔽,而是保持全连接,但同时缩减所有权重(比如乘以0.5)。这等效于在训练时迭代地训练多个稍微不同的“子网络”,测试时对它们进行平均。综上,dropout在训练时增加噪声,测试时 ensemble,具有很好的正则化效果,可以显著提高模型的泛化能力,防止过拟合。 Dropout比率通常设置在0.2到0.5之间。Ratio太小正则化效果弱,太大会损害模型拟合能力。需针对具体问题进行调参选择合适的比率。Dropout已成为深度学习中标准的正则化技术之一。

Flattern层:在卷积神经网络(CNN)中, Flatten 层的作用是将前一层的多维输出(通常是3D 或 4D 张量)展平成1D 的向量,以便用于接下来的全连接层。其原理很简单:假设前一层输出为一个[batch_size, h, w, c] 的4D 张量,其中:- batch_size:一个批次中的样本数 - h:特征图高度- w:特征图宽度- c: 特征图通道数那么Flatten层会将其展平为[batch_size, h * w * c] 的2D 张量。几何意义上是将多通道的2D特征图打平成1D 向量。这个过程不包含任何可学习参数,仅仅是对数据形状的改变。但意义非常重大:- 将多维输入映射到一维,以适应全连接层的输入。- 在网络金字塔结构中,提高上下层网络信息的融合效果。- 减少参数量,有利于训练较大网络。所以,Flatten层在CNN中起着极其重要的过渡作用,把卷积层提取出的特征映射到适合全连接层处理的形状,是一个不可或缺的组成部分,所以根据其作用其放置的顺序是永远在dense层前的,Flattern层可以把卷积层提取出的特征映射到适合全连接层处理的形状。

dense层:在神经网络中,dense层又称作全连接层(fully connected layer)。它的主要特点是:- 每个输出节点都与上一层的所有节点有连接。- 对输入数据做线性变换+激活函数。- 参数可学习,通过反向传播更新。dense层的计算公式如下:output = activation(dot(input, weights) + bias)其中weights和bias都是可学习的参数。dense层主要用在网络的最后几层,将前面提取到的高级特征映射到最终的输出,实现分类或回归任务。相比卷积层extract低级到高级特征,dense层更强调分类决策。但过多的dense层也容易导致过拟合。所以一个典型的卷积神经网络往往是:卷积层提取特征,全连接层分类决策。这种组合使模型能够同时具备拟合复杂模式和实现决策判别的能力。Dense层作为“大脑”的角色,与前面的“感官”卷积层互相配合,共同完成图像分类等视觉任务。

卷积层在网络中的分布位置会对模型的效果产生一定的影响。1. 前置的卷积层可以提取低级特征,这样后续层可以基于这些特征提取高级特征。2. 网络深处的卷积层可以利用前面提取的特征进行更复杂的特征组合,表达更抽象的高级特征。3. 如果太多卷积层前置,可能导致过拟合和梯度消失。4. 如果太多卷积层在后面,可能无法有效提取低级特征,后面过于依赖前面的结果。5. 残差网络的跳过连接需要确保两边形状一致,所以会影响卷积层的分布。6. 一般将最大池化层插入卷积层之间,用于缩小特征图尺寸。7. 网络后半段可以逐步减小特征图大小,加速计算。所以通常的做法是:- 前半段较多小卷积核提取基础特征
- 中间利用池化层减小特征图
- 后半段卷积核数目增加,融合不同特征
- 残差连接要注意两侧形状需一致需要根据具体问题和网络结构进行调整。适当实验不同分布对效果的影响。

二、DeepGS

 DeepGS模型是采用具有 8-32-1 架构的深度学习卷积神经网络架构组成的,这个模型包括一个输入层,一个包括八个神经元的卷积层,一个采样层,三个 dropout 层,两个全连接层和一个输出层。

DeepGS模型使用了以下结构的深度卷积神经网络(CNN):- 输入层:输入原始数据(如图像)。- 卷积层:1个卷积层,包含8个过滤器,用于从输入中提取底层特征。- 采样层:对卷积层输出进行下采样。- Dropout层:3个dropout层用于正则化。- 全连接层:2个全连接层,包含32个和1个神经元。- 输出层:最终输出预测的层。总结一下,该CNN的核心结构是:- 1个输入层
- 1个卷积层(8个过滤器) 
- 1个采样层
- 3个dropout层
- 2个全连接层(分别有32个和1个神经元)
- 1个输出层这个8-32-1的整体架构,从原始输入中提取特征,通过dropout正则化,然后将特征展平到全连接层进行预测。这是一个简单有效的CNN架构,充分发挥了卷积层和全连接层的互补优势,同时利用dropout防止过拟合。

卷积层中的过滤器个数(filter数)决定了网络提取特征的能力。过滤器越多,可以学习到更丰富的特征表示。这个模型中的卷积层过滤器数比较少,只有8个,所以它的特征提取能力相对有限。这可能是由于数据量较小的限制。具体来说:
- 输入数据通过每个过滤器进行卷积,获取8个特征图。
- 每个过滤器包含一组可学习的参数,用来提取某种特征。
- 8个过滤器就可以同时提取8种不同的特征。之后,这8个特征图会作为卷积层的输出,传入后续层进行处理。虽然这个卷积层只有8个过滤器,但已足以对输入提取一些底层特征,为后续的分类任务提供有效的特征表示。需要注意避免设置过多的过滤器数,导致过拟合。(在卷积神经网络中,"convolutional layer (eight neurons)" 中的 "neurons" 对应到中文通常翻译成“过滤器”。具体对应关系:- neurons -> 过滤器(filter)- convolutional layer -> 卷积层- eight neurons -> 8个过滤器所以,“one convolutional layer (eight neurons)” 的中文翻译为:“1个卷积层(8个过滤器)”之所以这么翻译,是因为每个过滤器包含一组卷积核,可以看作是一个特征提取器,功能类似于神经元。但考虑到“神经元”通常指全连接层中的节点,为避免混淆,在卷积层中一般将“neurons” 翻译成 “过滤器”。)

采样层:在卷积神经网络中,采样层(Pooling Layer)通常在卷积层之后,其主要功能是降采样,有以下几个作用:1. 减少数据量,降低模型参数,简化计算量。2. 提取主要特征,去除不重要细节。3. 提高特征的空间不变性。常见的采样方式有:- 最大值采样(Max Pooling):取感受野内的最大值作为输出。可以提取主要特征,去除不重要细节。- 平均值采样(Average Pooling):取感受野内平均值作为输出。保留背景信息,避免过度丢失信息。- 随机采样(Stochastic Pooling):随机选取感受野内一个值作为输出。增加模型的随机性和多样性。采样层不改变数据通道数,只降低数据的空间尺寸。这样可大大减少参数量,减轻过拟合,同时保留主要特征信息。所以采样层也被称作下采样层,在CNN中起到补充卷积层的作用,共同构建有效的特征提取器。

最大值采样的主要思想是:1. 将输入特征图分成多个小的感受野(通常是2x2或3x3)。2. 在每个感受野内找出最大激活值。3. 将该最大值作为感受野的输出。这样做可以提取感受野内的主要特征,同时去除细微特征。原因有两个:1. 最大值激活通常对应最明显的特征。2. 去除非最大值可以增加特征的空间移动不变性。举个例子,在图像处理中,最大值池化可以提取出图像的明显边缘特征,而过滤掉细微纹理。所以您的理解是正确的,最大值采样保留主要特征,移除不重要细节,这正是其作用所在。这种下采样方式很好地补充了卷积层的特征提取能力。

采样层在卷积神经网络中是否可有可无,以及为何有的网络中没有采样层,这需要考虑以下几个方面:1. 采样层的功能是降采样,减少计算量和过拟合风险,但同时也会损失细节信息。2. 对小数据集或简单任务,模型参数较少,过拟合风险不大,此时可以不用采样层。3. 一些网络设计加入了大量过滤器,可以通过增加深度来降低每个层的计算,此时也可以不用采样层。例如VGGNet。4. 有的网络使用稀疏连接来减小参数量,此时也可以不用采样层,例如Inception Net。5. 对一些需要保留精细信息的任务,如语义分割,不能使用过多下采样,需要减少或不使用采样层。6. 采样层也可以在中间层使用,而不是每层后面都使用。总之,采样层是否使用以及使用多少,需要根据具体网络结构和任务来权衡计算量、精度需求和过拟合风险。不是所有网络和任务都一定需要采样层,它可以是可有可无的。

感受野(Receptive Field)是一个非常重要的概念,用于描述卷积神经网络中每个神经元的输入范围。具体来说,对于卷积层中的某一个特征图(Feature Map)而言,它的感受野指的是在输入层中,影响到该特征图某一位置值的输入区域。一般来说,卷积层的感受野shape是方形的,边长等于卷积核尺寸。例如,如果卷积核是3x3,那么每个神经元的感受野shape就是3x3。随着网络层数的加深,后层神经元的感受野会逐步扩大,因为它受到前层特征图的影响,所以其感受野等于自身卷积核尺寸与前层感受野大小的结合。感受野大小直接影响网络提取信息的范围和能力。开始层感受野小,只能提取局部信息;深层感受野大,可以提取全局信息。合适的感受野对卷积网络至关重要。一般后期会逐渐扩大感受野,以获取全局特征和上下文信息。这是卷积网络能提取层次特征的重要原理。

三、DLGWAS

 该模块包括一个输入层,一个双CNN层,其中包括两个并行CNN分流,和一个汇总层将两个CNN分支流合并。

独热编码方式:输入层包含对基因型进行onehot编码后的输入,表示方式更具体一点是:1. 假设基因型由N个基因位点组成,在每个位点上可能的等位基因形态有M种。2. 则对于每个样本,其基因型可以表示为一个长度为N的向量,向量中的每个元素表示对应的位点上等位基因的类型。3. 对这个长度为N的向量进行onehot编码,就是将其转化为一个N行M列的二维矩阵。其中只有一列对应的元素值为1,其他均为0。4. 这样onehot编码后的矩阵就包含了该样本基因型中各个位点的等位基因信息,即该基因型的完整信息。5. 将这个编码矩阵作为输入层的输入,输入到后续的双CNN层中。输入层对基因型进行了onehot编码,作为模型的输入,以提供完整的基因型信息。这种编码方式很好地把基因型转化为了计算机可处理的输入格式。 

根据以上信息,我们将三种基因型和一个缺失值使用 one-hot 编码方式进行编码并作为输入向量,每个标记被一个四维向量所代替,可以看如上图所示对AA,Aa,aa的编码方式的不同。 

 这一模块包含输入层、双CNN层和汇总层。输入层包含对基因型进行onehot编码后的输入。双CNN层包含两个并行的CNN分支流。汇总层则将两个CNN分支流合并。输入的编码基因组标记同时传入双CNN层。在双CNN层,我们应用了残差学习的思想。残差学习最初是为图像识别和分类而提出,用于解决梯度消失问题。残差连接是从前一层的快捷连接,被添加到身份映射中形成残差映射。这种方法已被应用于预测蛋白质主链扭转角和蛋白质接触图。总之,关键点有: 一热编码输入基因型数据
- 使用双CNN分支并行提取特征
- 汇总层融合双分支特征
- 在CNN中使用残差结构避免梯度消失

残差结构的作用是让深层网络中的梯度可以直接传递至底层,避免在网络深处造成的梯度消失。具体来说:1. 在CNN的两个连续层之间,添加一个残差块(residual block)。2. 残差块包含一个身份映射(identity mapping),即跳过一个卷积层的直接连接。3. 通过这个直接连接,深层的梯度可以不经变换直接回传到底层。4. 所以中间卷积层的权重更新不会因梯度消失而停止,起到防止梯度消失的作用。5. 这种残差学习结构成功应用于很深的CNN网络,避免了网络深化时的梯度消失问题。6. 在基因序列建模中,当CNN网络较深时,也可以考虑使用残差结构来避免梯度消失。

身份映射(Identity Mapping)指在残差网络(ResNet)中,从前一层到后一层构建的直接连接路径。其主要作用是:1. 在两个连续的卷积层之间,跳过一个卷积层,建立一个直接的恒等映射(F(x) = x)。2. 这样来自后层的梯度可以直接通过这个跳过连接回传到前层。3. 不需要经过中间卷积层的链式法则,从而避免了中间层带来的梯度衰减或累积误差。4. 所以可以稳定地进行很深的网络训练,不会出现梯度消失或爆炸。5. 这个直接路径实现了输入和输出之间的恒等映射,所以称为“身份映射”。6. 整个模块称为残差模块,包含卷积层和身份映射两条路径。综上,身份映射在残差网络中起到非常关键的作用,它保证了深层网络中的梯度可以无障碍地直接回传到浅层,防止梯度消失,是残差网络的核心概念之一。

四、应对梯度消失的解决方法

针对深层神经网络中的梯度消失问题,常见的应对方法包括:

1. 残差网络(ResNet):使用跳过连接,实现梯度直传。这是目前应对梯度消失最有效的结构。

2. 批标准化(BatchNormalization):通过标准化层内激活的分布,减缓梯度消失。

3. 权重初始化技巧:如Xavier初始化,可以保证各层梯度大小相近,延缓消失。

4. 非饱和激活函数:如ReLU,可以确保正区域梯度等于1,不会衰减。

5. 门控递归单元(GRU/LSTM):通过设计记忆单元结构,记录长时依赖信息。

6. 梯度裁剪(Gradient Clipping):裁剪超出阈值的梯度,防止梯度爆炸。

7. 调整优化算法:如使用Adam优化器,可以自适应调整学习率,稳定梯度。

8. 加深网络结构:增加层数而不改参数,稀释每层的变化,缓解消失。

9. 特征标准化:标准化特征分布,可以一定程度抑制消失。综合使用这些方法,可以显著减轻深层神经网络中的梯度消失问题,使其更稳定有效地训练。

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

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

相关文章

拿捏--->打印爱心(小心机表白)

文章目录 题目描述算法思路代码示例思路一思路二 题目描述 利用java语言编写算法在控制台打印爱心算法 算法思路代码示例 思路一 打印心形主要分为上下两部分,如图: 下边主要是一个倒立三角形,容易打印。 上边可以分为左右两部分&#…

【数据结构】堆的初始化——如何初始化一个大根堆?

文章目录 源码是如何插入的?扩容向上调整实现大根堆代码: 源码是如何插入的? 扩容 在扩容的时候,如果容量小于64,那就2倍多2的扩容;如果大于64,那就1.5倍扩容。 还会进行溢出的判断&#xff0c…

NPDP含金量高吗?难考吗?

一,什么是NPDP认证? NPDP认证中文名为产品经理国际资格认证,New Product Development Professional (NPDP) ,是由美国 产品开发与管理协会 (PDMA) 所发起, 是国际公认的唯一的新产品开发专业认证,集理论、方…

论文及代码详解——可变形卷积(DCNv2)

文章目录 论文详解Stacking More Deformable Conv LayersModulated Deformable ModulesR-CNN Feature Mimicking 代码详解 DCNv2 是在DCNv1的基础上的改进版。 理解DCNv2之前,建议先读 《论文及代码详解——可变形卷积(DCNv1)》 论文详解 DC…

数据结构单链表

单链表 1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链 接次序实现的 。 在我们开始讲链表之前,我们是写了顺序表,顺序表就是类似一个数组的东西&#xff0…

651页23万字智慧教育大数据信息化顶层设计及建设方案WORD

导读:原文《651页23万字智慧教育大数据信息化顶层设计及建设方案WORD》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。 目录 一、 方案背景 1.1 以教育…

三、数据类型

1、数值类型 (1)分类: (2)注意: 存储某一类数据,如果只想要表示整数,则在其后加unsigned即可; 在表示小数时,需要指明该小数的总长度和小数部分的长度&…

PostgreSQL空值的判断

PostgreSQL空值的判断 空值判断非空判断总结 空值判断 -- 查询为空的 is null,sql简写isnull select * from employees where manager_id isnull;select * from employees where manager_id is null;非空判断 -- 查询不为空的 is not null;sql简写notnull select * from empl…

c++基本语法

c基础语法 由于长时间没有使用过c&#xff0c;因此c的语法已经忘得差不多了&#xff0c;这篇文章主要是快读地过一遍c的基本语法。之前也写过一篇从c过渡到c的文章&#xff0c;有兴趣地可以看看。 文章链接 1.c的安装 mingw64的安装配置环境变量 2.语法 #include<iostre…

leetcode 力扣刷题 两数/三数/四数之和 哈希表和双指针解题

两数/三数/四数之和 题目合集 哈希表求解1. 两数之和454. 四数相加Ⅱ 双指针求解15.三数之和18. 四数之和 这个博客是关于&#xff1a;找出数组中几个元素&#xff0c;使其之和等于题意给出的target 这一类题目的&#xff0c;但是各个题之间又有些差异&#xff0c;使得需要用不…

网络及其计算的重点知识及回顾

概述 1.1 计算机网络的分类 按照网络的作用范围&#xff1a;广域网&#xff08;WAN&#xff09;、城域网&#xff08;MAN&#xff09;、局域网&#xff08;LAN&#xff09;&#xff1b; 按照网络使用者&#xff1a;公用网络、专用网络。 1.2 计算机网络的层次结构 应用层&a…

谷歌云平台替代超级计算机?助力心脏病学研究,省心智能还省钱

哈佛大学的研究团队在使用谷歌云平台代替超级计算机进行心脏病研究方面取得了重大突破。通常情况下&#xff0c;进行模拟人体循环系统中血块和肿瘤细胞的疗法需要强大的计算能力才能提供准确的结果。然而&#xff0c;超级计算机的高昂成本和有限的可用性成为这项研究面临的巨大…

Qt+Pyhton实现麒麟V10系统下word文档读写功能

目录 前言1.C调用python1.1 安装Python开发环境1.2 修改Qt工程配置1.3 初始化Python环境1.4 C 调用Python 函数1.5 常用的Python接口 2.python虚拟环境2.1Python虚拟环境简介2.2 virtualenv 安装及使用2.3 在C程序中配置virtualenv 虚拟环境 3.python-docx库的应用4.总结 前言 …

【计算机网络篇】UDP协议

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; UDP协议 1&#xff0c;UDP 简介 UDP&#xff08;User Datagram Protocol&#xff09;是一种无连…

集成DTM实现跨语言分布式事务V1.0

集成DTM实现跨语言分布式事务V1.0 简介 DTM是一款开源的分布式事务管理器&#xff0c;解决跨数据库、跨服务、跨语言栈更新数据的一致性问题。 通俗一点说&#xff0c;DTM提供跨服务事务能力&#xff0c;一组服务要么全部成功&#xff0c;要么全部回滚&#xff0c;避免只更新…

Qt编程基础 | 第六章-窗体 | 6.5、QTableWidget 使用过程注意的问题

一、QTableWidget 使用过程注意的问题 1、添加行时要先设置行数 往表格重添加行时&#xff0c;要先设置行数&#xff0c;不然添加的内容看不到&#xff0c;如下&#xff1a; void QCustomWidget::InitTableContent() {for (int row 0; row < m_rowData.size(); row ){// 注…

DAY4,ARM(用c语言点亮LED灯,封装库代码,软件编程控制硬件)

---gpio.h头文件--- #ifndef __LED_H__ #define __LED_H__//1RCC_MP_AHB4ENSETR寄存器封装 #define RCC_MP_AHB4ENSETR (*(volatile unsigned int*)0x50000a28)//2GPIO封装结构体 typedef struct {volatile unsigned int MODER;volatile unsigned int OTYPER;volatile unsigne…

Python系统学习1-9-类二之MVC框架

一、模型说明 View视图:处理界面逻辑,输入输出 Controller控制器:处理核心逻辑,存储计算 Model模型:将多个变量组合为一种类型 二、注意事项 类外通过自定义对象名调用 类中通过self调用 """疫情信息管理系统学习MVC的软件架构View Controller Model视…

汇川脉冲伺服SV630P常用参数设置(博途PLC脉冲输出控制)

有关博途PLC脉冲输出控制功能块详细介绍,请查看下面博客链接: 博途1200PLC轴控功能块(脉冲轴)_博图 轴控块_RXXW_Dor的博客-CSDN博客STRUCT// 轴使能// 轴正向点动// 轴反向点动// 轴回原// 轴复位// 轴暂停// 轴快速停机// 轴绝对定位// 轴相对定位// 轴匀速运行// 修改轴参…