掌桥专利:专业的专利平台
掌桥专利
首页

一种基于连续吸引子网络的连续图像序列识别方法

文献发布时间:2023-06-19 09:49:27


一种基于连续吸引子网络的连续图像序列识别方法

技术领域

本发明属于深度学习应用技术领域,具体提供一种基于连续吸引子网络的连续图像序列识别方法。

背景技术

图像识别技术在诸多领域发挥着重要作用,广泛应用在机器视觉、医学影像、遥感图像以及智能交通等多个领域,就本发明所涉及的手写体数字序列的识别的研究领域也归属于图像识别技术。手写体数字序列识别在人们的日常生活中应用颇广,具有一定的研究意义;相比单个图像记忆,图像序列识别的研究发展得比较晚,取得的成果较少,对网络设计和连接学习算法都提出了巨大的挑战。

深度学习(Deep learning)是类脑人工智能发展至今最成功的案例,深度学习直接把大量的数据投放到算法中,系统就会自动利用这些数据学习、研究。深度学习中的“训练”与“预测”过程对应于人类大脑的“归纳”和“推测”过程,要真正实现强人工智能,必须借鉴人脑的结构和学习思维模式,通过深度学习这样的方法进行模拟,通过仿生学思路实现人工智能的突破。虽然深度学习已经表现出了极强的机器学习能力,在诸如语音识别和视觉物体识别等很多难题上都有着优秀的性能,但是已有的深度网络在解决图像序列识别上仍有很大的发展空间。

2000年,Seung等人在《Science》上发表文章,提出感知以流形方式存在这一观点;他们指出在记忆过程中,高维信息一般存在于一个被叫做连续吸引子(ContinuousAttractor)的低维流形上,人脑很大程度上就是通过这种低维流形来记忆各种事物的。如果把人对外界的感知表示为高维空间中的点集,那么这些感知输入之间的统计相关性在几何学上则表现为数据点散布在低维光滑流形上,或在低维光滑流形附近。研究和模拟人将外界信息转换为连续吸引子的能力,从有限高维样本数据中学习到潜在的低维连续吸引子流形结构,成为当前机器学习研究的热点问题。连续吸引子不仅可以处理离散记忆信息,还可以处理连续记忆信息;连续吸引子是稳定平衡点的连通点集,具有连续吸引子的网络被命名为连续吸引子网络,这种网络已经引起了人们广泛的兴趣,它是以强烈的生物背景为基础而产生的神经网络计算方式。连续吸引子已被成功用于描述连续变量(如物体朝向、运动方向、空间位置信息等)在大脑中的存储和表达。

基于此,本发明提供一种基于连续吸引子网络的连续图像序列识别方法。

发明内容

本发明的目的在于针对现有图像序列识别存在的缺陷,提供一种基于连续吸引子网络的连续图像序列识别方法,利用深度学习理论和连续吸引子网络完成对于多个连续变化的图像序列的识别,且能够实现图像降噪、缺失恢复、特征提取的功能。

为实现上述目的,本发明采用的技术方案为:

一种基于连续吸引子网络的连续图像序列识别方法,包括以下步骤:

步骤1、构建训练集;

步骤1.1.采用现有手写数字数据集作为原始数据集,并对原始数据集中每一张原始图像分别做添加噪声、添加缺失、旋转操作,对应得到噪音图像、缺损图像、旋转图像;

步骤1.2.对每一张噪音图像、缺损图像及旋转图像进行相同的图像向量化、图像中心化的数据预处理,预处理后所有图像构成训练集,训练集中每个训练样本为包括样本图像及其真实标签;

步骤2、构建连续吸引子网络模型;

所述连续吸引子网络模型包括变分自编码器与MLP判断两部分;

所述变分自编码器部分由6层神经网络构成;其中,第一层为图像输入层;第二层为维数为256、激活函数为relu函数的全连接层;第三层为两组互相独立的神经元,第一组神经元输出隐变量后验分布的均值估计,第二组神经元输出隐变量后验分布的方差估计,每组神经元的维数设置为12维、激活函数采用relu函数;第四层为重参数层;第五层为维数为256、激活函数为relu函数的全连接层;第六层为图像输出层,维数设置为与样本图像维数相同、激活函数采用sigmoid函数,输出重构图像;

所述MLP判断部分由3层神经网络构成;其中,第一层为维数为20、激活函数为relu函数的全连接层,连接所述变分自编码器的第三层中的第一组神经元;第二层为维数为62、激活函数为relu函数的全连接层;第三层为标签输出层,维数设置为与真实标签维度相同,激活函数采用sigmoid函数,输出预测标签;

步骤3、训练连续吸引子网络模型;

步骤3.1.变分自编码器部分:

设置损失函数由重构误差与额外误差相加构成;其中,所述重构误差为:

其中,

所述额外误差为:

其中,μ(x

采用RMSProp优化器对变分自编码器部分进行误差反传训练,当训练批次达到预设阈值时结束训练;

步骤3.2.MLP判断部分:

设置损失函数为:

其中,y

待变分自编码器部分训练完成后,采用Adam优化器对MLP判断部分进行训练,当训练批次达到预设阈值时结束训练,即完成连续吸引子网络模型训练;

步骤4.连续图像序列识别;

将连续图像序列中的每一张图像均进行与步骤1.2中相同数据预处理后,输入连续吸引子网络模型,连续吸引子网络模型输出预测标签,完成连续图像序列识别。

本发明的有益效果在于:

本发明提供一种基于连续吸引子网络的连续图像序列识别方法,利用深度学习理论和连续吸引子网络完成对于多个连续变化的图像序列的识别,同时能够实现图像降噪、缺失恢复、特征提取的功能;本发明首次将连续吸引子理论应用于图像序列识别中,构建了由变分自编码器与MLP判断两部分构成的连续吸引子网络,并进行有效训练,最后通过训练完成的连续吸引子网络模型实现了图像序列识别,相比于现有的图像序列识别,本发明更注重于识别输入数据中的连续性特征,在如三维模型识别、流式视频数据识别等数据连续性比较重要的识别任务中,本发明能单独使用取得更好的识别效果,大大促进图像处理的相关发展。

同时,本发明中的网络也能应用在深度学习模型部署的数据预处理中,将原始数据先经过本发明的网络计算,提取出连续性特征,作为新数据替换原数据或者作为原数据的补充辅助接入更大型的深度学习网络中,以提高整个网络的识别正确率。

附图说明

图1为本发明实施例中mnist数据集部分样本示例。

图2为本发明实施例中噪音图片数据集部分样本示例。

图3为本发明实施例中缺失图片数据集部分样本示例。

图4为本发明实施例中旋转图片数据集部分样本示例。

图5为本发明实施例中连续吸引子网络结构图。

图6为本发明实施例中连续吸引子网络功能划分图。

图7为本发明实施例中图像降噪测试结果示例图。

图8为本发明实施例中图像补全测试结果示例图。

图9为本发明实施例中图像识别测试结果示例图。

图10为本发明实施例中图像特征提取测试结果示例图。

图11为图10中图像特征提取测试结果的其他角度展示图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细说明。

本实施例提供一种基于连续吸引子网络的连续图像序列识别方法,主要基于python3.6环境,使用keras、sklearn、PIL、random以及numpy等开源库完成;具体包括以下步骤:

一、数据的预处理

对于神经网络,本发明采用大数据进行训练,使其达到近似人脑甚至超越人脑的功能。本实施例选择mnist手写数字数据集作为原始数据集,包含60000个训练样本和10000个测试样本组成,每个样本均是像素值为28×28的灰度手写数字图片,数据集示例如图1所示;手写字体来自美国国家标准与技术研究所(National Institute of Standards andTechnology、NIST),训练集(training set)由来自250个人的手写数字构成,其中,50%为高中学生、50%来自人口普查局的工作人员,测试集(test set)也是按照同样比例的手写数字数据。

对上述基础数据集进行预处理,构建本实施例数据集:

1.对原始图像添加噪声,在Python环境中对每一张原始图像随机添加30%的椒盐噪声,用于训练和验证网络对噪声图像的降噪能力,得到噪声图像示例如图2所示;

2.对原始图像添加缺失,由于Mnist数据集中,手写字体是固定在图像中心的,本实施例在原始图像中心区域(长:8~22像素、宽:8~22像素)随机生成6×6像素大小的缺失,用于训练和验证网络对缺失图像的恢复能力;得到缺失图像示例如图3所示;

3.对原始图像进行旋转,使用PIL.image模块对原始图像进行角度旋转,将基础数据集中原始图像作为基准图像,将基准图像旋转100次、每次旋转3.6度,并将旋转后的图像按照其旋转的基准图片顺序进行排序,构建连续图像序列;以数字6和数字7为例,旋转图像示例如图4所示;

4.构建数据集,对上述操作所得的三类图像(噪音图像、缺损图像、旋转图像)的每一张图像进行相同预处理,并将预处理后所有图像构建数据集;所述预处理的具体过程为:

1)图像向量化,将像素的矩阵图片数据按照列优先的顺序重排为784维的向量矩阵数据;

