DNNGP、DeepGS 和 DLGWAS模型构成对比

DNNGP、DeepGS 和 DLGWAS模型构成对比_第1张图片一、DNNGP

DNNGP、DeepGS 和 DLGWAS模型构成对比_第2张图片

DNNGP、DeepGS 和 DLGWAS模型构成对比_第3张图片

 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

DNNGP、DeepGS 和 DLGWAS模型构成对比_第4张图片DNNGP、DeepGS 和 DLGWAS模型构成对比_第5张图片

DNNGP、DeepGS 和 DLGWAS模型构成对比_第6张图片 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

DNNGP、DeepGS 和 DLGWAS模型构成对比_第7张图片

DNNGP、DeepGS 和 DLGWAS模型构成对比_第8张图片

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

DNNGP、DeepGS 和 DLGWAS模型构成对比_第9张图片

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

根据以上信息,我们将三种基因型和一个缺失值使用 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. 特征标准化:标准化特征分布,可以一定程度抑制消失。综合使用这些方法,可以显著减轻深层神经网络中的梯度消失问题,使其更稳定有效地训练。

你可能感兴趣的:(python)