通过二维符号进行机器学习转让专利

申请号 : CN201910295688.3

文献号 : CN110070186B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨林孙宝华

申请人 : 海青智盈技术公司

摘要 :

公开了通过2‑D符号促进机器学习的方法。在第一计算系统中接收对象的特征,所述第一计算系统上安装有2‑D符号创建应用模块。根据一组符号创建规则由所述特征形成多层2‑D符号。所述2‑D符号是被划分为多个子矩阵的N×N像素矩阵,每个子矩阵包含一个特征,其中N是正整数。通过使用图像处理技术在第二计算系统中学习2‑D符号中的组合特征的含义,以对从第一计算系统传输的2‑D符号进行分类。符号创建规则确定2‑D符号中的子矩阵的重要性顺序、大小和位置。

权利要求 :

1.一种通过二维(2-D)符号促进机器学习的方法,所述方法包括:在第一计算系统中接收对象的多个特征,所述第一计算系统上安装有2-D符号创建应用模块;

利用所述第一计算系统中的所述2-D符号创建应用模块,根据一组符号创建规则由所述多个特征形成多层2-D符号,所述2-D符号是被划分为多个子矩阵的N×N像素矩阵,每个子矩阵包含所述特征中的一个,其中N是正整数;以及通过使用图像处理技术,在第二计算系统中学习包含在所述2-D符号中的组合特征的含义,以对所述2-D符号进行分类,所述2-D符号在所述第一计算系统中形成,然后被传输到所述第二计算系统;

其中,所述一组符号创建规则包括:

基于机器学习技术中的一种确定所述多个特征的重要性顺序;

根据所述重要性顺序将对应特征与所述每个子矩阵相关联;

基于所述对应特征确定所述每个子矩阵的大小;以及

根据所述大小和所述重要性顺序将所述每个子矩阵放置在所述2-D符号中的特定位置。

2.根据权利要求1所述的方法,其中,所述多个特征包括由数字字形表示的数值特征。

3.根据权利要求1所述的方法,其中,所述多个特征包括由特定语言的单词或缩写表示的类别特征。

4.根据权利要求1所述的方法,其中,所述每个子矩阵具有正方形形状。

5.根据权利要求1所述的方法,其中,所述每个子矩阵具有矩形形状。

6.根据权利要求1所述的方法,其中,所述多个子矩阵包含相等大小的子矩阵。

7.根据权利要求1所述的方法,其中,所述多个子矩阵包含各种大小的子矩阵。

8.根据权利要求1所述的方法,其中,所述机器学习技术包括逻辑回归。

9.根据权利要求1所述的方法,其中,所述机器学习技术包括支持向量机。

10.根据权利要求1所述的方法,其中,所述机器学习技术包括梯度提升机。

11.一种通过二维(2-D)符号促进机器学习的方法,所述方法包括:在第一计算系统中接收自然语言文本串和与所述文本相关联的多个特征,所述第一计算系统上安装有2-D符号创建应用模块;

利用所述第一计算系统中的所述2-D符号创建应用模块,根据一组符号创建规则,由所述自然语言文本串和所述特征形成多层2-D符号,所述2-D符号是被分成第一部分和第二部分的N×N像素矩阵,所述第一部分被配置用于包含所述自然语言文本串,并且所述第二部分被分成多个子矩阵,每个子矩阵包含所述特征中的一个,其中N是正整数;以及通过使用图像处理技术,在第二计算系统中学习包含在所述2-D符号中的所述自然语言文本串以及相关联特征的含义,以对所述2-D符号进行分类,所述2-D符号在所述第一计算系统中形成,然后被传输到所述第二计算系统;

其中,所述一组符号创建规则包括:

基于机器学习技术中的一种确定所述多个特征的重要性顺序;

根据所述重要性顺序将对应特征与所述每个子矩阵相关联;

基于所述对应特征确定所述每个子矩阵的大小;

将所述语言文本串放置在所述2-D符号的所述第一部分中的特定位置;以及根据所述大小和所述重要性顺序将所述每个子矩阵放置在所述2-D符号的所述第二部分中的特定位置。

12.根据权利要求11所述的方法,其中,所述第一部分和所述第二部分中的每个均占据所述2-D符号的一半。

