深度学习与智能故障诊断学习笔记(三)——RNN与LSTM推导详解

1.RNN

1.1网络结构

标准神经网络的输入输出在不同例子中可能有不同的长度,在学习中并不共享从不同位置上学到的特征。因为标准神经网络的训练集是稳定的,即所有的特征域表达的内容是同一性质的,一旦交换位置,就需要重新学习。故障诊断和健康管理属于带有时间序列的任务场景,在进行学习时参数量巨大,标准神经网络无法体现出时序上的前因后果,所以引入循环神经网络。如图所示为RNN循环神经网络的单元。

其中x^{<t>}为当前输入,a^{<t-1>}为前一个状态,b为偏置项,tanh为激活函数,用于学习非线性部分。当前输入和前一个状态分别乘以对应权重并相加,在加上偏置项,乘激活函数得到当前状态a^{<t>},此状态在下一个神经元学习时又作为a^{<t-1>}进行运算,由此实现时序关联。输出\widehat{y}^{t}的激活函数根据任务类型来选择,若是多分类可以选择softmax,若二分类则可直接选择sigmod。

(注:输出并非每个神经元都必须有,RNN可以是多输入多输出,也可以是多输入单输出,仅在学习完成后输出)

1.2RNN网络特点

 RNN网络为串联结构,可以体现出“前因后果”,后面结果的生成要参考前面的信息,且所有特征共享一套参数。这使得RNN在面对不同的输入(两个方面),可以学习到不同的相应结果,并极大的减少了训练参数量。

(RNN输入和输出数据在不同场景中可以有不同的长度)

1.3损失函数

单个时间步的损失函数可根据多分类和二分类进行自定义

整个序列的损失函数是将所有单步损失函数相加,如式。

 1.4传播过程

前向传播如图一所示。

反向传播

 (图源自吴恩达老师课件)

求解梯度即复合函数求导,按照链式法则进行求导。

反向传播具体过程需要按照损失函数来具体求解,但上式对所有RNN模型都适用。

 1.5缺点

当序列太长时,容易产生梯度消失,参数更新只能捕捉到局部以来关系,没法再捕捉序列之间长期的关联或依赖关系。

如图为RNN连接,输入x,输出o(简单线性输出),权重w,s为生成状态。

 根据前向传播可得:

假设使用平方误差作为损失函数,对单个时间点进行求梯度,假设再t=3时刻,损失函数为L3 = \frac{1}{2}\left ( {Y}_3 - {O}_3 \right )^{2}。然后根据网络参数Wx,Ws,Wo,b1,b2等求梯度。

Wo:

 Wx(具体求解过程在下边):

 经整理可得:

 具体求解过程:

首先,所求目标为L3对Wx的偏导,通过链式法则进行展开。对比前向传播公式图可知,O3中并不能直接对Wx求偏导,而是包含在S3中,所以要展开成如下形式。

但在S3中又包含S2,S2中包含Wx和S1,S1中又包含Wx,嵌套了很多层,为了方便表示,我们用\theta3来表示S3括号中的内容。进一步简化可得:

 由S3演变为S2,同理可递推求出\frac{\partial S_{2}}{\partial W_{x}}\frac{\partial S_{1}}{\partial W_{x}}

再将所求出结果回代到公式中,可以得出 \frac{\partial S_{3}}{\partial W_{x}}

再回带至 \frac{\partial L_{3}}{\partial W_{x}}

 由该式可以看出,梯度的更新同时依赖于x3,x2,x1包括其梯度值。将该式处理为

此为t=3时刻的梯度公式,推广至任意时刻的梯度公式为:

此式括号中的项为求导的连乘,此处求出的导数是介于0-1之间的,有一定的机率导致梯度消失(但非主要原因)。造成梯度消失和梯度爆炸的主要原因是最后一项:当Ws很小的时候,它的k-1的次方会无限接近于0,而当Ws大于1时,它的k-1次方会很大。

如下为t=20时梯度更新计算的结果:

从式中可以看出,t=3的节点由于连乘过多导致梯度消失,无法将信息传给t=20,因此t=20的更新无法引入t=3时的信息,认为t=20节点跟t=3的节点无关联。 

对于梯度爆炸和梯度消失,可以通过梯度修剪来解决。相对于梯度爆炸,梯度消失更难解决。而LSTM很好的解决了这些问题。

2.LSTM

 2.1设计思路

RNN是想把所有信息都记住,不管是有用的信息还是没用的信息。而LSTM设计了一个记忆细胞,具备选择性记忆功能,可以选择记忆重要信息,过滤掉噪声信息,减轻记忆负担。

2.2整体结构

如图为LSTM与RNN结构对比

 LSTM

 RNN

2.3单元结构

在LSTM每个时间步中,都有一个记忆细胞,这个东西给予了LSTM选择记忆功能,使得LSTM有能力自由选择每个时间步里面记忆的内容。

下图中Ct-1为上一个记忆细胞,ht-1为上一个时间点的状态,经过该单元,输出一个新的记忆细胞和一个新的状态。在单元中有三个\sigma\sigma被称为门单元,它的输出值介于0-1之间。ft为遗忘门,it为更新门,Ot为输出门。

门是一种选择性地让信息通过的方法。它们由sigmoid神经网络层和逐点乘法运算组成。Sigmoid层输出0到1之间的数字,描述每个组件应允许通过多少。值为零表示“不让任何内容通过”,而值为 1 表示“允许所有信息通过”

 

公式所示为前向传播,Ct与Ct-1,ht-1,xt等参数都有关,其中Wxf,Whf,Wxi分别代表相应权重。在单元结构图中可以看出ft与Ct-1进行×运算(对应元素相乘),gt与it进行×运算,两者相加为新生成的ct。

2.4 缓解梯度爆炸和梯度消失

此过程为公式推导(以求Wxf为例)。

 

通过调节Whf,Whi,Whg的值,可以灵活控制Ct对Ct-1的偏导值,当要从n时刻长期记忆某个东西到m时刻时,该路径上的

 从而大大缓解了梯度消失和梯度爆炸。

(B站搜索老弓的学习日记,本篇博客为RNN与LSTM的学习笔记)

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CNN-LSTM 故障诊断指的是利用深度学习技术中的卷积神经网络(CNN)和长短期记忆网络(LSTM)对机器设备故障进行诊断。 传统的故障诊断方法主要包括基于规则、统计学和机器学习等方法,但这些方法存在一些问题,例如规则方法需要手动制定规则、统计学方法需要大量数据以及机器学习方法需要人工提取特征等。而 CNN-LSTM 方法则通过利用卷积神经网络对设备图像进行特征提取,再通过长短期记忆网络对已提取的特征进行建模,以实现故障诊断。 具体地,CNN-LSTM 故障诊断的步骤如下: 1. 数据采集:对机器设备进行传感器数据采集,包括温度、湿度、压力等数据。 2. 数据预处理:对采集到的传感器数据进行预处理,包括去除噪声、重采样、归一化等操作。 3. 特征提取:利用卷积神经网络提取设备图像中的特征。 4. 特征建模:利用长短期记忆网络对已提取的特征进行建模,学习设备状态的时序变化。 5. 故障诊断:根据学习到的模型进行故障诊断,并输出诊断结果。 通过 CNN-LSTM 故障诊断方法,可以实现对机器设备故障的快速、准确诊断,从而提高生产效率和降低维护成本。 ### 回答2: CNN-LSTM故障诊断是一种基于卷积神经网络和长短时记忆网络的方法应用于机械故障诊断中。在故障诊断中,通过对机器的振动、温度等传感器数据进行监测,可以实现对机械设备的预测性维护,从而大大降低故障风险和维修成本。 传统的基于频域特征或时域特征的机器故障诊断方法需要人为选取特征,受限于数据的质量和种类,很难覆盖所有的故障场景。而使用CNN-LSTM方法将传感器数据投入到模型中,能够自动地提取特征,适应不同的故障场景。 CNN-LSTM故障诊断方法主要分为四个步骤:数据准备、特征提取、模型训练和故障诊断。 首先,将传感器数据规整,包括去除异常数据、填补缺失数据等,以确保输入的数据质量。然后,使用CNN进行特征提取,捕捉数据中的关键特征。最后,将提取的特征输入到LSTM模型中进行训练,获得分类模型。在故障诊断时,将测试数据输入到模型中进行分类,即可获得机器的状态,以便分析故障原因和采取相应的维修措施。 相较于传统方法,CNN-LSTM故障诊断具有更高的准确率和鲁棒性,可以更好地适应不同的机器故障场景,广泛应用于航空、电力、自动化、交通等各个领域。 ### 回答3: CNN-LSTM 是一种将卷积神经网络和长-短期记忆神经网络结合起来的深度学习模型。它被广泛应用于时间序列数据分析中,如自然语言处理、音频处理以及图像视频处理等领域。在故障诊断方面,CNN-LSTM 可以有效地诊断机器或设备可能出现的故障。 在故障诊断中,CNN-LSTM 能够通过对多维度的传感器数据进行监测,不断地进行时序分析,从而识别机器或设备运行中的异常信号。通过捕捉数据的时间相关性,结合 ALARM 等系统自动化工具,CNN-LSTM 可以迭代地进行数据监测和正常数据建模,从而检测运行过程中的异常行为。通过异常检测,CNN-LSTM 可以对故障行为进行分类,帮助维修工程师有效地诊断机器或设备的故障原因,提高维修效率和修复准确性。 除此之外,CNN-LSTM 还可以结合其他模型和算法,如自编码器、随机森林等,进一步提高故障诊断的精度和效率。同时,CNN-LSTM 也需要注意数据样本的标签质量和特征的选取规则,这些因素都可以影响故障诊断结果的准确性。 总之,CNN-LSTM 作为一种强大的深度学习模型,对于机器和设备的故障诊断有很大的应用前景,但也需要在实践中不断优化和改进,才能发挥其最大的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值