面向深度学习的稀疏自适应神经网络、算法及实现装置的制造方法

xiaoxiao2021-2-25  255

面向深度学习的稀疏自适应神经网络、算法及实现装置的制造方法
【技术领域】
[0001] 本发明涉及集成电路/神经网络/大数据计算领域,具体涉及片上深度自适应神经 网络的模型构建与优化领域。
【背景技术】
[0002] 在该技术领域,神经网络模型的实现,现有的技术主要分为软件实现和硬件实现。
[0003] 软件实现:通常基于冯?诺依曼架构的通用处理器(CPU)或通用图形处理器 (GPGPU)来运行特定的神经网络算法。神经网络模型,如经典的DBN模型,其神经元之间的连 接需要用一个存储权重值的矩阵实现。随着神经元数目的增加,该权重矩阵的规模会按神 经元数量的平方关系〇(n 2)爆炸式地增长,这意味着需要消耗大量的存储资源(如内存)。受 限于冯?诺依曼架构的固有缺陷,计算单元与存储单元间的数据交换需要很大的带宽,在 神经网络模型的实现中业已成为瓶颈。且大量的数据交换和大量存储资源的使用也意味着 更高的功耗,这种远远高于生物系统(如大脑)的功耗,这对于片上应用、实时处理的应用是 显然过高的,对于服务器端的应用也是难以接受的。
[0004] 硬件实现:可以进一步细分为模拟电路实现、数字电路实现、混合实现,其局限如 下:
[0005] 含有模拟电路的硬件实现:1.利用模拟电路实现人工神经网络容易受温度、噪声 等外部因素影响,导致计算精确度不高;2.模拟电路难以实现大规模高密度的神经元的集 成;3.难以进行训练与实际应用,多为实验性质。
[0006] 现有数字集成电路实现:1.相关训练算法耗时较长,以往研究主要针对浅层的神 经网络;2.现有深度神经网络,参数(如权值)稠密,占有资源大,功耗高,不利于大规模集 成;3.神经网络浮点运算计算量巨大,影响整体运行效率。
[0007] 例如要在现有深度神经网络模型在芯片上实现集成百万数量级的神经元,主要困 难在于有限的集成电路片上内存要保存与百万数量级神经元全连接有关的参数,通常这些 参数是实数的,稠密的。而采用传统的方法量化浮点型数据,直接采用定点计算,往往导致 丢失精确性。这些问题亟待优化解决。同时,生物神经科学的发展表明,大脑皮层神经元的 连接是稀疏的。

【发明内容】

[0008] 鉴于此,本发明的目的之一是提供一种面向深度学习的稀疏自适应神经网络,称 为深度自适应神经网络模型(Deep Adaptive Network),其具有稀疏连接,准确度高,功耗 低,实时性强,扩展灵活等诸多优点,可以在机器视觉、场景感知、特征提取、大数据处理等 领域中得到广泛的应用;本发明的目的之二是提供一种基于前述神经网络的算法,本发明 的目的之三是提供一种基于前述神经网络的实现装置。
[0009] 本发明的目的之一是通过以下技术方案实现的,一种面向深度学习的稀疏自适应 神经网络,包括至少一层自适应有限玻尔兹曼机;至少一层自适应有限玻尔兹曼机包括可 视层和隐藏层,所述可视层和隐藏层之间的连接是稀疏的。
[0010] 进一步,当自适应有限玻尔兹曼机的层数大于1层时,前一层自适应有限玻尔兹曼 机的隐藏层为后一层自适应有限玻尔兹曼机的可视层。
[0011] 进一步,该神经网络还包括标签层。
[0012] 本发明的目的之二是通过以下技术方案实现的,面向深度学习的稀疏自适应神经 网络的算法,
[0013] 1)采用对能量函数的概率分布的最大似然估计的负对数形式求最小值的凸优化 形式表示目标函数;
[0014] 2)向目标函数中加入一范数正则化项
,其中λ表示正则化系 数,Wij表示连接的权值;
[0015] 3)所述目标函数的优化目标为以《1,以7,1,#1?,优化结果是¥1朐优化目标区间 的端点x,y靠近。
[0016] 进一步,
[0017] 1)采用短位宽的离散的整数表示连接的权重值;
[0018] 2)对叉,7取整,用[叉],[7]表示,取|^]<1111,1112<[7],当《4,」<1111,'\^,」=|^],当《^ > m2,wi,j = [y],否则wi,j用约定值表示连梓不存在。
[0019] 进一步,所述目标函数为:
,其中λ表 示正则化系数
·1表示网络的层数,最低为1层,ν(1)表示每一层RBM的可 视层,h(1)表示每一层RBM的隐藏层。
[0020] 进一步,所述目标函数的优化目标为-1 < Wl, J 1。
[0021] 进一步,在常规项的梯度下降步骤后,应用contrastive divergence规则进行更 新,应用Rs的梯度更新参数。
[0022]本发明的目的之三是通过以下技术方案实现的,面向深度学习的稀疏自适应神经 网络的实现装置,
[0023] 1)检测输入位axon[i]是否为1:若为1,即有一个突触事件到来,则根据i的值访问 MAP列表中的对应位置,若为0,则检测下一位输入位。
[0024] 2)读出MAP中相应的起始地址和长度值,如果长度值不为0,则用此基地址和长度 值访问TABLE。否则返回事件解码器(detect axons),检测下一位输入。
[0025] 3)读出TABLE中的数据,根据weight位来控制neuron-num位神经元对应的值进行 ± 1操作(accumulate results),直到访问完成从base_addr到base_addr+length_l位,返 回detect axons,然后检测下一位输入。
[0026] 4)当事件解码器(detect axons)完成所有输入位的检测后,执行CMP操作,同时对 所有神经元对应值与其阈值进行比较,得到神经元状态并输出。
[0027] 由于采用以上技术方案,本发明具有以下有益技术效果:
[0028] 本发明所述的神经网络中的连接是稀疏的,并且把一些权重接近于0的连接忽略 掉。此外,采用自适应的稀疏方法,给予某些重要连接更大的权重,被忽略的连接不占用存 储空间。
[0029] 本发明仅需要定点运算和少量乘法(在1-bit表示时仅需进行与)运算,可节省 99%的存储需求,就可以在单芯片上实现大规模神经网络。
[0030] 硬件资源在芯片上整合大量神经元的瓶颈是有限数量的RAM,本发明通过省略小 的权重和量化大的权重到-1和1之间,只存储了有效连接信息,平均使用不到lbit代表一个 神经元之间的一个连接,显著减少了所需内存量。具体来说,假设一个k个轴突和η个神经元 组成的尖峰神经元网络,如果S是非零连接的比例,参数列表的体积可以写作SknX(logn+ 1),表示一个突触所需的平均比特位数为Wlogn+1)。
【附图说明】
[0031] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进 一步的详细描述,其中:
[0032] 图1为经典DBN模型示意图;
[0033]图2为本发明所述的DAN模型示意图;
[0034] 图3为带有线性分类器的DAN模型示意图;
[0035] 图4为DAN模型的每层神经网络的硬件实现及其控制流程。
【具体实施方式】
[0036] 以下将结合附图,对本发明的优选实施例进行详细的描述;应当理解,优选实施例 仅为了说明本发明,而不是为了限制本发明的保护范围。
[0037] 实施例一
[0038]通常,传统的人工神经网络包括具有一定数目输入节点的可见层和具有一定数目 输出节点的隐含层。有些设计中会在最高一层网络中使用标签层,这也是本发明的可选组 成部分,但并非必须组成部分。一个隐藏层的各节点通过加权连接到可见层的输入节点。注 意当隐藏层为两层及以上时,上一个隐藏层连接到另一个隐藏层。在低层网络的隐藏层一 旦训练完成,对于高层的网络,该隐藏层即是高层网络的可见层。
[0039]图1为经典DBN模型示意图,在DBN网络中,描述连接的参数是稠密的实数,每一层 的计算是互相连接的单元及其激励之间的矩阵乘法,大量的浮点型数据乘法运算使得难以 在片上实现大规模DBN集成。因此本发明提出了一种面向数字电路实现的深度自适应神经 网络(DAN),该神经网络仅需要定点运算和少量乘法(在Ι-bit表示时仅需进行与)运算,就 可以在单芯片上实现大规模神经网络。
[0040] 如图2所示,本发明所述的一种面向深度学习的稀疏自适应神经网络,包括至少一 层自适应有限玻尔兹曼机;至少一层自适应有限玻尔兹曼机包括可视层和隐藏层,所述可 视层和隐藏层之间的连接是稀疏的(即隐藏层的神经元与可视层的神经元不完全连接)。
[0041] 当自适应有限玻尔兹曼机的层数大于1层时,前一层自适应有限玻尔兹曼机的隐 藏层为后一层自适应有限玻尔兹曼机的可视层。
[0042] 为了提高特征识别的精确度,该神经网络还包括标签层(线性分类器),其模型示 意图如图3所示。
[0043] 针对上述面向深度学习的稀疏自适应神经网络,本发明还提供一种面向深度学习 的稀疏自适应神经网络的算法,该方法为:
[0044] 1)采用对能量函数的概率分布的最大似然估计的负对数形式求最小值的凸优化 形式表示目标函数;
[0045] 2)向目标函数中加入一范数正则化项
实中λ表示正则化系 数,Wij表示连接的权值;
[0046] 3)所述目标函数的优化目标为1<?^<74,761?,优化结果是 ¥1」向优化目标区间 的端点x,y靠近。
[0047] 优选的,1)采用短位宽的离散的整数表示连接的权重值;
[0048] 2)对叉,7取整,用[叉],[7]表示,取|^]<1111,1112<[7],当《4,」<1111,'\^,」=|^],当《 ^ 2 m2,wi, j = [y],否则wi,j用约定值表示连接不存在。在本发明中所述的短宽位表示(< 8bit,可低至lbit)。
[0049] 进一步,所述目标函数为
,其中λ表 示正则化系数
,1表示网络的层数,最低为1层,ν(1)表示每一层RBM的可 视层,h(1)表示每一层RBM的隐藏层。
[0050] 进一步,所述目标函数的优化目标为-1 < Wl, J 1。
[0051] 进一步,在常规项的梯度下降步骤后,应用contrastive divergence规则进行更 新,应用Rs的梯度更新参数。
[0052]在本实施例中,在上述优化与实现方法中,忽略掉权重接近于0的连接而重要连接 被赋予更大的权重,且权重值为-1 < Wi,j < 1;同时用32bit实数表示一个连接被优化成用 lbit整数表示一个连接,如图2所示。这样的优化方式既不影响模式识别又可以满足精确性 要求。
[0053]下面对本发明所述的面向深度学习的稀疏自适应神经网络算法作具体说明。
[0054]以经典的DBN神经网络模型为例,DBN网络是由RBM(有限玻尔兹曼机)堆叠而成。标 准的RBM有二进制的隐藏单元和可见单元,并且由一个权重矩阵W=(Wi,j)组成,它与隐藏单 元向量h和可见单元向量v的联系有关,也与可见单元的偏差向量b和隐藏单元的偏差向量c 有关。基于此,一个架构(v,h)的能量被定义为:
[0055] E(v,h)=-bv-ch-hffv
[0056] 正如在一般的玻尔兹曼机上,隐藏向量和可见向量的概率分布以能量函数定义 为:
[0057]
[0058]其中Z是一个配分函数。一个布尔型可见向量的边缘概率等于所有可能的隐藏层 架构的和:
[0059]
[0060] 假设0 = {W,b,c}包含RBM机的参数。为了计算这些参数,其中一个应该把可见向量 V之和表示成负的l〇R形式并使之最小:
[0061]
[0062] 这一神经网络模型的算法是针对采用实数表示权重的全连接的网络进行计算的。
[0063] 类似的,稀疏量化RBM通过向标准RBM中加入一个稀疏正则化项ARS (Θ)来计算参 数。理想情况下,一位的量化权重Wi, j取值为-1~1之间的整数。然而,整数的最优化问题是 非常困难的。因此,本发明把整数的约束放宽到线性不等式
[0065] ^ _
[0064]
[0066] 其中
λ是一个正则化常数,其中λ表示正则化系数,1表示是某一层的 网络,ν(1)表示每一层RBM的可视层,h(1)表示每一层RBM的隐藏层,负号-表示从最大似然到 能量最低的一种数学转换。
[0067]用传统的梯度下降法计算最优参数是非常困难的,本发明采用一种反复运用吉布 斯采样的对比分歧去逼近最优化参数的改进方法。用〈· >P表示P分布的期望值,对于每一 次迭代过程,在常规的对正则化项进行梯度下降步骤后,使用RS的梯度更新参数,具体为: [0068] 1.常规的梯度下降步骤
[0069] Δ Wij - €(〈Vihi〉data_〈Vihi〉model)
[0070] Δ bi = ξ ( <Vi>data-<Vi>model )
[0071] Δ Ci = C(<hi>data-<hi>model)
[0072] 2.用Rs的梯度更新参数:
[0073]
[0074] 母次迗代中,乂重参数从很大的绝对值减少到-1和1之间,并且不断重复这一过 程直到它收敛。通过计算该优化问题得到的会自适应地聚集到_1,+1附近,当超过某 个阈值时,变换为-1或1,然后在硬件实现的时候就可以不存储浮点数,而用一个整数表 示,大大节省资源。
[0075] 一旦某一层网络训练完成,参数WipbpCi的值就会固定,其他提供数据的隐藏单 元的值就可以推测出来。这些估测值就作为训练该深度信念网络(DBN)下一更高层的数据。 [0076] 实施例二
[0077]早期的稀疏DBN研究只注重提取稀疏特征而不是利用稀疏连接为硬件模型产生高 效的网络架构;最近的用于深度学习的神经形态硬件模型片上神经元的数目在不断增加, 但是在一个芯片上集成一百万个神经元和十亿个突触仍是不小的挑战。图4展示了一种面 向深度学习的稀疏自适应神经网络优化与实现的装置,其MAP表与TABLE表是由本发明所述 的DAN稀疏算法得到的。
[0078] 具体工作流程如下:
[0079] 1)检测输入位axon[i]是否为1:若为1,即有一个突触事件到来,则根据i的值访问 MAP列表中的对应位置,若为0,则检测下一位输入位。
[0080] 2)读出MAP中相应的起始地址和长度值,如果长度值不为0,则用此基地址和长度 值访问TABLE。否则返回事件解码器(detect axons),检测下一位输入。
[0081] 3)读出TABLE中的数据,根据weight位来控制neuron-num位神经元对应的值进行 ± 1操作(accumulate results),直到访问完成从base_addr到base_addr+length_l位,返 回detect axons,然后检测下一位输入。
[0082] 4)当事件解码器(detect axons)完成所有输入位的检测后,执行CMP操作,同时对 所有神经元对应值与其阈值进行比较,得到神经元状态并输出。
[0083]以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人 员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的 这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些 改动和变型在内。
【主权项】
1. 一种面向深度学习的稀疏自适应神经网络,其特征在于:包括至少一层自适应有限 玻尔兹曼机;至少一层自适应有限玻尔兹曼机包括可视层和隐藏层,所述可视层和隐藏层 之间的连接是稀疏的。2. 根据权利要求1所述的面向深度学习的稀疏自适应神经网络,其特征在于:当自适应 有限玻尔兹曼机的层数大于1层时,前一层自适应有限玻尔兹曼机的隐藏层为后一层自适 应有限玻尔兹曼机的可视层。3. 根据权利1或2所述的面向深度学习的稀疏自适应神经网络,其特征在于:该神经网 络还包括标签层。4. 一种面向深度学习的稀疏自适应神经网络算法,其特征在于: 1) 采用对能量函数的概率分布的最大似然估计的负对数形式求最小值的凸优化形式 表示目标函数; 2) 向目标函数中加入一范数正则化项,其中λ表示正则化系数,Wlj 表示连接的权值; 3) 所述目标函数的优化目标为M y,x,yeR,优化结果是Wlj向优化目标区间的端 点x,y靠近。5. 根据权利要求4所述的面向深度学习的稀疏自适应神经网络算法,其特征在于: 1) 采用短位宽的离散的整数表示连接的权重值; 2) 对叉,7取整,用|^],[7]表示,取|^]<1111,1112<[7],当《^<1111,《^=|^],当《^21112, wi, j = [y ],否则wi, j用约定值表示连接不存在。6. 根据权利要求5所述的面向深度学习的稀疏自适应神经网络算法,其特征在于:所述 目标函数为:其中λ表示正则化系数,1表示网络的层数,最低为1层,ν(1)表示每一层RBM的可视层,h (1)表示每 一层RBM的隐藏层。7. 根据权利要求6所述的面向深度学习的稀疏自适应神经网络算法,其特征在于:所述 目标函数的优化目标为-1 < W1,以1。8. 根据权利要求7所述的面向深度学习的稀疏自适应神经网络算法,其特征在于:在常 规项的梯度下降步骤后,应用contrastive divergence规则进行更新,应用Rs的梯度更新 参数。9. 面向深度学习的稀疏自适应神经网络的实现装置,其特征在于: 1) 检测输入位axon[i]是否为1:若为1,即有一个突触事件到来,则根据i的值访问MAP 列表中的对应位置,若为0,则检测下一位输入位; 2) 读出MAP中相应的起始地址和长度值,如果长度值不为0,则用此基地址和长度值访 问TABLE。否则返回事件解码器(detect axons),检测下一位输入; 3) 读出TABLE中的数据,根据weight位来控制neuron-num位神经元对应的值进行± 1操 作(accumulate results),直到访问完成从base_addr到base_addr+length_l位,返回 detect axons,然后检测下一位输入; 4)当事件解码器(detect axons)完成所有输入位的检测后,执行CMP操作,同时对所有 神经元对应值与其阈值进行比较,得到神经元状态并输出。
【专利摘要】本发明公开了一种面向深度学习的稀疏自适应神经网络,包括至少一层自适应有限玻尔兹曼机,所述至少一层自适应有限玻尔兹曼机包括可视层和隐藏层,所述可视层和隐藏层之间的连接是稀疏的。在本发明所述的神经网络中,可视层与隐藏层的连接是稀疏的;同时用32bit实数表示一个连接被优化成用1bit整数表示一个连接,这样的优化方式既不影响模式识别又可以满足精确性要求。本发明仅需要定点运算和少量乘法运算,就可以在单芯片上实现大规模神经网络。
【IPC分类】G06N3/06, G06N3/02
【公开号】CN105488563
【申请号】CN201510944909
【发明人】周喜川, 李胜力, 余磊, 李坤平, 赵昕, 杨帆, 谭跃, 唐枋, 胡盛东, 甘平
【申请人】重庆大学
【公开日】2016年4月13日
【申请日】2015年12月16日

最新回复(0)