13.根据权利要求12所述的方法,其中,所述第一部分占据所述2-D符号的周边,而所述第二部分占据所述2-D符号的中心。

14.根据权利要求11所述的方法,其中,所述机器学习技术包括逻辑回归、支持向量机或梯度提升机。

15.根据权利要求11所述的方法,其中,所述含义包括所述文本的情感。

说明书 :

通过二维符号进行机器学习

技术领域

[0001] 本专利文件大体上涉及机器学习领域。更具体地,本文件涉及通过二维(2-D)符号进行机器学习。

背景技术

[0002] 机器学习是人工智能的应用。在机器学习中,计算机或计算设备被编程为像人类一样思考,以便可以教导计算机自己学习。神经网络的发展已成为教导计算机以人类的方式思考和理解世界的关键。
[0003] 从1950年代开始,在机器学习中已经实现了许多里程碑式的发现和成就。显著的发现和成就包括但不限于:逻辑回归(Logistic Regression)、支持向量机(Support Vector Machine,SVM)、梯度提升机(Gradient Boosting Machine,GBM)等。然后深度学习在2010年代变得更加可行。一种特定实现被称为基于细胞神经网络或基于细胞非线性网络(Cellular Nonlinear Networks,CNN)的计算系统。基于CNN的计算系统已经用于许多不同的领域和问题,包括但不限于图像处理。

发明内容

[0004] 本部分的目的是总结本发明的一些方面并简要介绍一些优选实施方式。可以在本部分以及本文的摘要和标题中进行简化或省略,以避免使本部分的目的模糊。这种简化或省略并不是对本发明的范围的限制。
[0005] 公开了通过2-D符号促进机器学习的方法。根据本公开的一方面,在第一计算系统中接收对象的若干特征,所述第一计算系统上安装有2-D符号创建应用模块。根据一组符号创建规则由该特征形成多层2-D符号。所述2-D符号是划分为若干子矩阵的N×N像素矩阵,每个子矩阵包含一个特征,其中N是正整数。通过使用图像处理技术,在第二计算系统中学习2-D符号中的组合特征的含义,以对从第一计算系统传输的2-D符号进行分类。
[0006] 根据本公开的另一方面,该组符号创建规则包含以下动作:基于机器学习技术中的一种确定多个特征的重要性顺序;根据重要性顺序将对应特征与所述每个子矩阵相关联;基于对应特征确定所述每个子矩阵的大小;以及根据大小和重要性顺序将所述每个子矩阵放置在2-D符号中的特定位置。
[0007] 根据本公开的又一方面,在第一计算系统中接收自然语言文本串和与该文本相关联的若干特征,所述第一计算系统上安装有2-D符号创建应用模块。根据一组符号创建规则由该文本以及该特征形成多层2-D符号。2-D符号是被分成第一部分和第二部分的N×N像素矩阵。第一部分被配置用于包含该文本,而第二部分被划分为若干子矩阵,每个子矩阵包含所述若干特征中的一个,其中N是正整数。通过使用图像处理技术,在第二计算系统中学习包含在2-D符号中的自然语言文本串以及相关联特征的含义,以对从第一计算系统传输的2-D符号进行分类。符号创建规则确定2-D符号中的子矩阵的重要性顺序、大小和位置。
[0008] 结合所附附图通过查阅下面对本发明的实施方式的详细描述,本发明的目的、特征和优点将变得显而易见。

附图说明

[0009] 参考以下描述、所附权利要求和随附附图,将更好地理解本发明的这些和其他特征、方面和优点,附图如下:
[0010] 图1是示出根据本发明实施方式的示例二维(2-D)符号的图,所述二维符号包括用于促进对所包含的组合特征的含义进行机器学习的N×N像素数据矩阵;
[0011] 图2A-2B是示出根据本发明实施方式的两个示例方案的图,其包括图1的示例2-D符号中的对象的特征;
[0012] 图2C是示出根据本发明的一个实施方式的包含对象的特征的示例2-D符号的图;
[0013] 图3A-3B是示出根据本发明实施方式的两个示例方案的图,其用于存储图1的2-D符号中的自然语言文本串以及相关联特征;
[0014] 图4A是示出根据本发明一个实施方式的用于机器学习包含在二维符号中的组合特征的含义的示例性基于细胞神经网络或细胞非线性网络(CNN)的计算系统的框图;
[0015] 图4B是示出根据本发明一个实施方式的示例性基于CNN的集成电路的框图,其用于基于卷积神经网络执行图像处理;
[0016] 图5A-5B是示出根据本发明一个实施方式的通过2-D符号促进机器学习的示例过程的流程图;
[0017] 图5C是示出根据本发明一个实施方式的2-D符号创建规则的示例过程的流程图;
[0018] 图6是示出根据本发明实施方式的使用图像处理技术通过多层二维符号进行示例自然语言处理的示意图;
[0019] 图7是示出根据本发明实施方式的基于卷积神经网络的示例图像处理技术的示意图;
[0020] 图8是示出根据本发明一个实施方式的基于CNN的集成电路中的示例CNN处理引擎的图;
[0021] 图9是示出根据本发明实施方式的图8的示例CNN处理引擎内的示例图像数据区域的图;
[0022] 图10A-10C是示出根据本发明实施方式的图9的示例图像数据区域内的三个示例像素位置的图;
[0023] 图11是示出根据本发明一个实施方式的用于在图8的示例CNN处理引擎中的像素位置处执行3×3卷积的示例数据排列的图;
[0024] 图12A-12B是示出根据本发明实施方式的两个示例2×2池化操作的图;
[0025] 图13是示出根据本发明一个实施方式的图8的示例CNN处理引擎中的图像数据的2×2池化操作的图;
[0026] 图14A-14C是示出根据本发明一个实施方式的输入图像内的图像数据区域的各种示例的图;以及
[0027] 图15是示出根据本发明实施方式的通过示例时钟偏移电路连接为环路的多个CNN处理引擎的图。

具体实施方式

