一种基于堆叠式宽度学习模型的在线学习芯片的制作方法

专利2022-05-09  81



1.本发明涉及堆叠式宽度学习模型技术领域,更具体地说,涉及一种基于堆叠式宽度学习模型的在线学习芯片。


背景技术:

2.宽度学习系统(broad learning system,bls)是一种高效、浅层的增量式神经网络学习模型。它将输入映射成一组特征节点,随后再将特征节点映射成一组增强节点。宽度模型的输出可以表示为特征节点和增强节点的加权组合。宽度学习系统能够利用现有节点通过某种映射例如随机映射得到新的特征节点或者增强节点,动态增加新的特征节点或增强节点以达到更好的学习效果。
3.宽度学习系统具有与深度神经网络相似的性能,但是相比于深度神经网络,宽度学习系统复杂度低,计算量低,具有计算快速、拟合迅速的特点。但是现有的宽度学习算法都是单层横向扩展的,缺少一定的深度结构,因此具有深宽结构的宽度学习算法有待研究。
4.随着学习模型规模日益复杂,大大约束了芯片化的速度。现有的人工智能芯片实质上人工智能算法加速芯片,加之神经网络算法的离线训练方式,导致神经网络芯片不具备在线学习能力,不能随着大数据的更新而实时更新模型。现阶段的基于神经网络的处理器分为三类:1.基于冯诺依曼结构的通用处理器,例如人们所熟知的cpu、gpu、dsp等芯片;2.基于专用集成电路(application

specific integrated circuit,asic)设计的定制处理器;3.可重构处理器。其中,可重构处理器一般包括现场可编程门阵列(filed

programmable gate array,fpga)和粗粒度可重构阵列(coarse

grained reconfigurable array,cgra)。
5.cgra是动态可重构处理器,采用粗粒度可重构处理阵列,粗粒度体现在通过配置信息将计算电路规整为特定处理单元,并通过配置信息进行切换计算电路。单次配置信息的信息量含量较小,具有实时切换效果,因此属于动态重构处理器,是实现在线学习神经网络运行的理想芯片,但目前利用cgra来实现在线学习神经网络运行仍处于空白。


技术实现要素:

