一维卷积神经网络(1D-CNN)
常见用的卷积神经网络(CNN,convolutional neural network)为2D-CNN,即卷积核为两维,常用于处理图片、视频等数据,已经成功应用于许多计算机视觉和模式识别任务中。在采用CNN处理1维信号时,通常需要将1维信号转换为2维再输入CNN中,例如将1D振动信号、心电信号等通过各种变换方式变成2D图片后输入CNN。然而,采用2D-CNN处理1D信号时存在以下缺点:
- 处理2维数据时,算法计算复杂度更高,通常需要更高性能的硬件来进行训练,因此不是特别适用于实时应用场景和低功耗、低内存的设备;
- 通常2D-CNN需要大量训练数据,然而许多1D信号处理领域缺乏大量标记数据。
近年来,越来越多的学者采用紧凑的1D-CNN来直接处理1D信号,已经成功应用于心电信号分类、结构健康监测、轴承故障诊、模拟电路故障诊断、大功率发动机故障监控等多个领域。相比于2D-CNN,1D-CNN具有参数量小、训练容易、计算量小等优点。1D-CNN与2D-CNN结构类似,只是卷积核为1维卷积,1D-CNN通常包括1D卷积层、降采样Pooling层和全连接层,通过反向传播算法对每个卷积单元参数进行优化。1D-CNN主要的超参包括:卷积层和全连接层数、卷积核大小、降采样因子大小、激活函数、学习率等。1D-CNN网络结构如图1所示。
图1 1D-CNN网络结构图
卷积层将输入的局部区域与多个滤波器核进行卷积操作,然后送入神经元产生输出特征。每个过滤器采用相同的内核来提取输入局部区域的局部特征,这通常称为权重共享。卷积操作可以定义为:
y i l + 1 ( j ) = K i ⊤ ∗ x l ( j ) + b i l \mathrm{y}_{i}^{l+1}(j)=K_{i}^{\top} * x^{l}(j)+b_{i}^{l} yil+1(j)=K