二进制神经网络正则化的设备、方法和系统
文献发布时间:2023-06-19 13:46:35
技术领域
本发明涉及神经网络领域,具体地涉及二进制神经网络(binary neuralnetwork,BNN)。本发明涉及BNN的正则化。为此,本发明提出了一种用于BNN正则化的设备和方法。例如,所述设备或方法可以用于训练BNN的系统中。
背景技术
现代卷积神经网络(convolutional neural network,CNN)用于解决大量的业务任务,包括图像分类、对象检测、销售预测、客户研究、数据验证、风险管理等。准确的CNN的训练是一个困难、复杂的过程,事实上,是商业项目和科学调查成功的关键部分。传统上,L
如今,移动技术正在迅速从用于电话和消息传递的简单配件发展到多任务设备,这些设备不仅用于导航、互联网浏览和即时消息,还用于图像分类、对象检测或自然语言处理等智能任务。这些解决方案需要紧凑、低功耗和鲁棒的BNN。在具有高速、小尺寸和有限的能量使用等优点的同时,BNN具有以下缺点:使用传统的正则化方法,不可能减少其过拟合并提高其准确度。传统的正则化方法是针对浮点权重开发的,不能影响BNN的二进制权重,所述二进制权重由两个固定数字(例如,1和–1)表示。
因此,训练紧凑、鲁棒且准确的BNN需要新的、有效的正则化解决方案。
为了开发一个有效的BNN训练系统,首先需要选择适当的二进制权重正则化原则。然后,必须基于所选择的原则,提供新的、高效的正则化解决方案,以提高BNN的准确度。
解决方案应具有以下特征:
·面向二进制:提高BNN的信息容量和预测准确度;
·多阶段:在训练的不同阶段为BNN正则化提供若干高效的方法;
·层特定:为BNN的单独单元的正则化提供高效的方法;
·高效:保证对训练后的BNN进行实时正则化。
如上所述,传统上使用L1/L2惩罚和权重衰减正则化方法。
在机器学习领域,具体地在人工神经网络训练过程中,正则化是一种引入附加信息的方法,以防止过拟合,即预测结果与有限的训练数据点集的拟合太接近。正则化方法可以减少过拟合,即使训练数据的数量基本上是有限的。正则化的一般理念是在成本函数中添加一个额外的项,称为正则化项或惩罚。在传统的L
直观地,正则化的效果是说服网络在学习过程期间保持较小的权重。如何较大的权重会显著降低预测误差,则允许使用较大的权重。从另一个角度来看,正则化可以被视为在寻找小权重与最大程度减小原始成本函数之间进行妥协的一种方式。
另一种传统的方法是权重衰减,它是在权重更新后将每个权重按因子(即,介于0与1之间的值)进行缩放。权重衰减可以与基于梯度的更新解耦,并可以在训练循环中单独执行。图10示出在卷积神经网络训练的公共循环中传统L
但是,上述正则化方法不能应用于BNN的二进制权重,这是因为不可能减小两个固定数的绝对值,而且由于在相对于0对称的值(例如,权重1和–1)的情况下,权重的绝对值的总和是恒定的,因此考虑权重的绝对值的总和是没有意义的。
因此,主要问题是传统的L
发明内容
鉴于上述问题,本发明实施例旨在改进传统的BNN训练。目的是提供一种BNN正则化的设备和方法。因此,应提供面向二进制权重的正则化,以提高BNN的信息容量和预测准确度。此外,BNN正则化的几个不同实施例应该可用,从而可以在BNN的不同阶段可高效进行。本发明实施例还应涵盖不同的正则化策略,从二进制权重的主动正则化(例如,在训练过程开始时,此时权重分布几乎均匀)到权重的精细、软正则化(例如,在训练结束时,此时权重分布可能倾斜)。
此外,本发明实施例应该为BNN的单独单元的正则化提供高效的解决方案,以便即使在复杂的异构网络的情况下也确保准确度得到提高。此外,应该可以进行高效、实时的BNN正则化。与传统解决方案相比,本发明实施例应该被优化以使用二进制权重操作,并通过保持二进制权重分布的信息容量来提供更好的准确度和更小的过拟合。
通过所附独立权利要求中描述的本发明实施例实现所述目的。在从属权利要求中进一步定义本发明实施例的有利实现方式。
具体地,根据最大熵原则,本发明实施例提出了三种用于扩大BNN的信息容量的方法:
·对BNN中的权重分布的信息熵损失进行惩罚。
·通过减少权重分布的信息熵,具体地通过提升反向传播梯度,增加BNN的一个或多个层中的权重翻转的概率。
·将普通权重随机替换为BNN的次要权重。
本发明的第一方面提供了一种用于BNN正则化的设备,其中,所述设备用于:获取所述BNN的二进制权重;使用反向传播方法更改所述BNN的所述二进制权重,其中,更改所述二进制权重增加了或最低程度地减少了所述权重的权重分布的信息熵。
值得注意的是,BNN在训练开始时具有最大的信息熵,在训练过程中信息熵可能会自然减少。但是,所述第一方面的设备至少最低程度地减少了信息熵,并且在一些情况下甚至可以增加信息熵。因此,BNN的信息容量和预测准确度得到显著提高。因此,所述设备提供了一种高效的BNN正则化方法。
在所述第一方面的一种实现方式中,所述反向传播方法包括对在所述BNN的训练期间获取的误差梯度进行反向传播。
在所述第一方面的一种实现方式中,所述设备用于:单独对所述BNN的至少一个滤波器或层更改所述BNN的所述二进制权重。
因此,可以对BNN的单独单元进行正则化,从而在复杂的异构网络的情况下也确保准确度得到提高。
在所述第一方面的一种实现方式中,所述设备用于:在所述BNN的训练期间实时地更改所述BNN的所述二进制权重。
在所述第一方面的一种实现方式中,所述设备用于通过以下方式更改所述BNN的所述二进制权重:针对所述BNN的一个或多个层,将至少一个普通权重随机替换为少数权重。
这直接增加了一个或多个层中的信息容量,因此是一种简单的方法。这种方法特别适合训练的开始。
在所述第一方面的一种实现方式中,所述设备用于通过以下方式更改所述BNN的所述二进制权重:确定所述BNN的多个层中的每一层的权重分布;根据所述确定的权重分布,为所述多个层中的每一层确定信息熵;增加所述多个层中的每一层的反向传播梯度,其中,所述多个层中的每一层的信息熵被确定为低于某一阈值。
提升反向传播梯度可用于在训练的不同阶段(具体地在中间阶段)准确地保持信息容量。梯度的提升增加了权重翻转的概率。
在所述第一方面的一种实现方式中,所述设备用于:将给定层的反向传播梯度增加与所述BNN的下一层中的信息熵损失成正比的值。
在所述第一方面的一种实现方式中,所述设备用于通过以下方式更改所述BNN的所述二进制权重:确定所述BNN的一个或多个层和/或滤波器的一个或多个权重分布,或确定整个BNN的权重分布;根据每个确定的权重分布确定信息熵;根据所述一个或多个确定的信息熵,对用于训练所述BNN的成本函数附加惩罚项。
这种方法非常适用于整个BNN训练。这种方法是增加、保持或最低程度地减少BNN的信息容量的最自然和最软的方式。
在所述第一方面的一种实现方式中,所述设备用于:根据所述一个或多个确定的信息熵确定信息损失;将所述信息损失作为惩罚项附加到所述成本函数中。
在所述第一方面的一种实现方式中,所述设备用于:确定相对于所述一个或多个权重分布的最大信息熵的信息损失,或相对于恒定值的信息损失。
本发明的第二方面提供了一种用于训练BNN的系统,所述系统包括:用于获取和训练所述BNN的训练设备,以及根据第一方面或其任一实现方式的设备。
因此,训练系统可以应用上述方法的任一种或其任何组合,以增加、保持或最低程度地减少所述BNN的信息容量。因此,所述训练系统具有上述优点。
在所述第二方面的一种实现方式中,根据第一方面或其任一实现方式所述的设备包括在所述训练设备和/或更新设备中,其中:所述训练设备用于通过以下方式更改所述BNN的所述二进制权重:确定所述BNN的一个或多个层和/或滤波器的一个或多个权重分布,或确定整个BNN的权重分布,根据每个确定的权重分布确定信息熵,根据所述一个或多个确定的信息熵,对用于训练所述BNN的成本函数附加惩罚项;所述更新设备用于通过以下方式中的至少一种更改所述BNN的所述二进制权重:将至少一个普通权重随机替换为少数权重,确定所述BNN的多个层中的每一层的权重的权重分布,根据所述确定的权重分布,为所述多个层中的每一层确定信息熵,增加每一层的反向传播梯度,其中,所述每一层的信息熵被确定为低于某一阈值。
在所述第二方面的一种实现方式中,所述系统还包括以下各项中的一项:终端设备,用于向所述训练设备提供所述BNN;预测设备,用于根据由所述BNN产生并从所述训练设备接收的训练后的数据提供预测结果;数据存储器,用于存储所述BNN和/或训练数据和/或所述训练后的数据。
本发明的第三方面提供了一种用于BNN正则化的方法,其中,所述方法包括:获取所述BNN的二进制权重;使用反向传播方法更改所述BNN的所述二进制权重,其中,更改所述二进制权重增加了或最低程度地减少了所述权重的权重分布的信息熵。
所述第三方面的方法可以具有与所述第一方面的设备的实现方式相对应的实现方式。因此,第三方面的方法实现了上述所述第一方面的设备的所有优点和效果。
本发明的第四方面提供了一种计算机程序产品,所述计算机程序产品包括程序代码,所述程序代码用于控制根据第一方面或其任一实现方式所述的设备,或用于控制根据第二方面或其任一实现方式所述的系统,或用于在处理器上实现时执行根据第三方面所述的方法。
需要说明的是,本申请中所述的所有设备、元件、单元和构件都可以在软件或硬件元件或其任何种类的组合中实现。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。虽然在以下具体实施例的描述中,由外部实体执行的特定功能或步骤没有在执行该特定步骤或功能的该实体的具体详述元件的描述中反映,但是技术人员应该清楚,这些方法和功能可以在相应的硬件或软件元件或其任意组合中实现。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现方式。
图1示出了本发明实施例提供的用于BNN正则化的设备。
图2示出了本发明实施例提供的用于BNN正则化的一般方法。
图3示出了根据信息损失惩罚增加或最低程度地减少BNN的信息容量的方法。
图4示出了在信息熵损失大的层中增加或最低程度地减少BNN的信息容量的方法。
图5示出了通过权重替换增加或最低程度地减少BNN的层中信息容量的方法。
图6示出了本发明实施例提供的实现用于在公共训练循环中保持或增加BNN的信息容量的不同方案的设备。
图7示出了本发明实施例提供的用于训练BNN的系统。
图8示出了本发明实施例提供的用于训练BNN的系统。
图9示出了使用BNN进行自动图像分割的示例。
图10示出了一种卷积神经网络训练中的公共循环。
具体实施方式
图1示出了本发明实施例提供的设备100。设备100用于执行正则化或用于控制BNN101的正则化。该设备可以在用于训练BNN 101的系统的训练单元和/或更新单元中实现。设备100可以包括处理电路(未示出),该处理电路用于执行、进行或启动本文所述的设备100的各种操作。所述处理电路可以包括硬件和软件。所述硬件可以包括模拟电路或数字电路,或模拟电路和数字电路两者。数字电路可以包括专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)、数字信号处理器(digital signal processor,DSP)或多用途处理器等组件。在一个实施例中,处理电路包括一个或多个处理器和连接到所述一个或多个处理器的非瞬时性存储器。所述非瞬时性存储器可携带可执行程序代码,当所述可执行程序代码由所述一个或多个处理器执行时,使设备100执行、进行或启动本文所述的操作或方法。
设备100用于获得BNN 101的二进制权重102,例如从训练单元接收或根据分析BNN101确定所述二进制权重102。此外,设备100用于使用反向传播方法103更改BNN 101的二进制权重102。反向传播方法103可以基于传统的反向传播方法103,并且可以包括对在BNN 101的训练期间获得的误差梯度的反向传播。设备100具体地用于更改BNN 101的二进制权重102,使得权重102的权重分布的信息熵增加、保持,或者至少最低程度地减少信息熵。
图2示出了本发明的一个实施例提供的方法200。方法200用于BNN 101的正则化,并且可以由图1所示的设备100(或由图7所示的系统700)执行。方法200包括:获取(201)BNN101的二进制权重102;以及使用反向传播方法103更改(202)BNN 101的二进制权重102。更改(202)二进制权重102增加了或最低程度地减少了(203)权重102的权重分布的信息熵。
图3示出了利用图1的设备100或图2的方法200通过使用信息损失惩罚来增加或最低程度地减少BNN 101的信息容量的方法。
由于现有的正则化方法不能影响二进制权重的分布,因此本发明实施例提供的设备100和方法200是基于最大熵原则。根据最大熵原则,最能代表知识当前状态的概率分布是具有最大信息熵的概率分布。根据信息熵的定义,其值越高,系统中的潜在信息量就越大。为了简化以下描述,术语“信息容量”用于表示BNN 101中的潜在信息量。
为了保持BNN 101的较大信息容量(较高信息熵),可以对信息熵损失使用惩罚。这种用于增加(或最低程度地减少)信息容量的相对简单的方法可以包括如图3所示的四个步骤。
1.该方法从检索(301)BNN 101的二进制权重102分布的信息熵开始。可以为完整网络(BNN 101)或为网络的每个单元(即,例如,每层,BNN 101的滤波器)获得信息熵。
2.然后,获得(302)信息损失,作为二进制权重102分布相对于二进制分布的最大信息熵(优选从理论角度来看)或相对于任何常数值的信息熵损失。如果为BNN101的单独元件获得信息损失,则总信息损失可以计算为损失的总和。
3.将信息损失附加(303)到成本函数,作为对BNN 101信息容量减少的惩罚。
4.然后,可以应用(304)任何已知的反向传播方法103,以用于使用所提出的惩罚来训练BNN 101。
例如,现在提出了该方法的可行数值实现,以增加BNN 101的信息容量。
网络的二进制权重∈{1,–1}的信息熵可以表示为:
其中,N是权重的数量,w
信息损失的可扩展值可以表示为:
I
其中,k是预定义的常数,H
惩罚可以以标准方式附加到成本函数:
成本函数=损失+I
将惩罚附加到成本函数是人工神经网络正则化的一种相当常见的方法。因此,使用信息损失惩罚被认为是BNN 101中信息容量保持的最自然和最软的方式。该方法可以单独应用,以用于在所有训练程序期间保持信息容量,也可以仅涵盖训练过程的一部分,并可与下文所述的其它方法一起使用。
图4示出了利用图1的设备100或图2的方法200在信息熵损失较大的层中增加或最低程度地减少BNN 101的信息容量的方法。具体地,启发式方法包括提升400某些层的反向传播梯度401,其中,权重分布的信息熵被减少,具体地低于特定阈值。增加梯度值提高了这些层中权重翻转的概率,而权重分布的信息熵较低,从而使得二进制权重102更均匀地分布。
该方法可以实现为将反向传播梯度401扩大与层中信息熵的损失成比例的值。该方法的可行数值实现的一个示例是:
梯度*=1+I
其中,梯度是反向传播梯度401的张量。
该方法适用于在网络训练的不同阶段,特别是在训练过程的中间阶段,准确地保持信息容量。
图5示出了利用图1的设备100或图2的方法200通过权重替换(即直接方式)增加或最低程度地减少BNN 101的层中信息容量的方法。最大的信息熵对应于值(此处为二进制权重102)的均匀分布。为了保持二进制权重102的均匀分布,可以将普通权重随机替换500为次要权重,以这种方式支持BNN 101的信息容量。
例如,可行的数值实现在量上可以表示为普通权重的随机翻转:
N=k*|w
其中,0 这种粗略的方法可以在训练开始时、当随机初始化的权重具有几乎均匀分布时,或在二进制网络训练的任何其它阶段使用。 图6示出了本发明实施例提供的用于实现用于在公共训练循环中保持或增加BNN101的信息容量的不同方案的设备100。具体地,设备100在网络训练的公共循环中使用上述用于增加或最低程度地减少BNN 101的信息容量的三种方法。 作为输入,除了训练参数以及初始化方法外,还可以进行网络图的配置。然后,设备100可以执行以下步骤: 1.基于输入配置生成网络图。 2.使用输入初始化方法准备二进制权重102。 3.训练BNN 101,直到满足停止标准: a.提供输入模式,获得输出值和反向传播梯度401。 b.使用反向传播方法103更新BNN 101的权重102,从而使用三种方法中的至少一种增加二进制权重102的信息熵: ·向成本函数附加(303)惩罚项,例如二进制权重分布的信息熵的损失; ·提升400权重分布的信息熵减少的层的反向传播梯度401; ·将反向传播梯度401增加400与下一层中的信息熵的损失成比例的值; ·将普通权重102随机替换500为次要权重102。 图7示出了本发明的一个实施例提供的系统700。系统700相应地基于上述设备100和方法200,具体地基于增加或最低程度地减少BNN 101的信息容量的各种方法。系统700可以包括以下实体(或单元): 1.终端实体703,用于向训练实体701提供BNN 101,从数据实体705接收BNN 101和/或从预测实体704接收预测结果。终端实体703可以通过网络/云706(例如,计算机网络)连接到训练实体701、数据实体705和/或预测实体704。也就是说,BNN 101和/或预测结果可以通过网络/云706交换。BNN 101还可以在网络/云706中驻留或训练。 2.训练实体701,用于控制训练循环:检查停止标准,计算损失,并向/从更新实体700发送/接收BNN 101,向数据实体705发送训练后的BNN 101,并从数据实体705接收训练后的数据。 3.更新实体700,用于更新BNN 101权重102,增加权重分布的信息熵(使用所提出的一种方法),并将BNN 101发送回训练实体701。该实体700可以实现用于BNN101正则化的所有三种方法。但是,一个或多个方法也可以由训练实体701执行,具体地将惩罚项附加(303)到成本函数。更新实体700和训练实体701包括在一个实体中,也可以是一个公共实体。 4.数据实体705,用于从训练实体701或终端实体703保存BNN 101,以及从终端实体703保存训练数据/测试数据,向训练实体701提供训练数据和/或BNN 101,向预测实体704提供测试数据和/或BNN 101。 5.预测实体704,用于从终端实体703或数据实体705接收测试后的数据和BNN101,并为终端实体703提供预测结果。 图8示出了本发明实施例提供的可以构建在图7所示的系统700上的系统700。也就是说,图8的系统700可以实现为保持如图7所示的二进制神经网络的信息容量的系统。具体地,系统700用于保持BNN 101的信息容量。 该系统700可以包括以下组件(或实体/单元): 1.初始化组件/初始化实体800,用于初始化网络图、权重102和周期(epoch)值。 2.训练组件/训练实体701,用于控制训练循环。 3.更新组件/更新实体702,用于随着BNN 101的信息容量的增加更新权重102。 系统700的组件/实体之间的关系可以是: 1.初始化组件800将BNN 101和训练参数发送到训练组件701。 2.训练组件701将BNN 101输出和网络本身发送到更新组件702,并从更新组件702接收具有更新后的权重102的BNN 101。 3.更新组件702从训练组件701接收BNN 101输出和网络本身,并将更新后的BNN101发送到训练组件701。 根据上面给出的设备100、方法200和系统700的一般规范,现在将描述它们的细节。因此,认为对于具体的预测任务,需要指定网络图的配置,需要选择训练参数(即学习速率和动量),需要执行初始化方法(即二进制值的随机生成器),并且必须有训练数据集可用。 ·步骤1:基于输入网络配置,生成BNN 101的计算图。 ·步骤2:应用初始化方法,以在BNN 101的每个元件(层/滤波器)中生成权重102。对于初始化,可以使用二进制值的随机生成器,或者更复杂的方法,这些方法可以在网络训练开始时定义收敛速度。 ·步骤3:例如按以下方式执行BNN 101的训练,直到满足停止标准(允许迭代次数,达到所需的准确度水平)。从训练数据集中,选择一批输入模式,并且所述一批输入模式对应于输出的预期值。然后,向BNN 101提供输入模式,执行正向计算,并获得预测值作为BNN 101的输出。使用输出值以通过反向传播方法103训练BNN101,该方法具有以下至少一项改进,以支持BNN 101的信息容量: 1.使用整个BNN 101中权重分布的信息熵损失的惩罚项或BNN 101的所有功能元件(即,滤波器、单独的层或层块)中权重分布的信息熵损失的总和来丰富(303)反向传播方法103的成本函数。 2.在权重分布的信息熵减少的层之前提升400反向传播梯度401。这可以谨慎地执行,即对于其中主要二进制权重与少数二进制权重之间的比率高于预定义阈值的层;或者连续地执行,即通过对每个层将反向传播梯度401增加400与该层中信息熵损失成比例的值。 3.将普通权重102随机替换为次要权重102,直到满足停止标准。作为停止标准,可以考虑整个BNN 101中或网络的每个功能元件(即,滤波器、单独的层或层块)中两种类型的权重102的数量之间的平衡。或者,在整个BNN 101中,或在网络的每个功能元件(即滤波器、单独层或层块)中,实现主要权重和次要权重102的数量之间的比率的预定义阈值。 参考图7,系统700可以例如在BNN 101的训练期间,例如在网络/云706中保持BNN101的信息容量,如下所述。在训练过程开始之前,通过终端实体703加载训练/测试数据集作为输入数据,并保存到数据实体705的数据库/文件系统中。然后,提供BNN 101的配置,连同训练参数作为输入数据,并且在训练实体701上启动训练循环。在训练循环的每次迭代期间,训练实体701使用更新实体702更新BNN 101的二进制权重102。最后一个方法使用反向传播方法103(例如,Adam优化器)以及用于保持BNN 101信息容量的至少一种方法,以这种方式减少过拟合并提高训练网络的准确度。在训练过程期间,BNN 101在通过预定义次数的交互之后定期保存到数据实体705。训练后的神经网络101可以通过终端实体703从数据实体705中检索为输出对象,或者可以在系统700内部用于预测,该预测由预测实体704执行。 下面提供了应用到业务任务的示例。通常,用于增加信息容量、提高准确度和减少过拟合的设备100、方法200和系统700适用于以下领域中的各种各样的现代BNN 101: ·计算机视觉,包括但不限于场景重建、事件检测、视频跟踪、物体识别、运动估计、图像复原;物体分类、识别、定位、检测或分割;语义分割、基于内容的图像检索、光学字符识别、人脸识别、形状识别技术、运动分析、场景重建、图像预处理、特征提取、图像理解、2D码读取、2D和3D姿态估计。 ·自然语言处理,包括但不限于语法归纳、词义化、形态学分割、词性标记、解析、句子边界消歧、分词、术语提取、词汇语义、机器翻译、命名实体识别、自然语言生成、自然语言理解、光学字符识别、问题回答、识别文本蕴涵、关系提取、情感分析、主题分割和识别、词义消歧、自动总结、会议决议、话语分析、语音识别、语音分割、文本到语音处理、电子邮件垃圾邮件过滤。 ·系统识别和控制,包括但不限于车辆控制、轨迹预测、过程控制、自然资源管理。 ·推荐系统。 ·数据挖掘。 ·玩游戏。 ·金融欺诈检测和自动交易系统。 ·医学诊断和药物开发。 ·客户关系管理和社交网络过滤。 第一个示例是训练具有高信息容量的BNN 101,以增强例如在数码照片上的时装模特的图像。 考虑所述系统和方法在时装模特组合的图像增强过程中的利用(见图9)。使用系统700来训练具有高信息容量和适当准确度的BNN 101以进行图像风格化任务的特别之处在于包括两个步骤,即自动图像分割和提高数字照片上时装模特图像的质量。跳过不使用过程特定数据进行操作的步骤。 用于保持BNN 101的信息容量的系统700的过程特定输入由具有时装模特图像和每个图像的实际二进制掩膜的训练数据集表示。二进制掩膜具有对应于时装模特本身的白色像素和对应于背景对象的黑色像素。二进制卷积神经网络101的配置由自编码机表示,该自编码机由35个层组成,其中,SqueezeNet作为其主干架构。使用PyTorch框架(用于Python的基于Torch的开源机器学习库)在10000周期期间在GeForce GTX Titan GPU上执行训练过程,并检索训练后的网络作为系统700的输出。 BNN 101运行在移动设备上。该网络101将时装模特的数码照片作为输入,生成二进制掩膜,该二进制掩膜用于增加数码照片上模特图像的清晰度和亮度,并用于模糊背景对象。作为保持信息容量的结果,训练后的二进制神经网络101提供的组合图像与全精度32位神经网络提供的组合图像无法区分,而组合图像质量的提高减少了32倍的内存,并在低功耗下工作速度提高了数倍。 第二个示例是训练具有高信息容量的BNN 101来回答生化问题。 生化问题回答是信息检索和自然语言处理领域的一项领域特定任务。专业生物化学家从生化词汇表、手册和维基百科页面中检索用于训练二进制神经网络101和知识数据库的结构化文本(带有问题和答案的段落)集。用于保持二进制神经网络的信息容量的装置的过程特定输入包括训练数据,即带有问题和答案的段落集。二进制卷积神经网络的配置可以用QANet网络表示,其中,所有卷积都是二值化的。最大回答长度可以设置为30。可以使用预训练的300-D GLoVe字向量。使用TensorFlow框架(用于数据流和跨一系列任务的可微编程的开源软件库)在300000周期期间在GeForce GTX Titan GPU上执行训练过程。检索BNN 101,作为系统700的输出。 问题回答设备(领域特定的垂直应用程序)由现场可编程门阵列技术生成,并利用准备好的知识库检索正确答案。创建的设备帮助实习生在试用期内在生化实验室中培养他们的能力,并为从事新生化研究的专业人员提供快速提示。BNN 101在训练期间保持信息容量,从而产生了有效的设备,该设备的工作速度比全精度版本的工作速度快数倍,并显示出低功耗。 第三个示例是训练具有高信息容量的BNN 101,以控制自动驾驶出租车。 自动驾驶出租车是一种能够感知其环境并在没有人工输入的情况下移动的车辆。使用自动驾驶出租车的潜在好处包括降低成本、提高安全性和移动性、提高客户满意度和减少犯罪。 用于保持BNN 101的信息容量的系统700的过程特定输入包括训练数据,即来自前置相机的图像、来自雷达、LIDAR和车的超声波传感器的数据,以及人类司机记录的时间同步的行驶速度和转向角度。二进制卷积神经网络的配置通过用于自动驾驶系统的基于PilotNet的架构表示,其中,所有卷积和全连接层都是二进制化的。使用PyTorch框架,在5000周期期间在GeForce GTX Titan GPU上执行训练过程。检索网络,作为系统700的输出。 BNN 101在基于Linux的机器人操作系统下运行,提供实时出租车驾驶,并控制行驶速度和转向角度。在训练过程期间保持信息容量得到有效控制驾驶过程的网络。与具有相同架构的全精度版本网络相比,BNN 101的工作速度要快数倍。对不断变化的交通和出现的障碍物的快速反应(特别是在高速公路上)对乘客的安全以及行人的生命至关重要。 总之,本发明实施例由于BNN 101的信息容量的扩大而提高了BNN 101的预测准确度。具体地,实施例最大程度地减少了由于BNN 101的信息容量的部分恢复而在修剪BNN101之后的准确度损失。此外,由于学习了更一般的模式,这些实施例减少了过拟合。 已经结合作为实例的不同实施例以及实现方式描述了本发明。但是,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其它变化。在权利要求以及说明书中,词语“包括”不排除其它元件或步骤,且不定冠词“一”或“一个”不排除多个。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在互不相同的从属权利要求中列举某些措施并不表示这些措施的组合不能用于有益的实现方式。
- 二进制神经网络正则化的设备、方法和系统
- 用于正则化神经网络的系统和方法