电子书

第 4 章

为深度网络创建输入


直接从原始数据中学习称为端到端学习。现代的深度学习系统通常使用端到端学习来解决图像和计算机视觉问题。不过,对于信号数据,端到端学习其实极少用到。

对于几乎所有的实际信号处理应用,您都可以使用某种特征提取技术来减少维度和大小。

以下是两种深度学习网络,长短期记忆 (LTSM) 网络和卷积神经网络 (CNN),的特征提取步骤如下所述。请注意,基于您选择的方法,输入预处理必定会有所不同。

长短期记忆 (LSTM) 网络

卷积神经网络 (CNN)

节

不同的应用需要不同的变换方法

通常来说,在提取信号特征时将信号按缓冲区或帧进行组织是个不错的做法,因为这些缓冲区或帧可以重叠以提高时间分辨率。

很多特征提取方法(也称时频变换)都建立在通过快速傅里叶变换 (FFT) 或类似操作在频域中变换每个缓冲区的基础上。

以这种方式获得的最简单输出类型称为短时傅里叶变换 (STFT) 和频谱图。您会发现,这些输出类型经常与最初设计用于处理图像的网络类型结合使用,因为它们是二维信号表示。

一些常见的输出类型如下:

基本频谱图
易于理解和实现

使用基本频谱图直观地表示转换为二维图像数据的信号数据。

感知间隔(如 Mel、Bark)频谱图
非常紧凑,适于语音和音频应用

使用感知间隔频谱图直观地表示转换为二维图像数据的信号数据。

小波尺度图
良好的时间分辨率,适用于非周期信号

使用小波尺度图直观地表示转换为二维图像数据的信号数据。

常数 Q 变换
在低频的情况下获得较高分辨率

直观地表示使用常数 Q 变换转换为二维图像数据的信号数据。

在处理语音或其他可闻信号时,您往往会看到更高级的频谱图类型。在此类频谱图中,频率经过缩放,从而模仿人们感知频率的方式。在许多情况下,信号的时频特性比其时域波形更有辨识度。即使对人眼来说,识别时频域中的特征也更容易。

节

总结

通过提取特征对数据集进行标注后,您最终会得到一系列特征数组,每个特征数组都与其各自的原始标签相关联,而这些标签在您训练网络时需要用到。

数据增强将使得用于计算特征的数据比原始数据集中的数据要多。您可能需要借助多核机器或 GPU 等加速硬件来计算特征。

许多 MATLAB 特征提取函数可在 GPU 上运行。这些函数处理的数据越多,您节省的时间就越多。

要了解有关在 GPU 上处理信号的更多信息,请在 MATLAB 中键入“gpuArray”。

图中显示了几组标注信号。箭头从信号伸出,标记为 Extract Features(提取特征)。这些箭头指向一组相应的特征数组。特征数组有一个标记为 Train(训练)的箭头指向一个网络图标。

通过提取特征,您最终会得到一组特征数组及其原始标签。

图中显示了几组已标注的信号。每组信号都有一个标记为 Augment(增强)的箭头。每个箭头都带有几层信号图标。Augment(增强)箭头后延伸出标记为 Extract Features(提取特征)的箭头。这些箭头指向一组相应的特征数组。特征数组有一个标记为 Train(训练)的箭头指向一个网络图标。

数据增强增加了您从中提取特征的数据,同时保留了原始标签。

经过训练的网络根据特征预测触发字掩膜,并生成铃声作为输出。现在将该网络与 classify 函数一起使用,从而根据一组特征和一些代码预测触发字掩膜,以检测掩膜转换并在正确的时间生成铃声作为输出。

提取特征

% 从整个分析缓冲提取梅尔倒谱系数 
[coeffs,delta,deltaDelta] = mfcc(buf,SampleRate,...
   'WindowLength',winLength,...
   'OverLength',ovlpLength); 

% Concatenate and normalize features 
featureMatrix = [coeffs,delta,deltaDelta]; 
featureMatrix = (featureMatrix - M)./S;

推断

% 使用 LTSM 网络检测关键字(在语音字周围标记出来) 
featMask = classify(net,featureMatrix.');

触发

% 在时域中对检测进行去抖并重新对其 
(timeMask, chimePosition) = debounceAnalyzeDetectionMask(featMask); 

% 为检测事件生成铃声 
chime = generateChimeAtSample(chimePosition,... 

知识测试

开发 AI 驱动的信号处理应用需要什么?

一个经过验证的简单深度学习模型、大量数据和一些专业领域知识,以及适用于特定应用的手头工具。值得注意的是,深度学习系统的质量完全取决于训练所用的数据。