首页 / 专利库 / 集成电路 / 专用集成电路 / 用于人工神经网络中比特深度减少的方法和系统

用于人工神经网络中比特深度减少的方法和系统

阅读:1032发布:2020-06-04

专利汇可以提供用于人工神经网络中比特深度减少的方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 提供的比特深度优化引擎降低了神经网络的 硬件 成本。当在训练程序期间将 训练数据 应用于神经网络时,产生 精度 成本和硬件成本。硬件复杂度成本生成器为靠近比特深度步阶的权重产生成本,其中比特深度步阶表示权重的二进制位数减少,例如从2N减到2N‑1,减少一个二进制比特。为每个权重产生成本梯度,靠近比特深度步阶的权重容易被选中,因为它们有大梯度,而远离比特深度步阶的权重有接近零的梯度。在优化期间减小选中的权重。在多个优化周期后,生成一个低比特 深度神经网络 ,其中每个权重使用较少的二进制位,使得当在专用集成 电路 (ASIC)上制作低比特深度神经网络时具有较低的硬件成本。,下面是用于人工神经网络中比特深度减少的方法和系统专利的具体信息内容。

1.一种集成电路(IC)产品,其通过以下方法制得,包括:
将权重的一个初始集合应用于神经网络,所述权重说明所述神经网络中的节点之间的连接;
(a)将训练数据应用于所述神经网络以产生神经网络结果;
从所述神经网络结果产生一个精度成本;所述精度成本是表示当前周期的输出与预期结果有多接近的一个测量;
产生所述权重的硬件复杂度成本,其中一个权重的硬件复杂度成本是从表示该权重所需的若干二进制比特生成;
通过优先选择靠近比特深度步阶的权重来选择用于减小的权重,其中减小靠近比特深度步阶的权重会将表示所述权重所需的二进制比特数减少一个二进制比特;所述比特深度步阶表示权重的二进制位数减少;
其中减少不靠近比特深度步阶的权重不会改变表示所述权重所需的二进制比特数;
更新所述权重以生成更新的权重,其中所述更新的权重包括在所述比特深度步阶附近所选择的用于减小的所述权重;
将所述更新的权重应用于所述神经网络,并从(a)重复直到达到目标权重和精度成本;
当达到所述目标权重和精度成本时,通过修改所述神经网络以包括所述更新的权重,生成一个低比特深度神经网络
将所述低比特深度神经网络和所述更新的权重转换为一个制造控制文件;
将所述制造控制文件输入到一个由计算机控制的制造机器中;
使用一个制造过程来制造具有所述低比特深度神经网络的IC产品;所述制造过程包括使用由所述计算机控制的制造机器,所述计算机控制的制造机器接收所述制造控制文件,所述制造控制文件详细限定具有所述低比特深度神经网络的IC产品;
由此,所述IC产品具有通过优先选择在比特深度步阶附近的用于减小的权重而生成的所述低比特深度神经网络。
2.根据权利要求1所述的集成电路产品,其中制造所述IC产品还包括:
将具有所述低比特深度神经网络的所述IC产品和所述更新的权重转换为一个供光掩膜写入机器使用的设计文件;
在所述设计文件的控制下使用所述光掩膜写入机器,以将所述IC产品的图像写入多个光掩膜,所述图像包括所述低比特深度神经网络的图像;和
在一个IC制造工艺步骤期间,使用所述多个光掩膜以将所述图像印刷到半导体衬底上,从而在所述半导体衬底上构建所述IC产品的多个晶片;
由此,所述IC产品具有通过优先选择比特深度步阶附近的用于减小的权重而生成的所述低比特深度神经网络。
3.根据权利要求1所述的集成电路产品,还包括:
产生一个用于权重的硬件复杂度成本梯度,与远离比特深度步阶的权重相比,比特深度步阶附近的权重具有更大的硬件复杂度成本梯度值。
4.根据权利要求3所述的集成电路产品,其中通过优先选择比特深度步阶附近的权重来选择用于减小的权重还包括:
检查所述硬件复杂度成本梯度,相比于没有被选择来用于减小的权重,选择具有较大硬件复杂度成本梯度的权重用于减小;
其中,选择的用于减小的权重的硬件复杂度成本梯度的平均值大于没有选择的权重的硬件复杂度成本梯度的平均值。
5.根据权利要求4所述的集成电路产品,其中选择的用于减小的权重的硬件复杂度成本梯度的平均值,至少是没有选择的权重的硬件复杂度成本梯度的平均值的两倍。
6.根据权利要求4所述的集成电路产品,其中表示所述权重所需的二进制比特的变化产生一个高的硬件复杂度成本梯度,而当所述权重改变、但表示所述权重所需的二进制比特数不发生变化时,产生一个低的硬件复杂度成本梯度。
7.根据权利要求1所述的集成电路产品,其中所述目标权重和精度成本是所述精度成本和所述硬件复杂度成本的一个组合。
8.一种用于存储计算机可执行指令的非临时性计算机可读介质,所述计算机可执行指令在由处理器执行时实施一种方法,所述方法包括:
将初始的权重应用于神经网络中节点之间的连接,一个权重指定所述神经网络中节点之间的连接强度;
执行训练程序,将训练数据应用于所述神经网络的输入;
检查所述神经网络的输出,以产生误差测量;
从应用于所述神经网络的所述权重,产生一个硬件复杂度成本;
从所述误差测量,产生权重的误差梯度;
从一个权重的硬件复杂度成本,产生所述权重的硬件复杂度成本梯度;
其中当所述权重的减小会导致表示所述权重需要减少一个二进制比特时,所述硬件复杂度成本梯度值高于一个梯度阈值
其中当所述权重的减小导致表示所述权重需要相同的二进制比特数进行表示时,所述硬件复杂度成本梯度值低于所述梯度阈值;
选择硬件复杂度成本梯度高于所述梯度阈值的权重作为所选择的权重;
通过减少所述权重以产生更新的权重,更新所述所选择的权重;
将所述更新的权重应用于所述神经网络,在还没有到达目标终点时执行另外的迭代,所述目标终点是期望的精度成本和权重;和
当已经到达所述目标终点时,将具有所述更新的权重的所述神经网络输出,作为由一个设计文件指定的低比特深度神经网络;
其中所述设计文件是一个指定所述低比特深度神经网络的计算机可读文件。
9.根据权利要求8所述的计算机可读介质,其中所述方法还包括:
将所述设计文件转换为多个掩膜图像文件;
其中通过一种产生多个掩膜的掩膜制作机器,所述多个掩膜图像文件是计算机可读的;
其中在半导体制造过程期间,所述多个掩膜将所述多个掩膜图像文件中指定的图像控制打印在半导体衬底上,以构建一个具有所述低比特深度神经网络的集成电路(IC)。
10.根据权利要求8所述的计算机可读介质,其中至少80%的所述权重能够由8到16位二进制比特表示。
11.根据权利要求8所述的计算机可读介质,其中产生所述硬件复杂度成本包括:将所有权重的表示所述权重所需的比特数求和,
其中硬件复杂度成本生成器是权重的比特深度的总和。
12.根据权利要求8所述的计算机可读介质,其中所述方法还包括:
当所述误差测量和所有权重的硬件复杂度成本的总和的预定组合低于一个目标值时,表示已经到达所述目标终点。
13.根据权利要求8所述的计算机可读介质,其中所述方法还包括:
从所选择的权重中删除误差梯度高于误差阈值的权重;
由此,不会减小具有高误差梯度的权重。
14.根据权利要求8所述的计算机可读介质,其中所述方法还包括:
从所述神经网络以及应用于所述神经网络的所述权重,产生其它正则化成本;
从所述其它正则化成本产生其它正则化梯度;
使用所述硬件复杂度成本梯度以精选权重作为所选择的权重。
15.根据权利要求14所述的计算机可读介质,其中产生其它正则化成本包括:产生一个稀疏成本。
16.根据权利要求8所述的计算机可读介质,其中所述神经网络至少有10万个权重。