6.为克服现有技术中的缺点与不足,本发明的目的在于提供一种基于堆叠式宽度学习模型的在线学习芯片;该芯片可计算资源低,功耗低,实时性强,具有在线学习能力。
7.为了达到上述目的,本发明通过下述技术方案予以实现:一种基于堆叠式宽度学习模型的在线学习芯片,其特征在于:在线学习芯片为粗粒度可重构阵列cgra芯片;在线学习包括主控制器、存储器和由大量处理单元构成的可重构处理单元阵列;所述存储器包括指令存储器、配置信息存储器、输入存储器和输出存储器;
8.所述指令存储器存储有用于控制主控制器运行的控制码;所述控制码根据堆叠式宽度学习模型代码编译而成;所述配置信息存储器存储有配置信息;配置信息包括宽度学习层的层数、各层宽度学习层的特征节点数量和增强节点数量,以及节点连接关系;初始化
的配置信息根据只包括一层宽度学习层的堆叠式宽度学习初始化模型来编译;
9.所述在线学习芯片的运行方式是:包括如下步骤:
10.s1、主控制器从指令存储器中读取控制码,控制配置信息存储器向可重构处理单元阵列输出初始化的配置信息;
11.可重构处理单元阵列根据初始化的配置信息将各个特征节点和增强节点一对一配置到处理单元,并根据配置信息的节点连接关系配置处理单元的连接关系形成初始模型电路;
12.s2、主控制器控制输入存储器将识别训练样本特征输入到模型电路中;模型电路将处理结果输出到输出存储器,输出存储器计算出性能值并将性能值信息反馈回主控制器;
13.s3、主控制器判断计算所得的性能值与设定的性能阈值之间的大小:
14.若计算所得的性能值<设定的性能阈值,则跳至步骤s4;
15.若计算所得的性能值≥设定的性能阈值,则跳至步骤s5;
16.s4、判断当前宽度学习层的宽度规模是否小于上限阈值:
17.若是,则主控制器更新配置信息存储器中的宽度配置信息:横向增加特征节点和增强节点,并设定新增特征节点和增强节点的连接关系;主控制器控制配置信息存储器向可重构处理单元阵列输出更新后的宽度配置信息,可重构处理单元阵列收到宽度配置信息后更新模型电路;并跳至步骤s2;
18.否则主控制器固定当前宽度学习层的配置信息,并存储到配置信息存储器中;之后主控制器更新配置信息存储器中的深度配置信息,在当前宽度学习层上堆叠新的一层宽度学习层;主控制器控制配置信息存储器向可重构处理单元阵列输出更新后的深度配置信息,可重构处理单元阵列收到深度配置信息后更新模型电路;并跳至步骤s2;
19.s5、在线学习停止;将当前的配置信息和模型电路保存,实现在线学习芯片固化。
20.首先,本发明提出了一种堆叠式宽度学习模型;传统宽度学习模型是一种高效、浅层的增量式学习模型,具有动态横向扩展性,即新加入的数据以有效且高效的方式在横向上更新模型(宽度动态),无需重新训练整体模型。而堆叠式宽度学习模型是在传统宽度学习模型的基础上,通过残差连接将多个宽度学习模块叠加起来,纵向增加了网络的深度,提高了网络的学习能力,同时纵向的训练方式仍然保留宽度学习的动态扩展性(深度动态),无需重新训练整体模型。不同于深度神经网络的固定模型结构,堆叠式宽度学习模型是一种具有宽度动态扩展性和深度动态扩展性的模型,从而具有在线学习能力。同时模型复杂度低,具有高效和实时性,而且模型内部运算属于常规矩阵运算,容易实现芯片化。
21.其次,本发明结合cgra芯片的动态可重构性(相当于动态可编程),堆叠式宽度学习模型的深宽动态扩展优势在硬件上得以发挥。因此本发明在线学习芯片,通过数据管道不断将大量新训练数据输入到该芯片,经过预置的堆叠式宽度学习模型处理,向主控制器反馈结果,在一定阈值范围内按照既定的调整规则,重新调节堆叠式宽度学习模型的宽度结构和深度结构,并实时更新cgra芯片的配置信息,重构出新堆叠式宽度学习模型的硬件结构。不断通过新训练数据的在线学习,性能达到既定的停止条件下,将得到当前最佳且专用于当前任务的堆叠式宽度学习推理芯片。
22.综上所述,本发明在线学习芯片因堆叠式宽度学习模型具有动态扩展性,从而具
有在线学习能力,相对于深度神经网络的离线训练方式,大大缩短了从研究到落地的科研时间和科研成本;相对于深度神经网络计算芯片,具有一定的人工智能性;该芯片的内置算法因计算量低而具有高效且快速的优点,相比于深度神经网络,具有实时性。
23.优选地,所述步骤s4中,在当前宽度学习层上堆叠新的一层宽度学习层时,当前宽度学习层与新的一层宽度学习层之间采用残差连接。
24.优选地,所述控制码和配置信息的编译方法是:将堆叠式宽度学习模型代码进行规整,将规整后的代码分成软件部分与硬件部分;所述控制码根据所述软件部分编译而成;所述配置信息根据所述硬件部分编译而成。
25.优选地,所述将堆叠式宽度学习模型代码进行规整,是指:将堆叠式宽度学习模型的特征节点、增强节点、宽度学习层代码部分进行规整,形成解耦合的模块化形式,以便后期快速编译成高效的节点配置、宽度配置、深度配置信息;根据任务和评估标准,规整代码,设定性能阈值范围和在线学习停止条件,以便形成高效的在线学习环境。
26.优选地,所述将规整后的代码分成软件部分与硬件部分,是指:将特征节点、增强节点、宽度学习层从代码中划分出来作为硬件部分,硬件部分编译成配置信息存储到配置信息存储器;代码的其余部分为软件部分,软件部分编译成主控制器的控制码,以控制数据交换。
27.优选地,所述性能值是指准确率或召回率或敏感度或f1分数。
28.与现有技术相比,本发明具有如下优点与有益效果:
29.(1)现有深度神经网络模型的参数量巨大,模型计算复杂度高,芯片化需要对模型进行大量的压缩或者剪枝操作,性能因此会被降低,而且当前处理器的乘累加器阵列不适用于大量的卷积运算,因此深度神经网络芯片化技术难度大。而本发明堆叠式宽度学习模型以宽度和深度增量式学习的方式大大减少模型的计算量,而且其模型的复杂度远远低于深度神经网络模型,堆叠式宽度学习模型的基础计算是简单的矩阵运算,因此无需过多调整原有芯片的架构,便可芯片化。
30.(2)现有的深度神经网络芯片只是算法加速芯片,即在训练或者推理过程中能达到高效性能的加速芯片,并不是真正意义上的人工智能芯片。而基于堆叠式宽度学习模型的在线学习芯片,因堆叠式宽度学习模型能够在训练过程中灵活调整深度与宽度结构,且粗粒度可重构阵列也具有可重构性和动态硬件编程能力,因此该芯片具有在线学习能力。
31.(3)基于堆叠式宽度学习模型的在线学习芯片,所需计算资源低,功耗低,实时性强,而且人工干预性低。
32.(4)基于堆叠式宽度学习模型的在线学习芯片在某一任务数据训练结束后,能直接固化模型芯片,形成当前任务专用集成电路处理器,无需繁复的工序,便可得到针对当前任务的推理芯片,能够大大缩短研究到落地的时间成本和科研成本。
附图说明
33.图1是本发明在线学习芯片的结构框图;
34.图2是本发明在线学习芯片的运行方式的流程图;
35.图3是传统宽度学习模型的宽度动态示意图;
36.图4是本发明堆叠式宽度学习模型的训练动态示意图。
具体实施方式
37.下面结合附图与具体实施方式对本发明作进一步详细的描述。
38.实施例
39.本实施例一种基于堆叠式宽度学习模型的在线学习芯片,其特征在于:在线学习芯片为粗粒度可重构阵列cgra芯片;如图1所示,在线学习芯片包括主控制器、存储器和由大量处理单元构成的可重构处理单元阵列;所述存储器包括指令存储器、配置信息存储器、输入存储器和输出存储器。
40.粗粒度可重构阵列cgra芯片的各部分功能分别为:
41.主控制器:负责控制整个逻辑结构的运行、数据的交换。
42.指令存储器:存储主控器所需的控制码。
43.输入存储器:存储的是待处理数据。
44.输出存储器:保存的是处理单元的运算结果。
45.配置信息存储器:是芯片的核心部分之一;芯片“重构”过程主要是通过配置信息的切换完成的。根据配置信息切换的时长,可分为静态可重构处理器和动态可重构处理器。而fpga提供细粒度的硬件电路计算,切换配置信息所需时间非常长难以做到实时,且运行过程中电路结构不会发生变化,因此属于静态可重构处理器。而粗粒度可重构处理阵列cgra则是将算法模型进行软硬件划分,并将模型适合硬件加速的计算密集型部分划分出来,编译成配置信息存储到配置存储器,而软件部分编译成主控制器的控制码,控制数据交换,并根据配置信息在可重构处理单元中实时配置电路。因此计算阵列的电路形式可以在程序运行的过程中动态调整,以便于硬件重复利用。
46.在基于堆叠式宽度学习模型的在线学习芯片设计中,根据堆叠式宽度学习算法的宽度和深度动态扩展性,将节点与宽度学习模块编译成层次化的配置信息,并存储到配置存储器中。首先堆叠式宽度学习的最小单位是特征节点与增强节点,通过特征节点与增强节点的组合形成宽度学习基础模块,通过堆叠不同的宽度学习基础模块获得整体的堆叠式宽度学习模型。基于堆叠式宽度学习模型的层次化结构,本专利设置层次化的配置信息,以便硬件适应模型层次化结构。特征节点与增强节点设置编译成节点配置信息,宽度学习基础模块的横向布局将设置编译成宽度配置信息,而堆叠层纵向布局将设置编译成深度配置信息。设置由节点配置、宽度配置、深度配置组成的自底向上的层次化配置信息,相当于把计算单元进行了进一步的不同层次化的电路集成,大大缩短了可配置互连的复杂度,提高效率,保持更好的实时性。
47.可重构处理单元阵列:由大量的处理单元(processing element,pe)构成;每个处理单元由一个算术逻辑单元、一些寄存器和一些多路复用选择器组成,可以相应执行各种粗粒度的运算操作;两两处理单元间的互连形式有很多种,常用的是一维互连形式,只有上下处理单元间可以互通。由于堆叠式宽度学习具有横向和纵向扩展性,因此采用二维mesh互连模式,即两两处理单元间可以横向与纵向互通。
48.指令存储器存储有用于控制主控制器运行的控制码;控制码根据堆叠式宽度学习模型代码编译而成;配置信息存储器存储有配置信息;配置信息包括宽度学习层的层数、各层宽度学习层的特征节点数量和增强节点数量,以及节点连接关系;初始化的配置信息根据只包括一层宽度学习层的堆叠式宽度学习初始化模型来编译;
49.所述在线学习芯片的运行方式是:如图2所示,包括如下步骤:
50.s1、主控制器从指令存储器中读取控制码,控制配置信息存储器向可重构处理单元阵列输出初始化的配置信息;
51.可重构处理单元阵列根据初始化的配置信息将各个特征节点和增强节点一对一配置到处理单元,并根据配置信息的节点连接关系配置处理单元的连接关系形成初始模型电路;
52.s2、主控制器控制输入存储器将识别训练样本特征输入到模型电路中;模型电路将处理结果输出到输出存储器,输出存储器计算出性能值并将性能值信息反馈回主控制器;
53.s3、主控制器判断计算所得的性能值(性能值是指准确率或召回率或敏感度或f1分数)与设定的性能阈值之间的大小:
54.若计算所得的性能值<设定的性能阈值,则跳至步骤s4;
55.若计算所得的性能值≥设定的性能阈值,则跳至步骤s5;
56.s4、判断当前宽度学习层的宽度规模是否小于上限阈值:
57.若是,则主控制器更新配置信息存储器中的宽度配置信息:横向增加特征节点和增强节点,并设定新增特征节点和增强节点的连接关系;主控制器控制配置信息存储器向可重构处理单元阵列输出更新后的宽度配置信息,可重构处理单元阵列收到宽度配置信息后更新模型电路;并跳至步骤s2;
58.否则主控制器固定当前宽度学习层的配置信息,并存储到配置信息存储器中;之后主控制器更新配置信息存储器中的深度配置信息,在当前宽度学习层上堆叠新的一层宽度学习层;主控制器控制配置信息存储器向可重构处理单元阵列输出更新后的深度配置信息,可重构处理单元阵列收到深度配置信息后更新模型电路;并跳至步骤s2;
59.在当前宽度学习层上堆叠新的一层宽度学习层时,当前宽度学习层与新的一层宽度学习层之间采用残差连接;
60.s5、在线学习停止;将当前的配置信息和模型电路保存,实现在线学习芯片固化。
61.优选方案是:所述控制码和配置信息的编译方法是:将堆叠式宽度学习模型代码进行规整,将规整后的代码分成软件部分与硬件部分;所述控制码根据所述软件部分编译而成;所述配置信息根据所述硬件部分编译而成。
62.所述将堆叠式宽度学习模型代码进行规整,是指:将堆叠式宽度学习模型的特征节点、增强节点、宽度学习层代码部分进行规整,形成解耦合的模块化形式,以便后期快速编译成高效的节点配置、宽度配置、深度配置信息;根据任务和评估标准,规整代码,设定性能阈值范围和在线学习停止条件,以便形成高效的在线学习环境。
63.所述将规整后的代码分成软件部分与硬件部分,是指:将特征节点、增强节点、宽度学习层从代码中划分出来作为硬件部分,硬件部分编译成配置信息存储到配置信息存储器;代码的其余部分为软件部分,软件部分编译成主控制器的控制码,以控制数据交换。
64.首先,本发明提出了一种堆叠式宽度学习模型。传统宽度学习模型是一种高效、浅层的增量式学习模型,具有动态横向扩展性,即新加入的数据以有效且高效的方式在横向上更新模型(宽度动态),无需重新训练整体模型。
65.传统宽度学习模型如图3所示,将输入特征x随机映射到特征节点z1,z2,

,z
n
,然
后映射的特征被随机映射成增强节点h1,h2,

,h
m
。最后将映射特征与增强特征连接到输出端,对应的权重系数w可通过伪逆求解。如果网络结构需要扩展,宽度学习系统可以进行宽度动态扩展,即针对新输入数据,在宽度上扩展特征节点和增强节点,进行快速增量学习而无需重新训练整个网络。而输出层的伪逆的更新,只需要计算新增加部分的权重即可。这种横向增量学习的训练过程可节省大量时间,因此宽度学习系统可以高效地应用于在线学习。
66.堆叠式宽度学习模型是在传统宽度学习模型的基础上,通过残差连接将多个宽度学习模块叠加起来,纵向增加了网络的深度,提高了网络的学习能力,同时纵向的训练方式仍然保留宽度学习的动态扩展性(深度动态),无需重新训练整体模型。不同于深度神经网络的固定模型结构,堆叠式宽度学习模型是一种具有宽度动态扩展性和深度动态扩展性的模型,从而具有在线学习能力。同时模型复杂度低,具有高效和实时性,而且模型内部运算属于常规矩阵运算,容易实现芯片化。
67.堆叠式宽度学习模型的构建过程如图4所示:训练时,首先用样本x训练第一个宽度学习模块来逼近目标输出y,然后将其输出u1作为训练第二个宽度学习模块的输入,从而逼近残差y

u1,以此类推,第i个宽度学习模块的输出u
i
作为训练第i 1个宽度学习模块的输入来逼近残差整个网络的输出可以表示为在整个过程中,可以纵向自由增加宽度学习模块以及横向增加每个模块内部的特征节点和增强节点。
68.堆叠式宽度学习具有“宽度动态扩展性”和“深度动态扩展性”。宽度动态扩展性体现在每一个宽度学习模块内部的神经元上:当需要增加特征节点、增强节点时,只需要学习新增部分神经元的权重即可,原始节点的权重矩阵可增量学习,不用重新学习。深度动态扩展性体现在宽度学习模块之间:当叠加新的宽度学习模块时,下层模块的参数固定不变,只需要计算新叠加的宽度学习模块的网络参数即可。在实际应用中,堆叠式宽度学习可以灵活地改变网络结构的宽度和深度,能够针对不同任务进行动态调整,具有很强的适应性。
69.其次,本发明结合cgra芯片的动态可重构性(相当于动态可编程),堆叠式宽度学习模型的深宽动态扩展优势在硬件上得以发挥。因此本发明在线学习芯片,通过训练数据管道不断将大量新数据输入到该芯片,经过预置的堆叠式宽度学习模型处理,向主控制器反馈结果,在一定阈值范围内按照既定的调整规则,重新调节堆叠式宽度学习模型的宽度结构和深度结构,并实时更新cgra芯片的配置信息,重构出新堆叠式宽度学习模型的硬件结构。不断通过新训练数据的在线学习,性能达到既定的停止条件下,将得到当前最佳且专用于当前任务的堆叠式宽度学习推理芯片。
70.综上所述,本发明在线学习芯片因堆叠式宽度学习模型具有动态扩展性,从而具有在线学习能力,相对于深度神经网络的离线训练方式,大大缩短了从研究到落地的科研时间和科研成本;相对于深度神经网络计算芯片,具有一定的人工智能性;该芯片的内置算法因计算量低而具有高效且快速的优点,相比于深度神经网络,具有实时性。
71.本发明基于堆叠式宽度学习模型的在线学习芯片,其任务可以为情感识别,也可以为其他分类任务。
72.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

