CN113435521A - 神经网络模型训练方法、装置及计算机可读存储介质 - Google Patents

神经网络模型训练方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN113435521A
CN113435521A CN202110737305.0A CN202110737305A CN113435521A CN 113435521 A CN113435521 A CN 113435521A CN 202110737305 A CN202110737305 A CN 202110737305A CN 113435521 A CN113435521 A CN 113435521A
Authority
CN
China
Prior art keywords
neural network
network model
training
training data
target computing
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
Application number
CN202110737305.0A
Other languages
English (en)
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202110737305.0A priority Critical patent/CN113435521A/zh
Publication of CN113435521A publication Critical patent/CN113435521A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

本发明涉及人工智能技术领域,揭露一种神经网络模型训练方法,包括:获取至少两个目标计算卡,并在各目标计算卡中分别预存相同的训练数据集;对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同;在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重;循环执行上述步骤,直至所述神经网络模型收敛在预设范围内,完成训练过程。本发明可以提高神经网络模型的训练效率和精度。

Description

神经网络模型训练方法、装置及计算机可读存储介质
技术领域
本发明涉及人工智能技术领域,尤其涉及一种神经网络模型训练的方法、装置、电子设备及计算机可读存储介质。
背景技术
目前,对数据分类等问题进行处理时,通常是对数据进行特征提取,根据提取到的特征进而判断该对象所属的类别。而在众多特征提取的方法中,卷积神经网络是最重要的一种方法,其研究思想为先将每个神经元均建模为静态神经元,然后通过ReLu函数或sigmoid函数在模型中引入非线性,增加模型的容量,之后增加卷积层与池化层,实现该层的特征提取,将该层特征作为新的输入,逐层级联得到一个深度神经网络,并针对最后一层获取的对象特征,通过一个全连接层来建立特征与目标对象所属类别之间的关系。
但是,在现有的神经网络结构的主流算法中,当需要处理的分类数增加时,对应的神经网络结构中的全连接层的参数也会增加,由于全连接层大量占用显存会导致训练的每个批次样本量减少,从而导致神经网络结构的训练收敛难度加大。例如,使用512个特征值,有一百万分类时,全连接层的参数大概488M,占用显存大小为2GB左右。
为解决这一问题,现有的分布式方案将全连接层的权重系数放置多块显卡设备上,例如有8块显卡,那么每块显卡上的权重系数量为256MB,但是这种方案会产生四次数据收发。而对于计算卡来说,数据的收发次数增加也会非常耗费时间。
可知,现有的神经网络结构在训练过程中存在模型收敛难度大或耗费时间长等问题,影响模型的训练效率和精度。
发明内容
本发明提供一种神经网络模型训练方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高了神经网络模型的训练效率和精度。
为实现上述目的,本发明提供的一种神经网络模型训练方法,包括:
获取至少两个目标计算卡,并在各目标计算卡中分别预存相同的训练数据集;
对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;其中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同;
在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重;
循环执行上述步骤,直至所述神经网络模型收敛在预设范围内,完成训练过程。
可选地,所述在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练的步骤包括:
初始化处理神经网络模型的所有参数,并基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重;
基于所述各目标计算卡上的迭代训练结果对所述神经网络模型的骨干网络的参数权重进行同步更新,同时,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新。
可选地,所述基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重,包括:
根据所述训练数据子集的大小,对应调整与所述目标计算卡相对应的全连接层的参数权重。
可选地,所述基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新的步骤包括:
基于所述目标计算卡上的迭代训练结果,对对应的全连接层进行参数权重更新;其中,所述全连接层的参数权重的更新次数与迭代训练的次数对应;
待所述迭代训练达到第一预设次数后,获取所有目标计算卡上的全连接层的特征向量,以确定对应的特征向量集;
对所述特征向量集进行重新分配,确定所述全连接层在所述各目标计算卡上的新参数权重,并重新进行迭代训练。
可选地,所述循环执行上述步骤,直至所述神经网络模型收敛在预设范围内的步骤包括:
待所述迭代训练达到第二预设次数后,对所述训练数据集进行重新随机划分,并形成与各目标计算卡分别对应的新训练数据子集;
基于所述新训练数据子集对所述神经网路模型进行迭代训练,直至所述神经网络模型收敛在预设范围内。
可选地,所述神经网络模型收敛在预设范围内包括:
获取所述神经网络模型的损失函数,当所述损失函数符合预设阈值时,确定所述神经网络模型训练完成;其中,
所述损失函数包括MAE平均绝对误差、MSE均方误差、交叉熵函数、复合损失函数,所述复合损失函数为至少两种损失函数按照一定的系数或比例进行结合的函数;
所述平均绝对误差的表达公式为:
Figure BDA0003140364400000031
所述均方误差的表达公式为:
Figure BDA0003140364400000032
其中,n表示输入的训练数据的个数,yi表示第i个训练数据,yi p表示第i个训练数据的预测值。
为了解决上述问题,本发明还提供一种神经网络模型训练装置,所述装置包括:
训练数据集预存单元,用于获取至少两个目标计算卡,并在各目标计算卡中分别预存相同的训练数据集;
训练数据子集形成单元,用于对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;其中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同;
参数权重迭代更新单元,用于在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重;
神经网络模型形成单元,用于循环执行上述单元,直至所述神经网络模型收敛在预设范围内,完成训练过程。
可选地,所述在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练的步骤包括:
初始化处理神经网络模型的所有参数,并基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重;
基于所述各目标计算卡上的迭代训练结果对所述神经网络模型的骨干网络的参数权重进行同步更新,同时,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述所述的神经网络模型训练方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的神经网络模型训练方法。
本发明实施例通过在所有的目标计算卡中预存相同的训练数据集,然后对训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;在各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于迭代训练的结果更新神经网络模型的参数权重,直至神经网络模型收敛在预设范围内,完成训练过程,能够极大减少通信的数据量及显存开销,提高神经网络训练的效率,加快模型迭代的周期,降低训练成本;此外,由于减少了通信次数,还能够节省频繁通信的开销,大大的提高神经网络训练的效率及精度。
附图说明
图1为本发明一实施例提供的神经网络模型训练方法的流程示意图;
图2为本发明一实施例提供的神经网络模型训练装置的模块示意图;
图3为本发明一实施例提供的实现神经网络模型训练方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种神经网络模型训练方法。参照图1所示,为本发明一实施例提供的神经网络模型训练方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,神经网络模型训练方法包括:
S110:获取至少两个目标计算卡,并在各目标计算卡中分别预存相同的训练数据集。
其中,本发明中的目标计算卡可以为GPU或显卡等多种符合数据计算要求的计算单元,设置个数至少为两个,具体可根据需求进行设定。为确保后续各目标计算卡对神经网络模型的训练一致性,避免出现数据不对称的情况,可先将相同的训练数据集分别预存至各目标计算卡中,便于后期神经网络模型的训练。
S120:对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;其中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同。
具体地,划分后的各训练数据子集与目标计算卡是呈一一对应关系的,进而使得各目标计算卡能够分别通过不同的训练数据进行神经网络模型的分别训练,其中,在对训练数据集进行划分时,形成的各训练数据子集的大小可以是相同的,即对训练数据集进行平均划分;此外,各训练数据子集的大小也可是存在差异的,当各训练数据子集的大小存在差异时,可在初始化神经网络模型的过程中,根据各训练数据子集的大小,对应调整各目标计算卡内的全连接层的参数权重。此处的参数权重也可理解为全连接层的系数或全连接层的特征矩阵。
此外,在不同的目标计算卡内训练的是同一神经网络模型,只是不同目标计算卡内的训练数据存在差异,且在全连接层处,每次迭代训练更新模型的参数权重时,是根据对应的目标计算卡内的训练数据子集的迭代结果,对对应的全连接层的参数权重进行更新,不同目标计算卡内的全连接层的参数权重是存在差异的,但是神经网络模型的骨干结构的参数均是同步更新的。
S130:在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重。
该步骤中在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练的步骤可进一步包括:
1、初始化处理神经网络模型的所有参数,并基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重;
2、基于所述各目标计算卡上的迭代训练结果对所述神经网络模型的骨干网络的参数权重进行同步更新,同时,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新。
其中,基于所述训练数据子集的划分调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重,包括:根据所述训练数据子集的大小,对应调整与所述目标计算卡相对应的全连接层的参数权重。
作为示例,当所述神经网络模型的整体全连接层的输入是1024,输出是100万分类时,即全连接层的参数权重(也可称为系数)为wij,其中,i∈[0,d)的整数,j∈[0,N)的整数,其中d可取值为1024,N为1000000。可知,所述整体全连接层的大小为1024*100w;当目标计算卡设置有4个时,可将100w均分为4个2500,对应的每个目标计算卡上的全连接层的代销即为1024*2500。可知,在初始化调整各全连接层的参数权重时,可根据目标计算卡的个数、分类数及输入数据等相应调整对应目标计算卡上的全连接层的参数权重。
进一步地,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新,可包括:
基于所述目标计算卡上的迭代训练结果,对对应的全连接层进行参数权重更新;其中,所述全连接层的参数权重的更新次数与迭代训练的次数对应;
待所述迭代训练达到第一预设次数后,获取所有目标计算卡上的全连接层的特征向量,以确定对应的特征向量集;
对所述特征向量集进行重新分配,确定所述全连接层在所述各目标计算卡上的新参数权重,并重新进行迭代训练。
作为具体示例,在对特征向量集进行重新分配的过程中:
假设将wij随机分到m个目标计算卡之后,形成0计算卡上的w0,i,j,1计算卡上的w1,i,j,直至m计算卡上的wm,i,j。其中,m表示计算卡的个数,i,j均表示特征向量的参数。
其中,在第一次迭代之后,对应计算卡上的特征向量会发生更新变化,变化的结果是:
Figure BDA0003140364400000071
Figure BDA0003140364400000072
Figure BDA0003140364400000073
其中,w表示全连接层的系数,w的上标表示当前迭代次数,例如0计算卡上的w0,i,j,在进行一次迭代训练后更新为新的特征向量
Figure BDA0003140364400000074
并且
Figure BDA0003140364400000075
对应地,在进行第一预设次数t步迭代训练后,对应计算卡上的特征向量更新为:
Figure BDA0003140364400000076
然后将所有目标计算卡上的全部特征向量进行收集,形成特征向量集。然后可将所所有的特征向量进行打乱,并随机分配至不同的目标计算卡上,但是在重新分配过程中,特征向量的个数需与对应的目标计算卡上的全连接层的大小相适配,随机分配后的对应的计算卡m上的特征向量为
Figure BDA0003140364400000077
然后再训练执行上述步骤。
S140:循环执行上述步骤,直至所述神经网络模型收敛在预设范围内,完成训练过程。
其中,直至所述神经网络模型收敛在预设范围内的步骤包括:待所述迭代训练达到第二预次数后,对所述训练数据集进行重新随机划分,并形成与各目标计算卡分别对应的新训练数据子集;
基于所述新训练数据子集对所述神经网路模型进行迭代训练,直至所述神经网络模型收敛在预设范围内。
在模型训练完成后,最终的神经网络模型的全连接层可表示为:y=∑wx,其中,w表示各全连接层的参数权重,x表示对应的全连接层的输入,各全连接层在迭代训练过程中,相互独立更新,并在迭代一定次数后,对全连接层的参数权重进行重新分派,再进行迭代训练。
其中,全连接层中的每个神经元均与其前一层的所有神经元进行全连接,通过全连接层可以整合神经网络模型中的卷积层或池化层中具有类别区分性的局部信息,此外为了提升神经网络模型的性能,全连接层的每个神经元的激励函数通常采用ReLU函数,最后全连接层的输出值会传递至一个输出,进而可采用逻辑回归进行分类,能够对任务进行合理划分,提高整个模型的训练精度,且可应用至多任务训练场景中,提高不同任务训练的准确率。
在该步骤中,可获取所述神经网络模型的损失函数,当所述损失函数不再减小或符合预设阈值时,确定所述神经网络模型训练完成。其中,所述损失函数包括:MAE平均绝对误差、MSE均方误差、交叉熵函数或复合损失函数,其中复合损失函数可为至少两个损失函数按照一定的系数或比例进行结合的函数。
所述平均绝对误差的表达公式为:
Figure BDA0003140364400000081
所述均方误差的表达公式为:
Figure BDA0003140364400000082
其中,n表示输入的训练数据的个数,yi表示第i个训练数据,yi p表示第i个训练数据的预测值。
利用上述根据本发明的神经网络模型训练方法,在对通信负责度进行评估的过程如下所示:
设定现有的训练数据批次大小为b(每个目标计算卡上存在b张图片)、宽高为w、h通道数为c,目标计算卡数量为m(存在m个GPU),全连接层传入的特征向量为d,分类数为N。则现有方案与本发明中的通信量和存储量如下表1所示:
现有方案一 现有方案二 本发明
通信量 2mdN 2mbd+2mbN 2mdN/s
存储量 dN dN/m dN/m
表1
当m=8,b=256,d=1024,N=1000000,s=100时,s等于第一预设次数t,上述表格1的计算结果如下表2所示。
现有方案一 现有方案二 本发明
通信量 61.0GB/step 15.27GB/step 610MB/step
存储量 3.81GB/device 477MB/device 477MB/device
表2
其中,/step表示平均到每一个迭代步的通信量,/device表示平均到每个显卡的显存使用量,传统的方法需要每个显卡都存储,但是在本发明中通过样本采样排布布局的设计减少了存储量和通信量,全连接层存储量减少,每个显卡只需要存储1/t。
通过本发明的神经网络模型训练方法,能够极大的减少通信的数据量及显存开销,提高神经网络训练的效率,加快模型迭代的周期,降低训练成本;此外,由于减少了通信次数,还能够节省频繁通信的开销,大大的提高神经网络训练的效率及精度,可适用于人脸识别、植物识别等领域中。
当如图2所示,是本发明神经网络模型训练装置的功能模块图。
本发明所述神经网络模型训练装置200可以安装于电子设备中。根据实现的功能,所述神经网络模型训练装置200可以包括训练数据集预存单元210、训练数据子集形成单元220、参数权重迭代更新单元230、神经网络模型形成单元240。本发所述单元也可以称之为模块,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
训练数据集预存单元210,用于获取至少两个目标计算卡,并各目标计算卡中分别预存相同的训练数据集。
其中,本发明中的目标计算卡可以为GPU或显卡等多种符合数据计算要求的计算单元。为确保后续各目标计算卡对神经网络模型的训练一致性,避免出现数据不对称的情况,可先将相同的训练数据集分别预存至各目标计算卡中,便于后期神经网络模型的训练。
训练数据子集形成单元220,用于对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;其中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同。
其中,在对所述训练数据集进行随机划分所形成的与各目标计算卡分别对应的训练数据子集中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同。
具体地,划分后的各训练数据子集与目标计算卡是呈一一对应关系的,进而使得各目标计算卡能够分别通过不同的训练数据进行神经网络模型的分别训练,其中,在对训练数据集进行划分时,形成的各训练数据子集的大小可以是相同的,即对训练数据集进行平均划分;此外,各训练数据子集的大小也可是存在差异的,当各训练数据子集的大小存在差异时,可在初始化神经网络模型的过程中,根据各训练数据子集的大小,对应调整各目标计算卡内的全连接层的参数权重。此处的参数权重也可理解为全连接层的系数或全连接层的特征矩阵。
此外,在不同的目标计算卡内训练的是同一神经网络模型,只是不同目标计算卡内的训练数据存在差异,且在全连接层处,每次迭代训练更新模型的参数权重时,是根据对应的目标计算卡内的训练数据子集的迭代结果,对对应的全连接层的参数权重进行更新,不同目标计算卡内的全连接层的参数权重是存在差异的,但是神经网络模型的骨干结构的参数均是同步更新的。
参数权重迭代更新单元230,用于在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重。
该单元中在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练的步骤可进一步包括:
1、初始化处理神经网络模型的所有参数,并基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重;
2、基于所述各目标计算卡上的迭代训练结果对所述神经网络模型的骨干网络的参数权重进行同步更新,同时,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新。
其中,基于所述训练数据子集的划分调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重,包括:根据所述训练数据子集的大小,对应调整与所述目标计算卡相对应的全连接层的参数权重。
作为示例,当所述神经网络模型的整体全连接层的输入是1024,输出是100万分类时,即全连接层的参数权重(也可称为系数)为wij,其中,i∈[0,d)的整数,j∈[0,N)的整数,其中d可取值为1024,N为1000000。可知,所述整体全连接层的大小为1024*100w;当目标计算卡设置有4个时,可将100w均分为4个2500,对应的每个目标计算卡上的全连接层的代销即为1024*2500。可知,在初始化调整各全连接层的参数权重时,可根据目标计算卡的个数、分类数及输入数据等相应调整对应目标计算卡上的全连接层的参数权重。
进一步地,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新,可包括:
基于所述计算卡上的迭代训练结果,对对应的全连接层进行参数权重更新;其中,所述全连接层的参数权重的更新次数与迭代训练的次数对应;
待所述迭代训练达到第一预设次数后,获取所有目标计算卡上的全连接层的特征向量,以确定对应的特征向量集;
对所述特征向量集进行重新分配,确定所述全连接层在所述各目标计算卡上的新参数权重,并重新进行迭代训练。
作为具体示例,在对特征向量集进行重新分配的过程中:
假设将wij随机分到m个目标计算卡之后,形成0目标计算卡上的w0,i,j,1目标计算卡上的w0,i,j,直至m目标计算卡上的wm,i,j。其中,m表示目标计算卡的个数,i,j均表示特征向量的参数。
其中,在第一次迭代之后,对应目标计算卡上的特征向量会发生更新变化,变化的结果是:
Figure BDA0003140364400000111
Figure BDA0003140364400000112
Figure BDA0003140364400000113
其中,w表示全连接层的系数,w的上标表示当前迭代次数,例如0目标计算卡上的w0,i,j,在进行一次迭代训练后更新为新的特征向量
Figure BDA0003140364400000114
并且
Figure BDA0003140364400000115
对应地,在进行第一预设次数t步迭代训练后,对应目标计算卡上的特征向量更新为:
Figure BDA0003140364400000116
然后将所有目标计算卡上的全部特征向量进行收集,形成特征向量集。然后可将所所有的特征向量进行打乱,并随机分配至不同的目标计算卡上,但是在重新分配过程中,特征向量的个数需与对应的目标计算卡上的全连接层的大小相适配,随机分配后的对应的目标计算卡m上的特征向量为
Figure BDA0003140364400000121
然后再训练执行上述步骤。
神经网络模型形成单元240,用于循环执行上述单元,直至所述神经网络模型收敛在预设范围内,完成训练过程。
其中,直至所述神经网络模型收敛在预设范围内的步骤包括:待所述迭代训练达到第二预次数后,对所述训练数据集进行重新随机划分,并形成与各目标计算卡分别对应的新训练数据子集;
基于所述新训练数据子集对所述神经网路模型进行迭代训练,直至所述神经网络模型收敛在预设范围内。
在模型训练完成后,最终的神经网络模型的全连接层可表示为:y=∑wx,其中,w表示各全连接层的参数权重,x表示对应的全连接层的输入,各全连接层在迭代训练过程中,相互独立更新,并在迭代一定次数后,对全连接层的参数权重进行重新分派,再进行迭代训练。
其中,全连接层中的每个神经元均与其前一层的所有神经元进行全连接,通过全连接层可以整合神经网络模型中的卷积层或池化层中具有类别区分性的局部信息,此外为了提升神经网络模型的性能,全连接层的每个神经元的激励函数通常采用ReLU函数,最后全连接层的输出值会传递至一个输出,进而可采用逻辑回归进行分类,能够对任务进行合理划分,提高整个模型的训练精度,且可应用至多任务训练场景中,提高不同任务训练的准确率。
在该步骤中,可获取所述神经网络模型的损失函数,当所述损失函数不再减小或符合预设阈值时,确定所述神经网络模型训练完成。其中,所述损失函数包括:MAE平均绝对误差、MSE均方误差、交叉熵函数或复合损失函数,其中复合损失函数可为至少两个损失函数按照一定的系数或比例进行结合的函数。
所述平均绝对误差的表达公式为:
Figure BDA0003140364400000122
所述均方误差的表达公式为:
Figure BDA0003140364400000131
其中,n表示输入的训练数据的个数,yi表示第i个训练数据,yi p表示第i个训练数据的预测值。
如图2示,是本发明实现神经网络模型训练方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如神经网络模型训练程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如神经网络模型训练程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如神经网络模型训练程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图2示出了具有部件的电子设备,本领域技术人员可以理解的是,图2出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的神经网络模型训练程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
获取至少两个目标计算卡,并在各目标计算卡中分别预存相同的训练数据集;
对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;其中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同;
在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重;
循环执行上述步骤,直至所述神经网络模型收敛在预设范围内,完成训练过程。
可选地,所述在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练的步骤包括:
初始化处理神经网络模型的所有参数,并基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重;
基于所述各目标计算卡上的迭代训练结果对所述神经网络模型的骨干网络的参数权重进行同步更新,同时,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新。
可选地,所述基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重,包括:
根据所述训练数据子集的大小,对应调整与所述目标计算卡相对应的全连接层的参数权重。
可选地,所述基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新的步骤包括:
基于所述目标计算卡上的迭代训练结果,对对应的全连接层进行参数权重更新;其中,所述全连接层的参数权重的更新次数与迭代训练的次数对应;
待所述迭代训练达到第一预设次数后,获取所有目标计算卡上的全连接层的特征向量,以确定对应的特征向量集;
对所述特征向量集进行重新分配,确定所述全连接层在所述各目标计算卡上的新参数权重,并重新进行迭代训练。
可选地,所述循环执行上述步骤,直至所述神经网络模型收敛在预设范围内的步骤包括:
待所述迭代训练达到第二预设次数后,对所述训练数据集进行重新随机划分,并形成与各目标计算卡分别对应的新训练数据子集;
基于所述新训练数据子集对所述神经网路模型进行迭代训练,直至所述神经网络模型收敛在预设范围内。
可选地,所述神经网络模型收敛在预设范围内包括:
获取所述神经网络模型的损失函数,当所述损失函数符合预设阈值时,确定所述神经网络模型训练完成;其中,
所述损失函数包括MAE平均绝对误差、MSE均方误差、交叉熵函数、复合损失函数,所述复合损失函数为至少两种损失函数按照一定的系数或比例进行结合的函数;
所述平均绝对误差的表达公式为:
Figure BDA0003140364400000161
所述均方误差的表达公式为:
Figure BDA0003140364400000162
其中,n表示输入的训练数据的个数,yi表示第i个训练数据,yi p表示第i个训练数据的预测值。
上述神经网络模型训练方法、装置、电子设备及计算机可读存储介质的实施例均可相互参考借鉴,此处不再一一赘述。
在发明提供的神经网络模型训练方法、装置、设备及存储介质中,通过在所有的目标计算卡中预存相同的训练数据集,然后对训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;在各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于迭代训练的结果更新神经网络模型的参数权重,直至神经网络模型收敛在预设范围内,完成训练过程,能够极大减少通信的数据量及显存开销,提高神经网络训练的效率,加快模型迭代的周期,降低训练成本;此外,由于减少了通信次数,还能够节省频繁通信的开销,大大的提高神经网络训练的效率及精度。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种神经网络模型训练方法,其特征在于,所述方法包括:
获取至少两个目标计算卡,并在各目标计算卡中分别预存相同的训练数据集;
对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;其中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同;
在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重;
循环执行上述步骤,直至所述神经网络模型收敛在预设范围内,完成训练过程。
2.如权利要求1所述的神经网络模型训练方法,其特征在于,所述在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练的步骤包括:
初始化处理神经网络模型的所有参数,并基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重;
基于所述各目标计算卡上的迭代训练结果对所述神经网络模型的骨干网络的参数权重进行同步更新,同时,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新。
3.如权利要求2所述的神经网络模型训练方法,其特征在于,所述基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重,包括:
根据所述训练数据子集的大小,对应调整与所述目标计算卡相对应的全连接层的参数权重。
4.如权利要求2所述的神经网络模型训练方法,其特征在于,所述基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新的步骤包括:
基于所述目标计算卡上的迭代训练结果,对对应的全连接层进行参数权重更新;其中,所述全连接层的参数权重的更新次数与迭代训练的次数对应;
待所述迭代训练达到第一预设次数后,获取所有目标计算卡上的全连接层的特征向量,以确定对应的特征向量集;
对所述特征向量集进行重新分配,确定所述全连接层在所述各目标计算卡上的新参数权重,并重新进行迭代训练。
5.如权利要求1所述的神经网络模型训练方法,其特征在于,所述循环执行上述步骤,直至所述神经网络模型收敛在预设范围内的步骤包括:
待所述迭代训练达到第二预设次数后,对所述训练数据集进行重新随机划分,并形成与各目标计算卡分别对应的新训练数据子集;
基于所述新训练数据子集对所述神经网路模型进行迭代训练,直至所述神经网络模型收敛在预设范围内。
6.如权利要求1所述的神经网络模型训练方法,其特征在于,所述神经网络模型收敛在预设范围内包括:
获取所述神经网络模型的损失函数,当所述损失函数符合预设阈值时,确定所述神经网络模型训练完成;其中,
所述损失函数包括MAE平均绝对误差、MSE均方误差、交叉熵函数、复合损失函数,所述复合损失函数为至少两种损失函数按照一定的系数或比例进行结合的函数;
所述平均绝对误差的表达公式为:
Figure FDA0003140364390000021
所述均方误差的表达公式为:
Figure FDA0003140364390000022
其中,n表示输入的训练数据的个数,yi表示第i个训练数据,yi p表示第i个训练数据的预测值。
7.一种神经网络模型训练装置,其特征在于,所述装置包括:
训练数据集预存单元,用于获取至少两个目标计算卡,并在各目标计算卡中分别预存相同的训练数据集;
训练数据子集形成单元,用于对所述训练数据集进行随机划分,形成与各目标计算卡分别对应的训练数据子集;其中,任意两个训练数据子集之间的交集为空,且所有训练数据子集的并集为所述训练数据集的全集;并且,各训练数据子集的大小相同或不同;
参数权重迭代更新单元,用于在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练,并基于所述迭代训练的结果更新所述神经网络模型的参数权重;
神经网络模型形成单元,用于循环执行上述单元,直至所述神经网络模型收敛在预设范围内,完成训练过程。
8.如权利要求7所示的神经网络模型训练装置,其特征在于,所述在所述各目标计算卡上分别通过对应的训练数据子集对初始化后的神经网络模型进行迭代训练的步骤包括:
初始化处理神经网络模型的所有参数,并基于所述训练数据子集的划分结果调整与所述目标计算卡对应的神经网络模型的全连接层的参数权重;
基于所述各目标计算卡上的迭代训练结果对所述神经网络模型的骨干网络的参数权重进行同步更新,同时,基于所述各目标计算卡上迭代训练结果分别对所述神经网络模型的全连接层的参数权重进行相互独立更新。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至6中任一所述的神经网络模型训练方法中的步骤。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一所述的神经网络模型训练方法中的步骤。
CN202110737305.0A 2021-06-30 2021-06-30 神经网络模型训练方法、装置及计算机可读存储介质 Pending CN113435521A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110737305.0A CN113435521A (zh) 2021-06-30 2021-06-30 神经网络模型训练方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110737305.0A CN113435521A (zh) 2021-06-30 2021-06-30 神经网络模型训练方法、装置及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113435521A true CN113435521A (zh) 2021-09-24

Family

ID=77758366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110737305.0A Pending CN113435521A (zh) 2021-06-30 2021-06-30 神经网络模型训练方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113435521A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023104200A1 (en) * 2021-12-10 2023-06-15 Huawei Technologies Co., Ltd. Systems, apparatuses, methods, and non-transitory computer-readable storage devices for artificial-intelligence model training using hybrid shuffling of training data
CN116644804A (zh) * 2023-07-27 2023-08-25 浪潮电子信息产业股份有限公司 分布式训练系统、神经网络模型训练方法、设备和介质
CN117235480A (zh) * 2023-11-16 2023-12-15 深圳市吾股大数据科技有限公司 基于大数据实现数据加工下的筛选方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116520A1 (en) * 2015-10-23 2017-04-27 Nec Laboratories America, Inc. Memory Efficient Scalable Deep Learning with Model Parallelization
CN110619393A (zh) * 2019-09-27 2019-12-27 上海交通大学 基于学习算法的交通仿真软件参数标定方法、系统及介质
CN111539519A (zh) * 2020-04-30 2020-08-14 成都成信高科信息技术有限公司 一种面向海量数据的卷积神经网络训练引擎方法及系统
CN111582477A (zh) * 2020-05-09 2020-08-25 北京百度网讯科技有限公司 神经网络模型的训练方法和装置
CN112287982A (zh) * 2020-10-14 2021-01-29 深圳大学 一种数据预测方法、装置及终端设备
US20210089824A1 (en) * 2019-09-24 2021-03-25 Beijing Sensetime Technology Development Co., Ltd. Image processing method, image processing device, and storage medium
CN112734034A (zh) * 2020-12-31 2021-04-30 平安科技(深圳)有限公司 模型训练方法、调用方法、装置、计算机设备和存储介质
US20230073669A1 (en) * 2020-05-18 2023-03-09 Arm Limited Optimising a neural network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116520A1 (en) * 2015-10-23 2017-04-27 Nec Laboratories America, Inc. Memory Efficient Scalable Deep Learning with Model Parallelization
US20210089824A1 (en) * 2019-09-24 2021-03-25 Beijing Sensetime Technology Development Co., Ltd. Image processing method, image processing device, and storage medium
CN110619393A (zh) * 2019-09-27 2019-12-27 上海交通大学 基于学习算法的交通仿真软件参数标定方法、系统及介质
CN111539519A (zh) * 2020-04-30 2020-08-14 成都成信高科信息技术有限公司 一种面向海量数据的卷积神经网络训练引擎方法及系统
CN111582477A (zh) * 2020-05-09 2020-08-25 北京百度网讯科技有限公司 神经网络模型的训练方法和装置
US20230073669A1 (en) * 2020-05-18 2023-03-09 Arm Limited Optimising a neural network
CN112287982A (zh) * 2020-10-14 2021-01-29 深圳大学 一种数据预测方法、装置及终端设备
CN112734034A (zh) * 2020-12-31 2021-04-30 平安科技(深圳)有限公司 模型训练方法、调用方法、装置、计算机设备和存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023104200A1 (en) * 2021-12-10 2023-06-15 Huawei Technologies Co., Ltd. Systems, apparatuses, methods, and non-transitory computer-readable storage devices for artificial-intelligence model training using hybrid shuffling of training data
CN116644804A (zh) * 2023-07-27 2023-08-25 浪潮电子信息产业股份有限公司 分布式训练系统、神经网络模型训练方法、设备和介质
CN116644804B (zh) * 2023-07-27 2024-01-12 浪潮电子信息产业股份有限公司 分布式训练系统、神经网络模型训练方法、设备和介质
CN117235480A (zh) * 2023-11-16 2023-12-15 深圳市吾股大数据科技有限公司 基于大数据实现数据加工下的筛选方法及系统
CN117235480B (zh) * 2023-11-16 2024-02-13 深圳市吾股大数据科技有限公司 基于大数据实现数据加工下的筛选方法及系统

Similar Documents

Publication Publication Date Title
CN113435521A (zh) 神经网络模型训练方法、装置及计算机可读存储介质
CN112465071A (zh) 图像多标签分类方法、装置、电子设备及介质
WO2019060670A1 (en) LOW PROFOUND CONVOLUTIVE NETWORK WEIGHT COMPRESSION
CN110288030A (zh) 基于轻量化网络模型的图像识别方法、装置及设备
CN111814962A (zh) 识别模型的参数获取方法、装置、电子设备及存储介质
CN103177414A (zh) 一种基于结构的图节点相似度并行计算方法
CN112465141A (zh) 模型压缩方法、装置、电子设备及介质
CN113705462A (zh) 人脸识别方法、装置、电子设备及计算机可读存储介质
CN115600644A (zh) 多任务处理方法、装置、电子设备及存储介质
CN112016617A (zh) 细粒度分类方法、装置及计算机可读存储介质
CN114708461A (zh) 基于多模态学习模型的分类方法、装置、设备及存储介质
CN114491047A (zh) 多标签文本分类方法、装置、电子设备及存储介质
CN114494800A (zh) 预测模型训练方法、装置、电子设备及存储介质
CN113569955A (zh) 一种模型训练方法、用户画像生成方法、装置及设备
CN111783688B (zh) 一种基于卷积神经网络的遥感图像场景分类方法
CN112269875A (zh) 文本分类方法、装置、电子设备及存储介质
CN113157739A (zh) 跨模态检索方法、装置、电子设备及存储介质
WO2022223052A1 (zh) 加速器、计算机系统和方法
CN115147660A (zh) 基于增量学习的图像分类方法、装置、设备及存储介质
CN112784818B (zh) 基于分组式主动学习在光学遥感图像上的识别方法
CN114743003A (zh) 基于图像分类的因果解释方法、装置、设备及存储介质
CN115114992A (zh) 分类模型训练的方法、装置、设备及存储介质
CN114769072A (zh) 高速喷射阀控制方法、装置、电子设备及存储介质
CN113705686A (zh) 图像分类方法、装置、电子设备及可读存储介质
CN113435308A (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