神经网络训练方法和装置及数据处理方法和装置与流程

文档序号:12601991阅读:389来源:国知局
神经网络训练方法和装置及数据处理方法和装置与流程

本发明涉及计算机领域,更具体地涉及一种神经网络训练方法和装置及数据处理方法和装置。



背景技术:

卷积神经网络已被广泛用于文字识别、语音识别等领域中。为了提高卷积神经网络的输出结果的准确度,一个常用的方法是增加中间结果的信道(channel)数。但是由于计算量与信道数正相关,这样不可避免地增加了计算量。在手机等计算能力受限的平台上,大计算量不但会造成长延时,而且也会在功耗、散热等方面带来挑战。



技术实现要素:

考虑到上述问题而提出了本发明。本发明提供了一种神经网络训练方法和装置及数据处理方法和装置。

根据本发明一方面,提供了一种神经网络训练方法。神经网络训练方法包括:步骤S210:利用低秩近似方法将卷积神经网络的至少一组卷积层中的每组卷积层所对应的一组初始卷积核转换为对应的一组转换卷积核;步骤S220:基于所述至少一组卷积层所对应的转换卷积核对所述卷积神经网络进行训练,其中,在训练后的卷积神经网络中,所述至少一组卷积层中的每组卷积层所对应的一组转换卷积核更新为对应的一组经训练卷积核;步骤S230:判断所述训练后的卷积神经网络是否满足预定标准,如果满足,则转至步骤S240,否则转至步骤S250;步骤S240:将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核的乘积分解为对应的一组压缩卷积核,其中,所述至少一组卷积层中的每组卷积层所对应的一组压缩卷积核的乘积等于对应的一组经训练卷积核的乘积,并且,每个压缩卷积核所表示的矩阵为低秩矩阵;以及步骤S250:将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核作为该组卷积层所对应的一组初始卷积核并返回所述步骤S210。

示例性地,所述步骤S230包括:根据所述训练后的卷积神经网络输出的实际计算结果与预期结果之间的差距和/或所述训练后的卷积神经网络的计算量判断所述训练后的卷积神经网络是否满足所述预定标准。

示例性地,所述计算量是由所述卷积神经网络的实际计算时间代表的实际计算量或根据所述卷积神经网络的配置信息计算获得的理论计算量。

示例性地,所述步骤S210包括:按能量压缩比率对所述至少一组卷积层中的每组卷积层所对应的一组初始卷积核的乘积进行低秩近似,以获得该组卷积层所对应的一组转换卷积核。

示例性地,所述步骤S210进一步包括:对于所述至少一组卷积层中的每组卷积层,按照奇异值分解方式将该组卷积层所对应的一组初始卷积核的乘积所表示的矩阵表达为第一酉矩阵、对角矩阵和第二酉矩阵的乘积;对于所述至少一组卷积层中的每组卷积层,根据所述对角矩阵中的奇异值选取截断数;对于所述至少一组卷积层中的每组卷积层,根据所述截断数和所述能量压缩比率对所述第一酉矩阵、所述对角矩阵和所述第二酉矩阵进行截断,以获得截断后的第一酉矩阵、截断后的对角矩阵和截断后的第二酉矩阵;以及对于所述至少一组卷积层中的每组卷积层,利用所述截断后的对角矩阵、所述截断后的第一酉矩阵和所述截断后的第二酉矩阵进行矩阵乘运算,以获得该组卷积层所对应的一组转换卷积核。

示例性地,在所述步骤S220之后以及所述步骤S230之前,所述神经网络训练方法还包括:判断所述卷积神经网络的训练次数是否达到次数要求,如果所述卷积神经网络的训练次数未达到所述次数要求,则转至所述步骤S250。

根据本发明另一方面,提供了一种数据处理方法。该数据处理方法包括:获取待处理数据;以及利用通过如上述任一项神经网络训练方法训练获得的所述卷积神经网络对所述待处理数据进行处理。

根据本发明另一方面,提供了一种神经网络训练装置。该神经网络训练装置包括:转换模块、训练模块、第一判断模块、第一执行模块和第二执行模块。所述转换模块用于利用低秩近似方法将卷积神经网络的至少一组卷积层中的每组卷积层所对应的一组初始卷积核转换为对应的一组转换卷积核。所述训练模块用于基于所述至少一组卷积层所对应的转换卷积核对所述卷积神经网络进行训练,其中,在训练后的卷积神经网络中,所述至少一组卷积层中的每组卷积层所对应的一组转换卷积核更新为对应的一组经训练卷积核。所述第一判断模块用于判断所述训练后的卷积神经网络是否满足预定标准,如果满足,则启动所述第一执行模块,否则启动所述第二执行模块。所述第一执行模块用于将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核的乘积分解为对应的一组压缩卷积核,其中,所述至少一组卷积层中的每组卷积层所对应的一组压缩卷积核的乘积等于对应的一组经训练卷积核的乘积,并且,每个压缩卷积核所表示的矩阵为低秩矩阵。所述第二执行模块用于将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核作为该组卷积层所对应的一组初始卷积核并启动所述转换模块。

