深度神经网络的模型参数训练方法及系统的制作方法

文档序号:9433185阅读:2165来源:国知局
深度神经网络的模型参数训练方法及系统的制作方法
【技术领域】
[0001] 本发明涉及模式分类领域,尤其涉及一种深度神经网络的模型参数训练方法及系 统。
【背景技术】
[0002] 在基于数据统计的模式分类系统中,通常选择合适的模型来描述所述模式的概率 分布,如用高斯混合模型来表述符合多高斯分布的模式的概率分布函数等。一般来说模式 识别系统由模型参数训练和应用分类两个阶段构成,在模型参数训练阶段利用收集的标注 训练数据对所述模型进行训练,得到模型参数,如高斯混合模型的均值、方差等;随后在分 类阶段,基于训练得到的模型预测待分类数据的类别。
[0003] -般来说,模型拓扑结构越复杂,模型参数越多,则其对模式的模拟效果越精确。 作为模式分类领域中功能非常强大的分类器,神经网络一直是研究的热点内容之一。而近 年来随着计算机计算能力的不断提升,结构更为复杂的深度神经网络技术得以发展,其中 以深度可信神经网络为代表的一些利用深度神经网络的技术方案在语音和图像识别等领 域中取得了显著的性能提升。
[0004] 复杂模型提高了模型的模拟精度,但相应的其模型参数规模往往过于庞大,导致 模型训练过程非常缓慢,无法满足系统产品应用需求。如在语音识别应用中训练数据通 常是几千小时甚至更多的语音数据,在这些数据基础上训练一个正常规模的深度神经网 络往往需要长达几个月甚至一年的时间,这对于产品的更新来说时间长到完全无法接受。 尽管模式分类领域存在训练效率优化算法,如多台机器并行训练或者采用单GPlKGraphiC Processing Unit,图形处理器)进行训练等等,但是对于复杂模型如深度神经网络训练来 说,优化算法的训练效率仍然无法满足产品级应用的需求。

【发明内容】

