基于单隐层神经网络的图像识别方法及相关设备

文档序号:25950558发布日期:2021-07-20 17:06阅读:133来源:国知局
基于单隐层神经网络的图像识别方法及相关设备

本公开涉及深度学习技术领域,尤其涉及一种基于单隐层神经网络的图像识别方法及相关设备。



背景技术:

随着神经网络技术的快速发展,神经网络已经成为了目前人工智能领域中最重要的技术之一,利用神经网络可以对图像进行有效识别,如何提高图像的识别效率取决于神经网络的内部结构。通常神经网络的结构包括输入层神经元个数、隐层神经元个数和深度、输出层神经元个数三个部分。其中输入层神经元个数与输入的数据所包含的特征数量一致,输出层神经元个数与数据的类别数量一致。然而,隐层神经元的个数和深度无法直接根据数据的结构进行确定。通常认为,隐层神经元的个数越多深度越深其模型越复杂。然而,复杂的模型是否适用于训练的数据只能通过训练结果进行考察,即通过模型在训练集和测试集上的表现人为判断是否处于过拟合或欠拟合状态。这种人工的考察方式无疑会造成大量的资源浪费,因此如何确定隐层神经元个数和深度成为了研究的热点,难点问题。



技术实现要素:

有鉴于此,本公开的目的在于提出一种基于单隐层神经网络的图像识别方法及相关设备。

基于上述目的,本公开提供了一种基于单隐层神经网络的图像识别方法,获取用户输入的图像数据,对所述图像数据进行预处理;

将经过所述预处理的所述图像数据输入目标检测模型进行多标签分类,得到每个所述图像数据对应的类别标签;

输出带有所述类别标签的所述图像数据;

其中,所述目标检测模型为单隐层神经网络模型,所述单隐层神经网络模型中的单隐层的神经元数量采用评价-行动-反馈jaf算法对所述神经网络模型进行预训练而确定。

进一步的,对所述图像数据进行归一化。

进一步的,所述单隐层神经网络模型包括:单隐层前馈神经网络模型、极限学习机elm神经网络模型或单隐层的卷积神经网络模型。

进一步的,所述预训练包括:

将已标注所述类别标签的图像样本集划分为训练集和测试集,利用所述单隐层神经网络模型计算得到所述训练集的准确率和所述测试集的准确率;

基于所述训练集的准确率和所述测试集的准确率计算回报函数;

响应于确定所述回报函数不满足预设的迭代截止条件,基于所述回报函数计算得到所述单隐层神经元个数的变化量,基于所述单隐层神经元个数的变化量调整所述单隐层神经元数量;

对所述单隐层神经网络模型进行迭代训练,直至确定所述回报函数满足预设的所述迭代截止条件,以得到所述目标检测模型。

进一步的,所述基于所述训练集的准确率和所述测试集的准确率计算回报函数,包括:所述回报函数具体为

vn=fn(x)+gn(y)

其中,

x=qn-pn,y=1-qn,qn为训练集的准确率,pn为测试集的准确率,α为拟合误差最大值,β为预期准确率。

进一步的,所述迭代截止条件包括:当前迭代训练得到的所述回报函数与上一次迭代训练得到的回报函数差值小于预设参数。

进一步的,所述基于所述回报函数计算得到所述单隐层神经元个数的变化量,包括:所述单隐层神经元个数的变化量具体为

n=int(n(vn))

其中,

vn为回报函数,函数int()的功能是向上取整。

基于同一发明构思,本公开还提供了一种基于单隐层神经网络的图像识别装置,包括:

预处理模块,被配置为获取用户输入的图像数据,对所述图像数据进行预处理;

分类模块,被配置为将经过所述预处理的所述图像数据输入目标检测模型进行多标签分类,得到每个所述图像数据对应的类别标签;

输出模块,被配置为输出带有所述类别标签的所述图像数据;

其中,所述目标检测模型为单隐层神经网络模型,所述单隐层神经网络模型中的单隐层的神经元数量采用评价-行动-反馈jaf算法对所述神经网络模型进行预训练而确定。

基于同一发明构思,本公开还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如上任意所述的方法。

基于同一发明构思,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任意所述的方法。

从上面所述可以看出,本公开提供的一种基于单隐层神经网络的图像识别方法及相关设备,可以自适应的调整神经网络结构,提高对图像识别的准确率。无论神经网络结构处于过拟合或欠拟合状态,均可进行相应的调整,最终生成优化的目标检测模型,完成对图像数据的分类识别。本公开的基于单隐层神经网络的图像识别方法相比于现有方法适用范围更广,且无需工程人员具备较高的专业背景知识。

附图说明

为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例的基于单隐层神经网络的图像识别方法的流程示意图;

图2为本公开实施例的yale-b人脸数据集示意图;

图3为本公开实施例的oxford-iiitpet数据集示意图;

图4a为本公开实施例2的模型准确率变化趋势示意图;

图4b为本公开实施例2的回报函数值变化趋势示意图;

图4c为本公开实施例2的隐层神经元个数变化趋势示意图;

图5为本公开实施例的基于单隐层神经网络的图像识别装置的结构示意图;

图6为本公开实施例的电子设备的结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。

需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。

如背景技术所述,目前常用确定隐层神经元数量的方法包括:1)基于遗传算法确定隐层神经元的数量;2)利用经验公式法确定隐层神经元数量;3)递增法/递减法确定隐层神经元数量。

基于遗传算法确定隐层神经元的数量,是一种基于生物进化角度所提炼出的一种搜索方法,其关键在于如何对网络结果进行编码,常用的编码方式包括,直接编码法、间接编码法、语法编码法等三种编码方法。在网络结构较少时此算法性能较好,但是在大规模神经网络中编码过于复杂,并且进化速度太慢。导致无法在大规模神经网络中进行使用。

利用经验公式法确定隐层神经元数量、是一种根据以往的经验总结的一套隐层神经元个数的公式,通常仅可以在同一类的数据集中有参考价值,一旦使用场景发生变化则可能发生完全无法使用的情况。

递增法/递减法确定隐层神经元数量、是一种通过增加/减少神经元个数去找到最优的隐层神经元个数的方法,递增法预设的隐层神经元个数通常是需要保证模型欠拟合。递减法预设的隐层神经元个数通常是需要保证模型过拟合。虽然通常是可以找出相对适合的神经网络结构,但是需要大量的实验才有可能找到。最合适神经网络结果,通常也是十分消耗人力的方法,并且对工程设计人员的背景知识提出了较高的要求。

本公开所提出的评价-行动-反馈(judge-action-feedback,jaf)算法是基于传统的试错法所提出的调整神经网络隐层神经元参数的方法。从神经网络隐层个数的调整经验来看,在模型预测结果过拟合时需要对模型的复杂度进行降低调整,即减少隐层神经元的个数。当模型预测结果欠拟合时需要增加模型的复杂度,即增加隐层神经元个数。当模型的预测结果,即不过拟合也不欠拟合的情况下,若在测试集的表现并不满足实际需求时,需要少量增加模型的复杂度,从而使其满足条件。

以下结合附图来详细说明本公开的实施例。

本公开提供了一种基于单隐层神经网络的图像识别方法,参考图1,具体包括以下步骤:

步骤s101、获取用户输入的图像数据,对所述图像数据进行预处理。

在一些实施例中,对于图像类型的数据,其预处理包括对所述数据进行归一化,具体的归一化方法可根据实际情况进行选择,现有归一化方法包括min-max归一化方法、z-score归一化方法等。min-max归一化方法适用于训练数据量相对稳定的情况,即不会大量新增样本数据。z-score归一化方法适用于均值稳定,标准差稳定的数据集。

步骤s102、将经过所述预处理的所述图像数据输入目标检测模型进行多标签分类,得到每个所述图像数据对应的类别标签。

具体的,将所述图像数据输入到目标检测模型中,所述目标检测模型的结构是预先部署的,包括输入层、单隐层和输出层,经过目标检测模型的多标签分类计算后由输出层输出每个所述图像数据的类别标签,其中输出层中输出值最大的类别标签代表了该图像数据对应的类别。

步骤s103、输出带有所述类别标签的所述图像数据,其中,所述目标检测模型为单隐层神经网络模型,所述单隐层神经网络模型中的单隐层的神经元数量采用评价-行动-反馈jaf算法对所述神经网络模型进行预训练而确定。