示例性地,所述第一判断模块包括判断子模块,用于根据所述训练后的卷积神经网络输出的实际计算结果与预期结果之间的差距和/或所述训练后的卷积神经网络的计算量判断所述训练后的卷积神经网络是否满足所述预定标准。

示例性地,所述计算量是由所述卷积神经网络的实际计算时间代表的实际计算量或根据所述卷积神经网络的配置信息计算获得的理论计算量。

示例性地,所述转换模块用于按能量压缩比率对所述至少一组卷积层中的每组卷积层所对应的一组初始卷积核的乘积进行低秩近似,以获得该组卷积层所对应的一组转换卷积核。

示例性地,所述转换模块包括:

奇异值分解子模块,用于对于所述至少一组卷积层中的每组卷积层,按照奇异值分解方式将该组卷积层所对应的一组初始卷积核的乘积所表示的矩阵表达为第一酉矩阵、对角矩阵和第二酉矩阵的乘积;

截断数选取子模块,用于对于所述至少一组卷积层中的每组卷积层,根据所述对角矩阵中的奇异值和所述能量压缩比率选取截断数;

截断子模块,用于对于所述至少一组卷积层中的每组卷积层,根据所述截断数对所述第一酉矩阵、所述对角矩阵和所述第二酉矩阵进行截断,以获得截断后的第一酉矩阵、截断后的对角矩阵和截断后的第二酉矩阵;以及

矩阵乘子模块,用于对于所述至少一组卷积层中的每组卷积层,利用所述截断后的对角矩阵、所述截断后的第一酉矩阵和所述截断后的第二酉矩阵进行矩阵乘运算,以获得该组卷积层所对应的一组转换卷积核。

示例性地,所述神经网络训练装置还包括第二判断模块,用于在所述训练模块基于所述至少一组卷积层所对应的转换卷积核对所述卷积神经网络进行训练之后以及在所述第一判断模块判断所述训练后的卷积神经网络是否满足预定标准之前,判断所述卷积神经网络的训练次数是否达到次数要求,如果所述卷积神经网络的训练次数未达到所述次数要求,则启动所述第二执行模块。

根据本发明另一方面,提供了一种数据处理装置。该数据处理装置包括数据获取模块和处理模块。数据获取模块用于获取待处理数据。处理模块用于利用通过如上述任一项神经网络训练装置训练获得的所述卷积神经网络对所述待处理数据进行处理。

根据本发明实施例的神经网络训练方法和装置及数据处理方法和装置,卷积神经网络的卷积核经过低秩近似等方法被训练为具有低秩性的卷积核,采用低秩性卷积核的卷积神经网络在训练过程或用于数据处理时可以减小计算量,从而可以有效提高数据处理效率。

附图说明

通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1示出用于实现根据本发明实施例的神经网络训练方法和装置或数据处理方法和装置的示例电子设备的示意性框图;

图2示出根据本发明一个实施例的神经网络训练方法的示意性流程图;

图3示出根据本发明另一个实施例的神经网络训练方法的示意性流程图;

图4示出根据本发明一个实施例的数据处理方法的示意性流程图;

图5示出根据本发明一个实施例的神经网络训练装置的示意性框图;

图6示出根据本发明一个实施例的数据处理装置的示意性框图;以及

图7示出根据本发明一个实施例的神经网络训练系统的示意性框图。

具体实施方式

为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。

首先,参照图1来描述用于实现根据本发明实施例的神经网络训练方法和装置或数据处理方法和装置的示例电子设备100。

如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108和数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。

所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。

所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。

所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。

所述输出装置108可以向外部(例如用户)输出各种信息(例如图像和/或声音),并且可以包括显示器、扬声器等中的一个或多个。

所述数据采集装置110可以采集待处理数据(例如图像等),并且将所采集的待处理数据存储在所述存储装置104中以供其它组件使用。当待处理数据是图像或视频时,数据采集装置110可以是摄像头。应当理解,数据采集装置110仅是示例,电子设备100可以不包括数据采集装置110。在这种情况下,可以利用其他数据采集装置采集待处理数据,并将采集的待处理数据发送给电子设备100。

示例性地,用于实现根据本发明实施例的神经网络训练方法和装置或数据处理方法和装置的示例电子设备可以在诸如个人计算机或远程服务器等的设备上实现。

下面,将参考图2描述根据本发明实施例的神经网络训练方法。图2示出根据本发明一个实施例的神经网络训练方法200的示意性流程图。如图2所示,神经网络训练方法200包括以下步骤。

在步骤S210,利用低秩近似方法将卷积神经网络的至少一组卷积层中的每组卷积层所对应的一组初始卷积核转换为对应的一组转换卷积核。