2)图像中心化,将原始灰度图片的值映射至[0,1]区间上;

3)标签数据制作,将所有标签数据进行one-hot向量化,得到维数为10的向量矩阵数据,为进入tensorflow进行计算做准备;

4)制作数据集,将所有图像与真实标签按对应顺序划分为图像数据(单个样本维数为784)与标签数据(单个样本维数为10)两个部分;再以6:1的比例划分为训练集和测试集;

二、构建连续吸引子网络模型

本实施例中使用keras库来进行网络的搭建,包括所述变分自编码器与MLP判断两部分;在变分自编码器的基础上增加用于概率判断的分支,完成对图像的特征压缩、图像识别、图像降噪、缺损恢复;所述网络结构如图5所示,网络功能划分如图6所示,所述变分自编码器部分包括:编码部分、解码部分及辅助的噪音添加部分,更为具体的讲:

所述变分自编码器(生成模型)部分:完成图像的特征提取、图像降噪、缺失恢复;

第一层为输入层,用于接收数据输入,数据维数为取决于数据集、选择的优化器和具体的训练要求;

第二层为全连接的神经元层,维数设置为256,激活函数采用线性整流函数(relu),用于对图像数据进行初步特征提取得到维度为256维的初步特征提取值;

第三层为两组互相独立的神经元,分别用于对模型隐变量后验分布中的均值和方差进行估计;其中,两组神经元的维数均设置为12维、激活函数均采用线性整流函数(relu);均值部分将256维的初步特征提取值进一步处理得到隐变量后验分布的均值估计(12维),实现特征提取;方差部分将256维的初步特征提取值进一步处理得到隐变量后验分布中方差对数的估计,用于控制生成模型采样过程中添加的噪音大小;

第四层为重参数层,在神经网络模型中,层与层之间通过误差反传来实现各层的训练,但是采样过程无法求导,无法计算出误差的梯度来更新上一层的权值矩阵;使用重参数技巧将采样过程改为z=μ(x)+ε×σ(x)(z为隐变量采样值、μ(x)为由样本隐变量后验分布的均值、σ(x)为由样本隐变量后验分布的方差、ε~N(0,1)为标准正态随机变量)参与求导运算,使得误差梯度顺利传播,让模型训练得以进行;

第五层为全连接的神经元层,维数设置为256、激活函数采用线性整流函数(relu);用于将重参数层的采样数据升维至256维;

第六层为输出层,维数设置维784、激活函数使用sigmoid函数,输出与输入数据同维数的结果(图片),并在这一层完成误差函数的计算;

所述MLP判断部分:完成图像识别;

MLP判断部分由三层神经网络构成,变分自编码器训练完成后,取其第三层中均值估计部分的结果作为输入;

第一层为维数为20、激活函数为relu函数的全连接层;

第二层为维数为62、激活函数为relu函数的全连接层;

第三层为输出层,维数为10,经过前两层的中间处理,使用sigmoid激活函数输出最后的判断结果,输出为维数为10的标签向量。

三、模型的训练与测试

1.训练阶段:(分两部分对整个网络模型进行训练)

变分自编码器部分:

变分自编码器通过构建一个隐变量z来生成样本总体X的模型,从而识别目标数据;对于图像数据,网络学习到识别训练集图片的能后,能完成图片降噪、补全、特征提取的功能。实际上假设隐变量z服从某种常见分布(本实施例采用正太),从而计算出样本总体X的分布p(x)=∫p(x,z)dz=∫p(x|z)p(z)dz,在个描述成立时,还获得由隐变量生成样本的模型p(x,z);其中,p(x)为样本总体X服从的概率密度函数、p(x,z)为样本和隐变量的联合概率密度、p(x|z)为样本关于隐变量的条件概率密度函数、p(z)为隐变量的概率密度函数、dz为隐变量的微分。但是,该式中只有p(z)由于先验假设成为已知条件,∫p(x|z)p(z)dz无法写为显式表达,所以再假设后验分布p(z|x)也符合正太分布(即分布类型预设已知、本实施例采用正太);从而引入KL散度来观察联合分布的差距,最后通过最小化损失函数来找到p(z|x)和p(x|z)。