具体的,所述目标检测模型的为单隐层的神经网络模型,隐层神经元的数量初始化时给定一个数值,经过jaf算法对模型进行迭代训练,从而找出最优的神经元数量,使模型的处于最佳状态,既不欠拟合也不过拟合。

在一些实施例中,对所述图像数据进行归一化。对于数据的归一化可以采用min-max归一化算法,具体为:

其中max表示某一特征中所有数据的最大值,min表示某一特征中所有数据的最小值。x表示某条数据中某个特征代表的数值。归一化还可以采用z-score归一化算法,具体为:

其中μ表示所有特征数据的均值,σ表示所有特征数据的标准差。不同的归一化方法适用于不同类型的数据处理,可根据实际情况进行选择。除了上述两种归一化方法外,还可以选择更合适的归一化方法,此处不再一一例举。

在一些实施例中,所述单隐层神经网络模型包括:单隐层前馈神经网络模型、极限学习机elm神经网络模型或单隐层的卷积神经网络模型。对不同类型的神经网络模型,其对应的训练方法也不同。其中,单隐层前馈神经网络模型或其他单隐层卷积神经网络可采用梯度下降算法进行优化,而elm可采用自有算法进行训练得到神经网络参数。

在一些实施例中,所述预训练包括:

将已标注所述类别标签的图像样本集划分为训练集和测试集,利用所述单隐层神经网络模型计算得到所述训练集的准确率和所述测试集的准确率;

基于所述训练集的准确率和所述测试集的准确率计算回报函数;

响应于确定所述回报函数不满足预设的迭代截止条件,基于所述回报函数计算得到所述单隐层神经元个数的变化量,基于所述单隐层神经元个数的变化量调整所述单隐层神经元数量;

对所述单隐层神经网络模型进行迭代训练,直至确定所述回报函数满足预设的所述迭代截止条件,以得到所述目标检测模型。

具体的,将数据划分为训练集和测试集,划分比例可以根据实际情况进行调整。例如训练集为数据总量的80%,测试集为数据总量的20%。基于训练集对所述单隐层神经网络模型进行训练,通过测试集对经过训练的所述单隐层神经网络模型进行准确率的检测,适当调整模型参数后,基于训练集和测试集对所述单隐层神经网络模型进行迭代训练。

经过训练集训练后得到的单隐层神经网络模型,将训练集和测试集输入所述单隐层神经网络模型中,分别计算得到所述训练集的准确率和所述测试集的准确率。基于训练集的准确率和测试集的准确率计算回报函数。当回报函数数值满足预设的迭代截止条件时,说明单隐层神经网络模型中隐层的神经元数量设置是合适的,可以直接输出所述单隐层神经网络模型作为所述目标检测模型。当回报函数数值不满足预设的迭代截止条件时,说明目单隐层神经网络模型为欠拟合或是过拟合状态,需要调整单隐层神经网络模型中隐层的神经元数量,从而优化单隐层神经网络模型的计算结果,通过对模型的不断迭代训练,得到神经元数量最优的目标检测模型。

在一些实施例中,所述基于所述训练集的准确率和所述测试集的准确率计算回报函数,所述回报函数具体为

vn=fn(x)+gn(y)

其中,

x=qn-pn,y=1-qn,qn为训练集的准确率,pn为测试集的准确率,α为拟合误差最大值,即可接受的模型在测试集与训练集的准确率的最大差距,β为预期准确率,即表示模型在训练集中期望达到的准确率。

回报函数的数值可以体现目标检测模型的现有状态,具体为:

由上式可知,回报函数的值为正时,目标检测模型的隐层神经元数量是合适的,回报函数的值为负时,模型处于过拟合或欠拟合的状态。当模型处于过拟合状态时,回报函数等于当模型处于欠拟合状态时,回报函数的值小于

在一些实施例中,所述迭代截止条件包括:当前迭代训练所得的所述回报函数与上一次迭代训练所得的回报函数差值小于预设参数。判断回报函数是否收敛的方法是根据本次迭代所得出回报函数值减去上一次迭代所得出回报函数值是否小于预设参数c。预设参数c的数值可根据具体情况进行设定和调整。对于目标检测模型要求精度不高时,可将预设参数c数值适当增大,若要求精度较高时,可适当缩小预设参数c的取值。若回报函数差值小于预设参数c,则认为回报函数收敛,则可以导出此时的目标检测模型。