[0005] 本发明实施例提供一种深度神经网络的模型参数训练方法及系统,以提高深度神 经网络训练效率。
[0006] 本发明的技术方案为:
[0007] -种深度神经网络的模型参数训练方法,包括:
[0008] 主线程获取初始化模型参数,并将所述初始化模型参数备份至各子线程;
[0009] 主线程在接收到任意一个子线程根据自己的训练数据独立运算得到的累计统计 量后,根据所述累计统计量更新主线程保存的模型参数,并将更新后的模型参数发送给所 述子线程,以使所述子线程更新自己保存的模型参数。
[0010] 优选的是,所述子线程根据自己的训练数据独立运算包括:
[0011] 所述子线程获取自己的训练数据,根据所述训练数据和所述模型参数计算统计量 和累计统计量,并根据所述统计量更新自己保存的模型参数,直到满足系统更新条件; [0012] 在满足系统更新条件后,所述子线程向主线程发送更新请求,所述更新请求中包 含所述子线程独立运算得到的累计统计量;
[0013] 所述子线程每隔设定时间判断是否收到主线程发送的针对该子线程的更新响应, 直到收到所述更新响应后,根据所述更新响应中的模型参数更新自己保存的模型参数。
[0014] 优选的是,所述方法还包括:
[0015] 所述子线程根据所述更新响应中的模型参数更新自己保存的模型参数后,将自己 记录的模型参数的更新次数清零。
[0016] 优选的是,所述系统更新条件为所述子线程自己记录的模型参数的更新次数超过 设定阈值,或者所有训练数据都已参与了训练。
[0017] 优选的是,所述系统更新条件为所述子线程自己记录的模型参数的更新次数超过 设定阈值,并且所述设定阈值次数的累计统计量的二范数的值大于设定门限,或者所有训 练数据都已参与了训练。
[0018] -种深度神经网络的模型参数训练系统,包括主线程模块和至少一个子线程模 块,其中:
[0019] 所述主线程模块包括:
[0020] 初始化单元,用于获取初始化模型参数,并将所述初始化模型参数备份至各子线 程模块;
[0021] 系统模型存储单元,用于保存所述初始化模型参数及更新后的模型参数;
[0022] 系统交互单元,用于接收任意一个子线程模块根据自己的训练数据独立运算得到 的累计统计量;
[0023] 系统模型更新单元,用于在所述系统交互单元接收到所述累计统计量后,根据所 述累计统计量更新所述系统模型存储单元保存的模型参数;
[0024] 所述系统交互单元,还用于将所述系统模型更新单元更新后的模型参数发送给所 述子线程模块,以使所述子线程模块更新自己保存的模型参数。
[0025] 优选的是,所述子线程模块包括:
[0026] 线程模型存储单元,用于保存所述初始化模型参数及更新后的模型参数;
[0027] 训练数据获取单元,用于获取自己的训练数据;
[0028] 计算单元,用于根据所述训练数据和所述线程模型存储单元保存的模型参数计算 统计量和累计统计量;
[0029] 线程模型更新单元,用于根据所述计算单元计算得到的统计量更新所述线程模型 存储单元保存的模型参数;
[0030] 判断单元,用于在所述线程模型更新单元更新所述模型参数后,判断是否满足系 统更新条件;如果满足,则通知线程交互单元向主线程模块发送更新请求,所述更新请求中 包含所述子线程模块独立运算得到的累计统计量;
[0031] 所述线程交互单元,还用于在向主线程模块发送更新请求后每隔设定时间判断是 否收到主线程模块发送的针对所述子线程模块的更新响应,直到收到所述更新响应后,将 所述更新响应中包含的模型参数传送给所述线程模型更新单元;
[0032] 所述线程模型更新单元,还用于根据所述线程交互单元传送的模型参数更新所述 线程模型存储单元保存的模型参数。
[0033] 优选的是,所述子线程模块还包括:
[0034] 更新次数记录单元,用于在所述线程模型更新单元根据所述更新响应中的模型参 数更新自己保存的模型参数后,将自己记录的模型参数的更新次数清零。
[0035] 优选的是,所述系统更新条件为所述子线程自己记录的模型参数的更新次数超过 设定阈值,或者所有训练数据都已参与了训练。
[0036] 优选的是,所述系统更新条件为所述子线程自己记录的模型参数的更新次数超过 设定阈值,并且所述设定阈值次数的累计统计量的二范数的值大于设定门限,或者所有训 练数据都已参与了训练。
[0037] 本发明的有益效果在于,应用本发明实施例深度神经网络的模型参数训练方法及 系统:
[0038] (1)任意一个子线程独立地在更新若干次各自保存的模型参数后,与主线程进行 模型参数的交互,提高了模型参数的训练效率;鲁棒性强,在多个子线程中的一个或者几个 无法工作的情况下,应用本发明实施例的训练方法及系统仍然能够完成模型参数的训练;
[0039] (2)子线程分别独立地与主线程进行信息交互,提高了 GPU的利用率,使用同等数 目的GPU,应用本发明实施例的训练方法及系统能够有更高的复杂模型训练效率和GPU利 用率。
【附图说明】
[0040] 图1示出了本发明实施例深度神经网络的模型参数训练方法的流程图;
[0041] 图2示出了本发明实施例中子线程根据自己的训练数据独立运算的流程图;
[0042] 图3示出了本发明实施例深度神经网络的模型参数训练系统中主线程模块的结 构示意图;
[0043] 图4示出了本发明实施例深度神经网络的模型参数训练系统中子线程模块的结 构示意图。
【具体实施方式】
[0044] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0045] 对于复杂模型来说,通常模型的概率分布无法用简单的分布如高斯分布来描述, 因此也就无法直接求出模型的参数。一般来说,复杂模型参数训练通常采用迭代更新优化 的方法。首先选取模型参数的初始值,在每次迭代中首先获取当前模型参数的值,随后计算 所述训练数据相应于所述模型参数的数学统计量,最后根据所述统计量对所述模型参数进 行更新,获取更新的模型参数。其具体步骤包括:
[0046] 步骤al :获取当前的模型参数值;
[0047] 步骤a2 :读取
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1