一种基于Laplace函数约束的稀疏深度置信网络图像分类方法与流程

文档序号:15933954发布日期:2018-11-14 02:05阅读:553来源:国知局

本发明涉及图像处理、深度学习领域,特别是涉及一种基于laplace函数约束的稀疏深度置信网络(laplacesparsedeepbeliefnetwork,lsdbn)图像分类方法。

背景技术

现有的图像分类主要是采用基于生成模型或者判别模型的方法,这些浅层结构模型存在一定的局限性,在样本有限的情况下复杂函数的表达能力有限,泛化能力受到一定的制约,致使模型分类效果下降;图像数据特征存在大量噪声和冗余信息,需要进行预处理,从而消耗大量时间和资源。因此优异的特征提取算法和分类模型是图像处理的一个重要研究方向。

近年来,深度学习迅速发展,hinton等人于2006年提出了深度置信网络(deepbeliefnetworks,dbn)以及无监督贪婪逐层训练算法,解决了深度神经网络易陷入局部最优的问题,引发了深度学习在学术界的新浪潮。dbn通过多层次的特征变换得到对于原始数据的抽象表示,从而提高分类和预测等任务的准确性,因dbn具有自动学习特征和数据降维的优势,已经成为深度学习应用最广泛的网络结构,目前,dbn在语音识别、图像分类、人脸识别等相关领域都取得了突破性的进展。

dbn所构建的图像分类算法可以集成学习各层次的特征表示,保留图像特征的空间信息,同时利用了dbn自动学习分类特征的优势,避免了传统提取特征算法较差的普适性。尽管dbn模型已经取得了令人鼓舞的成就,但是在训练过程中存在特征同质化现象,即存在大量的共有特征,导致隐含层单元的后验概率偏高,不能很好地学习到数据有用的特征表示,当隐含层单元数量过少时尤为突出。目前解决特征同质化现象的方法就是调节隐含层节点的稀疏性,降低连接权值列之间的相似度,即通过在网络中加入稀疏惩罚因子进行稀疏化。根据研究人类的视觉系统对于针对性的事物,只有少数神经元被激活。受到该研究的启发,研究者为了模拟视觉系统的稀疏表示(sparserepresentation)提出了稀疏编码理论。

稀疏表示在计算机视觉方向上被认为不受局部变形的影响,而且在学习稀疏表示的过程中,总是关注事物最重要的特征,因此可以丢弃冗余特征,降低过度拟合以及噪音污染的影响。所以,将稀疏性引入到受限玻尔兹曼机(restrictedboltzmannmachine,rbm)的训练过程来避免特征同质化现象,便是一个有意义的想法。目前学者们已经提出多种稀疏rbm模型来解决该问题,有学者试图将隐含层单元激活概率的l0正则化引入到rbm的似然函数中,但是求解l0正则化是一个np难问题;考虑到l1正则化是凸二次优化问题,有学者通过将隐单元激活概率的l1正则化引入rbm的似然函数,提出新颖的稀疏深层信念网络,hinton利用交叉熵的概念提出了交叉熵稀疏惩罚因子,使得隐单元具备整体稀疏性;lee等提出了基于误差平方和的稀疏rbm(sp-rbm);有学者提出基于率失真理论的稀疏rbm(sr-rbm),但是没有正确的方法得到sr-rbm失真度量。总之,对于dbn而言,利用rbm的变体就可以通过指定“稀疏目标”来达到二进制隐含单元的稀疏行为。但是这种方法需要事先设定“稀疏目标”,隐含层节点在某种状态下都具有相同的稀疏程度。



技术实现要素:

为了解决现有技术存在的问题,本发明提出一种基于laplace函数约束的稀疏深度置信网络图像分类方法。

本发明的技术方案:

一种基于laplace函数约束的稀疏深度置信网络图像分类方法,包括如下步骤:

步骤1、选取训练图像数据集,并进行图像预处理,得到训练数据集;

步骤2、将步骤1预处理后的训练数据集输入到lsdbn网络模型中,利用对比散度算法(contrastivedivergence,cd-k)无监督地自底向上单独训练每一层基于拉普拉斯函数约束的稀疏受限玻尔兹曼机(laplacesparserestrictedboltzmannmachine,ls-rbm)网络,使用下层ls-rbm网络的输出作为其邻近上一层ls-rbm网络的输入,通过迭代训练,得到每个ls-rbm网络的参数值,并最终获得所输入图像数据的高层次特征;所述的参数值即权值和偏置;

步骤3、将步骤2得到的参数值作为微调阶段的初始值,采用自顶向下的反向传播算法微调整个lsdbn网络,得到lsdbn网络模型;

步骤4、将测试图像数据集输入到步骤3得到的lsdbn网络模型中,并采用softmax分类器进行识别测试,最后输出图像分类结果。

所述步骤1具体为:通过二值化方法将彩色图像转变为灰度级图像,并把灰度级图像的灰度值归一化到[0,1]之间,得到训练数据集;其中归一化公式为:

其中,为图像数据集的特征值,xmax和xmin分别为图像数据集所有特征的最大值和最小值,x是经过归一化后的图像数据集。

所述步骤2具体为:

步骤2.1,构建lsdbn网络模型,设置lsdbn网络模型结构的参数值:可视层节点、隐层节点、隐含层层数、迭代次数和微调次数;其中,可视层节点为输入的图像集的特征维数,隐层节点根据输入图像集的特征维数大小确定;

步骤2.2,将预处理完的训练数据集x作为第一个ls-rbm的输入,采用cd算法对ls-rbm进行训练;

(1)可视层和隐藏层之间的关系用能量函数表示为:

其中,θ表示模型中的参数,即θ={wij,ai,bj};wij是可见层和隐藏层之间的权重矩阵,ai为可见层节点的偏置,bj为隐藏层节点的偏置,i为输入的图像的特征数量,即可视层节点,共有n个;j为隐含层节点,共有m个;vi表示第i个可视层节点,hj表示第j个隐含层节点;

(2)基于能量函数公式(2),得到rbm中v和h的联合概率分布为:

其中,z(θ)是对所有可能的可见层节点和隐含层节点对求和,ai为可见层节点的偏置,bj为隐藏层节点的偏置;

利用贝叶斯公式的原理,根据公式(3)的联合概率分布分别求出可视层单元v和隐含层h的边缘概率分布:

利用贝叶斯公式原理以及sigmoid激活函数的定义公式,推导出可视层单元v和隐含层h的条件概率分布公式:

其中,σ(·)为sigmoid激活函数,即神经元的非线性映射函数;

利用公式(7)和公式(8),使用对比散度算法经过一步吉布斯采样得到训练图像的近似重构p(v;θ);

(3)利用极大似然法求解p(v;θ),得到θ的最优值;ls-rbm的似然函数为:

参数的最优值为:

添加稀疏惩罚项后,ls-rbm预训练优化的目标函数为:

f=funsup+λfsparse(11)

其中,λ为稀疏性参数,用来调节fsparse的相对重要性,fsparse表示稀疏正则化函数,公式为:

其中,l(qj,μ,b)为拉普拉斯概率密度函数,qj表示所给数据第j个隐含层单元的条件期望的平均值,p是一个常数,控制n个隐单元hj的稀疏度;u表示尺度参数;qj表达式如下:

其中,e(·)是给定数据时第j个隐含层单元的条件期望,l表示训练图像的张数,m是训练图像数据集的数量,为第l张图片对应的隐含层的第j个单元,v(l)为第l张图片对应的可视层单元,是给出可见层v时,隐藏层单元hj的激活概率,g是sigmoid函数;

增加稀疏惩罚项后,训练ls-rbm的目的为求解公式(10)的目标函数最优值:

其中,p(v(l))为ls-rbm所要优化的似然函数,即可视层v的分布p(v;θ);

(4)使用梯度下降法对ls-rbm的目标函数求导来更新权重矩阵和隐含层的偏置,求导公式为:

将将求导后的参数值带入到参数θ的更新式中,得到新的参数值:

a(1):=ma+α(v1-v2)(26)

