本发明涉及深度学习算法技术领域,具体而言涉及一种基于稠密连接的深度神经网络结构改进方法。
背景技术:
随着计算机处理能力的大幅提升,深度学习算法技术的研究与发展得到快速发展。深度神经网络的层数越来越深,伴随着数据量越来越大,深度神经网络相比于传统的机器学习算法已经展现出了巨大的优势。
但是随着深度神经网络层数的提升,也出现了一些问题,比如,训练信号的传递越来越困难,梯度消失和梯度爆炸问题,学习训练过程变得缓慢且难以收敛。同时,传统的全连接神经网络结构不能增加更丰富的特征组合性,特征利用率低。因此目前亟需设计一种改进的神经网络结构,能有效解决层数较深的神经网络出现的上述问题,提高训练效率及算法的准确性。
技术实现要素:
本发明目的在于提供一种基于稠密连接的深度神经网络结构改进方法,包括:建立全连接深度神经网络,并确定全连接深度神经网络的层数、各层神经元个数以及参数,按顺序将全连接深度神经网络划分为大小适中的若干稠密连接块,实现各稠密连接块内部的稠密连接,将稠密连接块之间按照全连接方式组合成深度稠密神经网络。本方法通过引入稠密连接思想,改进了全连接深度神经网络结构,能够有效降低梯度问题,提高特征利用率,减少训练时间,提高训练准确性。
为达成上述目的,结合图1,本发明提出一种基于稠密连接的深度神经网络结构改进方法,所述方法包括:
S1:建立全连接深度神经网络,并确定全连接深度神经网络的层数、各层神经元个数以及参数。
S2:将全连接深度神经网络根据隐含层层数,按顺序划分为若干稠密连接块。
S3:按照稠密连接块中每一隐含层的输入由该稠密连接块中该层之前的所有隐含层输出共同作用,并且按先后顺序堆砌构成的原则,实现各稠密连接块内部的稠密连接,每个稠密连接块内部的连接方式相同。
S4:将各稠密连接块之间按顺序采用全连接方式组合成深度稠密神经网络。
本发明提出,所述全连接深度神经网络的参数包括各隐含层的参数和整个神经网络的超级参数,其中,各隐含层的参数包括keep_prop值、是否进行批处理,超级参数包括学习率、优化算法、dropout值。
优选的,在建立全连接深度神经网络时不需要确定全连接深度神经网络各层权重与偏置数值。
进一步的,步骤S2中,所述稠密连接块的划分原则包括:
(1)每个全连接深度神经网络隐含层只属于一个稠密连接块。
(2)稠密连接块大小由所包含的全连接深度神经网络的隐含层层数N确定,其中4<=N<=6。
进一步的,步骤S3中,所述按照稠密连接块中每一隐含层的输入由该稠密连接块中该层之前的所有隐含层输出共同作用,并且按先后顺序堆砌构成的原则,实现各稠密连接块内部的稠密连接的过程包括以下步骤:
S31:设稠密连接块的大小为N的,每一隐含层的神经元个数分别为、...、。
S32:确定第一隐含层与第二隐含层的权重与偏置数值,权重为*矩阵,偏置为*1矩阵,将第一隐含层的神经元各值与权重、偏置作用后得到第二隐含层各神经元值,保留该值用于后续叠加。
S33:确定第二隐含层与第三隐含层的权重与偏置数值,第三隐含层的输入是由第一隐含层与第二隐含层的输出堆砌构成,并且权重为【+】*矩阵,偏置为*1矩阵,将第一隐含层与第二隐含层的输出值与权重、偏置作用后得到第三隐含层各神经元值,保留该值用于后续叠加。
S34:按照前述方式重复确定每层隐含层的权重与偏置数值,并将该层之前所有隐含层的输出叠加作用,得到第N隐含层的各神经元值,作为该稠密连接块的最终输出。
最后,步骤S4中,所述将各稠密连接块之间按顺序采用全连接方式组合成深度稠密神经网络的过程包括以下步骤:
当前稠密连接块的第一层与上一稠密连接块的最后一层进行全连接组合,当前稠密连接块的最后一层与下一稠密连接块的第一层进行全连接组合。
基于前述方法,本发明还提及一种基于稠密连接的深度神经网络结构改进系统,所述系统包括以下模块:
(1)用于建立全连接深度神经网络,并确定全连接深度神经网络的层数、各层神经元个数以及参数的模块。
(2)用于将全连接深度神经网络根据隐含层层数,按顺序划分为若干稠密连接块的模块。
(3)用于按照稠密连接块中每一隐含层的输入由该稠密连接块中该层之前的所有隐含层输出共同作用,并且按先后顺序堆砌构成的原则,实现各稠密连接块内部的稠密连接的模块,每个稠密连接块内部的连接方式相同。
(4)用于将各稠密连接块之间按顺序采用全连接方式组合成深度稠密神经网络的模块。
以上本发明的技术方案,与现有相比,其显著的有益效果在于:
(1)通过引入稠密连接思想,改进传统的全连接深度神经网络结构,将稠密连接卷积神经网络与全连接神经网络相结合,一定程度上减轻了深度神经网络在层数较深时候的梯度消失问题。
(2)加强特征传播,鼓励特征重用。
(3)避免了过多神经元堆砌导致的参数量过大的问题,只需要较少的计算就能实现高性能,训练效率得到有效提升。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。另外,所要求保护的主题的所有组合都被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:
图1是本发明的一种基于稠密连接的深度神经网络结构改进方法流程图。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实施例。本公开的实施例不必定义在包括本发明的所有方面。应当理解,上面介绍的多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开的其他方面的任何适当组合来使用。
结合图1,本发明提及一种基于稠密连接的深度神经网络结构改进方法,其特征在于,所述方法包括:
S1:建立全连接深度神经网络,并确定全连接深度神经网络的层数、各层神经元个数以及参数。
在具体例子中,假设一全连接深度神经网络的层数为8,各层的神经元个数分别为2、3、4、5、6、7、8、1,后续步骤将以该全连接深度神经网络为对象进行稠密连接块划分、稠密连接块内的稠密连接以及稠密连接块之间的全连接。
进一步的,建立全连接深度神经网络时需要确定的参数包括各隐含层的参数和整个神经网络的超级参数。
其中,各隐含层的参数包括keep_prop值、是否进行批处理等。
整个神经网络的超级参数包括学习率、优化算法、dropout值等。
优选的,此时不需要确定全连接深度神经网络各层的权重与偏置数值,在后续实现稠密连接块内部的稠密连接步骤中再进行确定。
S2:将全连接深度神经网络根据隐含层层数,按顺序划分为若干稠密连接块。
为了防止出现过多神经元堆砌导致的参数量过大问题,不适合将整个全连接深度神经网络结构全部更改为稠密连接,本发明申请中将整个全连接深度神经网络结构划分为若干个稠密连接块,可以起到降低参数量的作用。
稠密连接块的划分原则按照:
(1)每个全连接深度神经网络隐含层只属于一个稠密连接块,即按照全连接神经网络的隐含层顺序划分,不得重复。
(2)稠密连接块大小由所包含的全连接深度神经网络的隐含层层数N确定,稠密连接块所包含的隐含层层数大小需适中,一般地说,4<=N<=6。
在上述具体例子中,全连接深度神经网络的层数为8,各层的神经元个数分别为2、3、4、5、6、7、8、1。此处可将该全连接深度神经网络划分为2个稠密连接块,第一个稠密连接块包括前面第一至四层神经网络,神经元个数为(2、3、4、5),第二个稠密连接块包括后面第五至八层神经网络,神经元个数为(6、7、8、1)。
S3:按照稠密连接块中每一隐含层的输入由该稠密连接块中该层之前的所有隐含层输出共同作用,并且按先后顺序堆砌构成的原则,实现各稠密连接块内部的稠密连接,每个稠密连接块内部的连接方式相同。
按照这种方式,稠密连接块中每一隐含层的输入不再仅仅是前面一层的输出,而是由之前所有隐含层的输出按照自上而下的顺序拼接构成。
假设一大小为N的稠密连接块,其内部每一隐含层的神经元个数分别为、...、,在该稠密连接块内部实现稠密连接的步骤可分解为:
S31:确定第一隐含层与第二隐含层的权重与偏置数值,权重为*矩阵,偏置为*1矩阵,将第一隐含层的神经元各值与权重、偏置作用后得到第二隐含层各神经元值,保留该值用于后续叠加。
S32:确定第二隐含层与第三隐含层的权重与偏置数值,第三隐含层的输入是由第一隐含层与第二隐含层的输出堆砌构成,并且权重为【+】*矩阵,偏置为*1矩阵,将第一隐含层与第二隐含层的输出值与权重、偏置作用后得到第三隐含层各神经元值,保留该值用于后续叠加。
S33:重复确定每层隐含层的权重与偏置数值,并将该层之前所有隐含层的输出叠加作用,得到第N隐含层的各神经元值,作为该稠密连接块的最终输出。
以前例所述全连接深度神经网络的层数为8,各层的神经元个数分别为2、3、4、5、6、7、8、1为例说明。
对于包括第一层至第四层神经网络的第一稠密连接块,
(1)确定第一隐含层与第二隐含层的权重与偏置数值,权重为2*3矩阵,偏置为3*1矩阵,第二隐含层的输入由第一隐含层的输出决定,将第一隐含层的2个神经元各值与权重、偏置作用后得到第二隐含层各神经元值,保留该值用于后续叠加。
(2)确定第二隐含层与第三隐含层的权重与偏置数值,第三隐含层的输入是由第一隐含层与第二隐含层的输出堆砌构成,权重为(2+3)*4,也即5*4矩阵,偏置为4*1矩阵,将第一隐含层与第二隐含层的输出值与权重、偏置作用后得到第三隐含层各神经元值,保留该值用于后续叠加。
(3)确定第三隐含层与第四隐含层的权重与偏置数值,第四隐含层的输入是由第一隐含层与第二隐含层、第三隐含层的输出堆砌构成,权重为(2+3+4)*5,也即9*5矩阵,偏置为5*1矩阵,将第一隐含层与第二隐含层、第三隐含层的输出值与权重、偏置作用后得到第四隐含层各神经元值,该值作为第一稠密连接块的最终输出。
对于包括第五层至第八层神经网络的第二稠密连接块,
(1)确定第五隐含层与第六隐含层的权重与偏置数值,权重为6*7矩阵,偏置为7*1矩阵,第六隐含层的输入由第五隐含层的输出决定,将第五隐含层的6个神经元各值与权重、偏置作用后得到第六隐含层各神经元值,保留该值用于后续叠加。
(2)确定第六隐含层与第七隐含层的权重与偏置数值,第七隐含层的输入是由第五隐含层与第六隐含层的输出堆砌构成,权重为(6+7)*8,也即13*8矩阵,偏置为8*1矩阵,将第五隐含层与第六隐含层的输出值与权重、偏置作用后得到第七隐含层各神经元值,保留该值用于后续叠加。
(3)确定第七隐含层与第八隐含层的权重与偏置数值,第八隐含层的输入是由第五隐含层与第六隐含层、第七隐含层的输出堆砌构成,权重为(6+7+8)*1,也即21*1矩阵,偏置为1*1矩阵,将第五隐含层与第六隐含层、第七隐含层的输出值与权重、偏置作用后得到第八隐含层各神经元值,该值作为第二稠密连接块的最终输出。
S4:将各稠密连接块之间按顺序采用全连接方式组合成深度稠密神经网络。
在稠密连接块内部采用稠密连接方式,而为了防止出现过多的神经元堆砌导致的参数量过大问题,各个稠密连接块之间采用全连接方式组合,即当前稠密连接块的第一层与上一稠密连接块的最后一层进行全连接组合,当前稠密连接块的最后一层与下一稠密连接块的第一层进行全连接组合。
本方法通过引入稠密连接思想,改进了全连接深度神经网络结构,能够有效降低梯度问题,提高特征利用率,减少训练时间,提高训练准确性。在特定数据集上,本发明基于稠密连接的深度神经网络比传统的全连接深度神经网络获得了6倍以上的效果。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。