深度神经网络的构建方法技术

技术编号:14348075 阅读:153 留言:0更新日期:2017-01-04 18:40
本发明专利技术公开了一种深度神经网络的构建方法,深度神经网络结构为共享参数的树状结构,包括多个共享参数的分支和多个Softmax层,当某个分支的收敛速度下降时,拥有多个输出的可分裂节点裂变出一个与可裂变节点类型相同的分裂节点,创建新的特征探测器并产生不同的特征,分裂节点的父节点和子节点继承可分裂节点,分裂节点的参数进行初始化。在多模型组合的前提下,既可以减少计算代价,又能分裂得到多个高质量的模型。

【技术实现步骤摘要】

本专利技术涉及深度神经网络结构,具体地涉及一种深度神经网络的构建方法
技术介绍
随着深度学习在各个领域的普及,神经网络参数的规模越来越大。在深度神经网络的结构中,模型组合几乎都可以提高机器学习方法的性能。平均多模型预测可以进一步降低错误率。当前,对于神经网络的研究都集中于静态结构的神经网络,即在训练之前,网络的结构已经完全设计好并固定下来,之后也不会有变化。多列深度神经网络就是这样一个组合模型,它将多个固定结构的深度网络分别训练好,然后再平均预测所有深度网络的结果。虽然该模型相对以前的方法进一步把错误率减少了30%~40%,但是该多模型的计算量几乎相当于每个模型单独训练计算量的总和。随着深度学习的神经网络参数会越来越多,计算量越来越大,这样的多模型组合计算代价是相当昂贵的。而且多列深度神经网络每个模型的质量可能参差不齐,这也会影响到最后的预测的正确率。
技术实现思路
针对上述存在的技术问题,本专利技术目的是:提供一种深度神经网络的构建方法,在多模型组合的前提下,既可以减少计算代价,又能分裂得到多个高质量的模型。本专利技术的技术方案是:一种深度神经网络的构建方法,其特征在于,深度神经网络结构为共享参数的树状结构,包括多个共享参数的分支和多个Softmax层,当某个分支的收敛速度下降时,拥有多个输出的可分裂节点裂变出一个与可裂变节点类型相同的分裂节点,创建新的特征探测器并产生不同的特征,分裂节点的父节点和子节点继承可分裂节点,分裂节点的参数进行初始化。优选的,可裂变节点通过最低共同祖先算法查找,选择收敛最差的叶子节点,然后回溯找到第一个拥有多个子节点的节点作为可分裂节点。本专利技术还公开了一种深度神经网络的构建系统,其特征在于,深度神经网络结构为共享参数的树状结构,包括多个共享参数的分支和多个Softmax层,构建系统包括分裂模块,用于当某个分支的收敛速度下降时,拥有多个输出的可分裂节点裂变出一个与可裂变节点类型相同的分裂节点,创建新的特征探测器并产生不同的特征,分裂节点的父节点和子节点继承可分裂节点,对分裂节点的参数进行初始化。本专利技术又公开了一种深度神经网络的训练方法,其特征在于,训练方法采用深度优先搜索,当迭代到达一个叶子节点时,其所经过的节点都参与前向传导、反向传导以及更新参数;接着再进行另一个分支的迭代,对共享参数的节点又一次进行更新;如果多个分支中最小的代价函数值在N个epochs后没有变化,在进行下一个epoch之前可分裂节点进行裂变,N为自然数。优选的,N的值根据数据集和网络结构的复杂度进行设置。优选的,可裂变节点通过最低共同祖先算法查找,每N个epochs选择收敛最差的叶子节点,然后回溯找到第一个拥有多个子节点的节点作为可分裂节点。优选的,通过投票层预测结果,每个测试样本被测试的次数等于叶子节点的个数,投票层将所有分支的预测结果进行平均,样本i的概率其中N表示分支的数量,是第j个分支的样本i的概率。与现有技术相比,本专利技术的优点是:传统的神经网络在一次迭代中每个层只能更新一次,然而我们提出的共享参数的新型结构中,可以获得N个模型,在同样的计算代价下,共享层能够被更新多次,使得收敛加快。可裂变神经网络适用于增量学习,每次裂变新的信息都会增加到已训练过的网络之中,一旦裂变,新的特征探测器就会被创建并且产生不同的特征。可裂变的深度神经网络不仅减少了计算代价,还可以避免后期训练分支之间的收敛干扰,而且给那些处于很差局部最优解的分支重新学习的机会。最重要的是在最后能够获得多个高质量的模型。附图说明下面结合附图及实施例对本专利技术作进一步描述:图1为一种可裂变的深度神经网络结构示意图;图2为全连接层-1裂变之前的结构示意图;图3为全连接层-1裂变之后的结构示意图;图4为一次覆盖迭代每个节点被遍历的次数示意图;图5为回溯路径中找到可裂变节点的示意图;图6为前200个epoch中八种方法的错误率比较示意图;图7为CIFAR-10可裂变神经网络结构示意图;图8为两种方法在前1000个epochs的错误率比较示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。实施例:我们提出一种新的深度神经网络结构,命名为“可裂变深度神经网络”。该网络结构包含多个共享参数的分支和多个Softmax分类器;并且在训练的时候,整个网络的结构动态改变,直到整个网络结构分裂成多个模型为止。可裂变深度神经网络结构是一个共享参数的树状结构,如图1所示,整个结构包含输入层、卷积层、池化层、全连接层、SoftMax层以及投票层。每层之间连接是通过数据传递进行的。根节点是数据输入层,所有的叶子节点是Softmax层,投票层只是在测试的时候才用到,各层名字后面跟随的数字只是为了更好的区分每一层而已,无其他含义。从根节点到某个叶子节点的路径是一个线性结构的神经网络。在树形结构中,拥有多个输出的节点我们称之为可分裂的节点。例如图2所示的子网络结构节点全连接层-1。在训练的时候,当SoftMax-3或者SoftMax-4收敛处于一个很差的局部最优解的时候,全连接层-1就开始分裂,如图3所示。全连接层-2是从全连接层-1裂变而来,他的父节点和子节点是继承全连接层-1节点。全连接层-2的参数和全连接层-1不一样,并且独立初始化。裂变的目的还在于其可以避免收敛干扰,如图1所示,多个分支共享了大部分的参数,因为有多个Softmax层,这就涉及到多个对象函数最优化的问题。然而神经网络能够有效的解决非凸函数最优化的问题。在训练的时候,每个分支使得共享参数的节点快速收敛,而且这些节点提取的特征前向传导到达那些非共享的节点。每个分支的差异是通过那些非共享节点体现的。这也保证了我们通过不同的特征探测器获得不同的特征。经过进一步训练之后,每一个对象函数都尝试着找到最好的梯度下降的方向,所以后期共享节点更新参数会对不同分支产生干扰,所以我们提出的可裂变深度神经网络在后续的训练可以避免干扰。训练方法:可裂变神经网络训练每次迭代是从输入层到SoftMax层,先是前向传导,接着是反向传到和参数的更新。训练方法是深度优先搜索,当迭代到达一个叶子节点的时候,他所经过的节点都参与前向传导,反向传导以及更新参数。接着再进行另一个分支的迭代,这样共享参数的节点又一次被更新,进而收敛更快。如图1所示的结构,六次迭代之后,所有的分支节点就遍历了一遍,我们也将这六次迭代称为一次覆盖迭代。如图4所示,可裂变深度神经网络结构的节点在一次覆盖迭代中被遍历的次数是不一样的,显然,每个节点遍历的次数n等于该节点所对应叶子节点的个数。所以每个节点的学习率为原来学习率的1/n倍。裂变机制:当某个分支的收敛速度下降的时候开始裂变。如果多个分支中最小的代价函数值在N个epochs(训练完所有数据集称为一个epoch)没有变化,在进行下一个epoch之前可分裂的节点就进行裂变。N的值可以通过使用一个有效的验证集来确定或者简单的设置为10,这样的做法可以认为是普遍适用于大部分可裂变网络结构。N是一个变量,它控制着后本文档来自技高网...
深度神经网络的构建方法

