基于 LSTM 循环 神经 网络 的 故障 时间 序列 预测
王鑫 吴际 刘超 杨海燕 杜艳丽 牛文生
北京 航空 航天 大学 计算机 学院 丰台 职业 教育 中心 学校 中航 工业 西安 航空 计算 技术 研究所
北京 航空 航天 大学 学报 2018 ( 04 )

摘要 ： 有效 地 预测 使用 阶段 的 故障 数据 对于 合理 制定 可靠性 计划 以及 开展 可靠性 维护 活动 等 具有 重要 的 指导 意义 。 从 复杂 系统 的 历史 故障 数据 出发 , 提出 了 一 种 基于 长 短期 记忆 ( LSTM ) 循环 神经 网络 的 故障 时间 序列 预测 方法 , 包括 网络 结构 设计 、 网络 训练 和 预测 过程 实现 算法 等 , 进一步 以 预测 误差 最 小 为 目标 , 提出 了 一 种 基于 多 层 网格 搜索 的 LSTM 预测 模型 参数 优选 算法 , 通过 与 多 种 典型 时间 序列 预测 模型 的 实验 对比 , 验证 了 所 提出 的 LSTM 预测 模型 及其 参数 优选 算法 在 故障 时间 序列 分析 中 具有 很 强 的 适用性 和 更 高 的 准确性 。
基金 ： 中国 民用 航空 专项 研究 项目 ( MJ-S- 2013-10 ) ; 国防 科工局 技术 基础 项目 ( JSZL2014601B008 ) ; 国家 自然 科学 基金 ( 61602237 ) ~ ~
关键 词 ： 长短期 记忆 ( LSTM ) 模型 ; 循环 神经 网络 ; 故障 时间 序列 预测 ; 多 层 网格 搜索 ; 深度 学习
作者 简介 ： 王鑫 , 男 , 博士 研究生 。 主要 研究 方向 : 数据 驱动 技术 。 吴际 , 男 , 博士 , 副教授 , 硕士生 导师 。 主要 研究 方向 : 模型 驱动 、 软件 可靠性 分析 , E-mail : wuji@buaa.edu.cn ; 刘超 , 男 , 博士 , 教授 , 博士生 导师 。 主要 研究 方向 : 软件 工程 、 软件 测试 。
收 稿 日期 ： 2017-05-08

对于 有 高 可靠性 和 安全性 需要 的 复杂 系统 , 有效 地 预测 使用 阶段 的 可靠性 指标 是 十分 重要 的 。 目前 , 已 有 众多 方法 用来 解决 可靠性 预测 问题 , 这些 方法 大致 可以 分为 3 类 [ 1 ] : ( 1 ) 基于 故障 机理 ( Physics - of - Failure , Po F ) 的 方法 , Po F 是 一 种 根据 故障 发生 的 内在 机制 和 根本 原因 进行 间接 预测 的 方法 ; ( 2 ) 数据 驱动 ( Data - Driven , DD ) 的 方法 , DD 是 一 种 应用 统计学 或者 机器 学习 等 技术 手段 对 可靠性 指标 进行 直接 预测 的 方法 ; ( 3 ) 融合 的 方法 , 这 种 方法 是 一 种 Po F 和 DD 相 结合 的 方法 。 近年 来 , 数据 驱动 的 方法 由于 其 便捷 性 和 高效性 等 特点 , 在 实际 可靠性 预测 中 的 应用 日渐 广泛 [ 2 - 3 ] 。
故障 时间 序列 , 作为 一 个 重要 的 可靠性 指标 , 能够 展示 故障 的 动态 演化 过程 , 并且 已经 被 多 种 数据 驱动 的 方法 预测 , 比如 自 回归 移动 平均 ( Autoregressive Integrated Moving Average , ARIMA ) [ 4 ] 、 奇异 谱 分析 ( Singular Spectrum Analysis , SSA ) [ 5 ] 、 支持 向量 回归 ( Support Vector machines Regression , SVR ) [ 6 ] 、 人工 神经 网络 ( Artificial Neural Network , ANN ) [ 7 ] 等 。 由于 可靠性 数据 通常 不 易 获取 , 已 有 的 研究 大多 是 面向 组件 级 故障 数据 的 , 比如 文献 [ 7 ] 提供 的 柴油机 涡轮 增压 器 和 汽车 发动机 故障 时间 序列 。 这些 数据 表现 为 规则 性 很 强 的 曲线 形态 并且 能够 被 单一 模型 很 好 地 拟 合 和 预测 。 然而 , 对于 系统 级 故障 数据 , 比如 文献 [ 3 ] 提供 的 民航 飞机 整机 故障 时间 序列 , 由于 其 复杂 且 不规则 的 曲线 形态 , 已 有的 单一 模型 很 难 达到 理想 的 预测 效果 [ 8 ] 。 为此 , 文献 [ 8 ] 提出 了 一 种 基于 SSA 和 SVR 的 混合 方法 , 该 方法 首先 从 原始 数据 中 提取 故障 特征 成分 然后 分别 建 模 和 预测 , 得到 了 比 单一 模型 更 好 的 实验 结果 。 然而 , 混合 方法 的 构建 过程 复杂 、 人工 依赖性 强 , 不 利于 在 实际 中 推广 和 使用 。
近年 来 , 随着 深度 学习 技术 的 不断 发展 , 一些 深度 学习 模型 逐渐 被 应用 到 时序 数据 的 研究 中 。 深度 学习 模型 是 一 种 拥有 多 个 非线性 映射 层 级 的 深度 神经 网络 模型 , 能够 对 输入 信号 逐层 抽象 并 提取 特征 , 挖掘 出 更 深 层次 的 潜在 规律 [ 9 ] 。 在 众多 深度 学习 模型 中 , 循环 神经 网络 ( Recurrent Neural Network , RNN ) 将 时序 的 概念 引入 到 网络 结构 设计 中 , 使 其 在 时序 数据 分析 中 表现 出 更 强 的 适应性 。 在 众多 RNN 的 变体 中 , 长 短期 记忆 ( Long Short - Term Memory , LSTM ) 模型 [ 10 ] 弥补 了 RNN 的 梯度 消失 和 梯度 爆炸 、 长期 记忆 能力 不足 等 问题 , 使得 循环 神经 网络 能够 真正 有效 地 利用 长 距离 的 时序 信息 。 LSTM 模型 在 不同 领域 的 时序 数据 研究 中 已 有 不少 成功 的 应用 案例 , 包括 文字 语言 相关 的 语言 建模 、 语音 识别 、 机器 翻译 [ 11 ] , 多媒体 相关 的 音频 和 视频 数据 分析 、 图片 标题 建模 [ 12 - 13 ] , 道路 运输 相关 的 交通 流速 预测 [ 14 ] , 以及 医学 相关 的 蛋白质 二 级 结构 序列 预测 [ 15 ] 等 。 然而 , 在 可靠性 领域 , LSTM 模型 的 应用 非常 有限 , 特别 是 对于 故障 时间 序列 预测 这 一 研究 问题 , 目前 还 未 发现 相关 研究 。
本 文 针对 系统 级 故障 时间 序列 数据 , 提出 了 一 种 基于 LSTM 循环 神经 网络 的 预测 方法 , 包括 3 层 ( 输入 层 、 隐藏 层 和 输出 层 ) 网络 结构 的 详细 设计 , 以及 网络 训练 和 网络 预测 的 实现 算法 等 。 在 此 基础 上 , 以 预测 误差 最 小 为 目标 , 进一步 提出 了 一 种 基于 多 层 网格 搜索 的 LSTM 预测 模型 参数 优选 算法 。 应用 文献 [ 3 ] 提供 的 民航 飞机 故障 数据 展开 实验 , 并 与 Holt- Winters 、 ARIMA 等 多 种 时间 序列 预测 模型 进行 实验 对比 。 实验 结果 展示 了 所 提出 的 LSTM 预测 模型 及 其 参数 优选 算法 在 故障 时间 序列 预测 中 的 优越 性能 。
1 相关 理论 和 技术
本 节 简要 介绍 LSTM 模型 , 包括 前 向 计算 方法 、 基于 时间 的 反向 传播 ( Back Propagation Through Time , BPTT ) 算法 、 Adam 参数 优化 算法 , 以及 相关 的 RNN 、 GRU 模型 。
对于 给定 序列 x = ( x 1 , x 2 , … , x n ) , 应用 一 个 标准 的 RNN 模型 [ 16 ] ( 如 图 1 所 示 ) , 可以 通过 迭 代 式 ( 1 ) ~ 式 ( 2 ) 计算 出 一 个 隐藏 层 序列 h = ( h 1 , h 2 , … , h n ) 和 一 个 输出 序列 y = ( y 1 , y 2 , … , y n ) 。
式 中 : W 为 权 重 系数 矩阵 ( 比如 W xh 表示 输入 层 到 隐藏 层 的 权 重 系数 矩阵 ) ; b 为 偏置 向量 ( 比如 b h 表示 隐藏 层 的 偏置 向量 ) ; f a 为 激活 函数 ( 比如 tanh 函数 ) ; 下标 t 表示 时刻 。
尽管 RNN 能够 有效 地 处理 非线性 时间 序列 , 但是 仍然 存在 以下 2 个 问题 [ 14 ] : ( 1 ) 由于 梯度 消失 和 梯度 爆炸 的 问题 , RNN 不 能 处理 延迟 过 长 的 时间 序列 ; ( 2 ) 训练 RNN 模型 需要 预先 确定 延迟 窗口 长度 , 然而 实际 应用 中 很 难 自动 地 获取 这 一 参数 的 最优 值 。 由此 , LSTM 模型 应用 而 生 。 LSTM 模型 是 将 隐藏 层 的 RNN 细胞 替换 为 LSTM 细胞 , 使 其 具有 长期 记忆 能力 。 经过 不断 地 演化 , 目前 应用 最为 广泛 的 LSTM 模型 细胞 结构 [ 16 ] 如 图 2 所 示 , z 为 输入 模块 , 其 前 向 计算 方法 可以 表示 为
式 中 : i 、 f 、 c 、 o 分别 为 输入 门 、 遗忘 门 、 细胞 状态 、 输出 门 ; W 和 b 分别 为 对应 的 权 重 系数 矩阵 和 偏置 项 ; σ 和 tanh 分别 为 sigmoid 和 双 曲 正 切 激活 函数 。 LSTM 模型 训练 过程 采用 的 是 与 经典 的 反向 传播 ( Back Propagation , BP ) 算法 原理 类似 的 BPTT 算法 [ 17 ] , 大致 可以 分为 4 个 步骤 : ( 1 ) 按照 前 向 计算 方法 ( 式 ( 3 ) ~ 式 ( 7 ) ) 计算 LSTM 细胞 的 输出 值 ; ( 2 ) 反向 计算 每 个 LSTM 细胞 的 误差 项 , 包括 按 时间 和 网络 层级 2 个 反向 传播 方向 ; ( 3 ) 根据 相应 的 误差 项 , 计算 每 个 权 重 的 梯度 ; ( 4 ) 应用 基于 梯度 的 优化 算法 更新 权 重 。
图 1 RNN 模型 及 隐藏层 细胞 结构 Fig . 1 RNN model and cell structure in hidden layer
图 2 LSTM 隐藏 层 细胞 结构 Fig . 2 LSTM cell structure in hidden layer
基于 梯度 的 优化 算法 种类 众多 , 比如 随机 梯度 下降 ( Stochastic Gradient Descent , SGD ) [ 18 ] 、 Ada Grad [ 19 ] 、 RMSProp [ 20 ] 等 算法 。 本 文 选用 的 是 文献 [ 21 ] 提出 的 适应性 动量 估计 ( Adaptive moment estimation , Adam ) 算法 。 Adam 优化 算法 是 一 种 有效 的 基于 梯度 的 随机 优化 方法 , 该 算法 融合 了 Ada Grad 和 RMSProp 算法 的 优势 , 能够 对 不同 参数 计算 适应性 学习率 并且 占用 较 少 的 存储 资源 。 相比 于 其他 随机 优化 方法 , Adam 算法 在 实际 应用 中 整体 表现 更 优 [ 21 ] 。
此外 , LSTM 模型 演化 出 了 很多 变体 , 其中 最 成功 的 一 种 是 文献 [ 22 ] 提到 的 门限 循环 单元 ( Gated Recurrent Unit , GRU ) 。 GRU 模型 是 LSTM 模型 的 简化 版本 , 但是 保留 了 LSTM 模型 的 长期 记忆 能力 , 其 主要 变动 是 将 LSTM 细胞 中 的 输入 门 、 遗忘 门 、 输出 门 替换 为 更新 门 和 重 置 门 , 并 将 细胞 状态 和 输出 2 个 向量 合二为一 。 在 实际 应用 中 , GRU 模型 与 LSTM 模型 具有 很 强 的 可比性 [ 22 ] 。
2 研究 方法
根据 系统 级 故障 时间 序列 数据 的 特点 , 结合 第 1 节 介绍 的 相关 理论 和 技术 , 本 节 给出 基于 LSTM 模型 的 故障 时间 序列 预测 方法 , 以及 对应 的 基于 多 层 网格 搜索 的 参数 优选 算法 。
2.1 基于 LSTM 的 故障 时间 序列 预测
考虑 到 单 变量 故障 时间 序列 有限 样本 点 的 数据 特征 , 以及 循环 神经 网络 从简 的 设计 原则 , 本 文 构建 LSTM 预测 模型 的 整体 框架 如 图 3 所 示 , 包括 输入 层 、 隐藏 层 、 输出 层 、 网络 训练 以及 网络 预测 5 个 功能 模块 。 输入 层 负责 对 原始 故障 时间 序列 进行 初步 处理 以 满足 网络 输入 要求 , 隐藏 层 采用 图 2 表示 的 LSTM 细胞 搭建 单层 循环 神经 网络 , 输出 层 提供 预测 结果 , 网络 训练 采用 第 1 节 提到 的 Adam 优化 算法 , 网络 预测 采用 迭 代 的 方法 逐 点 预测 。
图 3 基于 LSTM 的 故障 时间 序列 预测 框架 Fig.3 LSTM based framework for failure time series prediction
2.1.1 网络 训练
网络 训练 主要 以 隐藏层 为 研究 对象 。 首先 在 输入 层 中 , 定义 原始 故障 时间 序列 为 F o = { f 1 , f 2 , … , f n } , 则 划分 的 训练 集 和 测试 集 可以 表示 为 F tr = { f 1 , f 2 , … , f m } 和 F te = { f m + 1 , f m + 2 , … , f n } , 满足 约束 条件 m < n 和 m , n∈N 。 然后 对 训练 集中 的 元素 f t 进行 标准化 , 采用 经典 的 z - score 标准化 公式 ( 均值 为 0 , 标准 差 为 1 , 表示 为 zscore ) , 标准化 后 的 训练 集 可以 表示 为
为了 适应 隐藏 层 输入 的 特点 , 应用 数据 分割 的 方法 对 F & apos ; tr 进行 处理 , 设定 分割 窗口 长度 取 值 为 L , 则 分割 后 的 模型 输入 为
对应 的 理论 输出 为
接下来 , 将 X 输入 隐藏层 。 从 图 3 可以 看出 , 隐藏 层 包含 L 个 按 前后 时刻 连接 的 同构 LSTM 细胞 , X 经过 隐藏 层 后 的 输出 可以 表示 为
式 中 : C p - 1 和 H p - 1 分别 为 前 一 个 LSTM 细胞 的 状态 和 输出 ; LSTM forward 表示 第 1 节 提到 的 LSTM 细胞 前 向 计算 方法 ( 式 ( 3 ) ~ 式 ( 7 ) ) 。 设定 细胞 状态 向量 大小 为 S state , 则 C p - 1 和 H p - 1 2 个 向量 的 大小 均 为 S state 。 可以 看出 , 隐藏 层 输出 P 、 模型 输入 X 和 理论 输出 Y 都 是 维度 为 ( m - L , L ) 的 二 维 数 组 。 选用 均 方 误差 作为 误差 计算 公式 , 训练 过程 的 损失 函数 可以 定义 为
设定 损失 函数 最 小 为 优化 目标 , 给定 网络 初始 化 的 随机 种子 数 seed 、 学习率 η 以及 训练 步 数 steps , 应用 Adam 优化 算法 不断 更新 网络 权 重 , 进而 得到 最终 的 隐藏 层 网络 。
2 . 1 . 2 网络 预测
本 小节 应用 训练好 的 LSTM 网络 ( 表示 为 LSTM * net ) 进行 预测 。 预测 过程 采用 迭 代 的 方法 。 首先 , 理论 输出 Y 的 最后 一行 数据 为
将 Y f 输入 LSTM * net , 输出 结果 可以 表示 为
则 m + 1 时刻 的 预测值 为 p m + 1 。 然后 , 将 Y f 的 最后 L - 1 个 数据点 和 p m + 1 合并 为 新 的 一行 数据
将 Y f + 1 输入 LSTM * net , 则 m + 2 时刻 的 预测 值 为 p m + 2 , 依次 类推 , 得到 的 预测 序列 为
接下来 , 通过 对 P o 进行 z - score 反 标准化 ( 表示 为 de _ zscore ) , 得到 最终 的 与 测试 集 F te 对应 的 预测 序列 为
类似 地 , 将 X 的 每 一行 作为 模型 输入 可以 得到 与 训练 集 F tr 对应 的 拟 合 序列 P tr 。 最后 , 通过 计算 F tr 和 P tr , 以及 F te 和 P te 的 偏差 定量 地 给出 模型 的 拟 合 和 预测 精度 。
总的来说 , 基于 LSTM 的 故障 时间 序列 模型 训练 和 预测 算法 概括 如下 :
算法 1 训练 并 预测 LSTM 故障 时间 序列 模型
输入 : F o , m , L , S state , seed , steps , η 。
输出 : 与 测试 集 对应 的 预测 序列 以及 模型 精度 。
其中 : 训练 过程 涉及 输入 层 、 隐藏 层 、 输出 层 、 网络 训练 4 个 模块 , 预测 过程 主要 涉及 输出 层 模块 ; LSTM cell 表示 LSTM 隐藏 层 细胞 ( 如 图 2 所 示 ) ; LSTM net 表示 LSTM 隐藏 层 网络 ( 如 图 3 所 示 ) ; ε e 为 误差 度量 函数 。
2.2 基于 多 层 网格 搜索 的 LSTM 预测 模型 参数 优选
在 构建 上述 LSTM 预测 模型 中 , 涉及 到 众多 参数 , 其中 以 分割 窗口 长度 L 、 状态 向量 大小 S state 和 学习率 η 最为 关键 [ 16 ] 。 为了 达到 更 好 的 预测 效果 , 本 文 采用 网格 搜索 的 方法 对 这 3 个 参数 进行 优选 。 相比 与 其他 的 超 参数 优化 方法 ( 比如 遗传 算法 [ 23 ] 、 随机 搜索 算法 [ 16 ] 、 粒子 群 算法 [ 24 ] , 贝叶斯 算法 [ 25 ] 等 ) , 网格 搜索 是 一 种 简单 实用 、 容易 并行 计算 且 计算 耗时 可控 的 优化 方法 [ 26 ] , 能够 很 好 地 满足 故障 时间 序列 预测 的 任务 需求 和 实验 要求 。 参数 优选 的 依据 是 测试 集 全部 测试 点 上 的 预测 精度 最高 , 即 预测 误差 ε ( P te , F te ) 最 小 , 目标 函数 可以 表示 为
式 中 : step L 、 step state 和 step η 分别 为 对应 参数 的 网格 搜索 步长 。 L 、 S state 和 η 这 3 个 参数 构成 了 一 个 三维 搜索 空间 , 可以 通过 多 层 网格 搜索 算法 ( 算法 2 ) 获取 最优 参数 组合 。 搜索 过程 主要 包括 3 层 , 从 内 到 外 分别 对 S state 、 L 和 η 进行 网格 搜索 。 首先 , 固定 随机 种子 数 seed 和 训练 步 数 steps , 根据 式 ( 23 ) 预设 3 个 参数 的 取 值 范围 ( 为了 降低 模型 复杂 度 , 分别 将 L max 和 S max 控制 在 较 小 的 取 值 ) ; 然后 , 分别 遍历 3 个 参数 的 取 值 范围 , 在 最 内层 训练 并 预测 LSTM 故障 时间 序列 模型 ( 如 算法 2 所 示 , 表示 为 LSTM predict ) , 保存 对应 的 模型 参数 和 模型 精度 ; 最后 , 对 所有 保存 的 结果 按照 预测 精度 由 高 到 低 排序 , 则 最 前面 的 参数 组合 即 优选 的 模型 参数 。
算法 2 LSTM 预测 模型 参数 优选
3 实验 验证
本 节 结合 一 个 航空 领域 的 工业 案例 , 应用 第 2 节 提出 的 LSTM 预测 模型 及其 参数 优选 算法 展开 实验 验证 。
3 . 1 实验 准备
首先 介绍 实验 中 所 选用 的 故障 数据集 , 与 本 文 提出 的 LSTM 模型 相 对比 的 其他 时间 序列 预测 模型 , 评价 不同 预测 模型 优劣 的 精度 度量 指标 , 以及 实验 运行 平台 和 软硬件 环境 配置 。
3.1.1 数据集
实验 数据 采用 文献 [ 3 ] 提供 的 系统级 故障 时间 序列 数据集 。 该 数据集 包含 两 架 正在 运营 的 波音 737 飞机 18 年 ( 1997 — 2014年 ) 的 故障 记录 , 通过 整理 后 得到 2 个 包含 216 个 数据点 的 月度 故障 时间 序列 数据 。 故障 时间 序列 如 图 4 所 示 , 分别 对应 A 飞机 和 B 飞机 2 个 数据 源 , 横 坐标 为 年份 , 纵 坐标 为 月度 故障 数 。 从 图 中 可以 看出 , 这 2 个 系统 级 故障 数据 相比 于 文献 [ 7 ] 提供 的 组件 级 故障 数据 表现 出 更为 复杂 的 曲线 形态 。 此外 , 对于 复杂 系统 来说 , 一定 时期 内 发生 的 故障 数 可以 视为 系统 的 平均 故障 率 [ 27 ] , 用 公式 表示 为 , 其中 f i 和 t i 分别 为 第 i 次 使用 周期 中 发生 的 故障 数 和 工作 时 长 , N 为 指定 时期 内 的 工作 次数 , MTBF ( Mean Time Between Failure ) 为 平均 故障 间隔 时间 。 因此 , 本 文 选择 故障 数 这 一 重要 的 可靠性 指标 作为 实验 对象 , 并 设定 前 17 年 的 204 个 数据 点 作为 训练 集 , 第 18 年 的 12 个 数据 点 作为 测试 集 。
图 4 A 、 B 飞机 的 月度 故障 时间 序列 数据 Fig . 4 Monthly failure time series data for Aircraft A and Aircraft B
3 . 1 . 2 对比 模型
除了 第1 节 提到 的 RNN 和 GRU 模型 , 本 文 将 LSTM 模型 与 以下 5 种 时间 序列 预测 模型 进行 实验 对比 。
1 ) Holt-Winters 模型
Holt-Winters 又 称 3 次 指数 平滑 , 是 一 种 能够 处理 含有 趋势 性 和 周期性 成分 的 时间 序列 分析 方法 [ 28 ] 。 其 思想 是 利用 历史 数据 的 不同 特征 成分 ( 水平 、 趋势 和 季节 ) 来 递 推 当前 数据 。 Holt-Winters 模型 的 重要 参数 是 与 特征 成分 对应 的 3 个 平滑 系数 , 即 α 、 β 和 γ , 取 值 均 为 0 到 1 之间 , 且 越 靠近 1 则 预测 结果 越 依赖 于 近期 观测 值 。 此外 , 根据 季节性 成分 在 递 推 公式 中 的 不同 组织 形式 , Holt - Winters 模型 又 分为 加法 和 乘法 2 种 类型 ( 分别 表示 为 Holt - Winters a 和 Holt-Winters m ) 。 在 实际 使用 中 , 这 2 种 类型 均 需要 计算 不同 特征 成分 的 初始 值 , 并 根据 均 方 误差 最 小 来 计算 3 个 平滑 系数 。
2 ) 自 回归 移动 平均
ARIMA 是 时间 序列 分析 的 经典 理论 和 方法 , 其 模型 可以 表示 为 ARIMA ( p , d , q ) , 其中 p 、 d 、 q 分别 为 自 回归 项数 、 差 分 次数 、 移动 平均 项数 [ 29 ] 。 在 实际 使用 中 , 这 3 个 参数 可以 通过 观测 自 相关 函数 ( Auto Correlation Function , ACF ) 和 偏 自 相关 函数 ( Partial Auto Correlation Function , PACF ) 确定 , 也 可以 通过 计算 AIC ( Akaike Information Criterion ) 或 BIC ( Bayesian Information Criterion ) 值 取 其 最 小 来 确定 。 本 文 采用 了 文献 [ 30 ] 提出 的 自动化 方法 建立 ARIMA 模型 。
3 ) 奇异 谱 分析
SSA 是 一 种 时 域 和 频 域 相 结合 的 非 参数 方法 , 可以 用于 处理 非线性 、 非 平稳 以及 包含 噪声 的 时间 序列 , 其 核心 思想 是 提取 序列 中 的 有效 成分 建 模 和 预测 [ 31 ] 。 SSA 包括 分解 和 重构 2 个 过程 , 其中 分解 过程 又 包括 嵌入 和 奇异 值 分解 ( Singular Value Decomposition , SVD ) 2 个 子 过程 , 重构 过程 又 包括 分组 和 对角 平均 2 个 子 过程 。 在 实际 使用 中 , 需要 确定 的 2 个 参数 为 嵌入 子 过程 的 窗口 长度 L ssa 和 分组 子 过程 的 分组 类别 G ssa 。 本 文 根据 文献 [ 32 ] 提出 的 方法 确定 这 2 个 参数 的 取 值 范围 并 取 其 最 大 值 。 此外 , SSA 包含 递 归 和 向量 2 种 预测 方法 ( 分别 表示 为 SSA r 和 SSA v ) , 其中 向量 预测 方法 拥有 更 好 的 稳定性 但是 需要 消耗 更 多 的 计算 资源 。
4 ) 多元 线性 回归
多元 线性 回归 ( Multiple Linear Regression , MLR ) 是 一 种 广泛 应用 于 预测 任务 的 多 因素 分析 方法 [ 33 ] 。 MLR 用于 时间 序列 预测 的 模型 可以 表示 为 Y t = a 0 + a 1 Y t - 1 + a 2 Y t - 2 + … + a k Y t - k + e , 其中 : Y t 为 t 时刻 的 预测 值 , a 1 , a 2 , … , a k 为 不同 历史 时刻 数据 Y t - 1 , Y t - 2 , … , Y t - k 对应 的 回归 系数 , a 0 和 e 分别 为 偏置 项 和 误差 项 [ 34 ] 。 当 连续 的 历史 时刻 数据 被 选为 多 因素 变量 时 , k 也 可以 称为 窗口 长度 ( 表示 为 L mlr ) 。 本 文 选定 连续 2 年 的 月度 故障 数据点 个数 24 作为 k 的 取 值 。
5 ) 支持 向量 回归
SVR 是 一 种 可以 用于 时间 序列 预测 的 机器 学习 方法 [ 35 ] 。 这 种 方法 通过 一 个 非线性 核 函数 将 多维 输入 映射 到 更 高 维度 的 特征 空间 后 执行 回归 运算 , 进而 得到 与 输出 指标 的 非线性 映射 关系 。 本 文 选择 常用 的 高斯 径向 基 函数 ( Gaussian Radial Basis Function , RBF ) 作为 非线性 核 函数 , 并 采用 文献 [ 36 ] 提出 的 启发式 方法 计算 核 函数 参数 σ svr 和 误差 边界 ε 。 此外 , SVR 模型 的 惩罚 因子 C 和 窗口 长度 L svr 分别 设置 为 3 和 24 。
3 . 1 . 3 度量 指标
本 文 从 以下 2 个 方面 评价 所有 的 预测 模型 : 计算 耗时 和 模型 精度 。 对于 计算 耗时 , 本 文 统计 了 每 个 模型 在 构建 过程 中 消耗 的 时间 ; 对于 模型 精度 , 本 文 选择 均 方根 误差 ( Root Mean Square Error , RMSE ) 作为 度量 标准 。 RMSE 的 计算 公式 可以 表示 为 , 其中 , f t 和 y t 分别 为 故障 时间 序列 在 t 时刻 的 观测 值 和 模型 输出 值 , T 为 数据点 个数 。 本 文 通过 对 训练集 和 测试集 分别 计算 RMSE 值 来 定量 地 评价 模型 的 拟合 和 预测 精度 。
3.1.4 平台 和 环境
实验所 使用 计算机 的 配置 如下 : 处理器 为 英特尔 酷睿 Duo CPU i5-6500 , CPU 频率 为 3.20 GHz 和 3.19 GHz ; 内存 为 4.00 GB ; 操作 系统 为 Windows 10 ( 64 位 ) ; 程序 设计 语言 为 Python 3.5.2 ( 64 位 ) 和 R 3.3.3 ( 64 位 ) ; 集成 开发 环境 为 PyCharm Community Edition 2016.3.2 和 Rstudio0.99.903 。 程序 设计 过程 中 , RNN 、 LSTM 和 GRU 模型 由 Python 的 tensorflow 0.12.0rc0 [ 37 ] 程序包 实现 , Holt-Winters 、 ARIMA 、 SSA 、 MLR 和 SVR 模型 由 R 的 stats 3.3.3 [ 38 ] 、 forecast 8.0 [ 39 ] 、 Rssa0.14 [ 40 ] 和 rminer 1.4.2 [ 41 ] 程序包 实现 。
3.2 实验 结果
首先 , 以 飞机 A 为 例 , 应用 2.1 节 提出 的 方法 对 标准化 后 的 故障 时间 序列 训练 集 建立 LSTM 预测 模型 。 这里 初步 根据 经验 确定 模型 参数 , 分割 窗口 长度 L 取 最 小 值 2 , 状态 向量 大小 S state 取 半 年 的 月度 故障 数据点 个数 6 , 随机 种子 数 seed = 1 , 训练 步 数 steps = 500 。 图 5 展示 了 相同 参数 下 不同 学习率 ( η = 0.05 , 0.1 , 0.5 ) 训练 LSTM 模型 的 损失 变化 和 模型 精度 。 可以 看出 : 当 η = 0.05 和 η = 0.1 时 , 最终 获得 的 损失 较 小 ( 0.83 左右 ) ; 3 个 学习率 对应 的 训练 集 拟 合 精度 基本 相同 ( RMSE 值 在 2.0 附近 ) ; 在 3 、 4 、 5 、 6 和 12 个 测试 点 上 , η = 0.1 的 预测 精度 最高 ( RMSE 值 最 低 ) 。 因此 , 本 文 选定 η = 0.1 训练 LSTM 模型 。
为了 验证 LSTM 模型 在 不同 类型 循环 神经 网络 中 的 优势 , 本 文 将 LSTM 模型 的 隐藏 层 细胞 替换 为 RNN 和 GRU 结构 , 并 以 相同 参数 进行 实验 。 实验 结果 如 图 6 所 示 。 从 图 中 可以 看出 : LSTM 和 GRU 的 损失 变化 相似 并且 都 优于 RNN , 对应 的 训练 集 拟 合 精度 也 较 高 ; 在 5 、 6 和 12 个 测试 点 上 , LSTM 的 预测 精度 要 高于 RNN 和 GRU 。
图 5 不同 学习率 的 损失 变化 和 模型 精度 对比 ( A 飞机 ) Fig . 5 Comparison of loss change and model accuracy with different learning rates ( Aircraft A )
为了 进一步 验证 LSTM 模型 的 应用 效果 , 本 文 采用 不同 的 时间 序列 预测 模型 进行 对比 , 实验 结果 如 表 1 所 示 。 从 表中 可以 看出 : LSTM 模型 的 拟 合 精度 要 低于 SSA 和 SVR 模型 , 但是 高于 其他 6 种 模型 ; LSTM 模型 的 整体 预测 精度 较 高 , 在 6 和 12 个 测试 点 上 的 预测 精度 最高 ( RMSE 值 分别 达到 了 2.109 和 2.196 ) ; LSTM 模型 在 该 参数 组合 下 的 计算 耗时 要 少于 ARIMA 模型 , 但是 多于 其他 8 种 模型 。
对于 B 飞机 , 实验 流程 与 A 飞机 类似 。 这里 根据 经验 调整 模型 参数 , 令 状态 向量 大小 S state 仍然 取 6 , 分割 窗口 长度 L 取 一 年 的 月度 故障 数据点 个数 12 , 随机 种子 数 seed = 100 , 训练 步 数 steps = 1 000 。 图 7 展示 了 相同 参数 下 不同 学习率 ( η = 0.01 , 0.03 , 0.05 ) 训练 LSTM 模型 的 损失 变化 和 模型 精度 。 可以 看出 : 3 个 学习 率 对应 的 训练 集 拟 合 精度 基本 相同 ( RMSE 值 在 1.2 附近 ) ; η = 0.05 时 存在 一定 的 过 拟 合 现象 , 导致 预测 精度 波动 较 大 ; 在 6 和 12 个 测试 点 上 , η = 0.03 的 预测 精度 最高 ( RMSE 值 最 低 ) 。 因此 , 本 文 选定 η = 0.03 训练 LSTM 模型 。
图 6 不同 隐藏 层 细胞 的 损失 变化 和 模型 精度 对比 ( 学习率 η = 0 . 1 , A 飞机 ) Fig . 6 Comparison of loss change and model accuracy with different hidden layer cells ( learning rateη = 0 . 1 , Aircraft A )
接下来 , 本 文 替换 隐藏 层 细胞 为 RNN 和 GRU 结构 并 进行 实验 , 结果 如 图 8 所 示 。 可以 看出 , LSTM 模型 无论 是 在 损失 变化 还是 整体 模型 精度 上 都 优于 RNN 和 GRU 模型 。 图 9 展示 了 LSTM 模型 的 拟 合 ( 图 9 ( a ) ) 和 预测 ( 图 9 ( b ) ) 结果 , 其中 黑色 线条 分别 代表 原始 故障 时间 序列 数据 划分 的 训练 集 和 测试 集 , 灰色 线条 分别 代表 LSTM 模型 在 训练 集 和 测试 集 上 的 拟 合 序列 和 预测 序列 。 从 图 中 可以 看出 , 在 12 个 测试 点 上 , LSTM 模型 很 好 地 跟踪 了 真实 的 故障 数据 , 达到 了 比较 理想 的 预测 效果 。
表 1 不同 预测 模型 实验 结果 对比 ( A 飞机 ) Table 1 Experimental results for different prediction models ( Aircraft A )
注 : 最 小 RMSE 值 和 最 小 耗时 由 下 划线 标记 。
图 7 不同 学习率 的 损失 变化 和 模型 精度 对比 ( B 飞机 ) Fig . 7 Comparison of loss change and model accuracy with different learning rates ( Aircraft B )
图 8 不同 隐藏 层 细胞 的 损失 变化 和 模型 精度 对比 ( 学习率 η = 0 . 03 , B 飞机 ) Fig . 8 Comparison of loss change and model accuracy with different hidden layer cells ( learning rateη = 0 . 03 , Aircraft B )
最后 , LSTM 模型 和 不同 时间 序列 预测 模型 的 实验 对比 结果 如 表 2 所 示 。 从 表中 可以 看出 : LSTM 模型 的 拟 合 精度 要 低于 SSA 模型 , 但是 高于 其他 7 种 模型 ; LSTM 模型 的 整体 预测 精度 较 高 , 在 3 、 6 、 12 个 测试 点 上 的 预测 精度 最高 ( RMSE 值 分别 达到 了 1.703 、 1.237 和 1.580 ) ; RNN 、 GRU 和 LSTM 模型 在 该 参数 组合 下 的 计算 耗时 要 明显 多于 其他 7 种 模型 , 并且 以 LSTM 模型 耗时 最多 。
图 9 LSTM 模型 的 拟 合 和 预测 结果 ( 学习率 η = 0.03 , B 飞机 ) Fig . 9 Fitting and forecasting results with LSTM model ( learning rateη = 0.03 , Aircraft B )
3.3 参数 优选
在 3 . 2 节 的 实验 中 , LSTM 模型 的 参数 取 值 主要 是 通过 经验 来 确定 的 。 本 节 应用 2.2 节 提到 的 多 层 网格 搜索 算法 , 对 LSTM 模型 的 3 个 关键 参数 进行 优选 。 首先 , 固定 非 关键 参数 取 值 : 随机 种子 数 seed = 1 , 训练 步 数 steps = 500 ; 然后 , 设定 3 个 参数 的 取 值 范围 : 分割 窗口 长度 L∈ { 2 , 3 , … , 24 } , 状态 向量 大小 S state ∈ { 2 , 3 , … , 24 } , 学习率 η∈ { 0.001 , 0.003 , 0.005 , 0.01 , 0.03 , 0.05 } , 其中 L 和 S state 的 搜索 步长 为 1 ; 最后 , 设置 目标 函数 为 12 个 测试 点 上 预测 精度 最高 ( RMSE 值 最 小 ) , 应用 2.2 节 中 的 算法 2 进行 网格 搜索 。
图 10 和 图 11 分别 展示 了 针对 2 个 数据源 ( A 飞机 和 B 飞机 ) 建立 2.1 节 提到 的 LSTM 预测 模型 的 参数 搜索 结果 。 在 每 个 子 图 中 , 横 坐标 为 分割 窗口 长度 L , 纵 坐标 为 状态 向量 大小 S state , Rm 为 最 小 RMSE 值 ; 不同 子 图 对应 学习率 η 的 不同 取 值 ; 网格 中 的 方块 面积 越 大 、 颜色 越 深 表示 RMSE 值 越 小 。 从 图 10 和 图 11 中 可以 看出 , 当 L 和 S state 取 值 较 小 时 更 容易 获得 较 高 的 预测 精度 。 表 3 和 表 4 分别 列出 了 针对 2 个 数据 源 的 前 5 组 最优 参数 组合 以及 对应 的 模型 精度 。 表 1 和 表 2 对比 可知 , 优选 后 的 LSTM 模型 精度 明显 提高 。
表 2 不同 预测 模型 实验 结果 对比 ( B 飞机 ) Table 2 Experimental results for different prediction models ( Aircraft B )
注 : 最 小 RMSE 值 和 最 小 耗时 由 下 划线 标记 。
图 1 0 LSTM 模型 3 参数 多 层 网格 搜索 结果 ( A 飞机 ) Fig.10 Multilayer grid search results for three parameters of LSTM model ( Aircraft A )
图 1 1 LSTM 模型 3 参数 多 层 网格 搜索 结果 ( B 飞机 ) Fig.11 Multilayer grid search results for three parameters of LSTM model ( Aircraft B )
表 3 LSTM 模型 前 5 组 最 优 参数 组合 以及 对应 的 模型 精度 ( A 飞机 ) Table 3 The first five groups of optimal parameters andcorresponding model accuracy for LSTM model ( Aircraft A )
表 4 LSTM 模型 前 5 组 最 优 参数 组合 以及 对应 的 模型 精度 ( B 飞机 ) Table 4 The first five groups of optimal parameters and corresponding model accuracy for LSTM model ( Aircraft B )
4 结论
本 文 提出 了 基于 LSTM 循环 神经 网络 的 系统 级 故障 时间 序列 预测 方法 , 包括 对 LSTM 模型 的 训练 、 预测 以及 参数 优选 等 内容 。 实验 验证 表明 :
1 ) 与 典型 的 时间 序列 预测 模型 相比 , LSTM 模型 的 拟 合 和 预测 性能 整体 更 优 。
2 ) LSTM 模型 在 训练 过程 中 的 损失 变化 和 模型 精度 对 学习率 的 取 值 较为 敏感 , 过低 或 过 高 的 学习率 可能 会 导致 欠 拟 合 或 过 拟 合 问题 , 影响 模型 的 预测 性能 。
3 ) 与 其他 类型 的 循环 神经 网络 ( RNN 和 GRU ) 相比 , LSTM 模型 的 拟 合 和 预测 精度 整体 更 高 , 但是 训练 过程 的 耗时 也 更 多 。
4 ) 基于 多 层 网格 搜索 的 参数 优选 算法 效果 显著 , 特别 是 对于 第 2 个 数据源 ( B 飞机 ) , 在 测试 点 12 上 的 预测 精度 ( RMSE 值 ) 达到 了 0.864 , 而 文献 [ 8 ] 中 提出 的 混合 模型 其 最 优 RMSE 值 仅 为 1.879 。
总的来说 , 本 文 验证 了 LSTM 模型 在 可靠性 预测 领域 中 的 适用性 , 扩展 了 深度 学习 技术 的 应用 范畴 。 基于 目前 的 工作 , 后续 可以 展开 进一步 研究 : 比如 扩展 隐藏 层 层 数 , 检验 多 隐藏 层 LSTM 网络 结构 的 应用 效果 ; 或者 从 众多 LSTM 模型 参数 入手 , 寻求 更 有效 的 参数 优化 方法 。 此外 , 本 文 是 从 历史 数据 出发 , 应用 数据 驱动 的 技术 逆向 建立 预测 模型 。 下 一 步 , 可以 从 可靠性 相关 的 领域 知识 出发 , 应用 提取 出来 的 关键 特征 和 要素 正 向 研究 可靠性 预测 方法 。