说明书全文

用于人工神经网络中比特深度减少的方法和系统

[0001] 相关申请
[0002] 本申请要求2016年3月16日提交的,名称为“通过使用硬件成本惩罚深度学习神经网络优化”的美国临时专利申请62/309,239的优先权,通过引用将其并入本申请。

技术领域

[0003] 本发明涉及神经网络,特别涉及权重大小的优化。

背景技术

[0004] 对于使用传统计算机程序难以处理的大量复杂数据,人工神经网络特别有用。不是使用指令编程,而是将训练数据输入到神经网络,并与预期输出进行比较,然后在神经网络内进行调整,再次处理训练数据,和输出比较,再进一步调整神经网络。在多次这样的训练周期之后,神经网络被改变成可以有效地处理类似训练数据和预期输出的数据。神经网络是机器学习的一个例子,因为神经网络学习如何生成训练数据的预期输出。然后可以将类似训练数据的实际数据输入到神经网络,以处理实时数据。
[0005] 图1显示一个现有技术的神经网络。输入节点102、104、106、108接收输入数据I1、I2、I3、...I4,而输出节点103、105、107、109输出神经网络运算的结果:输出数据O1、O2、O3、...O4。在这个神经网络中有三层运算。节点110、112、114、116、118中的每一个节点都从一个或多个输入节点102、104、106、108中获取输入,执行一些运算,诸如加、减、乘或更复杂运算,然后发送和输出到第二层的节点。第二层节点120、122、124、126、128、129也接收多个输入,合并这些输入以产生一个输出,并将输出发送到第三层节点132、134、136、138、139,类似地合并输入并产生输出。
[0006] 每层的输入通常会被加权,因此在每个节点处生成加权总和(或其他加权运算结果)。这些权重可以表示为W31、W32、W32、W33、...W41等,在训练期间权重值可以调整。通过不断地试错或其他训练程序,最终可以将较高的权重分配给产生预期输出的路径,而将较小权重分配给不产生预期输出的路径。机器将学习哪些路径会生成预期输出,并为这些路径上的输入分配高权重。
[0007] 这些权重可以存储在权重存储器100中。由于许多神经网络都具有多个节点,所以在权重存储器100中存储有多个权重。每个权重需要多个二进制比特来表示该权重的可能值的范围。权重通常需要8到16比特。权重存储器100的大小通常与神经网络的总体大小和复杂性成比例。
[0008] 深度神经网络具有多层节点,常用于诸如对象分类、语音识别情感分析图像识别、面部检测和其他图形处理的应用。图2显示用于面部识别的神经网络。图像输入10可以从一个较大的图像中提取,例如通过软件分离出人脸。特征提取器15执行低级特征提取、池化(pooling)和下采样。例如,可以识别并提取诸如眼睛和嘴巴的面部特征作为提取的特征12。对这些提取的特征12进行合成和下采样以生成输出14。
[0009] 中级特征连接器17检查下采样的提取特征,生成连接16和中级特征18,然后可以使用中级特征18来生成高级特征19。分类器20对特征进行分类和完全连接,使得可以输出面部特征。
[0010] 这样的面部检测可以通过使用有多个节点的10层神经网络来实现。该神经网络会使用超过1亿个权重。
[0011] 图3显示一个实施图像识别处理器的神经网络。输入图像10可能包含多个特征,诸如几个人、背景和前景对象、以及几个。神经网络的各层执行64-比特卷积22、256-比特卷积26、和512-比特卷积28。最大响应节点是由最大池化层(maxpooling layers)24产生,而最终softmax层30执行归一化指数函数以限制输出范围。全连接FC层32通过允许每个节点查看前一层的所有输入来执行高层次推理。
[0012] 这种图像处理可能需要16个隐藏层的神经网络,有超过2亿个权重。因此,权重存储器100(图1)所需的尺寸相当大。
[0013] 现有的深度神经网络可能有非常高的计算复杂度以提高神经网络的精度。这些庞大的计算复杂性和成本通常是通过使用工业规模的计算集群和若干高性能图形处理单元(GPU)来解决。然而,这类计算集群和GPU的功耗相当高。
[0014] 传统上神经网络都是使用大规模计算,如大型机和计算机集群。在用户终端设备(如智能电话)上拍摄的图像可以发送到远程大型机或计算集群,以被神经网络进行处理。然后,结果被发送回智能手机。
[0015] 然而,如果在用户终端设备本身(如智能电话、相机、可穿戴设备和机器人设备)上就有这种神经网络,那将是非常有用的。这些用户终端设备通常需要实时响应、低延迟、有存储器和功耗限制。
[0016] 一种解决方案是添加专用硬件到用户终端设备。可以向用户终端设备添加一种包括神经网络的专用集成电路(ASIC)。ASIC比GPU有更低的功耗,因为ASIC的神经网络可以是专用于用户终端设备执行的任务或操作,而GPU则是通用的。
[0017] 一个专用神经网络的数、晶片面积、功耗和成本与权重的数量和大小或权重存储器100的尺寸大致成比例。发明人希望降低权重存储器100的尺寸,从而减少专用神经网络的门数、晶片面积、功耗和成本。可以减小每个权重的大小或比特深度,但也将降低神经网络的精度。
[0018] 期望有一种减少尺寸和成本的神经网络。期望通过选择性地减小权重的大小或比特深度来减小神经网络的尺寸和成本。期望减小权重的比特深度的方式不会在计算其输出时显著降低神经网络的精度。期望在减小一些权重的比特深度的同时对精度的影响最小。附图说明
[0019] 图1是一个现有技术的神经网络。
[0020] 图2是一个用于面部识别的神经网络。
[0021] 图3是一个实施图像识别处理器的神经网络。
[0022] 图4是一个神经网络优化器。
[0023] 图5是量化比特深度权重成本的曲线图。
[0024] 图6A-B显示了在训练期间使用量化权重成本曲线进行选择用于减少的权重。
[0025] 图7A-C显示使用比特深度优化引擎的权重值的分布。
[0026] 图8是一个比特深度优化引擎的详细框图
[0027] 图9显示使用比特深度优化引擎来减少权重硬件成本的曲线图。
[0028] 图10显示具有权重比特深度优化的神经网络的集成电路的设计和制造过程

