一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种机器学习模型的训练方法、装置和可读存储介质与流程

2022-03-22 23:09:31 来源:中国专利 TAG:


1.本技术涉及机器学习技术领域,具体涉及一种机器学习模型的训练方法、装置和可读存储介质。


背景技术:

2.为了获得比较好的模型训练效果,有些方案在模型训练前进行数据清理操作,即对获取到的数据进行筛选来获取精选数据,以组成训练数据,供模型训练使用,从而提高模型训练的效率,但可能使模型容易过拟合,导致在真实场景中模型检测或者分类的能力不足;还有些方案在每次迭代时随机选取部分原始训练数据(比如:图像、文本或语音),然后进行随机剪切(crop)、随机缩放(resize)或随机色调调整等增强方式,来提高模型的泛化能力,但在连续的迭代训练中,训练数据仍可能会偏重某一特征,导致模型的权重在某一时间段中全部都是针对某一特征进行更新,使得在整个训练过程中损失(loss)波动很大,不仅导致训练时间无限增长,还可能导致训练无法收敛。


技术实现要素:

3.本技术提供一种机器学习模型的训练方法、装置和可读存储介质,能够加速模型的收敛速度。
4.为解决上述技术问题,本技术采用的技术方案是:提供一种机器学习模型的训练方法,该方法包括:获取多个第一训练样本;对第一训练样本进行第一随机增强处理,得到第二训练样本;在基于预设增强总数判断到第二训练样本满足预设增强条件后,对第二训练样本进行第二随机增强处理,得到第三训练样本,预设增强总数为批处理数量的约数;利用训练样本对机器学习模型进行训练,得到训练完的机器学习模型,训练样本包括第二训练样本或第三训练样本,批处理数量为每次输入至机器学习模型的训练样本的数量。
5.为解决上述技术问题,本技术采用的另一技术方案是:提供一种电子装置,该电子装置包括互相连接的存储器和处理器,其中,存储器用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的机器学习模型的训练方法。
6.为解决上述技术问题,本技术采用的另一技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,计算机程序在被处理器执行时,用于实现上述技术方案中的机器学习模型的训练方法。
7.通过上述方案,本技术的有益效果是:先对获取到的第一训练样本进行第一随机增强处理,得到第二训练样本;然后利用预设增强总数来判断当前的第二训练样本是否满足预设增强条件,如果当前的第二训练样本满足预设增强条件,则对第二训练样本进行第二随机增强处理,得到第三训练样本;如果当前的第二训练样本不满足预设增强条件,则不作处理,从而实现对第二训练样本的选择性第二随机增强处理;然后使用第二训练样本和/或第三训练样本训练机器学习模型;通过采用至少一次随机增强处理,增加了训练样本的多样性,不会出现模型过拟合的现象,而且所有待训练的特征在整个训练过程中尽可能均
匀地参与训练,不会导致在某一时段模型中的权重更新过于单一,权重更新更加均衡,进而使得在训练过程中损失值不会产生巨大波动,有助于加速机器学习模型的收敛速度。
附图说明
8.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
9.图1是本技术提供的机器学习模型的训练方法一实施例的流程示意图;
10.图2是本技术提供的机器学习模型的训练方法另一实施例的流程示意图;
11.图3是图2所示的实施例中步骤206的流程示意图;
12.图4是本技术提供的对图像进行随机遮挡的示意图;
13.图5是本技术提供的电子装置一实施例的结构示意图;
14.图6是本技术提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
15.下面结合附图和实施例,对本技术作进一步的详细描述。特别指出的是,以下实施例仅用于说明本技术,但不对本技术的范围进行限定。同样的,以下实施例仅为本技术的部分实施例而非全部实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
16.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
17.需要说明的是,本技术中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
18.请参阅图1,图1是本技术提供的机器学习模型的训练方法一实施例的流程示意图,该方法包括:
19.步骤11:获取多个第一训练样本。
20.机器学习模型可以为神经网络、线性回归模型、逻辑回归模型或支持向量机等常用的模型,根据所训练的机器学习模型的损失函数,选择参与计算损失函数的数据作为第一训练样本,该第一训练样本可以为图像、文本或音频,可以直接从现有的数据库中获取第一训练样本,也可以通过拍摄或录音等手段来获取第一训练样本。
21.进一步地,以机器学习模型为神经网络模型为例,损失函数是训练神经网络模型的目标函数,该函数用于计算神经网络模型基于当前训练样本得到的预测值与真实值(即标签值)之间的损失,采用反向传播算法通过该损失更新神经网络模型的权重,以便缩小损失,进而增强模型的检测能力。
22.步骤12:对第一训练样本进行第一随机增强处理,得到第二训练样本。
23.在获取到第一训练样本后,为了扩充训练机器学习模型所使用的训练样本的多样性,加快机器学习模型的收敛速度或精度,可以对部分第一训练样本进行增强处理或者对所有第一训练样本进行增强处理,比如:先对第一训练样本进行第一随机增强处理,生成第二训练样本,该第一随机增强处理可以为传统增强方法,即第一随机增强处理包括水平翻转、垂直翻转、旋转、直方图均衡化、随机剪切、随机缩放或随机色调调整(比如:调整图像的对比度、饱和度、亮度或锐度)。
24.步骤13:在基于预设增强总数判断到第二训练样本满足预设增强条件后,对第二训练样本进行第二随机增强处理,得到第三训练样本。
25.在对第一训练样本进行一次增强处理后,对于生成的第二训练样本,可对该第二训练样本进行选择性地第二随机增强处理;具体地,可获取预设增强总数与批处理数量(batch_size),批处理数量为每次输入至机器学习模型的训练样本的数量(即每次迭代的样本数量),预设增强总数为批处理数量的约数,即批处理数量为预设增强总数的整数倍;然后利用该预设增强总数来判定当前的第二训练样本是否满足预设增强条件,如果当前的第二训练样本满足预设增强条件,则对该第二训练样本进行第二随机增强处理,生成第三训练样本,该第二随机增强处理可以为随机遮挡处理或其他增强方式,比如:滤波、图像或伽马(gamma)校正,第二随机增强处理与第一随机增强处理不同。
26.在一具体的实施例中,预设增强总数与批处理数量相同,可判断当前已进行增强处理的第一训练样本的数量与第三训练样本的数量之和(记作本轮样本总数)是否大于批处理数量,如果本轮样本总数大于批处理数量,则表明此次训练所需的样本数量已经充足,此时无需对第二训练样本进行第二随机增强处理;如果本轮样本总数小于批处理数量,则表明此次训练所需的样本还不足够多,此时对第二训练样本进行第二随机增强处理。或者,还可判断当前第三训练样本的总数量与批处理数量的比值是否大于预设比值,如果该比值大于预设比值,则不再对第二训练样本进行第二随机增强处理,并对当前已进行增强处理的第一训练样本、第二训练样本以及第三训练样本进行筛选,以形成当前训练样本,当前训练样本为当前输入至机器学习模型的训练所需的数据,该当前训练样本中样本的数量与批处理数量相同;如果该比值小于预设比值,则继续对第二训练样本进行第二随机增强处理,以生成第三训练样本。
27.在其他实施例中,还可先对第一训练样本进行选择性第二随机增强处理,再进行第一随机增强处理;或者还对第一训练样本进行两次以上的增强处理,增强处理的方式和次数可根据具体应用需要进行设置。
28.步骤14:利用训练样本对机器学习模型进行训练,得到训练完的机器学习模型。
29.在结束对第一训练样本的增强处理后,利用上述步骤11-步骤13获取到的当前训练样本对机器学习模型进行训练,以便获取一个训练好的机器学习模型;具体地,在第二训练样本满足预设增强条件时,当前训练样本为第三训练样本;在第二训练样本不满足预设
增强条件时,当前训练样本为第二训练样本,即当前训练样本为对第一训练样本进行至少一次随机增强处理得到的数据。
30.可以理解地,机器学习模型的训练方法与相关技术中模型训练的方法类似,且训练所使用的参数的设置也与现有方案类似,比如:批处理数量、预设损失阈值或预设迭代次数阈值,在此不再详述。
31.本实施例提供了一种针对机器学习模型训练中使用的训练数据进行增强的方法,先对第一训练样本进行第一随机增强处理,然后对随机增强后的数据进行选择性第二随机增强处理;除了采用随机剪切、随机缩放或随机色调调整之外,还可随机对训练数据进行小范围的遮挡,增加了训练数据的多样性,不会导致过拟合;另外,训练数据中所有待训练的特征在整个训练过程中尽可能均匀地参与训练,且由于遮挡了训练数据中的某一属性,可以使得模型学习特征更加全面,从而使模型更加泛化,进而减少训练时间,加速模型的收敛速度。
32.请参阅图2,图2是本技术提供的机器学习模型的训练方法另一实施例的流程示意图,该方法包括:
33.步骤201:获取多个第一训练样本。
34.步骤201与上述实施例中步骤11相同,在此不再赘述。
35.步骤202:对增强统计表进行初始化。
36.增强统计表包括不同类别的第一训练样本以及与第一训练样本对应的增强次数,可将增强统计表中的所有增强次数初始化为第一预设值,该第一预设值可以为0。可以理解地,增强统计表中的第一训练样本可以为所有第一训练样本,也可以为所有第一训练样本中的部分第一训练样本;例如,以机器学习模型执行分类任务为例,假设第一训练样本的总数量为1万,分类数量为1000,则增强统计表的长度可以为1000,即其包括1000个第一训练样本,且这些第一训练样本的类别不同。
37.步骤203:从增强统计表中选取增强次数为第一预设值的第一训练样本,以形成本轮增强样本集。
38.在完成对增强统计表的初始化后,可将增强统计表中增强次数为第一预设值的第一训练样本挑选出来,以形成本轮增强样本集,即该本轮增强样本集包括至少一个增强次数为第一预设值的第一训练样本;在增强统计表中的增强次数均为第二预设值,执行对增强统计表进行初始化的步骤,即执行步骤202,第二预设值大于第一预设值,比如:第二预设值为1。
39.进一步地,本轮增强样本集中第一训练样本的数量与批处理数量相关,批处理数量与预设增强总数的比值记作预设比值,该预设比值可以为本轮增强样本集中第一训练样本的数量;具体地,将预设增强总数记作t,预设比值记作c,批处理数量记作p,则p=c
×
t,当增强统计表中增强次数为第一预设值的第一训练样本的数量大于c时,可随机从这些符合条件的所有第一训练样本中选择c个第一训练样本;当增强统计表中增强次数为第一预设值的第一训练样本的数量小于c时,可以对增强统计表进行初始化。例如,假设本轮增强样本集中第一训练样本的数量为3个,批处理数量为30,则预设增强总数为10,即对本轮增强样本集中的3个第一训练样本均进行步骤205-步骤206的处理。
40.步骤204:对第一训练样本进行第一随机增强处理,得到第二训练样本。
41.步骤204与上述实施例中步骤12类似,在此不再赘述。
42.步骤205:将本轮样本更新数量初始化为第三预设值。
43.本轮样本更新数量为当前对第一训练样本进行增强处理的过程中已经进行增强处理的第一训练样本的次数,可在每轮进行增强处理之前,将本轮样本更新数量初始化为0,即第三预设值为0。
44.步骤206:在基于本轮样本更新数量与预设增强总数的比较结果判断到第二训练样本满足预设增强条件后,对第二训练样本进行随机遮挡处理,得到第三训练样本。
45.先将本轮样本更新数量与预设增强总数进行比较,得到比较结果;然后基于比较结果判断当前第二训练样本是否满足预设增强条件;如果当前第二训练样本满足预设增强条件,则对第二训练样本进行第二随机增强处理,得到第三训练样本;具体地,可采用图3所示的方案来判断当前获取到的第二训练样本是否满足预设增强条件,包括以下步骤:
46.步骤31:判断本轮样本更新数量是否小于预设增强总数。
47.步骤32:若本轮样本更新数量小于预设增强总数,则判断当前第二训练样本是否满足预设遮挡条件。
48.在本轮样本更新数量小于预设增强总数时,随机生成一个位于预设数值范围内的遮挡因子;然后判断遮挡因子是否大于预设遮挡阈值;若遮挡因子大于预设遮挡阈值,则确定当前第二训练样本满足预设遮挡条件;若遮挡因子小于/等于预设遮挡阈值,则确定当前第二训练样本不满足预设遮挡条件。
49.步骤33:若当前第二训练样本满足预设遮挡条件,则确定第二训练样本满足预设增强条件,对第二训练样本进行第二随机增强处理,得到第三训练样本。
50.第二训练样本包括多个第一待处理数据,如果当前生成的遮挡因子大于预设遮挡阈值,则表明当前第二训练样本满足预设增强条件,此时可从所有第一待处理数据中随机选择至少一个第一待处理数据,得到第二待处理数据;然后对第二待处理数据进行随机化处理,得到第三待处理数据;再利用第三待处理数据替换第二训练样本中相应的第一待处理数据,得到第三训练样本。例如,第二训练样本为图像,则第一待处理数据为像素值,可随机从该图像中选取一个区域,并将这个区域的像素值用预设像素值替换,比如:全部替换为0或255,或者对这个区域的像素值进行随机化处理。
51.步骤34:将本轮样本更新数量与预设步长相加。
52.在当前第二训练样本不满足预设遮挡条件时,将本轮样本更新数量与预设步长相加,该预设步长可以为1;在对第二训练样本进行遮挡处理后,将本轮样本更新数量与预设步长相加;在将本轮样本更新数量与预设步长相加后,执行判断本轮样本更新数量是否小于预设增强总数的步骤,即执行步骤31,直至判断到本轮样本更新数量大于/等于预设增强总数。若本轮样本更新数量大于/等于批处理数量,则执行利用训练样本对机器学习模型进行训练的操作。
53.例如,假设第一训练样本为图像(记作当前图像),当前图像的分辨率为w*h,预设数值范围可以为0-1,预设遮挡阈值为0.2,预设增强总数记作t,本轮样本更新数量记作i,执行如下操作:
54.①
将i初始化为0。
55.②
判断i是否小于t,如果i小于t,则执行步骤

,否则结束增强流程。
56.③
随机生成一个0-1的小数(即遮挡因子),如果遮挡因子小于0.2,则不进行随机遮挡处理,并执行步骤

;如果遮挡因子大于/等于0.2,则进行随机遮挡处理,并执行步骤


57.④
使用当前图像的分辨率的1/36(即(w/6)*(h/6))的全黑方块,对当前图像的随机位置进行遮挡。
58.如图4所示,遮挡巨嘴鸟的部分嘴巴后,巨嘴鸟的特征之一巨嘴就不再显著,这样就可以强制模型关注学习巨嘴鸟的其他特征,比如:巨嘴鸟的形状或颜色等,从而增加模型的泛化能力。
59.⑤
i=i 1,并返回执行步骤

,直至i大于/等于t。
60.步骤207:利用训练样本对机器学习模型进行训练。
61.步骤207与上述实施例中步骤14相同,在此不再赘述。
62.步骤208:基于训练样本对应的标签值与机器学习模型输出的预测值,判断当前机器学习模型是否满足预设训练结束条件。
63.先计算当前的训练样本对应的标签值与机器学习模型输出的预测值之间的损失值;然后判断损失值是否小于预设损失阈值或当前训练次数是否大于预设迭代次数阈值,当前训练次数为截止至目前为止训练的总次数。
64.在其他实施例中,预设训练结束条件还可为:损失值收敛或者使用测试集进行测试时获得的准确率达到设定条件(比如:超过预设准确率)等。
65.步骤209:若当前机器学习模型未满足预设训练结束条件,则对本轮增强样本集中第一训练样本对应的增强次数进行更新。
66.若当前机器学习模型未满足预设训练结束条件,则对本轮增强样本集中第一训练样本对应的增强次数进行更新,比如将增强次数加一,并返回从增强统计表中选取增强次数为第一预设值的第一训练样本的步骤,直至机器学习模型满足预设训练结束条件,得到训练完的机器学习模型。
67.步骤210:若当前机器学习模型满足预设训练结束条件,则获得训练完的机器学习模型。
68.如果当前损失值小于预设损失阈值或当前训练次数大于预设迭代次数阈值,则确定当前机器学习模型满足预设训练结束条件,此时可结束训练。
69.在一具体的实施方式中,假设机器学习模型为分类模型,第一训练样本为图像,以分类模型为残差网络(residual network,resnet)、训练集采用数据库imagenet为例,参与计算目标函数的特征有1000类,即增强统计表(记作lista)的长度为1000,本轮增强样本集中第一训练样本的数量记作c,执行如下步骤:
70.1)将lista中的增强次数初始化为0。
71.2)从lista中选择增强次数为0的图像(如果增强次数为0的图像过多,可随机从中选择c个增强次数为0的图像),对这些图像进行图像增强后,进行一次迭代训练。
72.3)判断当前整个训练过程是否达到预设训练结束条件,如果没达到预设训练结束条件,则执行步骤4)。
73.4)对本轮迭代训练所用的图像进行统计,将lista中这c个图像对应的增强次数更新为1(如果lista中的增强次数全为1,则将lista中的增强次数重置为0),然后进入步骤2)
继续训练。
74.在基于2个1080ti的图形处理器(graphics processing unit,gpu)、pytorch训练框架的基础上,通过实验可以得到:本方案比传统方案更快地达到预设损失阈值,且训练时长从4天缩短到3天,可节省25%的训练时间,模型的精度(accuracy,acc)也提升了1.2%。
75.在整个模型的训练过程中,根据已经参与训练的训练样本来均衡接下来训练所用的训练样本,达到使所有训练样本均匀地参与训练的目的,不会导致在某一时段模型中的权重更新过于单一,使权重更新更加均衡,进而使得训练过程中的损失值不产生巨大波动,可加速收敛速度;而且,本实施例还提供了在训练的过程对训练样本进行随机遮挡的增强方法,可以使得模型在学习的过程中不偏重某一显著特征,能够学习更多其他的特征,从而增加模型的泛化能力,提高模型的推理精度。
76.请参阅图5,图5是本技术提供的电子装置一实施例的结构示意图,电子装置50包括互相连接的存储器51和处理器52,存储器51用于存储计算机程序,计算机程序在被处理器52执行时,用于实现上述实施例中的机器学习模型的训练方法。
77.在整个训练过程中所有的训练数据能够均匀地参与训练,不会导致在某一时段模型中的权重更新过于单一,使权重更新更加均衡,进而使得损失值均匀下降,损失值不会产生过大的波动,致使训练加速收敛,减少训练时间;同时由于训练数据被特殊增强(即第二随机增强处理),可以使得模型在学习的过程中不偏重某一显著特征,能够学习更多其他的特征,从而提升模型的泛化能力,提高模型的推理精度。
78.请参阅图6,图6是本技术提供的计算机可读存储介质一实施例的结构示意图,计算机可读存储介质60用于存储计算机程序61,计算机程序61在被处理器执行时,用于实现上述实施例中的机器学习模型的训练方法。
79.计算机可读存储介质60可以是服务端、u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
80.在本技术所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
81.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
82.另外,在本技术各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
83.以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献