(5)用新的参数值继续训练网络,通过不断优化目标函数,使隐含层单元的激活概率逐渐接近给定的固定值p,学习到一组权重参数以及相应的偏置,通过这些合适的参数寻找到稀疏特征向量,控制图像中存在的冗余特征,用图像中主要的特征来组合学习权重以重构输入数据,完成第一个ls-rbm的训练以及相应的参数值θ的更新。

步骤2.3通过第一个ls-rbm训练好的w(1)和b(1),并使用p(h(1)|v(1),w(1),b(1))得到第二个ls-rbm的输入特征,使用步骤2.2中算法继续训练第二个ls-rbm;

步骤2.4递归的按照以上步骤训练直到训练到l-1层,多次循环迭代之后,得到一个深层次的稀疏dbn模型,即lsdbn网络模型;

步骤2.5对l层的w(l)和b(l)进行初始化,并使用{w(1),w(2),…,w(l)}和{b(1),b(2),…,b(l)}组成一个具有l层的深度神经网络,输出层为训练图像集的标签数据,使用softmax分类器作为输出层;

所述步骤3具体为:

步骤3.1,将步骤2中训练好的参数值θ作为微调阶段参数的初始值,输入微调阶段的lsdbn网络模型中;

步骤3.2,利用前向传播算法计算每个隐含层单元的激活值;

步骤3.3,计算出训练图像集前向传播的输出结果和该图像集对应标签的误差,将误差反向传播,计算每个隐含层单元的残差,来表示该单元对残差所产生的影响;利用每个单元的残差计算偏导数,每次迭代采用梯度下降法按照公式(28)、(29)对权重矩阵和偏置进行更新,直至达到最大迭代次数获得微调好的lsdbn网络模型;

其中,α为学习速率,j(w,b)是通过计算实际模型输出值和对应的标签值的误差得到的代价函数。

所述步骤4具体为:

步骤4.1,将预处理好的测试图像集输入到步骤3微调好的lsdbn网络模型中,提取测试图像的主要特征;

步骤4.2,将测试图像的主要特征输入到softmax分类器进中,输出属于某一类别的概率,对于一个k类的softmax分类器的输出为:

其中,x(i)为第i个测试图像,y(i)表示第i个测试图像的标签,p(y(i)=k|x(i);θ)表示第i个测试图像属于第k类的概率,是对概率分布进行归一化,使所有的概率之和为1;

步骤4.3,根据测试图像属于某一类的概率和该图像所对应的类别标签,计算分类准确率,最后输出图像的分类结果。

本发明的有益效果:为了使模型更具有解释和辨别能力,首先,在无监督阶段似然函数中引入惩罚正则项,使用cd训练最大化目标函数的同时,通过稀疏约束获得训练集的稀疏分布,可以使无标签数据学习到有用的低级特征表示,而且符合生物进化的能量最小经济策略。其次,提出一种基于拉普拉斯函数的稀疏深度信念网络,使用拉普拉斯分布诱导隐含层的稀疏状态,同时该分布中的尺度参数可以用来控制稀疏的力度,可以学习到更稀疏的表示,具有更强的特征提取能力。

附图说明

图1为本发明中lsdbn模型的图像分类方法流程图。

图2为本发明中ls-rbm在pendigits数据集上分类准确率结果。

图3为本发明中lsdbn在pendigits数据集上分类准确率结果。

具体实施方式

以下结合附图和技术方案,进一步说明本发明的具体实施方式。

实施例1:

如图1所示,一种基于laplace函数约束的稀疏深度置信网络图像分类方法,具体步骤如下:

步骤1、选取合适的训练图像数据集,并对其进行图像预处理,得到训练数据集。

由于图像分类重在特征提取过程,因此通过二值化将彩色图像转变为灰度级图像,并把灰度值归一化到[0,1]之间,这样只需对一个二维的灰度级矩阵进行特征提取。具体归一化公式如下:

其中,为图像数据集的特征值,xmax和xmin分别为图像数据集所有特征的最大值和最小值,x是经过归一化后的图像数据集。

