基于卷积神经网络的数据分类方法与流程

文档序号:17865831发布日期:2019-06-11 23:12阅读:1245来源:国知局

本发明属于人工智能领域,尤其涉及基于卷积神经网络的生物大数据的分类方法。



背景技术:

在当前大数据时代,生物医学方面的数据规模大、范围广,需要借助一些人工智能领域的机器学习方法来对大量的数据进行分析处理。生物医学领域的数据形式即有文本形式,也有图像等其他形式。卷积神经网络(cnn)作为传统机器学习方法之一,可用于图像或文本数据的分类处理,比如通过对糖尿病患者的各项数据进行分析,来判断一个新患者是否有糖尿病。

卷积神经网络由多个层组成,其中卷积层占最高比例,也是最耗时的层。在应用于分类的卷积神经网络中,为提高网络分类的准确度,常用的方法是增加卷积层的数目,然而这样会导致整个网络的训练时间和内存消耗增加。因此,减少神经网络的训练时间和内存消耗成为推动神经网络工业可用性的巨大推力。

卷积是分析数学中一种重要的运算。设f(x)、g(x)是r上的两个可积函数,作积分:

可以证明,对于几乎所有的x∈(-∞,∞),上述积分是存在的。这样,随着x的不同取值,这个积分就定义了一个新函数h(x),称为函数f(x)和g(x)的卷积,记为h(x)=f(x)*g(x)。在神经网络中对于输入图f(x)和滤波器g(x)来说,卷积计算是滤波器按照步长(stride)的大小在输入图上不断移动进行加权求和的过程,进行提取输入特征矩阵的特征信息,再对特征矩阵进行数据的计算,如图1所示。

近年来为加速神经网络的卷积层的计算速度,提出了多种卷积计算方案,如im2col(imagetocolumn)算法、fft算法和winograd算法等。大多数卷积算法采用了消耗内存,减少时间的方案,虽然提高了卷积的计算速度,但是增加了计算内存。因此,在卷积计算过程中如何在提高速度的同时减少内存消耗成为亟需解决的问题。



技术实现要素:

为了解决上述技术问题,本发明提供了一种基于卷积神经网络的数据分类方法,其具有分类速度快、内存占用量低的优点。该方法既可用于图像分类,也可以用于文本分类。

本发明提供了一种基于卷积神经网络的数据分类方法,包括:

s1:构建卷积神经网络,所述卷积神经网络包括至少一个卷积层,所述至少一个卷积层包括对特征矩阵进行分割压缩处理和对所生成的稀疏矩阵进行稀疏矩阵向量乘的步骤;

s2:对构建的卷积神经网络进行训练,得到训练好的卷积神经网络;

s3:将待分类数据输入到训练好的卷积神经网络中,输出待分类数据的分类结果。

根据本发明的一种实施方式,基于卷积神经网络的数据分类方法,包括:

s1:构建卷积神经网络,所述卷积神经网络包括至少一个卷积层,所述至少一个卷积层包括对特征矩阵进行分割压缩处理和对所生成的稀疏矩阵进行稀疏矩阵向量乘的步骤;

s2:对训练集数据集进行预处理,对数据进行统一化处理,使所有训练集数据形成维度一致的特征矩阵,将特征矩阵和数据分类标签导入卷积神经网络进行训练,得到训练好的卷积神经网络;

s3:将待分类数据进行统一化处理,形成维度一致的提取特征矩阵,将提取特征矩阵输入到训练好的卷积神经网络中,输出待分类数据的分类结果。

本发明的数据分类方法,可以应用于文本数据、图像数据等。

s2步骤中,对构建的卷积神经网络进行训练,首先,对数据进行统一化处理,使所有训练集数据(即样本数据)形成维度一致的特征矩阵。本步骤中,使所有输入数据的维度保持一致,便于网络进行数据处理。

s2步骤中,对构建的卷积神经网络进行训练,对训练集数据进行统一化处理,使所有训练集数据形成维度一致的特征矩阵,将特征矩阵和数据分类标签导入s1构建的卷积神经网络,对卷积神经网络进行训练,得到训练好的卷积神经网络。

s3中,对测试集数据(即待分类数据)进行统一化处理,形成维度一致的提取特征矩阵,将提取特征矩阵输入到训练好的卷积神经网络中,输出测试数据的分类结果。

s1中,卷积神经网络包括依次连接的输入层、卷积层、池化层、全连接层和输出层。

所述输入层的处理过程为:对输入数据进行预处理,检查特征矩阵的大小,对不符合设定大小的特征矩阵进行修改或丢弃。

本发明中,至少一个卷积层的处理过程包括如下步骤:①分割压缩过程:根据滤波器的宽度a和步长stride找到特征矩阵的子矩阵分割窗口,根据分割窗口对数据进行压缩处理;②稀疏矩阵向量乘:将①中所得到的压缩矩阵与向量化的滤波器进行稀疏矩阵向量乘得到卷积结果。

在现有的卷积计算方法中,通常使用滑动滤波器窗口的方式进行计算,按照步长stride的大小将滤波器在特征图上依次从左到右、从上到下移动并进行加权求和得到卷积结果。滑动窗口加权求和过程在算法实现中是复杂的,耗时的。发明人在实验中发现随着网络层数的增加,特征矩阵的稀疏度迅速增加(如图2所示,其中1#和2#曲线为前层稀疏度变化曲线变化,3#曲线为深层卷积层稀疏度变化曲线横轴表示迭代次数,数轴表示稀疏度)。本发明基于深度卷积神经网络特征图稀疏度大的特点先使用分割压缩的方法,减少在卷积计算过程中对于零值的乘法运算,然后再使用稀疏矩阵向量乘的方法代替窗口滑动加权求和的方法,相比于现有技术中的算法,本发明的算法实现过程更加简单,解决了在计算过程中对于零值计算,从而提高卷积的计算速度并减少了计算过程的内存消耗。

本发明中至少一个卷积层的处理过程包括:①将输入层输出的特征矩阵进行分割压缩处理,包括:确定子矩阵分割窗口,然后在特征矩阵内进行移动,每移动一次,就将子矩阵分割窗口内的子矩阵使用csr格式进行存储,使每个子矩阵对应一组预存储的csr格式的数组,将预存储的数组进行整合得到分割压缩后的完整的csr格式的数组;②将卷积层的滤波器转换为向量,将①中分割压缩后的每个数组与滤波器转换的向量进行乘积运算,得到最终的卷积结果(特征矩阵)。

上述分割压缩处理过程具体为:将上一层(输入层)输出的特征矩阵进行压缩处理;在压缩处理的过程中,根据滤波器的宽度a和步长stride找到特征矩阵的子矩阵分割窗口,子矩阵分割窗口的长为a,子矩阵分割窗口的宽为b;子矩阵分割窗口沿着特征矩阵的第一行从左到右移动,移动步长为stride;每移动一次,就将子矩阵分割窗口内的子矩阵使用csr(compressedrowstorage)格式进行存储;在当前行移动结束后,子矩阵分割窗口就开始下一行的移动,依旧是从左到右移动;子矩阵分割窗口移动过程中,子矩阵分割窗口始终处于特征矩阵的内部,直至子矩阵分割窗口在特征矩阵内滑动完毕;随着子矩阵分割窗口在特征矩阵上的滑动,子矩阵分割窗口将特征矩阵划分为若干个子矩阵,由于每个子矩阵对应着一组预存储的csr格式的数组,将预存储的数组进行整合得到分割压缩后的完整的csr格式的数组。上述稀疏矩阵向量乘具体过程为:将卷积层的滤波器转换为向量,将每个数组与滤波器转换的向量进行乘积运算,得到最终的卷积结果。

所述csr格式存储即为将矩阵的后续非零值放在连续的存储器位置中。假设有一个稀疏矩阵a,创建三个向量:一个用于存储非零值(data),另外两个用于存储标号信息(index,ptr)。所述data向量存储a矩阵的非零元素的值。所述index矢量存储data向量中数值在原矩阵中的行索引号,即满足data(k)=ai,j;index=j。所述ptr向量存储每一行开始的第一个非零元素在data中的索引号,也就是说如果data(k)=ai,j,那么ptr(i)≤k<ptr(i+1)。按照惯例定义ptr(n+1)=nnz+1,这里所描述的nnz是矩阵a中的非零值的个数,z表示矩阵的稀疏程度。这种方法的存储节省效果是非常明显的。不需要存储n2个元素,只需要存储2nnz+n+1个元素。

csr是一种稀疏矩阵存储格式,尚未被应用到卷积计算过程中。如果直接将其应用于卷积计算中,使用此格式存储计算将会形成多个csr格式的矩阵,使存储空间增大,而且需要操作多个矩阵向量乘法,增加了计算时间。本发明设计新的算法将分割后的非零值直接以csr格式存储,仅产生一个中间矩阵,减少了乘法次数,减少计算时间。

通常滤波器的宽度a通常设为特征矩阵宽度大小,高度b设为1。

所述池化层的处理过程为:对卷积层输出的特征矩阵(卷积结果)进行采样处理,在保留主要特征的基础上减少参数和计算量,防止过拟合,以提高模型泛化能力。

所述全连接层处理过程为:全连接层对于整个网络计算的结果起到“分类器”的作用,将计算的结果进行分类。

所述输出层过程为:利用分类器对于全连接层输出结果进行归一化得出每一类的结果的概率,并且根据此概率对数据进行分类。

本发明还提供了一种电子装置,该电子装置包括存储器和处理器,所述处理器在算法执行过程中包括分割压缩程序,该电子装置进行数据分类操作时包括如下步骤:

s1:构建卷积神经网络,所述卷积神经网络包括至少一个卷积层,所述至少一个卷积层包括对特征矩阵进行分割压缩处理和对所生成的稀疏矩阵进行稀疏矩阵向量乘的步骤;

s2:对构建的卷积神经网络进行训练,得到训练好的卷积神经网络;

s3:将待分类数据输入到训练好的卷积神经网络中,输出待分类数据的分类结果。

发明效果

由于传统的神经网络的特点,使用relu(rectifiedlinearunits)激活函数和网络剪枝算法使得在网络传递过程网络框架和特征矩阵值产生大量的零值。本发明提供了一种不同于传统卷积算法的分割压缩卷积算法,通过对卷积层的特征矩阵进行压缩处理,减少了神经网络的训练时间和内存消耗,进而减少了在计算过程中内存消耗和对于零值的计算。

附图说明

图1为传统的卷积技术过程示意图;

图2为lenet卷积神经网络框架中的三个卷积层的稀疏度变化曲线;

图3为分割存储示意图;

图4为稀疏矩阵向量乘示意图。

具体实施方式

以下的具体实施例对本发明进行了详细的描述,然而本发明并不限制于以下

实施例一

考虑了卷积神经网络的算法实现效率、性能、功耗等因素。结合图片分类实例,其具体实现步骤如下:1、首先下载cifar-10图像数据集;2、对图像的长宽进行预处理;3、将图片数据输入到搭建好的resnet-5卷积神经网络;4、数据进入卷积层后将图片数据进行多通道分割压缩处理,每个通道中具体的计算过程如下(具体单通道卷积层计算过程如图3和图4所示):将输出的特征矩阵进行压缩处理。在压缩处理的过程中,根据滤波器的宽度5和步长1找到特征矩阵的子矩阵分割窗口;子矩阵分割窗口的长为5,高度为5,子矩阵分割窗口的宽为32;子矩阵分割窗口沿着特征矩阵的第一行从左到右移动,移动步长为1;每移动一次,就将子矩阵分割窗口内的子矩阵使用csr(compressedrowstorage)格式进行存储;在当前行移动结束后,子矩阵分割窗口就开始下一行的移动,依旧是从左到右移动;子矩阵分割窗口移动过程中,子矩阵分割窗口始终处于特征矩阵的内部,直至子矩阵分割窗口在特征矩阵内滑动完毕,即移动26次;随着子矩阵分割窗口在特征矩阵上的滑动,子矩阵分割窗口将特征矩阵划分为若干个子矩阵,由于每个子矩阵对应着一组预存储的csr格式的数组,将预存储的数据进行整合得到分割压缩后的完整的csr格式的数组;将卷积层的滤波器转换为1*25的向量。然后进行稀疏矩阵向量乘运算得到最终的卷积计算结果;5、卷积运算结果再次传输到进行池化层计算;6、多次进行卷积层计算和池化层计算的处理;7、在实现完成最后池化层运算后,进行分类运算,分类运算用softmax运算完成数据分类计算;8、最后通过将分类运算的结果输出并进行分类。

实施例二

结合文本分类实例,其具体实现步骤如下:1、首先下载reuters-21578文本数据集;2、对文本信息进行预处理;3、将文本数据输入到搭建好的textcnn卷积神经网络;4、在数据处理层进行关联度计算形成关键词矩阵,进入卷积层后将关键词矩阵进行分割压缩处理,具体的计算过程如下(具体卷积层计算过程如图3和图4所示):将输出的特征矩阵进行压缩处理。在压缩处理的过程中,根据滤波器的宽度20,高度为3和步长1找到关键词特征矩阵的子矩阵分割窗口;子矩阵分割窗口的长为20,子矩阵分割窗口的宽为10;子矩阵分割窗口沿着关键词特征矩阵的第一行从上到下移动,移动步长为1;每移动一次,就将子矩阵分割窗口内的子矩阵使用csr(compressedrowstorage)格式进行存储;在当前行移动结束后,子矩阵分割窗口就开始下一行的移动,依旧是从左到右移动;子矩阵分割窗口移动过程中,子矩阵分割窗口始终处于特征矩阵的内部,直至子矩阵分割窗口在特征矩阵内滑动完毕,即移动10次;随着子矩阵分割窗口在特征矩阵上的滑动,子矩阵分割窗口将特征矩阵划分为若干个子矩阵,由于每个子矩阵对应着一组预存储的csr格式的数组,将预存储的数据进行整合得到分割压缩后的完整的csr格式的数组;将卷积层的滤波器转换为1*60的向量。然后进行稀疏矩阵向量乘运算得到最终的卷积计算结果;5、卷积运算结果再次传输到进行池化层计算;6、多次进行卷积层计算和池化层计算的处理;7、在实现完成最后池化层运算后,进行分类运算,分类运算用softmax运算完成数据分类计算;8、最后通过将分类运算的结果输出并进行分类。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1