神经网络的训练方法、装置及终端设备与流程

文档序号:16036993发布日期:2018-11-24 10:09阅读:263来源:国知局

本发明属于计算机技术领域,尤其涉及一种神经网络的训练方法、装置及终端设备。

背景技术

随着计算机视觉技术的不断更新发展,目标检测技术在智能交通、图像检索、人脸识别等多个领域有着重要的地位。近年来,深度学习作为一个更高效的工具帮助我们在目标检测领域进行研究和发现。目前,深度学习在目标检测领域极大超越了传统视觉算法,深度学习在大数据下能够自主学习得到有效的特征,学习到的特征在数量和性能上远远超出了通过手工设计的算法特征。

卷积神经网络(cnn)是一种具有代表性的深度学习方法,近年来广泛应用在模式识别、图像处理等领域,卷积神经网络虽然有着超越传统视觉算法的性能优势,但是其缺点也是显而易见。卷积神经网络模型通常包含了大量的参数,需要对卷积神经网络模型进行训练得到合适的参数。目前神经网络训练方法的计算量较大,且无法得到最佳的模型参数,导致神经网络的计算准确率低,计算效率低。



技术实现要素:

有鉴于此,本发明实施例提供了一种神经网络的训练方法、装置及终端设备,以解决现有技术中神经网络训练方法无法得到最佳的模型参数的问题。

本发明实施例的第一方面提供了一种神经网络的训练方法,包括:

获取神经网络的神经元参数;

将预设数量的样本图像输入神经网络,计算各个样本图像的分类概率值,样本图像为包含分类标签值的样本图像;

根据神经元参数及各个样本图像的分类概率值,计算分类损失值;

根据分类损失值,对神经网络的神经元参数进行调整。

本发明实施例的第二方面提供了一种神经网络的训练装置,包括:

神经元参数获取模块,用于获取神经网络的神经元参数;

分类概率值获取模块,用于将预设数量的样本图像输入神经网络,计算各个样本图像的分类概率值,样本图像为包含分类标签值的样本图像;

分类损失值计算模块,用于根据神经元参数及各个样本图像的分类概率值,计算分类损失值;

参数调整模块,用于根据分类损失值,对神经网络的神经元参数进行调整。

本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述神经网络的训练方法的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述神经网络的训练方法的步骤。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例获取神经网络的神经元参数;将预设数量的样本图像输入神经网络,计算各个样本图像的分类概率值,样本图像为包含分类标签值的样本图像;根据神经元参数及各个样本图像的分类概率值,计算分类损失值;根据分类损失值,对神经网络的神经元参数进行调整。本发明实施例利用损失函数计算样本图像的分类损失值,从而实现对神经元参数的调整,得到最佳模型参数,提高了神经网络的识别精度。

附图说明

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

图1是本发明实施例提供的神经网络的训练方法的实现流程示意图;

图2是本发明实施例提供的图1中s102的实现流程示意图;

图3是本发明实施例提供的图1中s103的实现流程示意图;

图4是本发明实施例提供的神经网络的训练装置的结构示例图;

图5是本发明实施例提供的图4中分类概率值获取模块的结构示意图;

图6是本发明实施例提供的图4中分类损失值计算模块的结构示意图;

图7是本发明实施例提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

本发明的说明书和权利要求书及上述附图中的术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含一系列步骤或单元的过程、方法或系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。

为了说明本发明的技术方案,下面通过具体实施例来进行说明。

实施例1:

图1示出了本发明的一个实施例提供的一种神经网络的训练方法的实现流程,本实施例的流程执行主体可以是终端设备,其过程详述如下:

在s101中,获取神经网络的神经元参数。

在本实施例中,首先可以获取神经网络各层的初始的神经元参数,神经网络的每层网络都包括多个神经元参数。

在本实施例中,神经网络可以为卷积神经网络,卷积神经网络的模型具体可以是alexnet模型、cifar10模型、googlenet模型以及resnet模型。

在本实施例中,以一个的五层的cifar-10的人工卷积神经网络为例,神经网络的前两层为卷积层,第三、四层是全连接层,第五层为softmaxlinear层,卷积层和全连接层均采用relu(rectifiedlinearunits)作为激活函数。

首先获取五层神经网络的每层的神经元参数,神经元参数用于神经网络的识别,精确的神经元参数能够使输入神经网络的待测图像的识别效果更好,分类更加精确。初始的神经元参数的设置可以服从正态分布,也可以为随机方式,在此不做限定。

在s102中,将预设数量的样本图像输入神经网络,计算各个样本图像的分类概率值,样本图像为包含分类标签值的样本图像。

在本实施例中,样本图像为已经分类好的包含有分类标签值的样本图像,样本图像包括阳性样本和阴性样本,每一批输入神经网络的样本图像的阳性样本和阴性样本以平均分布为最好,样本图像的预设数量范围选为32~512,一次训练的样本图像的数量最少为32个,最多为512个。样本图像通过神经网络的计算,得到其对应的分类概率值,分类概率值为样本图像在某一类别中出现的概率。

在s103中,根据神经元参数及各个样本图像的分类概率值,计算分类损失值。

在本实施例中,根据神经元参数获取样本图像的图像特征,并根据样本图像的图像特征得到分类概率值,最后根据损失函数,计算样本图像的分类损失值。

在s104中,根据分类损失值,对神经网络的神经元参数进行调整。

在本实施例中,通过不断的输入样本图像到神经网络,调整神经元参数,当得到的样本图像的分类损失值小于预设阈值时,获得最优的神经元参数,从而提高神经网络的识别精度,使神经网络的识别效果达到最佳。

从上述实施例可知,本发明实施例获取神经网络的神经元参数;将预设数量的样本图像输入神经网络,计算各个样本图像的分类概率值,样本图像为包含分类标签值的样本图像;根据神经元参数及各个样本图像的分类概率值,计算分类损失值;根据分类损失值,对神经网络的神经元参数进行调整。本实施例通过调整神经元参数得到最佳模型参数,提高了神经网络的识别精度。

如图2所示,在本发明的一个实施例中,图2示出了图1中s102的具体实现流程,详述如下:

在s201中,获取各个样本图像的像素值矩阵。

在本实施例中,首先需要获取样本图像的像素值矩阵,像素值矩阵为以样本图像的像素点位置排列,以样本图像的像素点的数值为元素的矩阵。

在s202中,根据神经网络的神经元参数,对各个样本图像的像素值矩阵进行计算,得到各个样本图像的分类概率值。

在本实施例中,神经网络的每层网络均包括多个神经元参数。以上述五层神经网络为例,在神经网络的第一层,通过第一层网络的神经元参数及样本图像的像素值矩阵,得到第一层网络的样本图像特征矩阵;然后将第一层网络的特征矩阵输入第二层网络,根据第二层网络的神经元参数和第一层网络的样本图像特征矩阵,计算得到第二层网络的样本图像特征矩阵;以此类推,最终得到第五层网络的样本图像的图像特征,并根据各个样本图像的图像特征得到各个样本图像的分类概率值。

在本实施例中,通过各层神经网络的神经元参数,得到样本图像的图像特征,提高了样本图像的特征提取的准确性,进一步使样本图像分类概率值更加精确。

如图3所示,在本发明的一个实施例中,图3示出了图1中s103的具体实现流程,详述如下:

在s301中,对神经网络的各层网络的神经元参数进行正则化,得到各层网络的正则化数值。

在本实施例中,将每一层神经网络的多个神经元参数分别进行正则化,得到各层神经网络的正则化数值,正则化方法可以采用l2正则化方法。

在s302中,根据各个样本图像的分类概率值及分类标签值,计算各个样本图像的交叉熵损失。

在s303中,根据正则化数值和各个样本图像的交叉熵损失,计算分类损失值。

在本实施例中,根据神经网络各层的正则化数值和各个样本图像的交叉熵损失,以及预设损失函数,得到分类损失值。

在本发明的一个实施例中,图3中s303的实现流程详述如下:

在s401中,根据预设损失函数、正则化数值和各个样本图像的交叉熵损失,计算各个样本图像的第一损失值。

在s402中,将各个样本图像的第一损失值求平均,得到分类损失值。

在本发明的一个实施例中,上述预设损失函数为:

其中,losstotal表示第一损失值,lsoftmax表示交叉熵损失,ki表示第i层网络的权重系数,li表示第i层网络的正则化数值,n表示神经网络的总层数。

在本实施例中,以上述五层卷积神经网络为例,权重系数可以设为0.004,则第一损失值的计算过程为:

其中,losstotal表示交叉熵损失,l2conv1表示第一层卷积层的正则化数值,l2conv2表示第二层卷积层的正则化数值,l2fc1表示第三层全连接层的正则化数值,l2fc2表示第四层全连接层的正则化数值,l2softmaxlinear表示第五层的正则化数值。则losstotal为单个样本图像的第一损失值。

在本实施例中,将每一张样本图像的第一损失值加和求平均,得到样本图像的平均值,作为样本图像的分类损失值。

在本实施例中,权重系数的取值范围可以为0~0.1之间的任意实数,通过为每层神经网络的正则化数值分配一个权重系数,加入到损失函数的计算式中,从而减少神经网络的神经元参数训练的迭代次数,降低假阳性率。

在本发明的一个实施例中,图1中s104的实现流程详述如下:

s501:根据分类损失值,采用随机梯度下降方法对神经网络的神经元参数进行调整。

在本实施例中,根据分类损失值和随机梯度下降方法,计算网络反向梯度的大小,再根据网络反向梯度的大小依次对各层网络的神经元参数进行调整。

在本实施例中,训练神经网络时的初始学习率可以设置为0.01~0.2,并以指数衰减的方式衰减初始学习率,衰减系数的取值范围可以为0.01~0.25,并且每训练m张样本图像则衰减一次初始学习率,其中m的取值公式为:

m=x*n

其中,x为训练一次样本图像的数量,n为调节系数,调节系数的取值为1~400。

在本实施例中,通过训练将样本图像的分类损失值降低到预设阈值以下,从而得到更为精确的神经网络各层的神经元参数,提高神经网络的识别精度。

从上述实施例可知,本发明实施例通过设计具备多个隐含层的人工卷积神经网络,并输入大量精确标注的样本图片给网络进行学习和训练,可以得到一个识别性能很强的人工卷积神经网络,该人工卷积神经网络可以超过普通人的识别水平;神经网络的性能提升与样本图像的数量及训练方式有很大关系,因此通过持续改善样本图像的质量和训练方法,可以快速地提高识别的精度;人工卷积神经网络的升级方式本质为更换一套新的网络模型参数,过程非常简单、方便和迅速。

以一个具体的应用场景为例,在训练好神经网络之后,可以应用本发明实施例提供的神经网络对数字图像中的幽门螺杆菌进行分类识别,在识别精度和速度上远胜过其它图像识别算法。本发明实施例提供的神经网络对于数字图像目标的色彩差异、明暗程度、位置偏移、形态差异性具有更好地适应性,因此本发明实施例在对幽门螺杆菌等细菌的识别上具有更好的泛化效果。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例2:

如图4所示,本发明的一个实施例提供的神经网络的训练装置100,用于执行图1所对应的实施例中的方法步骤,其包括:

神经元参数获取模块110,用于获取神经网络的神经元参数。

分类概率值获取模块120,用于将预设数量的样本图像输入神经网络,计算各个样本图像的分类概率值,样本图像为包含分类标签值的样本图像。

分类损失值计算模块130,用于根据神经元参数及各个样本图像的分类概率值,计算分类损失值。

