[go: up one dir, main page]

CN111340226A - 一种量化神经网络模型的训练及测试方法、装置及设备 - Google Patents

一种量化神经网络模型的训练及测试方法、装置及设备 Download PDF

Info

Publication number
CN111340226A
CN111340226A CN202010155203.3A CN202010155203A CN111340226A CN 111340226 A CN111340226 A CN 111340226A CN 202010155203 A CN202010155203 A CN 202010155203A CN 111340226 A CN111340226 A CN 111340226A
Authority
CN
China
Prior art keywords
quantization
feature
neural network
network model
error
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
Application number
CN202010155203.3A
Other languages
English (en)
Other versions
CN111340226B (zh
Inventor
吴玉东
吴一超
梁鼎
于志鹏
吕元昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sensetime Technology Development Co Ltd
Original Assignee
Beijing Sensetime Technology Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Sensetime Technology Development Co Ltd filed Critical Beijing Sensetime Technology Development Co Ltd
Priority to CN202010155203.3A priority Critical patent/CN111340226B/zh
Publication of CN111340226A publication Critical patent/CN111340226A/zh
Application granted granted Critical
Publication of CN111340226B publication Critical patent/CN111340226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

本申请实施例提供了一种量化神经网络模型的训练及测试方法、装置及设备。其中,训练方法可以包括:获取训练数据;训练数据包括图像样本和标签;标签包括图像样本的身份标识;将训练数据输入量化神经网络模型进行量化处理,得到图像样本的量化特征;根据量化特征对量化神经网络模型进行训练,获得经训练的量化神经网络模型。所以实施本申请实施例,训练的量化神经网络模型采用了低比特量化处理,减少了运算量,提高了运算速率,能够更方便地应用在终端设备中,使用该量化神经网络模型进行人脸识别,能够最小化量化误差,提高量化神经网络模型的识别精度。

Description

一种量化神经网络模型的训练及测试方法、装置及设备
技术领域
本申请涉及图像处理领域,尤其涉及一种量化神经网络模型的训练及测试方法、装置及设备。
背景技术
人脸识别技术在实际中有着广泛的应用,凭借深度学习与卷积神经网络技术,近年来人脸识别精度取得了长足的发展。但是,随着神经网络模型预测越来越准确,神经网络层次越来越深,复杂的神经网络无法部署于移动端,更无法实现实时推理。
因此,目前亟需一种量化神经网络模型的训练方法,以解决上述技术问题。
发明内容
本申请实施例提供了一种量化神经网络模型的训练和测试方法、装置、设备及存储介质,能够解决现有技术的问题,训练量化神经网络模型,将复杂的神经网络简捷化,使其便于部署在移动端,采用量化神经网络模型进行人脸识别,能够提高识别精度。
第一方面,本申请实施例提供一种量化神经网络模型的训练方法,该方法包括:获取训练数据;所述训练数据包括图像样本和标签;所述标签包括所述图像样本的身份标识;将所述训练数据输入量化神经网络模型进行量化处理,得到所述图像样本的量化特征;根据所述量化特征对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
可以看到,首先,获取训练数据,训练数据中包括图像样本和标签,标签包括图像样本的身份标识;然后,将训练数据输入量化神经网络模型进行量化处理,获得量化特征;最后,根据量化特征,采用损失函数进行反向传播,对量化神经网络模型朝着损失函数值降低的方向训练,以使损失函数值最小,最终获得经训练的量化神经网络模型。因此实施本申请实施例,利用经训练的量化神经网络模型进行人脸识别时,量化神经网络模型能够对图像进行量化处理,在整个图像处理过程中,减少了运算量,提高了运算速率,更方便应用于终端设备上;采用损失函数对量化神经网络模型进行训练,以使误差最小化,提高量化神经网络模型的识别精度和识别正确率。
基于第一方面,在可能的实施方式中,所述标签还包括所述图像样本的全精度特征;所述方法还包括:将所述图像样本输入全精度的神经网络进行处理,得到所述全精度特征。
可以理解,量化神经网络模型是用低比特带宽表示的,在运用该量化神经网络模型进行量化处理时,会产生量化误差,若要计算量化误差,减小量化误差对人脸识别的影响,就需要全精度特征,因此标签中还包括图像样本的全精度特征,全精度特征是预先将图像样本输入全精度的神经网络中得到的。
基于第一方面,在可能的实施方式中,所述根据所述量化特征对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型,包括:根据所述量化特征和全精度特征,获得所述量化神经网络模型的损失函数的值;根据所述量化神经网络模型的损失函数的值,对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
可以理解,采用损失函数对量化神经网络模型进行反向传播时,是根据损失函数的值对量化神经网络模型进行训练的,目的是朝着降低损失函数的值的方向训练,以得到最小的损失函数的值,因此,需要先根据量化特征和全精度特征,获得所述量化神经网络模型的损失函数的值,再根据所述量化神经网络模型的损失函数的值,对所述量化神经网络模型进行训练,以获得经训练的量化神经网络模型。
基于第一方面,在可能的实施方式中,所述根据所述量化特征和所述全精度特征,获得所述量化神经网络模型的损失函数的值,包括:根据所述量化特征和所述全精度特征,获得每个量化特征的个体误差;所述个体误差为单个量化特征量化处理前后的类内偏差;所述类表示具有相同身份标识的图像样本对应的多个量化特征的集合;根据所述每个量化特征的个体误差,获得所述损失函数的与所述每个量化特征对应的第一参数;根据所述第一参数,获得所述损失函数的值。
可以看到,在求解损失函数的值时,需要首先根据量化特征和全精度特征求得每个量化特征的个体误差,再根据每个量化特征的个体误差求解,获得损失函数的与每个量化特征对应的第一参数值,最后根据第一参数的值求解获得损失函数的值。其中,本申请中的个体误差为单个量化特征量化处理前后的类内偏差,类表示具有相同身份标识的图像样本对应的所有单个量化特征的集合。例如,在人脸识别中,同一个人(同一身份标识)的人脸图像对应的量化特征为一类。
需要说明的是,个体误差改变了类内特征的结构,其影响的是类内特征的紧凑性,当量化神经网络模型用于人脸识别时,个体误差是影响识别精度的关键,将个体误差以角度裕量的形式引入损失函数中,使得损失函数(的第一参数)中包含有个体误差项,这样在采用损失函数进行反向传播以训练量化神经网络模型,使得量化误差最小化,从而提高量化神经网络模型的识别精度。因此,实施本申请实施例,采用该量化神经网络模型进行人脸识别,能够提高量化神经网络模型的识别精度,且该量化神经网络模型更适宜应用在终端设备上。
基于第一方面,在可能的实施方式中,所述根据所述量化特征和所述全精度特征,获得每个量化特征的个体误差,包括:根据所述量化特征和所述全精度特征,获得所述每个量化特征的量化误差和所述每个量化特征的类误差;所述量化误差为单个量化特征量化处理前后的偏差;所述类误差为单个量化特征量化处理前后的类间偏差;根据所述量化误差和所述类误差,获得所述每个量化特征的个体误差。
可以看到,需要先根据量化特征和全精度特征获得每个量化特征的量化误差和每个量化特征的类误差,再根据每个量化特征的量化误差和每个量化特征的类误差获得每个量化特征的个体误差。本申请中,对于单个量化特征来说,按照类内和类间的影响,将量化误差分为了类误差和个体误差,其中,量化误差为量化处理前后单个量化特征的偏差,类误差为量化处理前后单个量化特征的类间偏差,类误差影响类间可分性,个体误差影响类内紧凑性。
基于第一方面,在可能的实施方式中,在角度空间中,所述每个量化特征的量化误差为与所述每个量化特征对应的所述全精度特征与所述量化特征之间的夹角;所述每个量化特征的类误差为全精度特征的类中心与量化特征的类中心之间的夹角;其中,所述全精度特征的类中心为具有相同身份标识的图像样本对应的所有全精度特征的平均值,所述量化特征的类中心为具有相同身份标识的图像样本对应的所有量化特征的平均值;所述根据所述量化误差和所述类误差,获得所述每个量化特征的个体误差,包括:将所述每个量化特征的量化误差与所述每个量化特征的类误差作差,再取绝对值,获得所述每个量化特征的个体误差。
可以看到,本申请中,根据人脸识别的超球分布理论,即特征都分布在固定半径的超球上,在角度空间,对于每个量化特征来说,将量化误差定义为量化特征与全精度特征之间的夹角,将量化特征的类中心与全精度特征的类中心之间的夹角定义为类误差,而角度空间的个体误差为量化误差与类误差的差值的绝对值。所以,对于每个量化特征来说,先根据量化特征和全精度特征获得每个量化特征的量化误差和每个量化特征的类误差,进而根据每个量化特征的量化误差和每个量化特征的类误差获得每个量化特征的个体误差。
第二方面,本申请实施例还提供了一种量化神经网络模型的训练装置,包括:
获取模块,用于获取训练数据;所述训练数据包括图像样本和标签;所述标签包括所述图像样本的身份标识;
量化模块,用于将所述训练数据输入量化神经网络模型进行量化处理,得到所述图像样本的量化特征;
训练模块,用于根据所述量化特征,采用损失函数对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
基于第二方面,在可能的实施方式中,所述标签还包括所述图像样本的全精度特征;所述装置还包括:预处理模块,用于将所述图像样本输入全精度的神经网络进行处理,得到所述全精度特征。
基于第二方面,在可能的实施方式中,所述训练模块具体用于:根据所述量化特征和所述全精度特征,获得所述量化神经网络模型的损失函数的值;根据所述量化神经网络模型的损失函数的值,对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
基于第二方面,在可能的实施方式中,所述训练模块还用于:根据所述量化特征和所述全精度特征,获得每个量化特征的个体误差;所述个体误差为单个量化特征量化处理前后的类内偏差;所述类表示具有相同身份标识的图像样本对应的多个量化特征的集合;根据所述每个量化特征的个体误差,获得所述损失函数的与所述每个量化特征对应的第一参数;根据所述第一参数,获得所述损失函数的值。
基于第二方面,在可能的实施方式中,所述训练模块还用于:根据所述量化特征和所述全精度特征,获得所述每个量化特征的量化误差和所述每个量化特征的类误差;所述量化误差为单个量化特征量化处理前后的偏差;所述类误差为单个量化特征量化处理前后的类间偏差;根据所述量化误差和所述类误差,获得所述每个量化特征的个体误差。
基于第二方面,在可能的实施方式中,在角度空间中,所述每个量化特征的量化误差为与所述每个量化特征对应的所述全精度特征与所述量化特征之间的夹角;所述每个量化特征的类误差为全精度特征的类中心与量化特征的类中心之间的夹角;其中,所述全精度特征的类中心为具有相同身份标识的图像样本对应的所有全精度特征的平均值,所述量化特征的类中心为具有相同身份标识的图像样本对应的所有量化特征的平均值;所述训练模块还用于:将所述每个量化特征的量化误差与所述每个量化特征的类误差作差,再取绝对值,获得所述每个量化特征的个体误差。
本申请实施例提供的装置中的各个功能模块具体用于实现第一方面所述的方法。
第三方面,本申请实施例提供一种量化神经网络模型的测试方法,包括:获取人脸图像;将所述人脸图像输入经训练的量化神经网络模型,进行处理,得到人脸图像对应的量化特征;其中,所述量化神经网络模型为权利要求1-6任一项所述的量化神经网络模型;将所述人脸图像对应的量化特征与数据库中预存的特征进行对比,获得人脸识别结果。
可以理解,使用训练好的量化神经网络模型进行人脸识别时,首先,获取人脸图像,人脸图像可以是一张人脸图像,也可以是从不同角度拍摄的各个人的多张图像,然后,将人脸图像输入训练好的量化神经网络模型进行处理,得到人脸图像对应的量化特征,其中,量化神经网络模型为上述第一方面中任一实施例所述的量化神经网络模型,最后,将该人脸图像对应的量化特征与数据库中预存的特征进行对比,获得人脸识别结果。实施本申请实施例,采用量化神经网络模型进行人脸识别,可以提高识别精度和识别正确率。
需要说明的是,在本申请实施例中,所谓量化神经网络模型的测试可以包括验证已完成训练的量化神经网络模型是否可靠,即准确率是否满足需求,是否需要进一步调整网络参数,还可以包括使用已完成训练、或是已完成训练和测试的量化神经网络模型来进行人脸识别的应用。也就意味着,针对第一方面及各种可能实现的方式,还可以采用第三方面所提及的实现方式,来对完成训练的量化神经网络模型进行测试和/或应用。
第四方面,本申请实施例提供一种量化神经网络模型的测试装置,包括:
获取模块,用于获取人脸图像;
量化神经网络模块,用于将所述人脸图像输入经训练的量化神经网络模型,进行处理,得到人脸图像对应的量化特征;其中,所述量化神经网络模型为权利要求1-6任一项所述的量化神经网络模型;
结果输出模块,用于将所述人脸图像对应的量化特征与数据库中预存的特征进行对比,获得人脸识别结果。
本申请实施例提供的装置中的各个功能模块具体用于实现第三方面所述的方法。
第五方面,本申请实施例提供一种量化神经网络模型的训练设备,包括处理器、通信接口以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于接收或者发送数据;其中,所述处理器执行所述指令时,执行如上述第一方面或者第一方面的任意具体实现方式中所描述方法。
第六方面,本申请实施例提供一种非易失性存储介质,用于存储程序指令,当该程序指令应用于量化神经网络模型的训练装置时,可用于实现第一方面所描述的方法。
第七方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括程序指令,当该计算机程序产品被量化神经网络模型的训练装置执行时,该装置执行前述第一方面所述方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面的任一种可能的设计提供的方法的情况下,可以下载该计算机程序产品,并在量化神经网络模型的训练设备上执行该计算机程序产品,以实现第一方面所述方法。
第八方面,本申请实施例提供一种量化神经网络模型的测试设备,包括处理器、通信接口以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于接收或者发送数据;其中,所述处理器执行所述指令时,执行如上述第三方面或者第三方面的任意具体实现方式中所描述方法。
第九方面,本申请实施例提供一种非易失性存储介质,用于存储程序指令,当该程序指令应用于量化神经网络模型的测试装置时,可用于实现第三方面所描述的方法。
第十方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括程序指令,当该计算机程序产品被量化神经网络模型的测试装置执行时,该装置执行前述第三方面所述方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第三方面的任一种可能的设计提供的方法的情况下,可以下载该计算机程序产品,并在量化神经网络模型的测试设备上执行该计算机程序产品,以实现第三方面所述方法。
可以看到,本申请实施例提供了一种量化神经网络模型的训练和测试方法,其中,该量化神经网络模型用于开集的人脸识别中。在进行训练时,首先,获取训练数据,训练数据包括图像样本和标签,标签中包括图像样本的身份标识和全精度特征,其中全精度特征是预先将图像样本输入全精度的神经网络模型中得到的;然后,将训练数据输入量化神经网络模型中进行量化处理,获得量化特征;其次,根据量化特征和全精度特征,获得每个量化特征的量化误差和每个量化特征的类误差,其中量化误差为量化处理前后单个量化特征的偏差,类误差为量化处理前后单个量化特征的类间偏差。在计算时,基于人脸识别的超球分布理论,量化误差为每个全精度特征与每个量化特征之间的夹角,将类误差定义为全精度特征的类中心与量化特征的类中心之间的夹角;再次,根据每个量化特征的量化误差和每个量化特征的类误差,计算得到每个量化特征的个体误差,再将每个量化特征的个体误差作为角度裕量引入损失函数中;最后,根据损失函数的值,采用包含有每个量化特征的个体误差的损失函数对量化神经网络模型进行训练,最终获得经训练的量化神经网络模型。所以本申请实施例,对于单个量化特征来说,在角度空间将量化误差分解为类误差和个体误差,其中,类误差影响类间可分性,个体误差影响类内紧凑性;将个体误差作为角度裕量引入损失函数中,利用该损失函数对量化神经网络模型进行训练,获得训练好的量化神经网络模型;该量化神经网络模型采用低比特带宽进行训练,使用该量化神经网络模型进行人脸识别,能够使运算量减少,计算效率更高,更方便地应用于终端设备上;且该量化神经网络模型能够使量化误差最小化,提高量化神经网络模型的识别精度。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种量化神经网络模型的训练方法示意图;
图2为本申请实施例提供的又一种量化神经网络模型的训练方法示意图;
图3为本申请实施例提供的图像样本的特征示意图;
图4为本申请实施例提供的各误差之间关系的示意图;
图5为本申请实施例提供的一种量化神经网络模型的测试方法示意图;
图6为本申请实施例提供的一种系统架构示意图;
图7为本申请实施例提供的一种量化神经网络模型的训练装置示意图;
图8为本申请实施例提供的一种量化神经网络模型的训练设备示意图;
图9为本申请实施例提供的一种量化神经网络模型的测试装置示意图;
图10为本申请实施例提供的一种量化神经网络模型的测试设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
需要说明的是,当在本说明书和所附权利要求书中使用时,术语“包括”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列单元/器件的系统、产品或者装置没有限定于已列出的单元/器件,而是可选地还包括没有列出的单元/器件,或者还可选地包括这些产品或者装置固有的其他单元/器件。
还应当理解,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”或“在…的情况下”。
人脸识别分为开集任务的人脸识别和闭集任务的人脸识别,在实际生活中大部分的人脸识别是基于开集任务进行的,为方便理解,这里对开集任务的人脸识别和闭集任务的人脸识别的区别作以简单介绍。
开集(open-set)任务的人脸识别和闭集(close-set)任务的人脸识别的主要不同体现在人脸识别模型的训练和测试方面。close-set就是我们用来测试的人脸全部都是训练集里的人,不会出现训练集之外的人。这种情况下,训练人脸识别模型就相当于训练分类模型,我们只需要能够很好的对训练集中的每个人进行分类就可以了。
但是在大多数应用场景中,很大可能会出现训练集之外的人,这个时候就需要open-set 了。open-set就是用于测试的人不在训练集里,这个时候训练人脸识别模型其实是相当于训练一个特征提取器,训练好这个特征提取器之后这个训练集就没用了。举例来说,公司人脸识别,我们训练的时候不一定要使用公司的人的照片,因为我们只是需要训练一个特征提取器,所以可以用网上的训练集来训练模型,测试的时候我们才需要公司的人的照片。假设library 中存储有公司所有人的照片,face-a是需要识别的人脸照片。在用训练集训练好一个特征提取器以后,我们先给训练好的特征提取器输入library中存储的人脸,这样我们就得到library 中每个人脸对应的特征向量,这就是我们的特征向量库,现在识别照片face-a,输入特征提取器,得到它的特征向量,然后将该特征向量与特征向量库里的每一个特征向量进行比较,就可以判断这个face-a是library里的哪个人脸,或者判断它不在library中。
随着神经网络层次的不断加深,其内存占用量也越来越大,由于内存消耗和运行速度的限制,在移动终端部署复杂的神经网络难以实现。量化技术作为解决这个问题的技术之一,不仅能够降低数据带宽,减少内存占用,而且可以加速推理。
目前的量化研究主要面向普通的闭集任务,如ImageNet等,而日常生活中应用的大部分都是基于开集任务的人脸识别,针对开集任务的人脸识别的量化研究十分匮乏,开集任务的人脸识别属于度量学习的范畴,需要将同一身份的不同照片映射到度量空间的同一个点附近,将不同身份的照片映射的越远越好,因而开集任务的人脸识别对量化引入的误差(即量化误差)更加敏感,导致人脸识别正确率下降很多。
为减小量化误差,提高人脸识别的精度,参考图1所示,本申请实施例提供了一种量化神经网络模型的训练方法,该方法包括但不限于以下步骤:
S101、获取训练数据,训练数据包括图像样本和标签,其中,标签包括图像样本的身份标识。
获取训练数据,训练数据中包括图像样本和标签,图像样本中包括多种不同的身份的图像样本,且同一身份的图像样本可以有很多张,在人脸图像中,图像样本包括很多人的多张人脸图像,每个人的人脸图像包含从不同角度拍摄的多张图像;标签包括图像样本的身份标识,例如,在人脸图像中,身份标识可以为ID,用同一个ID标识同一个人所对应的多张图像样本,不同ID标识不同人对应的图像样本。
在一种实施例中,标签还包括图像样本的全精度特征,图像样本的全精度特征可以通过预先将图像样本输入全精度的神经网络模型中得到。在训练全精度的神经网络模型的过程中,数据是以全精度的形式存在,并且以全精度的形式进行加、乘等运算的,经过多次训练最终得到训练好的全精度的神经网络模型,因此,在将图像样本输入训练好的全精度的神经网络模型的过程中,得到的特征也是全精度特征。
S102、将训练数据输入量化神经网络模型进行量化处理,得到图像样本的量化特征。
将图像样本和标签输入量化神经网络模型进行量化处理,量化神经网络模型对图像样本进行量化处理的过程,实质上也是提取各个图像样本的特征的过程,只不过量化神经网络模型中的数据一直是用低比特的形式表示的,将权重和激活量化为低精度的定点整数,进行有效的位运算或整数运算,所以得到的是量化特征。
量化神经网络模型的结构与传统的神经网络模型类似或相同,包括输入层、卷积层、池化层、全连接层、输出层等。卷积层的主要作用是提取图像特征,卷积层中包括多个卷积核,每一个卷积核都可以提取特定的特征,不同的卷积核提取不同的特征,将图像样本经过卷积层(包括多个卷积核)后,可以提取到图像的多维特征。举例来说,输入一张人脸的图像样本,使用某一卷积核提取到眼睛的特征,用另一个卷积核提取嘴巴的特征等等。池化层的主要作用是通过再次提取特征来降低维度,将卷积层输出的特征降维或卷积层输出的特征图像缩小,可以得到缩小的图像等。只不过在卷积、池化等运算过程中,权重、激活量等数据是以低比特形式存在的,并且进行卷积、加乘等运算,而并非全精度形式,因此将图像样本输入量化神经网络模型后,得到量化特征。
S103、根据量化特征对量化神经网络模型进行训练,获得经训练的量化神经网络模型。
本申请中,根据量化特征,采用损失函数对量化神经网络模型进行反向传播,目的是使损失函数的输出值最小。实际上,损失函数的输出值越小,说明输出结果与目标值越接近。在用量化神经网络模型进行人脸识别的过程中,损失函数输出值越小,则说明该量化神经网络模型的识别精度越高,也就是人脸识别正确率越高。因此,在训练过程中,使用损失函数进行反向传播,以改变前面各层中的参数,使得损失函数的输出值朝着降低的方向训练,经过不断的训练,最终使损失函数的输出值最小,得到训练好的神经网络模型。
实质上,当损失函数输出值最小的情况下,也就意味着,将图像样本输入该量化神经网络模型后得到的量化特征,与将图像样本输入全精度的神经网络模型后得到的全精度特征的相似度是最高的,当用该量化神经网络模型进行人脸识别的情况下,识别精度也是最高的。
需要说明的是,利用量化神经网络模型对图像进行量化处理的过程中,虽然减少了运算量,提高了运算速度,但同时也产生了量化误差。为了减小量化误差的影响,提高量化神经网络模型的识别精度,本申请在角度空间重新定义了开集任务的人脸识别过程中产生的量化误差,并针对量化误差对开集人脸识别精度的影响进行探究与分析;通过分析量化误差对类内和类间分布的影响,将量化误差分解为类误差(class error)和个体误差(individual error);提出了新的损失函数。参见图2,具体描述为:
S1031、根据量化特征和全精度特征,获得每个量化特征的量化误差和每个量化特征的类误差,进而获得每个量化特征的个体误差。
基于人脸识别的超球分布理论可以知道,人脸识别的量化特征归一化后都分布在固定半径的超球面上,量化误差可以看作是原始分布上的旋转。旋转一致性意味着类内紧致性不受类旋转的影响,可以保持与全精度神经网络模型相同的特征识别率。本申请在角度空间(超球面上的角度空间)重新定义了开集任务的人脸识别过程中产生的量化误差,对单个特征来说,量化误差(Quantization Errors,QEs)定义为全精度(Full Precision,FP)特征与量化特征之间的夹角,且量化误差为量化处理前后单个量化特征的偏差,又将量化误差分解为类误差(class error)和个体误差(individual error),类误差为量化处理前后单个量化特征的类间偏差,个体误差为量化处理前后单个量化特征的类内偏差。通过分析量化误差对类内和类间分布的影响,得出:类误差是由量化引起的类的整体旋转,不改变类间的可分离性;个体误差是每个量化特征的类内偏差,它代表了类内结构的变化,这从本质上影响了量化神经网络模型的性能。
参见图3所示,图3为本申请实施例提供的特征示意图。其中,左侧为某一身份标识的图像样本对应的全精度特征结构100(将某一身份标识的图像样本输入全精度的神经网络模型中,得到全精度特征),该全精度特征结构100为超球面上的一部分,图中的小圆圈表示单个全精度特征向量,大圆圈表示该全精度特征结构100的类中心11,该类中心11通过求所有单个全精度特征向量的平均值得到,图中的星星表示全精度特征结构100中的一个样本特征12(该样本特征与右侧图中量化特征结构200中的样本特征22相对应)。
右侧为同一身份标识的图像样本对应的量化特征结构200(将同一身份标识的图像样本输入量化神经网络模型中,得到量化特征),该量化特征结构200也为同一超球面上的一部分,图中的小圆圈表示单个量化特征向量,大圆圈表示该全精度特征结构200的类中心21,该类中心21通过求所有量化特征向量的平均值得到,图中的星星表示量化特征结构200中的一个样本特征22(该样本特征22对应着左侧图中全精度特征结构100中的样本特征12)。
参考图3所示的示意图,下面说明如何根据量化特征和全精度特征获得每个量化特征的量化误差以及每个量化特征的类误差的,又是怎样根据每个量化特征的量化误差和每个量化特征的类误差获得每个量化特征的个体误差的。
将全精度特征结构100的类中心11、量化特征结构200的类中心21分别与球心的连线形成的夹角称为类误差,也就是图中的θ1,该类误差θ1表征量化前后该类(该身份标识所对应的图像样本的量化特征)的整体偏差(需要说明的是,类误差为单个量化特征量化处理前后的类间偏差,所以个体样本特征的类误差与同一类的类样本特征的类误差相等),该类误差影响的是类间可分性(即不同身份标识的图像所对应的特征之间的可分性)。将样本特征12、样本特征22分别与球心的连线形成的夹角称为量化误差,也就是图中的θ2,该量化误差θ2表征量化前后该样本特征22的偏差(量化误差为全精度特征与量化特征之间的夹角)。将量化误差θ2与类误差θ1的差值的绝对值称为个体误差,即|θ21|,该个体误差为量化处理前后样本特征22的类内偏差,个体误差影响的是类内紧凑性。
需要说明的是,图3中θ1和θ2只是示意图,实际中,θ1和θ2均位于同一固定半径的超球面上,θ1表示两个类中心的夹角,θ2表示同一样本在量化前后的特征的夹角,θ1和θ2不一定有公共角,确定的是,两个类中心之间的夹角为类误差,两个样本特征之间的夹角为量化误差,量化误差与类误差的差值的绝对值(如果差值是负数,则取绝对值)为个体误差。
参见图4,图4是本申请实施例提供的量化误差、类误差和个体误差之间关系的示意图。图4中,同样,左侧图中大圆圈表示全精度特征结构100的类中心11,星星表示全精度特征结构10中的一个样本特征12,右侧图中大圆圈表示量化特征结构200的类中心21,靠近下方的星星表示与样本特征12相对应的样本特征22。为了更加清晰体现各误差的意义,以欧几里德距离来表示各误差的话,则线段c表示量化特征的量化误差,线段a表示量化特征的类误差,线段b表示量化特征的个体误差。假设如果不存在个体误差,只存在类误差,那么样本特征22将位于样本特征23的位置,但由于有了个体误差,个体误差影响了类内紧凑性,改变了类内结构,所以实际与样本特征12相对应的为样本特征22的位置。
S1032、根据每个量化特征的个体误差,获得损失函数中与每个量化特征对应的第一参数的值,进而获得损失函数的值。
因为个体误差改变类内结构,影响了类内紧凑性,当量化神经网络模型用于人脸识别时,进而会影响该量化神经网络模型的识别精度,所以通过将个体误差作为一个因式,添加到损失函数的第一参数中,或者可以说,将个体误差作为损失函数的角度裕量引入损失函数中,来减小量化误差,提高量化神经网络模型的识别精度。前面得出了每个量化特征的个体误差,根据每个量化特征的个体误差可以获得损失函数中与每个量化特征相对应的第一参数的值,再根据相对应的第一参数的值,获得损失函数的值。这里的损失函数的第一参数指的是损失函数中的某一个角度参数,当损失函数不同的情况下,这个角度参数不同,根据具体的损失函数的形式具体分析。
例如,在人脸识别中,常用的主流的基于余弦的(cosine-based)softmax交叉熵损失函数:
Figure BDA0002402846870000091
其中,参数
Figure BDA0002402846870000092
参数
Figure BDA0002402846870000093
为wj与fi之间的夹角,wj表示全连接层中的第j个权重向量(j的取值范围是[0,类别个数-1]),fi表示样本特征中的第i个量化特征向量,参数m是设置的一个惩罚项,一般取为0.5。
为了提高量化神经网络模型的识别精度和识别率,将上述的个体误差|θ21|添加至基于余弦的softmax交叉熵损失函数的参数
Figure BDA0002402846870000101
中,获得第一参数
Figure BDA0002402846870000102
(其中λ为一超参数,λ大,惩罚项大,λ小,惩罚项小,在具体应用中,根据实际情况进行调整其大小)的值,再将第一参数的值带入损失函数中,获得新的损失函数的值,因此,根据个体误差可以获得损失函数的第一参数的值,进而获得损失函数的值。
S1033、根据量化神经网络模型的损失函数的值,对量化神经网络模型进行训练,获得经训练的量化神经网络模型。
利用量化神经网络模型的损失函数进行反向传播,根据损失函数的值,对量化神经网络模型进行训练,目的是使损失函数输出的值最小,因为损失函数输出的值越小,代表得到的量化特征越接近于全精度特征,在利用该量化神经网络模型进行人脸识别时,识别精度与正确率就越高,所以朝着损失函数值下降的方向去训练,最终使损失函数的值最小,则获得经训练的量化神经网络模型。
可以看到,本申请实施例提供了一种量化神经网络模型的训练方法,基于人脸识别的超球分布理论(即特征都分布在固定半径的超球上),在角度空间定义了量化误差,对于单个量化特征来说,并将量化误差分解为类误差和个体误差,其中,类误差影响类间可分性,个体误差影响类内紧凑性;将个体误差作为角度裕量引入损失函数中,利用该损失函数对量化神经网络模型进行训练,获得训练好的量化神经网络模型;利用该量化神经网络模型进行人脸识别的情况下,能够使量化误差最小化,提高量化神经网络模型的识别精度;该量化神经网络模型也可称为低比特人脸识别模型,其进行了量化处理操作,运用低比特带宽,减少图像处理过程的运算量,提高运算速率,更方便适宜应用于终端设备上。
参见图5,本申请实施例还提供了一种量化神经网络模型的测试方法,该方法包括但不限于以下步骤:
S201、获取人脸图像;
获取人脸图像,人脸图像可以是一张图像,也可以是不同人的不同角度拍摄的多张人脸图像,可以根据具体测试场景或应用场景中的具体情况,来获取相应的人脸图像。本申请中对人脸图像的获取方式不做具体限定。
S202、将人脸图像输入经训练的量化神经网络模型进行处理,得到人脸图像对应的量化特征。
将获取的人脸图像输入经训练的量化神经网络模型中,进行处理,得到人脸图像的量化特征。其中,量化神经网络模型是基于多种不同身份的图像样本和标签进行训练得到的,标签包括图像样本的身份标识,且量化神经网络模型是采用损失函数进行训练,其中损失函数中引入了个体误差作为角度裕量,而个体误差是影响量化神经网络模型识别精度的关键。其中,个体误差是根据量化误差和类误差求解得到的,量化误差是指量化特征和全精度特征得到的偏差,根据超球分布理论,图像特征都分布在超球平面上,对于单个特征样本来说,角度空间的量化误差是指量化特征和全精度特征的角度偏差,类误差是指同一身份标识的图像样本的所有量化特征样本的平均值与所有全精度特征的平均值的角度偏差。
需要说明的是,该量化神经网络模型在训练过程中,是基于低比特带宽进行的,使得神经网络模型便捷化,减少了数据的运算量,提高图像处理速率。
S203、将人脸图像的量化特征与数据库中预存的特征进行对比,获得人脸识别结果。
数据库中预存有人脸图像的特征,将量化神经网络模型输出的量化特征与数据库中存储的特征进行对比,输出最终结果。其中,输出结果可以为相似度(百分比或小数)、属性、名称、成功/失败等等。
在一种具体实施例中,数据库中预存的特征可以为人脸图像对应的全精度特征,将人脸图像的量化特征与数据库中预存的人脸图像的全精度特征进行匹配、计算,输出由该量化神经网络模型量化得到的量化特征与全精度特征的相似度,从而达到测试的效果。
在一种具体应用场景中,公司员工通过人脸识别方式来实现上下班打卡,数据库中预存的特征可以为公司所有员工的人脸图像对应的特征,人脸图像为任一员工的人脸图像,将量化神经网络模型输出的该员工的人脸图像的量化特征与数据库中预存的公司所有员工的人脸图像的特征进行对比或匹配,最终输出该员工的姓名,完成人脸识别打卡。
需要说明的是,本申请实施例中的S203是可选的,在实际应用中,利用量化神经模型来得到所需要的结果(例如进行人脸识别、获得人脸识别精度等)还可以通过其他方式,本申请对此并不作限制。
可以看到,本申请实施例提供了一种量化神经网络的测试方法,首先,获取人脸图像;然后将人脸图像输入训练好的量化神经网络模型进行处理,得到人脸图像对应的量化特征;最后将人脸图像的量化特征与数据库中预存的特征进行对比或匹配,以获得输出结果,其中输出结果可以为正确率、图像名称、通过/未通过等等。所以实施本申请实施例,采用包含有个体误差的损失函数进行训练得到量化神经网络模型后,使用该量化神经网络模型进行人脸识别,提高了人脸识别的精度和正确率,又该量化神经网络模型采用了低比特带宽进行量化处理,减少了图像处理过程中的运算量,降低了内存消耗,所以该量化神经网络模型能够更加方便地应用于终端设备上。
参考图6,图6是本申请实施例提供的一种系统架构500,该系统架构500中,数据采集设备560用于采集训练数据,本申请实施例中训练数据包括图像样本和标签,其中,标签中包括图像样本的身份标识以及图像样本的全精度特征,图像样本的全精度特征是预先将图像样本输入全精度的神经网络模型中获得的,图像样本包括多个身份标识的多个图像。
在采集到训练数据之后,数据采集设备560将这些训练数据存入数据库530,训练设备 520基于数库530中维护的训练数据训练得到量化神经网络模型513。具体为:训练设备530 获取数据库中的训练数据,并对图像样本进行量化处理,得到图像样本的量化特征,训练设备530根据量化特征和全精度特征,获得量化误差、类误差,进而得到个体误差,通过将个体误差添加到损失函数的参数中,获得损失函数的第一参数(为了区分为添加个体误差之前的损失函数的参数,因此,称为损失函数的第一参数)的值,根据损失函数的第一参数的值,通过计算获得损失函数的值,再根据损失函数的值,采用该损失函数进行反向传播,经过多次训练,最终使得损失函数的输出值最小,获得经训练的量化神经网络模型541。
在训练好量化神经网络模型541后,可以对该量化神经网络模型541进行测试,以开集的人脸识别为例,对测试过程描述如下:通过数据采集设备510采集人脸图像,存入数据库 520中,然后通过I/O接口544输入至训练好的量化神经网络模型541中,或者也可以是,终端设备560通过I/O接口544将人脸图像输入至量化神经网络模型541中,该量化神经网络模型541对人脸图像进行量化处理,获得量化特征,并将量化特征输出至其他辅助模块543,其他辅助模块543将量化神经网络模型541输出的量化特征与数据存储系统550中存储的特征进行比对,通过I/O接口544输出最终结果,其中,输出结果可以为人脸识别正确率,也可以为通过/未通过,也可以为属性、名称、姓名等。例如,上述的企业员工通过人脸识别进行打卡,输出结果为员工姓名;高铁站乘车人员通过人脸识别进站乘车,输出结果为通过(闸门打开),或未通过(闸门处于关闭状态)。
其他辅助模块543对量化神经网络模型541的输出进行后续处理,已使得到想要的最终结果。例如,在上述对量化神经网络模型541的测试中,其他辅助模块543用于对神量化神经网络模型541输出的特征与数据存储系统550中预存储的特征进行比对、计算,以得到识别率,或属性、名称、姓名、通过/未通过等。
根据训练设备530训练得到的量化神经网络模型541可以应用于不同的系统或设备中,如应用于图5所示的执行设备540,执行设备540可以是应用服务器或云服务器集群中的服务器,在图5中,执行设备540配置输入/输出(input/output,I/O)接口544,用于与终端设备560进行数据交互,用户可以通过终端设备560向I/O接口544输入数据。需要说明的是,训练设备530可以独立于执行设备540存在,也可以集成于执行设备540内部,本申请对此不作限定。
在执行设备540对输入数据进行处理,或者在执行设备540的计算模块542执行计算等相关的处理过程中,执行设备540可以调用数据存储系统550中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统550中。例如,在量化神经网络模型541的测试过程中,执行设备540中的其他辅助模块543调用了存储在数据存储系统550中的特征,与量化神经网络模型541的输出进行比对、计算等。
需要说明的是,训练设备530可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的量化神经网络模型541,该相应的量化神经网络模型541可以用于实现相应的目标或完成相应的任务,从而为用户提供所需的结果。
参见图7,图7是本申请实施例提供的一种量化神经网络模型的训练装置60示意图,该装置60可以包括:
获取模块601,用于获取训练数据;训练数据包括图像样本和标签;标签包括图像样本的身份标识;
量化模块602,用于将训练数据输入量化神经网络模型进行量化处理,得到图像样本的量化特征;
训练模块603,用于根据量化特征对量化神经网络模型进行训练,获得经训练的量化神经网络模型。
在可能的实施方式中,标签还包括图像样本的全精度特征;装置60还包括:预处理模块604,用于将图像样本输入全精度的神经网络进行处理,得到全精度特征。
在可能的实施方式中,训练模块603具体用于:根据量化特征和全精度特征,获得量化神经网络模型的损失函数的值;根据量化神经网络模型的损失函数的值,对量化神经网络模型进行训练,获得经训练的量化神经网络模型。
在可能的实施方式中,训练模块603还用于:根据量化特征和全精度特征,获得每个量化特征的个体误差;个体误差为单个量化特征量化处理前后的类内偏差;类表示具有相同身份标识的图像样本对应的多个量化特征的集合;根据每个量化特征的个体误差,获得损失函数的与每个量化特征对应的第一参数;根据第一参数,获得损失函数的值。
在可能的实施方式中,训练模块603还用于:根据量化特征和全精度特征,获得每个量化特征的量化误差和每个量化特征的类误差;量化误差为单个量化特征量化处理前后的偏差;类误差为单个量化特征量化处理前后的类间偏差;根据量化误差和类误差,获得每个量化特征的个体误差。
在可能的实施方式中,在角度空间中,每个量化特征的量化误差为与每个量化特征对应的全精度特征与量化特征之间的夹角;每个量化特征的类误差为全精度特征的类中心与量化特征的类中心之间的夹角;其中,全精度特征的类中心为具有相同身份标识的图像样本对应的全精度特征的平均值,量化特征的类中心为具有相同身份标识的图像样本对应的所有量化特征的平均值;训练模块603还用于:将每个量化特征的量化误差与每个量化特征的类误差作差,再取绝对值,获得每个量化特征的个体误差。
上述装置60的各功能模块用于实现图1或图2实施例所描述的方法,具体内容可参考图 1或图2实施例的相关内容中的描述,为了说明书的简洁,这里不再赘述。
参见图8,图8是本申请实施例提供的一种量化神经网络模型的训练设备示意图,该设备可以在应用服务器700中实现,该装置至少包括:处理器710、通信接口720和存储器730,处理器710、通信接口720和存储器730通过总线740进行耦合。其中,
处理器710通过调用存储器730中的程序代码,用于运行图7中的获取模块601、量化模块602、训练模块603、预处理模块604。在实际应用中,处理器710可以包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及ASIC(Application Specific Integrated Circuit,专用集成电路)等等。处理器710读取存储器730 中存储的程序代码,与通信接口720配合执行本申请上述实施例中量化神经网络模型的训练方法的部分或者全部步骤。
通信接口720可以为有线接口(例如以太网接口),用于与其他计算节点或装置进行通信。当通信接口720为有线接口时,通信接口720可以采用TCP/IP之上的协议族,例如,RAAS 协议、远程函数调用(Remote Function Call,RFC)协议、简单对象访问协议(SimpleObject Access Protocol,SOAP)协议、简单网络管理协议(Simple Network ManagementProtocol, SNMP)协议、公共对象请求代理体系结构(Common Object Request BrokerArchitecture, CORBA)协议以及分布式协议等等。
存储器730可以存储有程序代码以及程序数据。其中,程序代码包括获取模块601的代码、量化模块602的代码、训练模块603的代码、预处理模块604的代码。程序数据包括:图像样本、标签、量化特征、损失函数、量化误差、个体误差等等。在实际应用中,存储器 730可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random AccessMemory, RAM);存储器也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器 (Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)存储器还可以包括上述种类的存储器的组合。
参见图9,图9是本申请实施例提供的一种量化神经网络模型的测试装置80示意图,该装置80可以包括:
获取模块801,用于获取人脸图像;
量化神经网络模块802,用于将人脸图像输入经训练的量化神经网络模型进行处理,得到人脸图像的量化特征;其中,量化神经网络模型是基于多种不同身份图像样本和标签进行训练得到的,标签包括图像样本的身份标识,且量化神经网络模型是采用损失函数进行训练,其中损失函数中引入了个体误差作为角度裕量。
需要说明的是,个体误差是影响量化神经网络模型识别精度的关键。其中,个体误差是根据量化误差和类误差求解得到的,量化误差是指量化特征和全精度特征得到的偏差,根据超球分布理论,图像特征都分布在超球平面上,对于单个特征样本来说,角度空间的量化误差是指量化特征和全精度特征的角度偏差,类误差是指同一身份的图像样本的各个量化特征样本的的平均值与各个全精度特征的平均值的角度偏差。
结果输出模块803,用于将人脸图像的量化特征与数据库中预存的特征进行对比,获得人脸识别结果。
在可能的实施方式中,数据库中预存的特征可以为人脸图像对应的全精度特征,将人脸图像的量化特征与数据库中预存的人脸图像的全精度特征进行匹配、计算,输出由该量化神经网络模型量化得到的量化特征与全精度特征的相似度,从而达到测试的效果。
在可能的实施方式中,输出结果可以为相似度(百分比或小数)、属性、名称、成功/失败等等。举例来说,在一种具体应用场景中,公司员工通过人脸识别方式来实现上下班打卡,数据库中预存的特征可以为公司所有员工的人脸图像对应的特征,人脸图像为任一员工的人脸图像,将量化神经网络模型输出的该员工的人脸图像的量化特征与数据库中预存的公司所有员工的人脸图像的特征进行对比或匹配,最终输出该员工的姓名,完成人脸识别打卡。
上述装置80的各功能模块用于实现图5实施例所描述的方法,具体内容可参考图5实施例的相关内容中的描述,为了说明书的简洁,这里不再赘述。
参见图10,本申请提供了另一种量化神经网络模型的测试设备的结构示意图,本实施方式的量化神经网络模型的测试设备可以在云服务集群的云服务器900中实现,至少包括:至少一个计算节点910以及至少一个存储节点920。其中,
计算节点910包括一个或多个处理器911、通信接口912和存储器913,处理器911、通信接口912和存储器913之间可以通过总线914连接。
处理器911包括一个或者多个通用处理器,通过调用存储器913中的程序代码,用于运行图9中的获取模块801、量化神经网络模块802、结果输出模块803。其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central ProcessingUnit,CPU)、微处理器、微控制器、主处理器、控制器以及ASIC(Application SpecificIntegrated Circuit,专用集成电路)等等。它能够是仅用于计算节点910的专用处理器或者能够与其它计算节点 910共享。处理器911读取存储器913中存储的程序代码,与通信接口912配合执行本申请上述实施例中量化神经网络模型的训练设备执行的方法的部分或者全部步骤。
通信接口912可以为有线接口(例如以太网接口),用于与其他计算节点或用户进行通信。当通信接口912为有线接口时,通信接口912可以采用TCP/IP之上的协议族,例如,RAAS 协议、远程函数调用(Remote Function Call,RFC)协议、简单对象访问协议(SimpleObject Access Protocol,SOAP)协议、简单网络管理协议(Simple Network ManagementProtocol, SNMP)协议、公共对象请求代理体系结构(Common Object Request BrokerArchitecture, CORBA)协议以及分布式协议等等。
存储器913可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive, HDD)或固态硬盘(Solid-State Drive,SSD)存储器还可以包括上述种类的存储器的组合。
存储节点920包括一个或多个存储控制器921、存储阵列922。其中,存储控制器921和存储阵列922之间可以通过总线923连接。
存储控制器921包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括CPU、微处理器、微控制器、主处理器、控制器以及ASIC等等。它能够是仅用于单个存储节点920的专用处理器或者能够与计算节点900或者其它存储节点920共享。可以理解,在本实施例中,每个存储节点包括一个存储控制器,在其他的实施例中,也可以多个存储节点共享一个存储控制器,此处不作具体限定。
存储器阵列922可以包括多个存储器。存储器可以是非易失性存储器,例如ROM、快闪存储器、HDD或SSD存储器还可以包括上述种类的存储器的组合。例如,存储阵列可以是由多个HDD或者多个SDD组成,或者,存储阵列可以是由HDD以及SDD组成。其中,多个存储器在存储控制器921的协助下按不同的方式组合起来形成存储器组,从而提供比单个存储器更高的存储性能和提供数据备份技术。可选地,存储器阵列922可以包括一个或者多个数据中心。多个数据中心可以设置在同一个地点,或者,分别在不同的地点,此处不作具体限定。存储器阵列922可以存储有程序代码以及程序数据。其中,程序代码包括获取模块 801的代码、量化神经网络模块802的代码、结果输出模块803的代码。程序数据包括:人脸图像、人脸图像的量化特征、识别精度等等。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被硬件(例如处理器等)执行,以实现本申请实施例中量化神经网络模型的训练装置执行的任意一种方法的部分或者全部步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品被计算机读取并执行时,使得量化神经网络模型的训练装置执行本申请实施例中量化神经网络模型的训练方法的部分或全部步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被硬件(例如处理器等)执行,以实现本申请实施例中量化神经网络模型的测试装置执行的任意一种方法的部分或者全部步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品被计算机读取并执行时,使得量化神经网络模型的测试装置执行本申请实施例中量化神经网络模型的测试方法的部分或全部步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘SolidState Disk,SSD)等。在所述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,也可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (17)