卷积神经网络的每一个卷积层都对应一个卷积核。卷积核通常采用矩阵形式(特征矩阵)表示,本文所述的卷积核可以理解为是指卷积核对应的矩阵。所述至少一组卷积层中的每组卷积层可以包括相邻的至少两个卷积层。为了减少卷积神经网络的计算量,可以利用低秩近似将卷积神经网络中的至少一组卷积层中的每组卷积层所对应的一组初始卷积核转换为对应的一组转换卷积核。

根据本发明实施例,可以按能量压缩比率对所述卷积神经网络中的至少一组卷积层中的每组卷积层所对应的一组初始卷积核的乘积进行低秩近似,以获得该组卷积层所对应的一组转换卷积核。示例性地,所述至少一组卷积层中的每组卷积层可以包括相邻的两个卷积层。步骤S210可以具体包括以下步骤。

步骤S211,对于至少一组卷积层中的每组卷积层,按照奇异值分解方式将该组卷积层所对应的一组初始卷积核的乘积所表示的矩阵表达为第一酉矩阵、对角矩阵和第二酉矩阵的乘积。以卷积神经网络中的两个相邻的卷积层Ci和C(i+1)为例,这两个卷积层组成一组卷积层,其对应的初始卷积核wi和w(i+1)的乘积可以由一矩阵W表示。该矩阵W可以视为卷积层Ci和C(i+1)所分别对应的初始卷积核的乘积所表示的矩阵。可以按照奇异值分解(singular value decomposition)方式将W表示为以下乘积:W=U S V,其中,U是第一酉矩阵,V是第二酉矩阵,S是对角矩阵。假设W是一个m×n阶矩阵,则U是m×m阶酉矩阵,V是n×n阶酉矩阵,S是半正定m×n阶对角矩阵。矩阵S的对角线上的值被称为奇异值,设其奇异值按从大到小的顺序排列为s1,s2,…,sn

步骤S212,对于至少一组卷积层中的每组卷积层,根据对角矩阵中的奇异值和所述能量压缩比率r选取截断数。可以选取最小的截断数k以使得s12+s22+…+sk2≥r×(s12+s22+…+sn2),其中r是能量压缩比率,能量压缩比率r可以是预设的默认值,也可以是由用户自定义的数值。

步骤S213,对于至少一组卷积层中的每组卷积层,根据截断数对第一酉矩阵、对角矩阵和第二酉矩阵进行截断,以获得截断后的第一酉矩阵、截断后的对角矩阵和截断后的第二酉矩阵。可以对矩阵U、S和V进行以下截断操作:对第一酉矩阵U取前k列元素得到截断后的第一酉矩阵Uk,对第二酉矩阵V取前k行元素得到截断后的第二酉矩阵Vk,对对角矩阵S取前k行与前k列元素得到截断后的对角矩阵Sk

步骤S214,对于至少一组卷积层中的每组卷积层,利用截断后的对角矩阵Sk、截断后的第一酉矩阵Uk和截断后的第二酉矩阵Vk进行矩阵乘运算,以获得该组卷积层所对应的一组转换卷积核。所述矩阵乘运算包括利用所述截断后的对角矩阵矩阵乘所述截断后的第一酉矩阵Uk和/或所述截断后的第二酉矩阵Vk以获得所述转换卷积核。在一个实施例中,所述矩阵乘运算可以包括:将所述截断后的对角矩阵Sk开方右乘所述截断后的第一酉矩阵Uk以获得第一转换卷积核以及将所述截断后的对角矩阵Sk开方左乘所述截断后的第二酉矩阵Vk以获得第二转换卷积核在另一个实施例中,所述矩阵乘运算还可以包括:将所述截断后的对角矩阵Sk右乘所述截断后的第一酉矩阵Uk以获得第一转换卷积核(UkSk);以及将所述截断后的第二酉矩阵Vk作为第二转换卷积核。在另一个实施例中,所述矩阵乘运算还可以包括:将所述截断后的第一酉矩阵Uk作为第一转换卷积核;以及将所述截断后的对角矩阵Sk左乘所述截断后的第二酉矩阵Vk以获得第二转换卷积核(SkVk)。将上述计算获得的一组转换卷积核(第一转换卷积核和第二转换卷积核)作为卷积层Ci和C(i+1)所对应的转换卷积核。

通过低秩近似方法可以大大降低初始卷积核的秩,减少卷积神经网络中的参数数目。

在步骤S220,基于至少一组卷积层所对应的转换卷积核对卷积神经网络进行训练,其中,在训练后的卷积神经网络中,所述至少一组卷积层中的每组卷积层所对应的一组转换卷积核更新为对应的一组经训练卷积核。

在卷积神经网络的训练过程中,可能需要对卷积神经网络的参数进行多轮训练才能获得满足要求的卷积神经网络。假设在第i轮训练时,卷积神经网络的每个卷积层对应的初始卷积核为w(i),经过低秩近似之后,每个卷积层获得的转换卷积核为w’(i)。可以利用w’(i)作为卷积神经网络的新参数进行训练。步骤S220的训练方式与常规的卷积神经网络的训练方式一致,不再赘述。例如,在步骤S220中可以采用前向传播算法对卷积神经网络进行训练。在经过训练之后,可以得到更新后的参数,即每个卷积层更新后的卷积核w”(i),即本文所述的经训练卷积核。

在步骤S230,判断训练后的卷积神经网络是否满足预定标准,如果满足,则转至步骤S240,否则转至步骤S250。

在步骤S240,将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核的乘积分解为对应的一组压缩卷积核,其中,所述至少一组卷积层中的每组卷积层所对应的一组压缩卷积核的乘积等于对应的一组经训练卷积核的乘积,并且,每个压缩卷积核所表示的矩阵为低秩矩阵。

在步骤S250,将至少一组卷积层中的每组卷积层所对应的一组经训练卷积核作为该组卷积层所对应的一组初始卷积核并返回步骤S210。

在一个实施例中,步骤S230可以包括:根据训练后的卷积神经网络输出的实际计算结果与预期结果之间的差距和/或训练后的卷积神经网络的计算量判断训练后的卷积神经网络是否满足预定标准。

可以预先设定期望训练后的卷积神经网络满足的标准作为预定标准,例如,预定标准可以是训练后的卷积神经网络的实际计算结果与预期结果之间的差距小于某个误差阈值,或者训练后的卷积神经网络的计算量(例如针对样本数据的计算时间)小于某个计算量阈值。

实际计算结果与预期结果之间的差距可以代表结果准确度。例如,如果卷积神经网络的结果准确度在预设的准确度范围内,可以认为卷积神经网络符合要求。在一个实施例中,计算量可以是由卷积神经网络的实际计算时间代表的实际计算量或根据卷积神经网络的配置信息计算获得的理论计算量。卷积神经网络的配置信息可以是例如卷积神经网络的信道数等信息。

本领域技术人员可以理解,结果准确度和计算量可以作为单独的指标来衡量卷积神经网络是否满足预定标准,也可以结合起来考虑以衡量卷积神经网络是否满足预定标准。两种指标的结合方式可以根据需要设定,例如分别为两者设定比重系数,按照设定的比重系数将两种指标同时纳入考虑。当然,还可以选择其他合适的指标来衡量卷积神经网络是否满足预定标准,其均应落入本发明的保护范围内。

在训练后的卷积神经网络满足预定标准的情况下,可以通过以下方式将经训练卷积核的乘积进行分解,以进一步减少卷积神经网络的参数和计算量。如上文所述,对所述至少一组卷积层中的每组卷积层来说,其对应的一组经训练卷积核的乘积表示为矩阵W”(i)。由于经过了一次或多次能量压缩,W”(i)具有低秩性,因此可以利用矩阵分解将所述经训练卷积核的乘积分解为所述一组卷积层所对应的一组压缩卷积核,此处的矩阵分解是等效变化,因此,所述获得的压缩卷积核的乘积等于对应的所述一组经训练卷积核的乘积,并且,每个压缩卷积核所表示的矩阵为低秩矩阵。例如,对于卷积层Ci和C(i+1),定义其对应的一组经训练卷积核的乘积为矩阵W”(i),将所述矩阵W”(i)进行分解,得到W”(i)=U”S”V”。需要注意的是,此处的矩阵分解是等效变化。令M”=U”S”,则W”(i)=M”V”。通过这种方式,可以将经训练卷积核的乘积W”(i)分解为两个卷积核,分别为M”和V”,并且,可以将M”和V”分别作为卷积层Ci和C(i+1)对应的压缩卷积核。

应当理解,对于每一个卷积层,由于其对应的经训练卷积核w”(i)与转换卷积核w’(i)的参数数目一致,因此,经训练卷积核w”(i)的乘积分解获得的矩阵U”、S”和V”分别与截断后的第一酉矩阵Uk、截断后的对角矩阵Sk和截断后的第二酉矩阵Vk的元素数目一致。假设经训练卷积核的乘积所表示的矩阵W”(i)的高和宽分别为m和n,分解得到的卷积核M”的宽为k,分解得到的卷积核V”的高为k。当W”(i)具有低秩性时,m远大于k,n远大于k。如果不分解经训练卷积核的乘积所表示的矩阵W”(i)的话,前向传播的计算量为O(m n),而分解经训练卷积核的乘积所表示的矩阵W”(i)的话,前向传播的计算量为O(m k+k n),其远小于O(m n)。因此,当k较小时,可以通过分解W”(i)降低计算量。对应到卷积神经网络层面,相当于将一组卷积层对应的一组初始卷积核的乘积压缩、分解为卷积核M”和V”,并将分解得到的卷积核作为压缩卷积核以分别对应所述一组卷积层中的每个卷积层,来达到降低卷积神经网络的计算量的目的。在经过步骤S240的分解步骤之后,可以获得满足要求的卷积神经网络,因此可以结束卷积神经网络的训练步骤。