参数调整模块140,用于根据分类损失值,对神经网络的神经元参数进行调整。

从上述实施例可知,本发明实施例获取神经网络的神经元参数;将预设数量的样本图像输入神经网络,计算各个样本图像的分类概率值,样本图像为包含分类标签值的样本图像;根据神经元参数及各个样本图像的分类概率值,计算分类损失值;根据分类损失值,对神经网络的神经元参数进行调整。本实施例通过调整神经元参数得到最佳模型参数,提高了神经网络的识别精度。

如图5所示,在本发明的一个实施例中,图4所对应的实施例中的分类概率值获取模块120还包括用于执行图2所对应的实施例中的方法步骤的结构,其包括:

像素值矩阵获取单元121,用于获取各个样本图像的像素值矩阵。

分类概率值获取单元122,用于根据神经网络的神经元参数,对各个样本图像的像素值矩阵进行计算,得到各个样本图像的分类概率值。

通过各层神经网络的神经元参数,得到样本图像的图像特征,提高了样本图像特征提取的准确性,使进一步得到的样本图像分类概率值更加精确。

如图6所示,在本发明的一个实施例中,图4所对应的实施例中的分类损失值计算模块130还包括用于执行图3所对应的实施例中的方法步骤的结构,其包括:

正则化数值获取单元131,用于对神经网络的各层网络的神经元参数进行正则化,得到各层网络的正则化数值。

交叉熵损失获取单元132,用于根据各个样本图像的分类概率值及分类标签值,计算各个样本图像的交叉熵损失。

分类损失值获取单元133,用于根据正则化数值和各个样本图像的交叉熵损失,计算分类损失值。

在本发明的一个实施例中,图6所对应的实施例中的分类损失值获取单元133还包括:

第一损失值子单元,用于根据预设损失函数、正则化数值和各个样本图像的交叉熵损失,计算各个样本图像的第一损失值。

分类损失值计算子单元,用于将各个样本图像的第一损失值求平均,得到分类损失值。

在本实施例中,通过为每层神经网络的正则化数值分配一个权重系数,加入到预设损失函数的计算式中,从而减少神经网络的神经元参数训练的迭代次数,降低假阳性率。

在本发明的一个实施例中,参数调整模块140包括:

参数调整子单元,用于根据分类损失值,采用随机梯度下降方法对神经网络的神经元参数进行调整。

在本实施例中,通过训练将样本图像的分类损失值降低到预设阈值以下,从而得到更为精确的神经网络各层的神经元参数,提高神经网络的识别精度。

在一个实施例中,神经网络的训练装置100还包括其他功能模块/单元,用于实现实施例1中各实施例中的方法步骤。

实施例3:

如图7所示,本发明实施例还提供了一种终端设备7,包括存储器71、处理器70以及存储在存储器71中并可在处理器70上运行的计算机程序,处理器70执行所述计算机程序72时实现如实施例1中所述的各实施例中的步骤,例如图1所示的步骤s101至步骤s104。或者,所述处理器70执行所述计算机程序72时实现如实施例2中所述的各装置实施例中的各模块的功能,例如图4所示的模块110至140的功能。

所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备7可包括,但不仅限于,处理器70、存储器71。例如所述终端设备7还可以包括输入输出设备、网络接入设备、总线等。

所称处理器70可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器70也可以是任何常规的处理器70等。

所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器71还可以既包括终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序72以及所述终端设备7所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。

实施例4:

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序72,计算机程序72被处理器70执行时实现如实施例1中所述的各实施例中的步骤,例如图1所示的步骤s101至步骤s104。或者,所述计算机程序72被处理器70执行时实现如实施例2中所述的各装置实施例中的各模块的功能,例如图4所示的模块110至140的功能。

所述的计算机程序72可存储于一计算机可读存储介质中,该计算机程序72在被处理器70执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序72包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。

本发明实施例系统中的模块或单元可以根据实际需要进行合并、划分和删减。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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