本发明涉及模式识别和机器学习领域,具体涉及一种基于权值不确定性玻尔兹曼机的识别方法及系统。
背景技术
在概率图中,节点表示变量,边表示变量之间的依赖关系。按节点的连接方式,概率图可以分为有向图(beliefnets)和无向图(markovnets)两类,有向图可以清晰的表示节点间的条件概率,适合知识的推理。随着深度学习的兴起,深度置信网(deepbeliefnets,dbns)是最早提出的基于有向图的混合图模型。然而,解释消除(explain-away)现象很大程度上影响了有向图模型的解释能力。与有向图不同,马尔可夫网的概率分布是通过“势”(potential)定义的,此时节点之间的连接是无向的,因此不存在解释消除问题。在物理学背景中,马尔可夫网又叫做马尔可夫随机场(markovrandomfields,mrfs),节点之间通过势φ(v)相互关联,其中v是无向图的最大子图包含的节点。由此,mrfs的概率分布可以表达为:p(s)=z-1πiwiφi(vi),其中,z为归一化因子,用来确保概率分布函数的取值在0到1之间,势φ(v)可以有多种表达方式。为了方便表述和计算,mrfs的概率分布可以表达成指数族的形式:
技术实现要素:
为了更好的解决图像的识别问题,本发明提出一种基于权值不确定性玻尔兹曼机的识别方法及系统,避免了显式的提取特征,直接将数字化的图像像素作为输入,训练得到卷积深度置信网(cdbns)模型,选取神经网络最后一层的输出最为识别结果,有效的实现了图像的识别和重构过程。
本发明是通过以下方案实现的:
本发明涉及一种基于深度学习的图像识别方法,通过构建带标签的训练集作为样本集对卷积深度置信网进行训练,并将训练好的卷积神经网络处理待识别的图片,最后根据神经网络的输出向量判断识别结果。
本发明具体步骤如下:
步骤1:简单的预处理训练集并将像素点作为输入:首先将图像数据集进行分batch,每一个小的batch包括100个样本,然后把灰度图像归一化、并重新调节大小为28*28;
步骤2:构造深度学习模型:该网络包括:输入层、4个隐藏层和一个输出层,其中:输入层的数据是预处理完的图像像素点,是28*28像素点构成的矩阵,其中:输入层是2维的图像像素矩阵,由卷积层池化层交替连接,最终使用一个全连接层将二维数据转化为1维,每一层有32个卷积核,每一个卷积核尺寸为5*5,池化层采用最大池化方法,输出层设置为10个节点,该模型结构称为卷积深度置信网(cdbns);
步骤3:训练深度神经网络,首先初始化网络的权值,进行预训练过程,在预训练中,我们引入了权值不确定性(weightuncertainty)方法来缓解crbm模型中的过拟合问题,先引入卷积和概率最大池化方法训练受限制的玻尔兹曼机,得到卷积受限制的玻尔兹曼机(crbms)模型,然后使用weightuncertainty方法来训练crbms,以缓解过拟合问题。接下来,将crbms堆叠成一个卷积深度置信网(cdbns)模型;最后,结合bp反向传播算法或wake-sleep算法调整权重和偏置,具体过程如下:
步骤3.1:对网络初始化:对权值和偏置进行随机初始化;
步骤3.2:将训练样本和标签集导入初始化好的网络进行预训练,首先引入weightuncertainty方法训练crbms,然后使用weightuncertainty方法来训练cdbns;
步骤3.3:将实际输出与标签进行对比,得到误差,将cdbns作为神经网络,利用weightuncertaintybp算法或wake-sleep算法进行微调,得到训练好的神经网络模型。
步骤4:图像识别系统,将获取的与训练数据相关的图片转化为灰度图,调整分辨率为28*28,进行归一化处理后,然后将其输入到训练好的cdbns,最终得到识别结果。
通过以上内容可知,本申请提供的是一种基于权值不确定性玻尔兹曼机的识别方法及系统,首先制作根据实际需要制作训练集和标签,然后设计网络的层数等参数,之后进行预训练,然后利用weightuncertaintybp算法或wake-sleep算法完成对网络权重和偏置的调整,最后把预处理后的输入图像输入神经网络,完成对图像的识别。本申请通过神经网络识别与cifar-10数据集相关的图像,避免了显示的特征提取,直接将图片作为网络的输入,识别准确率高;且网络一经训练即可反复使用,处理效率高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请所使用的crbms模型的训练示意图。
图2为本申请所使用的cdbns网络结构示意图。
图3为本申请所使用的系统的信号传递流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
实施例1
本实施例包括以下步骤:
步骤1:图片预处理:
步骤1.1:获取cifar-10数据集,将图像转化为灰度图像;
步骤1.2:把步骤1.1所得到的图像归一化为28*28大小,并保存在训练集中,然后根据训练集制作相应的标签集,10*1的矩阵代表一个图像的标签。
步骤2:构建cdbns深度模型:
本实施例中采用的cdbns模型是一个多层的神经网络,由输入层、中间层和输出层等多层组成,每层由多个节点单元组成。构造如图2所示的多层神经网络,包括输入层,4个隐藏层和1个输出层,每一层由于都是一种概率图模型,由图1所示的crbms模型组成;
步骤3:训练卷积神经网络:
步骤3.1:用不同的小随机数(0-1之间)对可训练参数初始化,对偏置初始化为0;
步骤3.2:对网络进行预训练网络模型的激活概率公式可以表示如下:
其中,h表示隐藏层单元,v表示可见层单元,w表示权值矩阵,b表示偏置,p表示池化层单元,*表示卷积操作。
然后引入weightuncertainty算法,这样,导数的计算改为如下形式:
根据上述公式,完成cdbns的预训练过程,得到神经网络模型。
步骤3.3:计算残差,结合反向传播bp算法或wake-sleep算法更新可调整参数和偏置,完成对cdbns的整个训练过程。
步骤4:图像识别:
步骤4.1:获取与cifar-10相关的图像,调整分辨率,进行灰度化,归一化预处理;
步骤4.2:得到预处理之后的图片,输入到已经训练好的cdbns网络中,等待输出,取输出向量最大值得行号为识别结果,即完成对图像的识别。