CN112085179A - 一种加大深度学习训练数据量的方法 - Google Patents
一种加大深度学习训练数据量的方法 Download PDFInfo
- Publication number
- CN112085179A CN112085179A CN201910510397.1A CN201910510397A CN112085179A CN 112085179 A CN112085179 A CN 112085179A CN 201910510397 A CN201910510397 A CN 201910510397A CN 112085179 A CN112085179 A CN 112085179A
- Authority
- CN
- China
- Prior art keywords
- gradient
- batch
- sub
- batch size
- updating
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种加大深度学习训练数据量的方法,包括S1、根据数据量总量确定更新梯度的批量,根据内存或者显存数据确定计算梯度的子批量;S2、计算更新梯度的批量大小包含的子批量数量,所述更新梯度的批量包含的子批量数量为更新梯度的批量与计算梯度的子批量的商;S3、在更新梯度的批量大小包含的子批量数量的数据上运行网络的前向传播,然后进行反向传播以计算相对于网络参数的梯度;S4、执行步骤S3更新梯度的批量大小包含的子批量数量次,对更新梯度的批量大小包含的子批量数量个梯度累加后取平均梯度;S5、用平均梯度更新模型参数。训练更稳定,训练效果更好;加快训练进程;让内存有限的CPU和显存有限的GPU可以用于训练大型网络。
Description
【技术领域】
本发明涉及深度学习技术领域,尤其涉及一种加大深度学习训练数据量的方法。
【背景技术】
在过去几年中,神经网络规模不断扩大,训练可能需要大量的数据和计算资源。例如,CNN经典模型之一inception-v3有2千3百万参数。模型越大,相应所需要的训练数据也越大。训练神经网络通常采用批量随机梯度下降,即将样本分成m个样本(mini-batch),每个样本(mini-batch)包含n个样本(mini-batch);在每个样本(mini-batch)里计算每个样本的梯度,然后在这个样本(mini-batch)里求和取平均作为最终的梯度来更新参数。
通常来说,如果每个样本(mini-batch)所包含的样本与总体的分布越一致,训练效果越好。而样本的batch size越大,就越可能与总体的分布一致。遗憾地是,训练占用内存(如果用CPU训练)或显存(如果用GPU训练)随着批大小(batch size)按比例增大。而内存或显存总是有限的。因此,训练总是无法发挥理论的潜力。
【发明内容】
本发明所要解决的技术问题是提供一种加大深度学习训练数据量的方法,能够降低训练门槛,让内存有限的CPU和显存有限的GPU可以用于训练大型网络;改善训练效果,批大小batch_size的增大使得样本(sample)的分布更加接近总体(population)的分布,使得训练更加稳定,训练效果更好;加快训练进程,批大小batch_size的增大,可以使用更大的学习率,从而可以加快训练进程;通过对普通梯度下降方法的改进,可适用于不同的网络结构,如全连接、CNN、RNN等网络;可适用于不同的优化器,如SGD、ADAM、ADAGRAD、RMSPROP等。
为解决上述技术问题,本发明一实施例提供了一种加大深度学习训练数据量的方法,包括步骤:
S1、根据数据量总量确定更新梯度的批量大小,根据内存或者显存数据确定计算梯度的子批量大小;
S2、计算更新梯度的批量大小包含的子批量数量,所述更新梯度的批量大小包含的子批量数量为更新梯度的批量大小与计算梯度的子批量大小的商;
S3、在更新梯度的批量大小包含的子批量数量的数据上运行网络的前向传播,然后进行反向传播以计算相对于网络参数的梯度;
S4、执行步骤S3更新梯度的批量大小包含的子批量数量次,对更新梯度的批量大小包含的子批量数量个梯度累加后取平均梯度;
S5、用平均梯度更新模型参数,即wt+1=wt–ηgrad,其中wt+1为后一个step的模型参数,wt为前一个step的模型参数,η为学习率,grad为平均梯度。
优选地,所述更新梯度的批量大小批大小为1024~65536。
优选地,所述批量大小包含的子批量数量为16~256。
优选地,所述学习率η为10-4~1。
优选地,步骤S5用平均梯度更新模型参数包括:
S51、每用完一遍训练数据epoch中,对全体训练洗牌,执行步骤S52循环更新梯度;
S52、执行一次梯度更新,依次取batch数据,执行batch循环计算梯度,将这些梯度累加后求平均值,并更新梯度;
S53、执行一次梯度计算,每个batch中,依次取计算梯度的子批量数据,计算梯度。
在更新梯度的批量大小包含的子批量数量的数据上运行网络的前向传播,然后进行反向传播以计算相对于网络参数的梯度,所述的相对于网络参数的梯度计算结果放在缓冲区。
优选地,当损失持续增加或者保持不变时,停止用平均梯度更新模型参数。
优选地,所述更新梯度的批量大小批大小为4096。
优选地,所述批量大小包含的子批量数量为32。
优选地,所述学习率η为1。
优选地,将前后两次使用训练集中的全部样本训练的平均损失相差不超过1%作为判断损失持续增加或者保持不变的标准。
与现有技术相比,上述技术方案具有以下优点:通过增大批大小batch-size,使得样本(sample)的分布更加接近总体(population)的分布,使得训练更加稳定,训练效果更好;通过增大批大小batch-size,可以使用更大的学习率,从而可以加快训练进程;让内存有限的CPU和显存有限的GPU可以用于训练大型网络,降低了训练门槛;通过对普通梯度下降方法的改进,可适用于不同的网络结构,如全连接、CNN、RNN等网络;可适用于不同的优化器,如SGD、ADAM、ADAGRAD、RMSPROP等。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明加大深度学习训练数据量的方法流程图。
图2是图1中实施例中mini-batch梯度更新算法的流程图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
以下batch-size表示更新梯度的批量大小,mini-batch-size表示计算梯度的子批量大小,mini-batch-number表示更新梯度的批量大小包含的子批量数量。
实施例一
图1是本发明加大深度学习训练数据量的方法流程图。步骤1:
步骤1,参数设置,包含以下子步骤。
步骤1.1:根据总的数据量等,确定更新梯度的批量大小batch-size,例如更新梯度的批量大小batch size可以取值为1024~65536,本实施例取值4096。
步骤1.2:根据内存或显存限制,确定梯度下降的计算梯度的子批量大小mini-batch-size,例如设计计算梯度的子批量大小mini-batch-size可以取值为16~256,本实施例取值32。
步骤1.3:算出需要的更新梯度的批量大小包含的子批量数量mini-batch-number,计算更新梯度的批量大小包含的子批量数量mini-batch-number=batch-size/mini-batch-size。用上面的数据,则计算梯度的子批量大小mini-batch-number=4096/32=128。
步骤2,对数据进行训练,包含以下子步骤,以以上的数字为例。
步骤2.1:在mini-batch-size大小的数据上运行网络的前向传播,然后进行错误反向传播以计算相对于网络参数的梯度。梯度结果放在缓冲区。
步骤2.2:连续执行步骤2.1mini-batch-number,即128次。对缓冲区中存在的128个梯度值累加后取平均,即
步骤2.3:用平均梯度grad更新模型参数。wt+1=wt-η×grad。其中grad表示平均梯度,wt+1为后一step的模型参数,wt为前一个step的模型参数,学习率η为10-4~1,本实施例中η取1。
步骤2.4:重复以上过程,直到损失loss不再下降,即损失loss持续上升或者保持不变。具体实施时,将前后两次使用训练集中的全部样本训练的平均损失loss相差不超过1%作为判断loss不再下降即损失loss持续上升或者保持不变的标准。
实施例二
图2是图1中实施例中mini-batch梯度更新算法的流程图。在传统方法中,执行单位batch等同于step,每一批数据,计算梯度的同时更新梯度。而本专利有3个层次的执行单位,构成3个层次嵌套的循环:
1个epoch等于使用训练集中的全部样本训练一次,通俗的讲epoch的值就是整个数据集被轮寻几次。一个时期epoch用完一遍训练数据。每个时期epoch中,对全体训练洗牌,执行step循环更新梯度。
mini-batch梯度更新算法开始,进行数据洗牌,取batch数据,再取mini-batch数据,再计算梯度。一步step执行一次梯度更新。每个step中,依次取batch数据,执行batch循环计算梯度,将这些梯度累加平均,并更新梯度。一批batch执行一次梯度计算。每个batch中,依次取mini-batch数据,计算梯度。判断样本数据是否使用完毕,如果是则判断损失是否下降;如果样本数据尚未使用完毕,则继续取mini-bacth值。如果损失下降,则结束mini-batch梯度更新算法流程;如果损失尚未下降,则继续执行数据洗牌,这样继续执行下去。
由上述说明可知,使用根据本发明的一种加大深度学习训练数据量的方法,其有益效果是:通过增大批大小batch-size,使得样本(sample)的分布更加接近总体(population)的分布,使得训练更加稳定,训练效果更好;通过增大批大小batch-size,可以使用更大的学习率,从而可以加快训练进程;让内存有限的CPU和显存有限的GPU可以用于训练大型网络,降低了训练门槛;通过对普通梯度下降方法的改进,可适用于不同的网络结构,如全连接、CNN、RNN等网络;可适用于不同的优化器,如SGD、ADAM、ADAGRAD、RMSPROP等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (11)
1.一种加大深度学习训练数据量的方法,其特征在于,包括:
S1、根据数据量总量确定更新梯度的批量大小,根据内存或者显存数据确定计算梯度的子批量大小;
S2、计算更新梯度的批量大小包含的子批量数量,所述更新梯度的批量大小包含的子批量数量为更新梯度的批量大小与计算梯度的子批量大小的商;
S3、在更新梯度的批量大小包含的子批量数量的数据上运行网络的前向传播,然后进行反向传播以计算相对于网络参数的梯度;
S4、执行步骤S3更新梯度的批量大小包含的子批量数量次,对更新梯度的批量大小包含的子批量数量个梯度累加后取平均梯度;
S5、用平均梯度更新模型参数,即wt+1=wt–ηgrad,其中wt+1为后一个step的模型参数,wt为前一个step的模型参数,η为学习率,grad为平均梯度。
2.根据权利要求1所述的加大深度学习训练数据量的方法,其特征在于,所述更新梯度的批量大小批大小为1024~65536。
3.根据权利要求1所述的加大深度学习训练数据量的方法,其特征在于,所述批量大小包含的子批量数量为16~256。
4.根据权利要求1所述的加大深度学习训练数据量的方法,其特征在于,所述学习率η为10-4~1。
5.根据权利要求1所述的加大深度学习训练数据量的方法,其特征在于,步骤S5、用平均梯度更新模型参数包括:
S51、每用完一遍训练数据epoch中,对全体训练洗牌,执行步骤S52循环更新梯度;
S52、执行一次梯度更新,依次取batch数据,执行batch循环计算梯度,将这些梯度累加后求平均值,并更新梯度;
S53、执行一次梯度计算,每个batch中,依次取计算梯度的子批量数据,计算梯度。
6.根据权利要求1所述的加大深度学习训练数据量的方法,其特征在于,在更新梯度的批量大小包含的子批量数量的数据上运行网络的前向传播,然后进行反向传播以计算相对于网络参数的梯度,所述的相对于网络参数的梯度计算结果放在缓冲区。
7.根据权利要求1所述的加大深度学习训练数据量的方法,其特征在于,当损失loss持续增加或者保持不变时,停止用平均梯度更新模型参数。
8.根据权利要求2所述的加大深度学习训练数据量的方法,其特征在于,所述更新梯度的批量大小批大小为4096。
9.根据权利要求3所述的加大深度学习训练数据量的方法,其特征在于,所述批量大小包含的子批量数量为32。
10.根据权利要求4所述的加大深度学习训练数据量的方法,其特征在于,所述学习率η为1。
11.根据权利要求7所述的加大深度学习训练数据量的方法,其特征在于,将前后两次使用训练集中的全部样本训练的平均损失相差不超过1%作为判断损失持续增加或者保持不变的标准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510397.1A CN112085179A (zh) | 2019-06-13 | 2019-06-13 | 一种加大深度学习训练数据量的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910510397.1A CN112085179A (zh) | 2019-06-13 | 2019-06-13 | 一种加大深度学习训练数据量的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112085179A true CN112085179A (zh) | 2020-12-15 |
Family
ID=73733504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910510397.1A Pending CN112085179A (zh) | 2019-06-13 | 2019-06-13 | 一种加大深度学习训练数据量的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112085179A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI793516B (zh) * | 2021-02-04 | 2023-02-21 | 國立中興大學 | 神經網路之自適應調節批量大小的訓練方法 |
-
2019
- 2019-06-13 CN CN201910510397.1A patent/CN112085179A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI793516B (zh) * | 2021-02-04 | 2023-02-21 | 國立中興大學 | 神經網路之自適應調節批量大小的訓練方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111353582B (zh) | 一种基于粒子群算法的分布式深度学习参数更新方法 | |
CN104866904B (zh) | 一种基于spark的遗传算法优化的BP神经网络并行化方法 | |
Seide et al. | On parallelizability of stochastic gradient descent for speech DNNs | |
US20200298130A1 (en) | Ai parameter configuration method and apparatus for racing ai model, ai parameter configuration device, and storage medium | |
US20150170020A1 (en) | Reducing dynamic range of low-rank decomposition matrices | |
CN110796253A (zh) | 生成对抗网络的训练方法及设备 | |
CN111985523A (zh) | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 | |
CN110689345B (zh) | 调整区块权重的无许可区块链共识方法、系统、p2p网络 | |
CN110689136B (zh) | 一种深度学习模型获得方法、装置、设备及存储介质 | |
CN107229966A (zh) | 一种模型数据更新方法、装置及系统 | |
CN111160531B (zh) | 神经网络模型的分布式训练方法、装置及电子设备 | |
CN111325223A (zh) | 深度学习模型的训练方法、装置和计算机可读存储介质 | |
CN110460650B (zh) | 多边缘服务器场景下计算卸载的决策方法及装置 | |
CN112085179A (zh) | 一种加大深度学习训练数据量的方法 | |
CN112989017B (zh) | 用于生成对话策略学习用高质量模拟经验的方法 | |
CN114782742A (zh) | 基于教师模型分类层权重的输出正则化方法 | |
JP2022003423A (ja) | 学習方法、学習装置及びプログラム | |
CN109783769B (zh) | 一种基于用户项目评分的矩阵分解方法和装置 | |
CN115146775B (zh) | 边缘设备推理加速方法、装置和数据处理系统 | |
CN112711739A (zh) | 一种数据处理方法、装置及服务器、存储介质 | |
CN112882835B (zh) | 一种机器节点并行处理方法、装置、计算机设备及存储介质 | |
CN113947240A (zh) | 一种基于时间序列的用水量预测方法、系统及设备 | |
CN110879730A (zh) | 自动调整游戏配置的方法、装置、电子设备及存储介质 | |
CN111797634B (zh) | 文档分割方法及装置 | |
CN114417945A (zh) | 一种回归模型训练方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211110 Address after: 518057 2nd floor, software building, No. 9, Gaoxin Zhongyi Road, Nanshan District, Shenzhen, Guangdong Applicant after: Shenzhen Guangqi Higher Institute of Technology Address before: 311100 room 1101, building 14, No. 1008, yearning street, Cangqian street, Yuhang District, Hangzhou City, Zhejiang Province Applicant before: Hangzhou Guangqi Artificial Intelligence Research Institute |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |