用于减少深度学习网络的权重存储位的系统和方法技术方案

技术编号:18459112 阅读:32 留言:0更新日期:2018-07-18 12:49
一种用于减少深度学习网络的权重存储位的系统和方法,所述系统包括量化模块和簇数减少模块。量化模块对深度学习网络的每一个量化层的神经权重进行量化。簇数减少模块减少具有作为所述多个量化层的聚类误差的最小值的聚类误差的层的簇的预定数量。量化模块基于所述层的簇的减少的预定数量对所述层进行重新量化,簇数减少模块还确定具有作为所述多个量化的层的聚类误差的最小值的聚类误差的另一个层,并减少另一个层的簇的预定数量,直到深度学习网络的识别性能已降低预定阈值为止。

System and method for reducing weight storage bits in deep learning network

A system and method for reducing the weight storage bits of a deep learning network, comprising a quantization module and a cluster number reduction module. The quantization module quantifies the neural weights of each quantization layer in the deep learning network. The cluster number reduction module reduces the predetermined number of clusters having a clustering error as the minimum clustering error of the plurality of quantization layers. The quantizing module quantifies the layer based on the predetermined number of the reduced clusters of the layers, and the cluster number reduction module also determines another layer with a clustering error that has the minimum value of the clustering error of the multiple quantized layers, and reduces the predetermined number of the clusters of the other layer until the recognition performance of the depth learning network. The predetermined threshold has been reduced.

【技术实现步骤摘要】
用于减少深度学习网络的权重存储位的系统和方法本申请要求于2017年1月9日提交的第62/444,352号美国临时专利申请的优先权权益,所述美国临时专利申请的公开通过引用全部合并于此。
在此公开的主题总体涉及深度学习网络,更具体地讲,涉及一种用于减少深度学习网络的权重存储位的设备和方法。
技术介绍
深度学习是人工智能(AI)和计算机视觉领域中广泛使用的技术。各种深度学习架构(诸如,卷积神经网络(CNN)、深度信念网络(DBN)和自动编码器)已经显示出针对任务(诸如,视觉对象识别、自动语音识别、自然语言处理以及音乐/音频信号处理)产生最先进的结果。深度学习的主要工作已经集中在针对各种网络架构、学习算法和应用的软件实现上。然而,体现更强大的板上(on-board)学习行为的硬件实现仍受限制。对深度学习硬件的主要挑战与模型精度不足有关;更具体地,与网络权重和数据输入的低位分辨率有关。例如,软件实现可享有双精度(64位)计算,但是当考虑到如物理尺寸和功耗的硬件约束时,这样的精度水平变得难以置信。
技术实现思路
示例实施例提供一种用于减少深度学习网络的权重存储位的系统,其中,所述系统可包括簇初始化器、神经权重量化器、聚类误差确定器和簇数减少器。簇初始化器可初始化用于对深度学习网络的每个层l进行量化的簇的预定数量kl。神经权重量化器可反复地分配质心并关于用于量化的质心对权重进行聚类,直到针对每个量化层l确定了最低平均聚类误差εl为止。聚类误差确定器可从所述多个量化层确定具有作为所述多个量化层的聚类误差εl的最小值的聚类误差εl*的层l*。簇数减少器可将层l*的簇的预定数量减少一而作为用于对层l*进行量化的簇的数量。神经权重量化器还可基于层l*的簇的减少的预定数量对层l*进行重新量化,聚类误差确定器还可从所述多个量化层确定具有作为所述多个量化层的聚类误差εl的最小值的聚类误差εl*的另一个层l*,簇数减少器可将所述另一个层l*的簇的预定数量减少一而作为用于对所述另一个层进行量化的簇的数量,直到深度学习网络的识别性能已降低预定阈值为止。在一个实施例中,神经权重量化器使用K-means++来反复分配质心并关于质心对权重进行聚类(即,量化)。聚类误差εl可包括每个非零权重的平方簇误差,聚类误差εl可包括:其中,n为用于对层进行量化的簇的预定数量,i为索引变量,wi为非零权重,Ci为量化层l的质心。示例实施例提供一种用于减少深度学习网络的权重存储位的方法,所述方法可包括:针对具有多个层的深度学习网络的每个层l初始化簇的预定数量kl;针对每个层l,反复地分配质心并关于用于量化的质心对权重进行聚类,直到针对层l确定了最低平均聚类误差εl为止;从所述多个层确定具有作为量化的所述多个层的聚类误差εl的最小值的平均聚类误差εl*的层l*;将层l*的簇的预定数量减少一而作为用于对层l*进行量化的簇的数量;基于层l*的簇的减少的预定数量,对层l*进行重新量化;继续从所述多个层确定具有作为所述多个层的聚类误差εl的最小值的聚类误差εl*的另一个层l*,将所述另一个层l*的簇的预定数量减少一而作为用于对所述另一个层进行量化的簇的数量,基于所述另一个层l*的簇的减少的预定数量对所述另一个层l*进行重新量化,直到深度学习网络的识别性能经降低预定阈值为止。示例实施例提供一种用于减少深度学习网络的权重存储位的系统,所述系统可包括权重量化模块和簇数减少模块。权重量化模块可基于已针对深度学习网络的每个层l初始化的簇的预定数量kl,对每个层l的神经权重进行量化。簇数减少模块可减少层l*的簇的预定数量,其中,层l*可具有作为由权重量化模块量化的所述多个量化层的聚类误差εl的最小值的聚类误差εl*。权重量化模块还可基于层l*的簇的减少的预定数量对层l*进行重新量化并且簇数减少模块还可从所述多个量化的层确定具有作为所述多个量化层的聚类误差εl的最小值的聚类误差εl*的另一个层l*,并可将所述另一个层l*的簇的预定数量减少一而作为用于对所述层进行量化的簇的数量,直到深度学习网络的识别性能已降低预定阈值为止。附图说明在以下部分中,将参照附图中示出的示例性实施例来描述在此公开的主题的方面,其中:图1描绘用作深度学习网络的公知的VGG16架构;图2描绘根据在此公开的主题的RDQ技术的示例实施例;图3描绘如应用于VGG16架构的根据在此公开的主题的RDQ技术的四次迭代的示例结果的表;图4描绘如应用于VGG16架构的根据在此公开的主题的RDQ技术的五次迭代的示例结果的表;图5描绘阐述针对不同的量化技术获得的VGG16架构的每个层的权重减少的比较的表;图6描绘基准簇合并(benchmarkclustermerging)技术的示例实施例;图7描绘根据在此公开的主题的递归深度量化处理器的示例实施例的功能框图;图8描绘根据在此公开的主题的包括包含递归深度量化处理器的一个或多个集成电路(芯片)的电子装置。具体实施方式在下面的详细描述中,阐述了许多具体细节以提供对本公开的彻底理解。然而,本领域的技术人员将理解,可在没有这些具体细节的情况下实践公开的方面。在其他情况下,没有详细描述公知的方法、程序、组件和电路,从而不会使在此公开的主题模糊。贯穿本说明书的对“一个实施例”或“实施例”的参考表示结合实施例描述的特定特征、结构或特性可包括在在此公开的至少一个实施例中。因此,贯穿本说明书的各个地方中的短语“在一个实施例中”或“在实施例中”或“根据一个实施例”(或具有类似意思的其他短语)的出现可不必都表示同一实施例。此外,可在一个或多个实施例中以任何合适的方式组合特定特征、结构或特性。在这方面,如在此使用的,词语“示例性”表示“用作示例、实例或说明”。在此被描述为“示例性”的任何实施例不应被解释为相对于其他实施例而言必需优选或有优势。此外,根据在此的讨论的上下文,单数术语可包括对应的复数形式,并且复数术语可包括对应的单数形式。还应注意,在此示出和讨论的各种附图(包括组件示图)仅为了说明的目的,并且不是按比例绘制的。类似地,仅为了说明的目的示出各种波形和时序图。例如,为了清楚,一些元件的尺寸可相对于其他元件被夸大。此外,如果认为适当,则已经在附图中重复附图标号,以指示对应的和/或类似的元件。在此使用的术语仅为了描述特定的示例性实施例的目的,并不意图限制要求保护的主题。如在此使用的,除非上下文清楚地另有指示,否则单数形式也意图包括复数形式。还将理解,当在本说明书中使用术语“包括”时,指定存在阐述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。如在此使用的,术语“第一”、“第二”等被用作它们之后的名词的标签,除非明确这样定义,否则它们并不意味着任何类型的排序(例如,空间的、时间的、逻辑的排序等)。此外,在两个或更多个附图之间可使用相同的参考标号来表示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这样的用法仅仅是为了说明简单且易于讨论;这并不意味着:这样的组件或单元的构造或架构的细节在所有实施例中都是相同的,或者这样的共同参考的部件/模块是实现在此公开的特定实施例的教导的唯一方式。除非另有定义,否则在此使用本文档来自技高网...