[0028] 在以下描述中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本发明。本文的描述和表示是本领域有经验的或技术人员用于最有效地将他们的工作实质传达给本领域其他技术人员的常用手段。在其他情况下,没有详细描述众所周知的方法、过程和部件以避免不必要地使本发明的各方面模糊。
[0029] 本文对“一个实施方式”或“实施方式”的引用意味着结合该实施方式描述的特定特征、结构或特性可以包括在本发明的至少一个实施方式中。在说明书中各处出现的短语“在一个实施方式中”不一定都指代同一实施方式,也不是与其他实施方式互斥的单独或替代实施方式。本文使用的术语“竖直”、“水平”、“对角的”、“左”、“右”、“上”、“下”、“列”、“行”、“对角地”旨在提供用于描述目的的相对位置,并非旨在指定绝对参照系。另外,本文使用的术语“字符”和“脚本”可互换使用。
[0030] 本文参考图1-15讨论本发明的实施方式。然而,本领域技术人员将容易理解,本文关于这些附图给出的详细描述是出于解释目的,因为本发明延伸超出了这些限定的实施方式。
[0031] 首先参考图1,示出了显示示例二维(2-D)符号100的图,其用于促进对所包含的组合特征的含义进行机器学习。二维符号100包括N×N像素(即,N列乘以N行)数据矩阵。以首先行其次列的方式排列像素,如下所示:(1,1),(1,2),(1,3),...(1,N),(2,1),...,(N,1),...(N,N)。N是正整数,例如在一个实施方式中,N等于224。
[0032] 图2A是第一方案210,用于存储图1的示例2-D符号100中的对象的特征212。在第一示例方案210中,特征212以相等的大小均匀地定位。在第二示例方案220中,第一组特征222具有更大的大小,而第二组特征224具有更小的大小。特征总数为正数或正整数。
[0033] 在第一示例方案210中,所有特征212具有等同的重要性。在第二示例方案220中,第一组特征222比第二组特征224更重要。对于有多少组特征或特定组中有多少特征没有设定限制。换句话说,存在其他未示出的方案。
[0034] 存在两种类型的特征:数值特征和类别特征。特征的一个要求是对于每个样本对象进行唯一表示。
[0035] 数值特征可以具有不同的形式,例如,整数,具有分数的数等。为了确保唯一表示,可以使用几种技术来表示2-D符号中的数值分类。在一个实施方式中,数值特征由对应的数字字形表示(例如,图2C中的年龄)。在另一实施方式中,数值特征被量化为颜色强度(例如,在0和255之间的范围内),其可以由2-D符号的每个像素中的数据表示。在又一实施方式中,数值特征被量化为特定数值级别以确保特征的唯一表示。
[0036] 为了确保类别特征的唯一表示,还存在几种技术。在一个实施方式中,使用单词的首字母(例如,图2C中的male的m)。在另一实施方式中,使用整个单词(例如,以正方形格式排列的USA)。在另一实施方式中,使用缩写。此外,当特征包含未知(例如,“拒绝回答”、“不适用或NA或N/A”)时,特殊符号用于这种情况。
[0037] 图2C中示出了实际示例2-D符号230。存在五个特征:年龄-30、国籍-USA、婚姻状况-单身(single,s),性别-男性(male,m)和父母身份-无(no,n)。年龄是数值特征,而其他是类别特征。
[0038] 当对象包含自然语言文本串时,2-D符号100以不同的方案配置以存储文本和相关联特征两者。在一个实施方式中,2-D符号100被分成两部分:一部分用于文本,而另一部分用于相关联特征。存在许多用于划分2-D符号100的方案。图3A-3B中示出了两个示例方案。自然语言可能包括但不限于英语、法语、德语、西班牙语、意大利语、汉语、日语、韩语等。自然语言文本串可以是短语、句子、一段、段落、文章等等。
[0039] 在图3A中所示的第一示例方案310中,2-D符号100被分成第一部分311和第二部分312。第一部分311被配置为包含自然语言文本串。第二部分312被配置为包含文本的相关联特征313。存在许多方案来存储相关联特征313。在一个实施方式中,相关联特征313以相等的大小均匀地位于第二部分中,基本上类似于图2A中所示和所述的方案。在另一实施方式中,相关联特征313被分成多个具有不同重要性的组,基本上类似于图2B中所示和所述的方案。
[0040] 使用各种技术将自然语言文本串包含在第一部分312中,例如,从左到右,从上到下等。
[0041] 在图3B中所示的第二示例方案320中,第二部分322位于2-D符号100的中心,其中第一部分321围绕2-D符号100的外部周边。此外,待存储在第二部分322中的相关联特征可以以不同的方案配置,类似于图2A-2B中所示和所述的那些方案。
[0042] 在另一实施方式中,实现了关注机制,其中第二部分322被配置为包含文本的关键词、标题、前几个单词等的更明显的表示。该更明显的表示可以包括更大的字体或粗字体。
[0043] 现在参考图4A,显示了示出基于CNN的示例计算系统400的框图,其被配置用于对包含在二维符号中的组合特征的含义进行机器学习。
[0044] 基于CNN的计算系统400可以在如数字半导体芯片的集成电路上实现(例如,单个半导体晶圆中的硅衬底)并包含控制器410和多个CNN处理单元402a-402b,所述多个CNN处理单元可操作地耦接到至少一个输入/输出(I/O)数据总线420。控制器410被配置为控制
CNN处理单元402a-402b的各种操作,所述CNN处理单元在环路中与时钟偏移电路(例如,图
15中的时钟偏移电路1540)连接。
[0045] 在一个实施方式中,CNN处理单元402a-402b中的每个被配置用于处理图像数据,例如,图1的二维符号100。
[0046] 在另一实施方式中,基于CNN的计算系统是可扩展和可升级的数字集成电路。例如,数字集成电路的多个副本可以在单个半导体芯片上实现,如图4B所示。在一个实施方式中,在单个半导体晶圆中制造单个半导体芯片。
[0047] 所有CNN处理引擎都是相同的。为简化说明,图4B中仅示出了少数(即,CNN处理引擎422a-422h、432a-432h)。本发明对数字半导体芯片上的CNN处理引擎的数量没有限制。
[0048] 每个CNN处理引擎422a-422h、432a-432h包含CNN处理块424,第一组存储缓冲器426和第二组存储缓冲器428。第一组存储缓冲器426被配置用于接收图像数据并用于将已经接收的图像数据提供给CNN处理块424。第二组存储缓冲器428被配置用于存储过滤系数并用于将已经接收的过滤系数提供给CNN处理块424。一般来说,芯片上的CNN处理引擎的数n
量是2 ,其中n是整数(即0、1、2、3、...)。如图4B所示,CNN处理引擎422a-422h可操作地耦接到第一输入/输出数据总线430a,而CNN处理引擎432a-432h可操作地耦合到第二输入/输出数据总线430b。每个输入/输出数据总线430a-430b被配置用于独立地传输数据(即,图像数据和过滤系数)。在一个实施方式中,第一组存储缓冲器和第二组存储缓冲器包括随机存取存储器(random access memory,RAM),其可以是一种或多种类型的组合,例如,磁随机存取存储器、静态随机存取存储器等。第一组和第二组中的每组是逻辑定义的。换句话说,可以重新配置第一组和第二组的相应大小以适应图像数据和过滤系数的相应量。
[0049] 这里示出第一和第二I/O数据总线430a-430b以顺序方案连接CNN处理引擎422a-422h、432a-432h。在另一实施方式中,至少一个I/O数据总线可以具有与CNN处理引擎的不同的连接方案,以实现并行数据输入和输出以改善性能的同一目的。
[0050] 图5A是示出促进通过2-D符号进行机器学习的第一示例过程500的流程图。过程500通过在第一计算系统中接收对象的多个特征而在动作502处开始,所述第一计算系统上安装有2-D符号创建应用模块。
[0051] 接下来,在动作504处,基于一组符号创建规则,使用2-D符号创建应用模块,根据接收的特征形成多层2-D符号。2-D符号是N×N像素数据矩阵,其被划分为子矩阵,每个子矩阵包含一个对应特征。
[0052] 然后,在动作506处,通过使用图像处理技术在第二计算系统(例如,基于CNN的计算系统400)中学习组合特征的含义,以对2-D符号进行分类。
[0053] 图5B是示出通过2-D符号促进机器学习的第二示例过程510的流程图。过程510通过在第一计算系统中接收自然语言文本串以及该文本的相关联特征而在动作512处开始,所述第一计算系统上安装有2-D符号创建应用模块。
[0054] 接下来,在动作514处,使用2-D符号创建应用模块,根据自然语言文本串和相关联特征形成多层2-D符号。该符号是N×N像素数据矩阵,其被分成第一部分和第二部分。第一部分被配置用于包含自然语言文本串,而第二部分被进一步分成多个子矩阵,每个子矩阵包含相关联特征中的一个。
[0055] 然后,在动作516处,通过使用图像处理技术,在第二计算系统(例如,基于CNN的计算系统400)中学习包含在2-D符号中的自然语言文本以及相关联特征的含义,以对2-D符号进行分类。
[0056] 图5C是示出2-D符号创建规则的示例过程550的流程图。过程550通过基于机器学习技术中的一种确定多个特征的重要性顺序而在动作552处开始。机器学习技术包括但不限于逻辑回归(Logistic Regression)、支持向量机(SVM)、梯度提升机(GBM)等。
[0057] 接下来,在动作554处,根据重要性顺序将对应特征与子矩阵相关联。然后,在动作556处,基于对应特征确定每个子矩阵的大小。在一个实施方式中,子矩阵的大小基于正方形形状。在另一实施方式中,子矩阵的大小基于矩形形状。
[0058] 然后,在动作558处,根据重要性顺序的大小将每个子矩阵放置在2-D符号中的特定位置。
[0059] 图6是示出使用图像处理技术通过多层二维符号进行示例自然语言处理的示意图。
[0060] 对象的特征或自然语言文本串以及相关联特征是安装在第一计算系统620上的2-D符号创建应用模块622的输入610。多层二维符号631a-631c根据输入610形成。每个二维符号631a-631c是N×N像素数据矩阵(例如,三种不同颜色,红色、绿色和蓝色)。
[0061] 通过使用图像处理技术638,在第二计算系统640中学习包含在多层二维符号631a-631c中的组合特征的含义,以对多层二维符号631a-631c进行分类,所述多层二维符号形成在第一计算系统620中并传输到第二计算系统640。
[0062] 传输多层2-D符号631a-631c可以用许多众所周知的方式执行,例如,通过有线或无线网络。
[0063] 在一个实施方式中,第一计算系统620和第二计算系统640是相同的计算系统(未示出)。
[0064] 在又一实施方式中,第一计算系统620是通用计算系统,而第二计算系统640是基于CNN的计算系统400,其被实现为半导体芯片上的集成电路,如图4A所示。
[0065] 图像处理技术638包括预定义一组类别642(例如,图6中所示的“类别-1”,“类别-2”,..“类别-X”)。作为执行图像处理技术638的结果,确定各个类别的概率644,用于将预定义类别642中的每个与超字符的含义相关联。在图6所示的示例中,示出最高概率为
88.08%,为“类别-2”。换句话说,多层二维符号631a-631c包含超字符,其含义在所有预定义类别644中与“类别-2”相关联的概率为88.08%。在一个实施方式中,图像处理技术638包括
[0066] 图7中所示的示例卷积神经网络。
[0067] 图7是示出根据本发明实施方式的基于卷积神经网络的示例图像处理技术的示意图。
[0068] 基于卷积神经网络,使用第一组过滤器或权重720,利用卷积处理作为输入图像数据的多层二维符号711a-711c。因为2-D符号711a-711c的图像数据大于过滤器720。处理图像数据的每个对应的重叠子区域715。在获得卷积结果之后,可以在第一池化操作730之前进行激活。在一个实施方式中,使用在线性整流函数(rectified linear unit,ReLU)中执行的整流来实现激活。作为第一池化操作730的结果,图像数据被减小为减小的一组图像数据731a-731c。对于2×2池化,该减小的一组图像数据比先前的组减少了4倍。
[0069] 重复先前的卷积到池化过程。然后使用第二组过滤器740,利用卷积处理减小的一组图像数据731a-731c。类似地,处理每个重叠的子区域735。可以在第二池化操作740之前进行另一次激活。对数个层重复卷积到池化过程并最终连接到完全连接(Fully-Connected,FC)层760。在图像分类中,可以在FC层760中计算预定义类别542的相应概率
544。
[0070] 使用已知的数据集或数据库来训练该重复的卷积到池化过程。对于图像分类,数据集包含预定义的类别。在用于分类图像数据之前,可以调整并获得一组特定的过滤器、激活和池化,例如,过滤器类型的特定组合、过滤器的数量、过滤器的顺序、池化类型和/或何时执行激活。在一个实施方式中,图像数据是多层二维符号711a-711c,其由基于拉丁字母的语言文本串形成。
[0071] 在一个实施方式中,卷积神经网络基于视觉几何组(Visual Geometry,Group VGG16)架构神经网络。
[0072] 图8中示出了基于CNN的集成电路中的CNN处理引擎802的更多细节。CNN处理块804包含数字电路,该数字电路通过使用(Z+2)像素乘以(Z+2)像素区域的图像数据和来自相应存储缓冲器的对应过滤系数,在Z×Z像素位置处执行3×3卷积,以同时获得Z×Z卷积运算结果。利用Z×Z像素位置作为Z像素乘以Z像素的中心部分,加上围绕中心部分的一个像素边界,形成(Z+2)像素乘以(Z+2)像素区域。Z是正整数。在一个实施方式中,Z等于14,因此,(Z+2)等于16,Z×Z等于14×14=196,并且Z/2等于7。
[0073] 图9是示出表示具有Z×Z像素位置920的中心部分的(Z+2)像素乘以(Z+2)像素区域910的图,其在CNN处理引擎802中使用。
[0074] 为了实现更快的计算,在CNN处理块804中使用并实现了少量计算性能改进技术。在一个实施方式中,图像数据的表示使用实际上尽可能少的位(例如,5位表示)。在另一实施方式中,每个过滤系数表示为具有小数点的整数。类似地,表示过滤系数的整数使用实际上尽可能少的位(例如,12位表示)。因此,然后可以使用定点算法执行3×3卷积以实现更快的计算。
[0075] 每个3×3卷积产生一个卷积运算结果Out(m,n),基于以下公式:
[0076]
[0077] 其中:
[0078] m,n是对应的行号和列号,用于识别(Z+2)像素乘以(Z+2)像素区域内的哪个图像数据(像素)执行卷积;
[0079] In(m,n,i,j)是区域内的以像素位置(m,n)为中心的3像素乘以3像素范围;
[0080] C(i,j)表示九个权重系数C(3×3)中的一个,每个权重系数对应于3像素乘以3像素范围中的一个;
[0081] b表示偏移系数;以及
[0082] i,j是权重系数C(i,j)的指数。
[0083] 每个CNN处理块804同时产生Z×Z卷积运算结果,并且所有CNN处理引擎执行同时运算。在一个实施方式中,3×3权重或过滤系数分别为12位,而偏移或偏置系数为16位或18位。
[0084] 图10A-10C示出了Z×Z像素位置的三个不同示例。图10A中所示的第一像素位置1031是左上角处的(Z+2)像素乘以(Z+2)像素区域内的3像素乘以3像素范围的中心。图10B中所示的第二像素位置1032是第一像素位置1031向右移位一个像素数据。图10C中所示的第三像素位置1033是通常的示例像素位置。Z×Z像素位置在(Z+2)像素乘以(Z+2)像素区域内包含多个重叠的3像素乘以3像素范围。
[0085] 为了在每个采样位置处执行3×3卷积,图11中示出了示例数据排列。图像数据(即,In(3×3))和过滤系数(即,权重系数C(3×3)以及偏移系数b)被馈送到示例CNN 3×3
电路1100中。在根据公式(1)进行3×3卷积运算之后,产生一个输出结果(即Out(1×1))。在每个采样位置处,图像数据In(3×3)以像素坐标(m,n)1105为中心,具有八个直接相邻像素
1101-1104、1106-1109。
[0086] 图像数据存储在第一组存储缓冲器806中,而过滤系数存储在第二组存储缓冲器808中。图像数据和过滤系数都在数字集成电路的每个时钟处馈送到CNN块804。过滤系数(即,C(3×3)和b)直接从第二组存储缓冲器808馈送到CNN处理块804中。然而,图像数据经由多路复用器MUX 805从第一组存储缓冲器806馈送到CNN处理块804中。多路复用器805基于时钟信号(例如,脉冲812)从第一组存储缓冲器中选择图像数据。
[0087] 另外,多路复用器MUX 805通过时钟偏移电路820从第一相邻CNN处理引擎(从图8的左侧,未示出)中选择图像数据。
[0088] 同时,馈送到CNN处理块804中的图像数据的副本经由时钟偏移电路820被发送到第二相邻CNN处理引擎(到图8的右侧,未示出)。时钟偏移电路820可以使用已知的技术(例如,D触发器822)实现。
[0089] 在针对预定数量的过滤系数对每组图像数据执行3×3卷积之后,基于另一时钟信号(例如,脉冲811)经由另一多路复用器MUX 807将卷积运算结果Out(m,n)发送到第一组存储缓冲器。绘制了示例时钟周期810以演示脉冲811和脉冲812之间的时间关系。如图所示,脉冲811是脉冲812之前的一个时钟,因此,在所有CNN处理引擎通过时钟偏移电路820处理特定的图像数据块之后,3×3卷积运算结果存储在第一组存储缓冲器中。
[0090] 在根据公式(1)获得卷积运算结果Out(m,n)之后,可以执行激活过程。任何小于零(即负值)的卷积运算结果Out(m,n)都被设置为零。换句话说,仅保留输出结果的正值。例如,正输出值10.5保持为10.5而-2.3变为0。激活导致基于CNN的集成电路的非线性。
[0091] 如果需要2×2池化操作,则Z×Z输出结果减小到(Z/2)×(Z/2)。为了将(Z/2)×(Z/2)输出结果存储在第一组存储缓冲器中的对应位置,需要额外的簿记技术来跟踪正确的存储地址,使得四个(Z/2)×(Z/2)输出结果可以在一个CNN处理引擎中处理。
[0092] 为了演示2×2池化操作,图12A是以图形方式示出将2像素乘以2像素块的第一示例输出结果减小到单个值10.5的图,该值是四个输出结果中的最大值。图12A中所示的技术被称为“最大池化”。当四个输出结果的平均值4.6用于图12B中所示的单个值时,它被称为“平均池化”。存在其他池化操作,例如,“混合最大平均池化”,其是“最大池化”和“平均池化”的组合。池化操作的主要目标是减小被处理的图像数据的大小。图13是示出通过2×2池化操作将Z×Z像素位置缩小到(Z/2)×(Z/2)位置的图,其是原始大小的四分之一。
[0093] 输入图像通常包含大量图像数据。为了执行图像处理操作,示例输入图像1400(例如,图1的二维符号100)被划分为Z像素乘以Z像素块1411-1412,如图14A所示。然后将与这些Z像素乘以Z像素块中的每个相关联的图像数据馈送到相应的CNN处理引擎中。在特定Z像素乘以Z像素块中的Z×Z像素位置中的每个处,在对应的CNN处理块中同时执行3×3卷积。
[0094] 尽管本发明不需要输入图像的特定特征尺寸,但是输入图像可能需要调整大小以适合针对某些图像处理过程的预定义特征尺寸。在一实施方式中,需要具有(2L×Z)像素乘以(2L×Z)像素的正方形形状。L是正整数(例如,1、2、3、4等)。当Z等于14并且L等于4时,特征尺寸为224。在另一实施方式中,输入图像是具有(21×Z)像素和(2J×Z)像素的尺寸的矩形形状,其中I和J是正整数。
[0095] 为了在Z像素乘以Z像素块的边界周围的像素位置处正确地执行3×3卷积,需要来自相邻块的附加图像数据。图14B示出了在(Z+2)像素乘以(Z+2)像素区域1430内的通常的Z像素乘以Z像素块1420(用虚线划界)。(Z+2)像素乘以(Z+2)像素区域由来自当前块的Z像素乘以Z像素的中心部分,和来自对应的相邻块的四个边(即,上、右、下和左)和四个角(即,左上、右上、右下和左下)形成。
[0096] 图14C示出了两个示例Z像素乘以Z像素块1422-1424,和相应的相关联的(Z+2)像素乘以(Z+2)像素区域1432-1434。这两个示例块1422-1424沿输入图像的周边定位。第一示例Z像素乘以Z像素块1422位于左上角,因此,第一示例块1422具有来自两个边和一个角的邻居。值“0”用于在相关联的(Z+2)像素乘以(Z+2)像素区域1432中没有邻居(显示为阴影区域)的两个边和三个角,以形成图像数据。类似地,第二示例块1424的相关联的(Z+2)像素乘以(Z+2)像素区域1434需要将“0”用于上边和两个上角。类似地处理沿输入图像的周边的其他块。换句话说,为了在输入图像的每个像素处执行3×3卷积的目的,在输入图像的周边外部添加一层零(“0”)。这可以通过许多众所周知的技术来实现。例如,将第一组存储缓冲器的默认值设置为零。如果没有从相邻块填充图像数据,则那些边和角将包含零。
[0097] 当在集成电路上配置多于一个CNN处理引擎时。CNN处理引擎经由时钟偏移电路连接到第一和第二相邻CNN处理引擎。为简化说明,仅示出用于图像数据的CNN处理块和存储缓冲器。图15中示出了用于一组示例CNN处理引擎的示例时钟偏移电路1540。
[0098] CNN处理引擎经由第二示例时钟偏移电路1540连接以形成环路。换句话说,每个CNN处理引擎将其自己的图像数据发送到第一邻居,并且同时接收第二邻居的图像数据。时钟偏移电路1540可以用众所周知的方式实现。例如,每个CNN处理引擎与D触发器1542连接。
[0099] 尽管已经参考本发明的特定实施方式描述了本发明,但是这些实施方式仅仅是说明性的,而不是对本发明的限制。将向本领域技术人员建议对具体公开的示例实施方式的各种修改或改变。例如,虽然已经用224×224像素矩阵的特定示例描述和示出了二维符号,但是可以使用其他大小来实现与本发明基本相似的目标,例如,896×896。此外,虽然已经示出并描述了自然语言文本串被排列为从左到右、从上到下,但是可以使用其他顺序来实现相同的,例如从下到上、从右到左,或任何其他相符的组合。总之,本发明的范围不应限于本文公开的特定示例实施方式,并且易于向本领域普通技术人员建议的所有修改都应包括在本申请的精神和范围内以及所附权利要求的范围内。