技术特征:
1.一种基于堆叠式宽度学习模型的在线学习芯片,其特征在于:在线学习芯片为粗粒度可重构阵列cgra芯片;在线学习包括主控制器、存储器和由大量处理单元构成的可重构处理单元阵列;所述存储器包括指令存储器、配置信息存储器、输入存储器和输出存储器;所述指令存储器存储有用于控制主控制器运行的控制码;所述控制码根据堆叠式宽度学习模型代码编译而成;所述配置信息存储器存储有配置信息;配置信息包括宽度学习层的层数、各层宽度学习层的特征节点数量和增强节点数量,以及节点连接关系;初始化的配置信息根据只包括一层宽度学习层的堆叠式宽度学习初始化模型来编译;所述在线学习芯片的运行方式是:包括如下步骤:s1、主控制器从指令存储器中读取控制码,控制配置信息存储器向可重构处理单元阵列输出初始化的配置信息;可重构处理单元阵列根据初始化的配置信息将各个特征节点和增强节点一对一配置到处理单元,并根据配置信息的节点连接关系配置处理单元的连接关系形成初始模型电路;s2、主控制器控制输入存储器将识别训练样本特征输入到模型电路中;模型电路将处理结果输出到输出存储器,输出存储器计算出性能值并将性能值信息反馈回主控制器;s3、主控制器判断计算所得的性能值与设定的性能阈值之间的大小:若计算所得的性能值<设定的性能阈值,则跳至步骤s4;若计算所得的性能值≥设定的性能阈值,则跳至步骤s5;s4、判断当前宽度学习层的宽度规模是否小于上限阈值:若是,则主控制器更新配置信息存储器中的宽度配置信息:横向增加特征节点和增强节点,并设定新增特征节点和增强节点的连接关系;主控制器控制配置信息存储器向可重构处理单元阵列输出更新后的宽度配置信息,可重构处理单元阵列收到宽度配置信息后更新模型电路;并跳至步骤s2;否则主控制器固定当前宽度学习层的配置信息,并存储到配置信息存储器中;之后主控制器更新配置信息存储器中的深度配置信息,在当前宽度学习层上堆叠新的一层宽度学习层;主控制器控制配置信息存储器向可重构处理单元阵列输出更新后的深度配置信息,可重构处理单元阵列收到深度配置信息后更新模型电路;并跳至步骤s2;s5、在线学习停止;将当前的配置信息和模型电路保存,实现在线学习芯片固化。2.根据权利要求1所述的基于堆叠式宽度学习模型的在线学习芯片,其特征在于:所述步骤s4中,在当前宽度学习层上堆叠新的一层宽度学习层时,当前宽度学习层与新的一层宽度学习层之间采用残差连接。3.根据权利要求1所述的基于堆叠式宽度学习模型的在线学习芯片,其特征在于:所述控制码和配置信息的编译方法是:将堆叠式宽度学习模型代码进行规整,将规整后的代码分成软件部分与硬件部分;所述控制码根据所述软件部分编译而成;所述配置信息根据所述硬件部分编译而成。4.根据权利要求3所述的基于堆叠式宽度学习模型的在线学习芯片,其特征在于:所述将堆叠式宽度学习模型代码进行规整,是指:将堆叠式宽度学习模型的特征节点、增强节点、宽度学习层代码部分进行规整,形成解耦合的模块化形式;根据任务和评估标准,规整代码,设定性能阈值范围和在线学习停止条件。
5.根据权利要求4所述的基于堆叠式宽度学习模型的在线学习芯片,其特征在于:所述将规整后的代码分成软件部分与硬件部分,是指:将特征节点、增强节点、宽度学习层从代码中划分出来作为硬件部分,硬件部分编译成配置信息存储到配置信息存储器;代码的其余部分为软件部分,软件部分编译成主控制器的控制码。6.根据权利要求1所述的基于堆叠式宽度学习模型的在线学习芯片,其特征在于:所述性能值是指准确率或召回率或敏感度或f1分数。
技术总结
本发明提供了一种基于堆叠式宽度学习模型的在线学习芯片,包括主控制器、存储器和可重构处理单元阵列;其运行方式是:主控制器读取控制码,控制配置信息存储器向可重构处理单元阵列输出初始化的配置信息;可重构处理单元阵列根据初始化的配置信息将各个特征节点和增强节点一对一配置到处理单元;输入存储器将识别训练样本特征输入到模型电路中;将处理结果输出到输出存储器,之后将性能值信息反馈回主控制器;判断计算所得的性能值大小,以更新配置信息存储器中的宽度配置信息或深度配置信息;当计算所得的性能值≥设定的性能阈值时,在线学习停止,在线学习芯片固化。该芯片可计算资源低,功耗低,实时性强,具有在线学习能力。力。力。


技术研发人员:陈俊龙 李淑贞 张通
受保护的技术使用者:华南理工大学
技术研发日:2021.03.04
技术公布日:2021/6/29

转载请注明原文地址:https://doc.8miu.com/read-268.html

最新回复(0)