本实施例中,变分自编码器的损失函数采用重构误差+额外误差;其中,

重构误差采用MSE误差,表示网络输出图片与样本图片的相似程度:

其中,

由于在本发明中假设隐变量关于样本的后验分布是各分量独立的正态分布,所以额外误差采用正态分布与标准正态分布的KL散度,用以表示自编码器估计出的分布与标准正态分布的差距,所述KL散度为:

其中,p(z|x)为样本关于隐变量的后验分布的条件概率密度函数;

采用RMSProp优化器对变分自编码器部分进行误差反传训练,当训练批次达到预先设置的最大值时结束训练;目标在于使用迭代的方法尽量降低损失函数的值,让网络解码部分的输出层重构出的图片与真实图片尽可能接近,同时估计出的分布尽量接近标准正态。

MLP判断部分:

待变分自编码器部分训练完成后,将样本集再次输入变分自编码器部分,取其第三层中模型隐变量后验分布的均值作为MLP判断部分的输入,MLP判断部分输出预测标签;由于网络要完成多分类目标,损失函数采用二元交叉熵函数:

其中,y

采用Adam优化器对MLP判断部分进行训练,当训练批次达到预先设置的最大值时结束训练;训练目标为使损失函数尽量小,模型的预测尽量准(预测标签

2.测试阶段:

图像降噪、缺失恢复:将噪音图片、缺失图片的测试集输入网络,由变分自编码器网络解码器部分输出网络处理的图片,再与原图片进行对比查看网络降噪、补全的效果;

图像识别:将旋转图片测试集输入网络,由判断部分输出网络预测的标签,再与真实的标签对比,计算准确率;

特征提取:将旋转图片测试集输入网络,截取网络编码部分得到均值估计(12维)作为输出,为能使结果可视化,将输出使用T-SNE降维到3维,绘制三维散点图。

本实施例中,环境:python3.6、tensorflow2.2、keras2.3.1、GPU:Tesla K80;

数据集中旋转图片部分数量太大,训练容易出现过拟合,实际训练时随机选取80000个样本,同全部噪声图片、缺失图片进入模型训练;网络计算完整个训练集称为训练了一个批次(epoch)。

变分自编码器训练中,RMSProp优化器批尺寸(batch_size)设置为256,每次输入网络256个训练集中的样本(随机或顺序选取)并逐层计算到最后一层,完成误差计算、误差反传,更新一次网络全部的权值矩阵;分多次计算完整个训练集,即完成一个批次的训练,总共训练30个批次(epoch)。在本实施例的环境下每批次平均耗时4s,自编码器部分训练集最终损失值135.0422,判断部分训练集最终准确率达到94.709%。

将测试集输入训练好的网络进行计算,如图7所示为本实施例中图像降噪测试的结果展示(随机选择),可以看到绝大部分噪点都被消除了,数字辨认程度增加。如图8所示为本法实施例中缺失恢复测试的结果展示(随机选择),可以看缺失部分恢复效果很好,数字辨认程度增加。如图9所示为本实施例中图像识别测试的结果展示(随机选择),测试集经过网络计算最终正确率达到93.5022%,正确率很高;对比训练集的准确率94.709%,说明网络没有出现过拟合,泛化能力良好。如图10、11所示为本实施例特征提取的各个角度的结果展示,在最终数据点的空间分布图中,每一个连续图形代表一个手写数字,散点图分布符合连续吸引子的特性,说明连续吸引子网络成功学习到了连续序列数据连续变化的特征;在数据进行过标准化的前提下,空间分布中不同数字与数字之间分隔较远,没有交叉,也没有明显的离群点,说明网络经过学习能明显区分数字之间的差距,获得很好的辨识能力。

以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

相关技术
  • 一种基于连续吸引子网络的连续图像序列识别方法
  • 一种基于连续吸引子神经网络的在线目标跟踪方法
技术分类

06120112318143