步骤2、将预处理好的训练数据集用于lsdbn网络模型的预训练。根据输入的训练数据集对网络进行预训练,选用对比散度(contrastivedivergence,cd-k)算法无监督的自底向上单独训练每一层ls-rbm,使用底层的ls-rbm的输出作为高层ls-rbm输入,迭代训练,得到相应的权值和偏置,最终获得数据的高层次特征。具有过程如下:

步骤2.1,构建lsdbn网络模型,设置lsdbn网络模型结构的参数值:可视层节点即为输入数据集的特征维数,隐层节点根据不同数据集的特征维数大小进行设置,隐含层层数设置为2,迭代次数为100,微调次数为100,以便取得更好的收敛结果。

步骤2.2,将预处理好的训练数据集作为第一个ls-rbm的输入,采用cd算法对ls-rbm进行训练。

(1)由于rbm是基于能量的模型,可视层和隐藏层之间的关系可以使用能量函数表示为:

其中:θ表示模型中的参数,即θ={wij,ai,bj};wij是可见层和隐藏层之间的权重矩阵,ai为可见层节点的偏置,bj为隐藏层节点的偏置,i为输入的图像的特征数量,即可视层节点,共有n个;j为隐含层节点,共有m个;vi表示第i个可视层节点,hj表示第j个隐含层节点。

(2)根据能量函数式(2)可知,每一组可见层节点和隐含层节点的取值都有一个相应的能量值。当所有参数确定时,根据能量函数的定义及热力学统计的原理,定义rbm中v和h的联合概率分布为:

上式中,z(θ)是对所有可能的可见层节点和隐含层节点对求和得到。rbm模型所要学习的就是联合概率分布,即对象的生成。

进一步的,对于具体地问题,最关注是由rbm定义的关于观测数据v的概率分布,也就是p(v,h;θ)的边缘概率分布,该分布网络分配给可视单元的概率(训练数据)通过对所有可能的隐藏单元求和给出:

相应地,隐含层h的边缘概率分布为:

通过贝叶斯公式以及sigmoid的函数定义公式可以推导出可见层和隐含层的条件概率分布公式为:

(3)对于给定的训练样本,训练rbm模型意味着求出参数θ的值,使得在该参数下rbm能够极大地拟合训练样本。因此,通过极大似然法最大化rbm的对数似然函数p(v|θ),从而得到θ的最优值,即

假设给定一个训练集{v(1),...,v(m)},使用稀疏惩罚项的无监督预训练优化模型定义如下:

f=funsup+λfsparse(10)

其中,funsup表示rbm的似然函数,即公式(4-5)所示的λ为稀疏惩罚项参数,fsparse表示任意稀疏正则化函数。

基于统计学的理论来说,稀疏rbm的目的主要是使得隐含层节点大多数是零,换句话说就是隐含层单元的激活概率接近零。如果隐含层单元是稀疏的(隐含层单元在大多数时是不激活的),那么这个隐含层单元的特征仅被用来表示很小的一部分训练数据。

通过定义稀疏正则项来可以减少训练数据的平均激活概率,从而确保模型神经元(对应于随机变量hj)的“激活率”保持在相当低的水平,使得神经元的激活是稀疏的。这就要求隐含层单元的激活概率图像具备尖峰重尾的特点。

基于上述分析,受压缩感知理论的启发,本发明通过使用拉普拉斯函数惩罚来诱导隐含层单元的稀疏状态,该函数具有重尾特征,根据隐含层单元激活概率与固定值参数p的偏差具有不同行为。另外,还具有可以控制稀疏程度的尺度参数。

在概率和数理统计中,拉普拉斯分布是一种连续的分布,与正态分布相比较而言,具有更平坦的尾部。在求解稀疏解的过程中,大部分特征会逐渐趋向于函数的两边分布,也就是说更加接近于零。少数隐藏单元具有较高的激活概率,则会有一些隐藏单元被激活,经过训练这些被激活的隐藏单元可以表示数据的主要特征,更易实现模型的稀疏化特征表示。

增加稀疏正则化项后目标函数优化公式为:

拉普拉斯稀疏惩罚项定义如下:

