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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[JavaWeb]【一】入门JavaWeb开发总概及HTML、CSS、JavaScript

目录 一 特色 二 收获​编辑 三 什么是web? 四 网站的工作流程 五 web网站的开发模式​编辑 六 web开发课程学习安排 七、初始web前端 八 HTML、CSS 8.1 什么是HTNL\CSS(w3cschool) 8.2 HTML快速入门 8.3 VS Code开发工具 8.3.1 插件 8.3.2 主题(改变颜色&…

破解难题:如何应对项目中的‘老油条’障碍

引言 在项目管理的实践中,我们经常遇到各种各样的人员挑战。其中,有一种特殊的挑战被称为“老油条”现象。这些“老油条”通常在表面上表现得非常配合,但在实际工作中却常常没有任何进展。这种情况不仅会影响项目的进度,还可能对…

Kestrel和ISS服务器下的配置

一、Kestrel服务器 Kestrel是ASP.NET Core框架中的一个跨平台的Web服务器。它是ASP.NET Core应用程序默认的HTTP服务器,并且可作为独立的Web服务器来托管ASP.NET Core应用程序。 Kestrel具有以下特点和功能 1、跨平台 Kestrel是完全跨平台的,可以在Wind…

Git如何上传文件到github

Git下载网址: https://git-scm.com/downloads 1. 新建一个空文件夹,用来上传文件,第一次需创建,以后无需创建 2. 点进去空文件夹,鼠标右键,使用Git Bash Here 打开 3. 克隆远程仓库:git cl…

nginx反向代理、负载均衡

修改nginx.conf的配置 upstream nginx_boot{# 30s内检查心跳发送两次包,未回复就代表该机器宕机,请求分发权重比为1:2server 192.168.87.143 weight100 max_fails2 fail_timeout30s; server 192.168.87.1 weight200 max_fails2 fail_timeout30s;# 这里的…

WPF显示初始界面--SplashScreen

WPF显示初始界面–SplashScreen 前言 WPF应用程序的运行速度快,但并不能在瞬间启动。当第一次启动应用程序时,会有一些延迟,因为公共语言运行时(CLR)首先需要初始化.NET环境,然后启动应用程序。 对于WPF中…

OpenAI Function calling

开篇 原文出处 最近 OpenAI 在 6 月 13 号发布了新 feature,主要针对模型进行了优化,提供了 function calling 的功能,该 feature 对于很多集成 OpenAI 的应用来说绝对是一个“神器”。 Prompt 的演进 如果初看 OpenAI 官网对function ca…

【LeetCode-中等题】49. 字母异位词分组

题目 题解一:排序哈希表 思路:由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。 核心api: //将字符串转换为字符数组char[] ch str.toCharArray();…

使用open cv进行角度测量

使用open cv进行角度测量 用了一点初中数学的知识,准确度,跟鼠标点的准不准有关系,话不多说直接上代码 import cv2 import mathpath "test.jpg" img cv2.imread(path) pointsList []def mousePoint(event, x, y, flags, param…

【Linux取经路】解析环境变量,提升系统控制力

文章目录 一、进程优先级1.1 什么是优先级?1.2 为什么会有优先级?1.3 小结 二、Linux系统中的优先级2.1 查看进程优先级2.2 PRI and NI2.3 修改进程优先级2.4 进程优先级的实现原理2.5 一些名词解释 三、环境变量3.1 基本概念3.2 PATH:Linux系…

开源后台管理系统Geekplus Admin

本系统采用前后端分离开发模式,后端采用springboot开发技术栈,mybatis持久层框架,redis缓存,shiro认证授权框架,freemarker模版在线生成代码,websocket消息推送等,后台管理包含用户管理&#xf…

8. 实现业务功能--用户注册

目录 1. 顺序图 2. 参数要求 3. 接口规范 4. 创建扩展 Mapper.xml 5. 修改 DAO 6. 创建 Service 接口 7. 实现接口 8. 测试接口 9. 实现 Controller 9.1 密码加密处理 10. 实现前端界面 业务实现过程中主要的包和目录及主要功能: model 包:实体对象 d…

蛊卦-拨乱反正

目录 前言 卦辞 爻辞 总结 前言 题外话,今天占卜时,看错了,以为占到了蛊卦(后续会对自己的占卦经历进行补充,不断完善这个易经学习的专栏),那顺便就学习一下蛊卦,蛊惑人心&#…

QT TLS initialization failed问题(已解决) QT基础入门【网络编程】openssl

问题: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed 这个问题的出现主要是使用了https请求:HTTPS ≈ HTTP + SSL,即有了加密层的HTTP 所以Qt 组件库需要OpenSSL dll 文件支持HTTPS 解决: 1.加入以下两行代码获取QT是否支持opensll以…

STM32--TIM定时器(3)

文章目录 输入捕获简介频率测量输入捕获通道输入捕获基本结构PWMI的基本结构输入捕获模式测量PWM频率和占空比代码 编码器接口正交编码器工作模式接口基本结构TIM编码接口器测速代码: 输入捕获简介 输入捕获IC(Input Capture),是处理器捕获外部输入信号…

JVM——引言+JVM内存结构

引言 什么是JVM 定义: Java VirtualMachine -java 程序的运行环境 (ava 二进制字节码的运行环境) 好处: 一次编写,到处运行自动内存管理,垃圾回收功能数组下标越界检查,多态 比较: jvm jre jdk 学习jvm的作用 面试理解底层实现原理中…

mybatis plus 配置自动设置创建时间和创建人id

1.新建 MyMetaObjectHandler package com.ruoyi.framework.config;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.ruoyi.common.bean.LocalUser; import com.ruoyi.coupon.domain.CouponUser; import org.apache.ibatis.reflection.MetaObjec…

深度学习模型训练好后使用time.time()测试处理每一帧速度(时间)和模型推理速度(时间)

在深度学习中,如果想测试训练好的模型处理每一帧图像的运行时间,可以在模型预测代码段添加时间统计的逻辑: 目录 加载预训练模型遍历测试图像汇总统计预测测试集全部图像的平均处理时间测试结果样式 加载预训练模型 model torch.load(best_model.pth) …

Datawhale Django后端开发入门 TASK03 QuerySet和Instance、APIVIew

一、QuerySet QuerySet 是 Django 中的一个查询集合,它是由 Model.objects 方法返回的,并且可以用于生成数据库中所有满足一定条件的对象的列表。 QuerySet 在 Django 中表示从数据库中获取的对象集合,它是一个可迭代的、类似列表的对象集合。主要特点…

产品经理如何提高用户画像效果?SIKT模型

产品经理做用户画像,最担心被业务方反馈:没效果。这往往是由用户画像与业务场景脱节造成的。那么我们该如何从业务场景出发,让用户画像更有效?一般来说,我们可以采用SIKT模型解决这个问题。 用户画像 ​ 1、SIK…