用小神经网络和光谱仪优化关键词识别

用小神经网络和光谱仪优化关键词识别

Optimizing keyword spotting with small neural networks and spectrographs

随着由语音命令控制的智能设备的激增,一种被称为关键字识别的自然语言处理技术正在获得越来越多的关注。             

来自亚马逊、谷歌、苹果和其公司的语音助理可以对“热门词”后面的短语做出回应,比如“嘿,谷歌”或“嘿,Siri”,而且似乎几乎立即做出回应。事实上,响应延迟只有几分之一秒,这在智能扬声器设备中是可以接受的。             

一个小装置怎么会这么聪明?             

语音助手使用数字信号处理器来消化第一个“热词”,随后的短语通过互联网发送到云端。然后,语音被转换成数字流,这些数字流在一个循环卷积神经网络中进行处理,该神经网络可以记住先前的内部状态,以便训练识别短语或单词序列。             

这些数据流在数据中心进行处理,请求的答案或歌曲通过网络发送回语音助手。这种方法在非关键的情况下工作得很好,在这种情况下延迟无关紧要,而且互联网连接是可靠的。             

位于数据中心的神经网络采用类似逐次逼近的方法,使用数百万个样本进行训练;最初误差非常大,但通过将误差反馈到调整网络参数的算法中,可以减少误差。在每一个训练周期内,误差减小。然后重复训练周期,直到输出正确为止。对于数据集中的每个单词和短语都会执行此操作。训练这样的网络可能需要很长时间,大约几周。             

一旦经过训练,网络就可以识别出不同个体所说的单词和短语。识别过程被称为推理,需要进行数百万次乘法运算,然后进行累加(MAC)运算,这就是为什么在设备内的微处理器上不能及时处理信息。             

在关键字识别中,需要识别多个单词。将其发送到数据中心的延迟是不可接受的,而且Internet连接也不总是可以保证的。因此,优选在设备上对短语进行本地处理。             

一种解决方案是将乘法累加函数压缩成更小的芯片。例如,googleedge张量处理单元(TPU)集成了许多数组乘法器和数学函数。这个解决方案仍然需要微处理器来运行神经网络,但是MAC函数被传递到芯片上并被加速。             

虽然这种方法允许小型微处理器运行更大的神经网络,但也有缺点:对于小型或电池供电的设备来说,功耗仍然过高。随着尺寸的减小,性能也随之降低。小型专用乘法器阵列的数量和速度不如数据中心中的大型、耗电量大的gpu或tpu。             

另一种方法是使用更小、更紧密的神经网络进行关键字处理。这些网络不是在大型递归网络中执行复杂的处理技术,而是通过使用被称为MFCC的语音识别算法将值流转换为频谱仪来处理关键字。下面的光谱仪代表信号的频谱。

摄谱仪图像被输入到一个更简单的7层前馈神经网络中,该神经网络已经被训练来识别关键字集的特征。例如,Google关键字数据集包含65000个1秒的样本,这些样本由数千个不同的人所说的30个单词组成。关键字的例子有上、下、左、右、停、去、开和关。             

另一种方法             

采取了完全不同的方法,在基于事件的硬件中处理声音、图像、数据和气味。智能芯片早在当前的机器学习热潮出现之前就已经成立了。神经网络和人工智能处理方法的进步是主要目标,专注于神经形态的硬件设计。             

人脑不运行指令,而是依赖神经细胞。这些细胞处理信息并以尖峰信号进行通信,尖峰是电能的短脉冲,表示“事件”的发生,如颜色、线路、频率或触摸的变化。             

相比之下,计算机被设计成对数据位进行操作并执行程序员编写的指令。这是两种截然不同的处理技术。在计算机上以神经网络的形式模拟脑细胞的功能需要许多计算机指令。             

意识到可以省去指令,建立高效的数字电路,以大脑的方式进行计算。大脑是一般智能系统的终极范例。这正是Brainchip开发Akida神经处理器所做的。             

当将深度学习功能与基于事件的峰值神经网络(SNN)硬件相结合时,芯片得到了进一步的发展,从而显著降低了功耗要求并提高了性能,同时还具有快速片上学习的优势。Akida芯片可以处理谷歌关键字数据集,利用简单的7层神经网络,在不到200微瓦的功率预算内。             

Akida使用ImageNet数据集进行训练,使其能够立即学会识别新对象,而无需昂贵的再训练。芯片具有内置的稀疏性。全数字化设计是基于事件的,因此当输入刺激不会导致神经元超过阈值时,不会产生任何输出。

这可以用一个简化的,虽然极端的例子来说明。想象一个中间有一个点的图像。传统的神经网络需要处理图像的每个位置,以确定其中是否存在某些东西。从图像中提取一块像素并执行卷积。结果是零,这些零和所有其块生成的零一起传播到整个网络,直到到达点为止。检测和消除零会增加额外的延迟,并导致处理速度减慢而不是加快。要确定图像中是否存在一个点,需要进行近5亿次操作。             

相比之下,基于Akida事件的方法只对一个事件,即单个点做出响应。所有其位置都不包含信息,零也不会通过网络传播,因为不会生成事件。实际上,对于真实图像来说,这种稀疏性会减少40%到60%的计算量,从而使用较少的能量生成相同的分类结果。

Training Akida

一个使用Akida芯片在Google Speech Commands 数据集上训练的关键字识别应用程序可以在一个小型电池上运行数年。同样的电路配置为使用30层和芯片上的所有80个神经处理单元,可以在不到200毫瓦的情况下实时处理整个ImageNet数据集(使用一个penlight电池大约需要5天)。             

用于图像分类的MobileNet网络非常适合于芯片,包括所有需要的内存。芯片上的实时学习功能使添加到已学单词库成为可能,这是一个很好的功能,可用于个性化的单词识别,如姓名、地点和定制命令。             

另一个关键字识别选项是Syntiant NDP101芯片。虽然该设备也可以在相当低的功率(200微瓦)下工作,但是一个专用的音频处理器,集成了音频前端、缓冲和特征提取以及神经网络。Syntiant预计未来将用内存模拟电路取代数字mac,以进一步降低功耗。             

Akida芯片具有片上学习和多功能性的附加优势。也可以被重新配置以执行声音或图像分类、气味识别或对从数据中提取的特征进行分类。本地处理的另一个优点是没有图像或数据暴露在互联网上,大大降低了隐私风险。

这项技术的应用范围从语音激活设备到更换制造设备中的磨损部件。这项技术还可以用于根据轮胎在路面上发出的声音来确定轮胎磨损情况。其汽车应用包括监控驾驶员的警觉性,倾听发动机以确定是否需要维护,以及扫描驾驶员盲区内的车辆。             

期望Akida能够进化,融入大脑结构,特别是以人工通用智能(AGI)为目标的皮层神经网络。这是一种机器智能的形式,可以训练执行多个任务。AGI技术可用于控制自动驾驶车辆,具有足够的智能来控制车辆,并最终学习驾驶,就像人类学习的一样。当然,在实现这一目标的过程中会有许多中间步骤。

未来的Akida设备将包括一个更复杂的神经网络模型,可以瘦身越来越复杂的任务。

原文地址:https://www.cnblogs.com/wujianming-110117/p/13266434.html