1.一种量化神经网络模型的训练方法,其特征在于,包括:
获取训练数据;所述训练数据包括图像样本和标签;所述标签包括所述图像样本的身份标识;
将所述训练数据输入量化神经网络模型进行量化处理,得到所述图像样本的量化特征;
根据所述量化特征对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
2.根据权利要求1所述的方法,其特征在于,所述标签还包括所述图像样本的全精度特征;所述方法还包括:
将所述图像样本输入全精度的神经网络进行处理,得到所述全精度特征。
3.根据权利要求2所述的方法,其特征在于,所述根据所述量化特征对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型,包括:
根据所述量化特征和所述全精度特征,获得所述量化神经网络模型的损失函数的值;
根据所述量化神经网络模型的损失函数的值,对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
4.根据权利要求3所述的方法,其特征在于,所述根据所述量化特征和所述全精度特征,获得所述量化神经网络模型的损失函数的值,包括:
根据所述量化特征和所述全精度特征,获得每个量化特征的个体误差;所述个体误差为单个量化特征量化处理前后的类内偏差;所述类表示具有相同身份标识的图像样本对应的多个量化特征的集合;
根据所述每个量化特征的个体误差,获得所述损失函数的与所述每个量化特征对应的第一参数;
根据所述第一参数,获得所述损失函数的值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述量化特征和所述全精度特征,获得每个量化特征的个体误差,包括:
根据所述量化特征和所述全精度特征,获得所述每个量化特征的量化误差和所述每个量化特征的类误差;所述量化误差为单个量化特征量化处理前后的偏差;所述类误差为单个量化特征量化处理前后的类间偏差;
根据所述量化误差和所述类误差,获得所述每个量化特征的个体误差。
6.根据权利要求5所述的方法,其特征在于,在角度空间中,
所述每个量化特征的量化误差为与所述每个量化特征对应的所述全精度特征与所述量化特征之间的夹角;
所述每个量化特征的类误差为全精度特征的类中心与量化特征的类中心之间的夹角;其中,所述全精度特征的类中心为具有相同身份标识的图像样本对应的所有全精度特征的平均值,所述量化特征的类中心为具有相同身份标识的图像样本对应的所有量化特征的平均值;
所述根据所述量化误差和所述类误差,获得所述每个量化特征的个体误差,包括:
将所述每个量化特征的量化误差与所述每个量化特征的类误差作差,再取绝对值,获得所述每个量化特征的个体误差。
7.一种量化神经网络模型的测试方法,其特征在于,包括:
获取人脸图像;
将所述人脸图像输入经训练的量化神经网络模型,进行处理,得到人脸图像对应的量化特征;其中,所述量化神经网络模型为权利要求1-6任一项所述的量化神经网络模型;
将所述人脸图像对应的量化特征与数据库中预存的特征进行对比,获得人脸识别结果。
8.一种量化神经网络模型的训练装置,其特征在于,包括:
获取模块,用于获取训练数据;所述训练数据包括图像样本和标签;所述标签包括所述图像样本的身份标识;
量化模块,用于将所述训练数据输入量化神经网络模型进行量化处理,得到所述图像样本的量化特征;
训练模块,用于根据所述量化特征对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
9.根据权利要求8所述的装置,其特征在于,所述标签还包括所述图像样本的全精度特征;所述装置还包括:
预处理模块,用于将所述图像样本输入全精度的神经网络进行处理,得到所述全精度特征。
10.根据权利要求9所述的装置,其特征在于,所述训练模块具体用于:
根据所述量化特征和所述全精度特征,获得所述量化神经网络模型的损失函数的值;
根据所述量化神经网络模型的损失函数的值,对所述量化神经网络模型进行训练,获得经训练的量化神经网络模型。
11.根据权利要求10所述的装置,其特征在于,所述训练模块还用于:
根据所述量化特征和所述全精度特征,获得每个量化特征的个体误差;所述个体误差为单个量化特征量化处理前后的类内偏差;所述类表示具有相同身份标识的图像样本对应的多个量化特征的集合;
根据所述每个量化特征的个体误差,获得所述损失函数的与所述每个量化特征对应的第一参数;
根据所述第一参数,获得所述损失函数的值。
12.根据权利要求11所述的装置,其特征在于,所述训练模块还用于:
根据所述量化特征和所述全精度特征,获得所述每个量化特征的量化误差和所述每个量化特征的类误差;所述量化误差为单个量化特征量化处理前后的偏差;所述类误差为单个量化特征量化处理前后的类间偏差;
根据所述量化误差和所述类误差,获得所述每个量化特征的个体误差。
13.根据权利要求12所述的装置,其特征在于,在角度空间中,
所述每个量化特征的量化误差为与所述每个量化特征对应的所述全精度特征与所述量化特征之间的夹角;
所述每个量化特征的类误差为全精度特征的类中心与量化特征的类中心之间的夹角;其中,所述全精度特征的类中心为具有相同身份标识的图像样本对应的所有全精度特征的平均值,所述量化特征的类中心为具有相同身份标识的图像样本对应的所有量化特征的平均值;
所述训练模块还用于:
将所述每个量化特征的量化误差与所述每个量化特征的类误差作差,再取绝对值,获得所述每个量化特征的个体误差。
14.一种量化神经网络模型的测试装置,其特征在于,包括:
获取模块,用于获取人脸图像;
量化神经网络模块,用于将所述人脸图像输入经训练的量化神经网络模型,进行处理,得到人脸图像对应的量化特征;其中,所述量化神经网络模型为权利要求1-6任一项所述的量化神经网络模型;
结果输出模块,用于将所述人脸图像对应的量化特征与数据库中预存的特征进行对比,获得人脸识别结果。
15.一种计算机可读存储介质,其特征在于,包括程序指令,当该程序指令在计算机上运行时,使得所述计算机执行如权利要求1-7任一项所述的方法。
16.一种量化神经网络模型的训练设备,其特征在于,所述设备包括存储器、处理器和通信接口,所述存储器用于存储信息和数据,所述通信接口用于接收或发送信息和数据,所述处理器用于调用所述存储器中存储的信息和数据,执行如权利要求1-6所述的方法。
17.一种量化神经网络模型的测试设备,其特征在于,所述设备包括存储器、处理器和通信接口,所述存储器用于存储信息和数据,所述通信接口用于接收或发送信息和数据,所述处理器用于调用所述存储器中存储的信息和数据,执行如权利要求7所述的方法。
CN202010155203.3A 2020-03-06 2020-03-06 一种量化神经网络模型的训练及测试方法、装置及设备 Active CN111340226B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010155203.3A CN111340226B (zh) 2020-03-06 2020-03-06 一种量化神经网络模型的训练及测试方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010155203.3A CN111340226B (zh) 2020-03-06 2020-03-06 一种量化神经网络模型的训练及测试方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111340226A true CN111340226A (zh) 2020-06-26
CN111340226B CN111340226B (zh) 2022-01-25

Family

ID=71186246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010155203.3A Active CN111340226B (zh) 2020-03-06 2020-03-06 一种量化神经网络模型的训练及测试方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111340226B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111967580A (zh) * 2020-08-05 2020-11-20 上海交通大学 基于特征迁移的低比特神经网络训练方法及系统
CN112288032A (zh) * 2020-11-18 2021-01-29 上海依图网络科技有限公司 一种基于生成对抗网络的量化模型训练的方法及装置
CN113255576A (zh) * 2021-06-18 2021-08-13 第六镜科技(北京)有限公司 人脸识别方法及装置
CN113762503A (zh) * 2021-05-27 2021-12-07 腾讯云计算(北京)有限责任公司 数据处理方法、装置、设备及计算机可读存储介质
CN114004828A (zh) * 2021-11-16 2022-02-01 上海集成电路装备材料产业创新中心有限公司 图像生成模型的训练方法及装置、图像的生成方法及装置
CN116206179A (zh) * 2023-02-01 2023-06-02 北京龙智数科科技服务有限公司 人脸识别模型性能的评估方法及装置
CN116863261A (zh) * 2022-03-24 2023-10-10 Oppo广东移动通信有限公司 图像处理方法、装置、终端、存储介质及程序产品
US12340247B2 (en) 2021-09-07 2025-06-24 Samsung Electronics Co., Ltd. Electronic device for processing neural network model and method of operating the same

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046894A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Method for optimizing an artificial neural network (ann)
TW201816669A (zh) * 2016-10-19 2018-05-01 三星電子股份有限公司 用於神經網路量化的方法以及裝置
CN109961141A (zh) * 2019-04-11 2019-07-02 北京字节跳动网络技术有限公司 用于生成量化神经网络的方法和装置
CN110188641A (zh) * 2019-05-20 2019-08-30 北京迈格威科技有限公司 图像识别和神经网络模型的训练方法、装置和系统
CN110472725A (zh) * 2019-07-04 2019-11-19 北京航空航天大学 一种平衡二值化神经网络量化方法及系统
CN110555450A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人脸识别神经网络调整方法和装置
CN110796233A (zh) * 2019-10-17 2020-02-14 北京航空航天大学 基于迁移学习的深度残差卷积神经网络的自适应压缩方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180046894A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Method for optimizing an artificial neural network (ann)
TW201816669A (zh) * 2016-10-19 2018-05-01 三星電子股份有限公司 用於神經網路量化的方法以及裝置
CN110555450A (zh) * 2018-05-31 2019-12-10 北京深鉴智能科技有限公司 人脸识别神经网络调整方法和装置
CN109961141A (zh) * 2019-04-11 2019-07-02 北京字节跳动网络技术有限公司 用于生成量化神经网络的方法和装置
CN110188641A (zh) * 2019-05-20 2019-08-30 北京迈格威科技有限公司 图像识别和神经网络模型的训练方法、装置和系统
CN110472725A (zh) * 2019-07-04 2019-11-19 北京航空航天大学 一种平衡二值化神经网络量化方法及系统
CN110796233A (zh) * 2019-10-17 2020-02-14 北京航空航天大学 基于迁移学习的深度残差卷积神经网络的自适应压缩方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HYUNHOON LEE 等: ""Fixed-Point Quantization of 3D Convolutional Neural Networks for Energy-Efficient Action Recognition"", 《2018 INTERNATIONAL SOC DESIGN CONFERENCE (ISOCC)》 *
陈昀 等: ""权重量化的深度神经网络模型压缩算法"", 《西安电子科技大学学报》 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111967580A (zh) * 2020-08-05 2020-11-20 上海交通大学 基于特征迁移的低比特神经网络训练方法及系统
CN111967580B (zh) * 2020-08-05 2023-09-29 上海交通大学 基于特征迁移的低比特神经网络训练方法及系统
CN112288032A (zh) * 2020-11-18 2021-01-29 上海依图网络科技有限公司 一种基于生成对抗网络的量化模型训练的方法及装置
CN112288032B (zh) * 2020-11-18 2022-01-14 上海依图网络科技有限公司 一种基于生成对抗网络的量化模型训练的方法及装置
CN113762503A (zh) * 2021-05-27 2021-12-07 腾讯云计算(北京)有限责任公司 数据处理方法、装置、设备及计算机可读存储介质
CN113762503B (zh) * 2021-05-27 2024-08-23 腾讯云计算(北京)有限责任公司 数据处理方法、装置、设备及计算机可读存储介质
CN113255576A (zh) * 2021-06-18 2021-08-13 第六镜科技(北京)有限公司 人脸识别方法及装置
CN113255576B (zh) * 2021-06-18 2021-10-29 第六镜科技(北京)有限公司 人脸识别方法及装置
US12340247B2 (en) 2021-09-07 2025-06-24 Samsung Electronics Co., Ltd. Electronic device for processing neural network model and method of operating the same
CN114004828A (zh) * 2021-11-16 2022-02-01 上海集成电路装备材料产业创新中心有限公司 图像生成模型的训练方法及装置、图像的生成方法及装置
CN116863261A (zh) * 2022-03-24 2023-10-10 Oppo广东移动通信有限公司 图像处理方法、装置、终端、存储介质及程序产品
CN116206179A (zh) * 2023-02-01 2023-06-02 北京龙智数科科技服务有限公司 人脸识别模型性能的评估方法及装置

Also Published As

Publication number Publication date
CN111340226B (zh) 2022-01-25

Similar Documents

Publication Publication Date Title
CN111340226B (zh) 一种量化神经网络模型的训练及测试方法、装置及设备
CN109583332B (zh) 人脸识别方法、人脸识别系统、介质及电子设备
WO2019025945A1 (en) SYSTEM AND METHOD FOR INCREMENTAL ANNOTATION OF DATA SETS
CN110866530A (zh) 一种字符图像识别方法、装置及电子设备
CN111881722B (zh) 一种跨年龄人脸识别方法、系统、装置及存储介质
WO2020253039A1 (zh) 路段特征模型训练方法、装置、计算机设备及存储介质
CN110264270A (zh) 一种行为预测方法、装置、设备和存储介质
CN108228684B (zh) 聚类模型的训练方法、装置、电子设备和计算机存储介质
CN113362852B (zh) 一种用户属性识别方法和装置
CN109934301A (zh) 一种电力负荷聚类分析方法、装置和设备
CN112883990A (zh) 数据分类方法及装置、计算机存储介质、电子设备
CN113986674A (zh) 时序数据的异常检测方法、装置和电子设备
EP4273754A1 (en) Neural network training method and related device
CN110163378A (zh) 特征处理方法、装置、计算机可读存储介质和计算机设备
CN115204886A (zh) 账户识别的方法、装置、电子设备和存储介质
CN116152551A (zh) 分类模型训练方法、分类方法、装置、设备及介质
CN111159481B (zh) 图数据的边预测方法、装置及终端设备
CN116340796A (zh) 时序数据分析方法、装置、设备及存储介质
CN116452333A (zh) 异常交易检测模型的构建方法、异常交易检测方法及装置
CN114581702A (zh) 图像分类方法、装置、计算机设备及计算机可读存储介质
CN115577348A (zh) 用户异常操作行为识别方法及装置
CN111475541A (zh) 数据决策方法、装置、电子设备及存储介质
WO2025242243A1 (zh) 一种智能电网高效边缘计算方法及相关装置
CN114238852A (zh) 运营数据的分析方法、装置、存储介质及电子设备
CN113822684A (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
GR01 Patent grant
GR01 Patent grant