本发明涉及人工智能技术领域,尤其是一种深度学习模型的训练方法、系统、装置及存储介质。
背景技术:
深度学习解决了许多具有挑战的问题,其成果已经广泛地应用于计算机视觉、语音识别、自然语言处理等领域。基于深度学习图像识别、视频处理、语音识别等技术在边缘计算系统的端设备上有巨大的应用前景和需求。然而传统的深度学习模型通常包含大量的参数冗余,容易遇到过拟合问题,在训练过程中难以保证得到最优的结果。目前,现有技术中还缺少一种良好的训练机制,以用于解决以上问题。
技术实现要素:
本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
为此,本发明实施例的一个目的在于提供一种深度学习模型的训练方法,该方法能够在训练模型的过程中根据滤波器的正交性调整训练网络,有效解决了模型的过拟合问题,提升了模型的训练性能和精确度。
本发明实施例的另一个目的在于提供一种深度学习模型的训练系统。
为了达到上述技术目的,本发明实施例所采取的技术方案包括:
第一方面,本发明实施例提供了一种深度学习模型的训练方法,包括以下步骤:
获取神经网络中各层节点的联结权重;
基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值;
根据各个滤波器的所述正交性度量值对所述神经网络进行优化,得到子神经网络;
基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新;
当联结权重更新后的神经网络收敛时,输出所述神经网络。
另外,根据本发明上述实施例的深度学习模型的训练方法,还可以具有以下附加的技术特征:
进一步地,在本发明的一个实施例中,所述获取神经网络中各层节点的联结权重这一步骤之前,还包括模型初始化步骤;
所述模型初始化步骤具体包括:
建立神经网络的输入层、隐藏层和输出层;
对所述神经网络中各层节点的联结权重进行初始赋值;
确定所述神经网络的激活函数和误差函数。
进一步地,在本发明的一个实施例中,所述确定所述神经网络的激活函数这一步骤,其具体包括:
将sigmoid函数作为所述神经网络的激活函数;
所述sigmoid函数的公式为sigmoid(x)=1/(1 e^(-x))。
进一步地,在本发明的一个实施例中,所述基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值这一步骤,其具体包括:
获取所述联结权重的矩阵,并确定各个卷积层的归一化权重;
基于各个卷积层的所述归一化权重,确定卷积层内各个滤波器的正交性度量值。
进一步地,在本发明的一个实施例中,所述根据各个滤波器的所述正交性度量值对所述神经网络进行优化这一步骤,其具体包括:
对各个滤波器的所述正交性度量值按照大小关系进行排序;
基于预设阈值对所述正交性度量值进行筛选;
根据筛选结果剔除掉所述神经网络中的部分滤波器,得到子神经网络。
进一步地,在本发明的一个实施例中,所述基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新这一步骤,其具体包括:
对所述子神经网络进行qr分解,得到每一层中的滤波器的零空间向量;
通过所述滤波器的零空间向量,更新所述联结权重。
第二方面,本发明实施例提出了一种深度学习模型的训练系统,包括:
获取模块,用于获取神经网络中各层节点的联结权重;
处理模块,用于基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值;
网络优化模块,用于根据各个滤波器的所述正交性度量值对所述神经网络进行优化,得到子神经网络;
权重更新模块,用于基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新;
输出模块,用于当联结权重更新后的神经网络收敛时,输出所述神经网络。
第三方面,本发明实施例提供了一种深度学习模型的训练装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现所述的深度学习模型的训练方法。
第四方面,本发明实施例还提供了一种介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于实现所述的深度学习模型的训练方法。
本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
本发明实施例能够基于神经网络卷积层中滤波器间的正交性(inter-filterorthogonality)度量值,在训练过程中自动调整训练的网络结构和滤波器的正交性,可以有效解决模型的过拟合问题,极大地提升了模型的训练性能和精确度。
附图说明
为了更清楚地说明本发明实施例或者现有技术中的技术方案,下面对本发明实施例或者现有技术中的相关技术方案附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1为本发明一种深度学习模型的训练方法具体实施例的流程示意图;
图2为本发明一种深度学习模型具体实施例的结构示意图;
图3为本发明一种深度学习模型的训练系统具体实施例的结构示意图;
图4为本发明一种深度学习模型的训练装置具体实施例的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
下面参照附图详细描述根据本发明实施例提出的深度学习模型的训练方法和系统,首先将参照附图描述根据本发明实施例提出的深度学习模型的训练方法。
参照图1,本发明实施例中所述的深度学习模型的训练方法,主要包括以下步骤:
s1:获取神经网络中各层节点的联结权重;
s2:基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值;
s3:根据各个滤波器的所述正交性度量值对所述神经网络进行优化,得到子神经网络;
s4:基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新;
s5:当联结权重更新后的神经网络收敛时,输出所述神经网络。
本发明实施例中,提供了一种基于滤波器正交性改善深度学习模型训练的方法。针对神经网络中的参数冗余问题,基于卷积层内的滤波器间的正交性(inter-filterorthogonality)提出了一个度量。在经过一定数量的标准训练迭代后,选择暂时丢弃模型中的一部分滤波器。在对简化的子神经网络进行权重更新后,再重新引入先前丢弃的滤波器,使用更新后的权重进行初始化,并继续进行标准训练。在重新引入之前丢弃的滤波器之后,该深度学习模型能够比下降之前获得更高的性能,重复应用该过程获得的模型优于通过标准训练获得的模型,并且可以大大加快模型的训练速度。
进一步作为优选的实施方式,所述获取神经网络中各层节点的联结权重这一步骤之前,还包括模型初始化步骤;
所述模型初始化步骤具体包括:
建立神经网络的输入层、隐藏层和输出层;
对所述神经网络中各层节点的联结权重进行初始赋值;
确定所述神经网络的激活函数和误差函数。
具体地,本发明实施例中模型初始化可以参照图2,图2中的{x1,x2,x3}表示输入,wij(k)表示联结权重,其中i表示每次输入中的第i个元素,j表示经过联结权重处理之后的输出中的第j个元素,k表示该联结权重是第k层到第(k 1)层之间的联结权重。aij表示经过联结权重处理后的输出,其中i表示第i层,j表示第j个输出;h(x)表示激活函数,zij表示aij经过激活函数处理之后的输出,即zij=h(aij)。{y1,y2,y3}表示经过神经网络处理之后最终的输出。
进一步作为优选的实施方式,所述确定所述神经网络的激活函数这一步骤,其具体包括:
将sigmoid函数作为所述神经网络的激活函数;
所述sigmoid函数的公式为sigmoid(x)=1/(1 e^(-x))。
本发明实施例中,经过模型初始化后的网络可以采用前向传播算法训练,具体地,对给定的网络中每个结点的联结权重赋初始值,并且选定一个激活函数,本发明实施例中选定sigmoid函数作为函数,其函数形式为:
有了联结权重w和激活函数h(x)之后,就可以由前往后计算,依次算出所有的a值,z值,最终算出输出层的y值,即前向传播算法。
进一步作为优选的实施方式,所述基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值这一步骤,其具体包括:
获取所述联结权重的矩阵,并确定各个卷积层的归一化权重;
基于各个卷积层的所述归一化权重,确定卷积层内各个滤波器的正交性度量值。
进一步作为优选的实施方式,所述根据各个滤波器的所述正交性度量值对所述神经网络进行优化这一步骤,其具体包括:
对各个滤波器的所述正交性度量值按照大小关系进行排序;
基于预设阈值对所述正交性度量值进行筛选;
根据筛选结果剔除掉所述神经网络中的部分滤波器,得到子神经网络。
本发明实施例中,根据滤波器间的正交性对每一层节点的权重w进行排序,从大到小删除掉正交性最靠前的30%,得到一个子神经网络。实际的删除比例可以根据需要自行调节。本发明实施例中的所述正交性度量值通过以下原理获得:
内核大小为k×k的滤波器通常是形状为k×k×c的3d张量,其中c是输入激活中的通道数。将该张量展开为大小为k*k*c的1d向量,并用f表示。用jl表示卷积层l中的滤波器数量,l∈l,l是神经网络中卷积层的总数量。
将神经网络中卷积层l的联结权重化为一个矩阵wl,wl中每一行表示卷积层l中展开的滤波器向量。表示卷积层l的归一化权重公式为:
更进一步地,前面用初始后化的联结权重计算的输出层值和实际值肯定会有很大的偏差,我们需要对联结权重进行优化,此时就需要使用反向传播算法。
假设经过前向传播算法计算的某个输出值为yk,表示输出层的第k个输出,而其实际的值为tk,那么误差函数定义如下:
反向传播算法是通过梯度下降的方法对联结权重进行优化,所以需要计算误差函数对联结权重的偏导数δ。先根据输出层的误差,计算出输出层对应的δ,然后再依次反向往前推出隐藏层的δ。其实第k层的某个δk,相当于从第k 1层的δk 1中分配了一部分误差过来,而这个分配的权重,就是前向传播算法中使用的联结权重w,所以这类似于一个反复的过程。
综上,本发明提出一种基于正交性度量的深度学习模型训练方法,与传统的训练方法相比,该方法根据正交性对每一层节点的权重w进行排序,从大到小删除掉正交性度量值靠前的固定百分比的权重,得到子网络,并对权重进行更新,重新初始化,根据线性代数里面的qr分解,求得子神经网络每一层滤波器的零空间向量,用零空间中的向量重新初始化滤波器的权重。该方法主要解决训深度学习模型训练中的过拟合问题,删除权重和重新初始化交替进行多次后达到优化网络模型的目的。
本发明基于卷积层内滤波器间的正交性(inter-filterorthogonality),根据其正交性度量值在训练过程中自动调整,有效解决模型的过拟合问题,从而提升模型的训练性能和精确度。
其次,参照附图描述根据本发明实施例提出的深度学习模型的训练系统。
图3是本发明一个实施例的深度学习模型的训练系统结构示意图。
所述系统具体包括:
获取模块101,用于获取神经网络中各层节点的联结权重;
处理模块102,用于基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值;
网络优化模块103,用于根据各个滤波器的所述正交性度量值对所述神经网络进行优化,得到子神经网络;
权重更新模块104,用于基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新;
输出模块105,用于当联结权重更新后的神经网络收敛时,输出所述神经网络。
可见,上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
参照图4,本发明实施例提供了一种深度学习模型的训练装置,包括:
至少一个处理器201;
至少一个存储器202,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器201执行时,使得所述至少一个处理器201实现所述的深度学习模型的训练方法。
同理,上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种存储介质,其中存储有处理器201可执行的指令,所述处理器201可执行的指令在由处理器201执行时用于执行所述的深度学习模型的训练方法。
同理,上述方法实施例中的内容均适用于本存储介质实施例中,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的物体销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件物体的形式体现出来,该计算机软件物体存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
1.一种深度学习模型的训练方法,其特征在于,包括以下步骤:
获取神经网络中各层节点的联结权重;
基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值;
根据各个滤波器的所述正交性度量值对所述神经网络进行优化,得到子神经网络;
基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新;
当联结权重更新后的神经网络收敛时,输出所述神经网络。
2.根据权利要求1所述的一种深度学习模型的训练方法,其特征在于,所述获取神经网络中各层节点的联结权重这一步骤之前,还包括模型初始化步骤;
所述模型初始化步骤具体包括:
建立神经网络的输入层、隐藏层和输出层;
对所述神经网络中各层节点的联结权重进行初始赋值;
确定所述神经网络的激活函数和误差函数。
3.根据权利要求2所述的一种深度学习模型的训练方法,其特征在于,所述确定所述神经网络的激活函数这一步骤,其具体包括:
将sigmoid函数作为所述神经网络的激活函数;
所述sigmoid函数的公式为
4.根据权利要求1所述的一种深度学习模型的训练方法,其特征在于,所述基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值这一步骤,其具体包括:
获取所述联结权重的矩阵,并确定各个卷积层的归一化权重;
基于各个卷积层的所述归一化权重,确定卷积层内各个滤波器的正交性度量值。
5.根据权利要求1-4中任一项所述的一种深度学习模型的训练方法,其特征在于,所述根据各个滤波器的所述正交性度量值对所述神经网络进行优化这一步骤,其具体包括:
对各个滤波器的所述正交性度量值按照大小关系进行排序;
基于预设阈值对所述正交性度量值进行筛选;
根据筛选结果剔除掉所述神经网络中的部分滤波器,得到子神经网络。
6.根据权利要求5所述的一种深度学习模型的训练方法,其特征在于,所述基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新这一步骤,其具体包括:对所述子神经网络进行qr分解,得到每一层中的滤波器的零空间向量;
通过所述滤波器的零空间向量,更新所述联结权重。
7.一种深度学习模型的训练系统,其特征在于,包括:
获取模块,用于获取神经网络中各层节点的联结权重;
处理模块,用于基于所述联结权重确定所述神经网络的卷积层内各个滤波器的正交性度量值;
网络优化模块,用于根据各个滤波器的所述正交性度量值对所述神经网络进行优化,得到子神经网络;
权重更新模块,用于基于所述子神经网络,通过反向传播算法对原神经网络的所述联结权重进行更新;
输出模块,用于当联结权重更新后的神经网络收敛时,输出所述神经网络。
8.一种深度学习模型的训练装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1-6中任一项所述的一种深度学习模型的训练方法。
9.一种存储介质,其中存储有处理器可执行的指令,其特征在于:所述处理器可执行的指令在由处理器执行时用于实现如权利要求1-6中任一项所述的一种深度学习模型的训练方法。
技术总结