CN116645566A - 基于全加法脉冲式Transformer的分类方法 - Google Patents

基于全加法脉冲式Transformer的分类方法 Download PDF

Info

Publication number
CN116645566A
CN116645566A CN202310899447.6A CN202310899447A CN116645566A CN 116645566 A CN116645566 A CN 116645566A CN 202310899447 A CN202310899447 A CN 202310899447A CN 116645566 A CN116645566 A CN 116645566A
Authority
CN
China
Prior art keywords
pulse
membrane potential
matrix
image
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310899447.6A
Other languages
English (en)
Other versions
CN116645566B (zh
Inventor
李国齐
徐波
黄彦彬
姚满
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN202310899447.6A priority Critical patent/CN116645566B/zh
Publication of CN116645566A publication Critical patent/CN116645566A/zh
Application granted granted Critical
Publication of CN116645566B publication Critical patent/CN116645566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • G06V10/765Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及图像处理技术领域,提供一种基于全加法脉冲式Transformer的分类方法,包括:获取待分类的图像;基于分类模型的预处理模块,对图像进行特征提取,得到基本特征图,并对基本特征图进行相对位置编码,得到位置编码结果;基于分类模型的编码模块,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到输出膜电势;基于分类模型的分类模块,应用输出膜电势进行图像分类,得到图像的图像类别。本发明提供的基于全加法脉冲式Transformer的分类方法,可以提高图像分类处理效率、降低处理功耗。

Description

基于全加法脉冲式Transformer的分类方法
技术领域
本发明涉及图像处理技术领域,尤其涉及一种基于全加法脉冲式Transformer的分类方法。
背景技术
图像分类是计算机视觉领域的基本研究问题,对图像分类的研究具有广泛的应用价值,例如,在自动驾驶领域,可以利用图像分类技术识别出各种障碍物。随着人工智能技术的发展,利用神经网络进行图像分类已经成为技术人员关注的热门问题。
目前,常用的图像分类模型大多为基于传统神经网络的卷积神经网络模型,但由于卷积神经网络深度和复杂度的不断提高,需要大量的计算成本和存储需求,导致卷积神经网络在处理图像问题上的功耗比较高。如何实现在保证图像分类准确率的同时,降低图像分类的处理功耗、提高处理效率,是目前图像分类领域亟待解决的问题。
发明内容
本发明提供一种基于全加法脉冲式Transformer的分类方法,用以解决现有技术中图像分类处理功耗高、效率低的问题。
本发明提供一种基于全加法脉冲式Transformer的分类方法,包括:
获取待分类的图像;
基于分类模型的预处理模块,对所述图像进行特征提取,得到基本特征图,并对所述基本特征图进行相对位置编码,得到所述图像的位置编码结果;
基于所述分类模型的编码模块,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到所述图像的输出膜电势;
基于所述分类模型的分类模块,应用所述输出膜电势进行图像分类,得到所述图像的图像类别;
其中,所述脉冲矩阵包括矩阵Q、矩阵K和矩阵V,所述脉冲驱动注意力运算,包括:
对所述矩阵Q和所述矩阵K进行逐元素掩码运算,得到运算结果;
将所述运算结果按列求和,得到求和结果;
对所述求和结果进行脉冲序列转化,得到脉冲序列;
对所述矩阵V和所述脉冲序列进行逐列掩码运算,得到脉冲输出,所述脉冲输出用于确定所述输出膜电势。
根据本发明提供的一种基于全加法脉冲式Transformer的分类方法,所述基于所述分类模型的编码模块,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到所述图像的输出膜电势,包括:
基于所述编码模块的脉冲驱动注意力单元,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,提取所述脉冲特征图的脉冲矩阵,对所述脉冲矩阵进行脉冲驱动注意力运算,得到所述脉冲输出,并对所述脉冲输出进行处理,得到膜电势特征图;
基于所述编码模块的多层感知器单元,对所述膜电势特征图进行膜电势处理,得到所述输出膜电势。
根据本发明提供的一种基于全加法脉冲式Transformer的分类方法,所述基于所述编码模块的脉冲驱动注意力单元,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,提取所述脉冲特征图的脉冲矩阵,对所述脉冲矩阵进行脉冲驱动注意力运算,得到所述脉冲输出,并对所述脉冲输出进行处理,得到膜电势特征图,包括:
基于所述脉冲驱动注意力单元的主分支,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并提取所述脉冲特征图的脉冲矩阵,对所述脉冲矩阵进行脉冲驱动注意力运算以确定所述脉冲输出,应用所述脉冲输出确定主分支膜电势;
基于所述脉冲驱动注意力单元的残差分支,提取所述位置编码结果的膜电势,得到残差分支膜电势,融合所述主分支膜电势和所述残差分支膜电势确定所述膜电势特征图。
根据本发明提供的一种图像基于全加法脉冲式Transformer的方法,所述基于所述脉冲驱动注意力单元的主分支,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,提取所述脉冲特征图的脉冲矩阵,并对所述脉冲矩阵进行脉冲驱动注意力运算以确定所述脉冲输出,应用所述脉冲输出确定主分支膜电势,包括:
基于所述主分支的前处理层,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图依次进行线性映射、批归一化和脉冲序列转化处理,得到所述脉冲矩阵;
基于所述主分支的运算层,对所述脉冲矩阵进行脉冲驱动注意力运算,得到所述脉冲输出;
基于所述主分支的后处理层,对所述脉冲输出依次进行脉冲序列转化、线性映射和批归一化处理,得到所述主分支膜电势。
根据本发明提供的一种基于全加法脉冲式Transformer的分类方法,所述基于所述编码模块的多层感知器单元,对所述膜电势特征图进行膜电势处理,得到所述输出膜电势,包括:
基于所述多层感知器单元的主通道,对所述膜电势特征图依次进行脉冲序列转化、线性映射和批归一化处理,得到主通道膜电势;
基于所述多层感知器单元的残差通道,提取所述膜电势特征图的膜电势,得到残差通道膜电势,融合所述主通道膜电势和所述残差通道膜电势确定所述输出膜电势。
根据本发明提供的一种基于全加法脉冲式Transformer的分类方法,所述基于分类模型的预处理模块,对所述图像进行特征提取,得到基本特征图,并对所述基本特征图进行相对位置编码,得到所述图像的位置编码结果,包括:
基于所述预处理模块的脉冲块分解单元,将所述图像拆分成块,得到图像块,并对所述图像块进行特征提取,得到基本特征图;
基于所述预处理模块的位置编码单元,对所述基本特征图依次进行脉冲序列转化、卷积运算和批归一化处理,得到位置特征,融合所述基本特征图和所述位置特征确定所述位置编码结果。
根据本发明提供的一种基于全加法脉冲式Transformer的分类方法,所述分类模型中存在多个所述编码模块,多个所述编码模块顺次串联,前一编码模块确定的所述输出膜电势为后一编码模块对应的位置编码结果。
本发明还提供一种基于全加法脉冲式Transformer的分类装置,包括:
获取单元,用于获取待分类的图像;
处理单元,用于基于分类模型的预处理模块,对所述图像进行特征提取,得到基本特征图,并对所述基本特征图进行相对位置编码,得到所述图像的位置编码结果;
编码单元,用于基于所述分类模型的编码模块,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到所述图像的输出膜电势;
分类单元,用于基于所述分类模型的分类模块,应用所述输出膜电势进行图像分类,得到所述图像的图像类别;
其中,所述脉冲矩阵包括矩阵Q、矩阵K和矩阵V,所述脉冲驱动注意力运算,包括:
对所述矩阵Q和所述矩阵K进行逐元素掩码运算,得到运算结果;
将所述运算结果按列求和,得到求和结果;
对所述求和结果进行脉冲序列转化,得到脉冲序列;
对所述矩阵V和所述脉冲序列进行逐列掩码运算,得到脉冲输出,所述脉冲输出用于确定所述输出膜电势。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于全加法脉冲式Transformer的分类方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于全加法脉冲式Transformer的分类方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于全加法脉冲式Transformer的分类方法。
本发明提供的基于全加法脉冲式Transformer的分类方法,通过对待分类的图像进行特征提取和相对位置编码,得到位置编码结果,基于位置编码结果可以得到脉冲特征图,通过对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,可以提高计算速度,降低计算成本和推理能耗,从而提高图像分类处理效率、降低处理功耗。基于脉冲驱动注意力运算得到输出膜电势后,通过应用输出膜电势进行图像分类,可以提高图像分类的准确率。本发明引入的脉冲驱动注意力运算符合脉冲神经网络的事件驱动特性,可以极大地降低分类模型运行的能耗,从而有利于分类模型在神经形态芯片中的运算部署。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有的自注意力运算Vanilla Self-Attention(VSA)的流程示意图;
图2是现有的脉冲自注意力运算Spiking Self Attention(SSA)的流程示意图;
图3是本发明提供的基于全加法脉冲式Transformer的分类方法的流程示意图;
图4是本发明提供的脉冲驱动注意力运算的流程示意图;
图5是本发明提供的基于全加法脉冲式Transformer的分类方法中步骤330的流程示意图;
图6是本发明提供的基于全加法脉冲式Transformer的分类方法中步骤331的流程示意图;
图7是本发明提供的基于全加法脉冲式Transformer的分类方法中步骤320的流程示意图;
图8是本发明提供的分类模型的结构示意图;
图9是本发明提供的基于全加法脉冲式Transformer的分类装置的结构示意图;
图10是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在图像分类领域中,广泛采用卷积神经网络进行图像分类与识别。然而,随着样本特征的复杂化,卷积神经网络的结构也越来越复杂,网络层级结构不断增加,导致完成网络训练和推导的计算量急剧增加,网络计算延时也越来越大。
脉冲神经网络(Spiking Neural Network,SNN)作为第三代神经网络,由更加精细的生物神经网络启发而来。SNN在低功耗、事件驱动特性和生物可塑性等方面展现出相对于人工神经网络(Artificial Neural Network,ANN)的良好性能。随着深度学习的发展,SNN从ANN处借鉴了梯度反向传播、残差学习等方法,使得训练大规模SNN成为可能。
诞生于自然语言处理领域的Transformer模型,基于完全的自注意力机制,以并行方式提高了计算效率,近年来也在计算机视觉领域取得突破性的应用。然而,由于SNN完全的01计算特性和传统的自注意力运算不兼容,这使得将SNN应用到Transformer并取得可比性能变得较为困难。
图1是现有的自注意力运算Vanilla Self-Attention(VSA)的流程示意图,如图1所示,在VSA中,对连续输入值(Continuous input value)X进行线性映射(Linear)得到三个n×d的矩阵Q、K和V,其中d是一个超参数,表示注意力机制的维度,n为输入序列的长度,Q、K和V可以为浮点形式,先通过对矩阵K进行转置(Transpose),然后计算Q和K的点积得到一个矩阵,采用Scale函数对该矩阵进行归一化,通过包含指数运算和除法运算的Softmax函数对矩阵进行处理,得到n×n的注意矩阵,再对注意矩阵和矩阵V进行点积运算得到。很显然,VSA中的上述步骤不符合SNN的01计算特性以及不进行乘法运算的计算特点。
此外,现有技术中将自注意力机制应用于SNN中,提出了一种脉冲自注意力运算Spiking Self Attention(SSA)机制,图2是现有的脉冲自注意力运算Spiking SelfAttention(SSA)的流程示意图,如图2所示,在SSA中,Q、K和V都是脉冲形式,只包含0和1,虽然对Q和K进行点积或者对K和V进行点积,计算出的矩阵具有天然的非负性,不需要再使用Softmax对该矩阵进行处理,但该矩阵中可能出现大于1的整数,如图2中所示的K和V的点积得到的矩阵中出现了整数2,使得后续的计算步骤不再符合01计算特性,而是保留了整数乘法运算,不完全符合脉冲神经网络的脉冲事件驱动特性,矩阵乘法运算也增大了模型的计算开销和能量消耗,无法达到降低计算能耗的目的。
对此,本发明实施例提供一种基于全加法脉冲式Transformer的分类方法,通过引入更加符合脉冲神经网络事件驱动特性的脉冲驱动注意力运算,可以提高计算速度,降低计算能耗,从而克服上述问题。
图3是本发明提供的基于全加法脉冲式Transformer的分类方法的流程示意图,如图3所示,该方法包括:
步骤310,获取待分类的图像;
具体地,本发明实施例提供的分类方法适用于电子设备,该电子设备可以是服务器、台式机或者其他的终端设备,例如手机、平板电脑等等,还可以是云端或者远程服务器,本发明实施例对电子设备的具体形式不作限定。
电子设备获取待分类的图像,可以是读取其自身存储设备上的待分类的图像,也可以是接收其他设备发送的待分类的图像。此处,待分类的图像可以为图像或者视频,当输入为图像时,可以直接获取一张图像作为待分类的图像,上述输入的图像可以包括人脸图像、人体图像、动物图像,还可以包括其他物体的图像,本发明实施例对此不作具体限定。当输入为视频时,电子设备可以按照预设间隔,如间隔10帧采集1帧,从视频流中采样至少一帧视频帧,将至少一帧视频帧作为待分类的图像进行后续处理。可以理解的是,视频的每一帧视频帧的分类过程与一张图像的分类过程相同。
步骤320,基于分类模型的预处理模块,对图像进行特征提取,得到基本特征图,并对基本特征图进行相对位置编码,得到图像的位置编码结果;
具体地,分类模型是基于将SNN应用到Transformer模型中得到的神经网络模型,其可以用于对图像进行分类处理。在获取到待分类的图像后,将图像输入至分类模型,可以得到分类模型输出的预测分类概率图,基于该预测分类概率图可以确定图像的图像类别。
分类模型包括预处理模块,预处理模块用于对待分类的图像进行特征提取和相对位置编码(Relative Position Embedding,RPE),此处,对图像进行特征提取,可以采用现有的图像特征提取方法,例如边缘特征提取、局部二值模式特征提取、SIFT(Scale-invariant feature transform)特征提取、方向梯度直方图(Histogram of OrientedGradient,HOG)特征提取等;也可以采用Vision Transformer(ViT)模型中的图像特征提取方法,先将图像切分成多个图像块,分别对多个图像块进行特征提取,即可得到基本特征图。
提取得到基本特征图后,可以对基本特征图进行相对位置编码,获得位置特征,再将基本特征图和位置特征相加,即可得到图像的位置编码结果。此处,相对位置编码是一种对位置信息进行编码的方法,通过将位置信息转化为一组固定的向量,并将其加到原始特征向量中,使得特征向量中每个位置都包含着与其他特征之间的距离或者相对位置信息,能够更准确地表示不同特征之间的关系,从而提高分类模型的表示能力,降低分类模型的复杂度。
步骤330,基于分类模型的编码模块,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到图像的输出膜电势;
具体地,分类模型还包括编码模块,编码模块和预处理模块连接,基于预处理模块得到位置编码结果后,将位置编码结果输入至编码模块进行后续的运算和处理。可以理解的是,为了使分类模型符合SNN的01计算特性,可以通过编码模块先对位置编码结果进行脉冲序列转化,以得到脉冲特征图,使得后续的计算过程更符合SNN的01计算特性。此处,脉冲特征图是一种用来表示图像全局脉冲信息的特征图,脉冲特征指的是图像中具有突变性质的像素,例如边界、角点等。在对位置编码结果进行脉冲序列转化时,可以先计算位置编码结果中像素点处的脉冲响应,然后将脉冲响应值映射到对应位置的位置编码结果上,即可得到脉冲特征图。脉冲特征图中的数据都是脉冲形式,只包含0和1,因此符合SNN的01计算特性。与传统的深度学习模型使用连续的十进制值来传递信息不同,SNN使用离散的脉冲序列来计算和传输信息,因此,上述脉冲序列转化即是指脉冲神经元接收连续值并将其转换为脉冲序列的过程。
在得到脉冲特征图后,编码模块可以提取脉冲特征图的脉冲矩阵,并对脉冲矩阵进行脉冲驱动注意力运算。此处,脉冲矩阵包括矩阵Q(表示Query)、矩阵K(表示Key)和矩阵V(表示Value),矩阵Q、矩阵K和矩阵V均为待分类图像的脉冲形式的特征表示,并且矩阵Q、矩阵K和矩阵V的维数均可以为Time*Batch*Token*Dimension,其中Time表示时间维度,Batch表示批次维度,Token表示标记维度,Dimension表示特征维度。特别地,本发明实施例中的脉冲驱动注意力运算(Spike-Driven Self-Attention,SDSA)不包含乘法运算,仅含逻辑与运算和全加法(Summation)运算,注意力运算的复杂度与输入Token和特征维度Dimension都是线性相关,可以大大提高计算速度。
图4是本发明提供的脉冲驱动注意力运算的流程示意图,如图4所示,脉冲驱动注意力运算包括:
对矩阵Q和矩阵K进行逐元素掩码运算,得到运算结果;
将运算结果按列求和,得到求和结果;
对求和结果进行脉冲序列转化,得到脉冲序列;
对矩阵V和脉冲序列进行逐列掩码运算,得到脉冲输出,脉冲输出用于确定输出膜电势。
需要说明的是,逐元素掩码运算是一种哈达玛积,由于矩阵Q和矩阵K均为脉冲形式,只包含0和1,因此对矩阵Q和矩阵K进行的逐元素掩码运算是一种逐元素的01掩码运算,其实质上是在进行逻辑与运算,不涉及乘法运算。对矩阵Q和矩阵K进行逐元素掩码运算,得到的运算结果也为脉冲形式的矩阵,将运算结果按列求和,即对该矩阵每一列的元素进行相加求和,此运算步骤是一种全加法运算,也不涉及乘法运算。脉冲序列和矩阵V均为脉冲形式,只包含0和1,因此对矩阵V和脉冲序列进行的逐列掩码运算是一种逐列的01掩码运算,其实质上也是在进行逻辑与运算,不涉及乘法运算。因此,上述脉冲驱动注意力运算为仅含逻辑与和全加法的运算,可以大大提高计算速度,极大发挥出SNN在降低计算能耗上的优势。
应理解的是,虽然运算结果为脉冲形式的矩阵,但将运算结果按列求和后,得到的求和结果不一定为脉冲形式的矩阵,求和结果中可能会出现0和1以外的元素,为了确保后续的运算过程符合SNN的01计算特性以及不进行乘法运算的计算特点,可以对求和结果进行脉冲序列转化,从而得到只包含0和1元素的脉冲序列,加快后续的计算速度。
具体地,对图像的位置编码结果进行脉冲序列转化,得到脉冲特征图S,其为二进制脉冲输入(Binary spike input)形式,将脉冲特征图S输入分类模型的编码模块,依次经过线性映射(Linear)层和脉冲神经元(Spiking neuron)层,对脉冲特征图S进行线性映射和脉冲序列转化处理,得到脉冲矩阵,即矩阵Q、矩阵K和矩阵V,矩阵Q、矩阵K和矩阵V均可以为n×d的矩阵。
对矩阵Q和矩阵K进行逐元素掩码运算(Element-wise Mask),得到运算结果,该运算结果也为n×d的矩阵,可以表示为,其中/>表示哈达玛积。
将运算结果按列求和(Column summation),例如可以按Dimension维度求和,得到求和结果,该求和结果为1×d的矩阵,可以表示为,其中/>表示按列求和。可理解的是,对矩阵Q和矩阵K进行逐元素的01掩码运算后,得到的运算结果中包含1的部分相对较少,因此,对运算结果进行的全加法运算是稀疏的,可以进一步降低能量消耗。
将求和结果输入脉冲神经元层进行脉冲序列转化,得到脉冲序列,该脉冲序列为1×d的矩阵序列,可以表示为,其中/>表示脉冲神经元层。此处,脉冲神经元层可以为LIF(Leakage Integrate-and-fire)神经元层。
对脉冲序列和矩阵V进行逐列掩码运算(Column Mask),得到脉冲输出,该脉冲输出为n×d的矩阵,可以表示为。将脉冲输出记为/>,则上述脉冲驱动注意力运算的公式可以表示为:
得到脉冲输出后,应用脉冲输出可以确定图像的输出膜电势,此处,膜电势指的是神经元之间信息交流和计算的信号传递状态,类比于生物神经元的膜电势;输出膜电势是指编码模块对脉冲特征图进行运算处理后,最终输出的膜电势值。在SNN中,神经元的膜电势是由输入信号和神经元本身的参数(权重,偏置等)计算得到的。SNN通过使用脉冲对信息进行编码,每个神经元接收来自前一层神经元的脉冲输入,膜电势进行累加,当膜电势超过阈值后,神经元才会发放一次脉冲,极大地减少了网络信息传递的能耗。可理解的是,前一层神经元的脉冲输出为后一层神经元的脉冲输入。
本发明实施例引入的脉冲驱动注意力运算使分类模型具有了脉冲运算的事件驱动特性,可以极大地降低分类模型运行的能耗,有利于其在神经形态芯片中的运算部署;而且脉冲驱动注意力运算应用了自注意力机制,可以提高分类模型进行图像分类的效率和准确率。
步骤340,基于分类模型的分类模块,应用输出膜电势进行图像分类,得到图像的图像类别。
具体地,分类模型还包括分类模块,其用于应用输出膜电势进行图像分类,得到图像类别,此处,分类模块可以为全连接层,也可以为采用支持向量机进行特征分类的分类器,还可以为采用全卷积、循环连接结构的分类器,本发明实施例对此不作具体限定。例如,分类模块采用全连接层进行分类时,分类模块中的每个神经元都会接收前一层编码模块中所有神经元的输出膜电势,并对其进行加权求和,然后通过激活函数进行处理,得到最终的预测分类概率图,基于预测分类概率图可以确定图像的图像类别。
可理解的是,分类模型的预处理模块、编码模块和分类模块是基于样本数据对初始模型进行整体训练得到的,具体可以通过如下方式训练得到分类模型:收集大量样本图像,对样本图像进行分类,得到样本图像中每个图像的图像类别。此处对样本图像进行分类,可以是通过人工分类实现,也可以是通过现有的图像分类方法实现,还可以是基于现有的图像分类数据集(如Cifar10、Cifar100、Imagenet等)收集样本图像,从而基于图像分类数据集获得每个图像的图像类别,本发明实施例对此不作具体限定。基于样本图像、样本图像中每个图像的图像类别训练初始模型,从而得到分类模型。
本发明实施例提供的基于全加法脉冲式Transformer的分类方法,通过对待分类的图像进行特征提取和相对位置编码,得到位置编码结果,基于位置编码结果可以得到脉冲特征图,通过对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,可以提高计算速度,降低计算成本和推理能耗,从而提高图像分类处理效率、降低处理功耗。基于脉冲驱动注意力运算得到输出膜电势,由于输出膜电势可以传递出更丰富的信息,因此,应用输出膜电势进行图像分类,可以提高图像分类的准确率。
基于上述实施例,图5是本发明提供的基于全加法脉冲式Transformer的分类方法中步骤330的流程示意图,如图5所示,步骤330具体包括:
步骤331,基于编码模块的脉冲驱动注意力单元,对位置编码结果进行脉冲序列转化,得到脉冲特征图,提取脉冲特征图的脉冲矩阵,对脉冲矩阵进行脉冲驱动注意力运算,得到脉冲输出,并对脉冲输出进行处理,得到膜电势特征图;
具体地,编码模块包括脉冲驱动注意力单元,脉冲驱动注意力单元可以包括脉冲神经元层,将位置编码结果输入至脉冲驱动注意力单元后,通过脉冲神经元层对位置编码结果进行脉冲序列转化,从而得到脉冲特征图,此处,脉冲神经元层可以为LIF神经元层。得到脉冲特征图后,可以将脉冲特征图分别经过三个线性映射得到对应的三个矩阵。为了确保得到的三个矩阵均为脉冲矩阵,可以对该三个矩阵分别进行批归一化和脉冲序列转化处理,从而使得最终得到的矩阵Q、矩阵K和矩阵V均为脉冲形式的矩阵。
得到脉冲矩阵后,对脉冲矩阵进行脉冲驱动注意力运算,得到脉冲输出,基于脉冲输出可以确定膜电势特征图。此处,膜电势特征图是一种用于描述图像局部特征的表示形式,其是使用脉冲的概念来描述图像特征。在得到脉冲输出后,可以对脉冲输出依次进行脉冲序列转化、线性映射和批归一化处理,从而得到膜电势特征图。
步骤332,基于编码模块的多层感知器单元,对膜电势特征图进行膜电势处理,得到输出膜电势。
具体地,编码模块还包括多层感知器单元,多层感知器单元和驱动注意力单元连接,基于驱动注意力单元得到膜电势特征图后,将膜电势特征图输入至多层感知器单元,通过多层感知器单元对膜电势特征图进行膜电势处理,从而得到输出膜电势。此处,膜电势处理是指模拟生物神经元的电信号传导特性,将输入信号通过一些操作得到当前神经元的内部状态,即得到当前神经元的膜电势值,当膜电势超过某一阈值时,神经元就会被激活并产生脉冲信号传递给其他神经元。
示例性地,将膜电势特征图输入至多层感知器单元后,可以依次对膜电势特征图进行脉冲序列转化、线性映射以及批归一化处理,从而得到多层感知器单元的输出膜电势。
本发明实施例中,通过脉冲驱动注意力单元对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,可以加快计算速度,降低处理功耗,在得到膜电势特征图后,通过多层感知器单元进一步对膜电势特征图进行膜电势处理,可以更好的描述信息之间的传递,有利于分类模型理解数据的结构和关系,从而更好地进行图像分类任务。
基于上述实施例,图6是本发明提供的基于全加法脉冲式Transformer的分类方法中步骤331的流程示意图,如图6所示,步骤331具体包括:
步骤3311,基于脉冲驱动注意力单元的主分支,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并提取脉冲特征图的脉冲矩阵,对脉冲矩阵进行脉冲驱动注意力运算以确定脉冲输出,应用脉冲输出确定主分支膜电势;
步骤3312,基于脉冲驱动注意力单元的残差分支,提取位置编码结果的膜电势,得到残差分支膜电势,融合主分支膜电势和残差分支膜电势确定膜电势特征图。
需要说明的是,传统的深度神经网络存在梯度消失和梯度爆炸等问题,易导致准确率下降,为了解决这一问题,本发明实施例的脉冲驱动注意力单元中运用了残差连接,包括主分支和残差分支,主分支和残差分支分别对应脉冲驱动注意力单元中的两个路径。主分支用于提取特征,残差分支则是将主分支的输出和输入通过残差连接相加后进行特征学习,不仅可以缓解深度神经网络中的梯度消失和梯度爆炸问题,而且还可以提升分类模型的准确率。
具体地,在得到图像的位置编码结果后,将位置编码结果输入至编码模块的脉冲驱动注意力单元,位置编码结果将分别进入主分支和残差分支。基于主分支可以得到主分支膜电势,此处主分支膜电势是指主分支对脉冲特征图进行运算处理后,最终输出的主分支神经元的膜电势值。在得到脉冲输出后,可以依次对脉冲输出进行脉冲序列转化、线性映射和批归一化处理,从而得到主分支膜电势。
位置编码结果进入残差分支后,通过残差分支提取位置编码结果的膜电势,可以得到残差分支膜电势。此处,残差分支膜电势是指残差分支输出的神经元的膜电势值。示例性地,残差分支可以包括线性映射层、批归一化层和脉冲神经元层,其中脉冲神经元层是可选的,脉冲特征图输入后,可以依次对其进行线性映射、批归一化和脉冲序列转化处理,从而得到残差分支膜电势。
在得到残差分支膜电势后,利用残差连接,将主分支膜电势和残差分支膜电势相加,即可得到膜电势特征图,从而有效缓解深度神经网络中的梯度消失和梯度爆炸等问题,进而提升分类模型进行图像分类任务的准确率。应理解的是,基于预处理模块对待分类的图像进行特征提取和相对位置编码后,得到的位置编码结果实质上为膜电势,将位置编码结果直接输入残差分支,实现了基于膜电势的残差连接,与脉冲序列相比,膜电势可以传递出更丰富的信息,从而有利于提高分类模型进行图像分类的准确率。
基于上述实施例,步骤3311具体包括:
基于主分支的前处理层,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图依次进行线性映射、批归一化和脉冲序列转化处理,得到脉冲矩阵;
基于主分支的运算层,对脉冲矩阵进行脉冲驱动注意力运算,得到脉冲输出;
基于主分支的后处理层,对脉冲输出依次进行脉冲序列转化、线性映射和批归一化处理,得到主分支膜电势。
具体地,主分支包括前处理层、运算层和后处理层,脉冲特征图输入至主分支后,依次经过前处理层、运算层以及后处理层的处理和计算,可以得到主分支膜电势。前处理层用于对位置编码结果进行处理,以得到脉冲矩阵,脉冲矩阵包括矩阵Q、矩阵K和矩阵V,为了获得三个脉冲矩阵,前处理层可以包括脉冲神经元层和三个处理块,每个处理块对应获得一个脉冲矩阵。每个处理块可以包括线性映射层、批归一化层和脉冲神经元层,上述脉冲神经元层可以为LIF神经元层。位置编码结果输入前处理层后,先经过脉冲神经元层进行脉冲序列转化,得到脉冲特征图,再将脉冲特征图分别输入三个处理块,每个处理块对其依次进行线性映射、批归一化和脉冲序列转化处理,从而得到脉冲矩阵。
应理解的是,通过线性映射可以对数据进行降维,将高维数据映射到低维空间中,从而可以适应不同的数据分布,提高输出结果的精度和质量。批归一化用于对输入数据进行标准化,减少梯度消失和梯度爆炸的问题,提高分类模型的稳定性和精度。在批归一化处理后,对矩阵进行脉冲序列转化处理,可以进一步确保最终输出的矩阵Q、矩阵K和矩阵V均为脉冲矩阵,即只包含0和1。
基于前处理层得到脉冲矩阵后,运算层用于对脉冲矩阵进行脉冲驱动注意力运算,以得到脉冲输出,具体的脉冲驱动注意力运算步骤与上述实施例中脉冲驱动注意力运算的步骤一致,在此不再赘述。对脉冲矩阵进行的脉冲驱动注意力运算,避免了矩阵乘的复杂运算,将注意力运算的复杂度降到了线性级别,有利于加快计算速度,降低计算功耗。
基于运算层得到脉冲输出后,后处理层用于对脉冲输出进行处理,以得到主分支膜电势。后处理层可以包括脉冲神经元层、线性映射层和批归一化层,此处,脉冲神经元层可以为LIF神经元层。脉冲输出输入至后处理层后,依次对其进行脉冲序列转化、线性映射和批归一化处理,即可得到主分支输出的主分支膜电势。
基于上述任一实施例,步骤332具体包括:
基于多层感知器单元的主通道,对膜电势特征图依次进行脉冲序列转化、线性映射和批归一化处理,得到主通道膜电势;
基于多层感知器单元的残差通道,提取膜电势特征图的膜电势,得到残差通道膜电势,融合主通道膜电势和残差通道膜电势确定输出膜电势。
需要说明的是,多层感知器单元中运用了残差连接,包括主通道和残差通道,主通道和残差通道分别对应多层感知器单元中的两个路径。主通道用于提取特征,残差通道则用于将主通道的输出和输入通过残差连接相加后进行特征学习。本发明实施例通过在多层感知器单元中运用残差连接,可以有效缓解深度神经网络中的梯度消失和梯度爆炸等问题,进一步提升分类模型进行图像分类的准确率。
具体地,基于脉冲驱动注意力单元得到膜电势特征图后,将膜电势特征图输入至多层感知器单元,膜电势特征图将分别进入主通道和残差通道。主通道用于对膜电势特征图进行处理,以得到主通道膜电势,此处,主通道膜电势是指主通道对膜电势特征图进行处理后,最终输出的主通道神经元的膜电势值。
在一实施例中,主通道可以包括脉冲神经元层、线性映射层和批归一化层,此处,脉冲神经元层可以为LIF神经元层,膜电势特征图输入至主通道后,可以依次对其进行脉冲序列转化、线性映射以及批归一化处理,从而得到主通道膜电势。
在另一实施例中,多层感知器单元可以包括两个依次串联的膜电势处理块,每个膜电势处理块包括脉冲神经元层、线性映射层和批归一化层,前一膜电势处理块的输出为后一膜电势处理块的输入。膜电势特征图输入至主通道后,依次对其进行脉冲序列转化、线性映射和批归一化处理,并将此处理过程再重复一遍,从而可以提高多层感知器单元的处理效果。
膜电势特征图进入残差通道后,通过残差通道提取膜电势特征图的膜电势,从而得到残差通道膜电势。此处,残差通道膜电势是指残差通道输出的神经元的膜电势值。残差通道可以包括线性映射层、批归一化层和脉冲神经元层,其中脉冲神经元层是可选的。膜电势特征图输入至残差通道后,可以依次对其进行线性映射、批归一化和脉冲序列转化处理,从而得到残差通道膜电势。在得到残差通道膜电势后,利用残差连接,将主通道膜电势和残差通道膜电势相加,即可得到编码模块最终输出的输出膜电势。
基于上述任一实施例,图7是本发明提供的基于全加法脉冲式Transformer的分类方法中步骤320的流程示意图,如图7所示,步骤320具体包括:
步骤321,基于预处理模块的脉冲块分解单元,将图像拆分成块,得到图像块,并对图像块进行特征提取,得到基本特征图;
步骤322,基于预处理模块的位置编码单元,对基本特征图依次进行脉冲序列转化、卷积运算和批归一化处理,得到位置特征,融合基本特征图和位置特征确定位置编码结果。
具体地,预处理模块包括脉冲块分解单元和位置编码单元,脉冲块分解单元与位置编码单元连接,脉冲块分解单元用于将图像拆分成块,得到图像块(patch),并对图像块进行特征提取,以得到基本特征图。位置编码单元用于对基本特征图进行相对位置编码,得到位置特征,并将位置特征和基本特征图相加,得到位置编码结果。
脉冲块分解单元可以包括第一分解块和第二分解块,第一分解块可以有一个或多个,每个第一分解块可以包括卷积层、批归一化层、脉冲神经元层和最大池化层,第二分解块可以包括卷积层、批归一化层和最大池化层。将待分类的图像输入至脉冲块分解单元后,脉冲块分解单元将其线性投影到一个脉冲形式的特征向量上,并将其分割成多个脉冲形式的patches序列,从而得到图像的基本特征图。
位置编码单元可以包括脉冲神经元层、卷积层和批归一化层,将基本特征图输入至位置编码单元,依次对其进行脉冲序列转化、卷积运算和批归一化处理,从而得到位置特征。将位置特征和基本特征图相加,即可得到图像的位置编码结果。
本发明实施例中,通过脉冲块分解单元将图像拆分成块,得到多个图像块,基于多个图像块可以提取图像的局部和全局特征,最终实现对整个图像的处理,而且分类模型可以并行对每个图像块进行处理,有利于加速分类模型的计算速度。
基于上述任一实施例,分类模型中存在多个编码模块,多个编码模块顺次串联,前一编码模块确定的输出膜电势为后一编码模块对应的位置编码结果。
具体地,在分类模型中,编码模块可以有多个,多个编码模块顺次串联,对于第一个编码模块,其输入为预处理模块的输出,即位置编码结果,位置编码结果实质上是膜电势,将位置编码结果输入至第一个编码模块后,可以得到第一个编码模块输出的输出膜电势;对于第二个编码模块,其输入为第一个编码模块确定的输出膜电势。依次类推,前一编码模块确定的输出膜电势为后一编码模块的输入,即对应的位置编码结果。
本发明实施例中,通过将多个编码模块顺次串联,可以形成深度较深的分类模型,有利于提高分类模型的表征能力和学习能力,从而使分类模型可以更好地处理更为复杂和多样的特征。
基于上述任一实施例,图8是本发明提供的分类模型的结构示意图,如图8所示,分类模型包括预处理模块、编码模块(Encoder Block)和分类模块(Head Classification),预处理模块包括脉冲块分解单元(Spike Patch Splitting,SPS)和位置编码单元。脉冲块分解单元包括第一分解块和第二分解块,第一分解块可以有多个,例如本发明实施例中,第一分解块有3个,每个第一分解块可以包括卷积层(Conv 2D)、批归一化层(BatchNormalization,BN)、脉冲神经元层(Spike Neuron Layer)以及最大池化层(Max Pooling,MP);第二分解块可以包括卷积层、批归一化层和最大池化层。位置编码单元可以包括脉冲神经元层、卷积层和批归一化层。需要说明的是,上述脉冲神经元层均可以为LIF神经元层。
将待分类的图像输入预处理模块后,通过脉冲块分解单元将图像拆分成块,得到多个图像块,并对图像块进行特征提取,得到基本特征图;将基本特征图通过位置编码单元,依次进行脉冲序列转化、卷积运算和批归一化处理,得到位置特征;将基本特征图和位置特征相加,可以得到图像的位置编码结果。
预处理模块对待分类图像的处理过程,可以用如下公式表示:
其中,为待分类的图像,/>为脉冲块分解单元,/>表示基本特征图,/>为脉冲神经元层,/>为脉冲神经元层的输出,/>表示位置特征,/>为预处理模块最终输出的位置编码结果;T表示时间维度,C表示通道维度,H表示高度维度,W表示宽度维度,N表示批次维度,D表示深度维度。
编码模块包括脉冲驱动注意力单元和多层感知器单元(Multilayer Perceptron,MLP),脉冲驱动注意力单元和多层感知器单元都运用了残差连接。脉冲驱动注意力单元包括主分支和残差分支,主分支包括前处理层、运算层和后处理层,前处理层可以包括脉冲神经元层和三个处理块,每个处理块可以包括线性映射层、批归一化层和脉冲神经元层;后处理层可以包括脉冲神经元层、线性映射层和批归一化层。多层感知器单元包括主通道和残差通道,其中主通道可以包括第一脉冲神经元层、第一线性映射层、第一批归一化层、第二脉冲神经元层、第二线性映射层以及第二批归一化层。应理解的是,上述脉冲神经元层均可以为LIF神经元层。
位置编码结果实质上为膜电势(Membrane Potential),预处理模块输出位置编码结果后,将位置编码结果通过主分支的脉冲神经元层进行脉冲序列转化,得到脉冲特征图,将脉冲特征图分别输入三个处理块,每个处理块依次对其进行线性映射、批归一化和脉冲序列转化处理,可以对应获得三个脉冲矩阵,即矩阵Q、矩阵K和矩阵V。将矩阵Q、矩阵K和矩阵V输入运算层,进行脉冲驱动注意力运算,得到脉冲输出,将脉冲输出输入后处理层,依次进行脉冲序列转化、线性映射和批归一化处理,可以得到主分支输出的主分支膜电势。
位置编码结果通过残差分支连接到主分支的输出端,可以将位置编码结果作为残差分支输出的残差分支膜电势与主分支膜电势相加,得到脉冲驱动注意力单元最终输出的膜电势特征图。将膜电势特征图输入至多层感知器单元,经过主通道的处理后,可以得到主通道膜电势,膜电势特征图通过残差通道连接至主通道的输出端,可以将膜电势特征图作为残差通道膜电势与主通道膜电势相加,即可得到编码模块最终输出的输出膜电势。
编码模块可以有多个,例如本发明实施例中编码模块有L个,多个编码模块顺次串联,前一编码模块确定的输出膜电势为后一编码模块对应的位置编码结果。经过多个编码模块的处理后,将最终得到的输出膜电势输入至分类模块,可以得到最终的预测分类概率图,基于该预测分类概率图可以确定图像的图像类别。
编码模块的处理过程,可以用如下公式表示:
其中,为当前编码模块输入的位置编码结果,也为前一编码模块确定的输出膜电势,/>为脉冲特征图,/>为膜电势特征图,/>为多层感知器单元中第一脉冲神经元层的输出,/>为当前编码模块确定的输出膜电势,也为后一编码模块对应的位置编码结果;SDSA表示脉冲驱动注意力单元除第一个脉冲神经元层以外的部分,MLP表示多层感知器单元除第一脉冲神经元层以外的部分。
针对现有的图像分类数据集ImageNet,分别采用本发明实施例的分类模型和现有的图像分类模型进行图像分类,可以得到图像分类结果,具体如下表所示:
需要说明的是,表中第一列Methods表示模型名称,例如,ResNet是一个深度残差网络(Deep Residual Network)模型;Transformer是一种基于注意力(Attention)机制的深度学习模型;Spikformer模型是将SNN与Transformer结合的神经网络模型。ResNet、Transformer和Spikformer均为现有的图像分类模型。Spike-driven Transformer为本发明实施例的分类模型,其是基于将SNN应用到Transformer模型中得到的脉冲驱动神经网络模型。
表中第二列Architecture表示模型的网络结构,例如,Res-CNN-104是一个卷积神经网络模型,由ResNet和CNN(Convolutional Neural Networks,卷积神经网络)组成,其中的104表示该模型包含104层卷积层和全连接层。Transformer-8-512表示一个基于Transformer的神经网络模型,8是指该模型包含8个Transformer层,512是指每个隐层有512个神经元。spikeformer-8-384表示一个将脉冲神经元模型应用于Transformers网络的创新结构,8是指该模型包含8个Spikeformer层,384是指每个层有384个神经元。
表中第三列Spike-driven表示是否具有脉冲运算的事件驱动特性,其中“√”代表“是”,“×”代表“否”;第四列Param(M)表示模型的参数量;第五列Power(mJ)表示能耗;第六列Time Step表示时间步;第七列Acc表示图像分类结果的准确率。
基于上表中记载的实验结果可知,与现有的图像分类模型Spikformer相比,本发明实施例的分类模型不仅能耗大幅下降,最低达到了1.52mJ,而且性能也有所提升,达到了更高的准确率76.32%。现有的图像分类模型Spikformer并不是全加法运算,而本发明实施例的分类模型通过引入脉冲驱动注意力运算,实现了整个网络的全加法运算,更加符合脉冲神经网络的事件驱动特性,可以极大地降低模型运行的能耗。
基于上述任一实施例,图9是本发明提供的基于全加法脉冲式Transformer的分类装置的结构示意图,如图9所示,该装置包括:
获取单元910,用于获取待分类的图像;
处理单元920,用于基于分类模型的预处理模块,对图像进行特征提取,得到基本特征图,并对基本特征图进行相对位置编码,得到图像的位置编码结果;
编码单元930,用于基于分类模型的编码模块,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到图像的输出膜电势;
分类单元940,用于基于分类模型的分类模块,应用输出膜电势进行图像分类,得到图像的图像类别;
其中,脉冲矩阵包括矩阵Q、矩阵K和矩阵V,脉冲驱动注意力运算,包括:
对矩阵Q和矩阵K进行逐元素掩码运算,得到运算结果;
将运算结果按列求和,得到求和结果;
对求和结果进行脉冲序列转化,得到脉冲序列;
对矩阵V和脉冲序列进行逐列掩码运算,得到脉冲输出,脉冲输出用于确定输出膜电势。
本发明实施例提供的基于全加法脉冲式Transformer的分类装置,通过对待分类的图像进行特征提取和相对位置编码,得到位置编码结果,基于位置编码结果可以得到脉冲特征图,通过对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,可以提高计算速度,降低计算成本和推理能耗,从而提高图像分类处理效率、降低处理功耗。基于脉冲驱动注意力运算得到输出膜电势后,通过应用输出膜电势进行图像分类,可以提高图像分类的准确率。本发明实施例引入的脉冲驱动注意力运算符合脉冲神经网络的事件驱动特性,可以极大地降低分类模型运行的能耗,从而有利于分类模型在神经形态芯片中的运算部署。
基于上述任一实施例,编码单元930包括:
脉冲驱动子单元,用于基于编码模块的脉冲驱动注意力单元,对位置编码结果进行脉冲序列转化,得到脉冲特征图,提取脉冲特征图的脉冲矩阵,对脉冲矩阵进行脉冲驱动注意力运算,得到脉冲输出,并对脉冲输出进行处理,得到膜电势特征图;
多层感知子单元,用于基于编码模块的多层感知器单元,对膜电势特征图进行膜电势处理,得到输出膜电势。
基于上述任一实施例,脉冲驱动子单元包括:
主分支单元,用于基于脉冲驱动注意力单元的主分支,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并提取脉冲特征图的脉冲矩阵,对脉冲矩阵进行脉冲驱动注意力运算以确定脉冲输出,应用脉冲输出确定主分支膜电势;
残差分支单元,用于基于脉冲驱动注意力单元的残差分支,提取脉冲特征图的膜电势,得到残差分支膜电势,融合主分支膜电势和残差分支膜电势确定膜电势特征图。
基于上述任一实施例,主分支单元具体用于:
基于主分支的前处理层,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图依次进行线性映射、批归一化和脉冲序列转化处理,得到脉冲矩阵;
基于主分支的运算层,对脉冲矩阵进行脉冲驱动注意力运算,得到脉冲输出;
基于主分支的后处理层,对脉冲输出依次进行脉冲序列转化、线性映射和批归一化处理,得到主分支膜电势。
基于上述任一实施例,多层感知子单元具体用于:
基于多层感知器单元的主通道,对膜电势特征图依次进行脉冲序列转化、线性映射和批归一化处理,得到主通道膜电势;
基于多层感知器单元的残差通道,提取膜电势特征图的膜电势,得到残差通道膜电势,融合主通道膜电势和残差通道膜电势确定输出膜电势。
基于上述任一实施例,处理单元920具体用于:
基于预处理模块的脉冲块分解单元,将图像拆分成块,得到图像块,并对图像块进行特征提取,得到基本特征图;
基于预处理模块的位置编码单元,对基本特征图依次进行脉冲序列转化、卷积运算和批归一化处理,得到位置特征,融合基本特征图和位置特征确定位置编码结果。
基于上述任一实施例,分类模型中存在多个编码模块,多个编码模块顺次串联,前一编码模块确定的输出膜电势为后一编码模块对应的位置编码结果。
图10示例了一种电子设备的实体结构示意图,如图10所示,该电子设备可以包括:处理器(processor)1010、通信接口(Communications Interface)1020、存储器(memory)1030和通信总线1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑指令,以执行基于全加法脉冲式Transformer的方法,该方法包括:获取待分类的图像;基于分类模型的预处理模块,对图像进行特征提取,得到基本特征图,并对基本特征图进行相对位置编码,得到图像的位置编码结果;基于分类模型的编码模块,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到图像的输出膜电势;基于分类模型的分类模块,应用输出膜电势进行图像分类,得到图像的图像类别;
其中,脉冲矩阵包括矩阵Q、矩阵K和矩阵V,脉冲驱动注意力运算,包括:
对矩阵Q和矩阵K进行逐元素掩码运算,得到运算结果;将运算结果按列求和,得到求和结果;对求和结果进行脉冲序列转化,得到脉冲序列;对矩阵V和脉冲序列进行逐列掩码运算,得到脉冲输出,脉冲输出用于确定输出膜电势。
此外,上述的存储器1030中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于全加法脉冲式Transformer的分类方法,该方法包括:获取待分类的图像;基于分类模型的预处理模块,对图像进行特征提取,得到基本特征图,并对基本特征图进行相对位置编码,得到图像的位置编码结果;基于分类模型的编码模块,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到图像的输出膜电势;基于分类模型的分类模块,应用输出膜电势进行图像分类,得到图像的图像类别;
其中,脉冲矩阵包括矩阵Q、矩阵K和矩阵V,脉冲驱动注意力运算,包括:
对矩阵Q和矩阵K进行逐元素掩码运算,得到运算结果;将运算结果按列求和,得到求和结果;对求和结果进行脉冲序列转化,得到脉冲序列;对矩阵V和脉冲序列进行逐列掩码运算,得到脉冲输出,脉冲输出用于确定输出膜电势。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于全加法脉冲式Transformer的分类方法,该方法包括:获取待分类的图像;基于分类模型的预处理模块,对图像进行特征提取,得到基本特征图,并对基本特征图进行相对位置编码,得到图像的位置编码结果;基于分类模型的编码模块,对位置编码结果进行脉冲序列转化,得到脉冲特征图,并对脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到图像的输出膜电势;基于分类模型的分类模块,应用输出膜电势进行图像分类,得到图像的图像类别;
其中,脉冲矩阵包括矩阵Q、矩阵K和矩阵V,脉冲驱动注意力运算,包括:
对矩阵Q和矩阵K进行逐元素掩码运算,得到运算结果;将运算结果按列求和,得到求和结果;对求和结果进行脉冲序列转化,得到脉冲序列;对矩阵V和脉冲序列进行逐列掩码运算,得到脉冲输出,脉冲输出用于确定输出膜电势。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于全加法脉冲式Transformer的分类方法,其特征在于,包括:
获取待分类的图像;
基于分类模型的预处理模块,对所述图像进行特征提取,得到基本特征图,并对所述基本特征图进行相对位置编码,得到所述图像的位置编码结果;
基于所述分类模型的编码模块,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到所述图像的输出膜电势;
基于所述分类模型的分类模块,应用所述输出膜电势进行图像分类,得到所述图像的图像类别;
其中,所述脉冲矩阵包括矩阵Q、矩阵K和矩阵V,所述脉冲驱动注意力运算,包括:
对所述矩阵Q和所述矩阵K进行逐元素掩码运算,得到运算结果;
将所述运算结果按列求和,得到求和结果;
对所述求和结果进行脉冲序列转化,得到脉冲序列;
对所述矩阵V和所述脉冲序列进行逐列掩码运算,得到脉冲输出,所述脉冲输出用于确定所述输出膜电势。
2.根据权利要求1所述的基于全加法脉冲式Transformer的分类方法,其特征在于,所述基于所述分类模型的编码模块,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到所述图像的输出膜电势,包括:
基于所述编码模块的脉冲驱动注意力单元,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,提取所述脉冲特征图的脉冲矩阵,对所述脉冲矩阵进行脉冲驱动注意力运算,得到所述脉冲输出,并对所述脉冲输出进行处理,得到膜电势特征图;
基于所述编码模块的多层感知器单元,对所述膜电势特征图进行膜电势处理,得到所述输出膜电势。
3.根据权利要求2所述的基于全加法脉冲式Transformer的分类方法,其特征在于,所述基于所述编码模块的脉冲驱动注意力单元,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,提取所述脉冲特征图的脉冲矩阵,对所述脉冲矩阵进行脉冲驱动注意力运算,得到所述脉冲输出,并对所述脉冲输出进行处理,得到膜电势特征图,包括:
基于所述脉冲驱动注意力单元的主分支,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并提取所述脉冲特征图的脉冲矩阵,对所述脉冲矩阵进行脉冲驱动注意力运算以确定所述脉冲输出,应用所述脉冲输出确定主分支膜电势;
基于所述脉冲驱动注意力单元的残差分支,提取所述位置编码结果的膜电势,得到残差分支膜电势,融合所述主分支膜电势和所述残差分支膜电势确定所述膜电势特征图。
4.根据权利要求3所述的基于全加法脉冲式Transformer的分类方法,其特征在于,所述基于所述脉冲驱动注意力单元的主分支,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并提取所述脉冲特征图的脉冲矩阵,对所述脉冲矩阵进行脉冲驱动注意力运算以确定所述脉冲输出,应用所述脉冲输出确定主分支膜电势,包括:
基于所述主分支的前处理层,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图依次进行线性映射、批归一化和脉冲序列转化处理,得到所述脉冲矩阵;
基于所述主分支的运算层,对所述脉冲矩阵进行脉冲驱动注意力运算,得到所述脉冲输出;
基于所述主分支的后处理层,对所述脉冲输出依次进行脉冲序列转化、线性映射和批归一化处理,得到所述主分支膜电势。
5.根据权利要求2至4任一项所述的基于全加法脉冲式Transformer的分类方法,其特征在于,所述基于所述编码模块的多层感知器单元,对所述膜电势特征图进行膜电势处理,得到所述输出膜电势,包括:
基于所述多层感知器单元的主通道,对所述膜电势特征图依次进行脉冲序列转化、线性映射和批归一化处理,得到主通道膜电势;
基于所述多层感知器单元的残差通道,提取所述膜电势特征图的膜电势,得到残差通道膜电势,融合所述主通道膜电势和所述残差通道膜电势确定所述输出膜电势。
6.根据权利要求1至4任一项所述的基于全加法脉冲式Transformer的分类方法,其特征在于,所述基于分类模型的预处理模块,对所述图像进行特征提取,得到基本特征图,并对所述基本特征图进行相对位置编码,得到所述图像的位置编码结果,包括:
基于所述预处理模块的脉冲块分解单元,将所述图像拆分成块,得到图像块,并对所述图像块进行特征提取,得到基本特征图;
基于所述预处理模块的位置编码单元,对所述基本特征图依次进行脉冲序列转化、卷积运算和批归一化处理,得到位置特征,融合所述基本特征图和所述位置特征确定所述位置编码结果。
7.根据权利要求1至4任一项所述的基于全加法脉冲式Transformer的分类方法,其特征在于,所述分类模型中存在多个所述编码模块,多个所述编码模块顺次串联,前一编码模块确定的所述输出膜电势为后一编码模块对应的位置编码结果。
8.一种基于全加法脉冲式Transformer的分类装置,其特征在于,包括:
获取单元,用于获取待分类的图像;
处理单元,用于基于分类模型的预处理模块,对所述图像进行特征提取,得到基本特征图,并对所述基本特征图进行相对位置编码,得到所述图像的位置编码结果;
编码单元,用于基于所述分类模型的编码模块,对所述位置编码结果进行脉冲序列转化,得到脉冲特征图,并对所述脉冲特征图的脉冲矩阵进行脉冲驱动注意力运算,得到所述图像的输出膜电势;
分类单元,用于基于所述分类模型的分类模块,应用所述输出膜电势进行图像分类,得到所述图像的图像类别;
其中,所述脉冲矩阵包括矩阵Q、矩阵K和矩阵V,所述脉冲驱动注意力运算,包括:
对所述矩阵Q和所述矩阵K进行逐元素掩码运算,得到运算结果;
将所述运算结果按列求和,得到求和结果;
对所述求和结果进行脉冲序列转化,得到脉冲序列;
对所述矩阵V和所述脉冲序列进行逐列掩码运算,得到脉冲输出,所述脉冲输出用于确定所述输出膜电势。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于全加法脉冲式Transformer的分类方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于全加法脉冲式Transformer的分类方法。
CN202310899447.6A 2023-07-21 2023-07-21 基于全加法脉冲式Transformer的分类方法 Active CN116645566B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310899447.6A CN116645566B (zh) 2023-07-21 2023-07-21 基于全加法脉冲式Transformer的分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310899447.6A CN116645566B (zh) 2023-07-21 2023-07-21 基于全加法脉冲式Transformer的分类方法

Publications (2)

Publication Number Publication Date
CN116645566A true CN116645566A (zh) 2023-08-25
CN116645566B CN116645566B (zh) 2023-10-31

Family

ID=87643736

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310899447.6A Active CN116645566B (zh) 2023-07-21 2023-07-21 基于全加法脉冲式Transformer的分类方法

Country Status (1)

Country Link
CN (1) CN116645566B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115131607A (zh) * 2022-06-15 2022-09-30 北京工业大学 图像分类方法及装置
WO2022253229A1 (zh) * 2021-06-04 2022-12-08 北京灵汐科技有限公司 突触权重训练方法、目标识别方法及电子设备、介质
CN115908896A (zh) * 2022-10-28 2023-04-04 北京理工大学 基于带自注意力机制脉冲神经网络的图片识别系统
CN116433980A (zh) * 2023-04-19 2023-07-14 中科南京智能技术研究院 脉冲神经网络结构的图像分类方法、装置、设备及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022253229A1 (zh) * 2021-06-04 2022-12-08 北京灵汐科技有限公司 突触权重训练方法、目标识别方法及电子设备、介质
CN115131607A (zh) * 2022-06-15 2022-09-30 北京工业大学 图像分类方法及装置
CN115908896A (zh) * 2022-10-28 2023-04-04 北京理工大学 基于带自注意力机制脉冲神经网络的图片识别系统
CN116433980A (zh) * 2023-04-19 2023-07-14 中科南京智能技术研究院 脉冲神经网络结构的图像分类方法、装置、设备及介质

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
MAN YAO ET AL.: "Attention Spiking Neural Networks", 《ARXIV》 *
张铁林 等: "脉冲神经网络研究现状及展望", 《计算机学报》, vol. 44, no. 9 *
徐宇奇: "基于多注意力的脉冲卷积神经网络学习方法", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
徐频捷;王诲?;李策;唐丹;赵地;: "基于脉冲神经网络与移动GPU计算的图像分类算法研究与实现", 计算机工程与科学, no. 03 *
李雅馨 等: "面向图像识别的多层脉冲神经网络学习算法综述", 《中国图象图形学报》 *
程龙;刘洋;: "脉冲神经网络:模型、学习算法与应用", 控制与决策, no. 05 *

Also Published As

Publication number Publication date
CN116645566B (zh) 2023-10-31

Similar Documents

Publication Publication Date Title
Yeh et al. Lightweight deep neural network for joint learning of underwater object detection and color conversion
CN108171701B (zh) 基于u网络和对抗学习的显著性检测方法
CN112052886A (zh) 基于卷积神经网络的人体动作姿态智能估计方法及装置
CN109886225A (zh) 一种基于深度学习的图像手势动作在线检测与识别方法
CN108985252B (zh) 改进的脉冲深度神经网络的图像分类方法
CN111539290B (zh) 视频动作识别方法、装置、电子设备及存储介质
CN111738169A (zh) 一种基于端对端网络模型的手写公式识别方法
CN111833360B (zh) 一种图像处理方法、装置、设备以及计算机可读存储介质
CN115393396B (zh) 一种基于掩码预训练的无人机目标跟踪方法
CN114186672A (zh) 一种用于脉冲神经网络的高效高精度训练算法
CN111079665A (zh) 基于Bi-LSTM神经网络的摩尔斯电码自动识别方法
CN115908896A (zh) 基于带自注意力机制脉冲神经网络的图片识别系统
CN113505719A (zh) 基于局部-整体联合知识蒸馏算法的步态识别模型压缩系统及方法
CN110610131B (zh) 人脸运动单元的检测方法、装置、电子设备及存储介质
CN117351542A (zh) 一种面部表情识别方法及系统
CN112149526A (zh) 一种基于长距离信息融合的车道线检测方法及系统
CN116580278A (zh) 一种基于多注意力机制的唇语识别方法、设备及存储介质
CN114996495A (zh) 一种基于多原型和迭代增强的单样本图像分割方法及装置
CN115240240A (zh) 基于yolo网络的红外人脸识别方法及系统
CN116758621B (zh) 基于自注意力机制的遮挡人脸面部表情深度卷积识别方法
CN116645566B (zh) 基于全加法脉冲式Transformer的分类方法
CN116954113A (zh) 智能机器人驱动传感智能控制系统及其方法
CN116229584A (zh) 一种人工智能领域的文本分割识别方法、系统、设备及介质
CN113971826B (zh) 估计连续的效价和唤醒水平的动态情感识别方法和系统
CN114463614A (zh) 使用生成式参数的层次性显著建模的显著性目标检测方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant