本发明涉及机器视觉技术领域,具体涉及一种基于优化kpca(核主成分分析)算法的神经网络图像分类识别方法。
背景技术:
近年来,随着人工智能热潮的发展,深度学习技术已经广泛地应用于语音识别,自然语言处理,计算机视觉等多个领域,并且取得了巨大的成功,图像分类识别作为计算机视觉领域技术的一部分,其重要性已不言而喻,从近年来大火的人脸识别技术到动植物图像,再到微生物图像,深度学习在图像分类识别领域正在不断扩展、突破。
对于图像分类识别技术,应用最广泛地还是卷积神经网络。卷积神经网络(constitutionalneuralnetworks,cnn)是在多层神经网络的基础上发展起来的针对图像分类和识别而特别设计的一种深度学习方法,其过程主要包括:卷积层、池化层和全连接层等等。卷积层主要对图像进行特征提取,卷积的过程实质上就是滤波,特征的提取则可看成是匹配滤波。卷积核初始化的目的是为了增大cnn网络训练中权值矩阵(卷积核,卷积层的可训练权值被称为卷积核)与训练样本之间的关联,从而提高全连接层的分类效果。
常用的卷积核初始化方法有gaussian、pca、kpca算法等。kpca算法在降维的过程中,利用所有图像矩阵投影到高维度空间,通过协方差矩阵进行特征值和特征向量求解,导致kpca整个过程计算相当复杂。为了得到更高的精确度以及避免过拟合等现象的发生,神经网络在训练时,通常需要大规模的数据集,利用kpca算法极易发生“维度灾难”,且得到的主特征方向及其正交后的第二特征方向也并不一定是最优的,其中的一些特征向量值更不是我们所需要的,反而增加了网络的负担;同时kpca算法基本保持了传统pca噪声的敏感性弱点,即对图像噪声(如高斯噪声)过于敏感,导致模型的鲁棒性不够强,进而影响图像分类识别在实际应用中的效果。
针对以上问题,kpca算法怎样缓解噪声敏感性、降低计算复杂度并进行有效地特征选择从而提高网络模型对图像分类识别的精确度显得尤为重要,且目前尚未发现有针对此些问题的方法及文章刊载出现。
技术实现要素:
本发明旨在解决将卷积神经网络用于图像分类识别时,利用现有kpca算法进行卷积核初始化运算所导致的分类识别效果不理想的问题,提供一种基于优化kpca算法的神经网络图像分类识别方法。
为解决上述问题,本发明是通过以下技术方案实现的:
基于优化kpca算法的神经网络图像分类识别方法,包括步骤如下:
步骤1、将给定的图像分为训练集和测试集;
步骤2、将训练集送入基于卷积神经网络的图像分类识别模型中对其进行训练,得到训练好的图像分类识别模型;
步骤3、将测试集送入到训练好的图像分类识别模型中对其进行测试:如果满足测试要求,则将训练好的图像分类识别模型作为最终图像分类识别模型,并转至步骤4;否则,返回步骤2;
步骤4、利用最终图像分类识别模型对输入的图像进行分类识别;
其不同之处是,在步骤2利用训练集对基于神经网络的图像分类识别模型进行训练的过程中,采用优化kpca算法对基于神经网络的图像分类识别模型的各层卷积层分别进行卷积核初始化,即:
步骤2.1、将送入到当前卷积层中的图像进行图像到矩阵的转换和排列,得到图像特征矩阵;
步骤2.2、将提取到的图像特征矩阵通过当前卷积层的核函数映射到高维度空间;
步骤2.3、在高维度空间,先计算每2个列向量之间的余弦相似度,并从中选出在预设范围内的余弦相似度,再将所选出的每个余弦相似度所对应的2个列向量都提取出来作为价值列,并将所有的价值列组成新的空间矩阵;
步骤2.4、对新的空间矩阵做矩阵秩最小化处理,并将得到的空间矩阵的低秩矩阵作去均值处理后组成协方差矩阵;
步骤2.5、先对协方差矩阵进行奇异值分解得到特征值和其对应的特征向量,再将得到的特征向量按照其特征值的大小进行从大到小排列,并从中选取前k个特征向量作为神经网络的当前卷积层的卷积核的权重值;其中k等于当前卷积层的卷积核的的权重值大小。
上述步骤2.3中,预设的余弦相似度的范围为[-0.5,0.5]。
与现有技术相比,本发明提出在高维度空间计算不同向量的余弦相似度,再利用矩阵秩最小化对kpca算法的原矩阵进行降维处理,最大程度的保留了原始数据的有效信息,提取更好的特征向量作为卷积层的权重值,解决了原kpca算法用于卷积神经网络图像分类预测时,卷积核初始化计算复杂,容易造成“维度灾难”,提取不到可靠特征,导致整个网络难以训练,以及网络架构对图像噪声敏感性的问题,从而提高了整个网络模型的鲁棒性和预测性能,并最终提升图像分类识别的效果。
附图说明
图1是一种卷积神经网络的架构图。
图2是原kpca算法用于卷积核初始化的类激活热力图。
图3是优化后的kpca算法用于卷积核初始化的类激活热力图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,对本发明进一步详细说明。
本发明提出一种基于优化kpca算法的神经网络图像分类识别方法,包括步骤如下:
步骤1、将给定的图像分为训练集和测试集。
为使cnn达到良好的分类效果,选取合适数量的数字成像图片,这些图片根据实际需要选择是否进行预处理(如图片分辨率统一大小等)操作,并将预处理后的图像分为训练集和测试集。
步骤2、将训练集送入基于神经网络的图像分类识别模型中对其进行训练,得到训练好的图像分类识别模型。
在本发明中,基于卷积神经网络的图像分类识别模型的结构并非本发明的主要关注点,其只要是基于卷积神经网络所设计的图像分类识别模型均可,如图1所示的一种卷积神经网络的架构图。为了解决现有kpca算法在卷积神经网络用于图像分类识别中进行卷积核初始化运算时,求解图像样本特征向量计算复杂,容易造成信息冗余,有价值的图像特征信息无法有效利用,且对图像噪声表现出较强的敏感性,造成网络模型鲁棒性以及预测性能较差的问题,本发明在现有kpca算法的基础上设计了优化kpca算法对基于神经网络的图像分类识别模型的各层卷积层进行卷积核初始化,即:
步骤2.1、将送入到当前卷积层中的图像进行图像到矩阵的转换和排列,得到图像特征矩阵;
步骤2.2、将提取到的图像特征矩阵通过核函数映射到高维度空间;
步骤2.3、在高维度空间,先计算每2个列向量之间的余弦相似度,并从中选出在预设范围(如[-0.5,0.5])内的余弦相似度,再将所选出的每个余弦相似度所对应的2个列向量都提取出来作为价值列,并将所有的价值列组成新的空间矩阵;
步骤2.4、对新的空间矩阵做矩阵秩最小化处理,并将得到的空间矩阵的低秩矩阵作去均值处理后组成协方差矩阵;
步骤2.5、先对协方差矩阵进行奇异值分解(svd)得到特征值和其对应的特征向量,再将得到的特征向量按照其特征值的大小进行从大到小排列,并从中选取前k个特征向量作为神经网络的当前卷积层的卷积核的权重值。其中k为设定的大于1的正整数,k的取值大小与当前卷积层的卷积核的权重值大小有关,不同的卷积层的k的取值不一定相同。如当前卷积层大小是5*5,则当前卷积层的k=5;如当前卷积层大小是3*3,则当前卷积层的k=3。
在训练过程中,利用卷积神经网络的卷积层对输入的图像进行采样,得到特征向量;通过核函数(kernel)的方法将特征向量映射到高维度空间,对不同方向的列向量间计算其余弦相似度,提取结果在[-0.5,0.5]范围内的列向量作为“价值列”,对其作矩阵秩最小化处理,再减去其均值,使样本点随机分布在四个象限,从而削弱图像数据的相关性;利用svd分解计算特征值和特征向量,将得到的特征向量矩阵作为卷积神经网络卷积层的权重值,继而再进行卷积神经网络的训练。
图像在经过卷积层的特征提取后进入下采样层即池化层,最大值池化将图像特征矩阵分区域,选择每个区域的最大值作为池化后的值,在反向传播过程中,梯度通过前向过程时的最大值反向传播,其他位置的梯度为0;全连接层整合卷积层和池化层中具有类别区分性的信息,采用交叉熵损失函数来刻画期望概率与输出概率之间的分布距离,从而实现反向传播算法权重优化的过程,进而得出图像分类识别概率值,为了使图像矩阵少量的负输入值进入到网络进行分类训练,每个神经元的激励函数采用prelu函数;全连接层的输出概率值传递给output,通过softmax(softmaxregression)s型函数(这一层通常也被称为softmax层)转换成最终图像分类结果,即类别标签0/1,在图像分类识别二分类中,“1”代表“正类别”,“0”代表“反类别”。
步骤3、将测试集送入到训练好的图像分类识别模型中对其进行测试:如果满足测试要求,则将训练好的图像分类识别模型作为最终图像分类识别模型,并转至步骤4;否则,返回步骤2。
在本发明中,训练好的图像分类识别模型在测试集上通过三折交叉验证方法验证其效果。
步骤4、利用最终图像分类识别模型对输入的图像进行分类识别。
下面通过一个具体实例对本发明的性能进行说明:
数据选用头颈癌pet医学图像,为避免增加神经网络多余的计算量,对图像进行roi特征区域提取,只保留图像最有用的信息部分,并规范化图像大小,统一定为128*128。三层卷积层卷积核的大小分别为5*5、3*3、3*3。
将处理好的图像输入到网络中,为numpy结构的二维矩阵(灰度图)或三维矩阵(rbg真彩图),转换为一维向量并排列,样本图像表现形式为x=[x1,x2,x3…xi]is*it,i=1,2,...,n,s*t为二维或三维矩阵的行和列。在低维度空间中非线性可分的图像数据,映射到高维度空间后可变成线性可分。通过核函数k(kernelfunction)可以得到低维数据映射到高维后的内积,公式如下:
式中,φ是从低维到高维的映射,
利用余弦相似度计算不同方向向量间的夹角余弦值来评估他们的相似度,可以筛选出具有相关性的特征向量,以此降低复杂的计算,避免了大量图像数据矩阵在高维度空间运算可能带来的“维度灾难”。在本发明中,计算不同列向量之间的余弦相似度公式可以总结为:
计算得出的similarity值范围在[-1,1]之间,取结果在[-0.5,0.5]范围内的不同方向列向量作为“价值列”组成一个新的空间矩阵ym×n。
一张包含完整信息并且足够清晰的图像,它的矩阵可以理解为是低秩的,即包含较少的冗余信息(噪声)。但是,图像噪声却是不可避免的,例如常见的高斯噪声,是由于不良照明或者高温等原因引起的在拍摄过程中产生的噪声。kpca算法虽然是对pca算法做出了改良,但其仍保持了传统pca类算法对噪声的敏感性的缺点。将矩阵秩最小化用于已经简化后的由不同方向列向量组成的图像空间矩阵y,在线性代数中,这属于一个非凸的np难问题,所以转化为求解核范数最小化,以此得出y的低秩矩阵,从而可以降低模型对噪声的过于敏感,提高其鲁棒性,还能为后面的协方差矩阵特征值和特征向量求解即寻找主特征方向降低计算复杂度。
将矩阵y用矩阵秩最小化求解公式为:
式中,rank表示矩阵的秩,c是一个凸集。将矩阵秩最小化问题转换为核范数最小化:
式中,||y||*表示所有正奇异值之和,即核范数,
图像数据的每一维一般都是0-255之间的数字,样本点只会落在第一象限,导致梯度下降算法迭代过程速度变慢。将高维度空间的每一个样本点均减去其平均值,可使样本点分散在四个象限内,从而提高求解速率,同时去除图像样本点间的相关性。
yi={y1,y2......yr}求解协方差矩阵:
用svd求协方差矩阵的特征值和特征向量,公式如下:
式中,λi即为所求的特征值;q为特征矩阵。
求特征值对应的特征向量,将得到的有限数量个特征向量按照对应的特征值的大小按降序排序,根据卷积核的需求,取前k个特征向量作为卷积神经网络的第m层卷积层卷积核的权重值。
用于特征提取的类激活热力图来自第一层卷积层,卷积层后面都交叉使用一层最大池化层,大小为4*4,网络前向传播过程中,选择4*4划分的四块区域矩阵中的最大值构成一个2*2矩阵,作为该区域池化后的值;在网络后向传播过程中,梯度通过前向过程时的最大值反向传播,其他位置的梯度为0,同时,最大池化层有效保证了图像特征的位置不变性。
全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来,而与之相匹配的dropout层可以降低过拟合风险。我们摒弃使用常见的均方误差损失函数,采用交叉熵损失函数来刻画两个概率分布向量之间的距离(交叉熵判断输出概率与期望概率的接近程度,完成反向传播过程中的权重优化)。因为在卷积核初始化中作了“去均值”处理,所以为了使图像矩阵少量的负输入值进入到网络进行分类训练,选择使用prelu函数作为激活函数。全连接层的输出概率值传递给output,通过softmax(softmaxregression)s型函数(这一层通常也被称为softmax层)进行图像分类识别最终输出分类结果,类别标签为0/1,所以输出结果呈现形式为0/1,就该头颈癌pet图像数远端转移分类识别来说,发生远端转移的类别标签为1,不发生远端转移的类别标签为0,将训练好的网络模型保存,在测试集上通过三折交叉验证方法验证其效果。
将头颈癌pet图像测试集输入到训练好的模型中进行是否发生远端转移的分类识别,三折交叉验证方法下的准确率及特异性等如下表所示:
从表中可以看到,在使用优化后的kpca算法后,卷积神经网络的敏感性、特异性、acc都有了明显提高,并且通过三折交叉验证,证明了模型的稳定性也得到了明显改善,说明本发明有效提高了卷积神经网络模型在图像分类识别作用上的鲁棒性和预测性能。从图2和图3类激活热力图中也可以看出,优化后的kpca算法使网络模型分类判断不在只侧重于边缘特征,对于医学图像来说,roi肿瘤区域大面积的纹理特征、灰度特征等同样至关重要。
需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。
1.基于优化kpca算法的神经网络图像分类识别方法,包括步骤如下:
步骤1、将给定的图像分为训练集和测试集;
步骤2、将训练集送入基于卷积神经网络的图像分类识别模型中对其进行训练,得到训练好的图像分类识别模型;
步骤3、将测试集送入到训练好的图像分类识别模型中对其进行测试:如果满足测试要求,则将训练好的图像分类识别模型作为最终图像分类识别模型,并转至步骤4;否则,返回步骤2;
步骤4、利用最终图像分类识别模型对输入的图像进行分类识别;
其特征是,在步骤2利用训练集对基于神经网络的图像分类识别模型进行训练的过程中,采用优化kpca算法对基于神经网络的图像分类识别模型的各层卷积层分别进行卷积核初始化,即:
步骤2.1、将送入到当前卷积层中的图像进行图像到矩阵的转换和排列,得到图像特征矩阵;
步骤2.2、将提取到的图像特征矩阵通过当前卷积层的核函数映射到高维度空间;
步骤2.3、在高维度空间,先计算每2个列向量之间的余弦相似度,并从中选出在预设范围内的余弦相似度,再将所选出的每个余弦相似度所对应的2个列向量都提取出来作为价值列,并将所有的价值列组成新的空间矩阵;
步骤2.4、对新的空间矩阵做矩阵秩最小化处理,并将得到的空间矩阵的低秩矩阵作去均值处理后组成协方差矩阵;
步骤2.5、先对协方差矩阵进行奇异值分解得到特征值和其对应的特征向量,再将得到的特征向量按照其特征值的大小进行从大到小排列,并从中选取前k个特征向量作为神经网络的当前卷积层的卷积核的权重值;其中k等于当前卷积层的卷积核的的权重值大小。
2.根据权利要求1所述的基于优化kpca算法的神经网络图像分类识别方法,其特征是,步骤2.3中,预设的余弦相似度的范围为[-0.5,0.5]。
技术总结