【技术保护点】
一种深度神经网络的构建方法,其特征在于,深度神经网络结构为共享参数的树状结构,包括多个共享参数的分支和多个Softmax层,当某个分支的收敛速度下降时,拥有多个输出的可分裂节点裂变出一个与可裂变节点类型相同的分裂节点,创建新的特征探测器并产生不同的特征,分裂节点的父节点和子节点继承可分裂节点,分裂节点的参数进行初始化。

【技术特征摘要】
1.一种深度神经网络的构建方法,其特征在于,深度神经网络结构为共享参数的树状结构,包括多个共享参数的分支和多个Softmax层,当某个分支的收敛速度下降时,拥有多个输出的可分裂节点裂变出一个与可裂变节点类型相同的分裂节点,创建新的特征探测器并产生不同的特征,分裂节点的父节点和子节点继承可分裂节点,分裂节点的参数进行初始化。2.根据权利要求1所述的深度神经网络的构建方法,其特征在于,可裂变节点通过最低共同祖先算法查找,选择收敛最差的叶子节点,然后回溯找到第一个拥有多个子节点的节点作为可分裂节点。3.一种深度神经网络的构建系统,其特征在于,深度神经网络结构为共享参数的树状结构,包括多个共享参数的分支和多个Softmax层,构建系统包括分裂模块,用于当某个分支的收敛速度下降时,拥有多个输出的可分裂节点裂变出一个与可裂变节点类型相同的分裂节点,创建新的特征探测器并产生不同的特征,分裂节点的父节点和子节点继承可分裂节点,对分裂节点的参数进行初始...

【专利技术属性】
技术研发人员:吴俊敏谭东旭郑焕鑫
申请(专利权)人:中国科学技术大学苏州研究院苏州展科光电科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1