CN110633722A - 人工神经网络调整方法和装置 - Google Patents
人工神经网络调整方法和装置 Download PDFInfo
- Publication number
- CN110633722A CN110633722A CN201810653962.5A CN201810653962A CN110633722A CN 110633722 A CN110633722 A CN 110633722A CN 201810653962 A CN201810653962 A CN 201810653962A CN 110633722 A CN110633722 A CN 110633722A
- Authority
- CN
- China
- Prior art keywords
- class
- current
- feature
- ann
- loss function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 176
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012549 training Methods 0.000 claims abstract description 94
- 230000006870 function Effects 0.000 claims description 135
- 230000002441 reversible effect Effects 0.000 claims description 15
- 238000003062 neural network model Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 abstract description 5
- 239000010410 layer Substances 0.000 description 40
- 238000013527 convolutional neural network Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 230000004913 activation Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000000926 separation method Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 210000003323 beak Anatomy 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000036544 posture Effects 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提出了一种人工神经网络(ANN)调整方法和装置。所述ANN包括多个层并且被训练用于进行分类推理。例如,所述ANN可以是被训练用于细粒度图像识别的神经网络。所述方法包括:将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征;以及以规定所述正类特征比所述反类特征相距所述当前类别的当前类别特征中心近的第一损失函数对所述ANN进行调整。本发明从损失函数着手,设计了一种有效的损失函数,能够拉近类内的距离,增大类间距离,提高分类效果,进而从整体上提升人工神经网络的预测精度。
Description
技术领域
本发明涉及深度学习,尤其涉及对人工神经网络的调整方法和装置。
背景技术
近些年来,人工神经网络(ANN)在目标检测、图像分类等领域都取得了重大进展。在这其中,细粒度分类任务是一种从基础父类的成千上百的子类中正确识别目标的颇具挑战性的图像识别任务。由于子类之间的区别通常较小,并且姿势、旋转等原因会导致类内的偏差较大,使得细粒度分类的准确度难以提升。为了解决这一问题,目前的研究大部分依靠于获得具有区分性的部位(比如鸟类的喙、脚等)的定位来产生细粒度特征,而这种方法通常依赖于局部位置的标注,需要附加额外的人力成本且增加了系统的复杂性。
有鉴于此,仍然需要一种改进的神经网络调整方法。
发明内容
本发明从损失函数着手,设计了一种有效的损失函数,能够拉近类内的距离,增大类间距离,提高分类效果。进而整体提升人工神经网络的预测精度。
根据本发明的一个方面,提出了一种人工神经网络(ANN)调整方法,所述ANN包括多个层并且被训练用于进行分类推理。例如,所述ANN是被训练用于细粒度图像识别的神经网络。所述方法包括:将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征;以及以第一损失函数对所述ANN进行调整,所述第一损失函数规定所述正类特征与所述当前类别的当前类别特征中心的距离比所述反类特征与所述当前类别的当前类别特征中心的距离近。由此,能够通过引入拉近正类特征并推远反类特征的损失函数来使得各个分类的聚类更为紧凑,由此提升网络的分类准确性。
所述第一损失函数可以是规定所述正类特征比所述反类特征相距所述当前类别特征中心要近上一个预定阈值的损失函数。
优选地,ANN调整方法还可以包括:从所述反类特征中计算出与所述当前类别特征中心距离最近的类别的数据特征作为距离最近反类特征,其中,以第一损失函数对ANN进行调整包括:以规定所述正类特征比所述距离最近反类特征相距所述当前类别特征中心近的第一损失函数对所述ANN进行调整。第一损失函数优选可以基于下式进行计算:
优选地,以第一损失函数对所述ANN进行调整包括:计算所述正类特征、距离最近反类特征和/或所述正类中心的梯度;以及使用所述梯度更新所述正类特征、距离最近反类特征和/或所述正类中心。
可以基于下式计算所述正类特征、所述距离最近反类特征和/或所述正类中心的梯度:
其中,Np'表示不满足距离限制条件的当前类别的数据样本数目。
本发明的ANN调整方法还可以包括:在完成所述当前类别下的调整之后,逐一将所述其他类别中的一个类别作为当前类别进行基于所述第一损失函数的ANN调整,以完成对作为当前训练批次的所述训练数据集的训练。
进一步地,该针对每个训练批次迭代进行针对每个类别逐一作为当前类别的基于所述第一损失函数的ANN调整。当前类别特征中心可以在针对每个当前类别和/或每个训练批次中被持续调整。
本发明的距离调整方案可以与其他损失函数的训练相结合。优选地,ANN调整方法可以包括:在使用第一损失函数对所述ANN进行调整之前,使用第二损失函数对所述ANN进行初始训练。作为替换或者补充,该ANN调整方法还可以包括:使用第三损失函数与第一损失函数对所述ANN进行联合调整。所述第一损失函数和第三损失函数例如可以在所述ANN的调整过程中被赋予不同的权重。
根据本发明的另一个方面,提出了一种人工神经网络(ANN)调整装置,所述ANN包括多个层并且被训练用于进行分类推理,所述装置包括:正反类划分装置,用于将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征;以及神经网络调整装置,用于以第一损失函数对所述ANN进行调整,所述第一损失函数规定所述正类特征与所述当前类别的当前类别特征中心的距离比所述反类特征与所述当前类别的当前类别特征中心的距离近。
所述第一损失函数可以是规定所述正类特征比所述反类特征相距所述当前类别特征中心要近一个预定阈值的损失函数。
优选地,该ANN调整装置还可以包括:距离最近反类确定装置,用于从所述反类特征中计算出与所述当前类别特征中心距离最近的类别的数据作为距离最近反类特征,并且其中,所述神经网络调整装置进一步用于以规定所述正类特征比所述距离最近反类特征相距所述当前类别特征中心近的第一损失函数对所述ANN进行调整。
所述第一损失函数可以基于下式进行计算:
优选地,所述神经网络调整装置可以进一步用于:计算所述正类特征、距离最近反类特征和/或所述正类中心的梯度;以及使用所述梯度更新所述正类特征、距离最近反类特征和/或所述正类中心。神经网络调整装置优选可以基于下式计算所述正类特征、所述距离最近反类特征和/或所述正类中心的梯度:
其中,Np'表示不满足距离限制条件的当前类别的数据样本数目。
所述正反类划分装置在完成所述当前类别下的调整之后,可以逐一将所述其他类别中的一个类别作为当前类别,所述神经网络调整装置则可针对该当前类别进行基于所述第一损失函数的ANN调整,以完成对作为当前训练批次的所述训练数据集的训练。
优选地,神经网络调整装置可以针对每个训练批次迭代进行针对每个类别逐一作为当前类别的基于所述第一损失函数的ANN调整。神经网络调整装置还可以在针对每个当前类别和/或每个训练批次中持续调整当前类别特征中心。
本发明的距离调整方案可以与其他损失函数的训练相结合。因此,神经网络调整装置还可以用于:在使用第一损失函数对所述ANN进行调整之前,使用第二损失函数对所述ANN进行初始训练。作为替换或是补充,神经网络调整装置还可用于:使用第三损失函数与第一损失函数对所述ANN进行联合调整。
根据本发明的一个方面,提出了一种人工神经网络(ANN)部署方法,包括:在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上部署如上方法调整得到的神经网络模型以执行推理。
根据本发明的又一个方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的人脸识别神经网络调整方法。
根据本发明的另一个方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的人脸识别神经网络调整方法。
根据本发明的再一个方面,提出了一种定点计算平台,其至少部分由FPGA、GPU和/或ASIC构成,用于基于根据如上方法得到的定点神经网络模型进行推理计算。
本发明的ANN调整方法和装置通过引入基于当前正类特征中心构造的对正反类特征相距该特征中心的距离加以限制的特征函数,能够拉近类内距,并增大类间距,同时能够迭代地调整特征中心以及各个样本对应的特征取值,由此获得各类别分离度更高的经训练神经网络模型。上述损失函数能够与其他损失函数的训练相结合,由此获得特征角分布更为均匀且聚类更为紧凑的训练结果,使得本发明尤其适用于细粒度分类任务。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了典型的CNN的示意图。
图2示出了根据本发明一个实施例的ANN调整方法的流程图。
图3示出了根据本发明另一个实施例的ANN调整方法的流程图。
图4示出了根据本发明一个实施例的损失函数作用于ANN的过程。
图5示出了根据本发明一个实施例的基于当前批次进行ANN调整的示意图。
图6示出了根据本发明一个实施例的ANN调整装置的示意图。
图7示出了根据本发明一个实施例可用于实现上述调整方法的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本申请的方案适用于各种人工神经网络(ANN),包括深度神经网络(DNN)、循环神经网络(RNN)与卷积神经网络(CNN)。以下以CNN为例进行一定程度的背景说明。
CNN基本概念
CNN在广泛的视觉相关任务中都达到最先进的性能。为帮助理解本申请中分析的基于CNN的分类算法(例如,人脸识别算法),首先介绍CNN的基础知识。
如图1所示,典型的CNN由一系列有序运行的层组成。
CNN神经网络由输入层、输出层和多个隐藏层串联组成。CNN的第一层读取输入值,例如输入图像,并输出一系列的激活值(也可称为特征图)。下面的层读取由上一层产生的激活值,并输出新的激活值。最后一个分类器(classifier)输出该输入图像可能属于的每一类别的概率。
这些层大致可分为带权重的层(如卷积层、全连接层、批量归一化层等)和不带权重的层(如池化层、ReLU层、Softmax层等)。在这其中,CONV层(Convolutional layers,卷积层)以一系列特征图作为输入,并以卷积内核卷积获得输出激活值。池化层通常与CONV层相连,用于输出每个特征图中的每个分区(sub area)的最大值或平均值,由此通过亚采样降低计算量,同时保持某种程度的位移、尺度和形变不变性。一个CNN中可以包括卷积层和池化层之间的多个交替,由此逐步降低空间分辨率并增加特征映射的数量。随后可以连接至至少一个全连接层,通过应用于输入特征向量上的线性变换,得到包括多个特征值的一维向量输出。
总体来说,带权重的层的操作可以表示为:
Y=WX+b,
其中W为权重值,b为偏置,X为输入激活值,Y为输出激活值。
不带权重的层的操作可以表示为:
Y=f(X),
其中f(X)为非线性函数。
在此,“权重”(weights)指代隐藏层中的参数,从广义上理解可以包括偏置,是通过训练过程习得的数值,并且在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。与权重值不同,激活值的分布会根据输入数据样本而动态变化。
在部署使用CNN进行推理(例如,图像分类)之前,首先需要对CNN进行训练。通过训练数据的大量导入,确定神经网络模型各层的参数,例如权重和偏置。
CNN的训练
训练模型表示通过有标签样本来学习(确定)所有权重和偏置的理想值。这些确定了的权重和偏置则能够在神经网络部署阶段对输入的特征值进行高准确率的推理,例如,对输入的图片进行正确的分类。
在监督式学习中,机器学习算法通过检查多个样本并尝试找出可最大限度地减少损失的模型来学习参数,这一过程称为经验风险最小化。
损失是对不良预测的惩罚。即,损失可以是一个表示对于单个样本而言模型预测的准确程度的数值。如果模型的预测完全准确,则损失为零,否则损失会较大。训练模型的目标是从所有样本中找到一组平均损失“较小”的权重和偏差。
在神经网络的训练过程中,为了量化目前的权重和偏置是否能够让网络输入拟合所有的网络输入,需要定义一个损失函数。由此,训练网络的目的可以转变为最小化权重和偏置的损失函数的过程。通常,使用梯度下降算法(多层神经网络训练中,使用反向传播算法)来实现上述最小化的过程。
在反向传播算法中,涉及前向传播和反向传播的重复迭代过程。前向传播过程是层间神经元通过权值矩阵的连接使得刺激(特征值)经每一层的激励函数不断由前一层向下一层传递的过程。而在反向传播中,本层的误差需要由下一层的误差反向推导。由此通过上述正向和反向传播的迭代过程不断调整权重和偏置,使得损失函数逐渐接近最小值,从而完成对神经网络的训练。
本发明的ANN调整方案
近些年来,人工神经网络(ANN)在目标检测、图像分类等领域都取得了重大进展。但对于细粒度分类任务,仍然会由于子类之间的区别较小且姿势、旋转等原因导致类内偏差较大而使得分类准确性难以得到大幅提升。为了解决这一问题,目前的研究大部分依靠于获得具有区分性的部位(比如鸟类的喙、脚等)的定位来产生细粒度特征,而这种方法通常依赖于局部位置的标注。本专利从损失函数着手,设计了一种有效的损失函数,能够拉近类内的距离,增大类间距离,从而提高分类效果。
图2示出了根据本发明一个实施例的ANN调整方法的流程图。在此,ANN是包括多个层的被训练用于分类的神经网络,尤其是诸如卷积神经网络的深度神经网络。
在步骤S210,将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征。
在此,可以假设分类任务的目标共M类。对于每个类别,训练数据集可以划分为两部分,即针对当前类别的正类集合以及针对所有其他类别(即,其他M-1个类别)的反类集合。可将正类集合和反类集合将分别其标记为Xp,Xn,其中 Np和Nn分别是正类和反类的样本数目。
在步骤S220,以规定所述正类特征比所述反类特征相距所述当前类别的当前类别特征中心近的第一损失函数对所述ANN进行调整。
由此,可以通过施加距离约束来有效拉近类内距离并增大类间距离,由此提升分类效果。本发明的ANN调整方法尤其涉及分类较多的细粒度分类应用场景,例如用于正确识别鸟类品种的卷积神经网络。
为了加强限制,可以引入距离间隔,即,要求正类的特征与其中心的距离不仅要比反类的特征与正类中心的距离小,还要小上一个预定阈值。上述预定阈值的值越大,训练出的类间分离度越高,但训练难度越大。相应地,预定阈值的值越小,训练难度越小,但训练出的类间分离度越低。可以根据具体应用场景合理,例如根据经验值等来确定上述预定阈值的取值。
在一个实施例中,第一损失函数可以规定正类特征比反类特征相距当前类别特征中心要近上一个预定阈值。上述限制可由如下公式表示:
其中,C是当前正类的特征中心,α是预定阈值。
在使用第一损失函数进行神经网络前向和反传计算时,为了减少计算量,可以不引入距离当前类别(即,当前正类)特征中心较远的反类特征,而仅仅选取会对分类准确性影响最大的当前类别附近类别的反类特征来进行计算。因此,在一个实施例中,本发明的ANN调整方法还可以包括额外的距离最近反类特征求取步骤。图3示出了根据本发明另一个实施例的ANN调整方法的流程图。
如图所示,在步骤S310,将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征。即,将训练数据集划分为正类和反类特征。
随后在步骤S320,从所述反类特征中计算出与所述当前类别特征中心距离最近的类别的数据作为距离最近反类特征。
在步骤S330,以规定所述正类特征比所述距离最近反类特征相距所述当前类别特征中心近的第一损失函数对所述ANN进行调整。由此,能够以更低的计算代价实现拉近类内特征并推远类间特征的有益效果。
在一个实施例中,第一损失函数基于下式进行计算:
由上公式可知,对于正类中的每个样本,若是与其类别中心的距离比距中心最近的反类距离还要小α的距离,则认为分类正确,不产生损失反之,产生分类损失。
相应地,在神经网络的反向传播过程中,以规定所述正类特征比所述距离最近反类特征相距所述当前类别的当前特征中心近的第一损失函数对所述ANN进行调整包括:计算正类特征、距离最近反类特征和/或正类中心的梯度;以及使用计算得到的梯度更新所述正类特征、距离最近反类特征和/或正类中心。在一个实施例中,优选同时计算正类特征、距离最近反类特征和正类中心的梯度,并基于上述梯度更新正类特征、距离最近反类特征和正类中心这三者。
图4示出了根据本发明一个实施例的损失函数作用于ANN的过程。如图4所示,在训练开始时,可以为当前类别随机初始化一个特征中心C。随后,计算训练数据集中正类集合和反类集合的每个数据样本的特征值。随后再计算每一个当前分类的正类特征是否都比距离最近的反类特征距离特征中心要近,例如,近上α的距离。例如,当正类特征符合式(1)时,则第一损失函数不产生损失,无需反传梯度。当距离最近的反类特征符合式(1)时,则第一损失函数不产生损失,无需反传梯度。当正类特征或距离最近的反类特征不符合式(1)时,则第一损失函数产生损失,则反传梯度以更新正类特征、当前正类特征中心和该距离最近的反类特征。在其他实施例中,只要基于其他判断标准在不同的情况下分开反传正类特征、正类特征中心和/或距离最近的反类特征。
具体地,可以基于下式计算所述正类特征、所述距离最近反类特征和所述正类中心的梯度:
其中,Np'表示不满足距离限制条件的当前类别的数据样本数目。
在一个实施例中,本发明的ANN调整方法还可以包括在完成当前类别下的调整之后,可以逐一将其他类别中的一个类别作为当前类别进行基于第一损失函数的ANN调整,以完成对作为当前训练批次的训练数据集的训练。换句话说,图2和3所示的操作可以看作是对一个训练批次数据的子批次训练。
图5示出了根据本发明一个实施例的基于当前批次进行ANN调整的示意图。假设分类任务的目标是M类,图2和3所示的训练数据集是一个批次的训练数据。则首先可以在步骤S510类别1设为主类,将其他类别设为反类,随后在步骤S520进行使得正类相距正类中心要近于反类(例如,距离最近的反类)的训练。随后该类别1所针对的子批次训练结束,并开始针对类别2为主类的子批次训练。应该理解的是,此时的第一损失函数是以类别2为主类而重新构建的。重复上述子批次训练过程直到M类中的每一类都训练完毕为止。由此,完成当前批次的子批次迭代训练。
上述批次训练同样可以是神经网络整体训练的一部分。在一个实施例中,本发明的ANN调整方法还可以包括针对每个训练批次迭代进行针对每个类别逐一作为当前类别的基于所述第一损失函数的ANN调整。换句话说,可以针对每一个训练批次,重复上述子批次迭代训练的过程,以作为批次迭代训练的一部分。
在根据本发明的ANN调整方案中,可以首先为每个类别随机初始化一个特征中心,并开始进行逐批次(batch)的训练。在每个批次中,可以包括多个子批次(mini-batch)。对于每个子批次,确定一个当前类别,以及属于该类别的正类特征,并经由基于该类别的当前类别中心构造的第一损失函数进行前向和反传调整,以迭代更新当前类别特征中心、当前正类特征和当前反类特征(优选地,距离最近当前反类特征)。在随后的子批次中,更换当前类别并基于当前类别中心重新构造第一损失函数并进行相应的计算、反传和更新。可以针对每个训练批次重复上述过程,直至训练结束。上述更新能够迭代地作用于各个特征和特征中心,由此实现有效性更高的训练,并且能够得到更为准确的神经网络模型。换句话说,当前类别特征中心可以在针对每个当前类别和/或每个训练批次中被持续调整。如下所述,在其他实施例中,在应用第一损失函数时,每个类别的特征中心的初始位置也可以不是随机化的初始位置,而是经过其他损失函数训练得到的,具有初步分布的初始位置。
根据不同的应用场景,可以直接使用本发明的权重调整的第一损失函数对所述ANN进行训练;也可以在使用第一损失函数对所述ANN进行调整之前,使用第二损失函数对所述ANN进行训练以确定各类的初始特征中心。换句话说,在本发明中,根据类别调整权重的第一损失函数可以是训练用损失函数,也可以是微调用损失函数。无论是微调还是训练,上述损失函数都是在用于神经网络的调整。在用作微调的情况下,可以首先使用一个其他的损失函数训练好一个神经网络模型,以使得各个特征之间具备一定的分离度。这时再使用本发明的第一函数进行微调,可以避免网络的过快收敛,识别效果也更好。
在使用第一函数对ANN进行的微调或是训练,还可以配合其他损失函数使用。在一个实施例中,第三损失函数与第一损失函数对所述ANN进行联合调整。优选地,第一损失函数和第三损失函数在所述ANN的调整过程中被赋予不同的权重,或者应用于ANN调整的不同阶段。
在一个实施例中,第三损失函数可以是以对分类特征中心的夹角进行约束的损失函数,由此使得各个特征中心的夹角分布趋于均匀。上述函数可以与本发明用于施加距离规则的损失函数结合使用,由此进一步提升多分类网络的分类精度。
优选地,在一个实施例中,可以首先使用第二损失函数(例如,常规的损失函数)来对ANN进行训练以确定各类的初始特征中心,而非直接使用第一损失函数从随机化分布的特征中心开始训练。随后,可以针对上述初始特征中心,应用根据本发明的调整方案,即,应用以规定正类特征比所述反类特征相距当前类别特征中心近的第一损失函数对ANN进行调整,由此进一步拉近同类的特征距离,并增大不同类特征之间的距离。随后,可以应用以对分类特征中心的夹角进行约束的第三损失函数,以便使得特征中心的分布更为均匀合理,同时降低网络的训练难度。可选地,也可以首先应用以对分类特征中心的夹角进行约束的第三损失函数,以便使得特征中心的分布更为均匀合理,随后再应用施加距离限制的本发明的第一损失函数。这时,可以保持正类中心的位置不变(即,不进行正类中心的反传),而仅对正类和反类特征进行更新调整,以使其各个类别特征的分布朝向各自的特征中心更为聚拢。由此,通过常规的第二损失函数,以及调整特征中心角度的第三损失函数和限制特征中心与本类别和其他类别特征的距离的本发明的第一损失函数的有机结合,能够在确保网络合理收敛的同时,获得类内分别更为紧凑且类间距更大的经训练ANN(例如,CNN)模型,尤其适用于子类众多的细粒度分类任务场景。
可以理解的是,在此的“第一”、“第二”和“第三”是为了说明本发明中提及的用以施加角度约束的损失函数、用于进行网络初始训练的损失函数以及进行联合训练的损失函数不完全相同,而非对这三者的次序或关系有任何规定或暗示。
ANN调整装置
本发明的上述调整方法可由特定的ANN调整装置实现。图6示出了根据本发明一个实施例的ANN调整装置的示意图。在此,该ANN包括多个层并且被训练用于进行分类推理。
ANN调整装置600包括正反类划分装置610和神经网络调整装置620。正反类划分装置610可以用于将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征。神经网络调整装置620则可用于以第一损失函数对所述ANN进行调整,所述第一损失函数规定所述正类特征与所述当前类别的当前类别特征中心的距离比所述反类特征与所述当前类别的当前类别特征中心的距离近。进一步地,第一损失函数可以是规定所述正类特征比所述反类特征相距所述当前类别特征中心要近一个预定阈值的损失函数。
在一个实施例中,该ANN调整装置还可以包括距离最近反类确定装置630,后者可以用于从反类特征中计算出与所述当前类别特征中心距离最近的类别的数据作为距离最近反类特征。随后,神经网络调整装置620可以用于以规定所述正类特征比所述距离最近反类特征相距所述当前类别特征中心近的第一损失函数对所述ANN进行调整。
优选地,第一损失函数可以基于下式进行计算:
神经网络调整装置620可以进一步用于反传与更新。在一个实施例中,神经网络调整装置620可以用于:计算所述正类特征、距离最近反类特征和/或所述正类中心的梯度;以及使用所述梯度更新所述正类特征、距离最近反类特征和/或所述正类中心。
优选地,神经网络调整装置620可以基于下式计算所述正类特征、所述距离最近反类特征和/或所述正类中心的梯度:
其中,Np'表示不满足距离限制条件的当前类别的数据样本数目。
正反类划分装置610在完成所述当前类别下的调整之后,逐一将所述其他类别中的一个类别作为当前类别,所述神经网络调整装置则针对该当前类别进行基于所述第一损失函数的ANN调整,以完成对作为当前训练批次的所述训练数据集的训练。
神经网络调整装置620针对每个训练批次迭代进行针对每个类别逐一作为当前类别的基于所述第一损失函数的ANN调整。神经网络调整装置620可以在针对每个当前类别和/或每个训练批次中持续调整当前类别特征中心。
神经网络调整装置620可以按照需要对神经网络进行训练和微调,例如,神经网络调整装置620可以进一步用于:在使用第一损失函数对ANN进行调整之前,使用第二损失函数对ANN进行初始训练。神经网络调整装置620还可进一步用于使用第三损失函数与第一损失函数对ANN进行联合调整。第一损失函数和第三损失函数在所述ANN的调整过程中可被赋予不同的权重,或应用于训练或是微调的不同阶段。
在一个实施例中,第三损失函数可以是以对分类特征中心的夹角进行约束的损失函数,由此使得各个特征中心的夹角分布趋于均匀。上述函数可以与本发明用于施加距离规则的损失函数结合使用,由此进一步提升多分类网络的分类精度。
在一个实施例中,本发明还包括一种人工神经网络(ANN)部署方法,用于在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上部署如上所述调整获得的神经网络模型以执行推理,例如,细粒度分类任务。定点量化的位宽例如可由所述FPGA、GPU和/或ASIC的位宽决定。
图7示出了根据本发明一个实施例可用于实现上述调整方法的计算设备的结构示意图。
参见图7,计算设备700包括存储器710和处理器720。
处理器720可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器720可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器720可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器710可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器710上存储有可处理代码,当可处理代码被处理器720处理时,可以使处理器720执行上文述及的神经网络调整方法。
在实际使用中,上述计算设备700可以是包括大容量存储装置710和CPU 720的通用计算设备,上述设备用于执行神经网络的训练。而根据本发明的调整方案获取的用于分类的神经网络则可在至少部分由FPGA、GPU和/或ASIC实现的定点计算平台上执行。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员应该理解的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可由执行规定的功能或操作的专用的基于硬件的系统实现,或者可由专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (28)
1.一种人工神经网络(ANN)调整方法,所述ANN包括多个层并且被训练用于进行分类推理,所述方法包括:
将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征;以及
以第一损失函数对所述ANN进行调整,所述第一损失函数规定所述正类特征与所述当前类别的当前类别特征中心的距离比所述反类特征与所述当前类别的当前类别特征中心的距离近。
2.如权利要求1所述的方法,其中,所述第一损失函数是规定所述正类特征比所述反类特征相距所述当前类别特征中心要近上一个预定阈值的损失函数。
3.如权利要求1所述的方法,还包括:
从所述反类特征中计算出与所述当前类别特征中心距离最近的类别的数据特征作为距离最近反类特征,
其中,以第一损失函数对所述ANN进行调整包括:
以规定所述正类特征比所述距离最近反类特征相距所述当前类别特征中心近的第一损失函数对所述ANN进行调整。
5.如权利要求3所述的方法,其中,以第一损失函数对所述ANN进行调整包括:
计算所述正类特征、距离最近反类特征和/或所述正类中心的梯度;以及
使用所述梯度更新所述正类特征、距离最近反类特征和/或所述正类中心。
7.如权利要求1所述的方法,还包括:
在完成所述当前类别下的调整之后,逐一将所述其他类别中的一个类别作为当前类别进行基于所述第一损失函数的ANN调整,以完成对作为当前训练批次的所述训练数据集的训练。
8.如权利要求7所述的方法,还包括:
针对每个训练批次迭代进行针对每个类别逐一作为当前类别的基于所述第一损失函数的ANN调整。
9.如权利要求7或8所述的方法,其中,所述当前类别特征中心在针对每个当前类别和/或每个训练批次中被持续调整。
10.如权利要求1所述的方法,所述方法包括:
在使用第一损失函数对所述ANN进行调整之前,使用第二损失函数对所述ANN进行初始训练。
11.如权利要求1所述的方法,还包括;
使用第三损失函数与第一损失函数对所述ANN进行联合调整。
12.如权利要求11所述的方法,其中,所述第一损失函数和第三损失函数在所述ANN的调整过程中被赋予不同的权重。
13.如权利要求1所述的方法,其中,所述ANN是被训练用于细粒度图像识别的神经网络。
14.一种人工神经网络(ANN)调整装置,所述ANN包括多个层并且被训练用于进行分类推理,所述装置包括:
正反类划分装置,用于将训练数据集按照当前所针对的类别划分为当前类别和其他类别,其中,属于所述当前类别的数据特征被称为正类特征,属于所述其他类别的数据特征被称为反类特征;以及
神经网络调整装置,用于以第一损失函数对所述ANN进行调整,所述第一损失函数规定所述正类特征与所述当前类别的当前类别特征中心的距离比所述反类特征与所述当前类别的当前类别特征中心的距离近。
15.如权利要求14所述的装置,其中,所述第一损失函数是规定所述正类特征比所述反类特征相距所述当前类别特征中心要近一个预定阈值的损失函数。
16.如权利要求14所述的装置,还包括:
距离最近反类确定装置,用于从所述反类特征中计算出与所述当前类别特征中心距离最近的类别的数据作为距离最近反类特征,
并且其中,所述神经网络调整装置进一步用于以规定所述正类特征比所述距离最近反类特征相距所述当前类别特征中心近的第一损失函数对所述ANN进行调整。
18.如权利要求16所述的装置,其中,所述神经网络调整装置进一步用于:
计算所述正类特征、距离最近反类特征和/或所述正类中心的梯度;以及
使用所述梯度更新所述正类特征、距离最近反类特征和/或所述正类中心。
20.如权利要求14所述的装置,其中,所述正反类划分装置在完成所述当前类别下的调整之后,逐一将所述其他类别中的一个类别作为当前类别,所述神经网络调整装置则针对该当前类别进行基于所述第一损失函数的ANN调整,以完成对作为当前训练批次的所述训练数据集的训练。
21.如权利要求20所述的装置,其中,所述神经网络调整装置针对每个训练批次迭代进行针对每个类别逐一作为当前类别的基于所述第一损失函数的ANN调整。
22.如权利要求20或21所述的装置,其中,所述神经网络调整装置在针对每个当前类别和/或每个训练批次中持续调整当前类别特征中心。
23.如权利要求14所述的装置,所述神经网络调整装置还用于:
在使用第一损失函数对所述ANN进行调整之前,使用第二损失函数对所述ANN进行初始训练。
24.如权利要求14所述的装置,所述神经网络调整装置还用于:
使用第三损失函数与第一损失函数对所述ANN进行联合调整。
25.一种人工神经网络(ANN)部署方法,包括:
在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上部署如权利要求1-14中任一项的方法调整得到的神经网络模型以执行推理。
26.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-14中任一项所述的方法。
27.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-14中任一项所述的方法。
28.一种定点计算平台,至少部分由FPGA、GPU和/或ASIC构成,用于部署基于根据权利要求1-14中任一项的方法获取的人工神经网络进行推理计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810653962.5A CN110633722B (zh) | 2018-06-22 | 2018-06-22 | 人工神经网络调整方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810653962.5A CN110633722B (zh) | 2018-06-22 | 2018-06-22 | 人工神经网络调整方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110633722A true CN110633722A (zh) | 2019-12-31 |
CN110633722B CN110633722B (zh) | 2023-07-14 |
Family
ID=68967953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810653962.5A Active CN110633722B (zh) | 2018-06-22 | 2018-06-22 | 人工神经网络调整方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633722B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111401307A (zh) * | 2020-04-08 | 2020-07-10 | 中国人民解放军海军航空大学 | 基于深度度量学习的卫星遥感图像目标关联方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120308122A1 (en) * | 2011-05-31 | 2012-12-06 | Nec Laboratories America, Inc. | Fast methods of learning distance metric for classification and retrieval |
CN106682734A (zh) * | 2016-12-30 | 2017-05-17 | 中国科学院深圳先进技术研究院 | 一种提升卷积神经网络泛化能力的方法及装置 |
CN106897390A (zh) * | 2017-01-24 | 2017-06-27 | 北京大学 | 基于深度度量学习的目标精确检索方法 |
CN107506717A (zh) * | 2017-08-17 | 2017-12-22 | 南京东方网信网络科技有限公司 | 无约束场景中基于深度变换学习的人脸识别方法 |
CN107679513A (zh) * | 2017-10-20 | 2018-02-09 | 北京达佳互联信息技术有限公司 | 图像处理方法、装置及服务器 |
CN107886073A (zh) * | 2017-11-10 | 2018-04-06 | 重庆邮电大学 | 一种基于卷积神经网络的细粒度车辆多属性识别方法 |
-
2018
- 2018-06-22 CN CN201810653962.5A patent/CN110633722B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120308122A1 (en) * | 2011-05-31 | 2012-12-06 | Nec Laboratories America, Inc. | Fast methods of learning distance metric for classification and retrieval |
CN106682734A (zh) * | 2016-12-30 | 2017-05-17 | 中国科学院深圳先进技术研究院 | 一种提升卷积神经网络泛化能力的方法及装置 |
CN106897390A (zh) * | 2017-01-24 | 2017-06-27 | 北京大学 | 基于深度度量学习的目标精确检索方法 |
CN107506717A (zh) * | 2017-08-17 | 2017-12-22 | 南京东方网信网络科技有限公司 | 无约束场景中基于深度变换学习的人脸识别方法 |
CN107679513A (zh) * | 2017-10-20 | 2018-02-09 | 北京达佳互联信息技术有限公司 | 图像处理方法、装置及服务器 |
CN107886073A (zh) * | 2017-11-10 | 2018-04-06 | 重庆邮电大学 | 一种基于卷积神经网络的细粒度车辆多属性识别方法 |
Non-Patent Citations (1)
Title |
---|
余成波等: "中心损失与Softmax损失联合监督下的人脸识别", 重庆大学学报 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111401307A (zh) * | 2020-04-08 | 2020-07-10 | 中国人民解放军海军航空大学 | 基于深度度量学习的卫星遥感图像目标关联方法和装置 |
CN111401307B (zh) * | 2020-04-08 | 2022-07-01 | 中国人民解放军海军航空大学 | 基于深度度量学习的卫星遥感图像目标关联方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110633722B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220108178A1 (en) | Neural network method and apparatus | |
US10275719B2 (en) | Hyper-parameter selection for deep convolutional networks | |
CN114092820A (zh) | 目标检测方法及应用其的移动目标跟踪方法 | |
EP3572984A1 (en) | Implementing traditional computer vision algorithms as neural networks | |
CN110555508A (zh) | 人工神经网络调整方法和装置 | |
US20170091619A1 (en) | Selective backpropagation | |
CN110826379B (zh) | 一种基于特征复用与YOLOv3的目标检测方法 | |
EP3570220B1 (en) | Information processing method, information processing device, and computer-readable storage medium | |
CN110598837A (zh) | 人工神经网络调整方法和装置 | |
US11704555B2 (en) | Batch normalization layer fusion and quantization method for model inference in AI neural network engine | |
US11704556B2 (en) | Optimization methods for quantization of neural network models | |
US11694301B2 (en) | Learning model architecture for image data semantic segmentation | |
CN110555340B (zh) | 神经网络计算方法和系统及相应的双神经网络实现 | |
KR102369413B1 (ko) | 영상 처리 장치 및 방법 | |
CN118355396A (zh) | 用于知识蒸馏的信任区域感知神经网络架构搜索 | |
CN111223128A (zh) | 目标跟踪方法、装置、设备及存储介质 | |
KR20220045424A (ko) | 인공 신경망을 압축하는 방법 및 장치 | |
CN114972850A (zh) | 多分支网络的分发推理方法、装置、电子设备及存储介质 | |
US20220159278A1 (en) | Skip convolutions for efficient video processing | |
CN110633722B (zh) | 人工神经网络调整方法和装置 | |
CN110598723B (zh) | 人工神经网络调整方法和装置 | |
CN115545143A (zh) | 神经网络训练的方法与装置、数据处理方法与装置 | |
MOHAMMED et al. | A New Image Classification System Using Deep Convolution Neural Network And Modified Amsgrad Optimizer | |
JP7221892B2 (ja) | 学習装置、学習方法、および学習プログラム | |
CN115270997B (zh) | 基于迁移学习的火箭目标姿态稳定判别方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200901 Address after: Unit 01-19, 10 / F, 101, 6 / F, building 5, yard 5, Anding Road, Chaoyang District, Beijing 100029 Applicant after: Xilinx Electronic Technology (Beijing) Co.,Ltd. Address before: 100083, 17 floor, four building four, 1 Wang Zhuang Road, Haidian District, Beijing. Applicant before: BEIJING DEEPHI INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |