flag兑现:这次聊一聊Deep AR 模型用于PHM2012工况1轴承数据集的RUL预测

本文介绍了如何使用DeepAR模型进行轴承的剩余使用寿命(RUL)预测,通过在PHM2012轴承数据集上的实践,展示了模型的实现过程和部分测试结果。尽管训练效果一般且损失函数波动大,但DeepAR仍被应用于健康指标(HI)的后处理,以预测测试集轴承的健康状态。实验表明,DeepAR可能对数据量有一定要求,并且在训练过程中存在挑战。
摘要由CSDN通过智能技术生成

Deep AR模型

最早接触DeepAR模型是2020年在简书看到的一篇大佬的博客:https://www.jianshu.com/p/8a900b9ad3d3
这位大佬非常详细的讲解了Deep AR的代码实战操作。受大佬的启发,并结合在github上面的搜集的资料,最终本人完成了对Deep AR的探究,并且成功应用于PHM 2012轴承的RUL( ps:不要问我文章在哪,我没写也没投。主要是Deep AR有较大的局限性,同时我有其他的研究方向)。后续我会一一道来。
模型代码:
在大佬的csdn也有:https://blog.csdn.net/weixin_45073190/article/details/1049515041

我这里就只添加一个GaussianLoss,因为大佬的是log_gaussian_loss,有想练练手的可以尝试这两种损失函数

import tensorflow as tf
from tensorflow.keras.layers import (Input, LSTM, LSTMCell)

class DeepAR(tf.keras.layers.Layer):
    """
    DeepAR 模型
    """
    def __init__(self, lstm_units):
        super().__init__()
        self.lstm_units = lstm_units
        # 可以使用多层LSTM
        self.lstm_1 = tf.keras.layers.LSTM(self.lstm_units,return_sequences=True )
        self.lstm_2 = tf.keras.layers.LSTM(self.lstm_units,return_sequences=False)
        
        
        self.dense_mu = tf.keras.layers.Dense(1,activation='sigmoid')
        
        self.dense_sigma = tf.keras.layers.Dense(1,activation="softplus")

    def call(self, inputs, initial_state=None):
        outputs = self.lstm_1(inputs)
        outputs = self.lstm_2(outputs)
        
        mu = self.dense_mu(outputs)
        sigma = self.dense_sigma(outputs)
        
        return [mu, sigma]
        
class GaussianLoss(object):
    def __init__(self):
        pass

    def __call__(self, y_true, y_pred, sigma):
        return tf.reduce_mean(0.5 * tf.math.log(sigma) +
                              0.5 * tf.math.divide(tf.math.square(y_true-y_pred),sigma))+1e-6+6

模型打印:

Model: "model_5"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_6 (InputLayer)         [(None, 36, 128)]         0         
_________________________________________________________________
deep_ar_5 (DeepAR)           [(None, 1), (None, 1)]    11426     
=================================================================
Total params: 11,426
Trainable params: 11,426
Non-trainable params: 0
_________________________________________________________________

在这里插入图片描述

1.直接将特征输入到Deep AR模型进行RUL预测

训练集:
在这里插入图片描述

整体的训练效果一般,并且难以充分训练。再来看看测试集轴承,(测试是full,不是截断的):
轴承1-3
在这里插入图片描述
轴承1-4
在这里插入图片描述
轴承1-5
在这里插入图片描述
轴承1-6

在这里插入图片描述
轴承1-7
在这里插入图片描述

2.将Deep AR应用于HI的后处理

首先通过一个神经网络模型得到每个轴承的健康指标HI,然后采用Deep AR对测试集(截断的数据)健康指标进行预测
轴承1-3
在这里插入图片描述

轴承1-6
在这里插入图片描述

总结

总体上来讲,Deep AR可能对数据量有一定的要求,另外,其运行过程的损失函数不稳定,波动很大,不像常规的loss保持下降趋势。


  1. 时间序列预测方法之 DeepAR ↩︎

评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风筝不是风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值