在一些实施例中,若所述回报函数数值不收敛,也即回报函数差值大于预设参数c,则进一步计算行为函数。行为函数a具体为

a=f+n

其中f是隐层神经元的当前个数,n是隐层神经元个数的变化量,

n=int(n(vn))

其中int()函数的功能是向上取整,

根据计算出的行为函数a的数值对隐层神经元数量进行调整,之后对所述模型进行迭代训练。

如上所述,总结jaf算法过程如下:

下面对基于单隐层神经网络的图像识别方法进行举例说明。

实施例1,输入图像数据集,例如yale-b人脸数据集,参考图2,yale-b数据集包括38个人的人脸照片,每一个人有64种不同灯光下的拍摄结果。

通过jaf算法对所述数据集进行计算,最终得到的测试结果如下表所示:

表1、yale-b数据集测试结果

本实施例中,对于数据的预处理采用了max-min归一化算法,数据集的拆分比例具体为80%训练集和20%测试集,其中训练集为768个数据,测试集为192个数据。搭建elm神经网络结构,输入层神经元个数为33256,隐层神经元个数为50,输出层神经元个数为38。初始化的回报函数设置vn为0,预测参数c设置为0.01。参数α=0.1,β=0.05。从表1中数据可知经过4次迭代训练后,回报函数差值为0,小于预设参数0.01,回报函数收敛,迭代训练结束,最终确定的隐层神经元个数为41,输出该目标检测模型。利用训练好的目标检测模型对数据集进行人脸识别,此时对人脸数据的识别准确率为91%。

实施例2,输入图像数据集,例如oxford-iiitpet数据集,oxford-iiitpet数据集包含37个类别的宠物数据集,每类大约200幅图像。参考图3,本实施例中使用了其中5个类别的宠物图像,包含998幅图像数据,分别为阿比西尼亚猫、美国斗牛犬、比特犬、巴吉度猎犬和比格犬。

首先,由于各个图像的像素不同,目标检测模型中的隐层将所有的图像数据修改为128*128像素的图像,然后对所有图像数据进行归一化,归一化方法采用max-min方法。对归一化后的数据进行测试集与训练集的拆分,拆分比例为80%的训练集数据,20%的训练集数据。搭建elm神经网络结构,输入层神经元个数为16834,隐层神经元个数为128,输出层神经元个数为5。初始化的回报函数设置vn为0,预测参数c设置为0.01。参数α=0.1,β=0.05。目标检测模型经过多次迭代计算结果如图4a至图4c所示,图中横坐标代表迭代次数,图4a中模型的准确率变化呈现上升趋势,迭代训练之前模型的准确率为51%,经过迭代训练之后模型的准确率提高至61%,模型准确率提升了10%。图4b中显示迭代训练过程中回报函数值向0抖动上升,说明模型状态逐渐满足条件,不断进行优化。图4c中显示了隐层神经元个数的变化趋势,神经元个数从最初的128上升至191,也即最终确定的神经元个数为191,输出该目标检测模型。此时目标检测模型对于宠物数据集中识别宠物类别的准确率为61%。

需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种基于神经网络的单隐层神经元数量确定装置。

参考图5,所述基于单隐层神经网络的图像识别装置,包括:

预处理模块501,被配置为获取用户输入的图像数据,对所述图像数据进行预处理;

分类模块502,被配置为将经过所述预处理的所述图像数据输入目标检测模型进行多标签分类,得到每个所述图像数据对应的类别标签;

输出模块503,被配置为输出带有所述类别标签的所述图像数据;

其中,所述目标检测模型为单隐层神经网络模型,所述单隐层神经网络模型中的单隐层的神经元数量采用评价-行动-反馈jaf算法对所述神经网络模型进行预训练而确定。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

上述实施例的装置用于实现前述任一实施例中相应的基于神经网络的单隐层神经元数量确定方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于单隐层神经网络的图像识别方法。

图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的基于单隐层神经网络的图像识别方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于单隐层神经网络的图像识别方法。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的基于单隐层神经网络的图像识别方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。

另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。

尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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