【技术保护点】
1.一种用于减少深度学习网络的权重存储位的系统,所述系统包括:簇初始化器,用于针对具有多个层的深度学习网络的每个层l初始化簇的预定数量kl;神经权重量化器,用于反复地分配簇的质心并关于质心对权重进行量化,直到针对量化的每个层l确定了最低平均聚类误差εl为止;聚类误差确定器,用于从所述多个层确定具有作为所述多个层的聚类误差εl的最小值的聚类误差εl*的层l*;簇数减少器,用于将层l*的簇的预定数量减少一而作为用于对层l*进行量化的簇的数量;神经权重量化器还用于基于层l*的簇的减少的预定数量对层l*进行重新量化,聚类误差确定器还用于从所述多个层确定具有作为所述多个层的聚类误差εl的最小值的聚类误差εl*的另一个层l*,簇数减少器将所述另一个层l*的簇的预定数量减少一而作为用于对所述另一个层l*进行量化的簇的数量,直到深度学习网络的识别性能已降低预定阈值为止。

【技术特征摘要】
2017.01.09 US 62/444,352;2017.03.20 US 15/464,3301.一种用于减少深度学习网络的权重存储位的系统,所述系统包括:簇初始化器,用于针对具有多个层的深度学习网络的每个层l初始化簇的预定数量kl;神经权重量化器,用于反复地分配簇的质心并关于质心对权重进行量化,直到针对量化的每个层l确定了最低平均聚类误差εl为止;聚类误差确定器,用于从所述多个层确定具有作为所述多个层的聚类误差εl的最小值的聚类误差εl*的层l*;簇数减少器,用于将层l*的簇的预定数量减少一而作为用于对层l*进行量化的簇的数量;神经权重量化器还用于基于层l*的簇的减少的预定数量对层l*进行重新量化,聚类误差确定器还用于从所述多个层确定具有作为所述多个层的聚类误差εl的最小值的聚类误差εl*的另一个层l*,簇数减少器将所述另一个层l*的簇的预定数量减少一而作为用于对所述另一个层l*进行量化的簇的数量,直到深度学习网络的识别性能已降低预定阈值为止。2.根据权利要求1所述的系统,其中,神经权重量化器使用K-means++来反复地分配簇的质心并关于质心对权重进行量化。3.根据权利要求2所述的系统,其中,聚类误差εl包括每个非零权重的平方簇误差。4.根据权利要求3所述的系统,其中,聚类误差εl包括其中,n为用于对层l进行量化的簇的预定数量,i为索引变量,wi为非零权重,Cl为用于层l的质心。5.根据权利要求3所述的系统,其中,预定阈值为1%。6.根据权利要求1所述的系统,其中,簇初始化器通过将两个邻近的簇合并以形成新的簇质心Cmerge来初始化量化的层的簇的预定数量kl,其中,所述两个邻近的簇的各自的质心之间的距离小于预定距离。7.根据权利要求6所述的系统,其中,簇初始化器将新的簇质心Cmerge确定为其中,C1和C2分别为所述两个邻近的簇的簇质心,N1和N2分别为属于所述两个各自的邻近的簇的权重点的数量。8.一种用于减少深度学习网络的权重存储位的方法,所述方法包括:针对具有多个层的深度学习网络的每个层l初始化簇的预定数量kl;针对每个层l,反复地分配权重的簇的质心并关于质心对权重进行量化,直到针对量化的层l确定了最低平均聚类误差εl为止;从所述多个层确定具有作为所述多个层的聚类误差εl的最小值的聚类误差εl*的层l*;将层l*的簇的预定数量减少一而作为用于对层l*进行量化的簇的数量;基于层l*的簇的减少的预定数量,对层l*进行重新量化;继续从所述多个层确定具有作为所述多个层的聚类误差εl的最小值的聚类误差εl*的另一个层l*,将所述另一个层l*的簇的预定数量减少一而作为用于对所述另一个层l*进行量化的簇的数量,基于所述另一个层l*的簇的减少的预定...

【专利技术属性】
技术研发人员:冀正平约翰·韦克菲尔德·布拉泽斯
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1