如果基于转换卷积核对卷积神经网络进行训练之后,获得的卷积神经网络仍然不满足预定标准,则可以继续对当前的参数进行低秩近似,也就是将经训练卷积核作为初始卷积核并返回步骤S210,重新开始新一轮训练。可以重复步骤S210、S220、S230和S250的操作直至训练出的卷积神经网络满足预定标准为止。

每经过一轮(或多轮)训练之后,就通过低秩近似方法对卷积神经网络中的矩阵进行压缩,使得网络中的参数减少,因此,这是一种渐近的压缩方法。经压缩之后,卷积神经网络的信道数可以大大减少。

在常规的卷积神经网络中,卷积层所对应的卷积核通常具有较高的秩,也就是说卷积核对应的矩阵中的元素数目较多,参数量较大(或说信道数较多),这样,无论是在训练卷积神经网络还是在使用卷积神经网络进行数据处理的过程中,都需要进行大量的计算。

采用低秩矩阵或由低秩矩阵分解获得的矩阵作为卷积层的卷积核,可以大大减少卷积神经网络的参数量(或信道数),从而使得在卷积神经网络的训练或应用过程中,所需的计算量大大减少。

根据本发明实施例的神经网络训练方法,通过低秩近似等方法将卷积神经网络的卷积核训练为具有低秩性的卷积核,这种低秩性卷积核使得卷积神经网络的训练过程的计算量减小,可以较快较高效地获得所需的卷积神经网络,并且采用低秩性卷积核的卷积神经网络在用于数据处理时可以节约数据计算量,从而可以有效提高数据处理效率。

示例性地,根据本发明实施例的神经网络训练方法可以在具有存储器和处理器的设备、装置或者系统中实现。

图3示出根据本发明另一个实施例的神经网络训练方法300的示意性流程图。图3所示的神经网络训练方法300中的步骤S310、S320、S330、S340和S350分别与图2所示的神经网络训练方法200中的步骤S210、S220、S230、S240和S250相对应,结合上文对图2的描述,本领域技术人员可以理解神经网络训练方法300中的步骤S310、S320、S330、S340和S350的实施方式,不再赘述。根据本实施例,在步骤S320之后以及步骤S330之前,神经网络训练方法300还可以包括步骤S322。

在步骤S322,判断卷积神经网络的训练次数是否达到次数要求,如果卷积神经网络的训练次数未达到所述次数要求,则转至步骤S350。

可以预先设定循环次数,循环次数可以是任意合适的数值,例如1次、2次或5次等。例如,当循环次数为1次时,每次执行步骤S310和步骤S320之后,就执行一次步骤S330的判断步骤。当循环次数为5次时,可以每执行5次步骤S310和步骤S320之后,执行一次步骤S330的判断步骤。由此理解,在循环次数为5次的情况下,次数要求可以是5的倍数,即第5次、第10次、第15次……。也就是说,如果卷积神经网络的训练次数是第5次、第10次、第15次……,可以认为其训练次数达到次数要求,否则认为其训练次数未达到次数要求。上述循环次数可以根据需要而定,本发明不对此进行限制。通过预设的次数要求可以灵活地设置卷积神经网络的训练循环方式。

根据本发明另一方面,提供一种数据处理方法。图4示出根据本发明一个实施例的数据处理方法400的示意性流程图。如图4所示,数据处理方法400包括以下步骤。

在步骤S410,获取待处理数据。

待处理数据可以是任何期望利用卷积神经网络进行处理的数据,例如图像、视频、语音信号等。待处理数据可以是原始数据(例如摄像头采集到的原始图像),也可以是对原始数据进行预处理之后获得的数据(例如经滤波处理的图像)。

示例性地,可以采用上述电子设备100实现本文所述的数据处理方法。待处理数据可以由诸如移动终端的客户端设备发送到电子设备100以由电子设备100的处理器102进行处理,也可以由电子设备100包括的数据采集装置110(例如摄像头)采集并传送到处理器102进行处理。

在步骤S420,利用通过上文所述的神经网络训练方法200(或300)训练获得的卷积神经网络对待处理数据进行处理。

采用所述卷积神经网络对所述待处理数据进行处理可以包括:将所述待处理数据提取为张量,并将所述提取得到的张量输入至所述卷积神经网络;利用所述卷积神经网络中的每一层所对应的参数(卷积核)对前一层的输出进行计算,并将所述卷积神经网络最后一层的输出作为所述卷积神经网络对所述待处理数据的处理结果以输出。

如上文所述,在常规的卷积神经网络中,卷积层所对应的卷积核通常具有较高的秩,也就是说卷积核对应的矩阵中的元素数目较多,参数量较大(或说信道数较多),这样,无论是在训练卷积神经网络还是在使用卷积神经网络进行数据处理的过程中,都需要进行大量的计算。采用低秩矩阵或由低秩矩阵分解获得的矩阵作为卷积层的卷积核,可以大大减少卷积神经网络的参数量(或信道数),从而使得在卷积神经网络的训练或应用过程中,所需的计算量大大减少。

根据本发明实施例的数据处理方法,采用将分解卷积核的乘积而获得的低秩矩阵作为卷积核的卷积神经网络进行数据处理,这种方法所需的计算量较少,可以有效提高数据处理效率。

示例性地,根据本发明实施例的数据处理方法可以在具有存储器和处理器的设备、装置或者系统中实现。

根据本发明实施例的数据处理方法可以部署在数据采集端,例如,可以部署在个人终端处,诸如智能电话、平板电脑、个人计算机等。替代地,根据本发明实施例的神经网络训练方法还可以部署在服务器端(或云端)处。例如,可以在客户端采集待处理数据(图像、音频等),客户端将采集到的待处理数据传送给服务器端(或云端),由服务器端(或云端)进行数据处理。

根据本发明另一方面,提供一种神经网络训练装置。图5示出了根据本发明一个实施例的神经网络训练装置500的示意性框图。

如图5所示,根据本发明实施例的神经网络训练装置500包括转换模块510、训练模块520、第一判断模块530、第一执行模块540和第二执行模块550。所述各个部件可分别执行上文中结合图2-3描述的神经网络训练方法的各个步骤/功能。以下仅对该神经网络训练装置500的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。

转换模块510用于利用低秩近似方法将卷积神经网络的至少一组卷积层中的每组卷积层所对应的一组初始卷积核转换为对应的一组转换卷积核。转换模块510可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

训练模块520用于基于所述至少一组卷积层所对应的转换卷积核对所述卷积神经网络进行训练,其中,在训练后的卷积神经网络中,所述至少一组卷积层中的每组卷积层所对应的一组转换卷积核更新为对应的一组经训练卷积核。训练模块520可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

第一判断模块530用于判断所述训练后的卷积神经网络是否满足预定标准,如果满足,则启动所述第一执行模块540,否则启动所述第二执行模块550。第一判断模块530可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

第一执行模块540用于将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核的乘积分解为对应的一组压缩卷积核,其中,所述至少一组卷积层中的每组卷积层所对应的一组压缩卷积核的乘积等于对应的一组经训练卷积核的乘积,并且,每个压缩卷积核所表示的矩阵为低秩矩阵。第一执行模块540可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

第二执行模块550用于将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核作为该组卷积层所对应的一组初始卷积核并启动所述转换模块510。第二执行模块550可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

根据本发明实施例,所述第一判断模块530包括判断子模块,用于根据所述训练后的卷积神经网络输出的实际计算结果与预期结果之间的差距和/或所述训练后的卷积神经网络的计算量,判断所述训练后的卷积神经网络是否满足所述预定标准。

根据本发明实施例,所述计算量是由所述卷积神经网络的实际计算时间代表的实际计算量或根据所述卷积神经网络的配置信息计算获得的理论计算量。

根据本发明实施例,所述转换模块510用于按能量压缩比率对所述至少一组卷积层中的每组卷积层所对应的一组初始卷积核的乘积进行低秩近似,以获得该组卷积层所对应的一组转换卷积核。

根据本发明实施例,所述转换模块510包括:奇异值分解子模块,用于对于所述至少一组卷积层中的每组卷积层,按照奇异值分解方式将该组卷积层所对应的一组初始卷积核的乘积所表示的矩阵表达为第一酉矩阵、对角矩阵和第二酉矩阵的乘积;截断数选取子模块,用于对于所述至少一组卷积层中的每组卷积层,根据所述对角矩阵中的奇异值和所述能量压缩比率选取截断数;截断子模块,用于对于所述至少一组卷积层中的每组卷积层,根据所述截断数对所述第一酉矩阵、所述对角矩阵和所述第二酉矩阵进行截断,以获得截断后的第一酉矩阵、截断后的对角矩阵和截断后的第二酉矩阵;以及矩阵乘子模块,用于对于所述至少一组卷积层中的每组卷积层,利用所述截断后的对角矩阵、所述截断后的第一酉矩阵和所述截断后的第二酉矩阵进行矩阵乘运算,以获得该组卷积层所对应的一组转换卷积核。

根据本发明实施例,所述神经网络训练装置500还可以包括第二判断模块(未示出),用于在所述训练模块基于所述至少一组卷积层所对应的转换卷积核对所述卷积神经网络进行训练之后以及在所述第一判断模块判断所述训练后的卷积神经网络是否满足预定标准之前,判断所述卷积神经网络的训练次数是否达到次数要求,如果所述卷积神经网络的训练次数未达到所述次数要求,则启动所述第二执行模块。

根据本发明另一方面,提供一种数据处理装置。图6示出了根据本发明一个实施例的数据处理装置600的示意性框图。

如图6所示,根据本发明实施例的数据处理装置600包括数据获取模块610和处理模块620。所述各个部件可分别执行上文中结合图4描述的数据处理方法的各个步骤/功能。以下仅对该数据处理装置600的各部件的主要功能进行描述,而省略以上已经描述过的细节内容。

数据获取模块610用于获取待处理数据。数据获取模块610可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

处理模块620用于通过上述的神经网络训练装置500训练获得的所述卷积神经网络对所述待处理数据进行处理。处理模块620可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。

处理模块620采用所述卷积神经网络对所述待处理数据进行处理,包括:将所述待处理数据提取为张量,并将所述提取得到的张量输入至所述卷积神经网络;利用所述卷积神经网络中的每一层所对应的参数(卷积核)对前一层的输出进行计算,并将所述卷积神经网络最后一层的输出作为所述卷积神经网络对所述待处理数据的处理结果以输出。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

图7示出了根据本发明一个实施例的神经网络训练系统700的示意性框图。神经网络训练系统700包括数据采集装置710、存储装置720、以及处理器730。应当注意,图7所示的神经网络训练系统700的组件和结构只是示例性的,而非限制性的,根据需要,神经网络训练系统700也可以具有其他组件和结构。

数据采集装置710用于采集训练数据。数据采集装置710是可选的,神经网络训练系统700可以不包括数据采集装置710,在这种情况下,可以利用其他数据采集装置采集训练数据,并将采集的训练数据发送给电子设备100。

所述存储装置720存储用于实现根据本发明实施例的神经网络训练方法中的相应步骤的程序代码。

所述处理器730用于运行所述存储装置720中存储的程序代码,以执行根据本发明实施例的神经网络训练方法的相应步骤,并且用于实现根据本发明实施例的神经网络训练装置中的转换模块510、训练模块520、第一判断模块530、第一执行模块540和第二执行模块550。

在一个实施例中,所述程序代码被所述处理器730运行时使所述神经网络训练系统700执行以下步骤:步骤S210:利用低秩近似方法将卷积神经网络的至少一组卷积层中的每组卷积层所对应的一组初始卷积核转换为对应的一组转换卷积核;步骤S220:基于所述至少一组卷积层所对应的转换卷积核对所述卷积神经网络进行训练,其中,在训练后的卷积神经网络中,所述至少一组卷积层中的每组卷积层所对应的一组转换卷积核更新为对应的一组经训练卷积核;步骤S230:判断所述训练后的卷积神经网络是否满足预定标准,如果满足,则转至步骤S240,否则转至步骤S250;步骤S240:将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核的乘积分解为对应的一组压缩卷积核,其中,所述至少一组卷积层中的每组卷积层所对应的一组压缩卷积核的乘积等于对应的一组经训练卷积核的乘积,并且,每个压缩卷积核所表示的矩阵为低秩矩阵;以及步骤S250:将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核作为该组卷积层所对应的一组初始卷积核并返回所述步骤S210。

在一个实施例中,所述程序代码被所述处理器730运行时使所述神经网络训练系统700所执行的步骤S230包括:根据所述训练后的卷积神经网络输出的实际计算结果与预期结果之间的差距和/或所述训练后的卷积神经网络的计算量判断所述训练后的卷积神经网络是否满足所述预定标准。

在一个实施例中,所述计算量是由所述卷积神经网络的实际计算时间代表的实际计算量或根据所述卷积神经网络的配置信息计算获得的理论计算量。

在一个实施例中,所述程序代码被所述处理器730运行时使所述神经网络训练系统700所执行的步骤S210包括:按能量压缩比率对所述至少一组卷积层中的每组卷积层所对应的一组初始卷积核的乘积进行低秩近似,以获得该组卷积层所对应的一组转换卷积核。

在一个实施例中,所述程序代码被所述处理器730运行时使所述神经网络训练系统700所执行的步骤S310进一步包括:对于所述至少一组卷积层中的每组卷积层,按照奇异值分解方式将该组卷积层所对应的一组初始卷积核的乘积所表示的矩阵表达为第一酉矩阵、对角矩阵和第二酉矩阵的乘积;对于所述至少一组卷积层中的每组卷积层,根据所述对角矩阵中的奇异值和所述能量压缩比率选取截断数;对于所述至少一组卷积层中的每组卷积层,根据所述截断数对所述第一酉矩阵、所述对角矩阵和所述第二酉矩阵进行截断,以获得截断后的第一酉矩阵、截断后的对角矩阵和截断后的第二酉矩阵;以及对于所述至少一组卷积层中的每组卷积层,利用所述截断后的对角矩阵、所述截断后的第一酉矩阵和所述截断后的第二酉矩阵进行矩阵乘运算,以获得该组卷积层所对应的一组转换卷积核。

在一个实施例中,在所述程序代码被所述处理器730运行时使所述神经网络训练系统700所执行的步骤S220之后以及步骤S230之前,所述程序代码被所述处理器730运行时还使所述神经网络训练系统700执行:判断所述卷积神经网络的训练次数是否达到次数要求,如果所述卷积神经网络的训练次数未达到所述次数要求,则转至所述步骤S250。

此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的神经网络训练方法的相应步骤,并且用于实现根据本发明实施例的神经网络训练装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。

在一个实施例中,所述计算机程序指令在被计算机或处理器运行时可以使得计算机或处理器实现根据本发明实施例的神经网络训练装置的各个功能模块,并且/或者可以执行根据本发明实施例的神经网络训练方法。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机执行以下步骤:步骤S210:利用低秩近似方法将卷积神经网络的至少一组卷积层中的每组卷积层所对应的一组初始卷积核转换为对应的一组转换卷积核;步骤S220:基于所述至少一组卷积层所对应的转换卷积核对所述卷积神经网络进行训练,其中,在训练后的卷积神经网络中,所述至少一组卷积层中的每组卷积层所对应的一组转换卷积核更新为对应的一组经训练卷积核;步骤S230:判断所述训练后的卷积神经网络是否满足预定标准,如果满足,则转至步骤S240,否则转至步骤S250;步骤S240:将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核的乘积分解为对应的一组压缩卷积核,其中,所述至少一组卷积层中的每组卷积层所对应的一组压缩卷积核的乘积等于对应的一组经训练卷积核的乘积,并且,每个压缩卷积核所表示的矩阵为低秩矩阵;以及步骤S250:将所述至少一组卷积层中的每组卷积层所对应的一组经训练卷积核作为该组卷积层所对应的一组初始卷积核并返回所述步骤S210。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机所执行的步骤S230包括:根据所述训练后的卷积神经网络输出的实际计算结果与预期结果之间的差距和/或所述训练后的卷积神经网络的计算量,判断所述训练后的卷积神经网络是否满足所述预定标准。

在一个实施例中,所述计算量是由所述卷积神经网络的实际计算时间代表的实际计算量或根据所述卷积神经网络的配置信息计算获得的理论计算量。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机所执行的步骤S210包括:按能量压缩比率对所述至少一组卷积层中的每组卷积层所对应的一组初始卷积核的乘积进行低秩近似,以获得该组卷积层所对应的一组转换卷积核。

在一个实施例中,所述计算机程序指令在被计算机运行时使所述计算机所执行的步骤S210进一步包括:对于所述至少一组卷积层中的每组卷积层,按照奇异值分解方式将该组卷积层所对应的一组初始卷积核的乘积所表示的矩阵表达为第一酉矩阵、对角矩阵和第二酉矩阵的乘积;对于所述至少一组卷积层中的每组卷积层,根据所述对角矩阵中的奇异值和所述能量压缩比率选取截断数;对于所述至少一组卷积层中的每组卷积层,根据所述截断数对所述第一酉矩阵、所述对角矩阵和所述第二酉矩阵进行截断,以获得截断后的第一酉矩阵、截断后的对角矩阵和截断后的第二酉矩阵;以及对于所述至少一组卷积层中的每组卷积层,利用所述截断后的对角矩阵、所述截断后的第一酉矩阵和所述截断后的第二酉矩阵进行矩阵乘运算,以获得该组卷积层所对应的一组转换卷积核。

在一个实施例中,在所述计算机程序指令在被计算机运行时使所述计算机所执行的步骤S220之后以及步骤S230之前,所述计算机程序指令在被计算机运行时还使所述计算机执行:判断所述卷积神经网络的训练次数是否达到次数要求,如果所述卷积神经网络的训练次数未达到所述次数要求,则转至所述步骤S250。

根据本发明实施例的神经网络训练系统中的各模块可以通过根据本发明实施例的实施神经网络训练的电子设备的处理器运行在存储器中存储的计算机程序指令来实现,或者可以在根据本发明实施例的计算机程序产品的计算机可读存储介质中存储的计算机指令被计算机运行时实现。

根据本发明实施例的神经网络训练方法及装置,通过低秩近似等方法将卷积神经网络的卷积核训练为具有低秩性的卷积核,这种低秩性卷积核使得卷积神经网络的训练过程的计算量减小,可以较快较高效地获得所需的卷积神经网络,并且采用低秩性卷积核的卷积神经网络在用于数据处理时可以节约数据计算量,从而可以有效提高数据处理效率。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的神经网络训练装置或数据处理装置中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1