式中,l(qj,μ,b)为拉普拉斯概率密度函数,qj表示所给数据第j个隐含层单元的条件期望的平均值,p是一个常数,控制n个隐单元hj的稀疏度,通过定义该参数的值,优化目标函数就是使隐含层节点的平均激活概率尽可能的接近p;u表示尺度参数,通过改变它的值可以用来控制稀疏力的程度。其中,qj表示如下:

公式中,e(·)是给定数据时第j个隐含层节点的条件期望,m是训练数据的数量,是给出可见层v时,隐藏层单元hj的激活概率,g是sigmoid函数。

进一步的,训练ls-rbm的目标函数如下所示::

上式中,第一项是对数似然函数项,第二项为稀疏惩罚项,其中λ为该项的参数,用来表示该项在目标函数中与数据分布之间的相对重要性。因此在最大化对数似然函数的同时也要最大化稀疏正则项求解。

(4)隐含层的偏置直接影响隐单元的稀疏度,因此只更新权重矩阵和隐含层的偏置。其中,稀疏正则化项的梯度计算如下:

其中,上式中第一项的项的求导结果如下式所示:

第二项展开如下所示:

其中,σj=∑iwijvi+bj表示隐藏单元j的输入。公式展开后的每一项求导如下所示:

对隐含层偏置求导可得:

将进行求导后的参数值带入到参数更新式中,得到新的参数值:

a:=ma+α(v1-v2)(26)

(5)更新参数值以后,新的参数值继续训练网络,通过不断优化目标函数,使隐含层节点的激活概率逐渐接近给定的固定值p,尝试学习到一组权重参数以及相应的偏置,通过这些合适的参数可以寻找到稀疏特征向量,控制冗余特征,用主要的特征来组合学习权重以重构输入数据,提高了算法对噪声的鲁棒性。由此,便训练好了第一个ls-rbm以及相应的参数值。

步骤2.3通过第一个ls-rbm训练好w(1)和b(1),以及使用p(h(1)|v(1),w(1),b(1))得到第二个ls-rbm的输入特征,使用步骤2.2中算法继续训练第二个ls-rbm;

步骤2.4递归的按照以上步骤直到训练到l-1层,最底层的ls-rbm训练好的参数和输出作为训练模型中下一个更高层“数据”,也就是下一个ls-rbm,多次循环迭代之后,可以学习到一个深层次的稀疏dbn模型,即lsdbn模型;

步骤2.5对l层的w(l)和b(l)进行初始化,并使用{w(1),w(2),…,w(l)}和{b(1),b(2),…,b(l)}组成一个具有l层的深度神经网络,输出层为有标签数据,使用softmax分类器作为输出层;

步骤3、进一步优化lsdbn。将预训练阶段得到参数值作为微调阶段的初始值,对整个lsdbn网络进行微调。本发明采用自顶向下的有监督学习算法-反向传播算法微调整个网络,即输入训练样本和测试数据进行训练,误差自顶向下反向传播,对网络进行优化。主要步骤如下:

步骤3.1,将预训练阶段训练好的网络参数作为微调阶段的初始值,输入训练样本到微调阶段的网络中进行优化。

步骤3.2,利用前向传播算法计算每层神经元的激活值。

步骤3.3,计算出训练图像集前向传播的输出结果和该图像集对应标签的误差,将误差反向传播,计算每个隐含层单元的残差,来表示该单元对残差所产生的影响;利用每个单元的残差计算偏导数,每次迭代采用梯度下降法按照公式(28)、(29)对权重矩阵和偏置进行更新,直至达到最大迭代次数获得微调好的lsdbn网络模型;

其中,α为学习速率,j(w,b)为网络的代价函数,通过计算实际输出值和目标值得到。反复使用梯度下降法的迭代步骤来减小的j(w,b)的值。

步骤4将测试图像数据集输入到步骤3训练好的lsdbn网络模型中,采用softmax分类器进行识别测试,实现图像分类结果的输出。为了进行图像分类,在网络的顶层使用分类器,输入测试数据进行测试分类。为了使得网络应用广泛,本发明使用softmax分类器进行分类,对于一个k类的分类器,输出为:

