logo好方法网

极低功耗关键词唤醒神经网络电路

技术摘要:
本发明公开了一种极低功耗关键词唤醒神经网络电路及数据映射方法,采用的神经网络模型深度可分离卷积神经网络,训练时将其权值和中间激活值均进行二值化处理,得到具有小存储量和小计算量的轻量级神经网络模型。该电路基于数据处理单元阵列设计,利用存储模块存储关键  全部
背景技术:
随着计算机技术飞速发展,人机交互成为越来越热门的研究方向,而语音是进行 信息交流的重要手段,语音识别越来越成为人们关注的热点。对于人机交互来讲,语音识别 相比于手势识别、触摸式交互、视觉追踪等交互方式,是最自然、最为便利的交互手段。关键 词唤醒技术,是语音识别技术的一个重要分支,通常作为语音识别的入口而存在。大规模语 音识别技术是让机器听懂人说的话,让机器能识别人类的语言,而关键词唤醒技术是叫醒 机器。关键词唤醒技术与通用的大规模语义识别技术不同之处在于,关键词唤醒只需识别 语音信号中是否包含某一个或某些特定词汇,而并非需要完整识别整段语音信号的语义。 关键词唤醒电路扮演的是设备开关的角色,关键词唤醒的存在可以使电子设备大 部分时间内处于待机或关闭状态,而无需长时间处于接收指令的工作状态,进而帮助设备 节省功耗。可以说,在功能上,关键词唤醒系统可以被认为是一个“语音开关”。因特定关键 词唤醒的任务较为简单,无需精确识别每一个语音词汇具体含义,只要区分出特定词汇与 包括其他词汇以及环境噪声在内的任何其他语音信号即可,因此关键词唤醒可以看成是一 种小资源的关键词检索任务,其中小资源是指计算资源和存储资源比较小。虽然任务较为 简单,占用计算资源和存储资源较少,但是关键词唤醒电路作为“语音开关”的属性注定需 要长时间处于工作状态,电子设备可以长时间休眠,但关键词唤醒系统作为唤醒设备的开 关必须时刻处于工作状态,时刻接收外界语音信号,以便在识别到唤醒词汇后唤醒整个电 子设备。随着物联网技术的发展,很多电子设备是依靠电池供电或充电式设备,关键词唤醒 系统这样一个长时间处于工作状态的电子系统的功耗就显得极为重要。如何设计出资源占 用小,功耗低的关键词唤醒电路将直接影响整套电子设备的待机和工作时间。 端到端关键词唤醒系统是一种新型的关键词唤醒系统,它将传统的隐马尔可夫模 型的声学模型、发音词典等模型全部融入一个神经网络,声学模型的训练过程转变为神经 网络的训练过程,声学模型训练后参数也转变为深度神经网络中的权重参数(以下将权重 参数简称为参数)。语音信号到输出结果的识别过程就是一个神经网络的正向推理过程,由 于神经网络不同层的训练是一同协调完成的,因此基于神经网络端到端系统更便于从全局 上优化参数。由此,神经网络的计算也成为端到端关键词唤醒系统中的主要部分,神经网络 的电路的低功耗需求也变得越来越迫切。 深度可分离卷积神经网络有着比常规的卷积神经网络更少的参数和更少的计算 量,因此有望在极低功耗关键词唤醒得到应用。深度可分离卷积的计算过程是与传统卷积 计算类似,但是却将传统卷积的三维累加过程拆分为两次,一次是在空间上,一个是在深度 上。对于M个通道的输入数据,第一步卷积是通道分离的,因此在卷积不再是三维空间卷积, 4 CN 111583940 A 说 明 书 2/6 页 而是二维空间上的卷积,那么通道分离卷积核(Depthwise  Separable  kernel,DS  kernel) 的总规模相当于普通卷积的一个卷积核的规模。通道分离卷积是第一步卷积,得到的结果 仍是M个通道的。第二步卷积计算就是将通道之间的数据进行融合卷积计算,但是因为第一 步卷积时已经将其他两维的数据进行融合卷积,第二步卷积就只融合M个不同通道的数据, 第二步深度融合卷积核(Pointwise  kernel,PW  kernel)的规模就是1×1×M,总共有N个(N 为输出通道数)。总的计算量和参数量约为同等大小的卷积神经网络的1/N。 本发明提供了一种极低功耗关键词唤醒神经网络电路及数据映射方法,采用的神 经网络模型为深度可分离卷积神经网络,训练时将其权值和中间激活值均进行二值化处 理,得到具有小存储量和小计算量的轻量级神经网络模型。本发明的神经网络电路可完成 混合数据精度的神经网络计算,根据不同精度特点对数据进行门控,有效降低数据翻转率, 以此设计了二值化的深度可分离卷积神经网络电路,极大的降低神经网络电路的功耗。
技术实现要素:
发明目的:本发明提供一种极低功耗关键词唤醒神经网络电路,在完成神经网络 计算功能的前提下,有效降低电路功耗。 技术方案:本发明提供的技术方案为: 本发明基于二值化深度可分离卷积神经网络网络模型,根据硬件电路存储和计算 数据的特点优化神经网络架构,在保证网络识别精度的基础上减少所需的存储量和计算 量,以满足硬件电路的低存储、低计算量要求,以此设计具有低功耗的关键词识别电路。 本发明中神经网络训练使用的数据集为谷歌语音命令数据集(Google  Speech  Commands  Dataset,简称GSCD)和LibriSpeech,识别任务为两个关键词。所用的神经网络模 型为深度可分离卷积神经网络(Depthwise  Separable  Convolution  Neural  Network , DSCNN),包含一层卷积层,一层深度可分离卷积层,一层池化层和一层全连接层,除第一层 卷积层采用8bit的输入位宽外,其余的各层数据均为二值化表示。二值化是指将数据用0和 1两个数值表示,即采用1bit数据。二值化神经网络能极大的降低位宽,从而降低功耗。二值 化神经网络分为两类,第一类仅将权重二值化,第二类将权重和激活值均二值化,本文采用 的是第二类全二值化网络。基于此神经网络模型在训练了大量样本的基础上获得权重和偏 置,用来给神经网络电路提供相应的权重值和偏置值。 极低功耗关键词唤醒神经网络电路的输入为语音信号的频谱特征值,输出信号为 唤醒指示标志,若识别到正确的关键词则其置1,否则保持为0。基于上述神经网络结构设计 神经网路计算电路。存储模块存储神经网络的权重和偏置参数以及输入、输出和中间计算 数据。数据映射模块将存储模块的数据映射分配给数据处理单元阵列。数据处理单元阵列 用于完成神经网络的乘累加计算,同时完成激活函数计算功能,其数据精度可以配置为 1bit和8bit两种模式。控制模块控制整体电路的运行状态,协同各模块完成神经网络的计 算。 数据映射模块根据控制状态的数据精度需求选择是否对输入数据进行门控处理, 以满足8bit和1bit两种数据精度模式,从而完成混合精度神经网络计算,在1bit模式下,输 入数据高7位全为0,并用数字高电平表示实际数据的 1,低电平表示数据的-1,可以有效降 低数据翻转率,进而降低电路功耗。 5 CN 111583940 A 说 明 书 3/6 页 具体技术方案为: 所述极低功耗关键词唤醒神经网络电路的所用的神经网络模型为深度可分离卷 积神经网络,区别于传统的卷积网络结构,深度可分离卷积采用二维的卷积模式,在不损失 识别精度的前提下,极大地减少了权重的存储和数据的计算量,降低了硬件电路中存储阵 列的静态功耗以及数据翻转的动态功耗。本发明中关键词唤醒神经网络的识别任务为两个 关键词,即三分类任务,分类结果为:关键词1、关键词2和填充词(filler)。训练的样本为基 于单个音频的GSCD和长音频的LibriSpeech数据集。为了满足硬件计算的低存储、低计算量 要求,在网络训练过程中不断调整网络的层数以及数据量化精度,在保证识别精度的前提 下缩减网络规模,最终的神经网络采用二值化的权重和二值化的激活值,除了第一层的输 入数据为8bit,其余中间计算结果均被量化到1bit。 神经网络电路的架构采用软硬件统筹设计,将阵列式处理单元个数与存储单元的 尺寸适配,使每一块存储子单元的行数及阵列处理单元个数与卷积核通道数相等,均为M,M 为大于1的整数。神经网络电路主要由存储模块、数据映射模块、数据处理单元阵列及控制 模块构成。存储模块负责存储神经网络计算时所需权重和偏置参数以及输入、输出和中间 计算数据,其中输入数据来源于唤醒语音信号的频谱特征值输入。数据映射模块将存储模 块中的数据根据神经网络的计算规则映射分配给数据处理单元阵列。数据处理单元阵列用 来完成神经网络计算过程中的大量乘累加计算,其数据精度根据数据映射模块的控制和映 射方式不同可以配置为1bit和8bit两种模式,同时数据处理单元阵列可完成神经网络中的 激活函数计算功能。控制模块的控制信号控制着存储模块、数据映射模块和数据处理单元 阵列,控制整体电路的运行状态,协同各模块完成神经网络的计算。 所述存储模块可以细分为5个模块,存储神经网络权重参数的权重存储阵列,存储 神经网络偏置参数的偏置存储阵列,存储输入特征数据的特征存储阵列,以及存储中间层 计算结果的两块中间数据存储阵列,两块中间数据存储阵列分别存储当前网络层的输入和 输出数据。存储规模大的存储模块采用分块设计,每一块存储子单元的行数及数据处理单 元个数与卷积核通道数相等,均为M。 所述数据映射模块主要由选通逻辑组成,根据神经网络的每一层的结构、连接方 式和规模等网络本身特性,按照神经网络结构的计算规则将存储模块中的数据映射给数据 处理单元阵列进行计算,其具体状态由控制模块进行控制。 所述数据处理单元阵列由M个数据处理单元组成,M为大于1的整数,此处以M=32 举例。其数据来源于数据映射模块,每个数据处理单元完成神经网络一个输入通道数据的 乘累加计算,每个数据处理单元内部有一个乘加单元和一块激活电路,数据处理单元阵列 负责完成神经网络中所有的乘加计算。数据处理单元阵列的计算结果存入存储模块中的中 间数据存储阵列。由于阵列式处理单元个数与存储单元的尺寸适配,M个数据处理单元一次 性能够完成M个通道的乘累加计算,在提高运算效率的同时极大的节省了存储单元的读写 时间和读写功耗。 所述的控制模块主要由两个嵌套状态机组成,上层状态机控制层间跳转,其状态 标志着目前神经网络电路在进行哪一层神经网络的计算,而底层状态机控制存储模块、映 射模块及数据处理单元阵列的具体行为,包括数据载入、累加、加偏置、激活输出等行为。 神经网络电路的数据映射方法为:数据映射模块根据控制状态(控制状态包括卷 6 CN 111583940 A 说 明 书 4/6 页 积运算,可分离卷积运算,池化运算,全连接运算)的数据精度需求选择是否对输入数据进 行门控处理,以满足8bit和1bit两种数据精度模式,从而完成混合精度神经网络计算。 本发明的有益效果是: 1、本发明所使用的神经网络模型深度可分离卷积神经网络,相比于卷积网络极大 的减少了数据计算量和参数存储量;且在训练时将其权值和中间激活值均进行二值化处 理,得到具有小存储量和小计算量的轻量级神经网络模型; 2、神经网络电路的架构采用软硬件统筹设计,将阵列式处理单元个数与存储单元 的尺寸适配,使每一块存储子单元的行数及阵列处理单元个数与卷积核通道数相等,均为 M,因此在计算时可一次性的运算完M个通道的卷积运算,运算效率高且降低了存储单元的 读写功耗。 3、本发明所使用的数据映射方法,可灵活配置数据处理单元的数据精度,使得神 经网络电路的数据精度灵活可配;本发明采用M个数据处理单元完成了所有卷积层、全连接 层和最大池化、求激活值等操作。 附图说明 图1是深度可分离卷积层的结构示意图 图2是本发明所述深度可分离神经网络的整体结构图 图3是本发明所述神经网络电路的电路结构图 图4是本发明所述乘加单元电路结构图 图5是本发明所述乘加单元电路时序图 图6是本发明所述激活电路的结构图
分享到:
收藏