CN114255361A - 神经网络模型的训练方法、图像处理方法及装置 - Google Patents
神经网络模型的训练方法、图像处理方法及装置 Download PDFInfo
- Publication number
- CN114255361A CN114255361A CN202010948460.2A CN202010948460A CN114255361A CN 114255361 A CN114255361 A CN 114255361A CN 202010948460 A CN202010948460 A CN 202010948460A CN 114255361 A CN114255361 A CN 114255361A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- loss function
- weight
- function value
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/776—Validation; Performance evaluation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Operations Research (AREA)
- Entrepreneurship & Innovation (AREA)
- Marketing (AREA)
- Game Theory and Decision Science (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了人工智能领域中的一种神经网络模型的训练方法、图像处理方法及装置。该训练方法包括:将训练数据输入神经网络模型中进行特征提取,根据提取的特征得到神经网络模型的第一权重梯度;获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异;根据候选权重参数更新神经网络模型的参数。本申请的方法能够加速训练过程,提高神经网络模型的训练效率。
Description
技术领域
本申请涉及人工智能领域,并且更具体地,涉及一种神经网络模型的训练方法、图像处理方法及装置。
背景技术
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索,AI基础理论等。
随着人工智能技术的快速发展,神经网络(例如,卷积神经网络)的性能得到了持续的提升,神经网络在图像、视频以及语音等多种媒体信号的处理与分析中也取得了很大的成就。为了提高神经网络的训练速度以及模型的推理精度,通常在神经网络模型中加入批归一化(batch normalization,BN)层。在深度神经网络中加入该层,可以有效地减小深度神经网络训练过程中的波动,加速训练的收敛速度。同时,一定程度上避免了深度神经网络对噪声的敏感性,使鲁棒性更高。
然而,BN层的运算主要为非矩阵运算,计算复杂度取决于输入数据(特征)的数量,通常在神经网络模型的训练过程中,输入数据(特征)的数量为10万以上,导致BN层的计算复杂度很高,影响了处理效率,尤其是在目前的主流神经网络处理芯片的主要计算核心为矩阵运算的情况下,BN无法有效利用现有芯片中的矩阵运算能力,需要占用较大的开销,影响模型训练速度。
因此,如何提高神经网络模型的训练效率,成为一个亟需解决的技术问题。
发明内容
本申请提供一种神经网络模型的训练方法、图像处理方法及装置,能够加速训练过程,提高神经网络模型的训练效率。
第一方面,提供了一种神经网络模型的训练方法,该方法包括:获取训练数据;将训练数据输入神经网络模型中进行特征提取,根据提取的特征得到第一预测标签;根据第一预测标签和训练数据的真实标签确定第一预测标签对应的第一损失函数的函数值,第一预测标签对应的第一损失函数的函数值用于指示第一预测标签和训练数据的真实标签之间的差异;根据第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度;获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0,其中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异,权重变化量为候选权重参数与神经网络模型的权重参数之间的差值;根据候选权重参数更新神经网络模型的参数。
在本申请实施例的方案中,通过第二损失函数控制候选权重参数与神经网络模型的权重参数之间的差异,进而控制训练过程中的参数波动范围,保证了梯度波动的可控性,避免梯度的波动导致训练发散和泛化性差,提高了训练稳定性,加速训练过程;而且,第一损失函数用于在训练过程中不断提高神经网络模型的推理精度,第二损失函数能够实现与第一损失函数一致的收敛趋势,保证了神经网络模型的推理精度。例如,本申请实施例的方案可以用于对原有的神经网络模型的训练过程进行优化,第一损失函数可以理解为神经网络模型原有的损失函数。原有的损失函数用于使训练后的神经网络模型输出的预测标签与训练数据的真实标签尽可能相同。本申请实施例的方案能够保证实现原本的预测任务的情况下,提高了训练稳定性,加速训练过程。
此外,采用第一损失函数的神经网络模型与采用目标损失函数的神经网络模型的训练开销几乎相同,也就是说,相对于采用第一损失函数的神经网络模型,本申请实施例的方案能够在几乎不增加开销的情况下,提高神经网络模型的训练速度和推理精度。一方面,本申请实施例的方案极大地节省了训练资源,节约了训练成本,另一方面,同样的训练资源可以支撑更多的神经网络模型的训练。
此外,本申请实施例的方案可以在现有的神经网络的基础上完成,即在现有的神经网络模型的基础上设置新的优化目标,能够在用户无感知的情况下,即用户无需做任何修改的情况下完成,提高用户体验。
训练数据的类型与神经网络模型的任务有关。例如,神经网络模型用于进行图像处理,则该训练数据可以为图像。
标签的类型与神经网络模型的处理任务有关。例如,神经网络模型用于图像分类,则标签可以为分类标签,用于表示图像的类别。训练数据的真实标签为图像所属的真实类别。预测标签可以为图像的预测类别或者图像所属类别的预测概率。
第一损失函数的具体类型与神经网络模型的任务有关,例如,神经网络模型用于图像处理,第一损失函数可以为交叉熵损失函数。本申请实施例对第一损失函数的类型不做限定。
示例性地,根据候选权重参数更新神经网络模型可以包括:将候选权重参数作为更新后的神经网络模型中的权重参数。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:获取原神经网络模型;删除原神经网络模型中的BN层,得到该神经网络模型。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:根据神经网络模型中的至少一层输出的特征得到至少一个第二预测标签;根据至少一个第二预测标签和训练数据的真实标签确定至少一个第二预测标签对应的第一损失函数的函数值,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异;根据至少一个第二预测标签对应的第一损失函数的函数值计算神经网络模型的至少一个第二权重梯度;以及目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异。
根据本申请实施例的方案,基于神经网络模型中至少一层输出的特征得到第二预测标签,进而基于第二预测标签计算第二权重梯度作为神经网络模型的参数更新的辅助参考,能够减少梯度波动,提高训练的稳定性。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:根据神经网络模型中的至少一个下采样层输出的特征得到至少一个第二预测标签;根据至少一个第二预测标签和训练数据的真实标签确定至少一个第二预测标签对应的第一损失函数的函数值,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异;根据至少一个第二预测标签对应的第一损失函数的函数值计算神经网络模型的至少一个第二权重梯度;以及目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异。
根据本申请实施例的方案,基于下采样层输出的特征得到第二预测标签,进而基于第二预测标签计算第二权重梯度作为神经网络模型的参数更新的辅助参考,能够进一步减少梯度波动,提高训练的稳定性。
此外,仅将下采样层输出的特征得到的第二预测标签用于辅助训练,增加的计算量较少,不会占用大量的训练资源,也就是说,在几乎不增加开销的情况下,进一步减少梯度波动,提高训练的稳定性。
下采样层指的是使输出特征图的分辨率小于输入特征图的分辨率的层。神经网络模型中包括N个下采样层,则该神经网络模型中包括N个分辨率下降的位置。
根据N个下采样层中的M个下采样层输出的特征可以得到M个第二预测标签。
根据M个下采样层输出的特征得到M个第二预测标签可以为:将M个下采样输出的特征分别输入M个输出层中,得到M个第二预测标签。
该M个输出层与神经网络模型的输出层是相同的结构。输出层的结构与神经网络模型的任务有关。例如,当神经网络模型用于图像分类时,该输出层也可以称为分类层。具体地,该分类层可以为softmax层,softmax层可以输出图像的预测分类标签。
例如,目标损失函数的函数值可以满足如下公式。
Lall=Lnew_n+Lnew;
其中,Lall表示目标损失函数的函数值,Lnew_n表示第二预测标签对应的第二损失函数的函数值,若第二预测标签是根据下采样层输出的特征得到的,Lnew_n也可以理解为第n个下采样层对应的第二损失函数的函数值。
结合第一方面,在第一方面的某些实现方式中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:至少一个第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
根据本申请实施例的方案,第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中所占的比重随着神经网络模型的更新次数而减少,这样可以增加神经网络模型在训练初期的稳定性,在训练后期,当其所占比重减少为0时,神经网络模型仅基于第一预测标签对应的第二损失函数完成训练,进一步减少计算量,降低训练开销。
例如,目标损失函数的函数值Lall可以满足如下公式。
Lall=an*Lnew_n+Lnew;
an表示Lnew_n对应的权重,an与神经网络模型的更新次数呈负相关关系。
结合第一方面,在第一方面的某些实现方式中,神经网络模型包括第一特征归一层,第一特征归一层位于神经网络模型的输出层之前,第一特征归一层用于对输入第一特征归一层的特征进行特征归一化处理。
在本申请实施例的方案中,通过特征归一化处理,使得前向波动控制在一定范围内,让整个训练过程更稳定,能够进一步加速训练过程。
具体地,第一FN层将输入第一FN层的特征进行特征归一化处理,并将处理后的结果输入神经网络模型的输出层中,由输出层输出第一预测标签。
例如,特征归一化处理可以为:将输入特征除以所有输入特征的平方根。具体地,特征归一化处理的结果可以满足如下公式:
结合第一方面,在第一方面的某些实现方式中,神经网络模型包括至少一个第二特征归一层,至少一个第二特征归一层分别位于至少一个下采样层之后,至少一个第二特征归一层用于对输入至少一个第二特征归一层的特征进行特征归一化处理,以及根据神经网络模型中的至少一个下采样层输出的特征得到至少一个第二预测标签,包括:将神经网络模型中的至少一个下采样层输出的特征分别输入至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到至少一个第二预测标签。
在本申请实施例的方案中,通过特征归一化处理,使得前向波动控制在一定范围内,让整个训练过程更稳定,能够进一步加速训练过程。尤其是与使用BN等模块的神经网络模型相比,使用BN等模块的神经网络模型通常需要大量的BN模块,占用大量的训练开销。本申请实施例的方案能够达到使用BN等模块的神经网络模型相同的收敛速度和推理精度,且本申请实施例的方案仅在下采样层以及神经网络模型最后的输出层之前设置FN层,所需的FN层较少,训练开销远小于使用BN等模块的神经网络模型所需的训练开销。
结合第一方面,在第一方面的某些实现方式中,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异的和。
结合第一方面,在第一方面的某些实现方式中,第二损失函数满足如下公式:
其中,Lnew第二损失函数,w表示候选权重参数,wk表示神经网络模型的权重参数;表示神经网络模型的权重梯度,d1表示用于指示权重变化量与权重梯度之间的差异的函数,d2表示用于指示候选权重参数与神经网络模型的权重参数之间的差异的函数,λ1表示d1的权重,λ2表示d2的权重。
也就是说,候选权重参数w可以满足如下公式:
示例性地,d1可以为距离度量函数,即通过权重变化量w-wk和之间的距离表示两者之间的差异。再如,d1可以为余弦相似度函数。d2可以为距离度量函数,即通过w和wk之间的距离表示两者之间的差异。再如,d2可以为余弦相似度函数
具体地,可以通过使Lnew对w的偏导为0,得到候选权重参数。该候选权重参数即为使Lnew的函数值最小的权重参数。
结合第一方面,在第一方面的某些实现方式中,根据候选权重参数更新神经网络模型的参数,包括:根据候选权重参数和学习率更新神经网络模型的参数,其中学习率用于指示神经网络模型的权重参数的变化幅度。
在本申请实施例中,通过设置学习率,可以平滑参数的更新过程,进一步控制参数波动范围,进一步提高训练的稳定性,加快收敛过程,提高训练效率。
结合第一方面,在第一方面的某些实现方式中,更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示神经网络模型的权重参数,w表示候选权重参数,lr表示学习率。
第二方面,提供了一种图像处理方法,该方法包括:获取待处理图像;采用目标神经网络模型对待处理图像进行特征提取,根据目标神经网络模型提取的特征得到待处理图像的处理结果;其中,目标神经网络模型是通过将训练数据输入神经网络模型中进行特征提取,根据神经网络模型提取的特征得到第一预测标签,根据第一预测标签和训练数据的真实标签确定第一预测标签对应的第一损失函数的函数值,第一预测标签对应的第一损失函数的函数值用于指示第一预测标签和训练数据的真实标签之间的差异,根据第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度,获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0,根据候选权重参数更新神经网络模型的参数得到的,其中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异,权重变化量为候选权重参数与神经网络模型的权重参数之间的差值。
可以采用第一方面中的神经网络模型更新方法得到目标神经网络模型,该目标神经网络模型可以是已经训练好的神经网络模型,可以利用该训练好的神经网络模型对待处理图像进行分类。
本申请中,由于目标神经网络模型是采用上述第一方面的方法得到的,比较符合或者贴近神经网络模型的应用需求,利用这样的神经网络模型进行图像分类,能够取得较好的图像分类效果,(例如,分类结果更准确,等等)。
在训练过程中,通过第二损失函数权重变化量的大小,进而控制训练过程中的参数波动范围,保证了梯度波动的可控性,避免梯度的波动导致训练发散和泛化性差,提高了训练稳定性,加速训练过程;而且,第一损失函数用于在训练过程中不断提高神经网络模型的推理精度,第二损失函数能够实现与第一损失函数一致的收敛趋势,保证了神经网络模型的推理精度。例如,本申请实施例的方案可以用于对原有的神经网络模型的训练过程进行优化,第一损失函数可以理解为神经网络模型原有的损失函数。原有的损失函数用于使训练后的神经网络模型输出的预测标签与训练数据的真实标签尽可能相同。本申请实施例的方案能够保证实现原本的预测任务的情况下,提高了训练稳定性,加速训练过程。
结合第二方面,在第二方面的某些实现方式中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异,至少一个第二预测标签是根据神经网络模型中的至少一层输出的特征得到的,至少一个第二预测标签对应的第二损失函数的函数值是根据至少一个第二预测标签和训练数据的真实标签确定的,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异,至少一个第二权重梯度是根据至少一个第二预测标签对应的第一损失函数的函数值计算得到的。
结合第二方面,在第二方面的某些实现方式中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异,至少一个第二预测标签是根据神经网络模型中的至少一个下采样层输出的特征得到的,至少一个第二预测标签对应的第二损失函数的函数值是根据至少一个第二预测标签和训练数据的真实标签确定的,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异,至少一个第二权重梯度是根据至少一个第二预测标签对应的第一损失函数的函数值计算得到的。
结合第二方面,在第二方面的某些实现方式中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:至少一个第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
结合第二方面,在第二方面的某些实现方式中,目标神经网络模型包括第一特征归一层,第一特征归一层位于目标神经网络模型的输出层之前,第一特征归一层用于对输入第一特征归一层的特征进行特征归一化处理。
结合第二方面,在第二方面的某些实现方式中,神经网络模型包括至少一个第二特征归一层,至少一个第二特征归一层分别位于至少一个下采样层之后,至少一个第二特征归一层用于对输入至少一个第二特征归一层的特征进行特征归一化处理,至少一个第二预测标签是通过将神经网络模型中的至少一个下采样层输出的特征分别输入至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到的。
结合第二方面,在第二方面的某些实现方式中,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异的和。
结合第二方面,在第二方面的某些实现方式中,第二损失函数满足如下公式:
其中,Lnew第二损失函数,w表示候选权重参数,wk表示神经网络模型的权重参数;表示神经网络模型的权重梯度,d1表示用于指示权重变化量与权重梯度之间的差异的函数,d2表示用于指示候选权重参数与神经网络模型的权重参数之间的差异的函数,λ1表示d1的权重,λ2表示d2的权重。
结合第二方面,在第二方面的某些实现方式中,根据候选权重参数更新神经网络模型的参数,包括:根据候选权重参数和学习率更新神经网络模型的参数,其中学习率用于指示神经网络模型的权重参数的变化幅度。
结合第二方面,在第二方面的某些实现方式中,更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示神经网络模型的权重参数,w表示候选权重参数,lr表示学习率。
第三方面,提供了一种神经网络模型的训练装置,所述装置包括用于执行上述第一方面以及第一方面中的任意一种实现方式中的方法的模块或单元。
第四方面,提供了一种图像处理装置,所述装置包括用于执行上述第二方面以及第二方面中的任意一种实现方式中的方法的模块或单元。
应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第二方面、第三方面和第四方面中相同的内容。
第五方面,提供了一种神经网络模型的训练装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
上述第五方面中的处理器既可以是中央处理器(central processing unit,CPU),也可以是CPU与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-networkprocessing unit,NPU)和张量处理器(tensor processing unit,TPU)等等。其中,TPU是谷歌(google)为机器学习全定制的人工智能加速器专用集成电路。
第六方面,提供了一种图像处理装置,该装置包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第二方面以及第二方面中的任意一种实现方式中的方法。
上述第六方面中的处理器既可以是中央处理器,也可以是CPU与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理器、神经网络处理器和张量处理器等等。其中,TPU是谷歌为机器学习全定制的人工智能加速器专用集成电路。
第七方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面或第二方面中的任意一种实现方式中的方法。
第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面或第二方面中的任意一种实现方式中的方法。
第九方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面或第二方面中的任意一种实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第二方面中的任意一种实现方式中的方法。
上述芯片具体可以是现场可编程门阵列(field-programmable gate array,FPGA)或者专用集成电路(application-specific integrated circuit,ASIC)。
附图说明
图1是本申请实施例提供的一种人工智能主体框架示意图;
图2为本申请实施例提供的一种系统架构的结构示意图;
图3为本申请实施例提供的一种卷积神经网络的结构示意图;
图4为本申请实施例提供的另一种卷积神经网络的结构示意图;
图5为本申请实施例提供的一种芯片的硬件结构示意图;
图6为本申请实施例提供的一种系统架构的示意图;
图7为本申请实施例提供的神经网络模型的训练装置的示意性框图;
图8为本申请实施例提供的神经网络模型的训练方法的示意性流程图;
图9为本申请实施例提供的特征归一化处理的示意性流程图;
图10是本申请实施例提供的一种神经网络模型的示意性框图;
图11是本申请实施例提供的另一种神经网络模型的示意性框图;
图12是本申请实施例提供的图像处理方法的示意性流程图;
图13是本申请实施例提供的神经网络模型的训练装置的示意性框图;
图14是本申请实施例提供的图像处理装置的示意性框图;
图15是本申请实施例提供的神经网络模型的训练装置的示意性框图;
图16是本申请实施例提供的图像处理装置的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“信息技术(information technology,IT)价值链”(垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。
基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。
这里的智能芯片可以是中央处理器(central processing unit,CPU)、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processingunit,GPU)、专门应用的集成电路(application specific integrated circuit,ASIC)以及现场可编程门阵列(field programmable gate array,FPGA)等硬件加速芯片。
基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。
例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据:
基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理:
上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力:
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用:
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
本申请实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市等领域。
具体地,本申请实施例可以具体应用在自动驾驶、图像分类、图像检索、图像语义分割、图像质量增强、图像超分辨率和自然语言处理等需要使用(深度)神经网络的领域。
下面对相册图片分和平安城市这两种应用场景进行简单的介绍。
相册图片分类:
当用户在终端设备(例如,手机)或者云盘上存储了大量的图片时,通过对相册中图像进行识别可以方便用户或者系统对相册进行分类管理,提升用户体验。
利用本申请实施例的神经网络模型的训练方法,能够获得或者优化适用于相册分类的神经网络。接下来就可以利用该神经网络对图片进行分类,从而为不同的类别的图片打上标签,便于用户查看和查找。另外,这些图片的分类标签也可以提供给相册管理系统进行分类管理,节省用户的管理时间,提高相册管理的效率,提升用户体验。
平安城市场景下的属性识别:
平安城市场景下,需要进行多种属性识别,例如行人属性识别和骑行属性识别,深度神经网络凭借着其强大的能力在多种属性识别中发挥着重要的作用。通过采用本申请实施例的神经网络模型的训练方法,能够获得或优化适用于平安城市场景下进行属性识别的神经网络。接下来就可以利用该神经网络对输入的道路画面进行处理,从而识别出道路画面中的不同的属性信息。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式: 是输入向量,是输出向量,是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于DNN层数多,系数W和偏移向量的数量也比较多。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)残差网络
残差网络(residual network,ResNet)是一种卷积神经网络结构,该网络结构由多个残差单元级联形成,其中残差单元是其最重要的特点。
简单来说,残差网络可以是:深度神经网络中多个隐含层之间除了逐层相连之外,例如第1层隐含层连接第2层隐含层,第2层隐含层连接第3层隐含层,第3层隐含层连接第4层隐含层(这是一条神经网络的数据运算通路,也可以称为神经网络传输),残差网络还多了一条直连支路,这条直连支路从第1层隐含层直接连到第4层隐含层,即跳过第2层和第3层隐含层的处理,将第1层隐含层的数据直接传输给第4层隐含层进行运算,即构成一个残差单元。
基于残差单元的梯度直接传导特性,ResNet网络结构深度可以做到百层甚至千层的深度,例如典型的ResNet50,ResNet101。
(5)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。通常地,loss越小,该深度神经网络的训练质量越高,loss越大,深度神经网络的训练质量越低。类似的,loss波动越小,训练越稳定;loss波动越大,训练越不稳定。
(6)反向传播算法
神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
例如,神经网络模型每次训练产生的loss值在神经网络模型中从后向前逐层传递。传递到每一层时,同时计算出该层参数的更新量(偏导运算),这个更新量与梯度(gradient)相关。gradient的值与loss的值是线性正相关的。
在计算得到梯度后,需要对神经网络的每层进行参数更新,更新的方向由梯度决定,更新的大小由学习率(learning rate,lr)决定。学习率的大小通常需要算法人员在训练过程中通过手工进行调整。
(7)批归一化
批归一化(batch normalization,BN)是一种应用在深度神经网络中的数据(或特征)处理方式。具体地,通过对输入的批量数据(特征)减去其均值,同时除以其方差,然后对结果进行线性调整。通过在深度神经网络中加入该层,可以有效地减小深度神经网络训练过程中的波动,加速训练的收敛速度。
如图2所示,本申请实施例提供了一种系统架构100。在图2中,数据采集设备160用于采集训练数据。针对本申请实施例的图像处理方法来说,训练数据可以包括训练图像以及训练图像对应的分类结果,其中,训练图像的分类结果可以是人工预先标注的结果。
在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型/规则101。
下面对训练设备120基于训练数据得到目标模型/规则101进行描述,训练设备120对输入的原始图像进行处理,将输出值与目标值进行对比,直到训练设备120输出的值与目标值的差值小于一定的阈值,从而完成目标模型/规则101的训练。
上述目标模型/规则101能够用于实现本申请实施例的图像处理方法。本申请实施例中的目标模型/规则101具体可以为神经网络模型。例如,卷积神经网络或残差网络等。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图2所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)AR/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在图2中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,输入数据在本申请实施例中可以包括:客户设备输入的待处理图像。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果,如上述得到的图像的分类结果返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
如图2所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是本申请中的神经网络,具体的,本申请实施例构建的神经网络可以为CNN,深度卷积神经网络(deep convolutional neural networks,DCNN),残差网络等等。
由于CNN是一种非常常见的神经网络,下面结合图3重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过神经网络模型更新的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
本申请实施例的图像处理方法具体采用的神经网络的结构可以如图3所示。在图3中,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。其中,输入层210可以获取待处理图像,并将获取到的待处理图像交由卷积层/池化层220以及后面的神经网络层230进行处理,可以得到图像的处理结果。下面对图3中的CNN200中内部的层结构进行详细的介绍。
卷积层/池化层220:
卷积层:
如图3所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层221为例,介绍一层卷积层的内部工作原理。
卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。
当卷积神经网络200有多个卷积层的时候,的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图3中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层230:
在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图3所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图3由210至240方向的传播为前向传播)完成,反向传播(如图3由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。
本申请实施例的图像处理方法具体采用的神经网络的结构可以如图4所示。在图4中,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。与图3相比,图4中的卷积层/池化层220中的多个卷积层/池化层并行,将分别提取的特征均输入给神经网络层230进行处理。
需要说明的是,图3和图4所示的卷积神经网络仅作为一种本申请实施例的图像处理方法的两种可能的卷积神经网络的示例,在具体的应用中,本申请实施例的图像处理方法所采用的卷积神经网络还可以以其他网络模型的形式存在。
另外,采用本申请实施例的神经网络结构的搜索方法得到的卷积神经网络的结构可以如图3和图4中的卷积神经网络结构所示。
图5为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图2所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。如图3和图4所示的卷积神经网络中各层的算法均可在如图5所示的芯片中得以实现。
神经网络处理器NPU 50作为协处理器挂载到主中央处理器(central processingunit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization,BN),局部响应归一化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
其中,图3和图4所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。
上文中介绍的图2中的执行设备110能够执行本申请实施例的图像处理方法的各个步骤,图3和图4所示的CNN模型和图5所示的芯片也可以用于执行本申请实施例的图像处理方法的各个步骤。
下面结合附图对本申请实施例的构建神经网络的方法和本申请实施例的图像处理方法进行详细的介绍。
如图6所示,本申请实施例提供了一种系统架构300。该系统架构包括本地设备301、本地设备302以及执行设备310和数据存储系统350,其中,本地设备301和本地设备302通过通信网络与执行设备310连接。
执行设备310可以由一个或多个服务器实现。可选的,执行设备310可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备310可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备310可以使用数据存储系统350中的数据,或者调用数据存储系统350中的程序代码来实现本申请实施例的神经网络模型更新方法。
具体地,在一种实现方式中,执行设备110可以执行以下过程:
获取训练数据;
将训练数据输入神经网络模型中进行特征提取,根据提取的特征得到第一预测标签;
根据第一预测标签和训练数据的真实标签确定第一预测标签对应的第一损失函数的函数值,第一预测标签对应的第一损失函数的函数值用于指示第一预测标签和训练数据的真实标签之间的差异;
根据第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度;
获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0,其中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异,权重变化量为候选权重参数与神经网络模型的权重参数之间的差值;
根据候选权重参数更新神经网络模型的参数。
通过上述过程执行设备110能够获取一个目标神经网络模型,该目标神经网络模型可以用于图像分类或者进行图像处理等等。
用户可以操作各自的用户设备(例如本地设备301和本地设备302)与执行设备310进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备310进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
在一种实现方式中,本地设备301、本地设备302从执行设备310获取到目标神经网络的相关参数,将目标神经网络部署在本地设备301、本地设备302上,利用该目标神经网络进行图像分类或者图像处理等等。
在另一种实现中,执行设备310上可以直接部署目标神经网络,执行设备310通过从本地设备301和本地设备302获取待处理图像,并采用目标神经网络模型对待处理图像进行分类或者其他类型的图像处理。
上述执行设备310也可以为云端设备,此时,执行设备310可以部署在云端;或者,上述执行设备310也可以为终端设备,此时,执行设备310可以部署在用户终端侧,本申请实施例对此并不限定。
为了提供神经网络模型的训练速度以及神经网络模型的推理精度,通常在神经网络模型中加入BN层。
BN是一种应用在深度神经网络中的数据(特征)处理方式。在深度神经网络中加入BN层,可以有效地减小深度神经网络训练过程中的波动,加速训练的收敛速度。同时,一定程度上避免了深度神经网络对噪声的敏感性,鲁棒性更高。
具体地,BN是通过对输入的批量数据(特征)减去其均值,同时除以其方差,然后对结果进行线性调整。该过程中的运算主要为非矩阵运算,且计算复杂度取决于输入的批量数据(特征)的数量。通常输入的批量数据(特征)的数量为10万以上,导致BN计算复杂度很高。
目前的主流神经网络处理芯片的主要计算核心为矩阵运算,BN无法有效利用现有芯片中的矩阵运算能力,在整个深度神经网络中开销占比较大,例如,在ResNet50中,BN的开销占比为25%以上,影响模型迭代训练的速度,这导致BN成为深度神经网络训练中的一个性能瓶颈。
因此,如何提高神经网络模型的训练效率成为一个亟待解决的问题。
本申请实施例提出了一种神经网络模型的训练方法,能够加速训练过程,提高神经网络模型的训练效率。
图7示出了本申请实施例的神经网络模型的训练装置700的示意图,为了更好的了解本申请实施例中的方法,下面对图7中的各个模块的功能进行简单的描述。
训练装置700包括神经网络模型710、优化目标模块720、动态稳定模块730和调整模块740。
本申请实施例的方案能够用于训练多种结构的神经网络模型。例如,神经网络模型710可以为残差网络或卷积神经网络等。
可选地,神经网络模型710可以包括第一特征归一层,第一特征归一层位于神经网络模型的输出层之前,用于对输入第一特征归一层的特征进行特征归一化处理。
示例性地,神经网络模型710可以位于图5中的NPU50中,即由NPU50执行神经网络模型710中的运算。例如,由CPU分配任务,将训练数据,例如,图像数据,由外部存储器调取至存储器501或统一存储器506中,供NPU50加载以执行神经网络模型710中的运算。
第一优化目标模块720用于训练神经网络模型710。第一优化目标模块720为神经网络模型710提供优化目标,并基于该优化目标更新神经网络模型710的参数,直至神经网络模型710的训练完成。优化目标可以为损失函数或目标函数,该优化目标模块720也可以称为优化目标层。
具体地,第一优化目标模块720基于神经网络模型输出的第一预测标签计算神经网络模型的第一权重梯度,进而确定使目标损失函数的函数值最小的候选权重参数,并基于该候选权重参数更新神经网络模型710的参数,直至神经网络模型710的训练完成。
在一种实现方式中,目标损失函数的函数值是基于第一预测标签对应的第二损失函数的函数值确定的。第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异,权重变化量为候选权重参数与神经网络模型的权重参数之间的差值。
示例性地,优化目标模块720可以位于图5中的NPU50中,即由NPU50执行神经网络模型的优化过程中的运算。
动态稳定模块(dynamic stable module,DSM)730包括第二优化目标模块731。第二优化目标模块731用于与第一优化目标模块720协同训练神经网络模型710。
动态稳定模块730位于神经网络模型710中的任一层之后。
例如,神经网络模型710可以包括下采样层,动态稳定模块730可以为位于神经网络模型710中的下采样层之后。
动态稳定模块730的数量可以为一个或多个。例如,神经网络模型710中包括N个下采样层。N为正整数。动态稳定模块730的数量为M个,该M个动态稳定模块730分别位于N个下采样层中的M个下采样层之后。M为小于或等于N的正整数。
需要说明的是,以上仅为示意,动态稳定模块730的数量和位置可以根据需要设定,本申请实施例对此不做限定。
具体地,第二优化目标模块731基于神经网络模型中的任一层输出的特征得到第二预测标签,根据第二预测标签计算神经网络模型的第二权重梯度。第二优化目标模块731与第一优化目标模块720协同作用,确定使目标损失函数的函数值最小的候选权重参数,并基于该候选权重参数更新神经网络模型710的参数,直至神经网络模型710的训练完成。
其中,第二优化目标模块731与第一优化目标模块720协同作用指的是,目标损失函数的函数值是由这两个模块共同决定的。具体来说,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和第二预测标签对应的第二损失函数的函数值确定的,第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异。
进一步地,动态稳定模块730还可以包括第二特征归一化(featurenormalization,FN)模块732。
第二FN模块732用于对输入第二FN模块732的特征进行特征归一化处理。
示例性地,第二FN模块732位于神经网络模型的下采样层之后。也就是说第二FN模块732可以对下采样层输出的特征进行特征归一化处理。在该情况下,第二优化目标模块731基于神经网络模型中的下采样层输出的特征得到第二预测标签,可以为,第二优化目标模块731基于归一化处理后的结果得到第二预测标签。
需要说明的是,动态稳定模块730可以为一个或多个,第二优化目标模块731可以为一个或多个,第二FN模块732可以为一个或多个,因此,上述第二预测标签对应的第二损失函数的函数值可以为一个,也可以为多个。例如,动态稳定模块730的数量可以等于神经网络模型中下采样层的数量。也就是说,动态稳定模块730与下采样层可以是一一对应的。
示例性地,动态稳定模块730可以位于图5中的NPU50中,即由NPU50执行动态稳定模块730所需要执行的运算。
调整模块740用于控制动态稳定模块730。具体地,调整模块740可以使能部分或全部的动态稳定模块730或禁止部分或全部的动态稳定模块730。
调整模块740可以根据神经网络模型的训练情况,向动态稳定模块730发送使能信号或禁用信号。
在一种实现方式,调整模块740可以根据更新次数调整第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中对应的权重。例如,在训练开始时,调整模块740可以使能部分或全部的动态稳定模块730。随着更新次数的增加,不断减小该权重。当该权重减小为0时,可以理解为调整模块740禁用部分或全部的动态稳定模块730。
本申请实施例中,更新次数也可以理解为迭代次数。
示例性地,调整模块740可以位于图5中的主CPU中,即由主CPU执行调整模块730所需要执行的指令,例如,向动态稳定模块730发送使能信号或禁用信号等。
在推理阶段,根据需要部署训练好的神经网络模型710,通过训练好的神经网络模型对待处理数据进行处理,即可得到处理结果。
例如,该神经网络模型710可以用于图像处理,推理阶段即为图像处理阶段。
在图像处理阶段,只需要部署训练好的神经网络模型710,将待处理的图像输入训练好的神经网络模型710中,通过训练好的神经网络模型710对图像进行处理,得到图像处理结果。
上述训练阶段的具体描述参见后文中的方法800,上述推理阶段的具体描述参见后文中的方法900。
根据本申请实施例的方法,通过控制训练过程中的参数波动范围,保证了梯度波动的可控性,避免梯度的波动导致训练发散和泛化性差,提高了训练稳定性,加速训练过程;而且,第一损失函数用于在训练过程中不断提高神经网络模型的推理精度,第二损失函数能够实现与第一损失函数一致的收敛趋势,保证了神经网络模型的推理精度。例如,本申请实施例的方案可以用于对原有的神经网络模型的训练过程进行优化,第一损失函数可以理解为神经网络模型原有的损失函数。原有的损失函数用于使训练后的神经网络模型输出的预测标签与训练数据的真实标签尽可能相同。本申请实施例的方案能够保证实现原本的预测任务的情况下,或者说,在保证原有的推理精度的情况下,提高了训练稳定性,加速训练过程。
下面结合图8至图11对本申请实施例中的神经网络模型的训练方法进行详细的描述。
图8示出了本申请实施例提供的一种神经网络模型的训练方法800。图8所示的方法可以由神经网络模型的训练装置来执行,该训练装置可以是云服务设备,也可以是终端设备,例如,电脑、服务器等运算能力足以用来执行神经网络模型的训练方法的装置,也可以是由云服务设备和终端设备构成的系统。示例性地,方法800可以由图2中的训练设备120、图5中的神经网络处理器50或图6中的执行设备310或本地设备执行。
例如,方法800具体可以由如图2所示的训练设备120执行,方法800中的训练数据可以是如图2所示的数据库130中维护的训练数据。
方法800包括步骤S810至步骤S860。下面对步骤S810至步骤S860进行详细介绍。
S810,获取训练数据。
训练数据的类型与神经网络模型的任务有关。例如,神经网络模型用于进行图像处理,则该训练数据可以为图像。具体地,该神经网络模型可以用于进行图像分类、图像检测、图像分割或图像生成等任务。再如,神经网络模型用于进行文本识别,则该训练数据可以为文本。本申请实施例对训练数据的类型不做限定。
示例性地,训练数据可以存储于图5所示的外部存储器中,通过主CPU调取至NPU50中进行处理。
S820,将训练数据输入神经网络模型中进行特征提取,根据提取的特征得到第一预测标签。标签的类型与神经网络模型的处理任务有关。例如,神经网络模型用于图像分类,则标签可以用于表示图像的类别。训练数据的真实标签为图像所属的真实类别。预测标签可以为图像的预测类别或者图像所属类别的预测概率。预测标签为神经网络模型的输出,训练数据的真实标签为神经网络模型的目标输出。示例性地,训练数据的真实标签可以是人工预先标注的结果。
示例性地,该神经网络模型可以为装置700中的神经网络模型710。
例如,该神经网络模型可以为图3或图4所示的卷积神经网络。再如,该神经网络模型可以为残差网络。本申请实施例对神经网络模型的类型不做限定。
或者,原神经网络模型包括BN层,在该情况下,方法800还包括:删除原神经网络模型中的BN层,得到该神经网络模型。也就是说,本申请实施例中进行训练的神经网络模型是删除BN层之后的神经网络模型。应理解,在该情况下,训练后得到的神经网络模型不包括已删除的BN层。
图10示出了本申请实施例中的一种神经网络模型的示意图。方法800可以基于图10所示的神经网络模型执行。conv表示卷积层。图10中的第一FN层可以为装置700的第一FN模块。图10中的第一优化目标模块可以为装置700中的第一优化目标模块720。
示例性地,神经网络模型可以由用户输入的。
例如,用户输入如图10所示的神经网络模型以得到训练后的神经网络模型。
再如,用户输入包括BN层的原神经网络模型。在该情况下,方法800还包括:删除原神经网络模型中的BN层。训练完成后反馈给用户的训练后的神经网络模型中不包括已删除的BN层。
具体地,将训练数据输入神经网络模型中进行前向传播,得到第一预测标签。
例如,训练数据为图像,神经网络模型用于图像分类,则神经网络模型的输出层为分类层,例如,softmax层,由输出层输出第一预测标签。第一预测标签可以用于指示该图像所属类别的预测概率。
可选地,神经网络模型包括第一特征归一层。第一特征归一层用于对输入第一特征归一层的特征进行特征归一化处理。第一特征归一层位于神经网络模型的输出层之前。
第一FN层将输入第一FN层的特征进行特征归一化处理,并将处理后的结果输入神经网络模型的输出层中,由输出层输出第一预测标签,例如,如图10所示。
示例性地,特征归一化处理可以为:将输入特征除以所有输入特征的平方根。具体地,特征归一化处理的结果可以满足如下公式:
应理解,以上仅为示意,其他特征归一化处理的方法也可以应用于方法800中,本申请实施例对特征归一化处理的具体实现方式不做限定。
S830,根据第一预测标签和训练数据的真实标签确定第一预测标签对应的第一损失函数的函数值。
第一损失函数的函数值用于指示神经网络模型的预测标签和训练数据的真实标签之间的差异。
第一损失函数的具体类型与神经网络模型的任务有关,例如,神经网络模型用于图像处理,第一损失函数可以为交叉熵损失函数。本申请实施例对第一损失函数的类型不做限定。
相应地,第一预测标签对应的第一损失函数的函数值用于指示第一预测标签和训练数据的真实标签之间的差异。
示例性地,步骤S830可以由装置700中的第一目标优化模块720执行。或者,由图10中的第一优化目标模块执行。
S840,根据第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度。
具体地,通过反向传播第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度。
示例性地,步骤S840可以由装置700中的第一目标优化模块720执行。或者,由图10中的第一优化目标模块执行。
S850,获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0。就是说,该候选权重参数是使目标损失函数的函数值最小的权重参数。
目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的。在该情况下,候选权重参数是使第一预测标签对应的第二损失函数的函数值最小的权重参数。
第二损失函数的函数值用于指示候选权重参数与当前神经网络模型中的权重参数之间的差异以及权重变化量与权重梯度值之间的差异。权重变化量指的是候选权重参数与当前神经网络模型中的权重参数之间的差值。
相应地,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与当前神经网络模型中的权重参数之间的差异以及权重变化量与第一权重梯度值之间的差异。
具体地,第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与权重梯度之间的差异的和。
相应地,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异的和。
示例性地,第二损失函数Lnew可以满足如下公式:
也就是说,候选权重参数w可以满足如下公式:
其中,w表示候选权重参数,wk表示第k次迭代后得到的神经网络模型的权重参数,即当前神经网络模型的权重参数。表示神经网络模型的权重梯度值,例如,当计算第一预测标签对应的第二损失函数的函数值时,即为第一权重梯度。d1表示用于指示权重变化量与权重梯度之间的差异的函数。权重变化量与权重梯度之间的差异可以用于度量权重梯度的方向,因此,也可以说d1为用于度量权重梯度的方向的函数。示例性地,d1可以为距离度量函数,即通过权重变化量w-wk和之间的距离表示两者之间的差异。例如,该距离函数可以用于计算w-wk和之间差值的平方或绝对值,即以w-wk和之间的差值的平方或绝对值表示w-wk和之间的距离。再如,d1可以为余弦相似度函数。d2表示用于指示候选权重参数与当前神经网络模型中的权重参数之间的差异的函数。候选权重参数与当前神经网络模型中的权重参数之间的差异可以用于度量权重梯度的幅度。因此,也可以说d2为用于度量权重梯度的幅度的函数。示例性地,d2可以为距离度量函数,即通过w和wk之间的距离表示两者之间的差异。例如,该距离函数可以用于计算w和wk之间差值的平方或绝对值,即以w和wk之间的差值的平方或绝对值表示w和wk之间的距离。再如,d2可以为余弦相似度函数。λ1表示d1对应的权重,λ2表示d2对应的权重。该权重可以根据需要设定,例如,λ1=0.4,λ2=0.6。
需要说明的是,上述d1仅为示意,d1还可以为其他度量函数,只要该度量函数能够指示权重变化量与权重梯度之间的差异即可。上述d2仅为示意,d2还可以为其他度量函数,只要该度量函数能够指示候选权重参数与当前神经网络模型中的权重参数之间的差异即可。本申请实施例对d1和d2所采用的具体方式不做限定。
具体地,可以通过使Lnew对w的偏导为0,得到候选权重参数。该候选权重参数即为使Lnew的函数值最小的权重参数。
例如,计算上述Lnew对w的偏导数,使该偏导数为0的权重参数即为使目标损失函数的函数值最小的候选权重参数。
第一损失函数用于使训练后的神经网络模型输出的第一预测标签与训练数据的真实标签尽可能相同。函数d1能够使神经网络模型中的权重参数的更新方向(由w-wk指示的更新方向)与第一损失函数指示的更新方向(由指示的更新方向)尽可能一致,保证训练过程中的收敛性与第一损失函数保持一致,逐步收敛,也就是能够使神经网络模型朝着使第一损失函数的函数值减小的方向训练,保证训练后的神经网络模型的推理精度。也就是说,第二损失函数中的函数d1兼容第一损失函数。第二损失函数中的函数d2能够控制更新后的权重参数与当前的权重参数之间的跳变幅度,进而控制权重参数的波动范围,避免更新后的权重参数发生大幅度的跳变,提高了训练的稳定性,能够加快收敛过程,提高训练效率。
示例性地,步骤S850可以由装置700中的目标优化模块720执行。或者,由图10中的第一优化目标模块执行。
S860,根据候选权重参数更新神经网络模型的参数。
更新神经网络模型中的参数即训练神经网络模型。
示例性地,步骤S860可以为:将候选权重参数作为更新后的神经网络模型中的权重参数。
可选地,步骤S860可以为:根据候选权重参数和学习率更新神经网络模型的参数,其中学习率用于指示神经网络模型的权重参数的变化幅度。
例如,更新后的神经网络模型中的权重参数可以满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示第k+1次迭代后得到的神经网络模型的权重参数,即本次迭代后更新的神经网络模型的权重参数,lr表示学习率。
通过设置学习率,可以平滑参数的更新过程,进一步控制参数波动范围,进一步提高训练的稳定性,加快收敛过程,提高训练效率。
示例性地,步骤S860可以由装置700中的目标优化模块720执行。或者,由图10中的第一优化目标模块执行。
重复步骤S810至步骤S860,直至神经网络模型的训练完成。
具体地,重复步骤S810至步骤S860,直至神经网络模型的训练满足训练终止条件,即训练完成,得到训练好的神经网络模型。
其中,训练终止条件可以根据需要设定。
示例性地,神经网络模型的训练满足训练终止条件,包括:神经网络模型的推理精度满足预设条件。
例如,神经网络模型的推理精度大于或等于第一阈值。也就是说,当该神经网络模型趋于收敛,终止训练。
再如,连续P次更新后得到的神经网络模型的推理精度的变化量小于或等于第二阈值。也就是说,在推理精度趋于稳定时,或者说,推理精度不再显著上升时,终止训练。
应理解,以上神经网络模型的训练终止条件仅为示意,本申请实施例对训练终止条件不做限定。例如,神经网络模型的训练终止条件还可以包括:迭代次数大于或等于预设次数。
在一种实现方式中,本申请实施例的方案可以用于对原有的神经网络模型的训练过程进行优化,第一损失函数可以为该神经网络模型原有的损失函数。如前所述,第一目标优化模块720可以理解为神经网络模块的输出层之后的目标优化层。在原有的神经网络模型的训练过程中,原有的目标优化层根据第一损失函数的函数值更新神经网络模型的权重参数。方法800的训练过程中,由第一目标优化模块720根据目标损失函数的函数值更新神经网络模型的权重参数。也就是说,可以在不改变神经网络模型的结构的基础上,利用本申请实施例中的目标优化层替换原有的神经网络模型的训练过程中的目标优化层,即可利用本申请实施例的方案进行训练。若原有的神经网络模型包括BN层,则可以删除BN层,然后利用本申请实施例中的目标优化层替换原有的神经网络模型的训练过程中的目标优化层,即可利用本申请实施例的方案进行训练,训练后得到的神经网络模型中不包括已删除的BN层。
在本申请实施例中,通过第二损失函数控制候选权重参数与神经网络模型的权重参数之间的差异,进而控制训练过程中的参数波动范围,保证了梯度波动的可控性,避免梯度的波动导致训练发散和泛化性差,提高了训练稳定性,加速训练过程,提高训练效率;而且,第一损失函数用于在训练过程中不断提高神经网络模型的推理精度,第二损失函数能够实现与第一损失函数一致的收敛趋势,提高了神经网络模型的推理精度。例如,本申请实施例的方案可以用于对原有的神经网络模型的训练过程进行优化,第一损失函数可以理解为神经网络模型原有的损失函数。原有的损失函数用于使训练后的神经网络模型输出的预测标签与训练数据的真实标签尽可能相同。本申请实施例的方案能够保证实现原本的预测任务的情况下,通过增加对梯度方向和大小的约束,提高了训练稳定性,加速训练过程,对多种深度神经网络模型具有普适性。
此外,采用第一损失函数的神经网络模型与采用目标损失函数的神经网络模型的训练开销几乎相同,也就是说,相对于采用第一损失函数的神经网络模型,本申请实施例的方案能够在几乎不增加开销的情况下,提高神经网络模型的训练速度和推理精度。现有的神经网络模型通常采用第一损失函数,本申请实施例的方案仅在现有的神经网络模型的基础上设置了新的优化目标,即目标损失函数,相当于仅增加了候选权重参数的计算过程,几乎不增加开销。进一步地,与使用BN等模块的神经网络模型相比,本申请实施例的方案能够达到使用BN等模块的神经网络模型相同的收敛速度和推理精度,且本申请实施例的方案能够有效利用处理器的算力,所需的训练开销远小于使用BN等模块的神经网络模型所需的训练开销。一方面,本申请实施例的方案极大地节省了训练资源,节约了训练成本,另一方面,同样的训练资源可以支撑更多的神经网络模型的训练。
此外,本申请实施例的方案可以在现有的神经网络的基础上完成,即在现有的神经网络模型的基础上设置新的优化目标,能够在用户无感知的情况下,即用户无需做任何修改的情况下替换原有的优化目标,自动完成神经网络模型训练的加速,提高训练效率,提高用户体验。
可选地,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的。至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异。
在该情况下,图11示出了本申请实施例中的一种神经网络模型的示意图。方法800可以基于图11所示的神经网络模型执行。图11中的DSM可以为装置700中的DSM730。图11中的DSM位于该神经网络模型中的下采样层之后。需要说明的是,图11仅为示意,DSM还可以位于神经网络模型中的其他位置,本申请实施例对此不做限定。
具体地,第二权重梯度可以通过步骤S1至步骤S3获得。
示例性地,步骤S1至步骤S3可以由图11中的动态稳定模块执行。该动态稳定模块具体描述可以参见前述装置700中的动态稳定模块730。
应理解,图11中的DSM的数量仅为示意,训练过程中还可以设置更多或更少的动态稳定模块。
下面对步骤S1至步骤S3进行说明。
S1、根据神经网络模型中的至少一层输出的特征得到至少一个第二预测标签。
该至少一层可以为神经网络模型中的任一层或多层。
示例性地,该神经网络模型可以包括至少一个下采样层,该至少一层可以为至少一个下采样层。步骤S1可以包括:根据神经网络模型中的至少一个下采样层输出的特征得到至少一个第二预测标签。
下采样层指的是使输出特征图的分辨率小于输入特征图的分辨率的层。
神经网络模型中包括N个下采样层,则该神经网络模型中包括N个分辨率下降的位置。步骤S1中可以根据N个下采样层中的M个下采样层输出的特征得到M个第二预测标签。N为正整数。M为小于或等于N的正整数。
示例性地,图11中的动态稳定模块的数量可以为M个,每个DSM分别置于一个下采样层之后,DSM中的第二优化目标模块可以用于执行步骤S1。
具体地,根据神经网络模型中的至少一层输出的特征得到至少一个第二预测标签,可以为:将该至少一层输出的特征输入对应的输出层中,得到至少一个第二预测标签。
例如,根据M个下采样层输出的特征得到M个第二预测标签可以为:将M个下采样输出的特征分别输入M个输出层中,得到M个第二预测标签。
上述输出层与神经网络模型原有的输出层是相同的结构。输出层的结构与神经网络模型的任务有关。例如,当神经网络模型用于图像分类时,该输出层也可以称为分类层。具体地,该分类层可以为softmax层,softmax层可以输出图像的预测分类标签。
进一步地,根据M个下采样层输出的特征得到M个第二预测标签可以为:将M个下采样输出的特征分别依次输入M个全局池化(global pooling)层、M个全连接层以及M个输出层中,得到M个第二预测标签。
可选地,神经网络模型包括至少一个第二特征归一层。该至少一个第二特征归一层分别位于至少一个下采样层之后,至少一个第二特征归一层用于对输入该至少一个第二特征归一层的特征进行特征归一化处理。
在该情况下,步骤S1可以包括:将神经网络模型中的至少一个下采样层输出的特征分别输入至少一个第二FN层进行特征归一化处理,根据处理后的结果得到至少一个第二预测标签。例如,该第二FN层可以视为图11中的DSM中的第二FN层。
具体地,根据M个下采样层输出的特征得到M个第二预测标签可以为:将M个下采样输出的特征分别输入M个第二FN层中进行特征归一化处理,并将处理后的结果分别输入M个输出层中,得到M个第二预测标签。
第二FN层与第一FN层采用的特征归一化处理可以是相同的。
示例性地,特征归一化处理可以为:将输入特征除以所有输入特征的平方根。具体地,特征归一化处理的结果可以满足如下公式:
进一步地,根据M个下采样层输出的特征得到M个第二预测标签可以为:将M个下采样输出的特征分别依次输入M个全局池化(global pooling)层、M个全连接层、M个第二FN层以及M个输出层中,得到M个第二预测标签。
S2、根据至少一个第二预测标签和训练数据的真实标签确定至少一个第二预测标签对应的第一损失函数的函数。
其中,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异。
示例性地,第一损失函数可以为交叉熵损失函数。第一损失函数的具体描述参见步骤S830,此处不再赘述。
例如,根据M个第二预测标签可以确定M个第二预测标签对应的第一损失函数的函数值。
示例性地,动态稳定模块的数量为M个,如图11所示,每个DSM分别置于一个下采样层之后,DSM中的第二优化目标模块可以用于执行步骤S2。
S3、根据至少一个第二预测标签对应的第一损失函数的函数值计算神经网络模型的至少一个第二权重梯度。
具体地,通过反向传播至少一个第二预测标签对应的第一损失函数的函数值计算至少一个第二权重梯度。
例如,根据M个第二预测标签对应的第一损失函数的函数值可以计算得到M个第二权重梯度。
示例性地,动态稳定模块的数量为M个,如图11所示,每个DSM分别置于一个下采样层之后,DSM中的第二优化目标模块可以用于执行步骤S3。
如前所述,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异。
第二损失函数的具体描述可以参见前述步骤S850,此处不再赘述。
目标损失函数的函数值可以根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定。如图11所示,第二优化目标模块和第一优化目标模块协同训练神经网络模型。
示例性地,目标损失函数的函数值为第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值之和。
例如,目标损失函数的函数值可以满足如下公式。
Lall=Lnew_n+Lnew;
其中,Lall表示目标损失函数的函数值,Lnew_n表示第二预测标签对应的第二损失函数的函数值,若第二预测标签是根据下采样层输出的特征得到的,Lnew_n也可以理解为第n个下采样层对应的第二损失函数的函数值。
示例性地,目标损失函数的函数值Lall可以满足如下公式。
Lall=an*Lnew_n+Lnew;
其中,an表示Lnew_n的权重。若第二预测标签是根据下采样层输出的特征得到的,an也可以理解为第n个下采样层对应的第二损失函数的函数值的权重。示例性地,an可以是预先设置的固定值。可替换地,an可以为变化值,例如,随迭代次数变化。具体描述参见后文中的方式1、方式2、方式3、方式4和方式5。
采用神经网络模型的初始化权重进行训练时,在训练初期神经网络模型极易不稳定。根据本申请实施例的方案,基于神经网络中的至少一层输出的特征得到第二预测标签,进而基于第二预测标签计算第二权重梯度作为神经网络模型的参数更新的辅助参考,能够减少梯度波动,提高训练的稳定性。
此外,由于下采样层之后特征图的分辨率降低,较多信息丢失,通过分析发现,下采样层的梯度波动较大,导致训练不稳定。根据本申请实施例的方案,基于下采样层输出的特征得到第二预测标签,进而基于第二预测标签计算第二权重梯度作为神经网络模型的参数更新的辅助参考,能够进一步减少梯度波动,提高训练的稳定性。
此外,仅将下采样层输出的特征得到的第二预测标签用于辅助训练,增加的计算量较少,不会占用大量的训练资源,也就是说,在几乎不增加开销的情况下,进一步减少梯度波动,提高训练的稳定性。
此外,通过特征归一化处理,使得前向波动控制在一定范围内,让整个训练过程更稳定,能够进一步加速训练过程。尤其是与使用BN等模块的神经网络模型相比,使用BN等模块的神经网络模型通常需要大量的BN模块,占用大量的训练开销。本申请实施例的方案能够达到使用BN等模块的神经网络模型相同的收敛速度和推理精度,且本申请实施例的方案仅在下采样层以及神经网络模型最后的输出层之前设置FN层,所需的FN层较少,训练开销远小于使用BN等模块的神经网络模型所需的训练开销。
可选地,在训练初期,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的。
在训练后期,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值确定的。
也就是说,在训练初期,执行步骤S810至步骤S860以及步骤S1至步骤S3,通过第二预测标签辅助训练,在训练后期,仅执行步骤S810至步骤S860,仅通过第一预测标签完成训练。
例如,在训练初期,采用图11所示的神经网络模型进行训练,在训练后期,采用图10所示的神经网络模型完成训练。
在该情况下,在上述目标损失函数的公式中,在训练初期an大于0,在训练后期,an为0。
在本申请实施例中,训练方式是可以变化的。示例性地,方法800由装置700执行。在训练初期,调整模块740发送使能信号使能DSM730,例如,基于图11所述的神经网络模型进行训练;在训练后期,调整模块740发送禁用信号禁用DSM730,即基于图10所示的神经网络模型进行训练。
不同阶段的训练方式可以根据需要设置。下面以五种方式(方式1、方式2、方式3、方式4和方式5)举例说明不同阶段的训练方式。
方式1:至少一个第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中对应的权重与更新次数呈负相关关系。
也就是说,至少一个第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中所占的比重随着训练过程不断减少。
例如,该权重值可以随迭代的次数变化,即完成一次迭代后减小该权重值。再如,该权重值可以随epoch的次数变化,即完成一次epoch后减小该权重值。本申请实施例对权重的变化频率不做限定,只要该权重与更新次数呈负相关关系即可。
如前所示,目标损失函数的函数值Lall可以满足如下公式。
Lall=an*Lnew_n+Lnew;
在该情况下,an随着更新次数的增加而减小。若an减小为0,则目标损失函数的函数值仅根据第一预测标签对应的第二损失函数的函数值确定。也就是说,训练初期指的是an不为0的阶段,在该阶段执行步骤S1至步骤S3。
方式2:在更新次数小于或等于第三阈值的情况下,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的。
进一步地,在更新次数大于第三阈值的情况下,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值确定的。
也就是说,训练初期指的是更新次数小于或等于第三阈值的阶段,在该阶段执行步骤S1至步骤S3。
在本申请实施例中,更新次数也可以理解为迭代次数。
在上述目标损失函数的公式中,在迭代次数大于第三阈值的情况下,an=0,在迭代次数小于或等于第三阈值的情况下,an大于0。
示例性地,在迭代次数小于或等于第三阈值的情况下,an为固定值,或者,an与更新次数呈负相关关系。
也就是说,装置700中的DSM模块仅在迭代次数小于或等于第三阈值的情况下参与训练。
方式3:在epoch次数小于或等于T的情况下,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的。T为正整数。
进一步地,在epoch次数大于T的情况下,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值确定的。
1个epoch指的是将训练集中的所有训练样本训练一次。在上述目标损失函数的公式中,在epoch次数小于或等于T的情况下,an大于0,在epoch次数大于T的情况下,an=0。
示例性地,在epoch次数小于或等于T的情况下,an为固定值,或者,an与更新次数呈负相关关系。
通常,整个训练周期会持续数十个epoch,仅在前T个epoch通过第二预测标签辅助训练过程,T通常取值较小,例如5-10个epoch。这样,可以进一步减少计算量,降低开销。
也就是说,装置700中的所有的DSM仅在前T个epoch(例如,5-10个epoch)参与训练。
例如,在神经网络模型中存在N个下采样层,可以在该N个下采样层后面接入DSM。
如图11所示,从开始训练至第T个epoch,该N个DSM和第一优化目标模块同步训练该神经网络模型;如图10所示,从第T个epoch开始至训练结束,由第一优化目标模块训练该神经网络模型。
方式4:在连续Q个迭代后得到的目标损失函数的函数值的变化值小于第四阈值的情况下,目标损失函数的函数值是根据第一预测标签对应的第二损失函数值确定的。Q为正整数。
进一步地,在连续Q个迭代后得到的目标损失函数的函数值的变化值大于或等于第四阈值的情况下,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的。
也就是说,在连续Q个迭代后得到的目标损失函数的函数值的变化值大于或等于第四阈值的情况下,执行步骤S1至步骤S3,通过第二预测标签辅助训练。在连续Q个迭代后得到的目标损失函数的函数值的变化值小于第四阈值的情况下,仅根据第一预测标签对应的第二损失函数的函数值对神经网络模型进行训练。
在上述目标损失函数的公式中,在连续Q个迭代后得到的目标损失函数的函数值的变化值小于第四阈值的情况下,an=0,在连续Q个迭代后得到的目标损失函数的函数值的变化值大于或等于第四阈值的情况下,an大于0。
示例性地,在连续Q个迭代后得到的目标损失函数的函数值的变化值大于或等于第四阈值的情况下,an为固定值,或者,an与更新次数呈负相关关系。
示例性地,装置700中的DSM模块仅在连续Q个迭代后得到的目标损失函数的函数值的变化值大于或等于第四阈值的情况下参与训练。
方式5:当连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值小于第五阈值时,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值确定的。
进一步地,在连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值大于或等于第五阈值的情况下,目标损失函数的损失函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的。
也就是说,在连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值大于或等于第五阈值的情况下,执行步骤S1至步骤S3,通过第二预测标签辅助训练。在连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值小于第五阈值的情况下,仅根据第一预测标签对应的第二损失函数的函数值对神经网络模型进行训练。
在上述目标损失函数的公式中,在连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值小于第五阈值的情况下,an=0,在连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值大于或等于第五阈值的情况下,an大于0。
示例性地,在连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值大于或等于第五阈值的情况下,an为固定值,或者,an与更新次数呈负相关关系。
示例性地,装置700中的DSM模块仅在连续Z个迭代后得到的第一预测标签对应的第二损失函数的函数值的变化值大于或等于第五阈值的情况下参与训练。
方式4和方式5可以理解为,当损失函数的函数值的波动值较小时,可以认为进入训练后期,仅通过第一预测标签对应的第二损失函数的函数值完成训练。
应理解,以上划分方式仅为示意,在实际应用过程中,可以根据需要划分训练初期和训练后期,或者说,可以根据训练过程判断使能DSM或禁用DSM。
进一步地,以上仅以使能或禁用全部的DSM为例进行说明,在实际应用过程中,可以根据需要使能或禁用部分的DSM,也就是说,可以采用部分下采样层输出的特征得到第二预测标签,以辅助训练。例如,随着迭代次数的增加,禁用的DSM的数量逐渐增加,直至禁用所有的DSM。
在训练初期,通常损失函数的函数值波动较大,即第一预测标签对应的第二损失函数的函数值的变化幅度较大,在该情况下,根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定目标损失函数的函数值,即通过第二预测标签辅助训练过程,提高神经网络模型在训练初期的稳定性。在训练后期,损失函数的函数值趋于稳定,即第一预测标签对应的第二损失函数的函数值的变化幅度较小,可以仅根据第一预测标签对应的第二损失函数的函数值对神经网络模型进行训练。
根据本申请实施例的方案,仅在训练初期通过第二预测标签辅助训练过程,这样可以增加神经网络模型在训练初期的稳定性,同时进一步减少计算量,降低训练开销。例如,当目标损失函数的函数值波动较大时,使能装置700中的DSM 730。当目标损失函数的函数值波动较小,或者说目标损失函数的函数值较为稳定时,禁用装置700中的DSM 730。DSM仅作用于训练初期,在训练后期,断开DSM,这样,可以在保证训练稳定性的同时,几乎不增加训练的开销。
此外,根据本申请实施例的方案,自适应调整训练方式,例如,前述方式3和方式4中,根据训练过程中的损失函数的函数值的变化情况调整训练方式,充分利用处理器的算力,能够在几乎不增加实现难度以及训练开销的情况下,提高神经网络模型的训练稳定性。
在一种实现方式中,本申请实施例的方案可以用于对原有的神经网络模型的训练过程进行优化,第一损失函数可以为该神经网络模型原有的损失函数。如前所述,目标优化模块720可以理解为神经网络模块的输出层之后的目标优化层。在原有的神经网络模型的训练过程中,目标优化层根据第一损失函数的函数值更新神经网络模型的权重参数。方法800的训练过程中,目标优化层根据目标损失函数的函数值更新神经网络模型的权重参数。若原有的神经网络模型包括BN层,则可以删除BN层。进一步地,在原有的神经网络模型的下采样层之后加入DSM模块,用于辅助神经网络模型的训练。也就是说,可以在不改变神经网络模型的结构的基础上,利用本申请实施例中的目标优化层替换原有的神经网络模型的训练过程中的目标优化层,并加入DSM,并在训练过程中使能或禁用DSM以调整训练方式,即可利用本申请实施例的方案进行训练。
图12示出了本申请实施例提供的图像处理方法1200的示意性流程图,该方法可以由能够进行图像处理的装置或设备执行,例如,该装置可以是云服务设备,也可以是终端设备,例如,电脑、服务器等运算能力足以用来执行图像处理方法的装置,也可以是由云服务设备和终端设备构成的系统。示例性地,方法1200可以由图2中的执行设备110、图5中的神经网络处理器50或图6中的执行设备310或本地设备执行。
例如,方法1200具体可以由如图2所示的执行设备110执行,方法1200中的待处理图像可以是如图2所示的客户设备140给出的输入数据。
图12中的图像处理方法1200中使用的目标神经网络模型可以是通过上述图8中的方法构建的。方法1200包括步骤S1210至步骤S1220。方法1200中的具体实现方式可以参照前述方法800,为了避免不必要的重复,下面在介绍方法1200时适当省略重复的描述。
S1210,获取待处理图像。
其中,待处理图像可以是终端设备(或者电脑、服务器等其他装置或设备)通过摄像头拍摄到的图像,或者,该待处理图像还可以是从终端设备(或者电脑、服务器等其他装置或设备)内部获得的图像(例如,终端设备的相册中存储的图像,或者终端设备从云端获取的图像),本申请实施例对此并不限定。
S1220,采用目标神经网络模型对待处理图像进行特征提取,根据目标神经网络模型提取的特征得到待处理图像的处理结果。
其中,目标神经网络模型是通过将训练数据输入神经网络模型中进行特征提取,根据神经网络模型提取的特征得到第一预测标签,根据第一预测标签和训练数据的真实标签确定第一预测标签对应的第一损失函数的函数值,第一预测标签对应的第一损失函数的函数值用于指示第一预测标签和训练数据的真实标签之间的差异,根据第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度,获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0,根据候选权重参数更新神经网络模型的参数得到的,其中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异,权重变化量为候选权重参数与神经网络模型的权重参数之间的差值。
可选地,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异,至少一个第二预测标签是根据神经网络模型中的至少一个下采样层输出的特征得到的,至少一个第二预测标签对应的第二损失函数的函数值是根据至少一个第二预测标签和训练数据的真实标签确定的,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异,至少一个第二权重梯度是根据至少一个第二预测标签对应的第一损失函数的函数值计算得到的。
可选地,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:至少一个第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
可选地,目标神经网络模型包括第一特征归一层,第一特征归一层位于目标神经网络模型的输出层之前,第一特征归一层用于对输入第一特征归一层的特征进行特征归一化处理。
可选地,神经网络模型包括至少一个第二特征归一层,至少一个第二特征归一层分别位于至少一个下采样层之后,至少一个第二特征归一层用于对输入至少一个第二特征归一层的特征进行特征归一化处理,至少一个第二预测标签是通过将神经网络模型中的至少一个下采样层输出的特征分别输入至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到的。
可选地,第二损失函数满足如下公式:
其中,Lnew第二损失函数,w表示候选权重参数,wk表示神经网络模型的权重参数;表示神经网络模型的权重梯度,d1表示用于指示权重变化量与权重梯度之间的差异的函数,d2表示用于指示候选权重参数与神经网络模型的权重参数之间的差异的函数,λ1表示d1的权重,λ2表示d2的权重。
可选地,根据候选权重参数更新神经网络模型的参数,包括:根据候选权重参数和学习率更新神经网络模型的参数,其中学习率用于指示神经网络模型的权重参数的变化幅度。
可选地,更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示神经网络模型的权重参数,w表示候选权重参数,lr表示学习率。
下面结合图13至图16对本申请实施例的装置进行说明。应理解,下面描述的装置能够执行前述本申请实施例的方法,为了避免不必要的重复,下面在介绍本申请实施例的装置时适当省略重复的描述。
图13是本申请实施例的推荐模型的训练装置的示意性框图。图13所示的推荐模型的训练装置3000包括获取单元3010和处理单元3020。
获取单元3010和处理单元3020可以用于执行本申请实施例的推荐模型的训练方法,具体地,可以用于执行方法800。
获取单元3010用于获取训练数据。
处理单元3020用于将训练数据输入神经网络模型中进行特征提取,根据提取的特征得到第一预测标签;根据第一预测标签和训练数据的真实标签确定第一预测标签对应的第一损失函数的函数值,第一预测标签对应的第一损失函数的函数值用于指示第一预测标签和训练数据的真实标签之间的差异;根据第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度;获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0,其中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异,权重变化量为候选权重参数与神经网络模型的权重参数之间的差值;根据候选权重参数更新神经网络模型的参数。
可选地,作为一个实施例,处理单元3020还用于:根据神经网络模型中的至少一个下采样层输出的特征得到至少一个第二预测标签;根据至少一个第二预测标签和训练数据的真实标签确定至少一个第二预测标签对应的第一损失函数的函数值,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异;根据至少一个第二预测标签对应的第一损失函数的函数值计算神经网络模型的至少一个第二权重梯度;以及目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异。
可选地,作为一个实施例,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:至少一个第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
可选地,作为一个实施例,神经网络模型包括第一特征归一层,第一特征归一层位于神经网络模型的输出层之前,第一特征归一层用于对输入第一特征归一层的特征进行特征归一化处理。
可选地,作为一个实施例,神经网络模型包括至少一个第二特征归一层,至少一个第二特征归一层分别位于至少一个下采样层之后,至少一个第二特征归一层用于对输入至少一个第二特征归一层的特征进行特征归一化处理,以及处理单元3020具体用于:将神经网络模型中的至少一个下采样层输出的特征分别输入至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到至少一个第二预测标签。
可选地,作为一个实施例,第二损失函数满足如下公式:
其中,Lnew第二损失函数,w表示候选权重参数,wk表示神经网络模型的权重参数;表示神经网络模型的权重梯度,d1表示用于指示权重变化量与权重梯度之间的差异的函数,d2表示用于指示候选权重参数与神经网络模型的权重参数之间的差异的函数,λ1表示d1的权重,λ2表示d2的权重。
可选地,作为一个实施例,处理单元3020具体用于:根据候选权重参数和学习率更新神经网络模型的参数,其中学习率用于指示神经网络模型的权重参数的变化幅度。
可选地,作为一个实施例,更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示神经网络模型的权重参数,w表示候选权重参数,lr表示学习率。
图14是本申请实施例提供的图像处理装置4000的示意性框图。图14所示的图像处理装置4000包括获取单元4010和处理单元4020。
获取单元4010和处理单元4020可以用于执行本申请实施例的图像处理方法,例如,可以用于执行方法1200。
获取单元4010用于获取待处理图像。
处理单元4020用于采用目标神经网络模型对待处理图像进行特征提取,根据目标神经网络模型提取的特征得到待处理图像的处理结果。
其中,目标神经网络模型是通过将训练数据输入神经网络模型中进行特征提取,根据神经网络模型提取的特征得到第一预测标签,根据第一预测标签和训练数据的真实标签确定第一预测标签对应的第一损失函数的函数值,第一预测标签对应的第一损失函数的函数值用于指示第一预测标签和训练数据的真实标签之间的差异,根据第一预测标签对应的第一损失函数的函数值计算神经网络模型的第一权重梯度,获取候选权重参数,目标损失函数的函数值对候选权重参数的偏导数为0,根据候选权重参数更新神经网络模型的参数得到的,其中,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值确定的,第一预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第一权重梯度之间的差异,权重变化量为候选权重参数与神经网络模型的权重参数之间的差值。
可选地,作为一个实施例,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,至少一个第二预测标签对应的第二损失函数的函数值用于指示候选权重参数与神经网络模型的权重参数之间的差异以及权重变化量与第二权重梯度之间的差异,至少一个第二预测标签是根据神经网络模型中的至少一个下采样层输出的特征得到的,至少一个第二预测标签对应的第二损失函数的函数值是根据至少一个第二预测标签和训练数据的真实标签确定的,至少一个第二预测标签对应的第一损失函数的函数值用于指示至少一个第二预测标签和训练数据的真实标签之间的差异,至少一个第二权重梯度是根据至少一个第二预测标签对应的第一损失函数的函数值计算得到的。
可选地,作为一个实施例,目标损失函数的函数值是根据第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:至少一个第二预测标签对应的第二损失函数的函数值在目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
可选地,作为一个实施例,目标神经网络模型包括第一特征归一层,第一特征归一层位于目标神经网络模型的输出层之前,第一特征归一层用于对输入第一特征归一层的特征进行特征归一化处理。
可选地,作为一个实施例,神经网络模型包括至少一个第二特征归一层,至少一个第二特征归一层分别位于至少一个下采样层之后,至少一个第二特征归一层用于对输入至少一个第二特征归一层的特征进行特征归一化处理,至少一个第二预测标签是通过将神经网络模型中的至少一个下采样层输出的特征分别输入至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到的。
可选地,作为一个实施例,第二损失函数满足如下公式:
其中,Lnew第二损失函数,w表示候选权重参数,wk表示神经网络模型的权重参数;表示神经网络模型的权重梯度,d1表示用于指示权重变化量与权重梯度之间的差异的函数,d2表示用于指示候选权重参数与神经网络模型的权重参数之间的差异的函数,λ1表示d1的权重,λ2表示d2的权重。
可选地,作为一个实施例,根据候选权重参数更新神经网络模型的参数,包括:根据候选权重参数和学习率更新神经网络模型的参数,其中学习率用于指示神经网络模型的权重参数的变化幅度。
可选地,作为一个实施例,更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示神经网络模型的权重参数,w表示候选权重参数,lr表示学习率。
需要说明的是,上述训练装置3000以及装置4000以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。
例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
图15是本申请实施例提供的神经网络模型的训练装置的硬件结构示意图。图15所示的神经网络模型的训练装置5000(该装置5000具体可以是一种计算机设备)包括存储器5001、处理器5002、通信接口5003以及总线5004。其中,存储器5001、处理器5002、通信接口5003通过总线5004实现彼此之间的通信连接。
存储器5001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器5001可以存储程序,当存储器5001中存储的程序被处理器5002执行时,处理器5002用于执行本申请实施例的神经网络模型的训练方法的各个步骤。具体地,处理器5002可以执行上文中图8所示的方法中的步骤S810至步骤S860。
处理器5002可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的神经网络模型的训练方法。
处理器5002还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图5所示的芯片。在实现过程中,本申请的神经网络模型的训练方法的各个步骤可以通过处理器5002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器5002还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器5001,处理器5002读取存储器5001中的信息,结合其硬件完成图13所示的训练装置中包括的单元所需执行的功能,或者,执行本申请方法实施例的图8所示的神经网络模型的训练方法。
通信接口5003使用例如但不限于收发器一类的收发装置,来实现装置5000与其他设备或通信网络之间的通信。例如,可以通过通信接口5003获取训练数据。
总线5004可包括在装置5000各个部件(例如,存储器5001、处理器5002、通信接口5003)之间传送信息的通路。
图16是本申请实施例的图像处理装置的硬件结构示意图。图16所示的图像处理装置6000包括存储器6001、处理器6002、通信接口6003以及总线6004。其中,存储器6001、处理器6002、通信接口6003通过总线6004实现彼此之间的通信连接。
存储器6001可以是ROM,静态存储设备和RAM。存储器6001可以存储程序,当存储器6001中存储的程序被处理器6002执行时,处理器6002和通信接口6003用于执行本申请实施例的图像处理方法的各个步骤。具体地,处理器6002可以执行上文中图12所示的方法中的步骤S1210至步骤S1220
处理器6002可以采用通用的,CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的图像处理装置中的单元所需执行的功能,或者执行本申请方法实施例的图像处理方法。
处理器6002还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图5所示的芯片。在实现过程中,本申请实施例的图像处理方法的各个步骤可以通过处理器6002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器6002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器6001,处理器6002读取存储器6001中的信息,结合其硬件完成本申请实施例的图像处理装置中包括的单元所需执行的功能,或者执行本申请方法实施例的图像处理方法。
通信接口6003使用例如但不限于收发器一类的收发装置,来实现装置6000与其他设备或通信网络之间的通信。例如,可以通过通信接口6003获取待处理图像。
总线6004可包括在装置6000各个部件(例如,存储器6001、处理器6002、通信接口6003)之间传送信息的通路。
应注意,尽管上述装置5000和装置6000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置5000和装置6000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置5000和装置6000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置5000和装置6000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图15和图16中所示的全部器件。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (36)
1.一种神经网络模型的训练方法,其特征在于,包括:
获取训练数据;
将所述训练数据输入神经网络模型中进行特征提取,根据提取的特征得到第一预测标签;
根据所述第一预测标签和所述训练数据的真实标签确定所述第一预测标签对应的第一损失函数的函数值,所述第一预测标签对应的第一损失函数的函数值用于指示所述第一预测标签和所述训练数据的真实标签之间的差异;
根据所述第一预测标签对应的第一损失函数的函数值计算所述神经网络模型的第一权重梯度;
获取候选权重参数,目标损失函数的函数值对所述候选权重参数的偏导数为0,其中,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值确定的,所述第一预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及权重变化量与所述第一权重梯度之间的差异,所述权重变化量为所述候选权重参数与所述神经网络模型的权重参数之间的差值;
根据所述候选权重参数更新所述神经网络模型的参数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述神经网络模型中的至少一个下采样层输出的特征得到至少一个第二预测标签;
根据所述至少一个第二预测标签和所述训练数据的真实标签确定所述至少一个第二预测标签对应的第一损失函数的函数值,所述至少一个第二预测标签对应的第一损失函数的函数值用于指示所述至少一个第二预测标签和所述训练数据的真实标签之间的差异;
根据所述至少一个第二预测标签对应的第一损失函数的函数值计算所述神经网络模型的至少一个第二权重梯度;以及
所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和所述至少一个第二预测标签对应的第二损失函数的函数值确定的,所述至少一个第二预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及所述权重变化量与所述第二权重梯度之间的差异。
3.根据权利要求1或2所述的方法,其特征在于,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和所述至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:
所述至少一个第二预测标签对应的第二损失函数的函数值在所述目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述神经网络模型包括第一特征归一层,所述第一特征归一层位于所述神经网络模型的输出层之前,所述第一特征归一层用于对输入所述第一特征归一层的特征进行特征归一化处理。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述神经网络模型包括至少一个第二特征归一层,所述至少一个第二特征归一层分别位于所述至少一个下采样层之后,所述至少一个第二特征归一层用于对输入所述至少一个第二特征归一层的特征进行特征归一化处理,以及
所述根据所述神经网络模型中的至少一个下采样层输出的特征得到至少一个第二预测标签,包括:
将所述神经网络模型中的至少一个下采样层输出的特征分别输入所述至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到至少一个第二预测标签。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述候选权重参数更新所述神经网络模型的参数,包括:
根据所述候选权重参数和学习率更新所述神经网络模型的参数,其中所述学习率用于指示所述神经网络模型的权重参数的变化幅度。
8.根据权利要求7所述的方法,其特征在于,所述更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示所述神经网络模型的权重参数,w表示所述候选权重参数,lr表示学习率。
9.一种图像处理方法,其特征在于,包括:
获取待处理图像;
采用目标神经网络模型对所述待处理图像进行特征提取,根据所述目标神经网络模型提取的特征得到所述待处理图像的处理结果;
其中,所述目标神经网络模型是通过将训练数据输入神经网络模型中进行特征提取,根据所述神经网络模型提取的特征得到第一预测标签,根据所述第一预测标签和所述训练数据的真实标签确定所述第一预测标签对应的第一损失函数的函数值,所述第一预测标签对应的第一损失函数的函数值用于指示所述第一预测标签和所述训练数据的真实标签之间的差异,根据所述第一预测标签对应的第一损失函数的函数值计算所述神经网络模型的第一权重梯度,获取候选权重参数,目标损失函数的函数值对所述候选权重参数的偏导数为0,根据所述候选权重参数更新所述神经网络模型的参数得到的,其中,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值确定的,所述第一预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及权重变化量与所述第一权重梯度之间的差异,所述权重变化量为所述候选权重参数与所述神经网络模型的权重参数之间的差值。
10.根据权利要求9所述的方法,其特征在于,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,所述至少一个第二预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及所述权重变化量与第二权重梯度之间的差异,所述至少一个第二预测标签是根据所述神经网络模型中的至少一个下采样层输出的特征得到的,所述至少一个第二预测标签对应的第二损失函数的函数值是根据所述至少一个第二预测标签和所述训练数据的真实标签确定的,所述至少一个第二预测标签对应的第一损失函数的函数值用于指示所述至少一个第二预测标签和所述训练数据的真实标签之间的差异,所述至少一个第二权重梯度是根据所述至少一个第二预测标签对应的第一损失函数的函数值计算得到的。
11.根据权利要求9或10所述的方法,其特征在于,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和所述至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:
所述至少一个第二预测标签对应的第二损失函数的函数值在所述目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述目标神经网络模型包括第一特征归一层,所述第一特征归一层位于所述目标神经网络模型的输出层之前,所述第一特征归一层用于对输入所述第一特征归一层的特征进行特征归一化处理。
13.根据权利要求10至12中任一项所述的方法,其特征在于,所述神经网络模型包括至少一个第二特征归一层,所述至少一个第二特征归一层分别位于所述至少一个下采样层之后,所述至少一个第二特征归一层用于对输入所述至少一个第二特征归一层的特征进行特征归一化处理,所述至少一个第二预测标签是通过将所述神经网络模型中的至少一个下采样层输出的特征分别输入所述至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到的。
15.根据权利要求9至14中任一项所述的方法,其特征在于,所述根据所述候选权重参数更新所述神经网络模型的参数,包括:
根据所述候选权重参数和学习率更新所述神经网络模型的参数,其中所述学习率用于指示所述神经网络模型的权重参数的变化幅度。
16.根据权利要求15所述的方法,其特征在于,所述更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示所述神经网络模型的权重参数,w表示所述候选权重参数,lr表示学习率。
17.一种神经网络模型的训练装置,其特征在于,包括:
获取单元,用于获取训练数据;
处理单元,用于:
将所述训练数据输入神经网络模型中进行特征提取,根据提取的特征得到第一预测标签;
根据所述第一预测标签和所述训练数据的真实标签确定所述第一预测标签对应的第一损失函数的函数值,所述第一预测标签对应的第一损失函数的函数值用于指示所述第一预测标签和所述训练数据的真实标签之间的差异;
根据所述第一预测标签对应的第一损失函数的函数值计算所述神经网络模型的第一权重梯度;
获取候选权重参数,目标损失函数的函数值对所述候选权重参数的偏导数为0,其中,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值确定的,所述第一预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及权重变化量与所述第一权重梯度之间的差异,所述权重变化量为所述候选权重参数与所述神经网络模型的权重参数之间的差值;
根据所述候选权重参数更新所述神经网络模型的参数。
18.根据权利要求17所述的装置,其特征在于,所述处理单元还用于:
根据所述神经网络模型中的至少一个下采样层输出的特征得到至少一个第二预测标签;
根据所述至少一个第二预测标签和所述训练数据的真实标签确定所述至少一个第二预测标签对应的第一损失函数的函数值,所述至少一个第二预测标签对应的第一损失函数的函数值用于指示所述至少一个第二预测标签和所述训练数据的真实标签之间的差异;
根据所述至少一个第二预测标签对应的第一损失函数的函数值计算所述神经网络模型的至少一个第二权重梯度;以及
所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和所述至少一个第二预测标签对应的第二损失函数的函数值确定的,所述至少一个第二预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及所述权重变化量与所述第二权重梯度之间的差异。
19.根据权利要求17或18所述的装置,其特征在于,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和所述至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:
所述至少一个第二预测标签对应的第二损失函数的函数值在所述目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
20.根据权利要求17至19中任一项所述的装置,其特征在于,所述神经网络模型包括第一特征归一层,所述第一特征归一层位于所述神经网络模型的输出层之前,所述第一特征归一层用于对输入所述第一特征归一层的特征进行特征归一化处理。
21.根据权利要求18至20中任一项所述的装置,其特征在于,所述神经网络模型包括至少一个第二特征归一层,所述至少一个第二特征归一层分别位于所述至少一个下采样层之后,所述至少一个第二特征归一层用于对输入所述至少一个第二特征归一层的特征进行特征归一化处理,以及所述处理单元具体用于:
将所述神经网络模型中的至少一个下采样层输出的特征分别输入所述至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到至少一个第二预测标签。
23.根据权利要求17至22中任一项所述的装置,其特征在于,所述处理单元具体用于:
根据所述候选权重参数和学习率更新所述神经网络模型的参数,其中所述学习率用于指示所述神经网络模型的权重参数的变化幅度。
24.根据权利要求23所述的装置,其特征在于,所述更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示所述神经网络模型的权重参数,w表示所述候选权重参数,lr表示学习率。
25.一种图像处理装置,其特征在于,包括:
获取单元,用于获取待处理图像;
图像处理单元,用于采用目标神经网络模型对所述待处理图像进行特征提取,根据所述目标神经网络模型提取的特征得到所述待处理图像的处理结果;
其中,所述目标神经网络模型是通过将训练数据输入神经网络模型中进行特征提取,根据所述神经网络模型提取的特征得到第一预测标签,根据所述第一预测标签和所述训练数据的真实标签确定所述第一预测标签对应的第一损失函数的函数值,所述第一预测标签对应的第一损失函数的函数值用于指示所述第一预测标签和所述训练数据的真实标签之间的差异,根据所述第一预测标签对应的第一损失函数的函数值计算所述神经网络模型的第一权重梯度,获取候选权重参数,目标损失函数的函数值对所述候选权重参数的偏导数为0,根据所述候选权重参数更新所述神经网络模型的参数得到的,其中,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值确定的,所述第一预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及权重变化量与所述第一权重梯度之间的差异,所述权重变化量为所述候选权重参数与所述神经网络模型的权重参数之间的差值。
26.根据权利要求25所述的装置,其特征在于,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和至少一个第二预测标签对应的第二损失函数的函数值确定的,所述至少一个第二预测标签对应的第二损失函数的函数值用于指示所述候选权重参数与所述神经网络模型的权重参数之间的差异以及所述权重变化量与第二权重梯度之间的差异,所述至少一个第二预测标签是根据所述神经网络模型中的至少一个下采样层输出的特征得到的,所述至少一个第二预测标签对应的第二损失函数的函数值是根据所述至少一个第二预测标签和所述训练数据的真实标签确定的,所述至少一个第二预测标签对应的第一损失函数的函数值用于指示所述至少一个第二预测标签和所述训练数据的真实标签之间的差异,所述至少一个第二权重梯度是根据所述至少一个第二预测标签对应的第一损失函数的函数值计算得到的。
27.根据权利要求25或26所述的装置,其特征在于,所述目标损失函数的函数值是根据所述第一预测标签对应的第二损失函数的函数值和所述至少一个第二预测标签对应的第二损失函数的函数值确定的,包括:
所述至少一个第二预测标签对应的第二损失函数的函数值在所述目标损失函数的函数值中对应的权重与神经网络模型的更新次数呈负相关关系。
28.根据权利要求25至27中任一项所述的装置,其特征在于,所述目标神经网络模型包括第一特征归一层,所述第一特征归一层位于所述目标神经网络模型的输出层之前,所述第一特征归一层用于对输入所述第一特征归一层的特征进行特征归一化处理。
29.根据权利要求26至28中任一项所述的装置,其特征在于,所述神经网络模型包括至少一个第二特征归一层,所述至少一个第二特征归一层分别位于所述至少一个下采样层之后,所述至少一个第二特征归一层用于对输入所述至少一个第二特征归一层的特征进行特征归一化处理,所述至少一个第二预测标签是通过将所述神经网络模型中的至少一个下采样层输出的特征分别输入所述至少一个第二特征归一层进行特征归一化处理,根据处理后的结果得到的。
31.根据权利要求25至30中任一项所述的装置,其特征在于,所述根据所述候选权重参数更新所述神经网络模型的参数,包括:
根据所述候选权重参数和学习率更新所述神经网络模型的参数,其中所述学习率用于指示所述神经网络模型的权重参数的变化幅度。
32.根据权利要求31所述的装置,其特征在于,所述更新后的神经网络模型的权重参数满足如下公式:
wk+1=(w-wk)*lr+wk;
其中,wk+1表示更新后的神经网络模型的权重参数,wk表示所述神经网络模型的权重参数,w表示所述候选权重参数,lr表示学习率。
33.一种神经网络模型的训练装置,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行权利要求1至8中任一项所述的方法。
34.一种图像处理装置,其特征在于,包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行权利要求9至16中任一项所述的方法。
35.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1至8或9至16中任一项所述的方法。
36.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1至8或9至16中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948460.2A CN114255361A (zh) | 2020-09-10 | 2020-09-10 | 神经网络模型的训练方法、图像处理方法及装置 |
PCT/CN2021/104015 WO2022052601A1 (zh) | 2020-09-10 | 2021-07-01 | 神经网络模型的训练方法、图像处理方法及装置 |
US18/180,978 US20230215159A1 (en) | 2020-09-10 | 2023-03-09 | Neural network model training method, image processing method, and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948460.2A CN114255361A (zh) | 2020-09-10 | 2020-09-10 | 神经网络模型的训练方法、图像处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114255361A true CN114255361A (zh) | 2022-03-29 |
Family
ID=80630258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010948460.2A Pending CN114255361A (zh) | 2020-09-10 | 2020-09-10 | 神经网络模型的训练方法、图像处理方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230215159A1 (zh) |
CN (1) | CN114255361A (zh) |
WO (1) | WO2022052601A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116682551A (zh) * | 2023-07-27 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 疾病预测方法、疾病预测模型训练方法和装置 |
CN117077867A (zh) * | 2023-09-08 | 2023-11-17 | 广州市中大信息技术有限公司 | 基于神经网络实现的企业数据智能分析方法及系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115861162A (zh) * | 2022-08-26 | 2023-03-28 | 宁德时代新能源科技股份有限公司 | 定位目标区域的方法、装置及计算机可读存储介质 |
CN115965829A (zh) * | 2022-11-24 | 2023-04-14 | 阿里巴巴(中国)有限公司 | 对象检测模型训练方法以及对象检测方法 |
CN116738226B (zh) * | 2023-05-26 | 2024-03-12 | 北京龙软科技股份有限公司 | 一种基于自可解释注意力网络的瓦斯涌出量预测方法 |
CN116350227B (zh) * | 2023-05-31 | 2023-09-22 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 一种脑磁图棘波的个体化检测方法、系统及储存介质 |
CN117173493B (zh) * | 2023-11-02 | 2024-02-27 | 腾讯科技(深圳)有限公司 | 分类模型的训练方法、装置、设备、程序产品及存储介质 |
CN117315431B (zh) * | 2023-11-29 | 2024-03-22 | 中国人民解放军陆军军医大学第二附属医院 | 一种基于深度学习实现辐射后的造血效果分析方法及系统 |
CN117309195B (zh) * | 2023-11-30 | 2024-04-12 | 中控技术股份有限公司 | 测温仪表的检测方法、装置及电子设备 |
CN117728504B (zh) * | 2024-02-18 | 2024-05-07 | 西安热工研究院有限公司 | 一种柴发联合燃机的黑启动系统及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200242507A1 (en) * | 2019-01-25 | 2020-07-30 | International Business Machines Corporation | Learning data-augmentation from unlabeled media |
CN110210515B (zh) * | 2019-04-25 | 2021-04-20 | 浙江大学 | 一种图像数据多标签分类方法 |
CN110647992A (zh) * | 2019-09-19 | 2020-01-03 | 腾讯云计算(北京)有限责任公司 | 卷积神经网络的训练方法、图像识别方法及其对应的装置 |
CN111476285B (zh) * | 2020-04-01 | 2023-07-28 | 深圳力维智联技术有限公司 | 一种图像分类模型的训练方法及图像分类方法、存储介质 |
-
2020
- 2020-09-10 CN CN202010948460.2A patent/CN114255361A/zh active Pending
-
2021
- 2021-07-01 WO PCT/CN2021/104015 patent/WO2022052601A1/zh active Application Filing
-
2023
- 2023-03-09 US US18/180,978 patent/US20230215159A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116682551A (zh) * | 2023-07-27 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 疾病预测方法、疾病预测模型训练方法和装置 |
CN116682551B (zh) * | 2023-07-27 | 2023-12-22 | 腾讯科技(深圳)有限公司 | 疾病预测方法、疾病预测模型训练方法和装置 |
CN117077867A (zh) * | 2023-09-08 | 2023-11-17 | 广州市中大信息技术有限公司 | 基于神经网络实现的企业数据智能分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2022052601A1 (zh) | 2022-03-17 |
US20230215159A1 (en) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110175671B (zh) | 神经网络的构建方法、图像处理方法及装置 | |
CN114255361A (zh) | 神经网络模型的训练方法、图像处理方法及装置 | |
WO2022042713A1 (zh) | 一种用于计算设备的深度学习训练方法和装置 | |
CN112418392A (zh) | 一种神经网络构建方法以及装置 | |
CN111507378A (zh) | 训练图像处理模型的方法和装置 | |
CN110222717B (zh) | 图像处理方法和装置 | |
CN113011575A (zh) | 神经网络模型更新方法、图像处理方法及装置 | |
WO2021218517A1 (zh) | 获取神经网络模型的方法、图像处理方法及装置 | |
CN112215332B (zh) | 神经网络结构的搜索方法、图像处理方法和装置 | |
CN113705769A (zh) | 一种神经网络训练方法以及装置 | |
CN111310604A (zh) | 一种物体检测方法、装置以及存储介质 | |
CN111882031A (zh) | 一种神经网络蒸馏方法及装置 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
CN112529146B (zh) | 神经网络模型训练的方法和装置 | |
CN111368972A (zh) | 一种卷积层量化方法及其装置 | |
CN111797882A (zh) | 图像分类方法及装置 | |
CN111340190A (zh) | 构建网络结构的方法与装置、及图像生成方法与装置 | |
CN112257759A (zh) | 一种图像处理的方法以及装置 | |
CN113592060A (zh) | 一种神经网络优化方法以及装置 | |
WO2023280113A1 (zh) | 数据处理方法、神经网络模型的训练方法及装置 | |
CN114492723A (zh) | 神经网络模型的训练方法、图像处理方法及装置 | |
CN113537462A (zh) | 数据处理方法、神经网络的量化方法及相关装置 | |
CN115081588A (zh) | 一种神经网络参数量化方法和装置 | |
CN111797881A (zh) | 图像分类方法及装置 | |
CN111695673A (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 |