其中,θ是一个包括权值和偏置的参数矩阵,每一行看作是一个类别所对应分类器的参数,共k行。是对概率分布进行归一化,从而使所有的概率之和为1。因此,微调阶段的代价函数j(θ)为:

其中,1{·}是一个指示性函数,即1{值为真的表达式}=1,1{值为假的表达式}=0。

下面通过本发明提供的方法对mnist手写体数据库和pendigits手写体识别数据集进行检测。

实施例2:在mnist手写体数据库上的实验

mnist手写体数据集包括60000个训练样本和10000个测试样本,每个图片大小为28*28像素。为了方便图像特征的提取,本发明从60000个训练数据抽取每个类别的不同数量的图像进行实验分析。其中,模型包括784个可见层节点和500个隐含层节点,学习率设为1,分批块数大小为100,最大迭代次数为100,并使用步长为1的cd算法训练模型。

表1为本发明中在mnist数据集上稀疏性度量结果,并与其余两种稀疏模型进行对比分析。其中稀疏度度量方法如下式所示:

对于稀疏模型来说,稀疏度越高,算法稳定性越高,鲁棒性也越强。从表1中可以看出,与sp-rbm和sr-rbm相比,ls-rbm的稀疏度值更高,可以学习到更稀疏的表示。

表1在mnist数据集上稀疏性度量结果

表2为本发明中ls-rbm在mnist数据集上基于每类不同样本数量的分类准确率结果,并与人工神经网络(ann)、自动编码机(ae)、受限玻尔兹曼机(rbm)以及sr-rbm、sp-rbm方法进行对比分析。从表2可以看出,对于mnist数据集每类不同数量的样本,本发明ls-rbm方法始终处于最好的识别精度。尤其在每类1000个样本的情况下达到了96.8%的识别率,比次高的sr-rbm算法要高出3个百分点,也说明了本发明的方法具有更好特征提取能力。

表2ls-rbm在mnist数据集上分类准确率结果;

为了学习到深层次的特征,表3展示了本发明中lsdbn在mnist数据集上基于每类不同样本数量的分类准确率结果,并与dbn、以及sp-rbm、sr-rbm所组成的dbn、sp-dbn、sr-dbn进行对比分析。对于更深层次的稀疏模型,每增加一层就会提取到更抽象的特征,同样的也会有一些冗余特征的存在影响最终的分类效果,从表3很明显的可以看出,lsdbn更能学习到具有更易辨别力的特征,比次高的sp-dbn最多能提高3个百分点,说明lsdbn能对于冗余特征的干扰具有更好的鲁棒性。

表3lsdbn在mnist数据集上分类准确率结果

实施例3:在pendigits手写体识别数据集上的实验

pen-basedrecognitionofhandwrittendigits(pendigits)数据集包括10992个数据样本,分为10个类,其中训练数据7494个,测试数据3298个,每个样本16个特征向量,同样对每个类不同数量的图像进行分析。设置可见层节点16个,隐含层节点10个,学习率设为1,分批块数大小为100,最大迭代次数为1000。

图2展示了本发明中ls-rbm在pendigits手写体识别数据集上基于每类不同样本数量的分类准确率结果,可以看出,大多数算法在每类样本个数越多时,分类准确率也越来越高。ls-rbm算法在pendigits数据集上即使每类只有几十个数据样本,仍然达到最佳的分类准确率,本发明学习到的特征表示比sp-rbm和sr-rbm具有更好的辨别力。

为了学习到深层次的特征,在rbm,sp-rbm,sr-rbm和ls-rbm实验的基础上使用rbm隐含层单元的激活概率训练第二个rbm即dbn,sp-dbn,sr-dbn,ls-dbn,隐藏单元仍设为10,迭代次数各为1000。使用pendigits数据集测试集测试每个模型的分类准确率,结果如图3所示。观察可知本发明在样本较少的时候通过稀疏性约束仍然可以获取到其主要特征,比dbn模型分类精度提升2.7%~6%,证明了本文算法在低维度数据集的适用性。

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