CN111680781B - 神经网络处理方法、装置、电子设备及存储介质 - Google Patents
神经网络处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111680781B CN111680781B CN202010313409.4A CN202010313409A CN111680781B CN 111680781 B CN111680781 B CN 111680781B CN 202010313409 A CN202010313409 A CN 202010313409A CN 111680781 B CN111680781 B CN 111680781B
- Authority
- CN
- China
- Prior art keywords
- convolution
- original
- layer
- activation function
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例提出一种神经网络处理方法、装置、电子设备及存储介质,旨在实现对神经网络的变形,使得变形后的神经网络在分类、识别等任务中具有更好表现。其中,所述神经网络处理方法,包括:从初始神经网络中确定待处理的原始卷积层;为所述原始卷积层设置激活函数选择器,并为所述原始卷积层的每个输出通道配置多个候选激活函数;训练所述激活函数选择器,并利用训练完成的激活函数选择器,为每个输出通道确定目标激活函数;根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支,其中,同一卷积分支中的各个卷积核所对应的输出通道的目标激活函数的类型相同。
Description
技术领域
本发明涉及机器学习技术领域,特别是涉及一种神经网络处理方法、装置、电子设备及存储介质。
背景技术
近年来,随着机器学习技术的发展,神经网络在各种图像识别、语音识别等任务中都取得了突破性的进展。例如,在图像识别任务中,向一个神经网络中输入待识别的图片,经过神经网络中的卷积层的卷积处理,以及神经网络中的其他网络层的相应处理,输出识别结果,便可自动实现对图片中的图像(例如人像、证件、车辆、路牌)的自动识别。
为了获得能完成上述任务的神经网络,需要预先设计并搭建一个原始的神经网络,然后选用与上述任务相关的样本数据和训练策略对该神经网络进行训练,最后得到训练成功的神经网络,该神经网络能实现完成上述识别任务。其中,神经网络的模型结构对于识别任务的完成精度有着重要的影响,合适的模型结构可以显著提高识别任务的精确度。
相关技术中,通常是人工地凭借经验设计神经网络的模型结构。但是人工设计的网络结构通常较简单,难以高效率地设计出结构复杂、功能强大的模型结构。因此利用这些人工设计的网络模型执行识别任务时,通常仅对简单的识别任务具有较高的识别效果,而难以将其应用于复杂的识别任务,也难以将其应用至识别精度要求较高的识别任务。
发明内容
鉴于上述问题,提出了本发明实施例提出了一种神经网络处理方法、装置、电子设备及存储介质,以便克服上述问题或者至少部分地解决上述问题。
本发明实施例的第一方面,提供了一种神经网络处理方法,包括:
从初始神经网络中确定待处理的原始卷积层,所述原始卷积层包括多个卷积核,每个卷积核对应所述原始卷积层的一个输出通道;
为所述原始卷积层设置激活函数选择器,并为所述原始卷积层的每个输出通道配置多个候选激活函数;
训练所述激活函数选择器,并利用训练完成的激活函数选择器,从每个输出通道对应的多个候选激活函数中,确定该输出通道的目标激活函数;
根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支,其中,同一卷积分支中的各个卷积核所对应的输出通道的目标激活函数的类型相同。
本发明实施例的第二方面,提供了一种神经网络处理装置,包括:
原始卷积层确定模块,用于从初始神经网络中确定待处理的原始卷积层,所述原始卷积层包括多个卷积核,每个卷积核对应所述原始卷积层的一个输出通道;
选择器配置模块,用于为所述原始卷积层设置激活函数选择器,并为所述原始卷积层的每个输出通道配置多个候选激活函数;
目标激活函数确定模块,用于训练所述激活函数选择器,并利用训练完成的激活函数选择器,从每个输出通道对应的多个候选激活函数中,确定该输出通道的目标激活函数;
原始卷积层拆分模块,用于根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支,其中,同一卷积分支中的各个卷积核所对应的输出通道的目标激活函数的类型相同。
本发明实施例的第三方面,还公开了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本实施例第一方面所述的神经网络处理方法。
本发明实施例的第四方面,还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例第一方面所述的神经网络处理方法。
本发明实施例包括以下优点:
通过为初始神经网络的原始卷积层配置激活函数选择器,并为该原始卷积层的每个输出通道配置多个候选激活函数,然后训练该激活函数选择器,并利用训练完成的激活函数选择器为每个输出通道选择合适的目标激活函数,从而提高了激活函数的选取合理性,有利于提高神经网络在识别任务中的完成精度。此外,根据多个输出通道各自的目标激活函数的类型,将原始卷积层的多个卷积核划分为多个卷积分支,实现了对原始卷积层的拆分,使网络宽度由原本的一个分支(即原始卷积层)扩展为多个卷积分支,实现了网络宽度的扩展,提高了网络结构的复杂度,使得该神经网络在识别和分类等任务中具有更好表现。并且,在原始卷积层的拆分前后,网络参数量和计算量不变,有利于限制计算成本因网络变形而增加。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提出的神经网络处理方法的流程图;
图2是本发明一实施例提出的一种初始神经网络的结构示意图;
图3是本发明一实施例提出的对激活函数选择器的添加方式的示意图;
图4是本发明一实施例中提出的添加附加卷积层的示意图;
图5是本发明一实施例提出的附加卷积层的示意图;
图6是本发明一实施例提出的拆分原始卷积层和附加卷积层的示意图;
图7是本发明一实施例中提出的卷积核大小变形及卷积分支线性合并的示意图;
图8是本发明一实施例提出的对划入至第一卷积分支的子卷积核进行变形的示意图;
图9是本发明一实施例提出的变形后的神经网络的示意图;
图10是本发明一实施例提出的神经网络处理装置。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,为了使神经网络能完成图像或语音的识别、检测、分类等任务,通常需要预先设计并搭建一个原始的神经网络,然后选用与上述任务相关的样本数据和训练策略对该神经网络进行训练,最后得到训练成功的神经网络,该神经网络能实现完成上述识别任务。其中,神经网络的模型结构对于识别任务的完成精度有着重要的影响,合适的模型结构可以显著提高识别任务的精确度。
当前,通常是人工地凭借经验设计神经网络的模型结构。但是人工设计的网络结构通常较简单,难以高效率地设计出结构复杂、功能强大的模型结构。因此利用这些人工设计的网络模型执行识别任务时,通常仅对简单的识别任务具有较高的识别效果,而难以将其应用于复杂的识别任务,也难以将其应用至识别精度要求较高的识别任务。
为此,本发明实施例提出神经网络处理方法,旨在对神经网络中的原始卷积层进行处理,从而对原始卷积层的结构进行优化变形。参考图1,图1是本发明一实施例提出的神经网络处理方法的流程图。如图1所示,该方法包括以下步骤:
步骤S11:从初始神经网络中确定待处理的原始卷积层,所述原始卷积层包括多个卷积核,每个卷积核对应所述原始卷积层的一个输出通道。
其中,初始神经网络中可以包括一个或多个卷积层,除此之外,初始神经网络中还可以包括其他网络层,例如池化层、全连接层、输出层等等。参考图2,图2是本发明一实施例提出的一种初始神经网络的结构示意图。如图2所示,该神经网络中包括3个卷积层conv,还包括池化层、全连接层以及输出层。
在本发明的一些实施方式中,如果初始神经网络中仅包括一个卷积层,则可以将该卷积层确定为待处理的原始卷积层,并对其执行下述步骤(例如步骤S12和步骤S13)的处理。
在本发明的另一些实施方式中,如果初始神经网络中包括多个卷积层,则可以按照预设的处理顺序,依次将每个卷积层分别作为一个待处理的原始卷积层,并对其执行下述步骤(例如步骤S12和步骤S13)的处理。在一个卷积层被处理之后,再对下一个卷积层进行处理。
在本发明的又一些实施方式中,如果初始神经网络中包括多个卷积层,也可以随机地从多个卷积层中选择一个卷积层,作为待处理的原始卷积层,并对其执行下述步骤(例如步骤S12和步骤S13)的处理。在该卷积层被处理之后,再随机选择下一个卷积层进行处理。当处理次数达到预设次数,或者处理时长达到预设时长,再或者网络参数计算量达到预设量级时,不再从该神经网络中选择卷积层进行处理。
以图2所示的初始神经网络为例,以随机选择的方式,将该神经网络中的第二个卷积层确定为待处理的原始卷积层。其中,第二个卷积层是图2中由虚线框示的卷积层。
在机器学习领域,卷积层通常包括一个或多个卷积核,每个卷积核对应一个输出通道。示例地,如果一个卷积层包括8个卷积核,则该卷积层可以输出8通道的特征图featuremap,或者称该卷积层可以输出8个特征图featuremap。考虑到卷积核、输出通道等作为机器学习领域的常规概念,因此本发明在此不对其进行赘述。
步骤S12:为所述原始卷积层设置激活函数选择器,并为所述原始卷积层的每个输出通道配置多个候选激活函数。
其中,为不同输出通道各自配置的多个候选激活函数是相同的。示例地,为原始卷积层的第一个输出通道配置的多个候选激活函数包括:Relu激活函数(Rectified LinearUnit,Relu)和Linear线性激活函数。为原始卷积层的第二个输出通道配置的多个候选激活函数也包括:Relu激活函数和Linear线性激活函数。同样地,为原始卷积层的其他输出通道配置的多个候选激活函数同样包括:Relu激活函数和Linear线性激活函数。
优选地,在本发明的一些实施例(例如下述图7所示的实施例)中,为了实现网络的深度变形,每个输出通道对应的多个候选激活函数中,至少包括一个Linear线性激活函数和一个非线性激活函数。其中,非线性激活函数可以有多种选择,例如:Relu激活函数、Sigmoid激活函数或者Tanh激活函数等。
参考图3,图3是本发明一实施例提出的对激活函数选择器的添加方式的示意图。图3中,待处理的原始卷积层以conv表示,该原始卷积层的输出通道数为O,该原始卷积层的输入通道数为C1,该原始卷积层的每个卷积核的大小为K1×K1,也即卷积核的每个子卷积核的宽度和高度均为K1,该原始卷积层的每个卷积核的步长为S。
如图3所示,原始卷积层后设置了激活函数选择器Activation Selector。在本发明的一些实施方式中,激活函数选择器中可以包括多组选择参数,每组选择参数对应所述原始卷积层的一个输出通道。示例地,原始卷积层的每个输出通道的多个候选激活函数包括:Relu激活函数和Linear线性激活函数。如图3所示,针对每个输出通道的一组选择参数中包括选择参数d1和选择参数d2,其中选择参数d1对应Relu激活函数,选择参数d2对应Linear线性激活函数。选择参数d1和选择参数d2用于确定Relu激活函数和Linear线性激活函数各自的权重。选择参数d1和选择参数d2在后述对激活函数选择器的训练过程中,可以被训练更新。换言之,选择参数d1和选择参数d2是可学习的参数。
需要说明的是,不同输出通道各自的选择参数d1在训练期间,各自被更新,经过多轮更新后,不同输出通道各自的选择参数d1互不相同。同样地,不同输出通道各自的选择参数d2在训练期间,各自被更新,经过多轮更新后,不同输出通道各自的选择参数d2互不相同。并且,同一输出通道的选择参数d1和选择参数d2在训练期间,也是各自被更新,经过多轮更新后,同一输出通道的选择参数d1和选择参数d2互不相同。
关于激活函数选择器的初始化和作用方式,可参考本后述实施方式,本发明在此暂不赘述。
在本发明的一些实施例中,还可以在激活函数选择器后增设附加卷积层,旨在实现对原始卷积层的深度变形。对于如何添加附加卷积层,以及如何实现深度变形,请参见本发明的后述内容,本发明在此不做赘述。
在本发明的一些实施例中,还可以为原始卷积层新增批归一化层(BatchNormalization,BN),旨在加速神经网络的收敛,从而提高训练效率。对于如何新增批归一化层,请参见本发明的后述内容,本发明在此不做赘述。
步骤S13:训练所述激活函数选择器,并利用训练完成的激活函数选择器,从每个输出通道对应的多个候选激活函数中,确定该输出通道的目标激活函数。
在训练激活函数选择器时,具体地,可以将样本数据输入所述神经网络,通过所述神经网络和所述激活函数选择器对所述样本数据进行处理,获得所述神经网络输出的预测结果,并根据所述预测结果对所述激活函数选择器中的各组选择参数进行更新。
上述训练过程中,由于样本数据在神经网络中传递期间,会被设置在该神经网络中的激活函数选择器的处理,经过激活函数选择器处理的样本数据继续在神经网络中传递,以及继续被神经网络的各个网络层(例如卷积层、池化层、全连接层)处理,最终该神经网络输出预测结果。其中,激活函数选择器在处理样本数据时,具体是根据其包括的各组选择参数,对样本数据进行计算处理。因此最终输出的预测结果不仅会取决于神经网络本身,也取决于设置在神经网络中的所述激活函数选择器中的各组选择参数。如此,便可以根据预测结果,对所述激活函数选择器中的各组选择参数进行更新。具体实现时,可根据预测结果和期望结果之间的差距值,对激活函数选择器中的各组选择参数进行更新。
如本发明下文所述,激活函数选择器在处理样本数据时,具体地,神经网络的原始卷积层的每个输出通道的输出,是该输出通道对应的各个候选激活函数的加权平均。
在本发明的又一些实施方式中,在利用多批次的样本数据对激活函数选择器进行多轮训练时,具体地,可以对所述激活函数选择器和所述神经网络进行交替训练。首先将第一批次的样本数据输入神经网络,并获得神经网络输出的预测结果,根据该预测结果,对激活函数选择器中的各组选择参数进行更新。然后将第二批次的样本数据输入神经网络,并获得神经网络输出的预测结果,根据该预测结果,对该神经网络本身的网络参数进行更新。接着将第三批次的样本数据输入神经网络,并获得神经网络输出的预测结果,根据该预测结果,再对激活函数选择器中的各组选择参数进行更新。再将第四批次的样本数据输入神经网络,并获得神经网络输出的预测结果,根据该预测结果,再对该神经网络本身的网络参数进行更新。以此类推,实现对激活函数选择器和神经网络的交替更新。
通过采用上述交替更新的方式,可以使神经网络和激活函数选择器的更新进度一致,保持神经网络与激活函数选择器之间的适配性。
在本发明的一些实施方式中,激活函数选择器在对样本数据进行处理时,具体地,在所述样本数据传递至所述原始卷积层后,所述激活函数选择器针对所述原始卷积层的每个输出通道,根据该输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重,并根据所述多个激活函数及其各自的权重,确定该输出通道将输出的特征数据。
由于需要对激活函数选择器进行多轮训练,每轮训练后需要根据该轮训练得到的预测结果,对激活函数选择器的各组选择参数进行更新。因此在每轮训练中,激活函数选择器所根据的当前选择参数是指:上一轮训练所更新后的选择参数。
具体实现时,可以根据以下的公式(1)确定一个输出通道将输出的特征数据:
其中,如图3所示,d1是Relu激活函数对应的选择参数,d2是Linear线性激活函数对应的选择参数,Softmaxi(d1,d2)是第i个候选激活函数的权重,Ai是原始卷积层的一个输出通道(也即原始卷积层的一个卷积核的卷积结果)被第i个候选激活函数处理后的处理结果,Ai×Softmaxi(d1,d2)是第i个候选激活函数的处理结果与其权重的乘积,y是上述卷积核对应的输出通道将输出的特征数据,即是多个候选激活函数各自的处理结果与其权重的乘积的累加,也即多个候选激活函数各自的处理结果的加权平均。
其中,选择参数d1和d2在激活函数选择器被部署至神经网络的时候,需要被初始化。一种较简单的初始化方式是:将d1和d2设置为相等的数值,例如均为0.5。
此外,如前述实施方式所呈现的,每个输出通道对应的一组选择参数中包括多个选择参数,每个选择参数对应该通道的一个候选激活函数。考虑到本发明中,激活函数选择器中的选择参数在经过多轮更新之后,同一输出通道的各个候选激活函数各自对应的选择参数之间,不一定能明显地拉开差距,导致各个候选激活函数的权重相接近。
为了使上述各选择参数之间明显地拉开差距,从而可以明显地区分各个候选激活函数的优劣,从而更准确地选择目标激活函数。在本发明的一些实施方式中,上述激活函数选择器还包括第一衰减参数,所述第一衰减参数随着各组选择参数的更新轮次的增加,以指数衰减的方式逐渐趋近于0。
如此,在根据输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重时,具体地,可以将每个候选激活函数对应的选择参数与所述第一衰减参数之间的比值,带入softmax函数,以获得每个候选激活函数的权重。
在引入第一衰减参数之后,具体实现时,可以根据以下的公式(2)确定一个输出通道将输出的特征数据:
其中,d1是Relu激活函数对应的选择参数,d2是Linear线性激活函数对应的选择参数,Ta是第一衰减参数,是第i个候选激活函数的权重,Ai是原始卷积层的一个输出通道(也即原始卷积层的一个卷积核的卷积结果)被第i个候选激活函数处理后的处理结果,/>是第i个候选激活函数的处理结果与其权重的乘积,y是上述卷积核对应的输出通道将输出的特征数据,即是多个候选激活函数各自的处理结果与其权重的乘积的累加,也即多个候选激活函数各自的处理结果的加权平均。
其中,第一衰减参数Ta在激活函数选择器被部署至神经网络的时候,需要被初始化,例如可以初始化为数值1。
其中,在每一轮训练结束之后,即选择参数更新之后,Ta的值乘以衰减系数(例如0.95),从而更新Ta的值。如此,随着选择参数更新轮次的增加,Ta的值逐渐趋近于0,与/>明显拉开差距,其中一个权重趋近于1,另一个权重趋近于0。
在采用上述多种实施方式中的任意种实施方式,对各组选择参数进行多轮更新后,针对所述原始卷积层的每个输出通道,可以根据该输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重,并将权重最大的候选激活函数确定为该输出通道的目标激活函数。
其中,确定多个候选激活函数各自的权重的具体方式,可参考上述公式(1)中的softmax函数。在引入了第一衰减参数的实施方式中,也可参考上述公式(2)中的softmax函数。本发明在此不赘述权重的具体确定方式。
本发明通过为初始神经网络的原始卷积层配置激活函数选择器,并为该原始卷积层的每个输出通道配置多个候选激活函数,然后训练该激活函数选择器,并利用训练完成的激活函数选择器为每个输出通道选择合适的目标激活函数,从而提高了激活函数的选取合理性,有利于提高神经网络在识别任务中的完成精度。
步骤S14:根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支,其中,同一卷积分支中的各个卷积核所对应的输出通道的目标激活函数的类型相同。
其中,卷积分支的数量等于候选激活函数的类型数量。假设原始卷积层的输出通道为8个,例如在上述步骤S12中,原始卷积层的每个输出通道的多个候选激活函数均配置为:Relu激活函数和Linear线性激活函数。如果在经过上述步骤S11至步骤S13之后,确定第1、第2、第3、第5以及第8个输出通道的目标激活函数为Relu激活函数,第4、第6以及第7个输出通道的目标激活函数为Linear线性激活函数。则可以将第1、第2、第3、第5以及第8个输出通道相对应的第1、第2、第3、第5以及第8个卷积核划分为一个卷积分支,将第4、第6以及第7个输出通道相对应的第4、第6以及第7个卷积核划分为另一个卷积分支,总共得到两个卷积分支。
此外,由于在确定出每个输出通道的目标激活函数之后,激活函数选择器即实现了它本身的作用,因此可以在对原始卷积层的多个卷积核进行拆分之前,将设置在神经网络中的激活函数选择器去除。
本发明通过根据多个输出通道各自的目标激活函数的类型,将原始卷积层的多个卷积核划分为多个卷积分支,实现了对原始卷积层的拆分,使网络宽度由原本的一个分支(即原始卷积层)扩展为多个卷积分支,实现了网络宽度的扩展,提高了网络结构的复杂度,使得该神经网络在经过训练并应用至识别和分类等任务中时,具有更好表现。并且,在原始卷积层的拆分前后,网络参数量和计算量不变,有利于限制计算成本因网络变形而增加。
在本发明的一些实施方式中,每个输出通道的多个候选激活函数中,包括线性激活函数和非线性激活函数。例如前述实施方式所提到的Relu激活函数即是一种非线性的激活函数,而Linear线性激活函数即是一种线性的激活函数。
如此,在根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支时,具体地,根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为第一卷积分支和第二卷积分支,其中,第一卷积分支中的各个卷积核所对应的输出通道的目标激活函数均为非线性激活函数,第二卷积分支中的各个卷积核所对应的输出通道的目标激活函数均为线性激活函数。
上述各实施方式中,实现了对原始卷积层的宽度变形,拓宽了网络宽度,提高了网络结构的复杂度。为了进一步实现对原始卷积层的深度变形,进一步提高网络结构的复杂度。参考图4,图4是本发明一实施例中提出的添加附加卷积层的示意图。如图4所示,可以在训练所述激活函数选择器之前,即上述步骤S13之前,在所述激活函数选择器后增设附加卷积层。图4中,附加卷积层表示为conv2。
参考图5,图5是本发明一实施例提出的附加卷积层的示意图,如图5所示,所述附加卷积层包括多个卷积核,每个卷积核包括多个子卷积核,每个子卷积核即是附加卷积层的一个输入通道,每个子卷积核对应所述原始卷积层的一个输出通道,所述附加卷积层的输入数据为所述原始卷积层的输出数据,所述附加卷积层的输入与输出相同。如图5所示,原始卷积层的输出通道数量为O,附加卷积层的每个卷积核包括的子卷积核的层数也为O,一个卷积核的各层子卷积核分别用于:对原始卷积层输出的O通道特征图featuremap中的一个通道进行卷积。考虑到卷积核和子卷积核等概念是机器学习领域的常规概念,因此本发明在此不对其做赘述。
如图4和图5所示,附加卷积层的输入通道数为O(即原始卷积层的输出通道数),附加卷积层的输出通道参数也为O,该原始卷积层的每个卷积核的大小为1×1,表示卷积核的每个卷积子层的宽度和高度均为1,该原始卷积层的每个卷积核的步长为S。
通过将附加卷积层的个卷积核的大小初始化为1×1,其好处在于:一方面可以尽量使额外引入的参数量等相对小,确保神经网络计算、运行的高效性;另一方面,选用1×1的卷积核,在后述卷积核合并的时候,合并后的卷积参数可以完全等价继承合并前的卷积参数,从而有利于实现网络的恒等映射初始化,进而减小网络深度变形瞬间带来的性能震荡。关于卷积核合并的实施方式,此处暂不赘述。
考虑到在新增附加卷积层的瞬间,可能会带来网络性能的震荡。为了尽量减少神经网络的震荡,在本发明的一些实施方式中,可以对附加卷积层执行恒等映射初始化。在执行恒等映射初始化之后,如图5所示,第一个卷积核的第一个子卷积核的权值为1,其余子卷积核的权值为0;第二个卷积核的第二个子卷积核的权值为1,其余子卷积核的权值为0;以此类推。换言之,在对附加卷积层进行恒等映射初始化时,将第i个卷积核的第i层子卷积核的权值设置为1,将第i个卷积核的其余子卷积核的权值设置为0。
如此,在新增附加卷积层的瞬间,理想情况下,附加卷积层的输入和输出相同,因此不会对神经网络中传递的数据造成更改,从而有效避免了在新增附加卷积层瞬间对神经网络造成的震荡。
在新增附加卷积层,并对其进行恒等映射初始化之后,依次执行上述步骤S13和步骤S14。其中,在执行步骤S13期间,如前述一些实施方式所提到的,可以对激活函数选择器和神经网络进行交替更新。在对神经网络进行更新时,附加卷积层作为神经网络的一部分被更新。
在执行步骤S14期间,将原始卷积层的多个卷积核划分为第一卷积分支和第二卷积分支之后,还可以针对所述附加卷积层的每个卷积核,根据所述原始卷积层的多个输出通道各自的目标激活函数,将该卷积核的多个子卷积核拆分为两部分,分别为第一部分和第二部分,并将所述第一部分的子卷积核划入所述第一卷积分支,将所述第二部分的子卷积核划入所述第二卷积分支,其中,所述第一部分的每个子卷积核对应的原始卷积层输出通道的目标激活函数均为非线性激活函数,所述第二部分的每个子卷积核对应的原始卷积层输出通道的目标激活函数均为线性激活函数。
为了便于理解,沿用上述示例,假设原始卷积层的输出通道为8个,在经过上述步骤S11至步骤S13之后,确定原始卷积层的第1、第2、第3、第5以及第8个输出通道的目标激活函数为Relu激活函数,原始卷积层的第4、第6以及第7个输出通道的目标激活函数为Linear线性激活函数。于是将原始卷积层的第1、第2、第3、第5以及第8个输出通道相对应的第1、第2、第3、第5以及第8个卷积核划分为第一卷积分支,将原始卷积层的第4、第6以及第7个输出通道相对应的第4、第6以及第7个卷积核划分为第二卷积分支。此后,针对附加卷积层的每个卷积核,由于该卷积核中的第1、第2、第3、第5以及第8个子卷积核(也即该卷积核的第1、第2、第3、第5以及第8个输入通道)分别对应原始卷积层的第1、第2、第3、第5以及第8个输出通道,又由于原始卷积层的第1、第2、第3、第5以及第8个输出通道各自的目标激活函数均为Relu激活函数,因此将该卷积核中的第1、第2、第3、第5以及第8个子卷积核作为第一部分,划入第一卷积分支。
基于同样的原理,由于该卷积核中的第4、第6以及第7个子卷积核(也即该卷积核的第4、第6以及第7个输入通道)分别对应原始卷积层的第4、第6以及第7个输出通道,又由于原始卷积层的第4、第6以及第7个输出通道各自的目标激活函数均为Linear线性激活函数,因此将该卷积核中的第4、第6以及第7个子卷积核作为第二部分,划入第二卷积分支。
如此,附加卷积层的每个卷积核均被拆分成第一部分和第二部分,被拆分成的第一部分和第二部分分别被划入第一卷积分支和第二卷积分支,使得第一卷积分支和第二卷积分支的网络深度均被加深。
为便于理解,参考图6,图6是本发明一实施例提出的拆分原始卷积层和附加卷积层的示意图。如图6所示,原始卷积层拆分至第一卷积分支的部分表示为conv_r,原始卷积层拆分至第二卷积分支的部分表示为conv_l。示例地,conv_r中包括原始卷积层的第1、第2、第3、第5以及第8个卷积核,conv_l中包括原始卷积层的第4、第6以及第7个卷积层。
如图6所示,附加卷积层拆分至第一卷积分支的部分表示为conv2_r,附加卷积层拆分至第二卷积分支的部分表示为conv2_l。示例地,conv2_r中包括8个所述第一部分,conv2_l中包括8个所述第二部分。其中,第i个第一部分和第i个第二部分是由附加卷积层中的第i个卷积核拆分得到的。每个所述第一部分包括5个子卷积核,每个所述第二部分包括3个子卷积核。其中,第i个所述第一部分所包括的5个子卷积核分别是:附加卷积层的第i个卷积核中的第1、第2、第3、第5以及第8个子卷积核。第i个所述第二部分所包括的3个子卷积核分别是:附加卷积层的第i个卷积核中的第4、第6以及第7个子卷积核。
简而言之,示例地,附加卷积层在拆分至第一卷积分支和第二卷积分支之前的卷积参数为(8,8,1,1)。其中,第一个8表示附加卷积层的输出通道数等于8,第二个8表示附加卷积层的输入通道数等于8,第一个1表示附加卷积层的每个卷积核的宽度等于1,第二个1表示附加卷积层的每个卷积核的高度等于1。
附加卷积层拆分后,拆分至第一卷积分支的附加卷积层的卷积参数为(8,5,1,1)。其中,8表示拆分至第一卷积分支的附加卷积层的输出通道数等于8,5表示拆分至第一卷积分支的附加卷积层的输入通道数等于5,第一个1表示拆分至第一卷积分支的附加卷积层的每个卷积核的宽度等于1,第二个1表示拆分至第一卷积分支的附加卷积层的每个卷积核的高度等于1。
拆分至第二卷积分支的附加卷积层的卷积参数为(8,3,1,1)。其中,8表示拆分至第二卷积分支的附加卷积层的输出通道数等于8,3表示拆分至第二卷积分支的附加卷积层的输入通道数等于3,第一个1表示拆分至第二卷积分支的附加卷积层的每个卷积核的宽度等于1,第二个1表示拆分至第二卷积分支的附加卷积层的每个卷积核的高度等于1。
上述的一部分实施方式中,实现了对原始卷积层的宽度变形,拓宽了网络宽度,提高了网络结构的复杂度。上述的又一部分实施方式中,在实现对原始卷积层的宽度变形的基础上,进一步实现对原始卷积层的深度变形。为了在深度变形的基础上,进一步实现对上述第一卷积分支和/或第二卷积分支的变形,具体地,实现对第一卷积分支中的附加卷积层的卷积核大小变形,和/或,对第二卷积分支的线性合并。参考图7,图7是本发明一实施例中提出的卷积核大小变形及卷积分支线性合并的示意图。
如图7所示,可以在将附加卷积层的每个卷积核拆分至第一卷积分支和第二卷积分支之后,对划入至所述第一卷积分支的子卷积核的大小进行扩大,扩大后的子卷积核的中心区域的权值等于扩大前的子卷积核的权值,扩大后的子卷积核的外围区域的权值等于0;其中,扩大后的子卷积核的中心区域的大小,与扩大前的子卷积核的大小相同。图7中,附加卷积层拆分至第一卷积分支的部分conv2_r在经过卷积核扩大处理后,得到conv2_r'。
其中,如前所述,划入至第一卷积分支的子卷积核是指:附加卷积层的卷积核所包括的多个子卷积核中,被划入至第一卷积分支的子卷积核。
为了便于理解,参考图8,图8是本发明一实施例提出的对划入至第一卷积分支的子卷积核进行变形的示意图。如图8所示,一个扩大前的子卷积核的大小为1×1,该子卷积扩大后的大小变为3×3。图8中,每个子卷积核中由粗实线所框示的区域即是中心区域,中心区域的大小等于扩大前的子卷积核的大小,即1×1。如图8所示,每个扩大后的子卷积核的中心区域的权值,等于该子卷积核在扩大前的权值。而围绕该中心区域的外围区域的权值均等于0。
通过以上述方式对各个子卷积核进行扩大,一方面继承了扩大前的子卷积核的权值,另一方面使扩充区域(即外围区域)的权值初始为0,以达到恒等映射初始化的目的,有利于减小网络性能的震荡。
如图7所示,可以在将附加卷积层的每个卷积核的多个子卷积核拆分至第一卷积分支和第二卷积分支之后,对划入至所述第二卷积分支的子卷积核与所述第二卷积分支中的所述原始卷积层的卷积核进行合并,得到合并卷积层。由于第二卷积分支中各个卷积核对应的目标激活函数均为线性激活函数,因此上述合并即是对第二卷积分支中的线性卷积进行合并,得到合并卷积层。图7中,合并卷积层被表示为conv_hb。
其中,第二卷积分支中的多个卷积核(即原始卷积层拆分至第二卷积分支的卷积核)可以视为一个新的卷积层,表示为前述实施方式中提到的conv_l。类似地,第二卷积分支中的多个子卷积核(即附加卷积层的每个卷积核拆分至第二卷积分支的子卷积核)也可以视为一个新的卷积层,表示为前述实施方式中提到的conv2_l。
具体实现时,由于第二卷积分支中的各个卷积核(例如前述实施方式中原始卷积层的第1、第2、第3、第5以及第8个卷积核)对应的激活函数均为线性激活函数,例如Linear线性激活函数,且第二卷积分支中的各个子卷积核的大小均为1×1,因此可以依次根据以下公式,通过Reshape函数和MatMul函数,对第二卷积分支中的多个卷积核和多个子卷积核进行合并,得到合并卷积层。
WL1=Reshape(WL1,(C1×K1×K1,L))
WL2=Reshape(WL2,(L×1×1,O))
W3=MatMul(WL1,WL2)
W3=Reshape(W3,(O,C1,K1,K1))
其中,Reshape函数是商业数学软件MATLAB中用于变换矩阵维数的函数。上述公式中,WL1表示第二卷积分支中的conv_l的卷积参数矩阵;C1表示conv_l的输入通道数;K1×K1表示conv_l中每个卷积核的大小,即宽×高;L表示conv_l的输出通道数,即conv_l中所包括的卷积核的数量,也即原始卷积层的多个卷积核中拆分至第二卷积分支的卷积核的数量,也即原始卷积层的多个输出通道中,选出的目标激活函数为线性激活函数的输出通道数量;Reshape(WL1,(C1×K1×K1,L))表示将卷积参数矩阵WL1变换为二维矩阵,该二维矩阵的行数为C1×K1×K1,即C1、K1、K1三者的乘积,该二维矩阵的列数为L。
类似地,上述公式中,WL2表示第二卷积分支中的conv2_l的卷积参数矩阵;L表示conv2_l的输入通道数,即conv2_l的每个所述第二部分所包括的子卷积核数量,也即附加卷积层的每个卷积核的多个子卷积核中拆分至第二卷积分支的子卷积核的数量;1×1表示conv2_l中每个子卷积核的大小,即宽×高;O表示conv2_l的输出通道数,即conv2_l包括的所述第二部分的数量;WL2=Reshape(WL2,(L×1×1,O))表示将卷积参数矩阵WL2变换为二维矩阵,该二维矩阵的行数为L×1×1,即L,该二维矩阵的列数为O。
上述公式中,MatMul函数是矩阵相乘函数,W3=MatMul(WL1,WL2)表示将二维矩阵WL1和二维矩阵WL2相乘,得到矩阵W3。
需要说明的是,正是由于将附加卷积层的个卷积核的大小初始化为1×1,因此根据上述公式W3=Reshape(W3,(O,C1,K1,K1)),计算出的二维矩阵WL2的行数可以刚好等于L。又由于二维矩阵WL1的列数等于L,因此使得二维矩阵WL1和二维矩阵WL2之间的矩阵相乘运算得以实现,从而使合并后的卷积参数可以完全等价继承合并前的卷积参数,有利于实现网络的恒等映射初始化,进而减小网络深度变形瞬间带来的性能震荡。
最后,W3=Reshape(W3,(O,C1,K1,K1))表示将矩阵W3变换为四维矩阵,该四维矩阵的四个维数分别是:O、C1、K1、K1。其中,W3表示合并卷积层conv_hb的卷积参数矩阵;O表示conv_hb的输出通道数,conv_hb的输出通道数等于conv2_l的输出通道数;C1表示conv_hb的输入通道数,conv_hb的输入通道数等于conv_l的输入通道数;K1和K1分别表示conv_hb的卷积核的宽度和高度,conv_hb的卷积核的宽度和高度分别等于conv_l中每个卷积核的宽度和高度。
通过上述卷积分支变形过程,如图7所示,第一卷积分支最终包括两个卷积层,分别是conv_r和conv2_r'。其中卷积层conv_r是原始卷积层的一部分卷积核所组成的,卷积层conv2_r'是附加卷积层划入至第一卷积分支的子卷积核在经过大小变形后组成的。第二卷积分支最终包括一个卷积层,即合并卷积层conv_hb,合并卷积层conv_hb是由原始卷积层的另一部分卷积核和附加卷积层划入至第二卷积分支的子卷积核在经过合并后得到的。图7所示的第一卷积分支和第二卷积分支共同构成了一个类似Res18的残差单元结构。如此,实现了原始卷积层向残差单元结构的变形,变形后的网络结构相当于具有了残差单元结构的特性,使网络训练更加容易。
参考图9,图9是本发明一实施例提出的变形后的神经网络的示意图。如图9所示,神经网络中的第二个卷积层在变形后,替换为图7所示的类似Res18的残差单元结构。本发明的上述多个实施方式中,一些实施方式实现了原始卷积层的宽度变形,一些实施方式同时实现了原始卷积层的宽度变形和深度变形,还有一些实施例同时实现了原始卷积层的宽度变形、深度变形、第一子卷积核大小变形、第二卷积分支合并变形等。
为了进一步实现递归嵌套变形,从而获得具有嵌套结构的神经网络。在本发明的一些实施方式中,可以在获得如图9所示的变形后的神经网络后,继续将附加卷积层拆分至所述第一卷积分支的所有子卷积核共同作为另一个待处理的原始卷积层。换言之,可以将经过卷积核大小变形后得到的卷积层conv2_r'作为另一个待变形的原始卷积层,然后对其执行上述多种实施方式中的任意种实施方式所包括的步骤,从而得到具有嵌套结构的神经网络,并实现了对神经网络的进一步加深。
或者,也可以继续将第二卷积分支中的合并卷积层conv_hb作为另一个待处理的原始卷积层,然后对其执行上述多种实施方式中的任意种实施方式所包括的步骤,从而得到具有嵌套结构的神经网络,并实现了对神经网络的进一步加宽。
再或者,也可以将神经网路中的其他卷积层,例如图9中的第一个卷积层或第三个卷积层,作为另一个待处理的原始卷积层然后对其执行上述多种实施方式中的任意种实施方式所包括的步骤。
为了使神经网络在训练期间加速收敛,从而提高训练效率,在本发明的一些实施例中,可以在训练激活函数选择器之前,即执行上述步骤S13之前,为原始卷积层新增批归一化层(Batch Normalization,BN)。具体实现时,如果原始卷积层已经与批归一化层连接,换言之,如果原始卷积层已经配备了批归一化层,则可以不必再新增批归一化层。
如果原始卷积层未与批归一化层连接,换言之,如果原始卷积层没有配备批归一化层,则可以在该原始卷积层后新增批归一化层,该批归一化层包括原始参数和第二衰减参数。如图3所示,图3中,新增的批归一化层表示为BN。其中,所述第二衰减参数随着各组选择参数的更新轮次的增加,以指数衰减的方式逐渐趋近于0。然后按照预设条件,初始化所述原始参数和所述第二衰减参数,所述预设条件为:在对所述激活函数选择器进行第一轮训练期间,所述批归一化层的输入和输出相同。
示例地,可以按照如下公式定义批归一化层:
其中,X表示输入批归一化层的特征图featuremap;X′表示经过批归一化层处理后输出的特征图featuremap;mean_X表示X的沿通道维度的像素均值,是一维张量,张量的长度等于通道数;std_X表示X的沿通道维度的像素标准差,是一维张量,张量的长度也等于通道数;和β是均是批归一化层的原始参数;Tb是第二衰减参数。
其中,在对原始参数和第二衰减参数进行初始化时,需要满足上述预设条件,也即是需要实现恒等映射初始化,以减小因批归一化层的新增而导致的网络性能震荡。具体实现时,可以将初始化为1,将β初始化为0,将Tb初始化为1。
在按照上述方式初始化原始参数和第二衰减参数后,在第一轮训练时,公式等价于/>也即等价于公式/>可见,在第一轮训练时,新增的批归一化层的输入X等于输出X′,实现了恒等映射。
需要说明的是,在后续训练轮次中,由于神经网络和激活函数选择器被交替训练,因此批归一化层作为神经网络的一部分,其中的原始参数和β会伴随神经网络的训练而被更新。而其中的第二衰减参数Ta是不需要学习的参数,在激活函数选择器的每一轮训练结束之后,Ta的值需乘以固定的衰减系数(例如0.95),从而更新Ta的值。如此,随着选择参数更新轮次的增加,Ta的值逐渐平滑地趋近于0。随着Ta的值逐渐趋近于0,新增的批归一化层逐渐变为正常的批归一化层。
通过为原始卷积层新增批归一化层,可以使激活函数选择器和神经网络交替训练期间加速收敛,从而提高训练效率,进而提高对神经网络的处理、变形效率。
此外,在经过上述多个实施方式中的任意实施方式,获得经过处理的初始神经网络之后,还可以对该初始神经网络进行训练,并利用训练后的神经网络模型进行分类或图像检测。
示例地,可以利用携带有标注的样本图像对该神经网络进行训练更新,从而获得可识别或分类目标图像的神经网络,此后,可以利用该神经网络对未知图片进行检测,以识别或分类未知图片中的目标图像。其中,目标图像包括但不限于:人脸、人体、证件、票据、车辆、路牌等等。
基于同一发明构思,本发明实施例还提供一种神经网络处理装置。参考图10,图10是本发明一实施例提出的神经网络处理装置。如图10所示,该装置包括:
原始卷积层确定模块101,用于从初始神经网络中确定待处理的原始卷积层,所述原始卷积层包括多个卷积核,每个卷积核对应所述原始卷积层的一个输出通道;
选择器配置模块102,用于为所述原始卷积层设置激活函数选择器,并为所述原始卷积层的每个输出通道配置多个候选激活函数;
目标激活函数确定模块103,用于训练所述激活函数选择器,并利用训练完成的激活函数选择器,从每个输出通道对应的多个候选激活函数中,确定该输出通道的目标激活函数;
原始卷积层拆分模块104,用于根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支,其中,同一卷积分支中的各个卷积核所对应的输出通道的目标激活函数的类型相同。
可选地,每个输出通道的多个候选激活函数中,包括线性激活函数和非线性激活函数;所述原始卷积层拆分模块具体用于:根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为第一卷积分支和第二卷积分支,其中,第一卷积分支中的各个卷积核所对应的输出通道的目标激活函数均为非线性激活函数,第二卷积分支中的各个卷积核所对应的输出通道的目标激活函数均为线性激活函数。
可选地,所述装置还包括:
附加卷积层增设模块,用于在训练所述激活函数选择器之前,在所述激活函数选择器后增设附加卷积层,所述附加卷积层包括多个卷积核,每个卷积核包括多个卷积子层,每个卷积子层对应所述原始卷积层的一个输出通道,所述附加卷积层的输入为所述原始卷积层的输出,所述附加卷积层的输入与输出相同;
附加卷积层拆分模块,用于在将所述多个卷积核划分为第一卷积分支和第二卷积分支之后,针对所述附加卷积层的每个卷积核,将该卷积核拆分为第一子卷积核和第二子卷积核,并将所述第一子卷积核划入所述第一卷积分支,将所述第二子卷积核划入所述第二卷积分支,其中,第一子卷积核中的每个卷积子层对应的输出通道的目标激活函数均为非线性激活函数,第二子卷积核中的每个卷积子层对应的输出通道的目标激活函数均为线性激活函数。
可选地,所述装置还包括:
卷积层变形模块,用于在将所述附加卷积层的每个卷积核拆分后,对拆分至所述第一卷积分支的第一子卷积核的大小进行扩大,扩大后的第一子卷积核的中心区域的权值等于扩大前的第一子卷积核的权值,扩大后的第一子卷积核的外围区域的权值等于0;其中,所述扩大后的第一子卷积核的中心区域的大小,与扩大前的第一子卷积核的大小相同。
可选地,所述装置还包括:
卷积层合并模块,用于在将所述附加卷积层的每个卷积核拆分后,对拆分至所述第二卷积分支的第二子卷积核与所述第二卷积分支中的所述原始卷积层的卷积核进行合并,得到合并卷积层。
可选地,所述原始卷积层确定模块还用于:将拆分至所述第一卷积分支的所有第一子卷积核共同作为另一个待处理的原始卷积层;或者,将所述初始神经网络中的其他卷积层,作为另一个待处理的原始卷积层。
可选地,所述原始卷积层确定模块还用于:将所述合并卷积层作为另一个待处理的原始卷积层;或者,将所述初始神经网络中的其他卷积层,作为另一个待处理的原始卷积层。
可选地,所述激活函数选择器中包括多组选择参数,每组选择参数对应所述原始卷积层的一个输出通道;所述目标激活函数确定模块包括:
选择参数更新子模块,用于将样本数据输入所述神经网络,通过所述神经网络和所述激活函数选择器对所述样本数据进行处理,获得所述神经网络输出的预测结果,并根据所述预测结果对所述激活函数选择器中的各组选择参数进行更新;
目标激活函数确定子模块,用于在对各组选择参数进行多轮更新后,针对所述原始卷积层的每个输出通道,根据该输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重,并将权重最大的候选激活函数确定为该输出通道的目标激活函数。
可选地,所述选择参数更新子模块在通过激活函数选择器对所述样本数据进行处理时,具体用于:在所述样本数据传递至所述原始卷积层后,所述激活函数选择器针对所述原始卷积层的每个输出通道,根据该输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重,并根据所述多个激活函数及其各自的权重,确定该输出通道将输出的特征数据。
可选地,每个输出通道对应的一组选择参数中包括多个选择参数,每个选择参数对应该通道的一个候选激活函数;所述激活函数选择器还包括第一衰减参数,所述第一衰减参数随着各组选择参数的更新轮次的增加,以指数衰减的方式逐渐趋近于0;所述选择参数更新子模块在确定该输出通道的多个候选激活函数各自的权重时,具体用于:将每个候选激活函数对应的选择参数与所述第一衰减参数之间的比值,带入softmax函数,以获得每个候选激活函数的权重。
可选地,所述装置还包括:
批归一化层增设模块,用于在训练所述激活函数选择器之前,在所述原始卷积层的未与批归一化层连接的情况下,在所述原始卷积层后新增批归一化层,所述批归一化层包括原始参数和第二衰减参数,其中,所述第二衰减参数随着各组选择参数的更新轮次的增加,以指数衰减的方式逐渐趋近于0;
参数初始化模块,用于按照预设条件,初始化所述原始参数和所述第二衰减参数,所述预设条件为:在对所述激活函数选择器进行第一轮训练期间,所述批归一化层的输入和输出相同。
可选地,所述装置还包括:
训练和应用模块,用于对经过处理后的初始神经网络进行训练,并利用训练后的神经网络模型进行分类或图像检测。
本发明实施例还提供了一种电子设备,可以包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如本发明实施例所述的一个或多个的神经网络处理方法。
本发明实施例还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如本发明实施例所述的神经网络处理方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种神经网络处理方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种神经网络处理方法,其特征在于,所述方法包括:
从初始神经网络中确定待处理的原始卷积层,所述原始卷积层包括多个卷积核,每个卷积核对应所述原始卷积层的一个输出通道;
为所述原始卷积层设置激活函数选择器,并为所述原始卷积层的每个输出通道配置多个候选激活函数;
训练所述激活函数选择器,并利用训练完成的激活函数选择器,从每个输出通道对应的多个候选激活函数中,确定该输出通道的目标激活函数;所述激活函数选择器中包括多组选择参数,每组选择参数对应所述原始卷积层的一个输出通道;
根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支,其中,同一卷积分支中的各个卷积核所对应的输出通道的目标激活函数的类型相同;
其中,所述确定该输出通道的目标激活函数的步骤,包括:
将样本数据输入所述神经网络,通过所述神经网络和所述激活函数选择器对所述样本数据进行处理,获得所述神经网络输出的预测结果,并根据所述预测结果对所述激活函数选择器中的各组选择参数进行更新;
在对各组选择参数进行多轮更新后,针对所述原始卷积层的每个输出通道,根据该输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重,并将权重最大的候选激活函数确定为该输出通道的目标激活函数。
2.根据权利要求1所述的方法,其特征在于,每个输出通道的多个候选激活函数中,包括线性激活函数和非线性激活函数;所述根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支的步骤,包括:
根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为第一卷积分支和第二卷积分支,其中,第一卷积分支中的各个卷积核所对应的输出通道的目标激活函数均为非线性激活函数,第二卷积分支中的各个卷积核所对应的输出通道的目标激活函数均为线性激活函数。
3.根据权利要求2所述的方法,其特征在于,在训练所述激活函数选择器之前,所述方法还包括:
在所述激活函数选择器后增设附加卷积层,所述附加卷积层包括多个卷积核,每个卷积核包括多个子卷积核,所述附加卷积层的输入数据为所述原始卷积层的输出数据;
在将所述原始卷积层的多个卷积核划分为第一卷积分支和第二卷积分支之后,所述方法还包括:
针对所述附加卷积层的每个卷积核,根据所述原始卷积层的多个输出通道各自的目标激活函数,将该卷积核的多个子卷积核拆分为两部分,分别为第一部分和第二部分,并将所述第一部分的子卷积核划入所述第一卷积分支,将所述第二部分的子卷积核划入所述第二卷积分支,其中,所述第一部分的每个子卷积核对应的原始卷积层输出通道的目标激活函数均为非线性激活函数,所述第二部分的每个子卷积核对应的原始卷积层输出通道的目标激活函数均为线性激活函数。
4.根据权利要求3所述的方法,其特征在于,在将所述附加卷积层的每个卷积核的多个子卷积核拆分为两部分之后,所述方法还包括:
对划入至所述第一卷积分支的子卷积核的大小进行扩大,扩大后的子卷积核的中心区域的权值等于扩大前的子卷积核的权值,扩大后的子卷积核的外围区域的权值等于0;其中,扩大后的子卷积核的中心区域的大小,与扩大前的子卷积核的大小相同。
5.根据权利要求3所述的方法,其特征在于,在将所述附加卷积层的每个卷积核的多个子卷积核拆分为两部分之后,所述方法还包括:
对划入至所述第二卷积分支的子卷积核与所述第二卷积分支中的所述原始卷积层的卷积核进行合并,得到合并卷积层。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
将拆分至所述第一卷积分支的所有子卷积核共同作为另一个待处理的原始卷积层;或者,将所述初始神经网络中的其他卷积层,作为另一个待处理的原始卷积层。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述合并卷积层作为另一个待处理的原始卷积层;或者,将所述初始神经网络中的其他卷积层,作为另一个待处理的原始卷积层。
8.根据权利要求1所述的方法,其特征在于,所述激活函数选择器对所述样本数据进行处理,包括:
在所述样本数据传递至所述原始卷积层后,所述激活函数选择器针对所述原始卷积层的每个输出通道,根据该输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重,并根据所述多个候选激活函数及其各自的权重,确定该输出通道将输出的特征数据。
9.根据权利要求8所述的方法,其特征在于,每个输出通道对应的一组选择参数中包括多个选择参数,每个选择参数对应该通道的一个候选激活函数;所述激活函数选择器还包括第一衰减参数,所述第一衰减参数随着所述各组选择参数的更新轮次的增加,以指数衰减的方式逐渐趋近于0;
所述根据输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重的步骤,包括:
将每个候选激活函数对应的选择参数与所述第一衰减参数之间的比值,带入softmax函数,以获得每个候选激活函数的权重。
10.根据权利要求1所述的方法,其特征在于,在训练所述激活函数选择器之前,所述方法还包括:
在所述原始卷积层未连接有批归一化层的情况下,在所述原始卷积层后新增批归一化层,所述批归一化层包括原始参数和第二衰减参数,其中,所述第二衰减参数随着所述各组选择参数的更新轮次的增加,以指数衰减的方式逐渐趋近于0;
按照预设条件,初始化所述批归一化层的原始参数和所述第二衰减参数,其中,所述预设条件为:在对所述激活函数选择器进行第一轮训练期间,所述批归一化层的输入和输出相同。
11.根据权利要求1至10任一所述的方法,其特征在于,所述方法还包括:
对经过处理后的初始神经网络进行训练,并利用训练后的神经网络模型进行分类或图像检测。
12.一种神经网络处理装置,其特征在于,所述装置包括:
原始卷积层确定模块,用于从初始神经网络中确定待处理的原始卷积层,所述原始卷积层包括多个卷积核,每个卷积核对应所述原始卷积层的一个输出通道;
选择器配置模块,用于为所述原始卷积层设置激活函数选择器,并为所述原始卷积层的每个输出通道配置多个候选激活函数;
目标激活函数确定模块,用于训练所述激活函数选择器,并利用训练完成的激活函数选择器,从每个输出通道对应的多个候选激活函数中,确定该输出通道的目标激活函数;所述激活函数选择器中包括多组选择参数,每组选择参数对应所述原始卷积层的一个输出通道;
原始卷积层拆分模块,用于根据多个输出通道各自的目标激活函数的类型,将所述原始卷积层的多个卷积核划分为多个卷积分支,其中,同一卷积分支中的各个卷积核所对应的输出通道的目标激活函数的类型相同;
其中,所述目标激活函数确定模块具体包括:
选择参数更新子模块,用于将样本数据输入所述神经网络,通过所述神经网络和所述激活函数选择器对所述样本数据进行处理,获得所述神经网络输出的预测结果,并根据所述预测结果对所述激活函数选择器中的各组选择参数进行更新;
目标激活函数确定子模块,用于在对各组选择参数进行多轮更新后,针对所述原始卷积层的每个输出通道,根据该输出通道对应的当前选择参数,确定该输出通道的多个候选激活函数各自的权重,并将权重最大的候选激活函数确定为该输出通道的目标激活函数。
13.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如权利要求1-11任一所述的神经网络处理方法。
14.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1-11任一项所述的神经网络处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010313409.4A CN111680781B (zh) | 2020-04-20 | 2020-04-20 | 神经网络处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010313409.4A CN111680781B (zh) | 2020-04-20 | 2020-04-20 | 神经网络处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111680781A CN111680781A (zh) | 2020-09-18 |
CN111680781B true CN111680781B (zh) | 2023-07-25 |
Family
ID=72433690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010313409.4A Active CN111680781B (zh) | 2020-04-20 | 2020-04-20 | 神经网络处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111680781B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112801266B (zh) * | 2020-12-24 | 2023-10-31 | 武汉旷视金智科技有限公司 | 神经网络构建方法、装置、设备及介质 |
CN112836804A (zh) * | 2021-02-08 | 2021-05-25 | 北京迈格威科技有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN113361693B (zh) * | 2021-06-30 | 2022-10-25 | 北京百度网讯科技有限公司 | 生成卷积神经网络的方法和装置、图像识别方法和装置 |
CN113762221B (zh) * | 2021-11-05 | 2022-03-25 | 通号通信信息集团有限公司 | 人体检测方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228124A (zh) * | 2016-07-17 | 2016-12-14 | 西安电子科技大学 | 基于卷积神经网络的sar图像目标检测方法 |
CN107341518A (zh) * | 2017-07-07 | 2017-11-10 | 东华理工大学 | 一种基于卷积神经网络的图像分类方法 |
CN108169745A (zh) * | 2017-12-18 | 2018-06-15 | 电子科技大学 | 一种基于卷积神经网络的钻孔雷达目标识别方法 |
CN109117939A (zh) * | 2018-06-11 | 2019-01-01 | 西北大学 | 神经网络及在移动感知设备上部署神经网络的方法 |
CN110509109A (zh) * | 2019-07-16 | 2019-11-29 | 西安交通大学 | 基于多尺度深度卷积循环神经网络的刀具磨损监测方法 |
CN111008936A (zh) * | 2019-11-18 | 2020-04-14 | 华南理工大学 | 一种多光谱图像全色锐化方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107784654B (zh) * | 2016-08-26 | 2020-09-25 | 杭州海康威视数字技术股份有限公司 | 图像分割方法、装置及全卷积网络系统 |
CN110663971B (zh) * | 2018-07-02 | 2022-03-29 | 天津工业大学 | 基于双分支深度融合卷积神经网络的红枣品质分类方法 |
CN108830430A (zh) * | 2018-08-01 | 2018-11-16 | 苏州大学张家港工业技术研究院 | 用于交通流量预测的卷积神经网络多点回归预测模型 |
-
2020
- 2020-04-20 CN CN202010313409.4A patent/CN111680781B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106228124A (zh) * | 2016-07-17 | 2016-12-14 | 西安电子科技大学 | 基于卷积神经网络的sar图像目标检测方法 |
CN107341518A (zh) * | 2017-07-07 | 2017-11-10 | 东华理工大学 | 一种基于卷积神经网络的图像分类方法 |
CN108169745A (zh) * | 2017-12-18 | 2018-06-15 | 电子科技大学 | 一种基于卷积神经网络的钻孔雷达目标识别方法 |
CN109117939A (zh) * | 2018-06-11 | 2019-01-01 | 西北大学 | 神经网络及在移动感知设备上部署神经网络的方法 |
CN110509109A (zh) * | 2019-07-16 | 2019-11-29 | 西安交通大学 | 基于多尺度深度卷积循环神经网络的刀具磨损监测方法 |
CN111008936A (zh) * | 2019-11-18 | 2020-04-14 | 华南理工大学 | 一种多光谱图像全色锐化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111680781A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111680781B (zh) | 神经网络处理方法、装置、电子设备及存储介质 | |
TWI698807B (zh) | 以類別為基礎修剪之人工類神經網路 | |
WO2017116924A1 (en) | Neural network training performance optimization framework | |
US20210012183A1 (en) | Method and device for ascertaining a network configuration of a neural network | |
CN107766292B (zh) | 一种神经网络处理方法及处理系统 | |
KR102532748B1 (ko) | 뉴럴 네트워크 학습 방법 및 장치 | |
CN110209857B (zh) | 基于神经网络结构搜索的车辆多属性识别方法、装置、介质 | |
CN113570029A (zh) | 获取神经网络模型的方法、图像处理方法及装置 | |
CN115511069A (zh) | 神经网络的训练方法、数据处理方法、设备及存储介质 | |
CN114066899A (zh) | 图像分割模型训练、图像分割方法、装置、设备及介质 | |
CN111210017B (zh) | 确定布局顺序及数据处理的方法、装置、设备及存储介质 | |
CN111079900B (zh) | 一种基于自适应连接神经网络的图像处理方法及装置 | |
CN110852414A (zh) | 高精度低位卷积神经网络 | |
US20200293864A1 (en) | Data-aware layer decomposition for neural network compression | |
KR102365270B1 (ko) | 희소 신경망 생성 방법 및 이를 위한 시스템 | |
AU2021103314A4 (en) | Remote sensing image scene classification method based on deep neural network automatic learning | |
CN111402164B (zh) | 矫正网络模型的训练方法和装置、文本识别方法和装置 | |
CN114756680A (zh) | 一种文本分类方法、系统、电子设备及存储介质 | |
TWI819005B (zh) | 用於執行乘法運算的計算單元、方法、電腦程式、機器可讀取儲存元件和產品 | |
CN114365155A (zh) | 具有快速逐点卷积的高效推断 | |
JP6993250B2 (ja) | コンテンツ特徴量抽出装置、方法、及びプログラム | |
CN115658307B (zh) | 一种基于压缩数据直接计算的智能负载处理方法和系统 | |
CN112699928B (zh) | 基于深度卷积网络的非机动车检测和识别方法 | |
EP4137996A1 (en) | Method for training a neural network | |
WO2021111831A1 (ja) | 情報処理方法、情報処理システム及び情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |