在传统的深度学习模式中,随着网络层次的增加,其非线性表现更加明显, 模型可以获得更多的特性。然而,由于网络规模的增大,使得传统的多层次网络结构很难用非线性表达来表达连续的映射,从而导致了网络的退化。
一维时间序列信号,比如机械振动信号中存在着大量的噪声干扰,严重影响了故障诊断的精度。针对以上问题,有学者提出一种深度残差收缩网络进行一维时域信号识别。深度残差收缩网络是一种针对含噪数据的深度学习方法。在对深度残差网络进行反向传播的情况下,其损失不但可以通过卷积层等逆向传递,而且可以利用残差项的常数映射来实现逆向传播。然后,采用软阈值法对振动信号进行降噪,以获得更好的模型。
深度残差收缩网络DRSN 是基于卷积神经网络(CNN)网络,它包括残差块、软阈值和注意力机制。
算法理论如下:
可参考的论文如下:
[1]田钦文,冯辅周,李鸣等.基于一维深度残差收缩网络的汇流行星排齿轮裂纹故障诊断[J].振动与冲击,2022,41(19):198-206.
[2]吴爱华,彭金喜.基于深度残差收缩网络的信号调制类型识别[J].电子信息对抗技术,2022,37(04):24-30.
本项目采用深度残差收缩网络处理一维时域信号,即对一维轴承振动信号进分类。
test_data.zip 已解压的测试数据,来源西储大学的轴承数据集。包含原始数据,信噪比5,信噪比-5的加噪信号(均为高斯白噪声)。
data_process.py 采用滑动窗口采样的方式,将一维时域信号切割为长度2048的多个样本(运行时修改data路径)
rsnet.py 基于resnet34
train.py 训练网络时运行该程序即可,需保证三个程序均在同一路径下,否则可能出现导包异常。
代码所用模块如下:
from torch.utils.data import TensorDataset, DataLoader
import numpy as np
import torch
import torch.nn as nn
from torch.autograd import Variable
import torch.optim as optim
import matplotlib.pyplot as plt
from rsnet import rsnet34
from data_process import preprocess
结果如下:
算法可迁移至金融时间序列,地震/微震信号,机械振动信号,声发射信号,电压/电流信号,语音信号,声信号,生理信号(ECG,EEG,EMG)等信号。
代码jian'pin