首页 / 一种深度神经网络的训练方法

一种深度神经网络的训练方法无效专利 发明

技术领域

[0001] 本发明涉及神经网络领域,具体涉及一种深度神经网络的训练方法。

相关背景技术

[0002] 近年来,随着互联网技术的迅猛发展,深度卷积神经网络广泛应用于图像分类、图像识别、语音识别、自动驾驶等众多领域。但是,深度卷积神经网络的模型结构庞大复杂,需要大规模数据对模型参数进行优化训练。然而,现实生活中的许多实际问题,通常只有小规模数据的支持,直接利用目标任务的小规模训练数据,很难获得高性能的深度神经网络。深度神经网络的层数和每层中的神经元数量通常不是固定的。设计者通常根据经验设计具体模型,例如设定2个中间层,每层100个神经元数量,从而导致网络参数过多。在训练集数据有限的情况下,通常会出现过拟合现象。过拟合现象是一种训练出来的模型对训练集的数据预测精准度极高,但对新的样本数据测试精度很低且泛化能力很弱的现象。

具体实施方式

[0030] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031] 图1所示为深度神经网络的示意图。在深度神经网络中,输入大量多维度的特征向量,通过多个中间层的矩阵权重加权后,获得输出结果。输出结果用于进行回归计算或者回归分类。如图1所示,初始化后的神经网络的参数(图中的w和b)是随机的,并且输出结果h也没有实际含义,因此需要对神经网络的参数进行训练。训练的基本原理是利用已知的大量训练数据,即通过将已知的x和h带入当前神经网络中进行运算得到运算结果,将运算结果与已知的h进行比较,获得误差值,然后利用BP反相梯度算法,不断优化神经网络中的参数w和b,最终获得比较好的神经网络参数。
[0032] 测试集是独立于训练集之外的大量测试数据,包括真实的x和真实的h,测试集不参与神经网络训练,训练好的参数w和b与测试集数据是独立不相关的。因此,在训练的过程中,每隔一段时间,可以利用测试集对当前的(正在训练中的)神经网络进行评估,通过计算测试集的准确率,可以获得关于神经网络的是否已经过拟合的信息。
[0033] 图2所示为深度神经网络的神经元丢弃机制的示意图。图2的左边的深度神经网络有3个中间层,每层有5个神经元。在对深度神经网络进行训练的过程中,随机地关闭一定比率的神经元,当比率为0时,表示所有神经元都被丢弃,当比率为1时,表示保留所有神经元,当比率为0.5时,表示一半的神经元被丢弃。丢弃率是指深度神经网络中神经元被随时关闭的概率。如图2所示,在图2的右边,标记有X的神经元是被丢弃掉的神经元。丢弃只会在训练中实施。在每次迭代训练的正向预测和反向梯度下降中,只在没有被丢弃的神经元中进行。丢弃机制是以概率p丢弃神经元并让其它神经元以概率q=1-p保留。每个神经元被丢弃的概率是相同的。丢弃的好处是每次迭代训练只训练部分神经元参数,这样深度神经网络信息收集会更为分散地分布在神经网络的各个节点中,而不会出现在一些能影响大局的少数神经元中,而这些神经元一般是引起过拟合的元凶。
[0034] 图3为本发明一实施例的深度神经网络的训练方法的示意性流程图。图3的方法可以由计算设备(例如,计算机)执行。该深度神经网络的训练方法方法包括以下步骤:
[0035] 步骤101:利用训练集对深度神经网络进行迭代训练;
[0036] 步骤102:利用所述训练集和测试集对训练中的深度神经网络进行评估,得到评估结果;
[0037] 步骤103:根据所述评估结果对所述训练中的深度神经网络中神经元的丢弃率进行调整,并利用训练集对调整后的深度神经网络进行迭代训练。
[0038] 本发明的实施例的深度神经网络的训练方法通过根据评估结果对训练中的深度神经网络中神经元的丢弃率进行调整,并对调整后的深度神经网络进行迭代训练,从而减少传统深度神经网络中“过拟合”现象的发生。
[0039] 在步骤101中,迭代训练次数可以为预设的次数,例如,可以为大于0小于等于3000的整数。根据本发明的实施例,计算设备可以使用整个训练集对深度神经网络进行迭代训练,也可以使用训练集的子集对深度神经网络进行迭代训练。当迭代训练次数满足要求时终止深度神经网络的训练。
[0040] 在完成迭代训练之后,进入步骤102。在102中,计算设备可以计算所述训练集的准确率与所述测试集的准确率的差作为所述评估结果。
[0041] 具体而言,计算设备可以利用测试集对所训练的深度神经网络进行测试以获得测试集的准确率,利用训练集对所训练的深度神经网络进行测试以获得训练集的准确率,并计算训练集的准确率与测试集的准确率的差作为评估结果。
[0042] 可选地,作为另一实施例,计算设备也可以通过计算训练集的准确率与测试集的准确率的比值作为评估结果。
[0043] 在步骤103中,在评估结果大于第一预设阈值的情况下,调整训练中的深度神经网络中的神经元的丢弃率,使得评估结果小于或等于第一预设阈值。第一预设阈值可以为0.5%-4%。优选地,第一预设阈值为1%。丢弃率的取值范围可以为0至1,其中丢弃率的取值越低,在训练所述深度神经网络过程中,参与训练的神经元的数目就越小。在迭代训练初期且在评估结果小于或等于第一预设阈值的情况下,丢弃率可以为1。在调整训练中的深度神经网络中的神经元的丢弃率的过程中,以预定的步长降低训练中的深度神经网络中的神经元的丢弃率。该预定的步长的取值范围为2%-9%。优选地,预定的步长为5%。
[0044] 可选地,作为另一实施例,图3的方法还包括:在丢弃率小于第二预设阈值时,停止调整训练中的深度神经网络中神经元的丢弃率。第二预设阈值为10%-40%。优选地,第二预设阈值为40%。
[0045] 根据本发明的实施例,每当利用所述训练集对深度神经网络进行若干次训练后,利用所述训练集和所述验证集对训练中的深度神经网络进行评估。
[0046] 下面描述本实施例的具体例子。
[0047] 首先,初始化平滑训练集的准确率、参数、迭代次数、丢弃率、测试间隔、预定步长、第一阈值和第二阈值。例如,训练集的准确率被初始化为0,丢弃率被初始化为1,迭代次数被初始化为2000,测试间隔被初始化为200,预定步长被初始化为5%,第一阈值被初始化为1%,第二阈值被初始化为40%。在迭代训练初期,丢弃率保持为1。利用训练集对深度神经网络进行迭代训练;当进行200次迭代训练时,进行一次测试集测试,并计算训练集的准确率与测试集的准确率的差,然后判断训练集的准确率与测试集的准确率的差是否大于1%,如果大于1%,则以预定步长5%降低丢弃率。继续重复上述过程,直到训练集的准确率与测试集的准确率的差是否大于1%。当丢弃率小于第二预设阈值40%时,停止调整训练中的深度神经网络中神经元的丢弃率。
[0048] 下面是上述训练方法的伪代码:
[0049]
[0050]
[0051] 在本发明的实施例的深度神经网络训练方法,神经网络训练中的神经元的丢弃率在训练过程中基于评估结果动态调整,而不是固定的,使得初期训练的收敛速度较快,并且可以提高神经网络的训练效率和准确度率。丢弃率的调整步长是预设的,从而减小计算负担。本发明的实施例的深度神经网络的训练方法通过根据评估结果对训练中的深度神经网络中神经元的丢弃率进行动态调整,并对调整后的深度神经网络进行迭代训练,从而减少传统深度神经网络中“过拟合”现象的发生。
[0052] 图4为本发明的另一实施例的深度神经网络的训练系统的示意性功能图。该训练系统包括训练单元110、评估单元120和调整单元130。训练单元110用于利用训练集对深度神经网络进行迭代训练;评估单元120用于利用训练集和测试集对训练中的深度神经网络进行评估,得到评估结果;调整单元103用于根据评估结果对训练中的深度神经网络中神经元的丢弃率进行调整,并利用训练集对调整后的深度神经网络进行迭代训练。
[0053] 本发明的实施例的深度神经网络的训练系统通过根据评估结果对训练中的深度神经网络中神经元的丢弃率进行调整,并对调整后的深度神经网络进行迭代训练,从而减少传统深度神经网络中“过拟合”现象的发生。
[0054] 可选地,作为另一实施例,训练单元110进行迭代训练次数可以为预设的次数,例如,可以为大于0小于等于3000的整数。
[0055] 可选地,作为另一实施例,评估单元120还用于计算训练集的准确率与测试集的准确率的差作为评估结果。
[0056] 可选地,作为另一实施例,调整单元130还用于在评估结果大于第一预设阈值的情况下,调整训练中的深度神经网络中的神经元的丢弃率,以使得评估结果小于或等于第一预设阈值。第一预设阈值可以为0.5%-4%。优选地,第一预设阈值为1%。丢弃率的取值范围可以为0至1,其中丢弃率的取值越低,在训练单元110训练所述深度神经网络过程中,参与训练的神经元的数目就越小。在训练单元进行迭代训练初期且在评估结果小于或等于第一预设阈值的情况下,丢弃率可以为1。在调整单元130调整训练中的深度神经网络中的神经元的丢弃率的过程中,以预定的步长降低训练中的深度神经网络中的神经元的丢弃率。该预定的步长的取值范围为2%-9%。优选地,预定的步长为5%。
[0057] 可选地,作为另一实施例,在丢弃率小于第二预设阈值时,调整单元130停止调整训练中的深度神经网络中神经元的丢弃率。第二预设阈值为10%-40%。优选地,第二预设阈值为40%。
[0058] 根据本发明的实施例,每当训练单元110利用所述训练集对深度神经网络进行若干次训练后,评估单元120利用所述训练集和所述验证集对训练中的深度神经网络进行评估。
[0059] 在本发明的实施例的深度神经网络训练系统中,调整单元130基于评估单元120的评估结果,动态调整神经网络训练中的神经元的丢弃率,使得初期训练的收敛速度较快,并且可以提高神经网络的训练效率和准确度率。本发明的实施例的深度神经网络的训练系统通过根据评估结果对训练中的深度神经网络中神经元的丢弃率进行动态调整,并对调整后的深度神经网络进行迭代训练,从而减少传统深度神经网络中“过拟合”现象的发生。
[0060] 一种用于深度神经网络的训练方法的计算机设备包括处理组件,其进一步包括一个或多个处理器,以及由存储器所代表的存储器资源,用于存储可由处理组件的执行的指令,例如应用程序。存储器中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件被配置为执行指令,以执行上述深度神经网络的训练方法。
[0061] 计算机设备还可以包括一个电源组件被配置为执行计算机设备的电源管理,一个有线或无线网络接口被配置为将设备连接到网络,和一个输入输出(I/O)接口。设备可以操作基于存储在存储器中的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,TMFreeBSD 或类似。
[0062] 一种非临时性计算机可读存储介质,当存储介质中的指令由上述装置的处理器执行时,使得上述装置能够执行一种深度神经网络的训练方法,包括:利用训练集对深度神经网络进行迭代训练;利用所述训练集和测试集对训练中的深度神经网络进行评估,得到评估结果;根据所述评估结果对所述训练中的深度神经网络中神经元的丢弃率进行调整,并对调整后的深度神经网络进行迭代训练。
[0063] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

当前第1页 第1页 第2页 第3页