DNNGP、DeepGS 和 DLGWAS模型构成对比

一、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.rhkb.cn/news/98132.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个性化定制界面 VS 极简版原装界面:你更喜欢哪一个?为什么?

文章目录 每日一句正能量前言自己的喜好使用这种界面的原因这种界面对你的影响后记 每日一句正能量 不管昨天、今天、明天,能豁然开朗就是最美好的一天。 前言 个性化定制界面和极简版原装界面,哪一个你用起来更加顺手呢,相比之下你更喜欢哪一…

利用Figlet工具创建酷炫Linux Centos8服务器-登录欢迎界面-SHELL自动化编译安装代码

因为我们需要生成需要的特定字符,所以需要在当前服务器中安装Figlet,默认没有安装包的,其实如果我们也只要在一台环境中安装,然后需要什么字符只要复制到需要的服务器中,并不需要所有都安装。同样的,我们也可以利用此生成的字符用到脚本运行的开始起头部分,用ECHO分行标…

解决Java中的“Unchecked cast: java.lang.Object to java.util.List”问题

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

C++入门:函数缺省参数与函数重载

目录 1.函数缺省参数 1.1 缺省参数概念 1.2 缺省参数分类 2.函数重载 2.1 函数重载概念 2.2 C支持函数重载的原理 1.函数缺省参数 1.1 缺省参数概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实 参则采用该形参的…

python 自动化学习(四) pyppeteer 浏览器操作自动化

背景 之前我在工作中涉及到了很多地方都是重复性的页面点点点工作,又因为安全保密原则不开放接口和数据库,只有一个页面来提供点击进行操作,就想着用前面学的自动化来实现,但发现前面学的模拟操作对浏览器来说并没有那么友好&…

【C# 基础精讲】LINQ to Objects查询

LINQ to Objects是LINQ技术在C#中的一种应用,它专门用于对内存中的对象集合进行查询和操作。通过使用LINQ to Objects,您可以使用统一的语法来查询、过滤、排序、分组等操作各种.NET对象。本文将详细介绍LINQ to Objects的基本概念、常见的操作和示例&am…

开源低代码平台Openblocks

网友 HankMeng 想看低代码工具,正好手上有一个; 什么是 Openblocks ? Openblocks 是一个开发人员友好的开源低代码平台,可在几分钟内构建内部应用程序。 传统上,构建内部应用程序需要复杂的前端和后端交互,…

0基础入门C++之类和对象中篇

目录 1.类的6个默认成员函数2.构造函数2.1概念2.2特性 3.析构函数3.1概念3.2特性 4.拷贝构造函数4.1概念4.2 特性 5.赋值运算符重载5.1运算符重载5.2赋值重载5.3赋值运算符重载特性 6.const成员7.取地址及const取地址操作符重载 1.类的6个默认成员函数 通过类和对象上篇的学习&…

docker安装redis7-哨兵模式

说明 系统:CentOS7.9 redis:7.0.5 由于资源问题本次的部署全部在一台宿主机上通过启动不同的docker容器来完成部署。 搭建哨兵模式之前,首先搭建好主从模式,1主2从,可以参考上一篇文章:docker安装redis…

Linux 进程间通信——消息队列

一、消息队列的原理 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为含有一个类型,接收进程可以独立接收含有不同类型值得数据库。 消息实际上是一个数据块,这个数据块是一个结构体,结构体由自己命名。消…

HTML笔记(3)

表单标签 用于登录、注册界面,以采集用户输入的信息,把信息采集到之后,用户一点按钮,就会把这些信息发送到服务端,服务端就可以把这些数据存储到数据库,所以表单是一个非常重要的html标签,它主要…

Appium 2安装与使用java对Android进行自动化测试

文章目录 1、Appium 2.1安装1.1、系统要求1.2、安装Appium2.1服务1.3、安装UiAutomator2驱动1.4、安装Android SDK platform tools1.5、下载OpenJDK 2、Android自动代码例子2.1、安装Android自动化测试元素定位工具Appium Inspector2.2、编写android app自动化测试代码和使用ex…

常见架构类型

目录 1.单机架构 2.应用数据分离架构 3.读写分离架构 4.冷热分离架构 5.垂直分库架构 6.微服务架构 7.容器编排架构 1.单机架构 单机架构是简单的将应用服务和数据库服务部署到同一台机器上。 缺点:存在很大的性能限制。 2.应用数据分离架构 引入负载均衡&a…

Git概述

目录 一、什么是Git 二、什么是版本控制系统 三、Git和SVN对比 SVN集中式 SVN优缺点 Git分布式 Git优缺点 四、Git工作流程 四个工作区域 工作流程 五、Git下载与安装 一、什么是Git 很多人都知道,林纳斯托瓦兹在1991年创建了开源的Linux,从…

鲁棒优化入门(5)—Matlab+Yalmip求解鲁棒优化编程实战

之前的博客:鲁棒优化入门(二)——基于matlabyalmip求解鲁棒优化问题 去年发布了使用Yalmip工具箱求解鲁棒优化问题的博客之后,陆陆续续有朋友问我相关的问题,有人形容从学习这篇博客到求解论文中的鲁棒优化问题&#x…

【云原生】Docker基本原理及镜像管理

目录 一、Docker概述 1.1 IT架构的演进: 1.2 Docker初始 1.3 容器的特点 1.4 Docker容器与虚拟机的区别 1.5 容器在内核中支持2种重要技术 1.6 Docker核心概念 1)镜像 2)容器 3)仓库 二、安装Docker 2.1 Yum安装Docker…

PCTA 认证考试高分通过经验分享

作者: msx-yzu 原文来源: https://tidb.net/blog/0b343c9f 序言 我在2023年8月10日,参加了 PingCAP 认证 TiDB 数据库专员 V6 考试 ,并以 90分 的成绩通过考试。 考试总分是100分,超过60分就算通过考试。试卷…

centos 7.9 部署django项目

1、部署框架 主要组件:nginx、uwsgi、django项目 访问页面流程:nginx---》uwsgi---》django---》uwsgi---》nginx 2、部署过程 操作系统:centos 7.9 配置信息:4核4G 50G 内网 eip :10.241.103.216 部署过程&…

小素数,大智慧

小素数,大智慧 定义判断方法方法1方法2方法3方法4方法5方法6方法7 定义 素数(质数):在大于 1 的自然数中,只有 1 和该数本身两个因数的数 素数(质数):在大于1的自然数中,…

K8S用户管理体系介绍

1 K8S账户体系介绍 在k8s中,有两类用户,service account和user,我们可以通过创建role或clusterrole,再将账户和role或clusterrole进行绑定来给账号赋予权限,实现权限控制,两类账户的作用如下。 server acc…