具体实施方式

[0029] 本发明涉及神经网络的改进。呈现以下描述以使本领域普通技术人员能够制造和使用如在特定应用及其要求的上下文中提供的本发明。对优选实施例的各种修改对于本领域技术人员是显而易见的,并且本文定义的一般原理可以应用于其他实施例。因此,本发明并不限于所显示和描述的特定实施例,而是要求符合与本文披露的原理和新颖特征一致的最宽范围。
[0030] 发明人已经发现,可以通过减少神经网络中的权重大小或比特深度,来降低神经网络的复杂性、成本和大小,同时仍然保持优化精度。具体来说,在优化期间添加比特深度复杂性惩罚,可以使神经网络朝向较小权重存储器。在优化迭代期间使用数字梯度的权重大小。发明人通过训练过程减少神经网络中权重所需的比特数,然后可以将其部署在诸如ASIC的专用硬件中。较小的优化神经网络会减少ASIC的成本和尺寸。
[0031] 图4显示了一种神经网络优化器。神经网络36可以是由设计工程师为一个特定应用而设计的一个神经网络,或者是为特定应用而调整的一个通用神经网络。例如,可以针对一个特定应用,来调整神经网络中的中间层或隐藏层的数目,可以针对某些应用或要解决的问题来调整在节点中执行的运算类型和节点之间的连接性。例如,对于图2的面部识别应用,通用神经网络可以被扩展到10层,或对图3的图像处理应用,扩展到16层。
[0032] 神经网络36中使用的权重可以有初始值,如0到16K-1,其可以由一个14比特的权重表示。当执行训练程序46时,训练数据34被输入到神经网络36,允许评估神经网络36的输出。一种评估输出质量的方法是计算成本。精度成本生成器42生成精度成本,该精度成本是当前周期的输出与预期结果有多接近的一个测量。可以通过对单个输出与该输出的期望值的差求平方,并对所有输出的这些平方求平均或求和,产生一个均方误差(MSE)。
[0033] 另一成本是神经网络36的硬件成本。通常,可以通过增加神经网络36中可用的硬件量来提高精度,因此在硬件成本和精度成本之间存在一个权衡。由硬件复杂度成本生成器44计算的典型的硬件成本因素包括一个在调整权重范围时防止过度拟合的权重衰减函数,以及一个用于改善结构和规则性的稀疏函数。
[0034] 硬件复杂度成本生成器44还包括一个新的成本组件,其检查表示一个权重所需的二进制比特数。传统的成本方法将权重作为一个连续统(continuum)。但是,硬件复杂度成本生成器44将权重成本量化。根据表示权重所需的二进制比特数而不是根据权重数值来计算权重成本。
[0035] 来自精度成本生成器42的精度成本和来自硬件复杂度成本生成器44的硬件成本都用于调整权重,供训练程序46的下一训练周期使用。更新的权重被应用于神经网络36,训练数据34被再次输入到神经网络36,神经网络36产生一组新的结果,该组新的结果由精度成本生成器42和硬件复杂度成本生成器44产生其成本。进行多个周期的调整权重和重新计算成本,直到达到一个期望的终点。然后,比特深度优化引擎48输出具有最终权重的神经网络36作为低比特深度神经网络40。
[0036] 举个例子,神经网络36中每个权重的平均比特数是14比特。比特深度优化引擎48将该平均比特深度减小到低比特深度神经网络40中的10比特,即减少了4个二进制比特。这对于权重存储器100(图1)中关于权重的存储要求就减少了28%。
[0037] 图5是量化比特深度权重成本的曲线图。显示了单个权重的成本。如之前的图2-3所示,神经网络可以有超过1亿个权重。
[0038] 传统权重成本曲线142随着权重值增加而有稳定增加的成本。量化权重成本曲线140有步阶。这些步阶出现在每次增加表示权重值所需的二进制比特数时。
[0039] 例如,一个权重可以有一个值36。该值需要6个二进制比特。如果权重值降低到34,传统权重成本降低,但是它仍然需要6个二进制比特,因此量化权重成本并不发生变化。
[0040] 但是,当权重从36变化到31时,所需的二进制比特数从6减少到5,因为5个二进制比特可以覆盖从0到31的值。虽然传统权重成本曲线142所示的传统权重减小了一个很少的量,但量化权重成本曲线140所示的量化权重成本减小了一个很大的量,因为其下降了一个步阶。
[0041] 量化权重成本曲线140中的步阶出现在二进制比特数发生变化的地方。这些步阶出现在2的幂次方处,例如在16、32、64、128、256、512、1024、2048、4096、8192、...65536…等的权重值处。一个权重值1024(11比特)减少1到1023(10比特)时,其成本显着减少,但是减少权重值1023直到达到511,其量化权重成本都没有任何变化,因为从1023到512的值都需要10个二进制比特。
[0042] 图6A-B显示了在训练期间使用量化权重成本曲线进行选择用于减少的权重。在图6A,为了清晰,将图5中部分量化权重成本曲线140和传统权重成本曲线142放大并分开。在量化权重成本曲线140上显示了从11比特到12比特的步阶,以及从11比特到12比特的另一步阶。
[0043] 显示了四个单独的权重θ5、θ6、θ7、和θ8。在传统权重成本曲线142上,所有四个权重都有大致相同的斜率SL或梯度,因此在训练期间使用传统成本优化来减小其权重值时,所有这些权重都是等同的候选者。
[0044] 在量化权重成本曲线140中,权重θ5和θ7远离任何步阶。权重值θ5和θ7附近的斜率是接近零的值,因为量化权重成本曲线140在步阶之间是平坦的。因此,当选择减小权重θ5和θ7时,成本减少很小或没有减少。
[0045] 然而,在量化权重成本曲线140中,权重θ6接近从11到12比特的那个步阶。对该步阶之前和之后的两个点,量化权重成本曲线140的斜率很大。
[0046] 当用于计算斜率的范围包括步阶之前一个点和之后一个点时,可以计算出一个大斜率或梯度。
[0047] 在训练优化期间,可以使用成本梯度来选择哪些权重是减少成本的最佳选择。选择具有大梯度的权重优于选择具有小梯度的权重,因为可以大幅降低硬件成本,而同时可能会小幅降低精度。
[0048] 类似地,在量化权重成本曲线140中,权重θ8靠近从12到13比特的步阶。权重θ8具有一个大斜率SL>>0。由于权重θ6和θ8都接近步阶,具有大梯度,所以和具有零斜率的权重θ5和θ7相比,比特深度优化引擎48会优先选择权重θ6和θ8。比特深度优化引擎48将稍微减小权重θ6和θ8的值,使得它们在图6A向左偏移,出现在量化权重成本曲线140的所述步阶之前。存储这些权重所需的比特数已经被各自减少1比特。权重θ5和θ7保持不变,因此不会降低其精度。
[0049] 图6B显示成本梯度的尖峰发生在当二进制比特的数量变化时的步阶上。对于长范围的步阶之间的权重值,梯度曲线144是平坦的。梯度曲线144中的尖峰恰好出现在量化权重成本曲线140中的每个步阶的右侧处。该尖峰显示当二进制比特的数量下降时,量化权重成本曲线140的斜率或梯度会急剧变化。
[0050] 硬件复杂度成本生成器44可以为每个权重产生量化权重成本曲线140的梯度,比特深度优化引擎48可以在训练优化期间搜索具有大成本梯度的权重,并选择这些权重用于减小成本。经过多个周期的选择,权重被减少并与精度权衡,直到获得一个最优权重值用于低比特深度神经网络40。
[0051] 本发明人认识到,有许多权重值具有相同的硬件成本,因为它们需要相同数量的二进制比特。硬件复杂度成本生成器44(图4)负责权重的比特深度成本。在训练期间,选择哪个权重去减小成本变成了优先选择量化权重成本曲线140中刚好在下降(步阶)之前的权重。和量化权重成本曲线140中那些远离下一个步阶的权重(大变化)相比,这些权重的较小变化可以有较大的硬件成本减少。
[0052] 图7A-C显示使用比特深度优化引擎的权重值分布。在图7A,显示了量化权重成本曲线140。在二进制比特数增加时的步阶上,硬件成本大幅跳跃。比特深度优化引擎48选择量化权重成本曲线140中权重值刚好在步阶之前(在右侧)的权重,并略微减少这些值。如果由于权重是关键值,引起精度大幅降低,那么该变化就可以在下一个训练周期中被撤消,但通常和总体上,权重值略微减小,比特深度和存储要求会大幅降低。
[0053] 在图7B,比特深度优化引擎48已经优先选择了量化权重成本曲线140中靠近步阶的权重,而且这些权重已经被减小。权重值的分布显示在量化权重成本曲线140中尖峰都刚好在步阶之后(左侧)。选择步阶右侧的权重并减小,以将它们放在该步阶左侧。因此,在步阶之后比在步阶之前有更多的权重,如图7B所示。图7C显示了现有技术的权重分布。使用传统权重成本曲线142,不考虑步阶,因此在量化权重成本曲线140的步阶之前和之后,权重分布是相对恒定的。
[0054] 比特深度优化引擎48已经改变了低比特深度神经网络40中数百万个权重的分布。权重倾向于具有刚好在步阶以下的二进制比特值。有较少权重值刚好在步阶之前,因为这些是训练和优化期间用于减少成本的候选值,大多数已经被偏移到步阶之后了。
[0055] 图8是比特深度优化引擎的较详细框图。神经网络36的权重是由权重初始化器58进行初始化,这些初始权重被输入到神经网络输出生成器54,利用这些初始权重,神经网络输出生成器54使用由神经网络36设定的节点和运算网络,对训练数据34进行运算以产生神经网络36的结果或输出。将这些结果与训练数据34的预期输出进行比较,以产生每个权重的误差项或精度成本。在随后的周期里,更新的权重72被应用于神经网络输出生成器54。
[0056] 根据当前权重,即初始权重或更新的权重72,硬件复杂度成本生成器52产生神经网络36的硬件成本。总体硬件成本可以被近似为与权重存储器100的成本成比例,其可以近似为神经网络36中所有权重所需的总比特数。
[0057] 正演计算50还包括正则化(regularization)生成器56,其产生其它硬件成本,如神经网络36的稀疏性或规律性。正演计算50使用更新的权重72的当前值,产生神经网络36的硬件和精度成本。
[0058] 反演计算60从正演计算50接收成本,并产生梯度。梯度可以用于选择哪些权重需要调整,如图6A-B所示。由神经网络输出发生器54产生的每个权重的精度成本或误差被输入到误差梯度生成器64,误差梯度生成器64产生每个权重的误差梯度。具有较高误差梯度的权重是用于减少权重比特深度的差的选择,因为精度会受到比例过大的影响。
[0059] 来自硬件复杂度成本生成器52的硬件成本被输入到硬件复杂度成本梯度生成器62。这些硬件成本包括比特深度成本。每个权重的硬件成本梯度是由硬件复杂度成本梯度生成器62计算的,并由权重选择器70收集这些梯度。一些梯度,如误差梯度,可以被反向传播以使用一个链规则来找到每个参数上的梯度。来自其他正则化生成器56的正则化成本被输入到正则化梯度生成器66,其产生正则化成本的梯度。
[0060] 权重选择器70合并来自硬件复杂度成本梯度生成器62、误差梯度生成器64、和其他正则化梯度生成器66的梯度,以决定要调整哪些权重。权重选择器70权衡精度误差和硬件误差,选择最佳候选权重进行调整。权重选择器70调整这些权重以产生更新的权重72。
[0061] 终点终止器68将总权重和精度成本与目标进行比较,当还没到达目标时,将更新的权重72发送回硬件复杂度成本生成器52、神经网络输出生成器54、和其他正则化生成器56用于另一个周期或迭代。一旦达到目标,将最后一组更新的权重72应用于神经网络36以产生低比特深度神经网络40。
[0062] 神经网络36中的14比特的平均比特深度已经被降低到低比特深度神经网络40的10比特的平均比特深度。当使用数亿的权重时,每个权重平均减少4个二进制比特对硬件成本来说是一个巨大节省。4比特的减少对权重存储器100(图1)中权重的存储需求来说就是降低了28%。权重值的互联和在每个节点上处理这些权重值的逻辑,同样减少了。
[0063] 图9显示使用比特深度优化引擎来减少权重硬件成本的曲线图。本示例使用混合国家标准和技术研究所(MNIST)的手写数字数据集作为训练数据34。
[0064] 精度显示为一个存储低比特深度神经网络40中所有权重值所需的二进制比特总数的函数。传统曲线150显示没有比特深度成本优化时精度与权重之间的函数关系。曲线152、154显示使用比特深度优化引擎的精度与权重成本之间的关系。曲线152使用了一个5×10-7的定标参数γ,而曲线154使用了1×10-6的定标参数γ。定标参数γ乘以比特深度梯度成本,例如图6B的曲线144。
[0065] 在比特深度减小和精度之间存在权衡。比特深度优化引擎48将曲线向左移动,表示对于相同精度有较低的硬件成本。对一个97.4%的精度,硬件成本从传统曲线150的1.1M比特减少到曲线152的840K比特以及曲线154的700K比特。在该示例中,浮点权重值被量化为15比特二进制值。
[0066] 运行理论
[0067] 以下是使用数学模型和近似的运行理论。这些模型仅用于提供信息的目的,而不是限制由权利要求限定的本发明。一个典型的神经网络训练涉及最小化成本函数J(θ):
[0068] J(θ)=E(θ)+λP(θ)+βKL(θ)  (1)
[0069] 公式(1)包括误差度量E(θ)(如均方根(MSE))、用于防止过度拟合的加权衰减函数P(θ)、和被定义为Kullback-Leibler(KL)散度的稀疏函数KL(θ)。θ是一个包含神经网络中所有参数权重的一维向量。θ充当优化问题中的决策变量。λ控制权重衰减项的大小,β控制稀疏项的大小。具体来说,权重惩罚项可以被定义为:
[0070]
[0071] 其中{θi}∈θ表示参数向量的元素。
[0072] 发明人修改了公式(1)中的成本函数,来最小化基于权重比特深度的硬件复杂度成本。公式(2)中的权重惩罚项不能直接处理比特边界特性。因此,比特深度惩罚γC(θ)被加到公式(1)的成本函数中,如公式:
[0073] J(θ)=E(θ)+λP(θ)+βKL(θ)+γC(θ)  (3)
[0074] 其中比特深度惩罚项C(θ)被定义为神经网络的所有参数(权重和偏差)的比特深度总和。具体地,将一个参数θi的绝对值除以量化步长(2r/2b),其是最小的假设精度单位。r被定义为获取神经网络中央大约95%参数值的一个量值。这需要将某些神经网络模型参数约束到一个给定范围[-r,r],并将所有中间值线性量化成2b个二进制位,产生2r/2b的步长,其中b通常是从8到16范围的量化比特,因为权重通常是使用介于8和16比特之间某个比特来表示它们的二进制值。然后,取对数以计算表示该整数大小所需的比特数。最后,一个比特用于整数大小的符号。惩罚项被定义为:
[0075]
[0076] 在每次优化迭代时,采取以下动作:
[0077] 计算并生成成本J(θ):使用θ正向传播数据以从成本J(θ)获得一个值;
[0078] 计算并生成一个梯度dJ(θ)/dθ:通过反向传播算法计算一个分析梯度dJ(θ)/dθ。通过使用生成的梯度来改变权重,来更新定点表示的神经连接权重;和
[0079] 重复执行上述步骤直到满足终止条件。
[0080] 在每次优化迭代结束时,用步长α(通常为α=1)更新θ,如公式:
[0081]
[0082] 其中t表示训练中的迭代。
[0083] 公式(5)中的梯度更新包含了比特深度惩罚γC(θ),如公式:
[0084]
[0085] 其中λ和β控制权重衰减项和稀疏项的大小,γ控制比特深度惩罚的大小。为了计算复杂度项的梯度dC(θ)/dθ,使用中心有限差分近似计算数值梯度,如公式:
[0086]
[0087] 其中∈是混合国家标准与技术研究所(MNIST)数据集的一个参数,定义为∈=0.02。公式(7)的含义是,如果θi在∈内的变化导致比特深度的变化,则C(θi)的梯度仅为非零。
[0088] 为了进行说明,图5显示对数权重惩罚的成本log2(P(θi)0.5/(2r/2b))+1,以及比特深度惩罚的成本C(θi)。在图5,比特深度惩罚的成本函数在比特边界处跳跃以将比特数最小化。图5描述比特深度惩罚如何鼓励比特深度边界附近的权重采用较低的比特深度值。
[0089] 硬件成本降低
[0090] 图10显示具有权重比特深度优化的神经网络的集成电路的设计和制造过程。设计工程师创建神经网络36的高级别设计,并输入具有预期输出的训练数据34到神经网络36,经过多个训练周期,使用比特深度优化引擎48(图4)优化权重比特深度。优化的结果是低比特深度神经网络40。
[0091] 低比特深度神经网络40和该芯片上的其它电路,被转换成逻辑门导线的网表,然后通过布局和走线74转换成物理布局76。物理布局76指定在每个芯片上的物理位置x、y,其中各种元件都布置在完成的集成电路(IC)芯片上。物理布局76被转换为多个图像层,其指定逻辑门位于何处、金属线、通孔、以及层之间接触的位置,以及衬底上化物和扩散区的位置。掩膜图像78通常包括每层一个图像。
[0092] 掩膜制作机器读取掩膜图像78或另一个设计文件,将这些图像物理地写入或烧制到光掩膜82上。光掩膜82是一个有形产品,是优化软件或程序产生低比特深度神经网络40的一个结果,其是网表的一部分,最终通过布局软件转换成实际晶体管栅极和布线的掩膜图像78。虽然优化软件可以在通用计算机上执行,但是创建光掩膜82需要使用专用机器,其将布局数据写入到各个掩膜上,例如通过由布局数据打开和关闭的光或电子束,同时在放置在空白光掩膜玻璃板上的未曝光的光致抗蚀剂聚合物层上以光栅化图案进行扫描。光致抗蚀剂通过光或电子束在某些位置曝光,而在其它区域未曝光。然后,可以在化学显影剂浴中洗曝光板,以除去曝光或未曝光的区域,从而产生光掩膜82。
[0093] 在光掩膜制作80期间,光掩膜机产生多个板的光掩膜82,每个板对应每个半导体加工层。然后,将光掩膜82的板送到半导体工厂(fab)并装载到光掩模机中,在IC制造过程84期间,其中穿过光掩膜82的光使得半导体晶片上的光致抗蚀剂树脂曝光。在通过光掩模
82的多层曝光处理以及诸如离子注入、扩散、氧化物生长、多晶和金属沉积、通孔和接触蚀刻、以及金属和多晶硅蚀刻的其它处理之后,就通过IC制造过程84制造出了晶片86。晶片
86是硅、砷化镓、或其它在其表面上形成有图案化层的半导体衬底。在每个晶片86上生成多个芯片。在初始晶片分类测试之后,将晶片86切割成小片,将其放入封装中以生产IC 88。
[0094] 因此,由比特深度优化引擎48产生的低比特深度神经网络40,控制制造过程中的一系列步骤,最终生成光掩膜82和IC 88。控制这些机器的专用机器和计算机本身最终由低比特深度神经网络40中的数据控制或指导以产生一个特定的IC 88芯片。设计工程师通过调整权重的比特深度而修改神经网络36的设计,比特深度优化引擎48产生低比特深度神经网络40。
[0095] IC 88可以是被安装到诸如智能电话90的终端用户设备中的ASIC或模。智能电话90可以包括相机92,使用IC 88内的神经网络在智能电话90上处理相机92拍摄的图像。神经网络可以在智能电话90上本地执行诸如面部识别或图像处理的操作。不需要使用大型机或计算集群上的远程神经网络。
[0096] 其他实施方式
[0097] 发明人还补充了几个其它实施例。例如,低比特深度神经网络40可以有许多应用,如用于自动驾驶汽车和其他驾驶员辅助系统的实时图像识别、分析患者生命体征的小型医疗可佩戴装置、面部识别、其它图像处理、语音识别、手写识别、图像去噪、图像超分辨率、对象检测、图像/视频生成等。
[0098] 一些实施例可以不使用所有组件。可以添加额外的组件。比特深度优化引擎可以使用各种成本生成器,诸如防止权重在多个周期的训练优化后变得太大的权重衰减项、鼓励节点将其权重归零的稀疏惩罚,使得仅有一小部分总节点被有效地使用。剩余的小部分节点是最相关的。虽然在运行理论中已经描述了含有各种成本函数的公式,但是可能有多种替换、组合和变化。可以向比特深度优化引擎48添加其它类型和种类的成本项。可以调整不同成本函数的相对定标因子的数值以平衡各种不同函数的影响。
[0099] 浮点值可以转换为定点值或二进制值。虽然已经显示了二进制值权重,但是可以使用各种编码,诸如二进制补码、霍夫曼编码、截断二进制编码等。表示权重值所需的二进制比特数目可以是指不分编码方法的比特数,无论是二进制编码、灰色码编码、定点、偏移等。
[0100] 权重可以被限制在一个范围值内。范围不一定必须向下延伸到0,如511到0的范围。权重的值可以被偏移以适合一个二进制范围,如范围10511到10000的权重,其可以被存储为一个9比特二进制字,将偏移量10000添加到二进制字以生成实际权重值。也可以在优化期间调整范围。偏移量可以被存储,或可以被硬连线到低比特深度神经网络40的逻辑。
[0101] 训练程序46有可能有多种变化。优化可以首先确定多个隐藏或中间层的节点,然后对权重进行优化。通过归零一些权重以切断节点之间的链接,权重可以确定节点的布局或连接性。当结构被优化时,稀疏成本可以用于初始优化循环,但当权重值被精调时,稀疏成本不用于随后的优化循环。Sigmoid函数可以用于训练隐藏层。查找表可以用于实施复杂函数,而不是算术逻辑单元(ALU)用于加速处理。
[0102] 虽然MINST数据集已经用于测量比特深度优化引擎48可以提供的改进,但也可以使用其它训练数据34。对于不同的应用和训练集合,将有不同数量的成本降低。各种各样的结构,不同数量和布置的隐藏层,可以用于输入神经网络36。特定应用可以使用某种类型的神经网络或布置用于神经网络36,或者可以使用通用神经网络36作为起始点。自动编码器、automax和softmax分类器以及其它种类的层可以被插入到神经网络中。整个优化过程可以重复若干次,例如对于不同的初始条件,诸如对于不同数量的比特来量化浮点值或其它参数、不同精度、不同定标因子等等。可以针对各种条件组合来设置终点,例如期望的最终精度、精度硬件成本乘积、目标硬件成本等。
[0103] 虽然低比特深度神经网络40的实际成本取决于许多因素,例如节点数目、权重、互连、控制和接口,但是发明人将成本近似为与权重总和成比例。用于表示低比特深度神经网络40中的所有权重的二进制比特总数是硬件成本的一个度量,即使只是一个近似度量。
[0104] 硬件复杂度成本梯度可以有很大的梯度值,其至少是较小值的两倍。当权重在比特深度步阶的10%以内时,可能会出现很大值。可以使用其它阈值的大梯度值,以及到比特深度步阶的距离。梯度值可以在比较之前或之后被缩放和改变。
[0105] 各种其他IC半导体制造工艺有是可能的。光掩膜82可以用各种特殊机器和工艺制成,包括直接写入以烧掉金属层而不是光致抗蚀剂。扩散、氧化物生长、蚀刻、沉积、离子注入和其它制造步骤的多种组合可以由光掩膜控制在IC上产生图案。
[0106] 可以使用软件、硬件、固件、程序、模块、功能等的各种组合,以各种技术来实现比特深度优化引擎48和其它组件。最终产品,即低比特深度神经网络40,可以在专用集成电路(ASIC)或其它硬件中实现以提高处理速度和降低功耗。
[0107] 本发明的背景部分可以包含有关本发明问题或环境的背景信息,而不是由其他人描述的现有技术。因此,在背景部分中包括的材料不是申请人承认的现有技术。
[0108] 在此描述的任何方法或过程是机器实施的或计算机实施的,并且旨在由机器、计算机或其它设备执行,并不旨在没有这种机器辅助的情况下由人执行。生成的有形结果可以包括在诸如计算机监视器、投影设备、音频生成设备和相关媒体设备的显示设备上显示的报告或其它机器生成的显示,并且可以包括也是机器生成的硬拷贝打印输出。其它机器的计算机控制是另一个有形结果。
[0109] 所描述的任何优点和益处可能不适用于本发明的所有实施例。当在权利要求要素中陈述单词“装置”时,申请人意图使权利要求要素符合35USC第112章第6段。通常,在单词“装置”之前有一个或多个单词。在单词“装置”之前的一个或多个单词是旨在便于引用权利要求要素,并不旨在传达结构限制。这种装置加功能的权利要求旨在不仅覆盖这里描述的用于执行功能及其结构等同物的结构,而且覆盖等效结构。例如,虽然钉子和螺钉具有不同的构造,但是它们是等同的结构,因为它们都执行紧固的功能。不使用“装置”一词的权利要求不打算属于35第112章第6段。信号通常是电子信号,但可以是光信号,例如可以通过光纤线路传送的信号。
[0110] 应当理解的是,以上实施例仅用以说明本发明的技术方案,而非穷举或将本发明限制为所公开的精确形式。鉴于上述教导,可以对上述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而所有这些修改和替换,都应属于本发明所附权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